WO2021217246A1 - Tiered application pattern - Google Patents
Tiered application pattern Download PDFInfo
- Publication number
- WO2021217246A1 WO2021217246A1 PCT/CA2021/050534 CA2021050534W WO2021217246A1 WO 2021217246 A1 WO2021217246 A1 WO 2021217246A1 CA 2021050534 W CA2021050534 W CA 2021050534W WO 2021217246 A1 WO2021217246 A1 WO 2021217246A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application
- layer
- event
- request
- data storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/542—Intercept
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Definitions
- Embodiments described herein relate to a tiered application pattern, and more particularly, to providing a development application having a tiered application pattern.
- a development application having a tiered application pattern for example, a five-tiered application pattern.
- the five-tier application pattern is an application design that helps businesses reliably develop and manage software at a global-scale. Usage of the five- tier application pattern in software solutions achieves a software development foundation that is global-scale, self-healing, and auto-scaling with enhanced availability.
- the embodiments described herein may also produce applications that, by design, are secure, private, data localized, or a combination thereof.
- the five-tier application pattern described herein may support up to, for example, 10 million requests per second per uniform resource locator. This is a massive improvement (5000x) over usage of a gated microservice architecture with a standard three-tier application pattern.
- the five-tier application pattern may achieve these by implementing a communication workflow as described herein, which may utilize streams and queues.
- the tiered application pattern enables software applications to be designed around decoupled read and write paths to a data store to enable massively scaled global application services.
- One embodiment provides a system for providing a development application having a tiered application pattern.
- the system includes an electronic processor configured to receive, with a gateway layer, a request from a user device, where the request is associated with a function.
- the electronic processor is also configured to route, with the gateway layer, the request to an application layer, where the application layer provides application functionality corresponding to the function.
- the electronic processor is also configured to, in response to receiving the request from the gateway layer, perform, with the application layer, the application functionality corresponding to the function, where the application functionality includes generating an application event.
- the electronic processor is also configured to receive, with an event stream layer, the application event from the application layer.
- the electronic processor is also configured to access, with a data processing layer, the application event and process, with the data processing layer, the application event.
- the electronic processor is also configured to transmit, with the data processing layer, the processed application event to a data storage layer, where the processed application event is stored in the data storage layer.
- Another embodiments provides a method for providing a development application having a tiered application pattern.
- the method includes receiving, within a gateway layer with an electronic processor, a request from a user device, where the request is associated with a function.
- the method also includes routing, within the gateway layer with the electronic processor, the request to an application layer, where the application layer provides application functionality corresponding to the function.
- the method also includes, in response to receiving the request from the gateway layer, performing, within the application layer with the electronic processor, the application functionality corresponding to the function, where the application functionality includes generating an application event.
- the method also includes receiving, within an event stream layer with the electronic processor, the application event from the application layer.
- the method also includes accessing, within a data processing layer with the electronic processor, the application event.
- the method also includes processing, within the data processing layer with the electronic processor, the application event.
- the method also includes transmitting, within the data processing layer with the electronic processor, the processed application event to a data storage layer.
- the method also includes storing, within the data storage layer, the processed application event.
- Yet another embodiment provides a non-transitory, computer-readable medium storing instructions that, when executed by an electronic processor, perform a set of functions.
- the set of functions includes receiving, within a gateway layer, a request from a user device, wherein the request is associated with a function.
- the set of functions also includes routing, within the gateway layer, the request to an application layer, where the application layer provides application functionality corresponding to the function.
- the set of functions also includes performing, within the application layer, the application functionality corresponding to the function, where the application functionality includes generating an application event.
- the set of functions also includes receiving, within an event stream layer, the application event from the application layer.
- the set of functions also includes accessing, within a data processing layer, the application event from an event storage.
- the set of functions also includes processing, within the data processing layer, the application event.
- the Set of functions also includes transmitting, within the data processing layer, the processed application event to a data storage layer, where the processed application event is stored in the data storage layer.
- FIG. 1 is a block diagram of a system for providing a development application having a tiered application pattern according to some embodiments.
- FIG. 2 is a block diagram of a server of the system of FIG. 1 according to some embodiments.
- FIG. 3 is a block diagram illustrating a five-tier application pattern for the development application of FIG. 1 according to some embodiments.
- FIG. 4 is a flow chart of a method of providing a development application having a tiered application pattern using the system of FIG. 1 according to some embodiments.
- FIG. 5 is a block diagram illustrating an exemplary workflow with respect to the five- tier application pattern of FIG. 2.
- FIG. 6 is a block diagram illustrating a plurality of service modules according to some embodiments.
- a plurality of hardware and software based devices, as well as a plurality of different structural components may be utilized to implement the embodiments described herein.
- embodiments described herein may include hardware, software, and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware.
- the electronic-based aspects of the embodiments described herein may be implemented in software (for example, stored on non-transitory computer-readable medium) executable by one or more processors.
- FIG. 1 is a block diagram of a system 100 for providing a development application having a tiered application pattern according to some embodiments.
- the system 100 includes a plurality of user devices 105 (referred to herein collectively as “the user devices 105” and individually as “the user device 105”) and a server 110.
- the system 100 includes fewer, additional, or different components than illustrated in FIG. 1.
- the system 100 may include a different number of user devices and the four user devices 105 included in FIG. 1 are purely for illustrative purposes.
- the server 110 and the user devices 105 are communicatively coupled via a communication network 130.
- the communication network 130 is an electronic communications network including wireless and wired connections. Portions of the communication network 130 may be implemented using a wide area network, such as the Internet, a local area network, such as a BluetoothTM network or Wi-Fi, and combinations or derivatives thereof. Alternatively or in addition, in some embodiments, components of the system 100 communicate directly with each other as compared to communicating through the communication network 130. Also, in some embodiments, the components of the system 100 communicate through one or more intermediary devices not illustrated in FIG. 1.
- the server 110 is a computing device, which may host or provide a development application for developing and managing a software application.
- the server 110 is a cloud computing service or platform server for software development and management.
- the server 110 may be a server that communicates with a cloud computing service or platform (for example, AZURETM provided by Microsoft Corporation or AWSTM provided by Amazon Web Services, Inc.) for developing a software application.
- a cloud computing service or platform for example, AZURETM provided by Microsoft Corporation or AWSTM provided by Amazon Web Services, Inc.
- the server 110 includes an electronic processor 200, a memory 205, and a communication interface 210.
- the electronic processor 200, the memory is coupled to the server 110.
- the server 110 may include additional components than those illustrated in FIG. 2 in various configurations.
- the server 110 may include additional components than those illustrated in FIG. 2 in various configurations.
- the functionality (or a portion thereof) described herein as being performed by the server 110 may be distributed among multiple devices, such as multiple servers included in a cloud service environment.
- the server 110 is part of a computing network, such as a distributed computing network, a cloud computing service, or the like.
- one or more of the user devices 105 may be configured to perform all or a portion of the functionality described herein as being performed by the server 110.
- the electronic processor 200 can include a microprocessor, an application-specific integrated circuit (ASIC), or another suitable electronic device for processing data.
- the memory 205 can include a non-transitory computer-readable medium, such as read-only memory (“ROM”), random access memory (“RAM”) (for example, dynamic RAM (“DRAM”), synchronous DRAM (“SDRAM”), and the like), electrically erasable programmable read-only memory (“EEPROM”), flash memory, a hard disk, a secure digital (“SD”) card, another suitable memory device, or a combination thereof.
- ROM read-only memory
- RAM random access memory
- EEPROM electrically erasable programmable read-only memory
- flash memory a hard disk
- SD secure digital
- SD secure digital
- the electronic processor 200 is configured to access and execute computer-readable instructions (“software”) stored in the memory 205.
- the software may include firmware, one or more applications, program data, filters, rules, one or more program modules, and other executable instructions.
- the software may include instructions and associated data for performing a set of functions, including the methods described herein.
- the memory 205 may store a development application 215.
- the communication interface 210 allows the server 110 to communicate with devices external to the server 110.
- the server 110 may communicate with one or more of the user devices 105 through the communication interface 210.
- the communication interface 210 may include a port for receiving a wired connection to an external device (for example, a universal serial bus (“USB”) cable and the like), a transceiver for establishing a wireless connection to an external device (for example, over one or more communication networks 120, such as the Internet, local area network (“LAN”), a wide area network (“WAN”), and the like), or a combination thereof.
- USB universal serial bus
- the user device 105 is also a computing device and may include a desktop computer, a terminal, a workstation, a laptop computer, a tablet computer, a smart watch or other wearable, a smart television or whiteboard, or the like.
- the user device 105 may include similar components as the server 110 (an electronic processor, a memory, and a communication interface).
- the user device 105 may also include a human- machine interface.
- the human-machine interface may include one or more input devices, one or more output devices, or a combination thereof. Accordingly, in some embodiments, the human-machine interface allows a user to interact with (for example, provide input to and receive output from) the user device 105.
- the human-machine interface may include a keyboard, a cursor-control device (for example, a mouse), a touch screen, a scroll ball, a mechanical button, a display device (for example, a liquid crystal display (“LCD”)), a printer, a speaker, a microphone, or a combination thereof.
- the user device 105 is a customer device or server that is part of a computing network, such as a distributed computing network, a cloud computing service, or the like, that leverages or accesses the tired application pattern.
- the user device 105 may be a customer device or server that accesses an application (having a five-tiered application design) as a customer or user of the application.
- a user may use the user device 105 to develop and manage an application (for example, an ecommerce application).
- an application for example, an ecommerce application.
- the user may access the development application 215 (through a browser application or a dedicated application stored on the user device 105 that communicates with the server 110) and interact with the development application 215 via the human-machine interface associated with the user device 105.
- the development application 215 has a tiered application pattern.
- the development application 215 has a five-tier application pattern.
- the development application 215 may designate five application layers.
- FIG. 3 is a block diagram illustrating a five-tier application pattern of the development application 215 according to some embodiments.
- the development application 215 includes a gateway layer 350, an application layer 360, a data storage layer 370, a data processing layer 380, and an event stream layer 390.
- the development application 215 may include additional, fewer, or different application layers (or tiers) than illustrated in FIG. 3 in various configurations.
- the functionality (or a portion thereof) of the server 110 may be distributed among multiple devices or servers.
- the system 100 includes multiple servers 110, where each server provides a layer described herein as being provided by the server 110.
- a first server for example, a gateway server
- a second server for example, an application server
- a third server for example, a data storage server
- a fourth server for example, a data processing server
- a fifth server for example, an event stream server
- the gateway layer 350 functions as an entry point to the development application 215.
- the gateway layer 350 serves as the only publically accessible entry point to the development application 215.
- the gateway layer 350 is configured to receive one or more requests from the user devices 105 and process the received requests, and, ultimately, trigger application functionality (via the other layers of the tiered application pattern).
- the gateway layer 350 contains or functions as an application programmable interface (API) gateway.
- API application programmable interface
- the gateway layer 350 may define a type of request an application may handle, a type of parameter, a response body, an error code, a failure situation, and the like.
- the gateway layer 350 includes multiple technology components incorporated into a single layer that serves a functional purpose.
- the gateway layer 350 may include technology components that implement edge security technology, enforce encryption protocols, and the like.
- the gateway layer 350 implements request transformation templates to directly integrate with select data storage and queue resources as, for example, an optimization that may bypass a need for building and maintaining application code. As a result of this optimization, application cost may be reduced where viable.
- the gateway layer 350 interacts directly with the application layer 360, the event stream layer 390, or a combination thereof.
- the application layer 360 contains application or product functionality.
- the application layer 360 contains the business logic for handling incoming requests from the gateway layer 350.
- the application layer 360 contains template functionality and security.
- the application layer 360 implements support for one or more software endpoints defined in an OpenAPI Specification used to define the gateway layer 350.
- the application layer 360 interacts directly with the event stream layer 390, the data storage layer 370, or a combination thereof.
- the data storage layer 370 contains, for example, one or more managed databases, file systems, alternative databases, machine learning model databases, artificial intelligence model databases, or a combination thereof.
- the application layer 360 may interact with the data storage layer 370 by reading (or accessing) data from the data storage layer 370.
- the application layer 370 accesses one or more models stored in the machine learning model database, the artificial intelligence model database, or a combination thereof.
- the application layer 370 may use the accessed one or more models to process a request (for example, perform application functionality associated with the request).
- the application functionality performed by the application layer 370 is improved by accessing and using the one or more models.
- the event stream layer 390 provides event stream processing.
- application events are streamed into the event stream layer 390 (for example, from the application layer 360).
- the application events streamed into the event stream layer 390 are stored until each application event is processed by the data processing layer 380.
- the event stream layer 390 interacts directly with the data storage layer 370, the data processing layer 380, or a combination thereof.
- the five-tier application pattern may encourage the application layer 360 to read from the data storage layer 370 while application writes (i.e., application events) are pushed (or streamed) to event streams (for example, the event stream layer 390) for eventual processing.
- application writes i.e., application events
- event streams for example, the event stream layer 390
- the tiered application pattern enables software applications to be designed around the concept of decoupled read and write paths to a data store to enable massively scaled global application services.
- the data processing layer 380 is configured to process one or more application events from the event stream layer 390.
- the data processing layer 380 is configured to process the one or more application events using an extract, transform, and load (ETL) procedure.
- ETL extract, transform, and load
- the data processing layer 380 may support online application event processing, offline application event processing, or a combination thereof.
- the data processing layer 380 utilizes the notion of notifications and queues to create fan out capabilities. For example, when application events are fanned out, the application events may be processed multiple times by different compute functions. As seen in FIG. 3, in some embodiments, the data processing layer 380 interacts directly with the data storage layer 370, the event stream layer 390, or a combination thereof.
- FIG. 4 is a flowchart illustrating a method 400 for providing a development application having a tiered application pattern (for example, the development application 215) according to some embodiments.
- the method 400 is described here as being performed by the server 110 (the electronic processor 200 executing instructions). However, as noted above, the functionality performed by the server 110 (or a portion thereof) may be performed by other devices, including, for example, one or more of the user devices 105 (via an electronic processor executing instructions).
- the method 400 of FIG. 4 will be described with reference to FIG. 5.
- FIG. 5 is a block diagram illustrating an exemplary workflow with respect to the five-tier application pattern of FIG. 2.
- the method 400 includes receiving, within the gateway layer 350 with the electronic processor 200, a request from the user device 105 (at block 405).
- a request may include, for example, an authentication request, a retrieval request, an authorization request, a reporting request, a data processing request, and the like.
- the request is associated with a user (for example, a customer) interacting with a developed application having a five-tiered application pattern.
- the request is associated with a user (for example, a software developer) that is developing or managing an application, such as an ecommerce application.
- the gateway layer 350 serves as an entry point to the software development application 215.
- the gateway layer 350 (via the electronic processor 200) is configured to receive one or more requests from the user devices 105.
- the gateway layer 350 includes multiple technology components incorporated into a single layer that serves a functional purpose.
- the gateway layer 350 (via the electronic processor 200) processes the request to determine routing for the request.
- the gateway layer 350 receives the request from the user device 105 through a private connection 505 (for example, a virtual private network (VPN)).
- a private connection 505 for example, a virtual private network (VPN)
- the gateway layer 350 receives the request through a public connection (for example, public internet).
- the gateway layer 350 may receive the request from the user device 105 through a content distribution network 510.
- the gateway layer 350 may include technology components that implement edge security technology, enforce encryption protocols, and the like (for example, a web application firewall 515).
- the gateway layer 350 may include the web application firewall 515.
- the gateway layer 350 After receiving the request from the user device 105, the gateway layer 350 (via the electronic processor 200) routes (or transmits) the request to the application layer 360 (at block 410).
- the gateway layer 350 includes an application programming interface (API) gateway 520.
- the API gateway 520 via the electronic processor 200) processes and routes the request to the application layer 360.
- the API gateway 520 processes the request to determine a function (or functionality) associated with the request.
- a function associated with the request may include, for example, an event retrieval function, an authentication function, an authorization function, a reporting function, a data processing function, and the like.
- the API gateway 520 (via the electronic processor 200) routes the request based on the determined function. For example, as illustrated in FIG. 6, the API gateway 520 may route the request to one or more service modules 600.
- Each service module 600 supports or provides a specific function (or functionality).
- each service module 600 provides a microservice, a nanoservice, and the like. As seen in FIG.
- each service module 600 includes an application layer 360, a data storage layer 370, a data processing layer 380, and an event stream layer 390, where the application layer 360, the data storage layer 370, the data processing layer 380, and the event stream layer 390 support the specific function of the service module 600.
- the API gateway 520 determines that the function associated with the request is an authentication function
- the API gateway 520 routes the request (and any associated data) to a service module 600 that supports or provides an authentication function.
- the gateway layer 350 (via the electronic processor 200) routes the request to an application layer that provides application functionality corresponding to the function associated with the request (for example, the application layer 360).
- the method 400 includes receiving, within the application layer
- the application layer 360 includes a load balancer 525, as illustrated in
- the load balancer 525 provides functionality that improves the distribution of workloads relating to those requests.
- the application layer 360 In in response to receiving the request from the gateway layer 350 (at block 415), the application layer 360 (via the electronic processor 200) performs the application functionality corresponding to the function (at block 420). In other words, application functionality associated with the application layer 360 is triggered (via the electronic processor 200 executing application functionality associated with the application layer 360). The triggering of the application functionality associated with the application layer 360 is depicted by a compute component 527 in FIG. 5.
- the receipt of the request triggers the application layer 360 (via the electronic processor 200) to interact with the data storage layer 370.
- the application layer 360 may interact with the data storage layer 370 by reading (or accessing) stored data from the data storage layer 370.
- the application layer 360 reads data from the data storage layer 370 and provides (or transmits) the read data as an output (or response) to the user device 105 (for example, as a response body).
- the application layer 360 may access the data storage layer 307 to read a processed application event, a machine learning model, an artificial intelligence model, and the like.
- the data storage layer 370 may include a managed database, a file system, a machine learning model database, an artificial intelligence model database, an alternative data storage technology, or a combination thereof.
- the data storage layer 370 includes a managed database 530 and an artificial intelligence model database 535.
- the application layer 360 via the electronic processor 200 executing application functionality, may interact with the data storage layer 370 by reading (or accessing) data from the managed database 530, the artificial intelligence model database 535, or a combination thereof.
- the receipt of the request triggers the application layer 360 (via the electronic processor 200) to interact with the event stream layer
- the application layer 360 interacts with the event stream layer 390 by writing (via the electronic processor 200) an application event (for example, an application write) to the event stream layer 390.
- the application layer 360 includes the data read from the data storage layer 370 as part of the application event.
- the method 400 also includes receiving, within the event stream layer 390 (via the electronic processor 200), the application event from the application layer (at block 425).
- the application layer 360 (via the electronic processor 200) generates an application event based on the request and transmits the application event to the event stream layer 390 for event aggregation.
- the event stream layer 390 provides event aggregation functionality.
- the event stream layer 390 includes an event aggregator 540.
- the event aggregator 540 aggregates (or combines) application events received from the application layer 360.
- the event stream layer 390 may store application events in an event storage 545.
- the method 400 also includes accessing, within the data processing layer 380 (via the electronic processor 200), the application event from the event storage 545 (at block 430).
- the method 400 also includes processing, within the data processing layer 380 (via the electronic processor 200), the application event (at block 435).
- the data processing layer 380 (via the electronic processor 200) accesses one or more application events from the event storage 545 for processing.
- the data processing layer 380 (via the electronic processor 200) processes the one or more application events using an extract, transform, and load (ETL) procedure.
- ETL extract, transform, and load
- the data processing layer 380 extracts an application event from the event storage 545, transforms the application event (for example, into a different format or structure), and loads the transformed application event to, for example, the data storage layer 370.
- the data processing layer 380 utilizes the notion of notifications and queues to create fan out capabilities. For example, when application events are fanned out, the application events may be processed multiple times by different compute functions. Accordingly, as seen in FIG. 5, the data processing layer 380 may include one or more notification components 550, one or more queue components 555, one or more compute functions 560, or a combination thereof.
- the data processing layer 380 (via the electronic processor 200) transmits the processed application event to the data storage layer
- the data processing layer 380 updates and maintains one or more databases included in the data storage layer 370.
- the data processing layer 380 may update and maintain (manage) the managed database 530.
- the processed application event transmitted to the data storage layer 370 by the data processing layer 380 may be stored in, for example, the managed database 530.
- the electronic processor 200 transmits a response (for example, a response body) to the request. For example, after the application event is accessed and processed by the data processing layer 380 (via the electronic processor 200), a response body is returned to the user device 105 that the request was originally received from.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
Claims
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2021262138A AU2021262138B2 (en) | 2020-05-01 | 2021-04-20 | Tiered application pattern |
| EP21795775.2A EP4143677A4 (en) | 2020-05-01 | 2021-04-20 | STAGED APPLICATION SCHEME |
| CA3172917A CA3172917A1 (en) | 2020-05-01 | 2021-04-20 | Tiered application pattern |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/864,329 | 2020-05-01 | ||
| US16/864,329 US11163537B1 (en) | 2020-05-01 | 2020-05-01 | Tiered application pattern |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2021217246A1 true WO2021217246A1 (en) | 2021-11-04 |
Family
ID=78292830
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CA2021/050534 Ceased WO2021217246A1 (en) | 2020-05-01 | 2021-04-20 | Tiered application pattern |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US11163537B1 (en) |
| EP (1) | EP4143677A4 (en) |
| AU (1) | AU2021262138B2 (en) |
| CA (1) | CA3172917A1 (en) |
| WO (1) | WO2021217246A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114024846B (en) * | 2021-11-18 | 2024-06-28 | 上海宝创网络科技有限公司 | Method and equipment for generating gateway function |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040187140A1 (en) * | 2003-03-21 | 2004-09-23 | Werner Aigner | Application framework |
| US20050262462A1 (en) * | 2004-05-20 | 2005-11-24 | Gopalakrishnan Janakiraman | Method and apparatus for designing multi-tier systems |
| US20090157872A1 (en) * | 2007-10-23 | 2009-06-18 | Microsoft Corporation | Model-based composite application platform |
| US20130332818A1 (en) * | 2012-06-06 | 2013-12-12 | Silver Solutions B.V. | System for generating reconfigurable Web application |
| US10565034B2 (en) | 2017-12-29 | 2020-02-18 | Futurewei Technologies, Inc. | Event-driven serverless function orchestration |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6995675B2 (en) * | 1998-03-09 | 2006-02-07 | Curkendall Leland D | Method and system for agricultural data collection and management |
| US20070124156A1 (en) * | 2005-11-29 | 2007-05-31 | The Boeing Company | Representing business transactions |
| US20110055318A1 (en) * | 2009-09-03 | 2011-03-03 | Sudharshan Srinivasan | Thin client system with round trip reduction using client side code generation |
| US11023215B2 (en) * | 2016-12-21 | 2021-06-01 | Aon Global Operations Se, Singapore Branch | Methods, systems, and portal for accelerating aspects of data analytics application development and deployment |
-
2020
- 2020-05-01 US US16/864,329 patent/US11163537B1/en active Active
-
2021
- 2021-04-20 WO PCT/CA2021/050534 patent/WO2021217246A1/en not_active Ceased
- 2021-04-20 EP EP21795775.2A patent/EP4143677A4/en active Pending
- 2021-04-20 AU AU2021262138A patent/AU2021262138B2/en active Active
- 2021-04-20 CA CA3172917A patent/CA3172917A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040187140A1 (en) * | 2003-03-21 | 2004-09-23 | Werner Aigner | Application framework |
| US20050262462A1 (en) * | 2004-05-20 | 2005-11-24 | Gopalakrishnan Janakiraman | Method and apparatus for designing multi-tier systems |
| US20090157872A1 (en) * | 2007-10-23 | 2009-06-18 | Microsoft Corporation | Model-based composite application platform |
| US20130332818A1 (en) * | 2012-06-06 | 2013-12-12 | Silver Solutions B.V. | System for generating reconfigurable Web application |
| US10565034B2 (en) | 2017-12-29 | 2020-02-18 | Futurewei Technologies, Inc. | Event-driven serverless function orchestration |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4143677A4 |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2021262138A1 (en) | 2022-12-08 |
| US20210342123A1 (en) | 2021-11-04 |
| EP4143677A4 (en) | 2023-09-20 |
| US11163537B1 (en) | 2021-11-02 |
| AU2021262138B2 (en) | 2026-05-07 |
| EP4143677A1 (en) | 2023-03-08 |
| CA3172917A1 (en) | 2022-11-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN116848528B (en) | Technology for automatically configuring minimal cloud service access permissions for container applications | |
| CN111279320B (en) | API repository implementing microservice configuration and management | |
| CN103514010B (en) | Automatic App Updates | |
| CN106462467B (en) | Integrated API and UI for consuming services on different distributed networks | |
| US9753786B2 (en) | Client server communication system | |
| US20080141350A1 (en) | Authentication for computer system management | |
| JP2017528844A (en) | Managing device change events in an enterprise system | |
| WO2017171932A1 (en) | Pre-formed instructions for a mobile cloud service | |
| CN109889468B (en) | Network data transmission method, system, device, equipment and storage medium | |
| CN108293047A (en) | It is connected based on context and fetches security token | |
| US9760412B2 (en) | Client server communication system | |
| AU2021262138B2 (en) | Tiered application pattern | |
| US10341420B1 (en) | Approaches for preparing and delivering bulk data to clients | |
| CN115633078A (en) | Control method of cloud mobile phone and related equipment | |
| US9367512B2 (en) | Systems and methods for dynamically updating virtual desktops or virtual applications in a standard computing environment | |
| US20240348496A1 (en) | System and method for customization of onboarding process | |
| CN116260750B (en) | Traffic mirroring methods, devices, electronic equipment, storage media and products | |
| CN112543194B (en) | Mobile terminal login method and device, computer equipment and storage medium | |
| JP5636394B2 (en) | Information processing apparatus, information processing method, and program | |
| CN114996577A (en) | Service management method, device, apparatus, storage medium, and program product | |
| WO2022133827A1 (en) | Method and apparatus for processing task processing request, and blockchain node device | |
| US20220318006A1 (en) | Secure data enclave | |
| US11979795B2 (en) | Tracking velocity information | |
| US20250315437A1 (en) | Techniques for providing synchronous and asynchronous data processing | |
| CN114490348A (en) | Data debugging method and device, electronic equipment and computer readable storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21795775 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2021795775 Country of ref document: EP Effective date: 20221201 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2021262138 Country of ref document: AU Date of ref document: 20210420 Kind code of ref document: A |
|
| WWG | Wipo information: grant in national office |
Ref document number: 11202253311H Country of ref document: SG |
|
| WWP | Wipo information: published in national office |
Ref document number: 11202253311H Country of ref document: SG |