EP2972813A1 - Dynamic user interface delivery system - Google Patents

Dynamic user interface delivery system

Info

Publication number
EP2972813A1
EP2972813A1 EP14770270.8A EP14770270A EP2972813A1 EP 2972813 A1 EP2972813 A1 EP 2972813A1 EP 14770270 A EP14770270 A EP 14770270A EP 2972813 A1 EP2972813 A1 EP 2972813A1
Authority
EP
European Patent Office
Prior art keywords
application
client
layer
native
page
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.)
Withdrawn
Application number
EP14770270.8A
Other languages
German (de)
French (fr)
Inventor
Fabio Chiussi
Parameshwar Hegde
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gadget Software Inc
Original Assignee
Beeonics Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US13/833,849 external-priority patent/US10075560B2/en
Priority claimed from US13/834,765 external-priority patent/US20140280481A1/en
Priority claimed from US13/833,669 external-priority patent/US10320885B2/en
Priority claimed from US13/833,775 external-priority patent/US10320942B2/en
Priority claimed from US13/833,589 external-priority patent/US10326825B2/en
Application filed by Beeonics Inc filed Critical Beeonics Inc
Publication of EP2972813A1 publication Critical patent/EP2972813A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Definitions

  • the internet is a communication system that interconnects the world.
  • the internet has been structured to provide connectivity to billions of users with laptops, notebooks, desktops, internet Enabled TV sets, cellular phones, smartphones like the iPhoneTM, Android' M and Blackberry m , wearable devices, and tablets.
  • the internet 1-3 connects a Client Device 1.-2 to a server 1-4 and the sen-'er to the same Client Device as illustrated in 1-1 of FIG. 1A or to another Client Device (not illustrated).
  • the Client Device 1-2 can have at least one display screen 1-8 that can be a touch sensitive screen, pen based or both.
  • the screen can display various icons or be attached to a physical keypad 1 -9. As illustrated in 1-1 , the Client.
  • the Client Devices are physical and can be either mobile, such as cellular phones, smartphones, wearable devices, and tablets, or non-mobile, such as laptops, desktops, and TV sets.
  • the Client Devices 1-2 are coupled to the internet by wired (a physical interconnect), wirelessly (waves through space), or both wired /wireless networks.
  • the wireless connectivity can be cellular (3G, 4G, etc.), Wi-Fi, Bluetooth. WiMax, etc.
  • the Client Device 1-2 runs the Application Client which is the actual appiication software running on device.
  • FIG. 1.4 also shows an Application Store 1-10 connected to the Internet.
  • the Application Store 1-10 makes application clients available for download to the Client Devices.
  • the Apple m Application Store makes Application Clients for the iPhone m and iPad I M available for download
  • the Androi iM Application Store makes Application Clients for smariphon.es and tablets running the AndroidTM Operating System available for download, etc.
  • There are Application Stores dedicated to support mobile Client Devices for example, the iPhoii i, i iPad !
  • the Cloud uses the network of the Internet to offer services to users by using a combination of hardware and software embedded in the network.
  • An Application Client can be in the Cloud, but in this case the Client Device is a "virtual" Client Device.
  • the * Virtual" Client Device has a way to provide access to the Application Client running in the cloud via a physical Client Device, For example, as in the example listed in 1-5 of FIG. IB, a web browser 1-6 running on the physical Client Device 1-2 and coupled to the client/server 1-7 in the Cloud via the Internet accesses the Application Client running in the Cloud, which performs the actual application software.
  • the Cloud there are two cases: the entire Application Client runs in the Cloud, or a smal l portion of the Application Client runs on a physical Client Device while most of the logic runs in the Cloud.
  • FIG. 2A illustrates a system 2-1 with the hardware 2-16 and software 2-15 of a Client Device 1-2.
  • the Client Device 1-2 is coupled to the Internet 1-3 via wireline connection or Radio Frequency (RF) wireless transmission network (wired/wireless) 2-2 and further coupled to a bank of servers 2-4 via a second interconnection 2-3 that can be wired or wireless.
  • the communication Sink is a receiver and a transmitter known as a transceiver and is coupled to either a wired connector or an antenna (not illustrated) for the wireline connection or RF wireless transmission network, respectively.
  • these links wired, wireless, cellular, Internet, etc. are called the Communication network.
  • the Communication network couples ail components together.
  • the server's bank 2-4 comprises server-0 2-11 to server- 2- 2.
  • the bank contains at least one server and these servers can be localized, coupled by an intranet, or be physically separated from one another, coupled by the Internet
  • the Operating System (OS) 2*1.3 running i the Client Device is closely coupled with the hardware 2-16, especially in case of Mobile Client Devices 1-2.
  • the hardware 2-16 comprises at least one processor 2-5 operating under the Operating System 2-13.
  • Teleprocessor 2-5 is coupled to at least one memory 2-7 and at least one communication link 2-9 via at least one bus 2-8.
  • At least one communication link 2-9 couples the Client Device to the outside world through a wired and or wireless interconnection via the transceiver.
  • the Client Device offers the user at least, one mode of input and one mode of output.
  • One mode of input to the Client Device 1-2 is via the touch based keypad 2-6 or through voice control (not illustrated).
  • the screen 2-10 can be a touch sensitive screen and provide a second mode of input.
  • the screen 2-10 can provide an output response or sound can provide a second mode of output known as voice output (not illustrated).
  • Other hardware components such as MEMS, power supplies, etc, are not mentioned but are well-known by those skilled in the art.
  • a set of applications or Application Cl ients 2-14 run on the Client. Device are coupled to the Operating System 2-13.
  • the Client Device is one of a plurality of Client Devices coupled to the Internet 1-3.
  • An Application Store 1-10 connected 2-21 to the internet
  • FIG. 2B illustrates that when the term server 2-20 is used, this server is a sub-set representation of a Computer hardware 2-17, which can contain software 2-18, a database 2-19 and the server 2-20 itself. Other components not illustrated are the memory, power supply, etc. One skilled in the art is knowledgeable of other components contained in this device and will not be described further. All servers used in. this specification are substantially the same as the server 2-20, Furthermore, a pluralit of servers and a plurality of databases can be embedded in the Computer hardware 2-1.7.
  • Client Device encompasses the device being Mobile, Non-Mobile, or located in the Cloud.
  • Mobile Client Device will be used for mobile devices
  • Non-Mobile Client Device will be used for non-mobile devices
  • Cloud Client Device will be used for the device formed in the Cloud.
  • FIG. 3A and FIG. 3B present two different types of Application Clients. This distinction is especially relevant in the case of mobile Client Devices, but is also applicable to non-mobile Client Devices, FIG. 3A shows a Native Application Client 3-1 and how it relates to the layered stacks of the hardware/software representation of a Client Device 1-2.
  • the Nati ve Application Client 3-1 is an executable which runs directly on the Operati ng System 2-13 of the Client Device 1-2, which in turn runs on the hardware 2-16 of the Client Device 1-2.
  • the Operating System 2-13 provides a set of system libraries 3-5, which the Native Application Client uses 3-2.
  • the Native Application Client 3-1 is compiled to mn on the Operating System of the Client Device.
  • the Native Application Client needs to be downloaded to the Client Device and installed on the Client Device in order to ran on the Client Device.
  • FIG * 3B shows a Non-Native Application Client 3-1 h and how it relates to the layered stacks of the hardware software representation of a Client Device l-2a.
  • the Non-Native Application Client 3 ⁇ l h does not run directly on the Operating System 2-13h of the Client Device, but instead uses a web browser 3-3 installed on the Client Device in order to run.
  • the Non-Native Application Client 3-1 h is written in a programming language that is understood by the web browser running on the Client Device. The most common example of such a language is HTML5.
  • the web browser running on the Client Device contains a HTML5 parser 3-4 that is used to interpret the code of the Non-Native Application Client 3-1 h.
  • the Non-Native Application Client 3- Ih does not depend on the Client Device l-2a since it does not run directly on the Operating System 2»13h but instead uses the web browser 3-3 running on the Client Device l-2a.
  • the Non-Native Application Client 3-1 h can ran on any Client Device l-2a that runs a web browser 3-3 capable of understanding the language which, the Non-Native Application Client is written in.
  • the web browser 3-3 may depend on the Client Device l-2a, but the Non-Native Application client does not depend on the Client Device.
  • the Operating System 2-13 runs on the hardware 2-16h.
  • FIG. 4A An approval and download process in the Application Store is illustrated in FIG. 4A, A Business Entity 4-1 creates new application which comprises a new Native Application Client 3-1.
  • the new Native Application Client 3-1 is submitted 4-3 to the Application Store 1-10 for an approval process 4-4.
  • a Client Device 1-2 which desires the Native Application Client 3-1 downloads the Native Application Client from the corresponding
  • an iPhone L ⁇ downloads its desired Native Application Client from the Apple iM Applicatio Store
  • an Android i M device downloads its desired Native Application Client from the Android 1 ** Application Store, etc.
  • the Native Application Client is downloaded to the Client Device, it is installed on the Client Device so it can run on the Operating System of the Client Device.
  • the client now contains a "native" application coupled to the Operating System 2-13 (see FIG. 2A and FIG, 3A) of the Client Device.
  • the Native Mobile Application Client executable depends on the Operating System (OS) as an i Phone would require a different executable than an Android 5 M phone.
  • the Updated Native Applicatio Client 4-7 must be re-submitted 4-8 to the Application Store approval process 4-4 and re-accepted 4-9 in order for the updated Native Application Client to be made available in the Application Store 1-10 for download and installation 4-1.0.
  • a Client Device 1-2 which desires the updated Native Application Client 4-7 must download 4-10 the updated Native Application Client again from the Application Store 1-10 and re-install the Native Application Client on the Client Device 1-2. The process of updating an existing Native Application Client takes considerable time and effort.
  • the Business Entity 4-1 must re-submit the Native Application Client to the Application Store, which requires considerable time and effort since the submission procedure is typically laborious and time-consuming.
  • the Application Store must expend funds to re-approve the ne executable and the approval process may take considerable time.
  • the store must distribute the new Native Application Client to the Client Device.
  • a Client Device 1-2 which desires the updated Native Application Client must go back to the Application Store 1-10 and download the updated version of the Native Application Client and re-install it on the Client Device 1-2.
  • the existing Nati ve Application Client 4-2, if running on the Client Device 1-2. must be stopped and deleted from the memory of the Client Device 1-2 in order for the updated Native Application Client 4-7 to be installed on the Client Device 1-2.
  • An existing Native Application Client 4-2 cannot be updated while it is running on the Client Device 1-2.
  • An. existing Native Application Client 4-2 cannot manage the update process, but must rely on an update manager or an external installation manager software or upda te manager software running on the Operating System of the Client Device to delete the existing Native Application Client, download and re-install the updated Native Application Client 4-7, and complete the update process.
  • the Updated Native Application Client is downloaded and installed while the existing Application Client is running on the Client Device.
  • a preferred embodiment of the invention is a method to divide a Native Application Client in two layers, a Native Layer which runs directly on the Operating System of the Client Device and a Dynamic Layer that runs on the Native Layer.
  • the functionality provided by the two layers constitutes the functionality of the Native Application Client.
  • the Native Layer is downloaded from the Application Store.
  • the Native ' Layer is modified, a new version of the Native Layer is downloaded from the Application Store and installed on the Client Device.
  • the existing Native Layer is running on the Client Device, it needs first to be stopped, in order for the new version of the Native Layer to be reinstalled, if the Busmess Entity desires to modify the existing Native Layer, it needs to submit a new version of the existing Native Layer for approval to the Application Store.
  • the Dynamic Layer can be downloaded from the Application Store, but it can also be downloaded directly from an Application Server that is part of the System Solution.
  • the Dynamic Layer can be downloaded directly from an Application Server that is part of the System Solution while the Native Application Client is running on the Client Device.
  • the Business Entit desires to modify the existing Dynamic Layer, it can generate a new version of the Dynamic Layer and make it available for download to the Client Device while the Native Application Client is running on the Client Device.
  • the Business Entity does not need to submit the updated Dynamic Layer to the Application Store to make it available for download to the Client Device,
  • the Business Entity modifies the functionality and user experience offered by the Native Application Client to the end user,
  • Another embodiment of the invention is a method to divide the Native Application Client in a plurality of Pages, and dividing each of the Pages into a Page Surface and a Page Foundation, and grouping all the Page Surfaces to constitute the Dynamic Layer and all Page Foundations to constitute the Native Layer of the Native Application Client.
  • each Page comprises a plurality of Eiemenis, Navigation Elements, Navigation Rules, Actionable Elements, FlilaWe Elements, and Native Logic, each Element further comprising a plurality of Sab-Elements and the Native Logic further comprising Orchestration, Native Client Functional Blocks, and an Update Manager.
  • Each the Element and each the Sub-Element is associated with a Dynamic Property.
  • the Dynamic Property has one of two values: static and dynamic. By setting the dynamic property of each Element or Sub-Element equal to "dynamic”, the Element or Sub-Element is made part of the corresponding Page Surface. By setting the dynamic property of each Element or Sub-Element equal to "static”, the Element or Sub-Element is made part of the corresponding Page Foundation.
  • the Native Logic is part of the Page Foundation.
  • the Navigation Rules consist of Navigation Conditions which are part of the Page Foundation and Navigation Parameters which are part of the Page Surface.
  • the Business Entity ca change the application flow of the Native
  • Another embodiment of the invention includes the Native Application Client consisting of a Dynamic Layer and a Native Layer.
  • the Native Application Client while running on the Client Device, requests and downloads an updated Dynamic Layer from an Application Server part of the System Solution, using an Update Manager contained in the Native Layer and a Dynamic Update
  • the Native Application Client while running on the Client Device, requests and downloads from an Application Server which is part of the System Solutio only the Page Surfaces that are pari of the updated Dynamic Layer that are desired by the End User.
  • Another embodiment of the preferred invention includes the apparatus comprising Computing devices with dedicated servers running the System Solution that, based on. the a Service Representation selected by the Business Entity and a Business Entity Data, runs an Automatic Data Model Generator.
  • This Automatic data Model Generator places the widely varying and random data positioning from any Business Entity into a well-defined Data Model which acts as an interface between the Automatic Data Model Generator and an Aotomatic Application Generator.
  • the Automatic Application Generator uses the data from the data model to autonia.tica.lly generate an Application comprising a plurality of Application Components, including an Application Server, a set of Two-Layer Native Mobile Application Clients, a. set of Two-Layer Non-Native Non-Mobile Application Clients, Non Native Mobile Application Clients, Client server protocoi, dashboards and other components. All these Applicatio Components implement the desired functionality of the Application for the Business Entity.
  • the Dynamic [.aver of the Native Mobile Application Clients in the set of generated Two-Layer Native Mobile Application Clients can be downloaded to the Client Devices using the generated Application Server and die generated Client server protocol.
  • the Dynamic Layer of the Native Non-Mobile Application Clients in the set of generated Two- Layer Native Non-Mobile Application Clients can be downloaded to the Client Devices using the generated Application Server and the generated Client server protocoi.
  • the generated Dashboards can be used by the Business Entity to modify the Dynamic Layer of the Two-Layer Native Mobile Application Clients and the Two-Layer Native Non-Mobile Application Clients, and to modify the Non-Native Application Clients.
  • the generated Dashboards are automaticall generated using the Page Surfaces as inputs.
  • the System Solutio also generates a set of validation and consistency rules that are used to validate the correctness of the generated Application Components.
  • a System Apparatus comprising a System Solution with at least one first server coupled to at least one Computing device, a plurality of Client Devices where each Client Device is running an Operating System, a Communication network that couples the plurality of Client Devices and the at least one first server together, a System Libraries provided by the Operating System, a Two-Layer Native Application Client with a Native Layer and a Dynamic Layer, the Native Layer runs on the Operating System using the System Libraries, and the Dynamic Layer only uses functionality and a set of libraries provided by the Native Layer.
  • the System Apparatus further comprising an Application Store approves the Two-Layer Native Application Client, and an approved Two-Layer Native Application Client is downloaded to the plurality of Client Devices, and further comprising a Business Entity develops a new functionality for the approved Two-Layer Native Application Client coupled to the plurality of Client Devices with an Updated Dynamic Layer, and the System Apparatus further comprising a System Solution or the Business Entity stores the Updated Dynamic Laye on an Application Server, and the System Apparatus further comprising an Update Manager in the Native Layer of the plurality of Client Devices insures that the Updated Dynamic Layer is downloaded to the plurality of Client Devices from the Application Server bypassing an approval process of the Application Store, and wherein the Updated Dynamic Layer updates the existing Dynamic Layer in the Two-Layer Native Application Client while the Two-Layer Native Application Client is running on the plurality of Client Devices.
  • the System Apparatus further comprising the approved Two- Layer Native Application Client comprises a plurality of pages each with at least one button where the buttons are Navigation Elements.
  • the System Apparatus wherein each page can be in use Page State or in a standby Page State.
  • the System Apparatus • further comprising a Conditional Navigation determines if a Navigation Element is displayed in a Starting Page and if so what page or pages of a second plurality of pages are linked to the Starting Page.
  • a System Apparatus comprising a System Solution with at least one first server coupled to at least one Computing device, a Business Entity Data of a Business Entity loaded on a server, tillable entries of Dashboards filled by the Business Entity, the Dashboards controlled by the System Solution automatically generates a Dynamically Updated Data Model, and the Dynamically Updated Data Model and an Automatic Application Update Generator automatically generates a set of Dynamically Updated Applications Clients.
  • the System Apparatus further comprising the set of Dynamically Updated Applications Clients includes a Dynamically Updated Native Mobile- Application Client, a set of Dynamically Updated Native Non-Native Mobile Application Client, a Dynamically Updated Non-Native Mobile Application Client, Dynamically Updated Non-Mobile and Cloud Application Clients and a Dynamically Updated Searchable Application Representation.
  • the System Apparatus further comprising each the Dynamically Updated Applications Client are downloaded to a corresponding Client Device via a Communication network.
  • each page of the Dynamically Updated Application Client comprises a Page Surface and a Page Foundation, and the Page Surface can be changed dynamically via Dashboards
  • the System Apparatus further comprising each Page Surface comprises a least one Dynamic Element, at least on Dynamic Sub-Element, and a Navigation Parameters, a Dashboard Widgets and the Page Surface coupled to an Automatic Dashboard Generator; and the Automatic Dashboard Generator automatically generates Dashboards, Dashboard Validatio Rules, and Dashboards Consistency Rules
  • the System Apparatus further comprising the Dashboard Validation Rules and the Dashboards Consistency Rules generate a plurality of Validation Controllers to show a validity and a consistency of the Dynamically Updated Data Model, and the plurality of Validation Controllers show the validity and the consistency of the set of Dynamically Updated Applications Clients.
  • a method of checking for Updates continuousl on an Application Server comprising the steps of providing a plurality of Page Surfaces, providing an Update Manager in a Native Layer that runs a Dynamic Update Protocol with the Application Server, checking the Application Server with the Dynamic Update Protocol continuously for Updated Page Surfaces or new Page Surfaces, downloading only the Updated Page Surfaces or the new Page Surfaces automatically to a Dynamic Layer of a Two-Layer Application Client, and checking continuously and downloading the Updates to the Two-Layer Application Client from the Application Server.
  • the method whereby the Two-Layer Application Client is a Two-Layer Native Mobile Application Client or a Two-Layer Native Non-Mobile Application Client The method further comprising the steps of providing plurality of Elements with an Element Dynamic Property in a Page Surface, providing a plurality of Sub-Elements with a Sub-Element Dynamic Property in the Page Surface, minimizing bandwidth usage in a Communications network by not downloading Non-Updated Sub-Elements, Non-Updated .Elements, or Non-Updated Page surfaces from the Application Server to the Two-Layer Application Client.
  • the method further comprising the steps of allowing a Business entity to change the functionality without the approval of the Application Store.
  • the method further comprising the steps of changing the functionality without stopping, deleting, and re-installing the Two-Layer Application Client, and changing the functionally while the Two-Layer Application Client is running.
  • FIG. 1A depicts a Client Device coupled to a server and an Application Store and provides some examples of Client Devices.
  • FIG. IB depicts a Client Device coupled to a client/server.
  • FIG. 2 shows a Client Device with a coupling to a bank of servers, an Application Store, and the internal hardware/software structure of the Client Device.
  • FIG. 2B depicts a more detailed description of a server being a subset of Computer hardware with software, a Database and the server.
  • FIG. 3A presents a Native Application Client and haw it relates to the layered stacks of the hardware/software representation of a Client Device.
  • FIG. 38 illustrates a Non-Native Application Client and how it relates to the layered stacks of the hardware/software representation of a Client Device.
  • FIG. A shows the flow of how a Native Application. Client is approved and downloaded by an Application Store to a Client Device.
  • FIG. 4B illustrates the flow of how a new Updated Native Application Client is approved and downloaded by an Application Store to a Client Device.
  • FIG. 5 depicts a description of automatically generating client applications in accordance with the present invention.
  • FIG. 6 shows a Two-Layer Application Client in a Client Device in accordance with the present invention.
  • FIG. 7 presents a Business Entity submitting a Two- Layer Application Client for approval and download to an Application Store for availability to other Device Clients in accordance with the present invention.
  • FIG. 8 shows a Business Entity submitting an Updated Dynamic Layer of a Native Application Client for availability to other Device Clients via an Application Server in accordance with the present invention.
  • FIG. 9A illustrates an Application Client with a plurality of Pages each with a plurality of buttons in accordance with the present invention.
  • FIG. 9B depicts a button i a Starting Page navigating to an Ending Page i accordance with the present invention.
  • FIG. 10 illustrates the Elements, Sub-Elements, Native Logic, and other components in a Page in accordance with the present invention.
  • FIG. 11 shows a Navigation Rule, ' Navigation Element, and Navigation Link in accordance with the present invention.
  • FIG. 12 illustrates the way the ' Navigation. Rule operates in accordance with the present invention.
  • FIG. 13 depicts a Page Graph that captures all the Navigation Rules and navigation Links in all the Pages in accordance with the present, invention.
  • FIG. 14 illustrates the notion of a Page Surface and a Page Foundation in accordance with the present invention.
  • FIG. 15 depicts the assignment of Elements and Sub-Elements to either a Page Surface or a Page Foundation in accordance with the present invention.
  • FIG. 16 illustrates a Two-Layer Auiomatic Application Client Generator in accordance with the present invention.
  • FIG. 1.7 depicts the detai is of the Auiomatic Client Generator in accordance with the present invention.
  • FIG. 18 shows Dashboards used to Update the Dynamic Layer in accordance with the present invention.
  • FIG. 19 depicts Surfaces automatically generating Dashboards i accordance with the present invention.
  • FIG. 20 shows an Update Manger continuously checking for Updates on an Application
  • FIG. 21 illustrates updating Surfaces that have changed in accordance with the present invention.
  • the System Solution offers the ownership, control and beneficial use of this inventive idea.
  • the System solution offers the beneficial use to the Business Entity by providing Applications for the Business Entity.
  • the Applications provided by the System Solution comprise a plurality of Application Components, and include Native Application Clients that run on Mobile, Non-Mobile, and Cloud Client Devices. These Native Application Clients can be modified by the Business Entity using Dashboards and can be downloaded to the Client Devices without the Business Entity having to submit the modified Native Application Client to the corresponding Application Store.
  • the System Soiuiion is the owner of all Application Components automatically generated by the System Solution.
  • the System Solution creates and hosts Applications for different Business Entities (each Business Entity is a System Solution customer).
  • the System Solution provides a complete environment for the creation, hosting, updating, and management of the Application,
  • the Application Servers generated by the System Solution for ail Business Entities are hosted in a multi- tenant environment in the Cloud, but each Business Entity "feels" like it is provided a dedicated Application Server.
  • the System Soiuiion architecture also applies with minor changes to a scenario where the System Solution Application Server run on dedicated servers owned by the Business Entity, rather than In the Cloud. In this scenario, the System Soiuiion has access to control and offer beneficial use for those servers that are coupled to the Cloud.
  • Business Entities deploy their Applications to reach Consumers (i.e, the customers of that Business Entity served by System Solution).
  • the Consumers are the primary End Users of the Application Clients generated by the System Solution.
  • the Business Entities are the End Users of the Dashboards and the Application Server that the System Solution provides to each Business
  • Mobile Client Devices cellular phones, smartphones, wearable devices, and tablets
  • Non-Mobile Client Devices laptops, desktops, and Internet-enabled TV sets
  • wired a physical interconnect
  • wireiessly waves through space
  • both wired /wireless networks The wireless connectivity can be cellular (3G, 4G, etc , Wi-Fi, Bluetooth, WiMax, etc.
  • the network interconnecting these components is called the Communication network.
  • the Client Device has the Application Client which is the actual application software running on device.
  • the term Mobile Client at times will be referred to as the Client Device.
  • the term Application highlights the fact that the application built by the System Solution comprises a plurality of Application Components, and includes a portion of the Application that, rims on the Client Device (the Application Ciient) and a portion of the application that runs on a server (the Application Server).
  • the term “Application Client” refers to the portion of the application running on the Client Device a d is used to refer to both Native and Non-Native Application Client
  • the term “Application Client” encompasses the Application Client running o a mobile Client Device, a non-mobile Client Device or even in the Cloud
  • the term “Mobile Application Client” will be used for both Native and Non-Native Application Clients running on a mobile Ciient Device, but it also applies to Client Devices that are non-mobile or in the Cloud.
  • the Cloud can run a portion of the Application ⁇ " Merit in the server while the remaining portion of the Application Client can run on the Client Device, simultaneously.
  • the Application Client can be a part of the software running on the mobile or non-mobile Client Device or can be partially in the Cloud.
  • the Client Devices provide the End User with at least one mode of input and at least one mode of output through which the End User navigates and interacts with the Application Client.
  • Each Application includes a family of Application Clients. Each Application Client corresponds to a certain Client Device.
  • the family of Application Clients includes a set of Native Mobile Application Clients, one per mobile platform.
  • the family of Application Clients also mcludes a set of Native Non-Mobile Application Clients, one per non-mobile platform.
  • the family of Application Clients also includes Non-Native Mobile and Non-Mobile Application. Clients, and Application Clients residing in the Cloud.
  • Some examples of the mobile platforms include the iPhone f , iPad ! , Android 1M phones, or tablets while the non-mobile platforms include the Apple Mac Operating System and the Microsoft Windows Operating System.
  • Mobile Application Client or more succinctly Mobile Client to refer to any Mobile Client in the family of Mobile Clients corresponding to an Application generated by the System Solution.
  • FIG. 5 depicts a method and apparatus to automatically generate an Application consisting of several Application Components.
  • a Business Entity 4-1 defines a Service Representation S- l and Business Entity Data 5-2.
  • An Automatic Data Model Generator 5-3 takes the Service Representation 5-1 and the Business Entity Data 5-2 as inputs and automatically generates a Data Model 5-4. Using the generated Data Model 5-4, an Automatic Application. Generator 5-5 automatically generates all the Application Components.
  • the generated Application Components include an Application Server 5-6, a set of Native Mobile Applicatio Clients 5-7, a set of Native Non-Mobile Application Clients 5-8, a set of Non-Native Application Clients 5-9, Client Server Protocols 5-10, Dashboards 5-11, and Other Application Components 5-12.
  • the set. of Native Mobile Application Clients 5-7 comprises a Native Application Client executable for each mobile Client Device that the Native Mobile Application Client is desired to run on.
  • the set of Native Non- Mobile Application Clients 5-8 comprises a Native Non-Mobile Application Client executable for each non-mobile Client Device that the Native Non-Mobile Application Client is desired to run on.
  • the method and apparatus depicted in FIG. 5 is explained in detail in the co-filed U .S. Patent Application Ser. No.
  • a Client Device which desires the new version of the Native Application Client must go hack to the Application Store to again download and re-install the Native Application Client, If the existing Native Application Client is running on the Client Device, it must first be stopped and deleted before the new version of the Native Application Client is installed.
  • the Native Application Client cannot be updated "on the fly" while it is running on the Client Device.
  • the lipdate and re-installation process is a time-consuming and inconvenient process. The user experience of the Native Application Client is disrupted while the Native Application Client is terminated and re-installed.
  • FIG. 6 depicts a Two-Layer Native Application Client 6-1 which is a Native Application Client that consists of two layers: a Dynamic Layer 6-5 and Native Layer 6-2.
  • the Native Layer 6-2 runs 3-2 directly on the Operating System 2-13 of the Client Device 1-2 by using the system libraries 3-5 that are part of the Operating System 2-1.5.
  • the Operating System in turn runs on the hardware 2-16.
  • the Dynamic Layer 6-3 does not run directly on the Operating System 5-5, but instead runs on the Native Layer 6-2 by making use of software libraries and functional blocks provided in the Native Layer 6-2,
  • the Native Layer 6-2 and the Dynamic Layer 6-3 together implement the functionality and user experience offered, by the Two-Layer Native Application Client 6-1.
  • the Native Layer 6-2 is an executable that depends on the Client Device 1-2 and needs to be downloaded and installed on the Client Device 6-2 using an installation manager external to the Two- Layer Native Application Client 6-1.
  • the Native Layer 6-2 needs to be downloaded from the Application Store.
  • the Dynamic Layer 6-3 does not need to he downloaded from the Application Store, but can be downloaded directly from an Application Server that is part of the System Solution.
  • FIG, 7 illustrates the process of downloading the Two-Layer Native Application Client 6-1 to a Client Device 1-2 for the first time. This process is similar to the process of downloading a Native Application Client 3-1 to the Client Device depicted in FIG. 4A.
  • a Business Entity 4-1 creates a new application which comprises a Two-Layer Native Application Client 6-3.
  • the Two- Layer Native Application Client 6-1 has a Dynamic layer 6-3 and a Native Layer 6-2.
  • the new Two-Layer Native Application Client 6-1 is submitted 4-3 to the Application Store 1-10 for an approval process 4-4.
  • Once the new Two-Layer Native Application Client is accepted 4-5 information is passed to the Application Store 1.-10 to .make the new Two- Layer Native Application Client available for download 7-1 into a Client Device 1-2.
  • a Client Device 1-2 which desires the Two-Layer Native Application Client 6 ⁇ I downloads the Two-Layer Native Application Client from the corresponding Application Store 1-10.
  • an iPhoneTM downloads its desired Native Application Client from the Apple 1 M Application Store
  • an Android 1 * device downloads its desired Native Application Client from the Android 1 M Application Store
  • the Operating System in turn runs on the hardware 2-16.
  • the Two-Layer Native Mobile Application Client 6-1. executable depends on. the Operating System (OS) as an iPhone would require a different executable than an Android m phone
  • FIG. 8 illustrates the process of downloading an updated Dynamic Layer 8-2 to the Client Device.
  • the Business Entity 4-1 desires a New Functionality of the Native Application client 8-1
  • the Business Entity 4-1 modifies the Dynamic Layer 6-3 and creates an Updated Dynamic Layer 8- 2
  • the Updated Dynamic Layer 8-2 is available for download directly from an Application Server 8- 3 that is part of the System Solution or is owned by the Business Entity.
  • the new version of the Updated Dynamic Layer 8-2 of the previous Dynamic Layer 6-3 is made available for download to the Client Device without having the Business Entity siibmit it for approval to the Application Store 1-10.
  • the updated Dynamic Layer 8-4 is downloaded and installed 8-4 in the Client Device 1-2 while the Two-Layer Native Application CHeut 6-1 is running o the Client Device.
  • the update of the existing Dynamic Layer can be achieved using an update manager 8-5 that is internal in the Native Layer 6-2 of the Two-Layer Native Application Client 6-1.
  • the Updated Dynamic Layer 8-7 is installed on the Client Device 1-2, the new application client functionality and new user experience 8-6 is provided to the end user.
  • the Operating System 2-13 running on the hardware 2-16 in the Client Device 1-2.
  • the Two-Layer Native Application Client 6-1 provides several benefits.
  • the Business Entity can change the functionality of the Two-Layer Native Application Client 6-1 without resubmitting the Native Application Client to the approval process of the Applicatio Store, which is laborious and time consuming.
  • the functionality of the Two-Layer Native Application Client 6-1 can be changed "on the fly” while the Native Application Client is running on the Client Device, without disrupting the user experience offered by the Native Application Client.
  • the updated Dynamic Layer 8-2 can be downloaded and installed in the Client Device "automatically' * by the Two-Layer Native Application Client using an update manager 8-5 internal to the Native Layer 6-2 of the Two-Layer Native Application Client 6-1.
  • the Two-Layer Native Application Client 6- 1 can be updated "transparently" without requiring any actio from the end user.
  • the internal update manager 8-5 can make sure that the Dynamic Layer running on the Client Device 1-2 is always the latest version of the Dynamic Layer 8-7, by querying the Application Server asking whether there is a newer version of the Dynamic Layer than, the version of the Dynamic Layer 8-7 currently running on the Client Device, and downloading and installing the latest version when it is made available by the Business Entity 4-1.
  • the updated Dynamic Layer 8-2 is downloaded from an Application Server owned by the System Solution or by the Business Entity, rather than having to be downloaded from the Application Store 1-10.
  • FIG. 9A illustrates the structure of an Application Client 9-2, including a Native Application Client and a Two-Layer Native Application Client.
  • the Appiication Client 9-2 comprises a plurality of Pages which comprises Page 1 9-3, Page 2 9-4, Page 3 9-5, and Page N 9-6.
  • the Pages 9-3 to 9-6 are presented to the end user via a User Interface. Buttons in each Page allow the end user to "navigate" from one Page to another.
  • Each Page contains a sub-set of the plurality of Buttons 9-7 to 9-15,
  • Each Button 9-7 to 9-15 connects one Page to another Page in the Application Client 9-2 as illustrated by the arrows coupling the buttons to different pages.
  • a pre-configured Page in the plurality of Pages 9-5 to 9-6 is displayed to the end user.
  • Page 1 9-3 is displayed to the end user.
  • the end user navigates to the other Pages using the Buttons.
  • Navigation Elements or Buttons include buttons themselves, tabs, navigation bars, tappable elements such as an address, a thumbnail, or a piece of text that when tapped navigates the end user to another Page.
  • Buttons or Navigation Elements can even be "implicit,” i.e., not be shown explicitly to the end user.
  • an "implicit" button may navigate the user from one Page to another Page, after a certain time lapses or if a certain event occurs.
  • FIG. 9B illustrates the navigation of an Appiication Client, including a Native Appiication Client and a Two-Layer Native Application Client.
  • Button 9-17 or Navigation. Element is shown on the User Interface of a Starting Page 9-1 , If the end user taps or clicks the Button 9-17, it "navigates" to the Ending Page 9-18, meaning that the Application Client 9-2 displays the User Interface of the Ending Page 9-18 to the end user.
  • FIG. 10 shows the structure of a Page 10-2 in the plurality of Pages that comprise a Two- Layer ' Native Application Client.
  • the Page comprises a plurality of Elements comprising Element .1 10-3 to Element N 10-5.
  • each Element comprises a plurality of Sub-Elements.
  • Element 1 10-3 comprises Sub-Element 1-1 10-11. to Sub-Element 1 - 10-1.3.
  • Element 2 .10-4 comprises Sub-Element 2-1 10-14 to Sub-Element 2-N 10-16.
  • Element N 10-5 comprises Sub- Element N-l 10-17 to Sub-Element -N 10-19.
  • an Element 10-3 to 10-5 may be the Page itself, a Ui Region (i.e., a portion of the Page), a widget, a building block, a piece of content, a navigation structure, a button, a tab, etc.
  • Examples of Sub-Elements 10-11 to 10-19 include a Background, a Content, Pictures, text, shape, text box, video, position, format, etc.
  • a Background which is typically an image covering the entire are of the Eiement.
  • the other possibilities includes a Content which includes Pictures and Text, a Picture which is an image, a Shape, a Text Box which is an imaginary "box" defining an area where text is displayed, a Video, a Position which consists of a -Coordinate and a Y -Coordinate, a Size which consists of a Width and a Height, a Text, and a Format which may include a Font, a Font Size, an Alignment, and a Font Color for a Text Box.
  • a Content which includes Pictures and Text
  • a Picture which is an image
  • a Shape a Text Box which is an imaginary "box" defining an area where text is displayed
  • a Video a Position which consists of a -Coordinate and a Y -Coordinate
  • a Size which consists of a Width and a Height
  • a Text and a Format which may include a Font, a Font Size, an Al
  • One or more of Elements 10-3 to 10-5 are associated with a function, an action, or data. They are called Actionable Elements 10-10. For example, a line of text containing the Expiration Date of a Promotion is an Actionable Element, which is used by the Application. Client to validate whether that Promotion is still active or needs to be retired.
  • Actionable Elements 10-10 For example, a line of text containing the Expiration Date of a Promotion is an Actionable Element, which is used by the Application. Client to validate whether that Promotion is still active or needs to be retired.
  • One or more of Elements 10-3 to 10-5 are associated with data that should be filled. They are called Filiabie Elements 10-8 There are three types of Filiabie Elements 10-8.
  • a Locally Filiabie Element contains data that should be filled locally (i.e., using logic and dat available in the Application Client) when the Eiement is displayed.
  • a Service which greets the Consumer by first name, may use a text Filiabie Element which gets filled by the end user's first name.
  • a Server Filiabie Element contains data that should be filled by the Application Server.
  • the Application Client may request the data from the Application Server using a Client/Server protocol.
  • An Input Element is a Fiiiable Element which receives an end user's action that needs to be communicated to the Application Client or Application Server.
  • One or more of Elements 10-3 to 10-5 are Navigation Elements 10-9 or
  • the Page 10-2 also includes one or more Navigation Rule 10-7.
  • a Navigation Rule is associated with a Navigation Element 10-9 or button and defines the "navigation" provided by the Navigation Element 10-9.
  • the Page 10-2 includes Native Logic 10-6 which consists of an Orchestration 10-20, a set of Native Client Functional Blocks 10-21 and an Update Manager 8-5.
  • the Native Client Functional Blocks 10-21 are described in detail in the co-filed U.S. Patent Application Ser. No. 13/833,589 titled ''Apparatus for Single Workflow for Multi-Platform Mobile Application Creation and Delivery" and in U.S. Patent Application Ser. No. 13/833,669 titled Method for Single Workflow or Multi-Platform Mobile Application Creation ami Delivery * filed on March 15, 2013, which are incorporated in reference in their entirety.
  • a Page can be in one of two Page State 10-L
  • a Page in "In Use” Page State is a Page currently displayed to the end user by the Native Application Client A. Page in "Standby 5 " Page
  • FIG. 11 depicts the behavior of a Navigation Rule 10-7, which is associated to a Navigation Element 10-9 which is part of a Starting Page 9-16 in the plurality of Pages comprised in a Two- Layer Native Application Client.
  • the Navigation Rule is evaluated when the Two-Layer Native Application Client 6-1 runs on the Client Dev ice 1-2 and determines the behavior of the associated Navigation Element 10-9, Based on the result of the evaluation of the Navigation Rule 10-7, it is determined whether the Navigation Element 10-9 should "Appear or not" 11-2 on the User interface of the Starting Page 9-16.
  • Page Node 11 contains a plurality of Pages 1.1-8 to 11-10 of which at roost one is linked to the ' Navigation Element 10-9 at any given time.
  • the Page in the plurality of Pages contained in the Page Node that is associated with the Navigation Element 10-9 at any given time is determined based on the Page State of the Pages in the Page Node and on other conditions, for example the location of the Client Device 1-2.
  • a Page Node 11-7 may comprise a plurality of Pages of which only one Page is in " n Use" Page State at any gi ven time.
  • the Page in "In Use" Page State at any given time is chosen as the Ending Page associated, with the Navigation Element at that time.
  • a Page Node comprises two Pages, both Pages in "In Use" Page State.
  • Which Page is chosen as the Ending Page associated with the Navigation Element at any given time is determined based cm the location of the Client Device 1-2 at thai time. For example, a first Page is chosen as the Ending Page if the current Client Device location is inside a store and a second Page is chosen as the Ending Page if the current Client Device location is outside the store.
  • a Page Node 11 «7 is in one of two Page States.
  • a Page Node is in "In Use” Page State if at least one of the Pages contained in the Page Node is in "In Use” Page State.
  • a Page Node is in "Standby " Page State if all the Pages contai ned in the Page Node are in "Standby” Page State.
  • FIG. 12 depicts the structure and operation of a Navigation Rule 10-7.
  • a Navigation Condition .12-1 is part of the Native Layer 6-2 of the Two-Layer Native Application Client 6-1.
  • the Navigation Condition 12-1 contains at least one Navigation Parameter 12-5.
  • the Navigation Parameter has a corresponding Navigation Parameter Value 12-2 which is part of the Dynamic Layer 6-3 of the Two-Layer Native Application Client 6-1.
  • the ' Navigation Condition is Evaluated 12-3 when the Two-Layer Native Application Client 6-1 runs on the Client Device 1-2 and a Result 12-4 is computed. Based on the Result 12-4, the Navigation Action 12-5 that defines the behavior of the Navigation Element 10-9 is determined.
  • the Navigation Action 12-5 is at least one of the "Appear or not" 11-2 or "Select one" 11-3 navigation actions, described in PIG. 11.
  • FIG. 13 depicts the Page Graph 13-1 for a Two-Layer Native Appiication Client 6-1.
  • the Page Graph 13-1 consists of ail the Navigation Rules and associated Navigation Actions and all the Navigation Links associated with ail the Navigation Elements 10-9 in the Two-Layer Native Application Client 6-1.
  • the Pages and Page Nodes i the Page Graph 13-1 may be in "In Use" Page State or "Standby" Page State,
  • the Page Graph 13-1 represents the Application Flow of the Two- Layer Native Application Client 6-1, which is an important part of the user experience provided by the Two-Layer Native Application Client to the end user.
  • the Page Graph 13-1 is used to generate the Two- Layer Native Application Client automatically and for updating the Dynamic Layer of the Two-Layer Native Application Client automatically.
  • the Business Entity 4-1 can change the Application Flow of the Two-Layer Native Application Client 6-1 while the Two-Layer Native Application Client is running, and thus can change the behavior of the Two-Layer Native Application Client dynamically.
  • the Business Entity can change the Application Flow of the Two- Layer Application Client 6-1 by generating an updated Dynamic Layer with an updated Navigation Parameter Value 12-2 and making it available in an Application Server owned by the System Solution or by the Business Entity, without the need to resubmit the Two- Layer Native Application Client to the Application Store 1-10.
  • the Navigation Rules can be computed multiple times as the Two-Layer Native Application Client is running on the Client Device 1-2, and different Results 12- 4 may be computed based on the Navigation Condition 12-1.
  • the Navigation Condition 12-1 can contain Navigation Parameters based on other conditions.
  • the Navigation Condition 12-1 may contain Navigation Parameters that depend on the location of the Client Device at the time the Navigation Condition 12-1 is Evaluated 12-3.
  • the Navigation Condition 12-1 when Evaluated 12-3 in a first location provides a first Result 12-4.
  • the same Navigation Condition 12-1 when Evaluated 12-3 to a second location provides a second, different Result.
  • Different Results produce different Navigation Actions, which in turn change the Application Flow of the Two-Layer Native Application Client based on those conditions.
  • the behavior of the Two- Layer Native Application Client can change dynamically.
  • the Page Graph 13-1 depicted in FIG, 13 shows the "actual" Application Flow at a given time, by showing the "result'' of the Navigatio Rules at that time, which is represented by the "actual” links betwee pages once the Navigation Rules are evaluated at that time, and the Page State of all the available Pages at that time.
  • the Pages which are "In Use” Page State are shown with a solid line, for example, Page 13-2 to Page 13-9 are “In Use” pages.
  • the "Standby "Page States are shown with a dotted line and includes page 13-10 to 13-15.
  • the Page Node 13-16 only has one " n Use" Page Mode belonging to page 13-5 while the remaining pages .13-10 and 13-11 are in "Standby" Page Mode.
  • the Page Node 13-17 illustrates all its internal pages 13-13 to 13-15 in the "Standby" Page Mode, and thus the Page Node 13-17 is in Standby Page State.
  • a Navigation Element that has no associated Navigation Rule is represented by a single solid arrow, for example the link between Page 13-3 and Page 13-6.
  • a Navigation Element that is associated with a Navigation Rule with a Navigation Action 2-5 "Select One" 11-2 is represented by more than one, one arrow per possible ending page.
  • One of such arrows is a solid arrow, which represents the Ending Page that is selected at that time
  • the other arrows are dotted arrow, which represent the links that are not selected at that time.
  • the link from Page 13-2 to Page 13-3 is selected by a corresponding Navigation Rule at that time
  • the link between Page 13-2 and 13-4 is not selected by such Navigation Rule at that time.
  • the Navigation rules allow the user to navigate along the solid line between Pages while the dotted lines between pages prevent the user from navigating between these Pages.
  • a Navigation Element that is associated with a Navigation Rule with a Navigation Action 1.2-5 "Appear or Not” 11-3, is represented by a solid arrow when the result of the associated Navigation Rule is for the Navigation Element to "Appear” and is represented by a dotted arrow when the result of the associated Navigatio Rule is "Do Not Appear”.
  • FIG. 14 depicts Page 10-2 in the Two-Layer Native Application Client 6-1 which consists of a Page Surface 14-2 and a Page Foundation 14-3,
  • the Page Surface can be changed dynamically and can be changed via Dashboards 14-5.
  • the Page Foundation cannot be changed without submitting the updated Application Client to Application Store 14-6.
  • the Page Surface 14-2 is part of the Dynamic Layer 6-3.
  • the Page Foundation 14-3 is part of the Native Layer 6-2 and includes the Native Logic 11-4.
  • the ' Dynamic Layer 6-3 of the Two-Layer Native Application Client 6-1 consists of the Page Surfaces 14-2 of all the Pages 10-2 comprised in the Two-Layer Native Application Client 6-1.
  • the Native Layer 6-2 of the Two-Layer Native Application Client 6-1 consists of the Page Foundations 14-3 of ail the Pages 10-2 comprised in the Two-Layer Native Application Client 6-1 ,
  • FIG. 15 shows how an Element 15-1, a Sub-Element 15-2 and a Navigation Rule 11-1 are made part of either a Page Surface 14-2 or a Page Foundation 14-3 if die Page that contains that Element, Sub-Element, or Navigation Rule.
  • the Element 15-1 is associated with m Element Dynamic Property 15-3.
  • the Element Dynamic Property 15-3 has one of two values, Static and Dynamic, if the value of the Element Dynamic Property 15-3 is Static, the associated element 15-1 is made part of the Page Foundation 14-3. If the value of the Element Dynamic Property 15-3 is Dynamic, the associated element 15-1 is made part of the Page Surface 14-2.
  • the Sub-Element 15-2 is associated with a Sub-Element Dynamic Property 15-4.
  • the Sub-Element Dynamic Property 15-4 has one of two values. Static and Dynamic, If the value of the Sub-Element Dynamic Property 15-4 is Static, the associated Sub-Element. 15-2 is made part of the Page Foundation 14-3. If the value of the Sub-Element Dynamic Property 1.5-4 is Dynamic, the associated Sub-Element 15-2 is made part of the Page Surface 14-2.
  • the Navigation Parameter Value 12-2 of Navigation Rule 11-1 is made part of the Page Surface 14-2 and the Navigation Condition 12-1 is made part of the Page Foundation 14-3.
  • FIG. 16 depicts a method and apparatus to automatically generate an Application consisting of several Application Components including a set of Two- Layer Native Mobile Application Clients 16-4 and a set of Two-Layer Native Non-Mobile Application Clients 16-5,
  • the method and apparatus described in FIG. 16 has similarities with the method and apparatus depicted in FIG. 5, which is explained in detail in the co-filed U.S. Patent Application Ser, No. 13/833,589 titled "Apparatus for Single Workflow for Multi-Platform Mobile Application Creation and Delivery ' and in U.S. Patent Application Ser, No, 13/833,669 titled ⁇ Method for Single Workflow for .Multi- Platform Mobile Application Creation and Deliver/" filed on March 15, 2013, which are incorporated in reference in their entirety.
  • FIG. 5 generates a set of Native Mobile Application Clients 5-7 and a set of Native Non-Mobile Application Clients 5-8
  • the method and apparatus described in FIG. 16 generates a set of Two- Layer Native Mobile Application Clients 16-4 and a set of Two-Layer Native Non-Mobile
  • a Business Entity 4-1 define a Service Representation 5-1 and Business Entity Data 5-2.
  • An Automatic Data Model Generator 5-3 takes the Service Representation 5-1 and the Business Entity Data 5-2 as inputs and automatically generates a Data Model 5-4, and from the Data. Model 5-4 it senerates a Common Data Model 16-1. a Server Data Model 16-2 and a Client Data Model 16-3. Using the generated Common Data Model 16-1, Server Data Model 16-2, and Client Data Model 16-3, an Automatic Application Generator 5-5 automatically generates all the Application Components.
  • the generated Application Components include an Application Server 5-6, a set of Two-Layer Native Mobile Application Clients 16-4, a set of Two- Layer Native Non-Mobile Application Clients 16-5, a set of Non-Native Application Clients 5-9, Client Server Protocols 5-16, Dashboards 5-1.1, and Other Application Components 5-12.
  • the set of Two-Layer Native Mobile Application Clients 16-4 comprises a Two-Layer Native Application Client executable for each mobile Client Device that the Native Mobile Application Client is desired to run on.
  • the set of Two-Layer Native Non-Mobile Application Clients 16-5 comprises a Two-Layer Native Non- Mobile Application Client executable for each non-mobile Client. Device that the Native Non- Mobile Application Client is desired to run on.
  • the generated Dashboards 5-11 can be used to modify the Dynamic Layer of the generated Two-Layer Native Mobile Application Clients 16-4 and Two-Layer Native Non-Mobile Application Clients 16-5.
  • the generated Dashboards 5-11 can also be used to modify the generated Non-Native Application Clients 5-9.
  • the generated Application Server 5-6 can be used to make the modified Dynamic Layer of the generated Two- Layer Native Mobile Application Clients 16-4 and Two-Layer Non-Native Mobile Application Clients 16-5 available for download to the Client Device 1-2.
  • the generated Client Server Protocols 5-10 ca be used to download the modified Dynamic Layers to the Client Device 1-2.
  • FIG * 17 illustrates the infernal components of the Automatic Client Generator 1.7-2, which is part of the Automatic Application Generator 5-5.
  • the Automatic Client Generator 17-2 uses the Client Data Model 16-3 to generate the Master Two-Layer Native Application Client 17-3 which is used by the Native Client Translation and Generator 17-4.
  • the Native Client Translator and Generator 17-4 creates the set of Two-Layer Native Mobile Application Clients 16-4, the set of Two-Layer Native Non-Mobile Application Clients 16-5, the set of Non-Nati ve Non-Mobile and Cloud Application Clients 17-20 and the Non-N ' alive Mobile Application Clients 17-21.
  • Client Validation Controller 17-5 that contains Validation Roles 17- 1.8 and Consistency Rules 17-1.9 to ensure thai the client components are generated appropriately.
  • the Native Client Functional Blocks 17-11 that feeds to a Client Orchestration Controller 17-10 which, together with the UI Generator Controller 17-12, feeds the Master Two-Layer Client Generator 17-13.
  • the TeiBplates 17-14 Inside of the UI Generator Controller 20-17 are the TeiBplates 17-14, the Widgets 17-15, and the Presentation Rules 17-16.
  • the Master Application Client 17-3 contains the Page Foundation 14-3, the Page Surfaces 14-2 for all Pages in the Application Client and the Client Database 17-17.
  • the Functional Description 17-6 the Configuration Parameters 17-7, the Integration Point Parameters
  • FI * 18 presents a Dynamic Layer Update flow which shows how the newly created Two- Layer Native Application Clients can be modified by the Business Entity 4-1 using the newly created Dashboards 5-11.
  • the Dashboards 5-1 1 that are automatically created in FIG. 17 are used by the Business Entity 4-1 to add, delete, or modify content, features, and services contained in the Dynamic Layer of the Two-Layer Native Application Clients and replace the existing set of Dynamic Layers in the Client Devices 1-2,
  • the System Solution allows the Business Entity 4-1 to modify the Data Model 5-4 and generate new Dynamic Layers.
  • the generated Dashboards 5-11 allow the Business Entity 4-1 to have control of what the Business Entity wants to present to their Customers.
  • the Business Entity 4-1 using the Dashboards 5-11 generates the Dynamically Updated Data Model 18-1 which is then applied to the Automatic Application Update Generator 1.8-2 which is a sub-set of the Automatic Application Generator 5-5.
  • the output of the Automatic Application Update Generator 18-2 generates a set of Dynamically Updated Native Mobile Application Clients
  • the set of Dynamically Updated Native Mobile Application Clients .18-3 and the set of Dynamically Updated Native Non-Mobile Applicatio Clients 18-4 are the updated Dynamic Layers of the corresponding Two-Layer Nati ve Application Clients 6-1.
  • FIG. 19 shows the Automatic Dashboard Generator 19-5, which is part of the Automatic Application Generator 5-5.
  • the Automatic Dashboard Generator 19-5 derives the Dashboards 5-11 from the Page Surface 14-2 of all the Pages comprised in die Application Client, using the Dashboard Widgets 19-4.
  • the Page Surface contains the Dynamic Element 19-2, which are the Elements 15-1 in the Page with Element Dynamic Property 15-3 of value equal to Dynamic, the Dynamic Sub-Element 19-3, which are the Sub-Elements 15-2 in the Page with Sub-Element Dynamic Property 15-4 of value equal to Dynamic, and the Navigation Parameter Values 12-2.
  • the Automatic Dashboard Generator 19-5 also generates the Dashboards Validation Rules 19-6 and Dashboards Consistency Rules 19-7 to ensure that the Dashboards 5-11 are generated correctly.
  • the Automatic Application Generator 5-5 also comprises an Automatic Application Server Generator, an Automatic Protocol Generator, an Automatic Searchable Application Representation Generator, an Automatic Business Portal Generator, and an Automatic Business Account Generator which are not described here because they are similar to the corresponding blocks explained in detail in the co-filed U.S. Patent Application Set. No. 13/833.589 titled Apparatus for -Single Workflow for Multi-Platform Mobile Application Creation and Delivery and in U.S. Patent Application Ser, No. 13/833,669 titled "Method for Single Workflow for Multi-Platform Mobile Application Creation and Deliver)?' filed on March 15, 201.3, which are incorporated in reference in their entirety.
  • FIG. 20 shows an update process with which the Update Manager 8-5 contained in the Native Layer 6-2 of the Two-Layer Native Application Client 6- J queries the Application Server 5- 6 while the Two-Layer Native Application Client 6-1 is running on the Client Device 1-2 to check if a newer version of the Dynamic Layer that is currently running on the Client Device 1-2 is available in the Application Server 5-6.
  • the Update Manager 8-5 uses a Dynamic Update Protocol 20-3, which is pan of the generated Client Server Protocols 5-10.
  • a newer version of the Dynamic Layer becomes availabie in the Application Server 5-6, it is downloaded to die Client Device using the Updated Dynamic Layer Download 20-2, and the Updated Dynamic Layer 20-1 is run on the Client Device 1-2.
  • FIG.21 shows an optimized alternative to the process described in FIG. 20.
  • the Update Manager 8-5 contained in the Native Layer 6-2 of the Two- Layer Native Application Client 6-1 queries the Applicatio Server 5-6 using the Dynamic Update Protocol 20-3 to check whether a newer versio of die Dynamic Layer that is currently running on the Client Device 1.-2 is available in the Application Server 5-6, it also provides a List of the Desired Page Surfaces 21-4 that are needed to be displayed to the end user.
  • a network and a portable system can exchange information wirelessly by using communication techniques such as Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Code Division Multiple Access (CDMA), Orthogonal. Frequency Division Multiplexing (OFDM). Ultra Wide Band (UWB). Wi-Fi, WiGig, Bluetooth, etc.
  • the network can comprise the phone network, IP (Internet protocol) network, Focal Area Network (LAN), ad hoc networks, local routers and even other portable systems, in addition, the terra "Mobile Client Device” can be used for mobile devices such as cellphone, tablets, etc.
  • Non- Mobile Client Device can be used for non-mobile devices such as desktops.
  • “Cloud Client Device 5 ' can be used for the device formed in the Cloud. At other instants the term “Client Device” can imply either the "Mobile Client Device,” “Non-Mobile Client Device” or “Cloud. Client Device.”

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

A System Solution offers a Business Entity a way to update a Native Application Client by directly downloading a new version of the Application Client from an Application Server bypassing the Application Store. A Native Application Client is updated while the current Native Application Client is running on the Client Device. A Native Application Client is divided into a Native Layer which runs directly on the Operating System of the Client Device and a Dynamic Layer that runs on the Native Layer. The System Solution automatically generates Application Clients, Application Servers, and Dashboards. The Business Entity uses the generated Dashboards to modify the Dynamic Layer by generating a new Dynamic Layer and making it available for download to the Client Device. The Navigation Parameters can be set in the Dynamic Layer allowing the Business Entity to change the application flow of the Native Application Client.

Description

Dynamic User Interface Delivery System
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present appiication is related to the co-fiied U.S. applications Ser. No, 13/833,589 entitled '''Apparatus for Single Workflow for Multi-Platform Mobile Application Creation and Deliver) " , Ser. No. 13/833,669 entitled Method for Single Workflow for Multi-Platform Mobile Application Creation and Delivery?*, Ser. No. 13/833,849 entitled '"User Interface and Content Translation System", and Ser. No. .13/834,765 entitled "Hierarchical Application Client System'", filed on March 15, 2013, whic are assigned to the same assignee as the present application and invented by the same inventors as the present application and incorporated herein by reference in its entirety.
BACKGROUND OF THE INVENTION
[0002] The internet is a communication system that interconnects the world. The internet has been structured to provide connectivity to billions of users with laptops, notebooks, desktops, internet Enabled TV sets, cellular phones, smartphones like the iPhone™, Android' M and Blackberry m, wearable devices, and tablets. The internet 1-3 connects a Client Device 1.-2 to a server 1-4 and the sen-'er to the same Client Device as illustrated in 1-1 of FIG. 1A or to another Client Device (not illustrated). The Client Device 1-2 can have at least one display screen 1-8 that can be a touch sensitive screen, pen based or both. The screen can display various icons or be attached to a physical keypad 1 -9. As illustrated in 1-1 , the Client. Devices are physical and can be either mobile, such as cellular phones, smartphones, wearable devices, and tablets, or non-mobile, such as laptops, desktops, and TV sets. The Client Devices 1-2 are coupled to the internet by wired (a physical interconnect), wirelessly (waves through space), or both wired /wireless networks. The wireless connectivity can be cellular (3G, 4G, etc.), Wi-Fi, Bluetooth. WiMax, etc. The Client Device 1-2 runs the Application Client which is the actual appiication software running on device.
[0003] FIG. 1.4 also shows an Application Store 1-10 connected to the Internet. The Application Store 1-10 makes application clients available for download to the Client Devices. There is a plurality of Application Stores, each of the Application Stores dedicated to make available for download Application Clients for a certain type of Client Device or Client Device Operating System. For example, the Apple m Application Store makes Application Clients for the iPhonem and iPadI M available for download, the Androi iM Application Store makes Application Clients for smariphon.es and tablets running the Android™ Operating System available for download, etc. There are Application Stores dedicated to support mobile Client Devices (for example, the iPhoii i, i iPad! M Apple m Application Store, the Blackberry1 M Application Store, etc.), and Application Stores dedicated to support non-mobile Client Devices (for example, the Maci M ApplerM Applicatio Store, which makes applications for Apple i computers running the Macm Operating System available for download),
[0004] The Cloud uses the network of the Internet to offer services to users by using a combination of hardware and software embedded in the network. An Application Client can be in the Cloud, but in this case the Client Device is a "virtual" Client Device. The * Virtual" Client Device has a way to provide access to the Application Client running in the cloud via a physical Client Device, For example, as in the example listed in 1-5 of FIG. IB, a web browser 1-6 running on the physical Client Device 1-2 and coupled to the client/server 1-7 in the Cloud via the Internet accesses the Application Client running in the Cloud, which performs the actual application software. For the Cloud, there are two cases: the entire Application Client runs in the Cloud, or a smal l portion of the Application Client runs on a physical Client Device while most of the logic runs in the Cloud.
[0005] FIG. 2A illustrates a system 2-1 with the hardware 2-16 and software 2-15 of a Client Device 1-2. The Client Device 1-2 is coupled to the Internet 1-3 via wireline connection or Radio Frequency (RF) wireless transmission network (wired/wireless) 2-2 and further coupled to a bank of servers 2-4 via a second interconnection 2-3 that can be wired or wireless. The communication Sink is a receiver and a transmitter known as a transceiver and is coupled to either a wired connector or an antenna (not illustrated) for the wireline connection or RF wireless transmission network, respectively. In general, these links: wired, wireless, cellular, Internet, etc. are called the Communication network. The Communication network couples ail components together. The server's bank 2-4 comprises server-0 2-11 to server- 2- 2. The bank, contains at least one server and these servers can be localized, coupled by an intranet, or be physically separated from one another, coupled by the Internet The Operating System (OS) 2*1.3 running i the Client Device is closely coupled with the hardware 2-16, especially in case of Mobile Client Devices 1-2. The hardware 2-16 comprises at least one processor 2-5 operating under the Operating System 2-13. Teleprocessor 2-5 is coupled to at least one memory 2-7 and at least one communication link 2-9 via at least one bus 2-8. At least one communication link 2-9 couples the Client Device to the outside world through a wired and or wireless interconnection via the transceiver. The Client Device offers the user at least, one mode of input and one mode of output. One mode of input to the Client Device 1-2 is via the touch based keypad 2-6 or through voice control (not illustrated). The screen 2-10 can be a touch sensitive screen and provide a second mode of input. The screen 2-10 can provide an output response or sound can provide a second mode of output known as voice output (not illustrated). Other hardware components such as MEMS, power supplies, etc, are not mentioned but are well-known by those skilled in the art. A set of applications or Application Cl ients 2-14 run on the Client. Device are coupled to the Operating System 2-13. The Client Device is one of a plurality of Client Devices coupled to the Internet 1-3. An Application Store 1-10 connected 2-21 to the internet
[0006] FIG. 2B illustrates that when the term server 2-20 is used, this server is a sub-set representation of a Computer hardware 2-17, which can contain software 2-18, a database 2-19 and the server 2-20 itself. Other components not illustrated are the memory, power supply, etc. One skilled in the art is knowledgeable of other components contained in this device and will not be described further. All servers used in. this specification are substantially the same as the server 2-20, Furthermore, a pluralit of servers and a plurality of databases can be embedded in the Computer hardware 2-1.7.
[0007] The term "Client Device" encompasses the device being Mobile, Non-Mobile, or located in the Cloud. However, in some cases, for further distinction within this document the term "Mobile Client Device" will be used for mobile devices, "Non-Mobile Client Device" will be used for non- mobile devices and "Cloud Client Device" will be used for the device formed in the Cloud.
[0008] FIG. 3A and FIG. 3B present two different types of Application Clients. This distinction is especially relevant in the case of mobile Client Devices, but is also applicable to non-mobile Client Devices, FIG. 3A shows a Native Application Client 3-1 and how it relates to the layered stacks of the hardware/software representation of a Client Device 1-2. The Nati ve Application Client 3-1 is an executable which runs directly on the Operati ng System 2-13 of the Client Device 1-2, which in turn runs on the hardware 2-16 of the Client Device 1-2. The Operating System 2-13 provides a set of system libraries 3-5, which the Native Application Client uses 3-2. The Native Application Client 3-1 is compiled to mn on the Operating System of the Client Device. The Native Application Client needs to be downloaded to the Client Device and installed on the Client Device in order to ran on the Client Device.
[0009] FIG* 3B shows a Non-Native Application Client 3-1 h and how it relates to the layered stacks of the hardware software representation of a Client Device l-2a. The Non-Native Application Client 3~l h does not run directly on the Operating System 2-13h of the Client Device, but instead uses a web browser 3-3 installed on the Client Device in order to run. The Non-Native Application Client 3-1 h is written in a programming language that is understood by the web browser running on the Client Device. The most common example of such a language is HTML5. The web browser running on the Client Device contains a HTML5 parser 3-4 that is used to interpret the code of the Non-Native Application Client 3-1 h. The Non-Native Application Client 3- Ih does not depend on the Client Device l-2a since it does not run directly on the Operating System 2»13h but instead uses the web browser 3-3 running on the Client Device l-2a. The Non-Native Application Client 3-1 h can ran on any Client Device l-2a that runs a web browser 3-3 capable of understanding the language which, the Non-Native Application Client is written in. The web browser 3-3 may depend on the Client Device l-2a, but the Non-Native Application client does not depend on the Client Device. The Operating System 2-13 runs on the hardware 2-16h.
[0010] An approval and download process in the Application Store is illustrated in FIG. 4A, A Business Entity 4-1 creates new application which comprises a new Native Application Client 3-1. The new Native Application Client 3-1 is submitted 4-3 to the Application Store 1-10 for an approval process 4-4. Once the new Native Application Client is accepted 4-5, information, is passed to the Application Store 1-10 to make the new Native Application Client available for download and installation 4-6 into a Client Device 1-2. A Client Device 1-2 which desires the Native Application Client 3-1 downloads the Native Application Client from the corresponding
Application Store 1.-10. For example, an iPhoneL ± downloads its desired Native Application Client from the AppleiM Applicatio Store, an Android i M device downloads its desired Native Application Client from the Android1** Application Store, etc. Once the Native Application Client is downloaded to the Client Device, it is installed on the Client Device so it can run on the Operating System of the Client Device. The client now contains a "native" application coupled to the Operating System 2-13 (see FIG. 2A and FIG, 3A) of the Client Device. The Native Mobile Application Client executable depends on the Operating System (OS) as an i Phone would require a different executable than an Android 5 M phone.
[001 1 j If the Business Entit 4-! makes a change to the Native Application Client 3-1 as illustrated in. FIG. 4B, the Updated Native Applicatio Client 4-7 must be re-submitted 4-8 to the Application Store approval process 4-4 and re-accepted 4-9 in order for the updated Native Application Client to be made available in the Application Store 1-10 for download and installation 4-1.0. A Client Device 1-2 which desires the updated Native Application Client 4-7 must download 4-10 the updated Native Application Client again from the Application Store 1-10 and re-install the Native Application Client on the Client Device 1-2. The process of updating an existing Native Application Client takes considerable time and effort. The Business Entity 4-1 must re-submit the Native Application Client to the Application Store, which requires considerable time and effort since the submission procedure is typically laborious and time-consuming. The Application Store must expend funds to re-approve the ne executable and the approval process may take considerable time. Once accepted, the store must distribute the new Native Application Client to the Client Device. A Client Device 1-2 which desires the updated Native Application Client must go back to the Application Store 1-10 and download the updated version of the Native Application Client and re-install it on the Client Device 1-2. The existing Nati ve Application Client 4-2, if running on the Client Device 1-2. must be stopped and deleted from the memory of the Client Device 1-2 in order for the updated Native Application Client 4-7 to be installed on the Client Device 1-2. An existing Native Application Client 4-2 cannot be updated while it is running on the Client Device 1-2. An. existing Native Application Client 4-2 cannot manage the update process, but must rely on an update manager or an external installation manager software or upda te manager software running on the Operating System of the Client Device to delete the existing Native Application Client, download and re-install the updated Native Application Client 4-7, and complete the update process.
BRIEF SUMMARY OF THE INVENTIO
[0012] it is a first objective of the invention to provide a System Solution to update a Native Application Client that offers the Business Entity means to update a Native Application Client by directly downloading a new version of the Application Client from an Application Server that is part of the System Solution. Using these inventive ideas, the Business Entity updates the Native
Application Client without resubmitting the new version of the Application Client to the Application Store.
[0013] it is a second objective of the invention to provide a System Solution to update a Native Application Client "on the fly" while the Native Application Client is running on the Client Device. Using these inventive ideas, the Native Application Client is updated without the need of stopping the existing version of the Native Application Client and reinstalling the updated version of the Native Application Client.
[00 4] it is a third objective of the invention to provide a System Solution, to automatically generate the Native Application Client that is updated directly from an Application Server. The Updated Native Application Client is downloaded and installed while the existing Application Client is running on the Client Device.
[0015] it is a fourth objective of the invention to automatically generate, together with the Native Application Client, the Application Server .fr m which the updated Native Application Client is directly download and a set of Dashboards for the Business Entity to generate the updated Native Application Client. The System Solution offers the ownership, control and beneficial use of these inventi ve ideas.
[0016] It is a fifth objective of the invention to download only the Surfaces that have been updated. This minimizes bandwidth usage and maximizes throughput in the Communication network since only a sub-set of the Surface needs to be transferred over the communication network. This speeds the transfer time and minimizes power usage.
[0017] A preferred embodiment of the invention is a method to divide a Native Application Client in two layers, a Native Layer which runs directly on the Operating System of the Client Device and a Dynamic Layer that runs on the Native Layer. The functionality provided by the two layers constitutes the functionality of the Native Application Client. We use the term "Two-Layer Native Application Client" or the term "Dynamic Native Application Client" to refer to the Native Application Client.
[0018] in this embodiment of the invention, the Native Layer is downloaded from the Application Store. When the Native 'Layer is modified, a new version of the Native Layer is downloaded from the Application Store and installed on the Client Device. f the existing Native Layer is running on the Client Device, it needs first to be stopped, in order for the new version of the Native Layer to be reinstalled, if the Busmess Entity desires to modify the existing Native Layer, it needs to submit a new version of the existing Native Layer for approval to the Application Store.
[0019] In this embodiment of the invention, the Dynamic Layer can be downloaded from the Application Store, but it can also be downloaded directly from an Application Server that is part of the System Solution. The Dynamic Layer can be downloaded directly from an Application Server that is part of the System Solution while the Native Application Client is running on the Client Device. If the Business Entit desires to modify the existing Dynamic Layer, it can generate a new version of the Dynamic Layer and make it available for download to the Client Device while the Native Application Client is running on the Client Device. The Business Entity does not need to submit the updated Dynamic Layer to the Application Store to make it available for download to the Client Device, By modifying the Dynamic Layer, the Business Entity modifies the functionality and user experience offered by the Native Application Client to the end user,
[0020] Another embodiment of the invention is a method to divide the Native Application Client in a plurality of Pages, and dividing each of the Pages into a Page Surface and a Page Foundation, and grouping all the Page Surfaces to constitute the Dynamic Layer and all Page Foundations to constitute the Native Layer of the Native Application Client.
[0021] According to this embodiment of the invention, each Page comprises a plurality of Eiemenis, Navigation Elements, Navigation Rules, Actionable Elements, FlilaWe Elements, and Native Logic, each Element further comprising a plurality of Sab-Elements and the Native Logic further comprising Orchestration, Native Client Functional Blocks, and an Update Manager. Each the Element and each the Sub-Element is associated with a Dynamic Property. The Dynamic Property .has one of two values: static and dynamic. By setting the dynamic property of each Element or Sub-Element equal to "dynamic", the Element or Sub-Element is made part of the corresponding Page Surface. By setting the dynamic property of each Element or Sub-Element equal to "static", the Element or Sub-Element is made part of the corresponding Page Foundation. The Native Logic is part of the Page Foundation.
[0022] According to this embodiment of the invention, the Navigation Rules consist of Navigation Conditions which are part of the Page Foundation and Navigation Parameters which are part of the Page Surface. By setting different values of the Navigation Parameters in the Dynamic Layer of the Native Application Client, the Business Entity ca change the application flow of the Native
Application Client while the Native Application Client is running on the Client Device.
[0023] Another embodiment of the invention includes the Native Application Client consisting of a Dynamic Layer and a Native Layer. The Native Application Client, while running on the Client Device, requests and downloads an updated Dynamic Layer from an Application Server part of the System Solution, using an Update Manager contained in the Native Layer and a Dynamic Update
Protocol.
[0024] in accordance with this embodiment of the invention, the Native Application Client, while running on the Client Device, requests and downloads from an Application Server which is part of the System Solutio only the Page Surfaces that are pari of the updated Dynamic Layer that are desired by the End User. [0025] Another embodiment of the preferred invention includes the apparatus comprising Computing devices with dedicated servers running the System Solution that, based on. the a Service Representation selected by the Business Entity and a Business Entity Data, runs an Automatic Data Model Generator. This Automatic data Model Generator places the widely varying and random data positioning from any Business Entity into a well-defined Data Model which acts as an interface between the Automatic Data Model Generator and an Aotomatic Application Generator. The Automatic Application Generator uses the data from the data model to autonia.tica.lly generate an Application comprising a plurality of Application Components, including an Application Server, a set of Two-Layer Native Mobile Application Clients, a. set of Two-Layer Non-Native Non-Mobile Application Clients, Non Native Mobile Application Clients, Client server protocoi, dashboards and other components. All these Applicatio Components implement the desired functionality of the Application for the Business Entity. The Dynamic [.aver of the Native Mobile Application Clients in the set of generated Two-Layer Native Mobile Application Clients can be downloaded to the Client Devices using the generated Application Server and die generated Client server protocol. The Dynamic Layer of the Native Non-Mobile Application Clients in the set of generated Two- Layer Native Non-Mobile Application Clients can be downloaded to the Client Devices using the generated Application Server and the generated Client server protocoi. The generated Dashboards can be used by the Business Entity to modify the Dynamic Layer of the Two-Layer Native Mobile Application Clients and the Two-Layer Native Non-Mobile Application Clients, and to modify the Non-Native Application Clients.
[0026] in this embodiment of the invention, the generated Dashboards are automaticall generated using the Page Surfaces as inputs.
[0027] In this embodiment of the invention, the System Solutio also generates a set of validation and consistency rules that are used to validate the correctness of the generated Application Components.
[0028] i accordance with another preferred embodiment of the invention, a System Apparatus comprising a System Solution with at least one first server coupled to at least one Computing device, a plurality of Client Devices where each Client Device is running an Operating System, a Communication network that couples the plurality of Client Devices and the at least one first server together, a System Libraries provided by the Operating System, a Two-Layer Native Application Client with a Native Layer and a Dynamic Layer, the Native Layer runs on the Operating System using the System Libraries, and the Dynamic Layer only uses functionality and a set of libraries provided by the Native Layer. The System Apparatus further comprising an Application Store approves the Two-Layer Native Application Client, and an approved Two-Layer Native Application Client is downloaded to the plurality of Client Devices, and further comprising a Business Entity develops a new functionality for the approved Two-Layer Native Application Client coupled to the plurality of Client Devices with an Updated Dynamic Layer, and the System Apparatus further comprising a System Solution or the Business Entity stores the Updated Dynamic Laye on an Application Server, and the System Apparatus further comprising an Update Manager in the Native Layer of the plurality of Client Devices insures that the Updated Dynamic Layer is downloaded to the plurality of Client Devices from the Application Server bypassing an approval process of the Application Store, and wherein the Updated Dynamic Layer updates the existing Dynamic Layer in the Two-Layer Native Application Client while the Two-Layer Native Application Client is running on the plurality of Client Devices. The System Apparatus further comprising the approved Two- Layer Native Application Client comprises a plurality of pages each with at least one button where the buttons are Navigation Elements. The System Apparatus further comprising a plurality of Elements each with a plurality of Sub-Elements, a Navigation Element, an Actionable Element, a Navigation Rule, a Tillable Element, and a native Logic with an Orchestration, an Update Manager and Native Client. Functional Blocks in each of the plurality of pages. The System Apparatus wherein each page can be in use Page State or in a standby Page State. The System Apparatus further comprising a Conditional Navigation determines if a Navigation Element is displayed in a Starting Page and if so what page or pages of a second plurality of pages are linked to the Starting Page.
[0029] in accordance with another preferred embodiment of the invention, a System Apparatus comprising a System Solution with at least one first server coupled to at least one Computing device, a Business Entity Data of a Business Entity loaded on a server, tillable entries of Dashboards filled by the Business Entity, the Dashboards controlled by the System Solution automatically generates a Dynamically Updated Data Model, and the Dynamically Updated Data Model and an Automatic Application Update Generator automatically generates a set of Dynamically Updated Applications Clients. The System Apparatus further comprising the set of Dynamically Updated Applications Clients includes a Dynamically Updated Native Mobile- Application Client, a set of Dynamically Updated Native Non-Native Mobile Application Client, a Dynamically Updated Non-Native Mobile Application Client, Dynamically Updated Non-Mobile and Cloud Application Clients and a Dynamically Updated Searchable Application Representation. The System Apparatus further comprising each the Dynamically Updated Applications Client are downloaded to a corresponding Client Device via a Communication network. The System Apparatus further comprising each page of the Dynamically Updated Application Client comprises a Page Surface and a Page Foundation, and the Page Surface can be changed dynamically via Dashboards, and the System Apparatus further comprising each Page Surface comprises a least one Dynamic Element, at least on Dynamic Sub-Element, and a Navigation Parameters, a Dashboard Widgets and the Page Surface coupled to an Automatic Dashboard Generator; and the Automatic Dashboard Generator automatically generates Dashboards, Dashboard Validatio Rules, and Dashboards Consistency Rules, and the System Apparatus further comprising the Dashboard Validation Rules and the Dashboards Consistency Rules generate a plurality of Validation Controllers to show a validity and a consistency of the Dynamically Updated Data Model, and the plurality of Validation Controllers show the validity and the consistency of the set of Dynamically Updated Applications Clients.
[0030] in accordance with another preferred embodiment of the invention, a method of checking for Updates continuousl on an Application Server comprising the steps of providing a plurality of Page Surfaces, providing an Update Manager in a Native Layer that runs a Dynamic Update Protocol with the Application Server, checking the Application Server with the Dynamic Update Protocol continuously for Updated Page Surfaces or new Page Surfaces, downloading only the Updated Page Surfaces or the new Page Surfaces automatically to a Dynamic Layer of a Two-Layer Application Client, and checking continuously and downloading the Updates to the Two-Layer Application Client from the Application Server. The method whereby the Two-Layer Application Client is a Two-Layer Native Mobile Application Client or a Two-Layer Native Non-Mobile Application Client, The method further comprising the steps of providing plurality of Elements with an Element Dynamic Property in a Page Surface, providing a plurality of Sub-Elements with a Sub-Element Dynamic Property in the Page Surface, minimizing bandwidth usage in a Communications network by not downloading Non-Updated Sub-Elements, Non-Updated .Elements, or Non-Updated Page surfaces from the Application Server to the Two-Layer Application Client. The method further comprising the steps of allowing a Business entity to change the functionality without the approval of the Application Store. The method further comprising the steps of changing the functionality without stopping, deleting, and re-installing the Two-Layer Application Client, and changing the functionally while the Two-Layer Application Client is running.
BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Please note that the drawings shown in this specification may not necessarily be drawn to scale and the relative dimensions of various elements in the diagrams are depicted schematically. The inventions presented here can be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skiiied in the art, la other instances, well-known structures and functions have not been shown or described in detail to avoid unnecessarily obscuring the description of the embodiment of the invention. Like numbers refer to like elements in the diagrams.
[0032] FIG. 1A depicts a Client Device coupled to a server and an Application Store and provides some examples of Client Devices.
[0033] FIG. IB depicts a Client Device coupled to a client/server.
[0034] FIG. 2 shows a Client Device with a coupling to a bank of servers, an Application Store, and the internal hardware/software structure of the Client Device.
[0035] FIG. 2B depicts a more detailed description of a server being a subset of Computer hardware with software, a Database and the server. [0036] FIG. 3A presents a Native Application Client and haw it relates to the layered stacks of the hardware/software representation of a Client Device.
[0037] FIG. 38 illustrates a Non-Native Application Client and how it relates to the layered stacks of the hardware/software representation of a Client Device.
[0038] FIG. A shows the flow of how a Native Application. Client is approved and downloaded by an Application Store to a Client Device.
[0039] FIG. 4B illustrates the flow of how a new Updated Native Application Client is approved and downloaded by an Application Store to a Client Device.
[0040] FIG. 5 depicts a description of automatically generating client applications in accordance with the present invention.
[0041] FIG. 6 shows a Two-Layer Application Client in a Client Device in accordance with the present invention.
[0042] FIG. 7 presents a Business Entity submitting a Two- Layer Application Client for approval and download to an Application Store for availability to other Device Clients in accordance with the present invention.
[0043] FIG. 8 shows a Business Entity submitting an Updated Dynamic Layer of a Native Application Client for availability to other Device Clients via an Application Server in accordance with the present invention.
[0044] FIG. 9A illustrates an Application Client with a plurality of Pages each with a plurality of buttons in accordance with the present invention.
[0045] FIG. 9B depicts a button i a Starting Page navigating to an Ending Page i accordance with the present invention. [0046] FIG. 10 illustrates the Elements, Sub-Elements, Native Logic, and other components in a Page in accordance with the present invention.
[0047] FIG. 11 shows a Navigation Rule, 'Navigation Element, and Navigation Link in accordance with the present invention.
[0048] FIG. 12 illustrates the way the 'Navigation. Rule operates in accordance with the present invention.
[0049] FIG. 13 depicts a Page Graph that captures all the Navigation Rules and navigation Links in all the Pages in accordance with the present, invention.
[0050] FIG. 14 illustrates the notion of a Page Surface and a Page Foundation in accordance with the present invention.
[0051 ] FIG. 15 depicts the assignment of Elements and Sub-Elements to either a Page Surface or a Page Foundation in accordance with the present invention.
[0052] FIG. 16 illustrates a Two-Layer Auiomatic Application Client Generator in accordance with the present invention.
[0053] FIG. 1.7 depicts the detai is of the Auiomatic Client Generator in accordance with the present invention.
[0054] FIG, 18 shows Dashboards used to Update the Dynamic Layer in accordance with the present invention.
[0055] FIG. 19 depicts Surfaces automatically generating Dashboards i accordance with the present invention. [0O56J FIG. 20 shows an Update Manger continuously checking for Updates on an Application
Server In accordance with the present invention .
[0057] FIG. 21 illustrates updating Surfaces that have changed in accordance with the present invention.
DETAILED DESCRIPTION OF THE IN VENTION
[0058] The System Solution offers the ownership, control and beneficial use of this inventive idea. The System solution offers the beneficial use to the Business Entity by providing Applications for the Business Entity. The Applications provided by the System Solution comprise a plurality of Application Components, and include Native Application Clients that run on Mobile, Non-Mobile, and Cloud Client Devices. These Native Application Clients can be modified by the Business Entity using Dashboards and can be downloaded to the Client Devices without the Business Entity having to submit the modified Native Application Client to the corresponding Application Store. The System Soiuiion is the owner of all Application Components automatically generated by the System Solution. The System Solution creates and hosts Applications for different Business Entities (each Business Entity is a System Solution customer). The System Solution provides a complete environment for the creation, hosting, updating, and management of the Application, The Application Servers generated by the System Solution for ail Business Entities are hosted in a multi- tenant environment in the Cloud, but each Business Entity "feels" like it is provided a dedicated Application Server. The System Soiuiion architecture also applies with minor changes to a scenario where the System Solution Application Server run on dedicated servers owned by the Business Entity, rather than In the Cloud. In this scenario, the System Soiuiion has access to control and offer beneficial use for those servers that are coupled to the Cloud.
[0059] Business Entities deploy their Applications to reach Consumers (i.e,, the customers of that Business Entity served by System Solution). The Consumers are the primary End Users of the Application Clients generated by the System Solution. The Business Entities are the End Users of the Dashboards and the Application Server that the System Solution provides to each Business
Entity for managing the corresponding Application.
[0060] Mobile Client Devices (cellular phones, smartphones, wearable devices, and tablets) and Non-Mobile Client Devices (laptops, desktops, and Internet-enabled TV sets) are coupled to the internet by wired (a physical interconnect), wireiessly (waves through space), or both wired /wireless networks. The wireless connectivity can be cellular (3G, 4G, etc , Wi-Fi, Bluetooth, WiMax, etc. The network interconnecting these components is called the Communication network. The Client Device has the Application Client which is the actual application software running on device.
[0061 ] The term "Mobile" when used alone or in a larger phrase "Mobile Client Devices" can also imply the terms Mobile, Non-Mobile or in the Cloud. The term Mobile Client at times will be referred to as the Client Device. The term Application highlights the fact that the application built by the System Solution comprises a plurality of Application Components, and includes a portion of the Application that, rims on the Client Device (the Application Ciient) and a portion of the application that runs on a server (the Application Server). The term "Application Client" refers to the portion of the application running on the Client Device a d is used to refer to both Native and Non-Native Application Client The term "Application Client" encompasses the Application Client running o a mobile Client Device, a non-mobile Client Device or even in the Cloud, The term "Mobile Application Client" will be used for both Native and Non-Native Application Clients running on a mobile Ciient Device, but it also applies to Client Devices that are non-mobile or in the Cloud. The Cloud can run a portion of the Application {"Merit in the server while the remaining portion of the Application Client can run on the Client Device, simultaneously. The Application Client can be a part of the software running on the mobile or non-mobile Client Device or can be partially in the Cloud. In ail cases, the Client Devices provide the End User with at least one mode of input and at least one mode of output through which the End User navigates and interacts with the Application Client.
[0062] Each Application includes a family of Application Clients. Each Application Client corresponds to a certain Client Device. The family of Application Clients includes a set of Native Mobile Application Clients, one per mobile platform. The family of Application Clients also mcludes a set of Native Non-Mobile Application Clients, one per non-mobile platform. The family of Application Clients also includes Non-Native Mobile and Non-Mobile Application. Clients, and Application Clients residing in the Cloud. Some examples of the mobile platforms include the iPhonef , iPad !, Android 1M phones, or tablets while the non-mobile platforms include the Apple Mac Operating System and the Microsoft Windows Operating System. For convenience, we use the term Mobile Application Client (or more succinctly Mobile Client) to refer to any Mobile Client in the family of Mobile Clients corresponding to an Application generated by the System Solution.
[0063] FIG. 5 depicts a method and apparatus to automatically generate an Application consisting of several Application Components. A Business Entity 4-1 defines a Service Representation S- l and Business Entity Data 5-2. An Automatic Data Model Generator 5-3 takes the Service Representation 5-1 and the Business Entity Data 5-2 as inputs and automatically generates a Data Model 5-4. Using the generated Data Model 5-4, an Automatic Application. Generator 5-5 automatically generates all the Application Components. The generated Application Components include an Application Server 5-6, a set of Native Mobile Applicatio Clients 5-7, a set of Native Non-Mobile Application Clients 5-8, a set of Non-Native Application Clients 5-9, Client Server Protocols 5-10, Dashboards 5-11, and Other Application Components 5-12. The set. of Native Mobile Application Clients 5-7 comprises a Native Application Client executable for each mobile Client Device that the Native Mobile Application Client is desired to run on. The set of Native Non- Mobile Application Clients 5-8 comprises a Native Non-Mobile Application Client executable for each non-mobile Client Device that the Native Non-Mobile Application Client is desired to run on. The method and apparatus depicted in FIG. 5 is explained in detail in the co-filed U .S. Patent Application Ser. No. .13/833,589 titled "Apparatus for Single Workflow for .Multi-Platform Mobile Application Creation and Delivery and in U.S. Patent Application Ser. No. 13/833,669 titled Method for Single Workflow for Multi-Platform Mobile Application Creation and Delivery" filed on March 15, 2013, which are incorporated, in reference in their entirety. What is relevant in this application is that Native Mobile Application. Clients 5-7. Native Non-Mobile Application Clients 5-8, and Non-Native Application Clients 5-9 are automatically generated from the Service Representation 5-1 and Business Entity Data 5-2. Further, the generated Dashboards 5-H can be used to modif the generated Native Mobile Application Clients 5-7., Native Non-Mobile Application Clients 5-8, and Non-Native Application Clients 5-9,
[0064] The process of updating a Native Application Client is time consuming, costly, and laborious, and it cannot be performed "on the fly" while the Native Application Client is running on the Client Device. When the Business Entity updates the Native Apphcation Client, it has to resubmit the new version of the Native Application Client for approval to the Application Store, which is a time-consuming, cosily , and laborious process. Because of such a required process, there is a considerable lag from the time the Business Entity updates the Native Application Client to the time the new version of the Native Application Client is made available for download, in the Application Store. Further, a Client Device which desires the new version of the Native Application Client must go hack to the Application Store to again download and re-install the Native Application Client, If the existing Native Application Client is running on the Client Device, it must first be stopped and deleted before the new version of the Native Application Client is installed. The Native Application Client cannot be updated "on the fly" while it is running on the Client Device. The lipdate and re-installation process is a time-consuming and inconvenient process. The user experience of the Native Application Client is disrupted while the Native Application Client is terminated and re-installed.
[0065] FIG. 6 depicts a Two-Layer Native Application Client 6-1 which is a Native Application Client that consists of two layers: a Dynamic Layer 6-5 and Native Layer 6-2. The Native Layer 6-2 runs 3-2 directly on the Operating System 2-13 of the Client Device 1-2 by using the system libraries 3-5 that are part of the Operating System 2-1.5. The Operating System, in turn runs on the hardware 2-16. The Dynamic Layer 6-3 does not run directly on the Operating System 5-5, but instead runs on the Native Layer 6-2 by making use of software libraries and functional blocks provided in the Native Layer 6-2, The Native Layer 6-2 and the Dynamic Layer 6-3 together implement the functionality and user experience offered, by the Two-Layer Native Application Client 6-1. The Native Layer 6-2 is an executable that depends on the Client Device 1-2 and needs to be downloaded and installed on the Client Device 6-2 using an installation manager external to the Two- Layer Native Application Client 6-1. The Native Layer 6-2 needs to be downloaded from the Application Store. The Dynamic Layer 6-3 does not need to he downloaded from the Application Store, but can be downloaded directly from an Application Server that is part of the System Solution. We use the term "Dynamic Nati ve Appl ication Cl ient" as synonymous of the term "Two-Layer Native Application Client".
[0066] FIG, 7 illustrates the process of downloading the Two-Layer Native Application Client 6-1 to a Client Device 1-2 for the first time. This process is similar to the process of downloading a Native Application Client 3-1 to the Client Device depicted in FIG. 4A. A Business Entity 4-1 creates a new application which comprises a Two-Layer Native Application Client 6-3. The Two- Layer Native Application Client 6-1 has a Dynamic layer 6-3 and a Native Layer 6-2. The new Two-Layer Native Application Client 6-1 is submitted 4-3 to the Application Store 1-10 for an approval process 4-4. Once the new Two-Layer Native Application Client is accepted 4-5, information is passed to the Application Store 1.-10 to .make the new Two- Layer Native Application Client available for download 7-1 into a Client Device 1-2. A Client Device 1-2 which desires the Two-Layer Native Application Client 6~I downloads the Two-Layer Native Application Client from the corresponding Application Store 1-10. For example, an iPhone™ downloads its desired Native Application Client from the Apple1 M Application Store, an Android1 * device downloads its desired Native Application Client from the Android1 M Application Store, etc. Once the Two-Layer Native Application Client is downloaded to the Client Device, it is installed 7-1 on the Client Device so it can run on the Operating System 2-13 of the Client Device. The Operating System, in turn runs on the hardware 2-16. The Two-Layer Native Mobile Application Client 6-1. executable depends on. the Operating System (OS) as an iPhone would require a different executable than an Android m phone
[0067] if the Business Entity modifies the Native Layer 6-2, it needs to submit the new version of the Native Layer 6-2 to the Application Store for re-approval in order to make it available for download to the Client Device. In order to install the updated version of the Native Layer on the Client Device, the existing version of the Native Layer, if running on the Client Device 1-2, must be stopped and deleted from the memory of the Client Device 1-2 in order for the new version of the Native Layer to be installed on the Client Device. The Native Layer cannot be updated "on. the fly" while the Native Application Client 3-1 is running on the Client Device 1-2. [0068] FIG. 8 illustrates the process of downloading an updated Dynamic Layer 8-2 to the Client Device. If the Business Entity 4-1 desires a New Functionality of the Native Application client 8-1, the Business Entity 4-1 modifies the Dynamic Layer 6-3 and creates an Updated Dynamic Layer 8- 2, the Updated Dynamic Layer 8-2 is available for download directly from an Application Server 8- 3 that is part of the System Solution or is owned by the Business Entity. The new version of the Updated Dynamic Layer 8-2 of the previous Dynamic Layer 6-3 is made available for download to the Client Device without having the Business Entity siibmit it for approval to the Application Store 1-10. The updated Dynamic Layer 8-4 is downloaded and installed 8-4 in the Client Device 1-2 while the Two-Layer Native Application CHeut 6-1 is running o the Client Device. The update of the existing Dynamic Layer can be achieved using an update manager 8-5 that is internal in the Native Layer 6-2 of the Two-Layer Native Application Client 6-1. Once the Updated Dynamic Layer 8-7 is installed on the Client Device 1-2, the new application client functionality and new user experience 8-6 is provided to the end user. As before, the Operating System 2-13 running on the hardware 2-16 in the Client Device 1-2.
[0069] The Two-Layer Native Application Client 6-1 provides several benefits. The Business Entity can change the functionality of the Two-Layer Native Application Client 6-1 without resubmitting the Native Application Client to the approval process of the Applicatio Store, which is laborious and time consuming. The functionality of the Two-Layer Native Application Client 6-1 can be changed "on the fly" while the Native Application Client is running on the Client Device, without disrupting the user experience offered by the Native Application Client. The updated Dynamic Layer 8-2 can be downloaded and installed in the Client Device "automatically'* by the Two-Layer Native Application Client using an update manager 8-5 internal to the Native Layer 6-2 of the Two-Layer Native Application Client 6-1. Thus, the Two-Layer Native Application Client 6- 1 can be updated "transparently" without requiring any actio from the end user. The internal update manager 8-5 can make sure that the Dynamic Layer running on the Client Device 1-2 is always the latest version of the Dynamic Layer 8-7, by querying the Application Server asking whether there is a newer version of the Dynamic Layer than, the version of the Dynamic Layer 8-7 currently running on the Client Device, and downloading and installing the latest version when it is made available by the Business Entity 4-1. The updated Dynamic Layer 8-2 is downloaded from an Application Server owned by the System Solution or by the Business Entity, rather than having to be downloaded from the Application Store 1-10.
[0070] FIG. 9A illustrates the structure of an Application Client 9-2, including a Native Application Client and a Two-Layer Native Application Client. The Appiication Client 9-2 comprises a plurality of Pages which comprises Page 1 9-3, Page 2 9-4, Page 3 9-5, and Page N 9-6. The Pages 9-3 to 9-6 are presented to the end user via a User Interface. Buttons in each Page allow the end user to "navigate" from one Page to another. Each Page contains a sub-set of the plurality of Buttons 9-7 to 9-15, Each Button 9-7 to 9-15 connects one Page to another Page in the Application Client 9-2 as illustrated by the arrows coupling the buttons to different pages. When the Application Starts 9-1 on the Client Device, a pre-configured Page in the plurality of Pages 9-5 to 9-6 is displayed to the end user. For example. Page 1 9-3 is displayed to the end user. Then, the end user navigates to the other Pages using the Buttons. We use the term "Navigation Element'* as a synonymous of Button to refer to the fact that "Buttons'" may assume other forms on the User Interface, to connect one Page to another. Navigation Elements or Buttons include buttons themselves, tabs, navigation bars, tappable elements such as an address, a thumbnail, or a piece of text that when tapped navigates the end user to another Page. Buttons or Navigation Elements can even be "implicit," i.e., not be shown explicitly to the end user. For example, an "implicit" button may navigate the user from one Page to another Page, after a certain time lapses or if a certain event occurs.
[0071 ] FIG. 9B illustrates the navigation of an Appiication Client, including a Native Appiication Client and a Two-Layer Native Application Client. Button 9-17 or Navigation. Element is shown on the User Interface of a Starting Page 9-1 , If the end user taps or clicks the Button 9-17, it "navigates" to the Ending Page 9-18, meaning that the Application Client 9-2 displays the User Interface of the Ending Page 9-18 to the end user.
[0072] The Buttons and the links that they provide among the plurality of Pages 9-3 to 9-6 in the Application Client 9-2 constitute the "Application Flow" of the Application Client. The Application Flow is an important part of the user experience that the Appiication Client 9-2 offers to the end user. [0073] FIG. 10 shows the structure of a Page 10-2 in the plurality of Pages that comprise a Two- Layer 'Native Application Client. The Page comprises a plurality of Elements comprising Element .1 10-3 to Element N 10-5. In turn, each Element comprises a plurality of Sub-Elements. For example Element 1 10-3 comprises Sub-Element 1-1 10-11. to Sub-Element 1 - 10-1.3. Element 2 .10-4 comprises Sub-Element 2-1 10-14 to Sub-Element 2-N 10-16. Element N 10-5 comprises Sub- Element N-l 10-17 to Sub-Element -N 10-19. We use me term "Element" to refer to any "part" or block, of the Page. For example, an Element 10-3 to 10-5 may be the Page itself, a Ui Region (i.e., a portion of the Page), a widget, a building block, a piece of content, a navigation structure, a button, a tab, etc. Examples of Sub-Elements 10-11 to 10-19 include a Background, a Content, Pictures, text, shape, text box, video, position, format, etc. A Background which is typically an image covering the entire are of the Eiement. The other possibilities includes a Content which includes Pictures and Text, a Picture which is an image, a Shape, a Text Box which is an imaginary "box" defining an area where text is displayed, a Video, a Position which consists of a -Coordinate and a Y -Coordinate, a Size which consists of a Width and a Height, a Text, and a Format which may include a Font, a Font Size, an Alignment, and a Font Color for a Text Box. For a given Element 10-3 to 10-5, not all Sub-Elements may exist or even apply. Sub-Elements 10-11. to 10-1.9 are used only in an "as needed fashion" to provide finer granularity in identifying the "parts of the Two- Layer Native Application Client 6-1 that should become part of the Dynamic Layer 6-3 in order to optimize Client/Server communication and Two-Layer Native Application Client dynamic behavior
[0074] One or more of Elements 10-3 to 10-5 are associated with a function, an action, or data. They are called Actionable Elements 10-10. For example, a line of text containing the Expiration Date of a Promotion is an Actionable Element, which is used by the Application. Client to validate whether that Promotion is still active or needs to be retired. One or more of Elements 10-3 to 10-5 are associated with data that should be filled. They are called Filiabie Elements 10-8 There are three types of Filiabie Elements 10-8. A Locally Filiabie Element contains data that should be filled locally (i.e., using logic and dat available in the Application Client) when the Eiement is displayed. For example, a Service which greets the Consumer by first name, may use a text Filiabie Element which gets filled by the end user's first name. A Server Filiabie Element contains data that should be filled by the Application Server. The Application Client may request the data from the Application Server using a Client/Server protocol. An Input Element is a Fiiiable Element which receives an end user's action that needs to be communicated to the Application Client or Application Server. One or more of Elements 10-3 to 10-5 are Navigation Elements 10-9 or
Buttons.
[0075] The Page 10-2 also includes one or more Navigation Rule 10-7. A Navigation Rule is associated with a Navigation Element 10-9 or button and defines the "navigation" provided by the Navigation Element 10-9.
[0076] The Page 10-2 includes Native Logic 10-6 which consists of an Orchestration 10-20, a set of Native Client Functional Blocks 10-21 and an Update Manager 8-5. The Native Client Functional Blocks 10-21 are described in detail in the co-filed U.S. Patent Application Ser. No. 13/833,589 titled ''Apparatus for Single Workflow for Multi-Platform Mobile Application Creation and Delivery" and in U.S. Patent Application Ser. No. 13/833,669 titled Method for Single Workflow or Multi-Platform Mobile Application Creation ami Delivery * filed on March 15, 2013, which are incorporated in reference in their entirety.
[0077] A Page can be in one of two Page State 10-L A Page in "In Use" Page State is a Page currently displayed to the end user by the Native Application Client A. Page in "Standby5" Page
State is a Page prepared in the Two-Layer Native Application Client for future use or use in the context of a certain Service, but .not currently displayed to the Consumer.
[0078] FIG. 11 depicts the behavior of a Navigation Rule 10-7, which is associated to a Navigation Element 10-9 which is part of a Starting Page 9-16 in the plurality of Pages comprised in a Two- Layer Native Application Client. The Navigation Rule is evaluated when the Two-Layer Native Application Client 6-1 runs on the Client Dev ice 1-2 and determines the behavior of the associated Navigation Element 10-9, Based on the result of the evaluation of the Navigation Rule 10-7, it is determined whether the Navigation Element 10-9 should "Appear or not" 11-2 on the User interface of the Starting Page 9-16. Also, based on the result of the evaluation of the Navigation Rule 10-7, it is determined which ending page among a plurality of Ending Pages 11-5 to 11-6 should be linked to the Starting Page 9-16 by the Navigation Element 10-9. Based on the result of the evaluation of the Navigation Rule 10-7, it is determined whether the Navigation Element 10-9 should "Select one" ! .1-3. The Ending Pages in the plurality of Ending Pages 11-5 to 11-6 may be in "in Use" Page State or in "Standby" Page State. Ending Pages in "In Use" Page State are depicted in FIG. 11 using a solid line, for example Ending Page 1 11-5. Ending Pages in "Standby "Page State are depicted in FIG. 11 using a doited Hue, for example Ending Page 2 1-6. The plurality of Ending Pages that can be associated with the Navigation Element 10-*) may also incbde one or more Page Node 1.1-7. A. Page Node 11-7 contains a plurality of Pages 1.1-8 to 11-10 of which at roost one is linked to the 'Navigation Element 10-9 at any given time. The Page in the plurality of Pages contained in the Page Node that is associated with the Navigation Element 10-9 at any given time is determined based on the Page State of the Pages in the Page Node and on other conditions, for example the location of the Client Device 1-2. For example, a Page Node 11-7 may comprise a plurality of Pages of which only one Page is in " n Use" Page State at any gi ven time. The Page in "In Use" Page State at any given time is chosen as the Ending Page associated, with the Navigation Element at that time. In another example, a Page Node comprises two Pages, both Pages in "In Use" Page State. Which Page is chosen as the Ending Page associated with the Navigation Element at any given time is determined based cm the location of the Client Device 1-2 at thai time. For example, a first Page is chosen as the Ending Page if the current Client Device location is inside a store and a second Page is chosen as the Ending Page if the current Client Device location is outside the store. Similarly to Pages, A Page Node 11 «7 is in one of two Page States. A Page Node is in "In Use" Page State if at least one of the Pages contained in the Page Node is in "In Use" Page State. A Page Node is in "Standby " Page State if all the Pages contai ned in the Page Node are in "Standby" Page State.
[0079] FIG. 12 depicts the structure and operation of a Navigation Rule 10-7. A Navigation Condition .12-1 is part of the Native Layer 6-2 of the Two-Layer Native Application Client 6-1. The Navigation Condition 12-1 contains at least one Navigation Parameter 12-5. The Navigation Parameter has a corresponding Navigation Parameter Value 12-2 which is part of the Dynamic Layer 6-3 of the Two-Layer Native Application Client 6-1. The 'Navigation Condition is Evaluated 12-3 when the Two-Layer Native Application Client 6-1 runs on the Client Device 1-2 and a Result 12-4 is computed. Based on the Result 12-4, the Navigation Action 12-5 that defines the behavior of the Navigation Element 10-9 is determined. The Navigation Action 12-5 is at least one of the "Appear or not" 11-2 or "Select one" 11-3 navigation actions, described in PIG. 11.
[0080] FIG. 13 depicts the Page Graph 13-1 for a Two-Layer Native Appiication Client 6-1. The Page Graph 13-1 consists of ail the Navigation Rules and associated Navigation Actions and all the Navigation Links associated with ail the Navigation Elements 10-9 in the Two-Layer Native Application Client 6-1. The Pages and Page Nodes i the Page Graph 13-1 may be in "In Use" Page State or "Standby" Page State, The Page Graph 13-1 represents the Application Flow of the Two- Layer Native Application Client 6-1, which is an important part of the user experience provided by the Two-Layer Native Application Client to the end user. The Page Graph 13-1 is used to generate the Two- Layer Native Application Client automatically and for updating the Dynamic Layer of the Two-Layer Native Application Client automatically.
[0081 j The use of Navigation Rules is referred to as "Conditional Navigation." By changing the
Navigation Parameter Value 12-2 in the Dynamic Layer 6-3, the Business Entity 4-1 can change the Application Flow of the Two-Layer Native Application Client 6-1 while the Two-Layer Native Application Client is running, and thus can change the behavior of the Two-Layer Native Application Client dynamically. The Business Entity can change the Application Flow of the Two- Layer Application Client 6-1 by generating an updated Dynamic Layer with an updated Navigation Parameter Value 12-2 and making it available in an Application Server owned by the System Solution or by the Business Entity, without the need to resubmit the Two- Layer Native Application Client to the Application Store 1-10. The Navigation Rules can be computed multiple times as the Two-Layer Native Application Client is running on the Client Device 1-2, and different Results 12- 4 may be computed based on the Navigation Condition 12-1. The Navigation Condition 12-1 can contain Navigation Parameters based on other conditions. For example, the Navigation Condition 12-1 may contain Navigation Parameters that depend on the location of the Client Device at the time the Navigation Condition 12-1 is Evaluated 12-3. For example, the Navigation Condition 12-1 when Evaluated 12-3 in a first location provides a first Result 12-4. The same Navigation Condition 12-1 when Evaluated 12-3 to a second location provides a second, different Result. Different Results produce different Navigation Actions, which in turn change the Application Flow of the Two-Layer Native Application Client based on those conditions. Thus, the behavior of the Two- Layer Native Application Client can change dynamically.
[0082] The Page Graph 13-1 depicted in FIG, 13 shows the "actual" Application Flow at a given time, by showing the "result'' of the Navigatio Rules at that time, which is represented by the "actual" links betwee pages once the Navigation Rules are evaluated at that time, and the Page State of all the available Pages at that time. The Pages which are "In Use" Page State are shown with a solid line, for example, Page 13-2 to Page 13-9 are "In Use" pages. The "Standby "Page States are shown with a dotted line and includes page 13-10 to 13-15. The Page Node 13-16 only has one " n Use" Page Mode belonging to page 13-5 while the remaining pages .13-10 and 13-11 are in "Standby" Page Mode. The Page Node 13-17 illustrates all its internal pages 13-13 to 13-15 in the "Standby" Page Mode, and thus the Page Node 13-17 is in Standby Page State. A Navigation Element that has no associated Navigation Rule is represented by a single solid arrow, for example the link between Page 13-3 and Page 13-6. A Navigation Element that is associated with a Navigation Rule with a Navigation Action 2-5 "Select One" 11-2 is represented by more than one, one arrow per possible ending page. One of such arrows is a solid arrow, which represents the Ending Page that is selected at that time, the other arrows are dotted arrow, which represent the links that are not selected at that time. For example, the link from Page 13-2 to Page 13-3 is selected by a corresponding Navigation Rule at that time, while the link between Page 13-2 and 13-4 is not selected by such Navigation Rule at that time. The Navigation rules allow the user to navigate along the solid line between Pages while the dotted lines between pages prevent the user from navigating between these Pages. A Navigation Element that is associated with a Navigation Rule with a Navigation Action 1.2-5 "Appear or Not" 11-3, is represented by a solid arrow when the result of the associated Navigation Rule is for the Navigation Element to "Appear" and is represented by a dotted arrow when the result of the associated Navigatio Rule is "Do Not Appear".
[0083] FIG. 14 depicts Page 10-2 in the Two-Layer Native Application Client 6-1 which consists of a Page Surface 14-2 and a Page Foundation 14-3, The Page Surface can be changed dynamically and can be changed via Dashboards 14-5. The Page Foundation cannot be changed without submitting the updated Application Client to Application Store 14-6. The Page Surface 14-2 is part of the Dynamic Layer 6-3. The Page Foundation 14-3 is part of the Native Layer 6-2 and includes the Native Logic 11-4. The 'Dynamic Layer 6-3 of the Two-Layer Native Application Client 6-1 consists of the Page Surfaces 14-2 of all the Pages 10-2 comprised in the Two-Layer Native Application Client 6-1. The Native Layer 6-2 of the Two-Layer Native Application Client 6-1 consists of the Page Foundations 14-3 of ail the Pages 10-2 comprised in the Two-Layer Native Application Client 6-1 ,
[0084] FIG. 15 shows how an Element 15-1, a Sub-Element 15-2 and a Navigation Rule 11-1 are made part of either a Page Surface 14-2 or a Page Foundation 14-3 if die Page that contains that Element, Sub-Element, or Navigation Rule. The Element 15-1 is associated with m Element Dynamic Property 15-3. The Element Dynamic Property 15-3 has one of two values, Static and Dynamic, if the value of the Element Dynamic Property 15-3 is Static, the associated element 15-1 is made part of the Page Foundation 14-3. If the value of the Element Dynamic Property 15-3 is Dynamic, the associated element 15-1 is made part of the Page Surface 14-2. The Sub-Element 15-2 is associated with a Sub-Element Dynamic Property 15-4. The Sub-Element Dynamic Property 15-4 has one of two values. Static and Dynamic, If the value of the Sub-Element Dynamic Property 15-4 is Static, the associated Sub-Element. 15-2 is made part of the Page Foundation 14-3. If the value of the Sub-Element Dynamic Property 1.5-4 is Dynamic, the associated Sub-Element 15-2 is made part of the Page Surface 14-2. The Navigation Parameter Value 12-2 of Navigation Rule 11-1 is made part of the Page Surface 14-2 and the Navigation Condition 12-1 is made part of the Page Foundation 14-3.
[0085] FIG. 16 depicts a method and apparatus to automatically generate an Application consisting of several Application Components including a set of Two- Layer Native Mobile Application Clients 16-4 and a set of Two-Layer Native Non-Mobile Application Clients 16-5, The method and apparatus described in FIG. 16 has similarities with the method and apparatus depicted in FIG. 5, which is explained in detail in the co-filed U.S. Patent Application Ser, No. 13/833,589 titled "Apparatus for Single Workflow for Multi-Platform Mobile Application Creation and Delivery' and in U.S. Patent Application Ser, No, 13/833,669 titled ^Method for Single Workflow for .Multi- Platform Mobile Application Creation and Deliver/" filed on March 15, 2013, which are incorporated in reference in their entirety. However, the method and apparatus described in FIG. 5 generates a set of Native Mobile Application Clients 5-7 and a set of Native Non-Mobile Application Clients 5-8, The method and apparatus described in FIG. 16 generates a set of Two- Layer Native Mobile Application Clients 16-4 and a set of Two-Layer Native Non-Mobile
Application Clients 16-5.
[0086] A Business Entity 4-1 define a Service Representation 5-1 and Business Entity Data 5-2. An Automatic Data Model Generator 5-3 takes the Service Representation 5-1 and the Business Entity Data 5-2 as inputs and automatically generates a Data Model 5-4, and from the Data. Model 5-4 it senerates a Common Data Model 16-1. a Server Data Model 16-2 and a Client Data Model 16-3. Using the generated Common Data Model 16-1, Server Data Model 16-2, and Client Data Model 16-3, an Automatic Application Generator 5-5 automatically generates all the Application Components. The generated Application Components include an Application Server 5-6, a set of Two-Layer Native Mobile Application Clients 16-4, a set of Two- Layer Native Non-Mobile Application Clients 16-5, a set of Non-Native Application Clients 5-9, Client Server Protocols 5-16, Dashboards 5-1.1, and Other Application Components 5-12. The set of Two-Layer Native Mobile Application Clients 16-4 comprises a Two-Layer Native Application Client executable for each mobile Client Device that the Native Mobile Application Client is desired to run on. The set of Two-Layer Native Non-Mobile Application Clients 16-5 comprises a Two-Layer Native Non- Mobile Application Client executable for each non-mobile Client. Device that the Native Non- Mobile Application Client is desired to run on. The generated Dashboards 5-11 can be used to modify the Dynamic Layer of the generated Two-Layer Native Mobile Application Clients 16-4 and Two-Layer Native Non-Mobile Application Clients 16-5. The generated Dashboards 5-11 can also be used to modify the generated Non-Native Application Clients 5-9. The generated Application Server 5-6 can be used to make the modified Dynamic Layer of the generated Two- Layer Native Mobile Application Clients 16-4 and Two-Layer Non-Native Mobile Application Clients 16-5 available for download to the Client Device 1-2. The generated Client Server Protocols 5-10 ca be used to download the modified Dynamic Layers to the Client Device 1-2.
[0087] FIG* 17 illustrates the infernal components of the Automatic Client Generator 1.7-2, which is part of the Automatic Application Generator 5-5. The Automatic Client Generator 17-2 uses the Client Data Model 16-3 to generate the Master Two-Layer Native Application Client 17-3 which is used by the Native Client Translation and Generator 17-4. The Native Client Translator and Generator 17-4 creates the set of Two-Layer Native Mobile Application Clients 16-4, the set of Two-Layer Native Non-Mobile Application Clients 16-5, the set of Non-Nati ve Non-Mobile and Cloud Application Clients 17-20 and the Non-N'alive Mobile Application Clients 17-21. i the process of doing this, there is a Client Validation Controller 17-5 that contains Validation Roles 17- 1.8 and Consistency Rules 17-1.9 to ensure thai the client components are generated appropriately. Inside the Automatic Client Generator 17-2 is the Native Client Functional Blocks 17-11 that feeds to a Client Orchestration Controller 17-10 which, together with the UI Generator Controller 17-12, feeds the Master Two-Layer Client Generator 17-13. Inside of the UI Generator Controller 20-17 are the TeiBplates 17-14, the Widgets 17-15, and the Presentation Rules 17-16. The Master Application Client 17-3 contains the Page Foundation 14-3, the Page Surfaces 14-2 for all Pages in the Application Client and the Client Database 17-17. Inside the Client Data Model 16-3 are the Functional Description 17-6, the Configuration Parameters 17-7, the Integration Point Parameters
17- 8 and the Presentation Attributes 17-9,
[0088] FI * 18 presents a Dynamic Layer Update flow which shows how the newly created Two- Layer Native Application Clients can be modified by the Business Entity 4-1 using the newly created Dashboards 5-11. The Dashboards 5-1 1 that are automatically created in FIG. 17 are used by the Business Entity 4-1 to add, delete, or modify content, features, and services contained in the Dynamic Layer of the Two-Layer Native Application Clients and replace the existing set of Dynamic Layers in the Client Devices 1-2, The System Solution allows the Business Entity 4-1 to modify the Data Model 5-4 and generate new Dynamic Layers. The generated Dashboards 5-11 allow the Business Entity 4-1 to have control of what the Business Entity wants to present to their Customers. The Business Entity 4-1 using the Dashboards 5-11 generates the Dynamically Updated Data Model 18-1 which is then applied to the Automatic Application Update Generator 1.8-2 which is a sub-set of the Automatic Application Generator 5-5. The output of the Automatic Application Update Generator 18-2 generates a set of Dynamically Updated Native Mobile Application Clients
18- 3, a set of Dynamicall Updated Native Non-Mobile Application Clients 18-4, Dynamically Updated Non-Native Mobile Application Client 18-5, Dynamically Updated Non-Native Non- Mobile and Cloud Application Clients 18-6 and a Updated Searchable Application Representation 18-7. The set of Dynamically Updated Native Mobile Application Clients .18-3 and the set of Dynamically Updated Native Non-Mobile Applicatio Clients 18-4 are the updated Dynamic Layers of the corresponding Two-Layer Nati ve Application Clients 6-1. Once this sequence has been established, the Business Entity can manipulate the Business Entity Data 5-2 applied to the Dashboards 5-1.1 and can continuously and automatically update the various Application Clients that this particular system generates.
[0089] FIG. 19 shows the Automatic Dashboard Generator 19-5, which is part of the Automatic Application Generator 5-5. The Automatic Dashboard Generator 19-5 derives the Dashboards 5-11 from the Page Surface 14-2 of all the Pages comprised in die Application Client, using the Dashboard Widgets 19-4. The Page Surface contains the Dynamic Element 19-2, which are the Elements 15-1 in the Page with Element Dynamic Property 15-3 of value equal to Dynamic, the Dynamic Sub-Element 19-3, which are the Sub-Elements 15-2 in the Page with Sub-Element Dynamic Property 15-4 of value equal to Dynamic, and the Navigation Parameter Values 12-2. The Automatic Dashboard Generator 19-5 also generates the Dashboards Validation Rules 19-6 and Dashboards Consistency Rules 19-7 to ensure that the Dashboards 5-11 are generated correctly.
[0090] The Automatic Application Generator 5-5 also comprises an Automatic Application Server Generator, an Automatic Protocol Generator, an Automatic Searchable Application Representation Generator, an Automatic Business Portal Generator, and an Automatic Business Account Generator which are not described here because they are similar to the corresponding blocks explained in detail in the co-filed U.S. Patent Application Set. No. 13/833.589 titled Apparatus for -Single Workflow for Multi-Platform Mobile Application Creation and Delivery and in U.S. Patent Application Ser, No. 13/833,669 titled "Method for Single Workflow for Multi-Platform Mobile Application Creation and Deliver)?' filed on March 15, 201.3, which are incorporated in reference in their entirety.
[0091 ] FIG. 20 shows an update process with which the Update Manager 8-5 contained in the Native Layer 6-2 of the Two-Layer Native Application Client 6- J queries the Application Server 5- 6 while the Two-Layer Native Application Client 6-1 is running on the Client Device 1-2 to check if a newer version of the Dynamic Layer that is currently running on the Client Device 1-2 is available in the Application Server 5-6. For this purpose, the Update Manager 8-5 uses a Dynamic Update Protocol 20-3, which is pan of the generated Client Server Protocols 5-10. When a newer version of the Dynamic Layer becomes availabie in the Application Server 5-6, it is downloaded to die Client Device using the Updated Dynamic Layer Download 20-2, and the Updated Dynamic Layer 20-1 is run on the Client Device 1-2.
[0092] FIG.21 shows an optimized alternative to the process described in FIG. 20. In this alternative process, when the Update Manager 8-5 contained in the Native Layer 6-2 of the Two- Layer Native Application Client 6-1 queries the Applicatio Server 5-6 using the Dynamic Update Protocol 20-3 to check whether a newer versio of die Dynamic Layer that is currently running on the Client Device 1.-2 is available in the Application Server 5-6, it also provides a List of the Desired Page Surfaces 21-4 that are needed to be displayed to the end user. When a newer version of the Dynamic Layer becomes available in the Application Server 5-6, only the Page Surfaces included in the List of Desired Page Surfaces 21-4 are downloaded using the Updated Desired Surface(s) Download 21-3, and the Updated Dynamic Layer 20-1 is run on the Client Device 1-2. Using this optimized alternative, the bandwidth usage arid communication between the Client Device 1-2 and the Application Server 5-6 is optimized, and the memory storage of the Client Device 1-2 is optimized, since the entire Dynamic Layer does not need to be downloaded to the Two-Layer Native Application Client 6-L Only the Page Surfaces that have changed and that are desired by the end user need to be downloaded to the Two-Layer Nati ve Applicatio Client 6-1. An even more optimized second alternative to this process downloads only the Elements, Sub- Elements, and Navigation Parameters that have been updated in the Desired Page Surfaces. The second alternative is an optimal update process of the Two-Layer Native Application Client 6-1.
[0093] Finally, it is understood that the above descriptions are only illustrative of the principle of the current invention. Various alterations, improvements, and modifications will occur and are intended to be suggested hereby, and are within the spirit and scope of the invention. This invention can, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that the disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the arts. It is understood that the various embodiments of the invention, although different, are not mutually exclusive. In accordance with these principles, those skilled in. the art can devise numerous modifications without departing from the spirit and scope of the invention. For example, in addition, a network and a portable system can exchange information wirelessly by using communication techniques such as Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Code Division Multiple Access (CDMA), Orthogonal. Frequency Division Multiplexing (OFDM). Ultra Wide Band (UWB). Wi-Fi, WiGig, Bluetooth, etc. The network can comprise the phone network, IP (Internet protocol) network, Focal Area Network (LAN), ad hoc networks, local routers and even other portable systems, in addition, the terra "Mobile Client Device" can be used for mobile devices such as cellphone, tablets, etc. "Non- Mobile Client Device" can be used for non-mobile devices such as desktops. "Cloud Client Device5' can be used for the device formed in the Cloud. At other instants the term "Client Device" can imply either the "Mobile Client Device," "Non-Mobile Client Device" or "Cloud. Client Device."

Claims

What is claimed is:
1. A System Apparatus comprising:
a System Solution with at least one first server coupled to at least one Computing device;
a plurality of Client Devices where each Client Device is running an Operating System;
a Communication network that couples said plurality of Client Devices and said at least one first server together;
a System Libraries provided by said Operating System;
a Two-Layer Native Application Client with a Native Layer and a Dynamic Layer;
said Native Layer runs on said Operating System using said System Libraries; and
said Dynamic Layer onl uses functionality and a set of libraries provided by said Native Layer.
2. The System Apparatus of claim 1, further comprising:
an Application Store approves said Two- Layer Native Application Client; and
an approved Two-Layer Native Application Client is downloaded to said plurality of Client
Devices.
3. The System Apparatus of claim 2, further comprising:
a Business Entity develops a new functionality for said approved Two-Layer Native Application Client coupled to said plurality of Client Devices with an Updated Dynamic Layer.
4. The System Apparatus of claim 3, further comprising:
a System Solution or said Business Entity stores said Updated Dynamic Layer on an Application Server.
5. The System Apparatus of claim 4, further comprising;
an Update Manager in said Native Layer of said plurality of Client Devices insures that said Updated Dynamic Layer is downloaded to said plurality of Client Devices from said Application Server bypassing an approval process of said Application Store.
6. The System Apparatus of claim 5, wherein
said Updated Dynamic Layer updates the existing Dynamic Layer in said Two-Layer Native Application Client while said Two-Layer Native Application Client is running on said plurality of
Client Devices.
7. The System Apparatus of claim Ϊ, further comprising:
said approved Two-Layer 'Native Application Client comprises a plurality of pages each with at least one button where said buttons are Navigation Elements.
8. The System Apparatus of claim 7, further comprising:
a plurality of Elements each with a plurality of Sub-Elements, a Navigation Element, an Actionable Element, a Navigation Rule, a FiHable Element, and a native Logic with an Orchestration, an
Update Manager and Native Client Functional Blocks in each of said plurality of pages.
9. The System Apparatus of claim 8, wherein
each page can be in use Page State or in a standby Page State,
10. The System Apparatus of claim 8, further comprising:
a Conditional Navigation, determines if a Navigation Element is displayed in a Starting Page and if so what page or pages of a second plurality of pages are linked to said Starting Page.
1 1. A System Apparatus comprising:
a System Solution with at least one first server coupled to at least one Computing device;
a Business Entity Data of a Business Entity loaded on a server;
tillable entries of Dashboards filled by said Business Entity;
said Dashboards controlled by said System Solution automatically generates a Dynamically Updated Data Model; and
said Dynamicall Updated Data Model and an Automatic Application Update Generator automatically generates a set of Dynamically Updated Applications Clients.
12. The System Apparatus of claim II, further comprising; sa id set of Dynamically Updated Applications Clients includes a Dynamically Updated Nati ve Mobile Application Client, a set of Dynamically Updated Nati ve Non-Native Mobile Application Client, a Dynamically Updated Non-Native Mobile Application Client, Dynaraically Updated Non- Mobile and Cloud Application Clients and a Dynamically Updated Searchable Application
Representation.
13. The System Apparatus of claim 11 , further comprising:
each said Dynamically Updated Applications Client are downloaded to a corresponding Client Device via a Communication network.
14. The System Apparatus of claim 11, further comprising:
each page of said Dynamical ly Updated Application Client comprises a Page Surface and a Page Foundation: and
said Page Surface can be changed dynamically via Dashboards.
15. The System Apparatus of claim 14, further comprising:
each Page Surface comprises a least one Dynamic Element, at least on Dynamic Sub-Element, and a Navigation Parameters;
a Dashboard Widgets and said Page Surface coupled to an Automatic Dashboard Generator; and said Automatic Dashboard Generator automatically generates Dashboards, Dashboard Validation Rules, and Dashboards Consistency Rules.
1.6- The System Apparatus of claim 15, further comprising:
said Dashboard Validation Rules and said Dashboards Consistenc Rules generate a plurality of Validation Controllers to show a validity and a consistency of said Dynamically Updated Data Model; and
said plurality of Validation Controllers show said validity and said consistency of said set of
Dynamically Updated Applications Clients.
17. A method of checking for Updates continuously on an Application Server comprising the steps of:
providing a plurality of Page Surfaces;
providing an Update Manager in a Native Layer that runs a Dynamic Update Protocol with said Application Server;
checking said Application Server with said Dynamic Update Protocol continuously for Updated Page Surfaces or new Page Surfaces:
downloading only said Updated Page Surfaces or said new Page Surfaces automatically to a Dynamic Layer of a Two-Layer Application Client; and
checking continuously and downloading said Updates to said Two-Layer Application Client from said Application Server.
18. The method of claim 17, whereby
said Two-Layer Application Client is a Two-Layer Native Mobile Application Client or a Two- Layer Native Non-Mobile Application Client.
19. The method of claim 17, further comprising the steps of:
providing a plurality of Elements with an Element Dynamic Property in a Page Surface;
providing a plurality of Sub- Elements with a Sub-Element Dynamic Property in said Page Surface; minimizing bandwidth usage in a Communications, network by not downloading Non-Updated Sub-Elements, Non-Updated Elements, or Non-Updated Page surfaces from said Application Server to said Two-Layer Application Cl ient.
20. The method of claim .17, further comprising the steps of:
allowing a Business entity to change said functionality without said, approval of said Appl ication Store.
21. The method of claim 17, further comprising the steps of:
changin said functionality without stopping, deleting, and ^installi g said Two-Layer
Application Client; and
changing said functionally while said Two-Layer Application. Client is running.
EP14770270.8A 2013-03-15 2014-03-14 Dynamic user interface delivery system Withdrawn EP2972813A1 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US13/833,849 US10075560B2 (en) 2013-03-15 2013-03-15 User interface and content translation system
US13/834,765 US20140280481A1 (en) 2013-03-15 2013-03-15 Hierarchical Application Client System
US13/833,669 US10320885B2 (en) 2013-03-15 2013-03-15 Method for single workflow for multi-platform mobile application creation and delivery
US13/833,775 US10320942B2 (en) 2013-03-15 2013-03-15 Dynamic user interface delivery system
US13/833,589 US10326825B2 (en) 2013-03-15 2013-03-15 Apparatus for single workflow for multi-platform mobile application creation and delivery
PCT/US2014/026995 WO2014152141A1 (en) 2013-03-15 2014-03-14 Dynamic user interface delivery system

Publications (1)

Publication Number Publication Date
EP2972813A1 true EP2972813A1 (en) 2016-01-20

Family

ID=51581123

Family Applications (2)

Application Number Title Priority Date Filing Date
EP14771074.3A Withdrawn EP2972814A1 (en) 2013-03-15 2014-03-14 Method for single workflow for multi-platform mobile application creation and delivery
EP14770270.8A Withdrawn EP2972813A1 (en) 2013-03-15 2014-03-14 Dynamic user interface delivery system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EP14771074.3A Withdrawn EP2972814A1 (en) 2013-03-15 2014-03-14 Method for single workflow for multi-platform mobile application creation and delivery

Country Status (2)

Country Link
EP (2) EP2972814A1 (en)
WO (5) WO2014152149A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792014B2 (en) 2013-03-15 2017-10-17 Microsoft Technology Licensing, Llc In-place contextual menu for handling actions for a listing of items
US10949075B2 (en) 2014-11-06 2021-03-16 Microsoft Technology Licensing, Llc Application command control for small screen display
US20160132301A1 (en) 2014-11-06 2016-05-12 Microsoft Technology Licensing, Llc Programmatic user interface generation based on display size
EP3265905A4 (en) * 2015-03-06 2018-11-21 Cisco Technology, Inc. Systems and methods for generating data visualization applications
DE102019201060A1 (en) * 2019-01-29 2020-07-30 Siemens Aktiengesellschaft Process for computer-aided generation of operating software for a terminal and data processing device and terminal

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804718B1 (en) * 1999-03-18 2004-10-12 Kent Ridge Digital Labs Computing system and method for migrating a mobile computing environment
WO2001086882A2 (en) * 2000-05-05 2001-11-15 @ Hand Corporation System and method for extending an enterprise network to mobile devices
US20030050932A1 (en) * 2000-09-01 2003-03-13 Pace Charles P. System and method for transactional deployment of J2EE web components, enterprise java bean components, and application data over multi-tiered computer networks
US20020078253A1 (en) * 2000-12-20 2002-06-20 Gyorgy Szondy Translation of digital contents based on receiving device capabilities
US7461086B1 (en) * 2006-01-03 2008-12-02 Symantec Corporation Run-time application installation application layered system
JP2006512695A (en) * 2002-12-23 2006-04-13 デクステラ・インコーポレイテッド Mobile data and software update system and method
US20050015361A1 (en) * 2003-07-15 2005-01-20 International Business Machines Corporation Model content provider with reusable components for supporting a plurality of GUI API's
AU2005256105B8 (en) * 2004-07-30 2008-10-02 Blackberry Limited Method and apparatus for provisioning a communications client on a host device
GB2421323B (en) * 2004-12-15 2009-07-22 Symbian Software Ltd A method of maintaining applications in a computing device
US8006224B2 (en) * 2005-04-15 2011-08-23 Research In Motion Limited System and method for unified visualization of two-tiered applications
SE529490C2 (en) * 2005-12-19 2007-08-28 Smarttrust Ab Procedure and system for formatting provisioning content in a mobile device management system
US20070150816A1 (en) * 2005-12-22 2007-06-28 Innopath Software, Inc. User interface authoring utility for changing user interface elements on wireless devices
US8561048B2 (en) * 2005-12-29 2013-10-15 Sap Ag Late and dynamic binding of pattern components
US8904342B2 (en) * 2007-05-25 2014-12-02 Zoot Enterprises, Inc. System and method for rapid development of software applications
US8020144B2 (en) * 2007-06-29 2011-09-13 Microsoft Corporation Metadata-based application deployment
AU2008229743A1 (en) * 2007-10-03 2009-04-23 Britesoft Solutions (M) Sdn Bhd Cutomizable Application System
US20100124939A1 (en) * 2008-11-19 2010-05-20 John Osborne Method and system for graphical scaling and contextual delivery to mobile devices
US9336023B2 (en) * 2009-12-18 2016-05-10 Sybase, Inc. Visual generation of mobile applications based on data models
US8719776B2 (en) * 2009-12-30 2014-05-06 Foneclay, Inc. System for creation and distribution of software applications usable on multiple mobile device platforms
US8692851B2 (en) * 2010-01-06 2014-04-08 Apple Inc. Device, method, and graphical user interface with grid transformations during device rotation
US20120174079A1 (en) * 2010-06-23 2012-07-05 Ansca, Inc. Systems and methods for simulating a mobile device application
CN102647336B (en) * 2011-02-22 2016-09-07 瑞昱半导体股份有限公司 Method and network equipment for package Content Transformation
US8898629B2 (en) * 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a mobile application development and deployment platform
US8903897B2 (en) * 2011-07-08 2014-12-02 Google Inc. System and method for providing interactive content to non-native application environments

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2014152141A1 *

Also Published As

Publication number Publication date
EP2972814A1 (en) 2016-01-20
WO2014152164A1 (en) 2014-09-25
WO2014152128A1 (en) 2014-09-25
WO2014152149A1 (en) 2014-09-25
WO2014152136A1 (en) 2014-09-25
WO2014152141A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
US11405758B2 (en) Application managing application
US11375045B2 (en) Dynamic user interface delivery system
WO2014152141A1 (en) Dynamic user interface delivery system
CA2557111C (en) System and method for building mixed mode execution environment for component applications
AU2003291909B2 (en) System and method of creating and communicating with component based wireless applications
US11363118B2 (en) User interface and content translation system
US20110047493A1 (en) Method for providing control widget and device using the same
CN103370689A (en) Cross-environment application compatibility
JP2014522542A (en) Automatic conversion and code generation for user interface objects
EP1576472A2 (en) System and method for building and execution of platform-neutral generic services client applications
CN103677860B (en) A kind of method and apparatus for being used to update browser
KR101907837B1 (en) Application activation framework
US9286054B2 (en) Deployment of mobile enterprise application platform
WO2016202047A1 (en) Application recommendation method, apparatus, server, and terminal
US20140280481A1 (en) Hierarchical Application Client System
WO2010095963A1 (en) Methods of conducting wireless transactions and systems therefor
GB2503571A (en) Enabling updates of a mobile application

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20151015

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: GADGET SOFTWARE, INC.

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Effective date: 20160510