EP2972814A1 - Method for single workflow for multi-platform mobile application creation and delivery - Google Patents

Method for single workflow for multi-platform mobile application creation and delivery

Info

Publication number
EP2972814A1
EP2972814A1 EP14771074.3A EP14771074A EP2972814A1 EP 2972814 A1 EP2972814 A1 EP 2972814A1 EP 14771074 A EP14771074 A EP 14771074A EP 2972814 A1 EP2972814 A1 EP 2972814A1
Authority
EP
European Patent Office
Prior art keywords
service
application
client
server
data model
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
EP14771074.3A
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,589 external-priority patent/US10326825B2/en
Priority claimed from US13/833,669 external-priority patent/US10320885B2/en
Priority claimed from US13/833,775 external-priority patent/US10320942B2/en
Application filed by Beeonics Inc filed Critical Beeonics Inc
Publication of EP2972814A1 publication Critical patent/EP2972814A1/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/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Definitions

  • the Client Devices can be mobile units such as DChilar phones and smartphones, wearable devices, tablets, laptops, desktops and Intemet-enabled TV sets.
  • the Client Devices are physical and can be either mobile (cellular phones, smartphones, wearable devices, and tablets ⁇ or non-mobile (laptops, desktops, and TV sets), and conpled 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 has the Application Client which is the actual application software running on device.
  • 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.
  • Adobe iM and MicrosofTM offer the ability of using their software programs via the Cloud, while other companies offer storage capabilities via the Cloud to their customers.
  • 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.
  • 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 small 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 recei er 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 all components together.
  • FIG. 4 presents two different layered stacks of the hardware/software representation for a Client Device.
  • the iPhone, Android or Blackberry phone stack 4-2, for example, consists of hardware 2-16, Operating System (OS) 2-13 aod the Native Application Client 4-5.
  • the Native Application Client is currently unalterable. Once the application is downloaded and if die user of the Client Device 1-2 desires a feature change in the Native Application Client, the user must go back to the application store (see 3-5 in FIG, 3 ⁇ and download an updated version of the applicaiion that has this change implemented. This can take a significant amount of time to get the new Native Application Client since the updated application needs to he developed, re-submitted to the application store, and re-approved by the application store.
  • An additional preferred embodiment of the invention is the method -whic uses the Automatic Server Generator to generate a first set of Validation. Rules and a first set of Consistency Rules. Using the generated first set of Validation Rules and first set of Consistenc Rules, the method uses a Server Validation Controller to validate the correctness of the generated executable computer program of first retailer Application Server, second consumer Application Sen er, first Retailer Application Server Database, and second Consumer Application Server Database.
  • a further preferred embodiment of the invention is an apparatus that provides the generated Dashboards to the Business Entity.
  • the Business Entity uses the generated Dashboard and Business Entity Data, the Business Entity automatically generates an Updated Data Model.
  • the Updated Data Model is then used by the System Solution to automatically generate a Updated Application.
  • Such an Updated Application consists of a plurality of Updated Applicatioo Components including a set of Updated Native Mobile Clients, Non-Native Mobile Clients, Non-Mobile and Cloud Mobile Clients, and other components.
  • the newly generated Updated Application Components replace the corresponding existing Application Components,
  • a System Solution with at least one first server and with at least one Computing device, coupling the plurality of Client Devices.
  • the method further comprising the steps of specifying a pluralit of basic Services as a list of inputs, outputs and parameters passes through a Service Internal Interface, whereby combining the selected one or more desired Services list of inputs, outputs and parameters together to generate another desired Service or the higher functionality component.
  • the method further comprising the steps of specifying the functionality of a User Interface with a. Consumer End User using a Service User interface.
  • FIG. 1A depicts a Client Device coupled to a server and provides some example of Client Devices.
  • FIG. IB depicts a Client Device coupled to a client server.
  • FIG. 3 presents the current approval process of an application store.
  • FIG. 4 illustrates two different stacks of a nati ve application and a non-native application in HTML5 running on a web browser.
  • FIG. 5 shows a Business Entity desiring to create a Service Representation m accordance with the present invention.
  • FIG. 7B shows how the automatically generated Native Mobile application Clients are provided to the Client via a store in accordance with the present invention.
  • FIG. 8 presents the Dashboards used b the Business Entity to update the data mode! of the application to create updated applications in accordance with the present invention.
  • FIG. 9 shows the End User, Client Device client/server protocol and application servers for a Business Entity in accordance with the present invention.
  • FIG. 10 illustrates the service between the consuming, providing and configuring entities in accordance with the present invention.
  • FIG. 1 1 depicts a chart offering service families and corresponding service examples in accordance with the present, invention.
  • FIG. 12 illustrates the service being chained together to offer new Services in accordance with the present invention.
  • FIG, 13 shows a Service Selection menu for the Business Entity in accordance with the present, invention.
  • FIG. 14 shows one block structure of a Service Representation in accordance with the present invention .
  • FIG. 1SA- depicts a Description and Examples of the block; structure of the Service
  • FIG. 16 illustrates the Automatic Data Model Generator in more detail (from the Service Representation to Data Model) in accordance with the present invention
  • FIG. 17 depicts an Automatic Application Generator in more detail (from the Data Model to Applications Components) in accordance with the present invention.
  • FIG. 18B depicts the Basic Server Functional Blocks of FIG. ISA in accordance with the present, invention.
  • FIG. 28B illustrates the Native Client Functional. Blocks and Widgets to build the User Interface of FIG. 2 ⁇ in accordance with the present invention.
  • FIG. 21 depicts an Automatic Dashboard Generator in accordance with the present invention.
  • FIG. 22A shows Single Application Server for the System Solution 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 Application Clients that run on Mobile, Non-Mobile, and Cloud Client Devices.
  • the System Solution is the owner of all Applicatio Components automatically generated by the System Solution.
  • the System Solutio creates and hosts Applications for different Business Entities (each Business Entity is a System Solution customer).
  • Retailer is used loosely as a synonym for Business Entity.
  • the System Solution Consumer Application Server supports the services presented to the users by the Mobile Application Clients, Non-Mobile Application Clients, and Cioud Clients, while the System Solution Retailer Application Server is used by the Business Entity to monitor and manage the Application, including all the Application Clients.
  • the System Solution provides a complete environment for the creation, hosting, updating, and management of the Application. All Application Servers generated by the System Solution (specifically, the System Solution Consumer Applicatio Server and System Solutio Retailer Application Server) for all Business Entities are hosted i a multi-tenant environment in the Cloud, but each Business Entity "feels" like it is provided dedicated Retailer and Consumer Application Servers.
  • the System Solution architecture also applies with minor changes to a scenario where the System Solution Consumer Application Server and System Solution Retailer Application Server run on dedicated servers owned by the Business Entity, rather than in the Cloud.
  • the System Solution has access to control and offer beneficial use for those servers thai axe coupled to the Cloud.
  • Business Entities deploy their Applications to reach Consumers (i.e., the customers of that Business Entity served by System Solution).
  • 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 Retailer Portal that the System Solution provides to each Business Entit for managing the corresponding Application.
  • a Service is a set of functionality that is provided by a Service Providing Entity to a Service Consuming Entity.
  • the Service Consuming Entity uses the Service to accomplish a certain task or function or activity.
  • this definition of "Service” is analogous to the notion of Service that Consumers obtain from a Service Provider, for example, a cellphone service or a health care service.
  • the Service Providing Entity is the Provider or Originator, while the Service Consuming Entity is the End User or Target.
  • Mobile Client Devices cellular phones, smartphones, wearable devices, and. tablets
  • Non-Mobile Oieni Devices laptops, desktops, and Internet-enabled TV sets
  • wired a physical interconnect
  • wireless connectivity can be cellular (3 ( 1 4G, etc.), Wi-Fi, Bluetooth, WiMax, etc.
  • the network interconnecting these components is called the Communication network.
  • the Client Device 1-2 has the Application Client which is the actual application software running on device.
  • the cellular phones, smartpliones, tablets, laptops, desktops, and Internet-enabled TV sets are Client Devices and are physical devices that can be held.
  • Each Application includes a famil of Application Clients, Each Application Client corresponds to a certain Client Device.
  • the family of Application Clients includes a set of Native Mobile Clients, one per mobile platform. Some examples of the mobile platforms include the iPhone, iPad, Android phones, or tablets while the non-mobile systems include the desktops. Mobile platforms of interest include tablets.
  • 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 illustrates how a Business Entity 5-1 generates the Service Representation (high level, representation) 5-4.
  • the Business Entity 5-1 is the entity that wants to create the application.
  • the Business Entity is a customer of the System Solution. Examples of Business Entities are: retailers, manufacturers, schools, museums, f anchises, and individuals.
  • the Business Entity 5-1 determines the Business Objectives 5-2 which, are used to create the Service Selection 5-3.
  • the Business Entity 5-1 selects the services in the Service Selection 5-3 which is used to determine the Service Representation 5-4.
  • the Service Representation is a high-level description of the functionality that the Business Entity wants to be implemented in the application.
  • the Service Representation 5-4 defines which Services are included in the Application according to the interest of the Business Entity.
  • the Service Representation uniquely defines the desired functionality and contains sufficient information for the System Solution to automatically generate a Data Model corresponding to the Application.
  • the Service Representation 5-4 includes a set of Service Specifications, which specify the desired Service Features, Service Configuration, Service Interfaces, and Service Presentation that are implemented in the Application.
  • FIG. 6 A simplified version of the Automatic Application Generator is illustrated in FIG. 6.
  • the Service Representation 5-4 and the Business Entity Data 6-1 are entered into in Automatic Data Model Generator 6-2.
  • the Automatic Data Model Generator 6-2 analyzes the information from the Business Entity Data and the Service Representation and segments the information automatically into memory into pre-arranged slots.
  • the output of the Automatic Data Model Generator 6-2 with a well formatted memory structure is used to create the Data Model 6-3.
  • the structure of the Data Model 6-3 is uniform between any and all different Business Entities and the Services they select. The uniformity in the structure of the Data Model 6-3 can now be capitalized.
  • the data outputs of the Data Model 6-3 present data to the inputs of the Automatic Application Generator 6-4 in a well- organized structure.
  • the Automatic Application Generator 6-4 can now focus on the automatic generation of features since all data has been partitioned into known structure.
  • the Automatic Application Generator 6-4 knows the structure of the Data Model 6-3 allowing the output of the Automatic Application Generator 6-4 to automatically create a plurality of Application Components.
  • These features include the Application Servers 6-5, a set of Native Mobile Application Clients 6-6, a Client/Server Protocol 6-7, Dashboards 6-8 that has entries which are fillable and Other Application Components 6-9,
  • Native Mobile Application Clients 6-6 offer a family of executable* of native Mobile Clients for all desired mobile platforms. This enables a self-service Automatic Application Creation environment for native Mobile Applications Clients.
  • a very intuitive, high level Service Representation 5-4 such as a visual or graphical Service Representation 5-4 can be used to initiate a full Automatic Application Creation flow that generates a plurality of Application Components, including a family of Native Mobile Application Clients 6-6.
  • the Client/Server Protocol 6-7 is a communication mechanism between the Application Client and the Application Server. Application Server control. Mobile Application Client memory management, and Client/Server communication mechanism 6-7 are used to optimize Mobile Application Client response time and bandwidth utilization.
  • FIG. 7A illustrates a more detailed description of the automatic application creation which runs software on a server to generate all the Application Components in detail
  • the Service Representation 5-4 and the Business Entit Data 6-.1 are used by the Automatic Data Model Generator 6-2 to create the Data Model 6-3.
  • the Business Entity Data 6-1 contains specific data pertaining to the Business Entity that is relevant to run the Services implemented in the Application. Examples of Business Entity Data. 6-1 are inventory, locations of stores, price of goods, etc.
  • the output of the Data Model 6-3 is applied to the Automatic Application Generator 6-4 which creates all the Application Components 7-9 in detail partially described i FIG. 6.
  • These components are deployed by a Communication network and include the Application Servers 6-5 comprising the Retailer Application Server 7-1 and the Consumer Application Server 7-2. a set of Native Mobile Application Clients 6-6. a Non-Native Mobile Application Clients 7-3, a Non-Mobile and Cloud Application Clients 7-4, Client/Server Protocols 6-7 and Dashboards 6-8. There is one Native Mobile Application Client 6-6 per Native Mobile OS (iOS for iPhone, Android, Blackberry- Windows, etc.). The Other Application Components 6-9 are Security 7-5, Business porta! 7-6»,, Analytics 7-6a, Business Account and Business Profile 7-7 and Searchable Application Representation 7-8. A first part of the Application Components is deployed to a plurality of Computer hardware to create a first plurality of servers retaining the first part of the Application Components. A second part of the Application Components deployed to the at least one first server,
  • the Retailer Application Server 7-1 is used by the Business Entity 5-1 to monitor and manage the Application Components for their Business Entity.
  • the Consumer Application Server 7- 2 supports the Services implemented in the Application and presented to the consumers via all Mobile, Non-Mobile, and Cloud Clients. All Application Servers (specifically, the Consumer Application Server 7-2 and Retailer Application Server 7-1) for all Business Entities that are customers of the System Solution are hosted in a mutti -tenant environment in the Cloud, but each Business Entity "feels" like it is provided a dedicated Retailer and Consumer Application Server.
  • the architecture also applies with minor changes to a scenario where the Consumer Application Server 7-2 and Retailer Application Server 7-1 run on servers owned by the Business Entity, rather than in the Cloud.
  • the working assumption is that the System Solution has access to those servers. Businesses deploy their Application to reach Consumers (i.e., the customers of that Business Entity).
  • the primary End Users of the Application Clients are the Consumers of each Business Entity (i.e., the customers of all the Businesses served by the System Solution).
  • the Business Entities are the End Users of the Dashboards and Retailer Portal that the System Solution generates and provides to each Business for managing the corresponding Application.
  • Security 7-5 provides security and privacy in all communications between Application Clients and Application Servers for each Business Entity. Security 7-5 also guarantees that there is no commu cation betwee Retailer Application Servers or Consumer Applicatio ' Servers associated with different Business Entities and that Retailer Databases and Consumer Databases associated with different Business Entities are kept separate.
  • the System Solution offers basic- protection against Denial of Service (DoS) attacks for each System Solution Application.
  • DoS Denial of Service
  • the Analytics 7-6 consists of functionality to collect and process analytics data on consumer engagement and usage in the Application Clients and transmit that data to the Application Server, and functionality to store and process analytics the received analytics data in the Application Server,
  • the Business Portal 7-6b includes a number of interfaces for the B usiness Entity to view the processed Analytics Data and for the Business Entity to enter Business Data and manage its Business Profile. It also includes interfaces for the Business Entity 5-1 to access the Web and Mobile Dashboards 6-8 and other tools that the Business Entity uses to manage, monitor, and update the Services implemented in its Application.
  • the Business Portal 7-6 also includes interfaces for the Business Entity 5-1 to manage its Searchable Application Representation 7-8.
  • the Business Portal used by the Business Entit handles: sales, marketing, customer service and support, appointments, analytics, feedback, and other customer facing tasks.
  • Each Mobile Application is associated with a Searchable Application Representation 7-8, which makes the corresponding Mobile Application Client and the content contained in such Mobile Application Client searchable by search engines. SEO techniques can be used in the System Solution Searchable Application Representation to boost the search results of the corresponding Mobile Application Client and content.
  • Searchable Application Representation 7-8 for each Business Entity 5-1 is generated by the System Solution when the Application for that Business Entity is created.
  • FIG. 7B illustrates how the Native Mobil Application Clients 6-6 are downloaded to Mobile Application Clients (l-lw, l-2x, l-2y, and l-23 ⁇ 4).
  • the generated Dashboard 6-8 allows the Business Entity to have control of what the Business Entity wants to present to their Customers.
  • the Business Entity 5-1 using the Dashboards 6-8 update and recreate the features of the Native Mobile Application Clients 6-6, Non-Native Mobile Application Clients 7-3, Non-Mobile and Cloud Application Clients 7-4 and the Searchable Application Representation 7- of FIG. 7 (all others remain the same) by providing input to the B usiness Entity Data 6-1 which provides data for the Dashboards 6-8.
  • the output of the Dashboards 6-8 is applied to the Updated Data Model 8-1 which is then applied to the Automatic Application Update Generator 8-2 which is a sub-set of the Automatic Application Generator 6-4.
  • the output of the Automatic Application Update Generator 8-2 generates a set of Updated ' Native Mobile Application Clients 8-3, an Updated Non-Native Mobile Application Client 8-4, an Updated Non-Mobile and Cloud Application Client 8-5 and a Updated Searchable Application Representation 8-6.
  • the Business Entity can manipulate the business data applied to the Dashboards 6-8 and can continuously and automatically update the various Application Clients that this particular system generates.
  • the Retailer Portal 7 ⁇ 6b and Dashboards 6-8 provide the Business Entit 5-1 with a solution for the self-service monitoring, management, and updating of an Application consisting of a plurality of Application Components (i .e., after that Application is created), through a set of Dashboards 6-8 and tools that the Retailer can directly access (hence, the self-service nature of the process) this updating process.
  • This is called the Application Retailer Management Flow.
  • the newly generated Updated Native Mobile Application Clients 8-3 may have to be resubmitted for approval to the corresponding Application Stores in order for the new clients t be downloaded to the Client Devices 1-2.
  • the newly generated Native Mobile Application Client do not require resubmission of the Mobile Client to the corresponding Application Store, and therefore do not require explicit updates from the Application Stores of those Application Clients running on the Client Devices, in such cases, the System Solution provides internal client/server update mechanisms that perform the updates in a "dynamic manner" that is "instantaneous" and completely transparent to the Consumer and Business Entities.
  • the Applicatio Clients are dynamic in nature, and can be managed and updated to a certain extent via a corresponding set of Dashboards 6-8 accessed by the Business Entity through the Retailer Portal.
  • a Retailer can: Add, delete, and modify content within the application; Add, delete, and modify Pages within a Service in the application; Modify the navigation within the application; and turn o and off Services (i.e., make Services active or dormant) that were selected when the application was created.
  • Mobile and Non-Mobile Clients are capable to update their content and functionality "dynamically* and efficiently, under the control of the Consumer Application Sewer, so as to provide a very engaging experience to the Consumers.
  • the Dynamic architecture is designed to support "dynamic" experiences in the most efficient and responsive way possible.
  • the objective is to enhance the Client user experience in terms of response time while maintaining the dynamic nature of portions of the Client.
  • the structure of the Dynamic Architecture allows identifying the Elements and Sub-Elements that are most likely to change, in this way, the Consumer Application Server 7-2 can send to the Mobile Client only incremental updates, with a "minimum” amount of information which maximizes the bandwidth usage of this interface.
  • the Mobile Client and the Consumer Application Server 7-2 follow a simple Update Strategy to update the Pages and content in the Mobile Client 1-2.
  • the Mobile Client 1-2 also follows a greedy Persistency Strategy, to keep in memory as much information as possible to be displayed while requesting for fresher copies of certain Elements and Sub-Elements.
  • FI * 9 illustrates further detai ls of the functional components thai implement a Service and are automatically generated by the System Solution.
  • the Service Representatio 5-4 automatically generates the Service.
  • the End User 9-1, or Customer interfaces to the Client Device 1-2,
  • the Service Client-Server Protocol 9-2 exchange information between the Application Servers 6-5 and the Client Device 1-2.
  • the Business Entity 5-1 uses the Dashboards 6-8 which are a sub-set of the external data 9-6. If the Service does not change, the Dashboards are not used and the Data stays the same.
  • Business Entity Data 6-1 is available from the Business Entity 5-1.
  • the Client Device 1-2 consists of the Application Client 9-7, an. Operating System 2-13 and Hardware 2-16.
  • the Application Client 9-7 further comprises several blocks. These blocks include the Application Client User Interface 9-8, the Application Client Server Logic 9-9, the Application Flow 9-10, a Service Database-Client 9-11 and an Analytics-Client 9-12.
  • the Service Client-Server Protocol 9-2 is associated with Securit 9-3 that is used to encode the information that is sent between the Client Device 1-2 and the Application Servers 6-5.
  • the Application Servers 6-5 comprises the Searchable Representation 9-13, an Application Server Run Time Logic 9-14, a Service Database-Server 9-15, and an Application Server Backend Logic 9-16, Service Policy and Rules 9-17, Analytics-Server 9-18, Navigation Graph 9-2 ⁇ and an Integration Data ngestion Logic 9-19.
  • the Application Server Run Time Logic 9-14 runs in the Consumer Application ' Server 7-2 and the Application Server Backend Logic 9-16 runs in the Retailer Application Server 7-1 ,
  • a Client portion (Mobile, Non-Mobile or in the Cloud) presents the Service to the End User 9-1, allowing Consumers to enter inputs, interact with the Services, and collect statistics.
  • this includes a User Interface (VI), mobile application logic and a mobile data structure.
  • the (Client Device 1-2) can run on a Mobile phone.
  • the mobile application logic and mobile data structure use a number of Client functional blocks or widgets to implement the required functionality.
  • An Application Server portion which runs in the Consumer Application Server 7-2, and provides the backend functionality needed to run the Service.
  • this includes application server logic and a data structure.
  • the application server logic and data structure use a number of basic server functional blocks to implement the required functionality.
  • a Service Client-Server Protocol 9-2 offers a communication mechanism between the Client Device 1-2 and the Application Servers 6-5.
  • a Management Suite comprising a set of management Dashboards 6-8 and tools that the Business Entity 5-1 uses to configure, update, modify, manage, monitor, and analyze the Service, The Management Suite is accessed by the Business through the Retailer Portal and runs in the Retailer Application Server 7-1.
  • the primary End Users are the Consumers (i.e., the customers of all die Businesses). Any End User action or input while offline is stored in memory and sent to the Server when connectivity is restored.
  • the Consumer Application Server 7-2 contains functionality to run the Application for each Business Entiiy and to manage the End Users (i.e.. Consumers) of the Application.
  • the roie of the End User 9-1 defines who is at the "receiving end" of a Service. In other words, the End User 9- 1 is the "entity" who "experiences" or "benefits” from a certain Service.
  • the Searchable Representation 9-13 includes a Business- Facing Service comprising Mobile Search Engine optimization (SEO) Manager which allows the Business-Facing Service to monitor and enhance the Mobile Application Searchable URL by building upon Mobile Application Searchable URL and Searchable URL Tagging.
  • Mobile Application Searchable URL which creates a Searchable Representation of the Mobile Application and Searchable URL Tagging thai adds keywords to Mobile Application Searchable URL.
  • Each Mobile Application is associated with a Searchable URL, which makes the corresponding Mobile Application Clients and their content searchable by search engines.
  • SEO techniques can be used in the Searchable URL to boost the search results of the corresponding Mobile Application Clients and their content.
  • the Searchable- URL for each Business Entity is generated by the System Solution Automatic Application Generator 6-4 when the Mobile Application System for that Business Entity 5-1 is created.
  • a Service 10-3 is a set of functionality that is provided by a Service Providing Entity 10-5 to a Service Consuming Entity 10-1.
  • the Service Consuming Entity 10-1 uses the Service 10-3 to accomplish a certain task or function or acti vity, for example, receiving and redeeming an electronic coupon on the Service Consuming Entity's cellphone.
  • the Service Providing Entity 10-5 is the Provider or Originator, while the Service Consuming Entity 10-1 is the End User or Target.
  • API refers to an interface between the System Solution and an External System, or to an interface between two Services, in other words, the term API loosely, in a logical connotation, is synonymous of a generic interface.
  • Consumer Service is the Loyalty Service.
  • the Consumer is provided with the ability of accumulating points based on their purchases at a store, and eventually earning rewards when the number of points reaches a certain level.
  • Other examples of Consumer Senices can include Personalized Storefront Service, Real " Time Promotion Service, Store Finder Service, and many others.
  • FIG. 11 provides a table 11-1 of a set of examples of Service Families 11-2 along with a set of Service Examples 11-3.
  • the Greeting Service is the first row under the Service Family 11-2 contains the service examples of in-location greetings and automatic check-ins.
  • the Personalized Experience Services row comprises a personalized promotion, and m-store only experiences, realtime experiences yield management, personalized storefront and context location specific experiences.
  • the Information Services row comprises a personalized information discover ⁇ ', customized information, intelligent notifications temiiiders/alerts, personalized/contextual guides and an intelligent navigator.
  • the 2nd Screen Services row includes contextual product information, a contextual interactivity and a contextual virtual wall.
  • the Correlation Services row comprises an interest relation between product correlation, a contextual correlation, a real time correlation, and information-based correlation and a social-based recommendation.
  • the Value Services row contains intelligent shopping list/wallets, product trackers, store navigators, personal organizer calendar/concierge and reservations.
  • the Convenient Services row includes a mobile ordering, a mobile deli counter and activity trackers.
  • the Loyal Services row comprises a personalized loyalty, a purchase-based rewards, activity-based rewards and VIP services.
  • the Communication Services row contains contextual feedback, contextual polls, personalized messaging, one-click communications and reviews.
  • the Utility Services row comprises mobile payments, a price finder, social sharing and store finders.
  • the high-level featur list includes a Service "Black Box 1 ' Description 14-1, Service Flavors 14-2, Service Features 14-3, Service Configuration 14-4, Service User Interface 12-2, Dashboards 6-8, Service Integration Points 14-7, Service Internal Interfaces 12-4, Service Presentation 14-9 and a Sendee Status 1 -10,
  • the End User is both the Consumer who uses the Application Clients and the Business Entity who provides and manages the Service and can receive data and analytics back from the usage of the Service by the Consumer.
  • the purpose of the "Black Box "' Description is to give a high-level idea to the Business Entity of what the Service will provide to the Consumer and how the Service will be managed by the Business Entity.
  • the "Black Box” Description is not an actual input to the Automatic Data Model Generation Process.
  • the "Black Box” is simply provided to make the Service Selection process by the Business Entity easier and clearer.
  • the Shopping List Service is a list of items that the Consumer can enter through their Application Client, The Promotion is distributed in real time only to the Mobile Application Clients in the vicinity of a desired store which ha ve in their shopping List keywords that match the items.
  • a third example applies to the Electronic Loyalty Service - '"Key Chain” Card.
  • the Service "Black Box" Description for this Service would recite as follows.
  • the Electronic Loyalty Service - "'Key Chain” Card is an electronic Loyalty Card is associated to each Consumer.
  • the electronic Loyalty Card is displayed in the Mobile Application Client and has a barcode that can be scanned at the Point of Sale (PoS) to identify the Consumer. A point for each dollar that the Consumer spends on the purchase is added to the Loyalty Card from the PoS.
  • PoS Point of Sale
  • This "Key Chain” Card is the electronic equivalent of a physical Loyalty Card that Consumers carry in their Key Chain (e.g., a supermarket Card) or in their wallet and use the cord when the Consumer is at the store.
  • FIG * I5B depicts the description and examples of the Service Flavor 14-2.
  • T his provides a description of the Service 10-3 with examples.
  • a Service can have a number of variations or flavors, which accommodate different use cases.
  • the Business Entity 5-J. selects which flavors it wants. The flavors may not be mutuall exclusive.
  • the Service Flavors 14-2 consist of a high level description of what, the Service looks like. If needed for clarity to the Business Entity, there can be a Black Box Description for each flavor.
  • the selected flavors 14-2 are an input to the Automatic Data Model Generation Process, since the selected flavors determine the defining features of the Service.
  • a second flavor is an Electronic loyalty Punch Card Service which is the electronic equivalent of a physical loyalty punch card (e.g., a "buy 10 sandwiches get 1 free” card that gets punched by the cashier every time the Consumer buys a sandwich), in this case, the Business may display a QR code at the PoS at the store, the mobile Application Client scans the QR code, which identifies the Purchase and "punches" the electronic card.
  • a first, example of flavors for the Promotion Service includes a Real Time Promotion Service. These promotions can be created, distributed, and retired in real time (e.g., a "20% off for the next two hours" Promotion).
  • a second example of flavors for the Promotion Service includes a Location Specific Promotion Service. These promotions are valid only at a specific., configurable store within a chain of stores.
  • a redemption mechanisms via a Q . code e.g., the application displays a QR code that identifies the promotion and can be scanned at the PoS to redeem it.
  • a redemption mechanism via "redeem button ' ' e.g., the application displays a "redeem button” that the Consumer can tap when at the PoS to receive the discount
  • a redemption mechanism via short code e.g., the application displays a short code that, the Consumer can give to die Cashier in order to receive the discount.
  • the Redemption Scope incudes: Redemption occurs in -store only (e.g., the promotion) or redemption occurs !n-store plus home delivery'.
  • Thresholds If multiple thresholds occur, then the Consumers get different rewards when he/she accumulates points equal to one of a number of available Reward Thresholds.
  • Loyalty levels can be Single loyalty level, Multiple loyalty levels (e.g., Silver and Gold loyally levels, each Consumer is associated with one level depending on the frequenc he/she visits a store, Stiver level gets one loyalty point per dollar spent, or Gold level gets two loyalty points per dollar spent).
  • Some of the Configuration Parameter Values are entered once the Application is deployed, or are entered when the Data Model 6-3 is updated (e.g., a new Promotion is created and distributed in a Promotion Service).
  • the Configuration Parameter Values are entered either via Dashboards 6-8 such as, all the data required to set up a new Promotion, or via Service integration Points (e.g., a file with all the Store Locations is read by the Automatic Data Model Generation Process).
  • Some Services can have Configuration Parameter Values that are entered by the Consumer via the Application Client when the Service is run.
  • the Automatic Data Model Generation Process validates that all the Configuration Parameter Values that are needed to run the Service have been entered.
  • the Service Configuration Process alerts the Business Entity (or the Consumer) if some required value has not been entered.
  • FIG. 15E provides example of Service Configuration for two Services: Promotion Service and Electronic Loyalty Service.
  • Service Configuration for the Promotion Service includes Store locations such as the name of store, address, GPS coordinates, or size of the store. Bar codes identify the Promotions. Redemption Rules which specify under what circumstances a Promotion should be redeemed; examples of Redemption Rules include ' , offer a specific Promotio that is only valid before 6:00pm on weekdays and a Promotion can only be redeemed once.
  • Promotion Data includes product description, offer value, expiration date, or product picture.
  • Service Configuration for the Electronic Loyalty Service comprises Loyalty values such as one loyalty point per dollar spent.
  • the reward threshold values offer reward items associated to each Reward thresholds.
  • the Reward rules offer loyalty points that expire after one year.
  • An example of a Service User Interface 14-5 includes Promotion Service user Interface.
  • the Promotion Service user Interface comprises Displays Promotion Data in multiple levels of detail (e.g., view showing Promotion summary, view showing Promotion details), allowing grouping promotions in categories and provides multiple levels of navigatio where the selectio comprises category and a selection of promotion within category. Bar Codes are displayed to identify the promotion.
  • Service integration Points 14-7 illustrated in FIG. 1511 specify the Integration Points with External Systems.
  • a Service 10-3 can be using Service integration Points 14-7 with other systems and databases belonging to the Business Entity 5-1 or to other entities.
  • Service Integration Points 14-7 are used to get Business Data input (or provide data output) or to get other types of Data (e.g., content) that, ma be needed to run the Service.
  • Service integration Points are implemented by generating interfaces specified as a list of inputs, outputs and parameters that are passed through the interface.
  • Examples include; Promotion Service Integration Points, The Promotion Service Integration Points are for PoS ntegration to exchange Promotion Codes for each Promotion and receive Purchase Data for each consumer. Externa! Database integration also ingests store locations.
  • Examples include: Promotion Service using Bar Coding and Redemption Services.
  • the Promotion Service using Bar Coding uses a Bar Coding Service interface for input to identify a unique number identifying an item.
  • a barcodmg label identifies an output barcoding.
  • the Redemption Services Interface uses as an input the ProniotionJD and ConsirmerJD values while the interface uses as output the valid or invalid redemption,
  • Service Presentation 14-9 as depicted in FIG. 153 specifies how the service can be presented to the Consumer. This specifies the Ul of the Application Client. This includes a set of Presentation Templates 15-1, which correspond to one or more III Regions, whic in turn correspond to Dashboards 6-8. The set of possible Presentation Templates 15-1. depends on the desired Service Flavors 1 -2 and Service Features 14-3. This specifies how the service can be presented to the Consumer, i.e., defines how the User interlace with the Consumer appears. The Business Entity 5-1 selects which Presentation Tetnplate(s) it prefers. The selected Presentation Teropfate(s) may depend on the Business Data (e.g., in a Promotion Service.
  • Example of Service Presentation 14-9 for Promotion Service includes the following. Available Presentation Templates .1.5-1 with examples including: .Primary Service Presentation and Highlighters,
  • the Primary Service Presentation is a Carousel that is Horizontal with detailed view on tapping. Carousel that is Vertical wit detailed view on tapping, Small Scrollable Tray with single zoomed Promotion View detailed vie on tapping. Scrollable List with detailed view on tapping. Category List with Scrollable Tray per category and detailed view on tapping, or Individual Promotion with detailed view on tapping.
  • the Presentation Templates 15-1 presets the different views based on tapping.
  • the Highlighters provides a Greeting message such as "You have X promotions" in the landing page. Alerts are also flashed of m-store promotions on selected pages.
  • Service Status 14-10 is where the Business Entity 5-1 can specify one of two Service Statuses: Active and Dormant.
  • Active is a Service that is actively running, deployed, and exposed to the Consuming Entity (typically the Consumer) via the User Interface.
  • Dormant is a Service that is disabled, but all the Application Clients for that Service are generated. This includes functionality, interfaces, and presentation.
  • the Status of the Service is set by the Business and can be changed at any time. Using the Dormant Status, the Business Entity can create the Service and keep it. disabled but ready for future use.
  • FIG. 16 illustrates the Automatic Data Mode! Generator 6-2 after being segmented in more detail (from Service Representation to Data Model).
  • the Automatic Data Model Generator 6-2 takes the Service Representation 5-4 and the Business Entity Data 6-1 and generates ail the fields that are included in the Data Mode! 6-3.
  • the Service Representation 5-4 includes Service Flavors 14-2, Service Features 14-3, Service Configuration 14-4, Service Integration Points 14-7, Service Internal Interfaces 12-4, Service Presentation 14-9 which comprises the Presentation Templates 15- 1 and the Service Status 14-10.
  • the Data Model 6-3 is generated, the Common Data Model 16- 23, the Server Data Model 16-15 and the Client Data Model 16-16 are contained within.
  • the Server Data Model 16-15 is the portion of the Data Model 6-3 that is relevant for the generation and operation of all parts of the system other than the Application Clients.
  • the Client Data Model 16-16 is the portion of the Data Model 6-3 that is relevant for the generation and operation of the Applicaiion CI i en is .
  • the Common Data Model 16-23 includes several structures: Functional Description 16-7, Configuration Parameters 16-8, integration Point Parameters 16-9 and Presentation Attributes 16- 10.
  • the Functional Description 16-7 defines the Functionality that needs to be provided by the Application.
  • the Functional Description 16-7 comprises tire Functional Block Chain 16-11, which is the list of Basic Server Functional Blocks and Native Client Functional Blocks that need to be used by the Automatic Application Generator 6-4 to generate all the components of the Application,
  • the Functional Block Chain 16-11 also defines in which order the blocks should be used (if there is a hierarchy). Since the Services can be hierarchical, the Functional Description 16-7 is also hierarchical.
  • the Functional Description 16-7 is derived by the Automatic Dat Model Generator 6-2 from the selected Service Flavors 14-2, Service Features 14-3 and Service Internal Interfaces 12-4, For every one of the Service Flavors 14-2 and Service Features 14-3, there is a list in memory that, defines the Functional Blocks that should be used.
  • the Service Internal Interfaces 12-4 define the hierarchy of Services t at are needed (if any) to build a certain Service 10-3, In the case of a Service that uses other Services, the Automatic Data Model Generator 6-2 identifies the blocks that are used by each Service.
  • the Functional Description 16-7 consists of a series of checkmarks that identify which blocks are used and in which order (if there is a hierarchy). [0.1 .14]
  • the Configuration Parameters .16-8 is a list of all the Parameters that are needed to implement the selected Ffavor(s) and Features. Each configuration Parameter is described by Name- Type and Value 16-12 which are derived from the Service Configuration 14-4. Service Configuration 14-4 depends on Service Features 14-3 and Service Flavors 14-2 (as explained in FIGS.
  • Type specifies the format of the parameter and whether the parameter is an input (i.e., a value needs to be entered for that Parameter) or an output (i.e., a value is generated and displayed for that Parameter by the Service).
  • Fhe input Method 1.6-13 for each Parameter specifies how (and by whom) the parameter value is entered.
  • the Dynamic Property 1 -14 also defines whether the value can be changed and when.
  • the Integration Point Parameters 16-9 are the Configuration Parameters 1.6-8 that are entered via Service Integration Points 14-7. Each Configuration Parameter 16-8 is described by its corresponding Name, Type and Value 16-17 that are derived from the Service Configuration 14-4. Service Configuration 14-4 depends on Service Features 14-3 and Service Flavors 1-2 (as explained in F GS, 15B-D).
  • the integration Point Parameters 16-9 has a corresponding Dynamic Property 16- 19 is derived in the same way as mentioned in Configuration Parameters 16-8.
  • the Integration Point Parameters 16-9 the whole Integration Interface 16-18 is stored in the Data Model 6-3. For example, all the fields and formats of all the messages are in the Integration Interlace 16-18 of the Integration Point Parameters 16-9.
  • FIG. 1.7 illustrates the Automatic Application Generator 6-2 in more detail (from Data Model to the output applications and features).
  • the Data Model 6-3 consists of the Common Data Model 16-23 that couples to the Server Data Model 16-15 and the Client Data Model 16-16.
  • the output of the Data Model 6-3 is applied to the Automatic Application Generator 6-4.
  • the Automatic Application Generator 6-4 comprises the Automatic Application Server Generator 1.7-1 coupled to a Server Data Model 16-15.
  • the Automatic Protocol Generator 17-2 coupled to a Common Data Model 16-23
  • the Automatic Dashboards Generator 17-3 coupled to a Common Data Model 16-23
  • the Automatic Cheat Generator 17-4 coupled to a Client Data Model 16-16
  • the Automatic Searchable Application Representation Generator 17-5 coupled to a Common Data Model 16-23
  • the Automatic Business Portal Generator 17-6 coupled to a Server Data Model 16-15
  • the Automatic Business Account Generator 17-7 coupled to a Server Data Model 16-15.
  • the Application Components generated by the Automatic Application Generator 6-4 are shown on the right of FIG.
  • FIG. 17 includes the Retailer Application Server 7-1 and the corresponding Retailer Application Server Database 17-9, the Consumer Application Server 7-2 and the corresponding Consumer Application Server Database 17-8, the Client-Server Protocols 6-7, Security 7-5, the Dashboards 6-8, the Analytics 7 ⁇ 6a 5 the Native Mobile Application Clients 6-6, the Non-Native Mobile Application Clients 7-3, the Non-Mobile and Cloud Application Clients 7-4, the Searchable Applicaticm Representation 7-8, the Business Portal 7-6b and the Business Account and Business Profile 7-7.
  • FIG. 17 provides a portion of the figure in FIG. 7A with significantly more detail.
  • the Server Validation Controller 18-3 uses the Validation Rules 18-4 and the Consistency Rules 18-5 to help make this generation possible and guarantee that the generated functionality is correct.
  • One of the outputs of generates the Application Servers 6-5 is an input that is used by the Automatic Dashboard Generator 17-3 which will be discussed in detail shortly.
  • FIG. 18 B illustrates the Basic Server Functional Blocks 18-8 that are used to help the Automatic Application Server Generator .17-1 to generate the Application Servers 6-5.
  • the Basic Server Functional Blocks 18-8 include boxes 18-21 through 18-77. These basic server functional blocks are the personalization management 1.8-21, Multi-Platform Synchronization 1 -22, Two- Way Communications 18-23, Image Recognition 18-24, Consumer Input Editing 18-25, Search Mgmt 18-26, Event Chaining 18-27, Historical Data Collection J 8-28, Video Streaming 18-29, Computation Engine 18-30, Bar Coding Decoding 18-31, Book Keeping 18-32, Usage Statistics Collection 1.8-33, Sorting 18-34, Behavioral Data Collection .18-35, Garbage Collection 18-36, Navigation Manager 18-37, Bar Coding Generation 18-38, Redemptions 18-39, Likelihood Computation 18-48, Ranking 18-41 , Accurate Location integration 18-42, List Mgmt 18-43, Filtering 18-
  • FIG. 18A is within the Basic Server Functional Block 18-8 and provide functions related to servers in terms of management, filtering, synchronization, statistics, likelihood, etc.
  • FIG. 19 A illustrates the Common Data Model 16-23 which applies its output to the Automatic Protocol Generator 17-2.
  • the Automatic Protocol Generator 17-2 has two flows. The first one is from the Basic Messages 19-2 that feeds its output to die Field Configurator 19-3, which in turn feeds it. output to the Protocol Message Builder 1.9-1.
  • the Call. Flow Configurator 19-4 also feeds its output to the Protocol Message Builder 19-1.
  • the output of the Protocol Message Builder 19-1 determines the Client/Server Protocol 6-7.
  • the second flow is from the Basic Security Methods 19-6 that applies its output to the Security Builder 19-5.
  • the output of the Security Builder 19-5 generates the Security 7-5.
  • the Basic Security Methods 19-6 consist of the Call Flow Generator 19-7 and. the Key Material Generator 19-8.
  • This Automatic Protocol Generator 17-2 generates the protocol for the client/server as well as ensuring security.
  • FIG, 20A illustrates the internal components of the Automatic Client Generator 17-4.
  • the Automatic Client Generator 17-4 uses the Client Data Model 16-16 to generate the Application Client 9-7 which is used to create the Native Client Translation and Generator 20-4, Five Native Client Translation and Generator 20-4 create the Native Mobile Client 6-6, the Non-Mobile and Cloud Application Clients 7-4 and the Non-Native Mobile Application Clients 7-3. in the process of doing this there is a Client Validation Controller 20-1.3 that contains Validation Rules 20-1 and Consistency Rules 20-2 to ensure that the client components are generated appropriately.
  • the Native Client Functional Blocks 20-27 that feeds to a Client Orchestration Controller 20-23 which creates the HI Generator Controller 20-17 and the Master Client Generator 20-12.
  • the Configuration .Parameters 20-26 Inside the Native Client Functional Blocks 20-27 are the Configuration .Parameters 20-26, Input Output Parameters and Rules 20-25, the Functional Rules 20-24, the Navigation Rules 20-22 and a Dedicated Logic 20-21.
  • the Master Client Generator 20-12 contains the Logic Generator 20-16 and the VI Generator 20-15.
  • the Applicatio Client 9-7 contains the Client Foundation 20-5, the Client Surfaces 20-6, the Tillable Elements 20-7, the Actionable Elements 20-8, the Navigation Conditions 20-9, the Analytics-Client 9-12, Service Database-Client 9-1 T Page Relationships and Navigation Conditions.
  • the Client Foundation 20-5 and the Client Surfaces 20-6 are in the Application Client User interface 9-8.
  • the Application Client 9-7 also comprises the Navigation Conditions 20-9, the Analytics-Client 9-12, and the Service Database-Client 9-11.
  • the Page Relationships and Navigation Conditions are in Application Flow 9-10. These blocks contain all the functionality that is implemented in the Application Clients.
  • the Application Client 9-7 contains the functionality that is implemented in the Master Client (i.e., one of the Application Clients selected as a reference Application Client). This functionality is then processed by the Native Client Translation and Generator 20-4 to generate the set of Native Mobile Application Clients 6-6, Non-Mobile and Cloud Application Qients 7-4, and Non-Native Mobile Application Clients 7-3.
  • Blocks inside the Native Client Functional Blocks 20-27 of FIG, 20A are the same as the contents as the Blocks inside of the Server Functional Blocks 18-8 of FIG. ISA. These two blocks involving the native Client and the Server are used to generate new functionality of Services 10-3 from a list of Basic Functional Blocks.
  • the Automatic Client Generator 17-4 comprises the Native Client Functional Blocks 20-27 and the Widgets 20-19.
  • the ative Client Functional Block 20-27 contains blocks 20-43 through 20-67 which are involved with matching, filtering, client-server communications, managing and locations.
  • These blocks include filtering 20-43, matching 20-45., sorting 20-47, Condition Computation 20-48, Analytics Data Collection 20-49, Push Notification Handler 20-50, Server Data Queries 20-51 , Consumer input 20-52, Client Update Manager 20-53, Client Server Communication 20-54, Mobile Client Offline Behavior 20-55, Garbage Collection 20- 56, Social Media Integration 20-57, Geo-Fencing 20-59, Bar Code Processing 20-59, Device Manager 20-60, Client Storage Manager 20-61, Navigation Manager 20-62, User interface Manager 20-63, Preferences 20-64, edia Players 20-65, Device Specific Functions 20-66 and Native Location Services 20-67.
  • the Widgets 20-19 are also indicated and provide tables, overlays, navigation, grids and calendars. These comprise the blocks 20-30 through 20-42. These blocks are the Carousel Horizontal 20-30, Content Display 20-31 , Table 20-32, Hierarchical List 20-33, Carouse! Verticai 20-34, Input Editor 2 ⁇ -35, Dialog 20-36, Grid 20-37, Balloon 20-38, Calendar 20-39, Overlay 20-40, Multi-Step Form 20-41 and Hierarchical Navigation 20-42.
  • FIG. 21 illustrates the Automatic Dashboard Generator 17-3 which uses the Common Data Model 16-23 to generate the Dashboards 6-8.
  • the Automatic Dashboard Generator 17-3 contains a Dashboard Widget 21-3 which feeds into a Dashboard Generator Controller 21-4, The output of the Dashboard Generator Controller 21-4 and the output of the Dashboard Ul Generator Controller 21-5 are applied to the Dashboard Generator 21-6, The output of the Dashboard Generator 21-6 generates the Dashboards 6-8.
  • the Dashboard Validation Controller 21-2 uses the Validation Rules 21-7 and Consistency Rules 21-8 to ensure that die Dashboards 6-8 are generated correctly,
  • FIG. 22A illustrates the apparatus of the Single System Solution Application Server or Single Application Server 22-2,
  • the Single Application Server contains the Automatic Creation Application Server 22-3 with a corresponding Single System Solutio Automatic Creation Database or Single Automatic Creation Database 22-4.
  • Each of the Business Entities coupled to the System Solution comprises the components within the dotted box 22-1.
  • a Client- Server Protocol 6-7 communicates in between the servers and. the Native Mobile Application Clients 6-6, the Non-Native Mobile Application Clients 7-3 and Other Application Clients 22-5.
  • the Retailer Application Server 7-1 contains a Searchable Application Representation 7-8 and a Business Portal 7 ⁇ 6! The Retailer Application Server 7-1 is connected to the Dashboards 6-8.
  • FIG. 22B illustrates a System Solution 22-15 coupled to a Business Entity 5-1.
  • At least one of System Solution Computing devices 22-7 and at least one System Solution servers 22-2 that comprises Server-A 22-9 through Server-Z 22-10 is coupled to the Business Entity 5-1 though the Internet 1-3.
  • the Automatic Creation Application Server 22-3 with a corresponding Automatic Creation Database 22-4 is a sub-set of the server bank 22-2. It is understood that the Applications 2- 14 running on the OS 2-13 of the Client Devices l-2a, l-2b, and l-2c in Client Devices 22-16 are generated by the block 22-2 under the control of the System Solution 22-15.
  • the System Solution servers 22-2 can also be located in the Cloud, in the vicinity of the Computing devices 22-7 or a combination of any therein.
  • the System Solution 22-1.5 couples to the internet via all interconnects 22-1 !., 22-1.4, 2-3, 22-13, 22-12 and 2-2.
  • This interconnection can be a wireline or wireless and is part of the Communication network.
  • the System Solution 22-15 creates through the Internet 1-3 Application servers, appropriate Server/client protocols. Databases Server for the Business Entities, Dashboards, security insurances, etc., with the server bank 2-4 that comprises Server ⁇ Q 2-11 through server-N 2-12 via interconnect 2-3.
  • the generated Applications for Native or Non-Native Clients are applied to Client Devices I -2a via interconnect 2-2, Client Device l-2b via interconnect 22-12 and Client Device l-2e via interconnect 22-13. These Client.
  • the automatically generated Applications and updated Applications are both generated in FIG. 22B.
  • the generated Applications apply to Native as well as non-Native devices. All desired Services 10-3 are also included in the automatically generated Applications.
  • the updated Applications may be generated by the Business Entity through the use of the Dashboard 6-8 provided b the System Solution 22-15 allowing the Business Entity 5-1 to change a. portion of the application or for the Dashboard 6-8 under the control of the System Solution 22-1.5 to alter the entire 'look.” For the updated Applications there may be no need to re- apply to the Application store 3-5 for approval.
  • a network and a portable system can exchange information wireiessiy by using communication techniques such as Time Division Multiple Access (TDMA), Frequency Division Multipl Access (FDMA), Code Division Multiple Access (COMA), 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.
  • LAN Local Area Network
  • ad hoc networks local routers and even other portable systems
  • the term "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 can be used for the device formed in the Cloud
  • 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)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Operations Research (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (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 high-level functionality generates a Data Model which is used to automatically generate Applications comprising Application Clients, Application Servers, Client-Server Protocols, Dashboards and other components. Applications are derived for different mobile and non-mobile's Operating Systems. This functionality uses Services, Service Representation, Application Flow, Rules, and Presentation Attributes. The input for the automation is a very high-level, "service" level "language," from which all parts are automatically generated. The output of the automation also includes a way to validate the correctness of the generated Applications. The generated Dashboard provide a Business Entity with functionality to continuously update the generated Data Model based on the Services and Business Entity data, and from the updated Data Model automatically generate updated versions of the Application. The functionality may be a graphical representation, set of forms, set of policies, or set of values associated to a set of pre-defined parameters.

Description

Method lor Single Workflow for Multi-Platform Mobile Application Creation and Delivery
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001 J The present application is related to the co-filed U.S. applications Ser. No. 13/833,589 entitled "Apparatus for Single Workflow for Multi-Flaifor Mobile Application Creation and Delivery" , Ser. No. 13/833,775 entitled "fymamic User Interface Delivery System", Set", No. 13/833,849 entitled "User Interface ami Content Translation System" and Set. No. 13/834,765 entitled "Hierarchical Application Client System", all filed on March 15, 2013, which 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, TV set, cellular phones, smartphones like the iPhonem, Android5 M and Blackberr ,M, and tablets. The internet 1-3 connects a client device 1-2 to a server 1-4 and the server to the same client device as illustrated in 1-1 of FIG. 1A or to another client (not illustrated). The client. 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 some of the Client Devices can be mobile units such as ceihilar phones and smartphones, wearable devices, tablets, laptops, desktops and Intemet-enabled TV sets. The Client Devices are physical and can be either mobile (cellular phones, smartphones, wearable devices, and tablets} or non-mobile (laptops, desktops, and TV sets), and conpled 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 has the Application Client which is the actual application software running on device. [0003] 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. For example, Adobe iM and Microsof™ offer the ability of using their software programs via the Cloud, while other companies offer storage capabilities via the Cloud to their customers. 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. 18, 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 small portion of the Application Client runs on a physical Client Device while most of the logic runs in the Cloud.
[0004] 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 recei er 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 all components together. The server's bank 2-4 comprises server-0 2-11 to server-N 2-12. 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-13 is closely coupled with the hardware 2-16, especially in case of Mobile Client Devices 1-2. The hardware 2-16 comprises a processor 2-5 operating under the operating system 2-13. The processor 2-5 is coupled to the memory 2-7 and communication link 2-9 via the bus 2-8, The communication link 2-9 couples the Client Device to the outside world through a wired and/or wireless interconnection via the transceiver. One mode of input to the Client Device 1-2 is via the touch based keypad 2-6 or through voice control (not illustrated). Other hardware components such as memory, power supplies, etc. are not mentioned but as well-known by those skilled in the art. The screen 2-10 can provide an output response or sound can provide a second mode of output known as voice output (not illustrated). The screen 2-10 can be a touch sensitive screen and provide a second mode of input. A set of applications or Application Clients 2-14 are coupled to the operating system 2-13. The Client Device is one of a plurality of Client Devices coupled to the Internet.
[0005] 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 ca 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 would know the other components contained in this device and will not be described further. AH servers used in this specification are substantially the same as the server 2-20. Furthermore, a plurality of Servers and a plurality of Databases can be embedded in the Computer hardware 2-17.
[0006] The term "Application Client'" refers to the portion of the appiicatson running on the Client Device. Although "Mobile Application" is synonymous with "Application Client," the term "Application Client" encompasses the Application Client running on a mobile device, a non-mobile device or even in the Cloud. The Cloud can run a portion of the Application Client in the server while die remaining portion of the Application Client can run on the client, simultaneously, in this regard, the server becomes a client/server system within the network.
[0007] An approval process in the Application Store is illustrated, in FIG. 3. A client 1-2 desires a particular application 3-1. The application 3-1 is submitted 3-2 to the Application Store for an approval process 3-3. If accepted 3-4, information is passed to the Application Store 3-5 to allow the application (APP) to be downloaded 3-6 into the client 1-2. The client now contains a "native" application coupled to the operating system 2-13 (see FIG. 2A) of the Client Device which was provided by the Application Store 3-5. The Native Mobile Application Client executable depends on the operating system (OS) as an iPhone would require a different executable than an An.droidiA* phone,
[0008] FIG. 4 presents two different layered stacks of the hardware/software representation for a Client Device. The iPhone, Android or Blackberry phone stack 4-2, for example, consists of hardware 2-16, Operating System (OS) 2-13 aod the Native Application Client 4-5. The Native Application Client is currently unalterable. Once the application is downloaded and if die user of the Client Device 1-2 desires a feature change in the Native Application Client, the user must go back to the application store (see 3-5 in FIG, 3} and download an updated version of the applicaiion that has this change implemented. This can take a significant amount of time to get the new Native Application Client since the updated application needs to he developed, re-submitted to the application store, and re-approved by the application store. The application store expends funds to re-approve the new executable and the approval process may take considerable time. Once accepted, the store must distribute the new Native Application Client to the Client Device. The second layered stack 4-3 comprises a non-Native Application Client 4-1 which has an executable based on a programming language that is understood by a web browser running on the Client Device. The most common example of such a language is HTMLS. The application client written in MT L5 does not depend on the OS 2-13 but instead runs on die browser 4-4 of the Client Device 1- 2. The browser 4-4 may depend on the Client Device 1-2, but the non-Native Application Client 4-1 does not depend on the Client Device 1-2.
BRIEF SUMMARY OF THE INVENTION
[0009] The term "Application Client" encompasses the Application. Client running on a mobile device, a non-mobile device or even in the Cloud. However, in some cases, within this document the term "Mobile Application Client" will be used for both Native and non-Native Application Clients running on Mobile Devices, but it also applies to Devices that are Non-Mobile or in the Cloud. In addition, 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. Finally, the System Solution offers the ownership, control and beneficial use of these inventive ideas.
[0010] A preferred embodiment of the invention is a method to generate Applicatio Clients, Application Server software, client-server protocol and dashboards from a single high-level representation of functionality. The Application Clients operate on a mobile device such as a cellular phone, a smartphone, a wearable device, or a tablet, a non-mobile device such as a desktop, a laptop, or an Internet-enabled TV set, The Application Server software runs on a server residing in the network or in the cloud. The client and server communicate via a client-server protocol. Executables can be derived for different mobile device's OS's from the same high-level representation, of the client-server functionality. The representation of the functionality may be a graphical representation, a policy, or a set of values associated to a set of pre-defined parameters. The high-level functionality is turned into a Data Model and from the Data Model all the parts are derived. The embodiment uses Services, Service Representation, Data Model, Server Functional Blocks. Client Functional Blocks, Basic Messages, Application Flow and Rules. The input for the automation is very high level and is an innovative embodiment. Essentially, the applications are written in a "service" level "language," from which all parts are automatically generated,
[001 1] A further preferred embodiment of the invention is the method which uses the representation of the functionality to generate a. common data model, a server data model, and a client data model. Using the serv er data model and an Automatic Server Generator comprising a server orchestration controller, and a set of server functional blocks, the method automatically generates an Application Server Run Time Logic, an Application Server Backend Logic, a first Service Database, a first Analytics Collection, an Integration Ingestion Logic, and a Navigation Graph. Using the generated Application Server Run Time Logic, Application Server Backend Logic, first Service Database, first Analytics Collection, and integration Data Ingestion Logic, and Navigation Graph the method automatically generates an executable computer program of a first retailer Application Server, an executable computer program of a second consumer Application Server, a first Retailer Application Server Database, and a second Consumer Application Server Database.
[00.12] An additional preferred embodiment of the invention is the method which uses the
Automatic Server Generator to generate a first set of Validation Rules and a first set of Consistency Rules, Using the generated first set of Validation Rules and first set of Consistency Roles, the method uses a Server Validation Controller to validate the correctness of the generated executable computer program of first retailer Application Server, second consumer Application Server, first Retailer Application Server Database, and second Consumer Application Sewer Database. [0013] An additional preferred embodiment of the invention is the method which uses the generated client data model, and an Automatic Client Generator comprising a Client Orchestration Controller, a set of Native Functional Blocks, an ill Generation Controller, a set of Templates, a set of Widgets and Master Client Generator to generate a Client Foundations, a Client Surfaces, a Fillable Elements, an Actionable Elements, a Navigation Conditions, a second Analytics Collection, and a second Client Database. Using the generated Client Foundations, Client Surfaces, Fillable Elements, Actionable Elements, Navigation Conditions, second Analytics Collection, and second Client Database the method automatically generates an executable computer programs of a first Master mobile application clien Using the generated first Master mobile application client and a Native Client Translation and Generator, the method automatically generates a set of executable computer programs of a plitralitv of application clients. Said set of execuiable computer programs comprises the Native Mobile Application Clients, the Non-Mobile Application client, the Cloud Application Client and the Non-Native Mobile Application Client. Each executable computer program in said set of executable computer programs may run as a native executable program in a mobile device. The mobile device may be a cellular phone, a smartphone, a wearable device, or a tablet with a native operating system specific to the chosen mobile device.
[0014] An additional preferred embodiment of the invention is the method -whic uses the Automatic Server Generator to generate a first set of Validation. Rules and a first set of Consistency Rules. Using the generated first set of Validation Rules and first set of Consistenc Rules, the method uses a Server Validation Controller to validate the correctness of the generated executable computer program of first retailer Application Server, second consumer Application Sen er, first Retailer Application Server Database, and second Consumer Application Server Database.
[00.15] An additional preferred embodiment of the invention is the method which uses the generated common data model, and an Automatic Protocol Generator comprising a Protocol Message Builder, a Field Configurator, a Call Flow Configurator, and a set of Basic Messages to automatically generate a set of Client Server Protocols to connect the generated first Retailer Application Server and first Consumer Application Server with the generated set of Application Clients. [0016] An additional preferred embodiment of the invention is the method which uses the generated common data model, and an Automatic Dashboard Generator comprising a Dashboard Generation Controller, a Dashboard UI Generation Controller, and a Dashboard Widget to automatically generate a set of Dashboard to manage and update the generated set of Application Clients.
[0017] A further preferred embodiment of the invention is an apparatus that provides the generated Dashboards to the Business Entity. Using the generated Dashboard and Business Entity Data, the Business Entity automatically generates an Updated Data Model. The Updated Data Model is then used by the System Solution to automatically generate a Updated Application. Such an Updated Application consists of a plurality of Updated Applicatioo Components including a set of Updated Native Mobile Clients, Non-Native Mobile Clients, Non-Mobile and Cloud Mobile Clients, and other components. The newly generated Updated Application Components replace the corresponding existing Application Components,
[0018] in accordance with another preferred embodiment of the invention, a method of coupling a second part of an Application Components to a plurality of Client Devices comprising the steps of running an Operating System on each Client Device of the plurality of Client Devices, generating the Application Components automatically from a Data Mode! using a System Solution with at least one first server and with at least one Computing device, coupling the plurality of Client Devices., a plurality of Computer hardware, the at least one first server and the at least one Computing device together using a Communication network to deploy the Application Components, deploying a first part of the Application Components to the plurality of Computer hardware to create a first plurality of servers retaining the first pari of the Application Components, deploying the second part of the Application Components to the at least one first server, and coupling a corresponding portion of the second part of the Application Components to a corresponding Client Device in the plurality of Client Devices via the Communication network. The method further comprising the steps of showing a validity and a consistency of each of the Application Components with a plurality of Validation Controllers. The method further comprising the steps of automatically generating the Data model from a Service Representation and a Business Entity Data. The method whereby the first part of the Application Components comprises a Retailer Application Server and a Retailer Application Server Database, a Consumer Application Server and a Consumer Application Server Database created by an Automatic Application Server Generator coupled to a Server Data Model The method whereby the first part of the Application Components comprises a Client Sewer Protocol and Security created by an Automatic Protocol Generator coupled to a Common Data Model The method whereby the first part of the Application Components comprises Dashboards created by an Automatic Dashboards Generator coupled to a Common. Data Model. The method whereby the second part of the Application Components comprises an Analytics, a Native Mobile Application Client, a Non-Native Mobile Application Client, a Non-Mobile Applicatio Client, and a Cloud Application Client created by an Automatic Client Generator coupled to a Client Data Model The method whereb the first part of the Application Components comprises a Searchable Application Representation created by an Automatic Searchable Application Representation coupled to a Common Data Model in accordance with another preferred embodiment of the invention, the method whereby the Data Model comprises a Common Data Model, a Server Data Model and a Client Data Model, and outputs of the Data Model are partitioned between a Common Data Mode! output, a Server Data Model output and a Client Data Model output, and whereby the Data Model comprises a Functional description, Configuration Parameters, integration Point Parameters and Presentation Attributes. The method whereby the Client Device is a mobile device, a wearable device, a non-mobile device, or a Cloud device coupled to the communication network. The method further comprising the steps of downloading a first Client Device with a first Operating System with at least one Native Mobile Application, and downloading a second Client Device with a second Operating System with at least one Non-Native Mobile Application, wherein the second part of the Appl ication Components comprises the at least one Nati ve Mobile Application and the at least one Non-Native Mobile Application.
[0019] in accordance with another preferred embodiment of the invention, a method of generating a Data Model comprising the steps of coupling at least one Computing device to a System Solution with at least one first server, generating a Service Representation using the System Solution, coupling a Business Entity Data to an Automatic Data Model Generator, coupling the Service Representation to the Automatic Data Model Generator, and generating the Data Model from the Automatic Data Model Generator automatically using the Sendee Representation, the Business Entity Data and the System Solution. The method further comprising the steps of showing a validity and a consistency of the Data Model with a plurality of Validation Controllers. The method whereby the Service Representation comprises a high-level feature list includes a Service Black Box Description, Service Flavors, Service Features, a Service Configuration, Service User Interfaces, Dashboards, Service Integration Points, Service internal Interfaces, Service Presentation and a Service Status, The method whereby the Data Model comprises a Common Data Model, a Server Data Model and a Client Data Model, and outputs of the Data Model are partitioned between a Common Data Model output, a Server Data Model output and a Client Data Model output, whereby the Data Model comprises a Functional Description. Configuration Parameters, Integration Point Parameters and Presentation Attributes.
[0020] in accordance with another preferred embodiment of the invention, a method of generating a set of Updated Applications Clients automatically comprising the steps of coupling at least one Computing device to a System Solution with at least one first server, loading a Business Entity Data of a Business Entit on a server, filling tillable entries of Dashboards by the Business Entity, generating an Updated Data Model by the Dashboards controlled by the System Solution, and generating the set of Updated Applications Clients automatically with the Updated Data Model and the Automatic Application Update Generator. The method further comprising the steps of showing a validity and a consistency of the Updated Data Mode! with a plurality of Validation Controllers, and showing the validity and the consistency of the set of Updated Applications Clients with the plurality of Validation Controllers. The method further comprising the steps of including an Updated Native Mobile Application Client, an Updated Non-Native Mobile Application Client, an Updated Non-Mobile Application Client and an Updated Cloud Application Client in the set of Updated Applications Clients, and the method further comprising the steps of downloading each the Updated Applications Client to a corresponding Client Device via a Communication network.
[0021 J In accordance with another preferred embodiment, of the invention, a method of automatically generating a functionality of a selected one or more desired Services, comprising the steps of providing a finite number of Basic Server Functional Blocks for a Server, providing a finite number of Native Client Functional Blocks for a Client, providing a finite number of Basic Messages for a Client-Server Protocol, selecting one or more desired Services from a list of basic Services provided in a Service Selection, and generating the combined functionality of the selected one or more desired Services automatically into a higher functionality component for the Server, the Client and the Server-Client Protocol, simultaneously. The method further comprising the steps of specifying a pluralit of basic Services as a list of inputs, outputs and parameters passes through a Service Internal Interface, whereby combining the selected one or more desired Services list of inputs, outputs and parameters together to generate another desired Service or the higher functionality component. The method further comprising the steps of specifying the functionality of a User Interface with a. Consumer End User using a Service User interface.
BRIEF DESCRIPTION OF THE DRAWINGS
[0022] 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 skilled in the art. in 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.
[0023] FIG. 1A depicts a Client Device coupled to a server and provides some example of Client Devices.
[0024] FIG. IB depicts a Client Device coupled to a client server.
[0025] FIG. 2A shows a Client Device with a coupling to a bank of servers and the internal hardware/software structure of the Client Device.
[0026] FIG. 2B depicts a more detailed description of a server being a subset of Computer hardware with software, a Database and the server.
[0027] FIG. 3 presents the current approval process of an application store. [0028] FIG. 4 illustrates two different stacks of a nati ve application and a non-native application in HTML5 running on a web browser.
[0029] FIG. 5 shows a Business Entity desiring to create a Service Representation m accordance with the present invention.
[0030] FIG. 6 illustrates the flow chart of a Business Entity creating a desired Application Client automatically in accordance with the present invention.
[0031] FIG. 7A depicts a more detailed list of client applications created in FIG. 6 in accordance with, the present invention.
[0032] FIG. 7B shows how the automatically generated Native Mobile application Clients are provided to the Client via a store in accordance with the present invention.
[0033] FIG. 8 presents the Dashboards used b the Business Entity to update the data mode! of the application to create updated applications in accordance with the present invention.
[0034] FIG. 9 shows the End User, Client Device client/server protocol and application servers for a Business Entity in accordance with the present invention.
[0035] FIG. 10 illustrates the service between the consuming, providing and configuring entities in accordance with the present invention.
[0036] FIG. 1 1 depicts a chart offering service families and corresponding service examples in accordance with the present, invention.
[0037] FIG. 12 illustrates the service being chained together to offer new Services in accordance with the present invention. [0038 J FIG, 13 shows a Service Selection menu for the Business Entity in accordance with the present, invention.
[0039] FIG. 14 shows one block structure of a Service Representation in accordance with the present invention .
[0040] FIG. 1SA- depicts a Description and Examples of the block; structure of the Service
Representation for different Services in accordance with the present invention.
[00 1] FIG, 16 illustrates the Automatic Data Model Generator in more detail (from the Service Representation to Data Model) in accordance with the present invention,
[0042] FIG. 17 depicts an Automatic Application Generator in more detail (from the Data Model to Applications Components) in accordance with the present invention.
[0043] FIG. ISA illustrates an Automatic Application Server Generator in accordance with the present invention.
[0044] FIG. 18B depicts the Basic Server Functional Blocks of FIG. ISA in accordance with the present, invention.
[0045] FIG. 19A shows an Automatic Protocol Generator in accordance with the present invention.
[0046] FIG, 19B depicts the Basic Messages of FIG. 19A in accordance with the present invention.
[0047] FIG. 20A shows an Automatic Client Generator in accordance with the present invention,
[0048] FIG, 28B illustrates the Native Client Functional. Blocks and Widgets to build the User Interface of FIG. 2ΘΑ in accordance with the present invention. [0049] FIG. 21 depicts an Automatic Dashboard Generator in accordance with the present invention.
[0050] FIG. 22A shows Single Application Server for the System Solution in accordance with the present invention .
[0051 ] FIG. 22B illustrates an apparatus showing the interconnectivity between the servers. Client devices and the System Solution in accordance with the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0052] 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 Application Clients that run on Mobile, Non-Mobile, and Cloud Client Devices. The System Solution is the owner of all Applicatio Components automatically generated by the System Solution. The System Solutio creates and hosts Applications for different Business Entities (each Business Entity is a System Solution customer). The term Retailer is used loosely as a synonym for Business Entity. The System Solution Consumer Application Server supports the services presented to the users by the Mobile Application Clients, Non-Mobile Application Clients, and Cioud Clients, while the System Solution Retailer Application Server is used by the Business Entity to monitor and manage the Application, including all the Application Clients. The System Solution provides a complete environment for the creation, hosting, updating, and management of the Application. All Application Servers generated by the System Solution (specifically, the System Solution Consumer Applicatio Server and System Solutio Retailer Application Server) for all Business Entities are hosted i a multi-tenant environment in the Cloud, but each Business Entity "feels" like it is provided dedicated Retailer and Consumer Application Servers. The System Solution architecture also applies with minor changes to a scenario where the System Solution Consumer Application Server and System Solution Retailer Application Server run on dedicated servers owned by the Business Entity, rather than in the Cloud. In this scenario, the System Solution has access to control and offer beneficial use for those servers thai axe coupled to the Cloud.
[0053] 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 Retailer Portal that the System Solution provides to each Business Entit for managing the corresponding Application.
[0054] Each Application is described as a collection of Services. A Service is a set of functionality that is provided by a Service Providing Entity to a Service Consuming Entity. The Service Consuming Entity uses the Service to accomplish a certain task or function or activity. Conceptually, this definition of "Service" is analogous to the notion of Service that Consumers obtain from a Service Provider, for example, a cellphone service or a health care service. The Service Providing Entity is the Provider or Originator, while the Service Consuming Entity is the End User or Target. There is a type of interface between the Service and the Service Providing Entity and between the Service and the Service Consuming Entity. The nature of such interfaces depends on the Service Providing/Consuming Entity, and could be a User Interface, an Application Programming interface, or some other type of interface.
[0055] For a given Service, the interface between the Service Providing Entity and the Service is referred to as the Southbound Interface, while the interface between the Service Consuming Entity and the Service is referred to as the Northbound Interface. Services can also have a Management Interface through which they can be configured at runtime by a Service Configuratio Entity.
[0056] Mobile Client Devices (cellular phones, smartphones, wearable devices, and. tablets) and Non-Mobile Oieni Devices (laptops, desktops, and Internet-enabled TV sets) 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 (3(1 4G, etc.), Wi-Fi, Bluetooth, WiMax, etc. The network interconnecting these components is called the Communication network. The Client Device 1-2 has the Application Client which is the actual application software running on device. The cellular phones, smartpliones, tablets, laptops, desktops, and Internet-enabled TV sets are Client Devices and are physical devices that can be held. 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 runs on the Client Device (the Application Client) and a portion of the application that rims on a server (the Application Server). The Application Client can be a part of the OS of the mobile or non-mobile Client Device or can be partially in the Cloud, In the case of a mobile physical Client Device, such a Client Device is placed in the hands of an End User. I the case of a non-mobile physical Client Device, such a Client Device is placed in the proximity of the End User. In all cases, the Client Devices provide the End User with at least one mode of input through which the End User navigates and interacts with the Application Client.
[0057] Each Application includes a famil of Application Clients, Each Application Client corresponds to a certain Client Device. The family of Application Clients includes a set of Native Mobile Clients, one per mobile platform. Some examples of the mobile platforms include the iPhone, iPad, Android phones, or tablets while the non-mobile systems include the desktops. Mobile platforms of interest include tablets. 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,
[0058] FIG. 5 illustrates how a Business Entity 5-1 generates the Service Representation (high level, representation) 5-4. The Business Entity 5-1 is the entity that wants to create the application. The Business Entity is a customer of the System Solution. Examples of Business Entities are: retailers, manufacturers, schools, museums, f anchises, and individuals. The Business Entity 5-1 determines the Business Objectives 5-2 which, are used to create the Service Selection 5-3. The Business Entity 5-1 selects the services in the Service Selection 5-3 which is used to determine the Service Representation 5-4. The Service Representation is a high-level description of the functionality that the Business Entity wants to be implemented in the application. The Service Representation 5-4 defines which Services are included in the Application according to the interest of the Business Entity. The Service Representation uniquely defines the desired functionality and contains sufficient information for the System Solution to automatically generate a Data Model corresponding to the Application. The Service Representation 5-4 includes a set of Service Specifications, which specify the desired Service Features, Service Configuration, Service Interfaces, and Service Presentation that are implemented in the Application.
[0059] A simplified version of the Automatic Application Generator is illustrated in FIG. 6. The Service Representation 5-4 and the Business Entity Data 6-1 are entered into in Automatic Data Model Generator 6-2. The Automatic Data Model Generator 6-2 analyzes the information from the Business Entity Data and the Service Representation and segments the information automatically into memory into pre-arranged slots. The output of the Automatic Data Model Generator 6-2 with a well formatted memory structure is used to create the Data Model 6-3. The structure of the Data Model 6-3 is uniform between any and all different Business Entities and the Services they select. The uniformity in the structure of the Data Model 6-3 can now be capitalized. The data outputs of the Data Model 6-3 present data to the inputs of the Automatic Application Generator 6-4 in a well- organized structure. The Automatic Application Generator 6-4 can now focus on the automatic generation of features since all data has been partitioned into known structure. The Automatic Application Generator 6-4 knows the structure of the Data Model 6-3 allowing the output of the Automatic Application Generator 6-4 to automatically create a plurality of Application Components. These features include the Application Servers 6-5, a set of Native Mobile Application Clients 6-6, a Client/Server Protocol 6-7, Dashboards 6-8 that has entries which are fillable and Other Application Components 6-9,
[0060] After the Application Components have been generated by the System Solution, they are deployed by installing and making them available for use. The Application Sen-ers 6-5 are installed on servers coupled to the Internet The Native Mobile Application Clients 6-6 are submitted for approval to the corresponding Application Stores, such as. Android, Apple, blackberry, etc. Once the Mobile Application Clients are approved by the Application Stores, they become available for download by consumers to their Client Devices 1-2. The Dashboards 6-8 are installed on. a plurality of servers coupled to the internet. Other Application Clients 6-9 are made available for download by storing them on servers coupled to the Internet:.
[0061] Native Mobile Application Clients 6-6 offer a family of executable* of native Mobile Clients for all desired mobile platforms. This enables a self-service Automatic Application Creation environment for native Mobile Applications Clients.
[0062] A very intuitive, high level Service Representation 5-4, such as a visual or graphical Service Representation 5-4 can be used to initiate a full Automatic Application Creation flow that generates a plurality of Application Components, including a family of Native Mobile Application Clients 6-6. The Client/Server Protocol 6-7 is a communication mechanism between the Application Client and the Application Server. Application Server control. Mobile Application Client memory management, and Client/Server communication mechanism 6-7 are used to optimize Mobile Application Client response time and bandwidth utilization. There are Dashboards 6-8 that are automatically created and provided to the Business Entities to manage the Services implemented in the Application and to generate a new set of updated Application Clients, The Dashboards are controllers and the Business Entity may use the Dashboards via a web interface running in a web browser or via a mobile interface. Such a mobile interface may simply consist of a mobile version of a we interface, or be integrated in a "management version" of the Mobile Application Client itself, or grouped in a separate tablet or smartphone application.
[0063] FIG. 7A illustrates a more detailed description of the automatic application creation which runs software on a server to generate all the Application Components in detail The Service Representation 5-4 and the Business Entit Data 6-.1 are used by the Automatic Data Model Generator 6-2 to create the Data Model 6-3. The Business Entity Data 6-1 contains specific data pertaining to the Business Entity that is relevant to run the Services implemented in the Application. Examples of Business Entity Data. 6-1 are inventory, locations of stores, price of goods, etc. The output of the Data Model 6-3 is applied to the Automatic Application Generator 6-4 which creates all the Application Components 7-9 in detail partially described i FIG. 6. These components are deployed by a Communication network and include the Application Servers 6-5 comprising the Retailer Application Server 7-1 and the Consumer Application Server 7-2. a set of Native Mobile Application Clients 6-6. a Non-Native Mobile Application Clients 7-3, a Non-Mobile and Cloud Application Clients 7-4, Client/Server Protocols 6-7 and Dashboards 6-8. There is one Native Mobile Application Client 6-6 per Native Mobile OS (iOS for iPhone, Android, Blackberry- Windows, etc.). The Other Application Components 6-9 are Security 7-5, Business porta! 7-6»,, Analytics 7-6a, Business Account and Business Profile 7-7 and Searchable Application Representation 7-8. A first part of the Application Components is deployed to a plurality of Computer hardware to create a first plurality of servers retaining the first part of the Application Components. A second part of the Application Components deployed to the at least one first server,
[0064] The Retailer Application Server 7-1 is used by the Business Entity 5-1 to monitor and manage the Application Components for their Business Entity. The Consumer Application Server 7- 2 supports the Services implemented in the Application and presented to the consumers via all Mobile, Non-Mobile, and Cloud Clients. All Application Servers (specifically, the Consumer Application Server 7-2 and Retailer Application Server 7-1) for all Business Entities that are customers of the System Solution are hosted in a mutti -tenant environment in the Cloud, but each Business Entity "feels" like it is provided a dedicated Retailer and Consumer Application Server. The architecture also applies with minor changes to a scenario where the Consumer Application Server 7-2 and Retailer Application Server 7-1 run on servers owned by the Business Entity, rather than in the Cloud. In this scenario, the working assumption is that the System Solution has access to those servers. Businesses deploy their Application to reach Consumers (i.e., the customers of that Business Entity). The primary End Users of the Application Clients are the Consumers of each Business Entity (i.e., the customers of all the Businesses served by the System Solution). The Business Entities are the End Users of the Dashboards and Retailer Portal that the System Solution generates and provides to each Business for managing the corresponding Application.
[0065] Security 7-5 provides security and privacy in all communications between Application Clients and Application Servers for each Business Entity. Security 7-5 also guarantees that there is no commu cation betwee Retailer Application Servers or Consumer Applicatio 'Servers associated with different Business Entities and that Retailer Databases and Consumer Databases associated with different Business Entities are kept separate. The System Solution offers basic- protection against Denial of Service (DoS) attacks for each System Solution Application. [0066] The Analytics 7-6» consists of functionality to collect and process analytics data on consumer engagement and usage in the Application Clients and transmit that data to the Application Server, and functionality to store and process analytics the received analytics data in the Application Server,
[0067] The Business Portal 7-6b includes a number of interfaces for the B usiness Entity to view the processed Analytics Data and for the Business Entity to enter Business Data and manage its Business Profile. It also includes interfaces for the Business Entity 5-1 to access the Web and Mobile Dashboards 6-8 and other tools that the Business Entity uses to manage, monitor, and update the Services implemented in its Application. The Business Portal 7-6» also includes interfaces for the Business Entity 5-1 to manage its Searchable Application Representation 7-8. The Business Portal used by the Business Entit handles: sales, marketing, customer service and support, appointments, analytics, feedback, and other customer facing tasks.
[0068] The Business Account and Business Profile 7-7 comprises the Business Account and the Business Profile, The Business Account is used to store information in the System Solution Database regarding the Business Entity 5-1 as a customer of the System Solution, such as management, billing, and sales information. The Business Profile stores relevant Business Entity Data 6-1 and all the information relevant to run the Services provided by the Business Entity 5-1 and implemented in the Application.
[0069] Each Mobile Application is associated with a Searchable Application Representation 7-8, which makes the corresponding Mobile Application Client and the content contained in such Mobile Application Client searchable by search engines. SEO techniques can be used in the System Solution Searchable Application Representation to boost the search results of the corresponding Mobile Application Client and content. Searchable Application Representation 7-8 for each Business Entity 5-1 is generated by the System Solution when the Application for that Business Entity is created. [0070] FIG. 7B illustrates how the Native Mobil Application Clients 6-6 are downloaded to Mobile Application Clients (l-lw, l-2x, l-2y, and l-2¾). The set of Native Mobile Application Clients 6-6 contains, for example, an iPhone Application 7-10, a Blackberry Application 7-11 , an Android Application 7-12 and an iPad Application 7-13. A plurality of other combinations of other Application Clients is possible. The arrow 7-17 shows these four Applications being applied to the corresponding Application store. These four Applications; an iPhone Application 7-10, a Blackberry Application 7-11. an Android Application 7-12, and an iPad Application 7-13 are submitted 3-2 to the approval process 3-3 to get accepted 3-4. The iPhone Application 7-10 and iPad Application 7-13 are each applied to the Apple Application Store 7-14a and 7-!4b, the Blackberry Application 7-11 is applied to the Blackberry Application Store 7-15 and the Aodroid Application 7-12 is applied to the Android Application Store 7-16. The Applications iPhone 7-10, Blackberry 7-11. Android 7-12 and iPad 7-13 are downloaded 3-6 to the corresponding Mobile application Clients l-2w5 l-2x, l-2y and l-2z, respectively.
[0071] FI * 8 presents an Application Update flow which shows how the newly created application can be further updated by the Business Entity 5-1 using the newly created Dashboards 6-8. The Dashboards 6-8 that are automatically created in FIG. 6 are used by the Business Entity 5-1 to add, delete, or modify content, features, and services contained i the Applicatio and replace the existing set of Application Clients. The Dashboards 6-8 can be used by the Business Entity 5-1 to generate a new set of Native Mobile Application Clients containing the added, deleted, or modified content, features, and services. The System Solution allows the Business entity to modify the Data Model and generate new Application Clients using the Automatic Application Update 8-2 so that the Business Entity 5-1 can interact with their Customers through the Client Devices 1-2. The generated Dashboard 6-8 allows the Business Entity to have control of what the Business Entity wants to present to their Customers. The Business Entity 5-1 using the Dashboards 6-8 update and recreate the features of the Native Mobile Application Clients 6-6, Non-Native Mobile Application Clients 7-3, Non-Mobile and Cloud Application Clients 7-4 and the Searchable Application Representation 7- of FIG. 7 (all others remain the same) by providing input to the B usiness Entity Data 6-1 which provides data for the Dashboards 6-8. The output of the Dashboards 6-8 is applied to the Updated Data Model 8-1 which is then applied to the Automatic Application Update Generator 8-2 which is a sub-set of the Automatic Application Generator 6-4. The output of the Automatic Application Update Generator 8-2 generates a set of Updated 'Native Mobile Application Clients 8-3, an Updated Non-Native Mobile Application Client 8-4, an Updated Non-Mobile and Cloud Application Client 8-5 and a Updated Searchable Application Representation 8-6. Once this sequence has been established, the Business Entity can manipulate the business data applied to the Dashboards 6-8 and can continuously and automatically update the various Application Clients that this particular system generates.
[0072] The Retailer Portal 7~6b and Dashboards 6-8 provide the Business Entit 5-1 with a solution for the self-service monitoring, management, and updating of an Application consisting of a plurality of Application Components (i .e., after that Application is created), through a set of Dashboards 6-8 and tools that the Retailer can directly access (hence, the self-service nature of the process) this updating process. This is called the Application Retailer Management Flow.
[0073] Depending on the nature of the additions, deletions, and modifications and on the architecture of the generated Native Mobile Application Client, the newly generated Updated Native Mobile Application Clients 8-3 may have to be resubmitted for approval to the corresponding Application Stores in order for the new clients t be downloaded to the Client Devices 1-2. in certain cases, the newly generated Native Mobile Application Client do not require resubmission of the Mobile Client to the corresponding Application Store, and therefore do not require explicit updates from the Application Stores of those Application Clients running on the Client Devices, in such cases, the System Solution provides internal client/server update mechanisms that perform the updates in a "dynamic manner" that is "instantaneous" and completely transparent to the Consumer and Business Entities.
[0074] The Applicatio Clients are dynamic in nature, and can be managed and updated to a certain extent via a corresponding set of Dashboards 6-8 accessed by the Business Entity through the Retailer Portal. Using the Dashboards 6-8, a Retailer can: Add, delete, and modify content within the application; Add, delete, and modify Pages within a Service in the application; Modify the navigation within the application; and turn o and off Services (i.e., make Services active or dormant) that were selected when the application was created. [0075] Mobile and Non-Mobile Clients are capable to update their content and functionality "dynamically* and efficiently, under the control of the Consumer Application Sewer, so as to provide a very engaging experience to the Consumers. The Dynamic architecture is designed to support "dynamic" experiences in the most efficient and responsive way possible. The objective is to enhance the Client user experience in terms of response time while maintaining the dynamic nature of portions of the Client. The structure of the Dynamic Architecture allows identifying the Elements and Sub-Elements that are most likely to change, in this way, the Consumer Application Server 7-2 can send to the Mobile Client only incremental updates, with a "minimum" amount of information which maximizes the bandwidth usage of this interface. The Mobile Client and the Consumer Application Server 7-2 follow a simple Update Strategy to update the Pages and content in the Mobile Client 1-2. The Mobile Client 1-2 also follows a greedy Persistency Strategy, to keep in memory as much information as possible to be displayed while requesting for fresher copies of certain Elements and Sub-Elements.
[0076] FI * 9 illustrates further detai ls of the functional components thai implement a Service and are automatically generated by the System Solution. The Service Representatio 5-4 automatically generates the Service. The End User 9-1, or Customer, interfaces to the Client Device 1-2, The Service Client-Server Protocol 9-2 exchange information between the Application Servers 6-5 and the Client Device 1-2. The Business Entity 5-1 uses the Dashboards 6-8 which are a sub-set of the external data 9-6. If the Service does not change, the Dashboards are not used and the Data stays the same. Business Entity Data 6-1 is available from the Business Entity 5-1.
[0077] The Client Device 1-2 consists of the Application Client 9-7, an. Operating System 2-13 and Hardware 2-16. The Application Client 9-7 further comprises several blocks. These blocks include the Application Client User Interface 9-8, the Application Client Server Logic 9-9, the Application Flow 9-10, a Service Database-Client 9-11 and an Analytics-Client 9-12. The Service Client-Server Protocol 9-2 is associated with Securit 9-3 that is used to encode the information that is sent between the Client Device 1-2 and the Application Servers 6-5. The Application Servers 6-5 comprises the Searchable Representation 9-13, an Application Server Run Time Logic 9-14, a Service Database-Server 9-15, and an Application Server Backend Logic 9-16, Service Policy and Rules 9-17, Analytics-Server 9-18, Navigation Graph 9-2Θ and an Integration Data ngestion Logic 9-19. The Application Server Run Time Logic 9-14 runs in the Consumer Application 'Server 7-2 and the Application Server Backend Logic 9-16 runs in the Retailer Application Server 7-1 ,
[0078] A Client portion (Mobile, Non-Mobile or in the Cloud) presents the Service to the End User 9-1, allowing Consumers to enter inputs, interact with the Services, and collect statistics. In turn, this includes a User Interface (VI), mobile application logic and a mobile data structure. For example, the (Client Device 1-2) can run on a Mobile phone. The mobile application logic and mobile data structure use a number of Client functional blocks or widgets to implement the required functionality. An Application Server portion, which runs in the Consumer Application Server 7-2, and provides the backend functionality needed to run the Service. In turn, this includes application server logic and a data structure. The application server logic and data structure use a number of basic server functional blocks to implement the required functionality. A Service Client-Server Protocol 9-2 offers a communication mechanism between the Client Device 1-2 and the Application Servers 6-5. A Management Suite comprising a set of management Dashboards 6-8 and tools that the Business Entity 5-1 uses to configure, update, modify, manage, monitor, and analyze the Service, The Management Suite is accessed by the Business through the Retailer Portal and runs in the Retailer Application Server 7-1.
[0079] The primary End Users are the Consumers (i.e., the customers of all die Businesses). Any End User action or input while offline is stored in memory and sent to the Server when connectivity is restored. The Consumer Application Server 7-2 contains functionality to run the Application for each Business Entiiy and to manage the End Users (i.e.. Consumers) of the Application. The roie of the End User 9-1 defines who is at the "receiving end" of a Service. In other words, the End User 9- 1 is the "entity" who "experiences" or "benefits" from a certain Service.
[0080] The Searchable Representation 9-13 includes a Business- Facing Service comprising Mobile Search Engine optimization (SEO) Manager which allows the Business-Facing Service to monitor and enhance the Mobile Application Searchable URL by building upon Mobile Application Searchable URL and Searchable URL Tagging. Mobile Application Searchable URL which creates a Searchable Representation of the Mobile Application and Searchable URL Tagging thai adds keywords to Mobile Application Searchable URL. Each Mobile Application is associated with a Searchable URL, which makes the corresponding Mobile Application Clients and their content searchable by search engines. SEO techniques can be used in the Searchable URL to boost the search results of the corresponding Mobile Application Clients and their content. The Searchable- URL for each Business Entity is generated by the System Solution Automatic Application Generator 6-4 when the Mobile Application System for that Business Entity 5-1 is created.
[0081 ] FIG. 10 depicts a pictorial representation of a Service 10-3. The Service 10-3 is at the center of the FIG. 10. The Service Consuming Entity 10-1 can be the End User or the target (for example, another service). The Service Providing Entity 10-5 can be the Business Entity 5-1 or the provider and originator while the Service Configuring Entity 10-7 can be the Business Entity 5-1 or the configurator. An interface between the Service 10-3 and the various entities exists. The Northbound nterface 10-2 is between the Service Consuming Entity 10-1 and the Service 10-3. The Southbound Interface 10-4 is between the Service Providing Entity 10-5 and the Service 10-3. Finally a Management interface 10-6 (which is equivalent to a Dashboard) is between the Service Configuring Entity 10-7 and the Service 10-3.
[0082] A Service 10-3 is a set of functionality that is provided by a Service Providing Entity 10-5 to a Service Consuming Entity 10-1. The Service Consuming Entity 10-1 uses the Service 10-3 to accomplish a certain task or function or acti vity, for example, receiving and redeeming an electronic coupon on the Service Consuming Entity's cellphone. The Service Providing Entity 10-5 is the Provider or Originator, while the Service Consuming Entity 10-1 is the End User or Target. Typically, there is some type of interface between the Service 10-3 and the Service Providing Entity 1.0-5 and between the Sendee and the Service Consuming Entity 10- L The nature of such, interfaces depends on the Service Providing Consuming Entity, and could be a User Interface (Ul an Application programming Interface (API.), or some other type of interface. The term API refers to an interface between the System Solution and an External System, or to an interface between two Services, in other words, the term API loosely, in a logical connotation, is synonymous of a generic interface. Such an Interface can be implemented in various ways, including as a physical API For a given Service, the interface between the Service Providing Entity 10-5 and the Service 10-3 is referred to as the Southbound Interface 10-4, while the interface between the Service Consuming Entity 10-1 and the Service is referred to as the Northbound interface 10-2. Services 10-3 can also have a Management Interface 10-6 through which they can be configured at runtime by a Service Configuration Entity 10-7.
[0083] In the case the Service Consuming Entity is itself a Service, for the "higher5 Service using the other 'lower" Service, such interface is the Southbound Interface 10-4. Conversely, for tire lower Service being used by the higher Service, such interface is the Northbound interface 10-2. A Service that is used by other Services as a building block of functionality can be invoked in different ways by different Services. For example, the Store Finder Service can be explicitly invoked by the Mobile Ordering Service to let the Consumer select a specific location where to place the order; the Store Finder Sendee can be implicitly invoked by a Customized Information Service to identify" which specific location's menu should be displayed.
[0084] A Service 10-3 can be provided at different levels, depending on the Service 10-3 desired from the Service Consuming Entity 10-1 , The Service Consuming Entity .10-1 is the Consumer or End User using a Mobile Client on his/her smartphone (Client Device). The Northbound Interface 10-2 is the means provided to the Consumer to interact with the Service and enter Consumer Input (if needed by the Service),
[0085] One example of Consumer Service is the Loyalty Service. In this Service, the Consumer is provided with the ability of accumulating points based on their purchases at a store, and eventually earning rewards when the number of points reaches a certain level. Other examples of Consumer Senices can include Personalized Storefront Service, Real "Time Promotion Service, Store Finder Service, and many others.
[0086] In a Business-Facing Service, the Service Consuming Entit 10-1 is the Business Entity 5-1. An example of a Business-Facing Service is the Retailer Profile Manager Service which provides a Retailer Porta! through which a Business Entity 5-1 can create and manage a profile containing Information about the Business Entity, A Service-Facing Service is where Services 10-3 can be built on to of other Services; in this case, the Service Consuming Entity 10-1 of a certain Service 10-3 is another Service. An example of a Service-Facing Service is the Redemption Service, which is used by, say. the In-Store Promotion Service to enable the redemption in the store of a promotion. [0087] An Application generated by the System Solution is the collection of a number of Consumer-Facing Services and Business-Facing Services. The set of Services that comprise the Application is referred to as the Application Structure.
[0088] FIG. 11 provides a table 11-1 of a set of examples of Service Families 11-2 along with a set of Service Examples 11-3. The Greeting Service is the first row under the Service Family 11-2 contains the service examples of in-location greetings and automatic check-ins. The Personalized Experience Services row comprises a personalized promotion, and m-store only experiences, realtime experiences yield management, personalized storefront and context location specific experiences. The Information Services row comprises a personalized information discover}', customized information, intelligent notifications temiiiders/alerts, personalized/contextual guides and an intelligent navigator. The 2nd Screen Services row includes contextual product information, a contextual interactivity and a contextual virtual wall. The Correlation Services row comprises an interest relation between product correlation, a contextual correlation, a real time correlation, and information-based correlation and a social-based recommendation. The Value Services row contains intelligent shopping list/wallets, product trackers, store navigators, personal organizer calendar/concierge and reservations. The Convenient Services row includes a mobile ordering, a mobile deli counter and activity trackers. The Loyal Services row comprises a personalized loyalty, a purchase-based rewards, activity-based rewards and VIP services. The Communication Services row contains contextual feedback, contextual polls, personalized messaging, one-click communications and reviews. The Utility Services row comprises mobile payments, a price finder, social sharing and store finders.
[0089] Services can be chained together to form a new Service 10-3. For example, in FIG. 12 Service I I2-5a can be Personalization while Service II 12-5b can be Promotion. These can be chained together through Service Internal interface 12-4 to form a Service HI 12-3 called Personalized Promotions. Typically, Dashboards 6-8 is provided to combine these various services together. The Service 111 12-3 is applied to the Service User interface 12-2 and then to the End User 9-1. Although two services I2-Sa and 12-5b have been illustrated, a plurality of services can be combined together to address the End User requirements. [0090] A Service Selection 5-3 is depicted in FIG. 13. The menu of the list of Services and corresponding checkboxes are used by the Business Entity to select those Services. For example, the list of Services may include the service family examples 11-2 and Service examples 11-3 presented in FIG. 1 1. The Service Selection 5-3 is presented where a number of Services 1 13-1 , Service 2 13-3, Service 3 13-5 and Service N 13-7 can be selected using checkboxes 13-2, 13-4, 13- 6 and 13-8, respectively. This is a menu of available services, and. the Business Entity chooses the ones that it wants implemented. Typically, these are end-user-facing Services, which are often built as a Chain of Services as presented in FIG. 12. The End User can be the Consumer who can be the actual End User 9-1 of the Application Client or the Business Entity 5-1. One application used by the Business Entity, for example, is Data Mining Services that produce analytics. When the Business Entit chooses a specific Service, it selects all the Services that are then chained togeiher in order to build the final Service. For example, in FIG. 13, checkboxes 13-2 and 13-6 have been selected which presents one of the choice combinations of a Service selection 5-3.
[00 1] FIG. 1 illustrates a block representing the various pieces of the Service Representation 5-4 with a list of high-level features, flavors, and options that allow the Business Entity 5-1 to customize the required Service 10-3. For each Service included in the Service Selection 5-3, there exists a Sendee Representation 5-4 describing that Serv ice. The collection of all the Service Representations describing all the Service selected to be implemented in an Application constitutes the Service Representation of the Application and fully describes the functionality that needs to be implemented in the Application. The Service Representation is a high-level "behavioral" description of the Service 10-3 from an end-user viewpoint. The high-level featur list includes a Service "Black Box1' Description 14-1, Service Flavors 14-2, Service Features 14-3, Service Configuration 14-4, Service User Interface 12-2, Dashboards 6-8, Service Integration Points 14-7, Service Internal Interfaces 12-4, Service Presentation 14-9 and a Sendee Status 1 -10,
[0092] FIG* ISA depicts the Description and Examples of the Service "Black Bos" Description .14- 1, This provides a description of the Service 10-3 "as a Black Box". This description includes all aspects of the Service and provides a description of the Service "as a Black Box". This is a very high-level description (i.e. , in plain English) of how the Service behaves from the point of view of an End User. It is typically a list of bullet points that describes the behavior of all aspects of the
Service. The End User is both the Consumer who uses the Application Clients and the Business Entity who provides and manages the Service and can receive data and analytics back from the usage of the Service by the Consumer. The purpose of the "Black Box"' Description is to give a high-level idea to the Business Entity of what the Service will provide to the Consumer and how the Service will be managed by the Business Entity. The "Black Box" Description is not an actual input to the Automatic Data Model Generation Process. The "Black Box" is simply provided to make the Service Selection process by the Business Entity easier and clearer.
[0093] FIG* ISA includes examples of the Service "Black Box" Description 14-1 as it applies to different Services, such as: Real Time Promotion Service, Real Time Promotion Personalized to Shopping List Service and Electronic Loyally Service - '"Key Chain" Card. For example, the Service "Black Box15 Description for the Real Time Promotion Service may consist of a list of bullet points describing the behavior of the Service. The description may read as follows. A Promotion is created via a Dashboard. The promotion includes a product description, an offer, and an expiratio date time. The Promotion is distributed in real time to the Mobile Application Clients in the vicinity of a desired store (i.e., within certain radius from the store). When the Mobile Applicatio Clients receive the Promotion, they display a Notificatio alerting the Consumer that the Promotion is available. The Consumer can redeem the Promotion and receive the discount. Once the expiration date/time is reached, the Promotion is not displayed in the Application Client and cannot be used. Another example applies to the Real Time Promotion Personalized to Shopping List , which is an example of Service Chaining: it chains three Services, i.e., Real Time Promotion Service plus Personalization Service plus Shopping list Service. The Promotion behaves the same as described above. When the Promotion is created, keywords can be added via a Dashboard. The keywords are used to match the Promotion with items in the Shopping list. The Shopping List Service is a list of items that the Consumer can enter through their Application Client, The Promotion is distributed in real time only to the Mobile Application Clients in the vicinity of a desired store which ha ve in their shopping List keywords that match the items. A third example applies to the Electronic Loyalty Service - '"Key Chain" Card. The Service "Black Box" Description for this Service would recite as follows. The Electronic Loyalty Service - "'Key Chain" Card is an electronic Loyalty Card is associated to each Consumer. The electronic Loyalty Card is displayed in the Mobile Application Client and has a barcode that can be scanned at the Point of Sale (PoS) to identify the Consumer. A point for each dollar that the Consumer spends on the purchase is added to the Loyalty Card from the PoS. Consumer redeems rewards when a predefined number of points are accumulated. Consumer can check the balance of points on his/her card at any time from the Application Client. The Electronic Loyalty Service can be tied to a card. This "Key Chain" Card is the electronic equivalent of a physical Loyalty Card that Consumers carry in their Key Chain (e.g., a supermarket Card) or in their wallet and use the cord when the Consumer is at the store.
[0094] FIG* I5B depicts the description and examples of the Service Flavor 14-2. T his provides a description of the Service 10-3 with examples. A Service can have a number of variations or flavors, which accommodate different use cases. The Business Entity 5-J. selects which flavors it wants. The flavors may not be mutuall exclusive. The Service Flavors 14-2 consist of a high level description of what, the Service looks like. If needed for clarity to the Business Entity, there can be a Black Box Description for each flavor. The selected flavors 14-2 are an input to the Automatic Data Model Generation Process, since the selected flavors determine the defining features of the Service.
[0095] Service Flavors 14-2 are variations of a Service 10-3, which accommodate different user cases. FIG. 15B includes examples of Service Flavors for two Services: Electronic Loyalty Service and Promotion Service. The Electronic Loyalty Service comprises two Sendee Flavors. A first flavor is an Electronic Loyally Key Chain Card Service and. is the electronic equivalent of a physical loyalt card carrying a bar code {e.g., the supermarket membership cards that people cany' around in their key chain). The Mobile Application ("Merit displays a barcode, whic is scanned at the PoS at the store, and identifies the Consumer. A second flavor is an Electronic loyalty Punch Card Service which is the electronic equivalent of a physical loyalty punch card (e.g., a "buy 10 sandwiches get 1 free" card that gets punched by the cashier every time the Consumer buys a sandwich), in this case, the Business may display a QR code at the PoS at the store, the mobile Application Client scans the QR code, which identifies the Purchase and "punches" the electronic card. A first, example of flavors for the Promotion Service includes a Real Time Promotion Service. These promotions can be created, distributed, and retired in real time (e.g., a "20% off for the next two hours" Promotion). A second example of flavors for the Promotion Service includes a Location Specific Promotion Service. These promotions are valid only at a specific., configurable store within a chain of stores.
[0096] FIG. 15C and FIG. 150 depict the Description and Examples of the Service Features 1 -3. This provides a description of the Service 10-3 with examples. Service Feature 14-3 specifies the available relevant features of a Service. The list of relevant features depends on the Service. Some features depend on the Service Flavor. This looks like a menu of features, and the Business Entity 5-1. selects the features that it needs. Some features may be defined as "default" features and are provided in the Application without the need for the Business Entity to explicitly select them. Some features, when selected, automatically select other required features, which are necessary for the feature to work properly. Some features, when selected, automatically require certain Integration Points to be defined in order for the Service to work as expected. The Service Features 14-3 are an important input of the Automatic Data Model Generator 6-2,
[0097] FI * 15C and FIG. 150 provides examples of Service Features for two Services: Promotion Service and Electronic Loyalty Service* The Service Features for Promotion Service include the following. A Type of Promotions: obtaining dollar discount (e.g., S5 off), a percentage off the price (e.g., .10% off) and offers to buy X get Y free (e.g., buy one get one free). A list of available redemption mechanisms; a redemption mechanism via bar code (e.g., the application displays a bar code that identifies the promotion and can he scanned at the PoS to redeem it). This mechanism typically requires an integration Point with the POS system, since the bar code has to be known by the PoS system in order to property account for the promotion. A redemption mechanisms via a Q . code (e.g., the application displays a QR code that identifies the promotion and can be scanned at the PoS to redeem it.): a redemption mechanism via "redeem button'' (e.g., the application displays a "redeem button" that the Consumer can tap when at the PoS to receive the discount); and a redemption mechanism via short code (e.g., the application displays a short code that, the Consumer can give to die Cashier in order to receive the discount). The Redemption Scope incudes: Redemption occurs in -store only (e.g., the promotion) or redemption occurs !n-store plus home delivery'. The Service Features for the Electronic loyalty Service includes: Loyalty Events (i.e., events that generate points to be added to a loyalty card). This includes: Offer Purchase-Based Loyalty Points. Consumer gets loyalty points associated to certain purchases (e.g., one point per dollar spent at the store); o 'Non-Purchase-Based Loyalty Points. The Consumer gets Loyalty points for actions other than purchase (e.g., enter the store more than once a month or achieving a Reward Threshold). Service Features for the Electronics Loyalty Service also includes Reward Threshold: Single Threshold. The Consumer gets a reward when he/she accumulates a number of loyalty points equal to the Reward Threshold. Multiple Thresholds. If multiple thresholds occur, then the Consumers get different rewards when he/she accumulates points equal to one of a number of available Reward Thresholds. Loyalty levels can be Single loyalty level, Multiple loyalty levels (e.g., Silver and Gold loyally levels, each Consumer is associated with one level depending on the frequenc he/she visits a store, Stiver level gets one loyalty point per dollar spent, or Gold level gets two loyalty points per dollar spent).
[0098] FIG. J.5E depicts the Description and Examples of the Service Configuration 14-4. Service Configuration specifies relevant parameters that need t be specified by the Business for the Service .10-3 to be configured. The configuration parameters typically go hand-in-hand with the Service Features 14-3. Service Configuration 14-4 specifies relevant values of parameters that need to be specified by the Business Entity 5-1 for the Service to be configured. The configuration parameters typically depend on the selected Service Features 14-3. Each of the selected Service Features 14-3 can require one or more Configuration Parameter. Some of the Configuration Parameter Values are required before the Application can be deployed (e.g., Store Locations for Location-Specific Promotions). Some of the Configuration Parameter Values are entered once the Application is deployed, or are entered when the Data Model 6-3 is updated (e.g., a new Promotion is created and distributed in a Promotion Service). The Configuration Parameter Values are entered either via Dashboards 6-8 such as, all the data required to set up a new Promotion, or via Service integration Points (e.g., a file with all the Store Locations is read by the Automatic Data Model Generation Process). Some Services can have Configuration Parameter Values that are entered by the Consumer via the Application Client when the Service is run. The Automatic Data Model Generation Process validates that all the Configuration Parameter Values that are needed to run the Service have been entered. The Service Configuration Process alerts the Business Entity (or the Consumer) if some required value has not been entered. [0099] FIG. 15E provides example of Service Configuration for two Services: Promotion Service and Electronic Loyalty Service. Service Configuration for the Promotion Service includes Store locations such as the name of store, address, GPS coordinates, or size of the store. Bar codes identify the Promotions. Redemption Rules which specify under what circumstances a Promotion should be redeemed; examples of Redemption Rules include', offer a specific Promotio that is only valid before 6:00pm on weekdays and a Promotion can only be redeemed once. Promotion Data includes product description, offer value, expiration date, or product picture. Service Configuration for the Electronic Loyalty Service comprises Loyalty values such as one loyalty point per dollar spent. The reward threshold values offer reward items associated to each Reward thresholds. The Reward rules offer loyalty points that expire after one year.
[0100] The Service User Interface 12-2 illustrated in FIG. 15F specifies the functionality of the
User interface with the Consumer End User. This describes each interface and the parameters passed through those interfaces.
[0101 ] An example of a Service User Interface 14-5 includes Promotion Service user Interface. The Promotion Service user Interface comprises Displays Promotion Data in multiple levels of detail (e.g., view showing Promotion summary, view showing Promotion details), allowing grouping promotions in categories and provides multiple levels of navigatio where the selectio comprises category and a selection of promotion within category. Bar Codes are displayed to identify the promotion.
[0102] Dashboards 6-8, as shown in FIG. 15G, specify the functionality of the Dashboards 6-8. This Service 10-3 describes each interface and the parameters passed through those interfaces. The Dashboards 6-8 are the interfaces that get automatically generated for the Business Entity 5-1 to manage the Service 10-3 and update it. This describes the functionality provided in the Dashboards 6-8, The functionality of the Dashboards 6-8 strictly depends on the selected Service Features 1 -3 and is directly derived .from the portion of the Service that is changeable. [0103] An example inc ludes Promotion Service Dashboard. The Promotion Service Dashboard allows the creation and distribution of a Promotion by entering the name of Promotion, Promotion code, product description, offer value, and start date/time, expiration date/time or keywords,
[0104] Service integration Points 14-7 illustrated in FIG. 1511 specify the Integration Points with External Systems. A Service 10-3 can be using Service integration Points 14-7 with other systems and databases belonging to the Business Entity 5-1 or to other entities. Service Integration Points 14-7 are used to get Business Data input (or provide data output) or to get other types of Data (e.g., content) that, ma be needed to run the Service. Service integration Points are implemented by generating interfaces specified as a list of inputs, outputs and parameters that are passed through the interface.
[0105] Examples include; Promotion Service Integration Points, The Promotion Service Integration Points are for PoS ntegration to exchange Promotion Codes for each Promotion and receive Purchase Data for each consumer. Externa! Database integration also ingests store locations.
[0106] As shown in FIG. 151, Service Interna! Interfaces 12-4 specify the interfaces of a Service 10-3 which may be using other Services, accessible via Interna]. Service interfaces. The Internal Service interfaces are specified as a list of inputs, outputs and parameters that are passed through the interface. The Internal Service interfaces typically do not need to be made visible to the Business Entity.
[0107] Examples include: Promotion Service using Bar Coding and Redemption Services. The Promotion Service using Bar Coding uses a Bar Coding Service interface for input to identify a unique number identifying an item. A barcodmg label identifies an output barcoding. The Redemption Services Interface uses as an input the ProniotionJD and ConsirmerJD values while the interface uses as output the valid or invalid redemption,
[0108] Service Presentation 14-9 as depicted in FIG. 153 specifies how the service can be presented to the Consumer. This specifies the Ul of the Application Client. This includes a set of Presentation Templates 15-1, which correspond to one or more III Regions, whic in turn correspond to Dashboards 6-8. The set of possible Presentation Templates 15-1. depends on the desired Service Flavors 1 -2 and Service Features 14-3. This specifies how the service can be presented to the Consumer, i.e., defines how the User interlace with the Consumer appears. The Business Entity 5-1 selects which Presentation Tetnplate(s) it prefers. The selected Presentation Teropfate(s) may depend on the Business Data (e.g., in a Promotion Service. Primary Service Presentation is a Carousel Horizontal if there are less than 10 Promotions, a Scrollable List if there are more than 10 but less than 50 Promotions, or a Category List if there are more than 50 .Promotions). Service Presentation .14-9 typically includes a Primary Service Presentation which is how the "bulk" of the Service can be presented. Highlighters are additional US Regions that can be used in the Application Cl ient to highlight or summarize certain relevant pieces of the Service (e.g., the Loyalty Point balance counter can be displayed in the landing page).
[0109] Example of Service Presentation 14-9 for Promotion Service includes the following. Available Presentation Templates .1.5-1 with examples including: .Primary Service Presentation and Highlighters, The Primary Service Presentation is a Carousel that is Horizontal with detailed view on tapping. Carousel that is Vertical wit detailed view on tapping, Small Scrollable Tray with single zoomed Promotion View detailed vie on tapping. Scrollable List with detailed view on tapping. Category List with Scrollable Tray per category and detailed view on tapping, or Individual Promotion with detailed view on tapping. The Presentation Templates 15-1 presets the different views based on tapping. The Highlighters provides a Greeting message such as "You have X promotions" in the landing page. Alerts are also flashed of m-store promotions on selected pages.
[0110] As depicted in FIG. 15K, Service Status 14-10 is where the Business Entity 5-1 can specify one of two Service Statuses: Active and Dormant. Active is a Service that is actively running, deployed, and exposed to the Consuming Entity (typically the Consumer) via the User Interface. Dormant is a Service that is disabled, but all the Application Clients for that Service are generated. This includes functionality, interfaces, and presentation. The Status of the Service is set by the Business and can be changed at any time. Using the Dormant Status, the Business Entity can create the Service and keep it. disabled but ready for future use. [Oi l 1] FIG. 16 illustrates the Automatic Data Mode! Generator 6-2 after being segmented in more detail (from Service Representation to Data Model). The Automatic Data Model Generator 6-2 takes the Service Representation 5-4 and the Business Entity Data 6-1 and generates ail the fields that are included in the Data Mode! 6-3. The Service Representation 5-4 includes Service Flavors 14-2, Service Features 14-3, Service Configuration 14-4, Service Integration Points 14-7, Service Internal Interfaces 12-4, Service Presentation 14-9 which comprises the Presentation Templates 15- 1 and the Service Status 14-10. Once the Data Model 6-3 is generated, the Common Data Model 16- 23, the Server Data Model 16-15 and the Client Data Model 16-16 are contained within. The Server Data Model 16-15 is the portion of the Data Model 6-3 that is relevant for the generation and operation of all parts of the system other than the Application Clients. The Client Data Model 16-16 is the portion of the Data Model 6-3 that is relevant for the generation and operation of the Applicaiion CI i en is .
[0112] The Common Data Model 16-23 includes several structures: Functional Description 16-7, Configuration Parameters 16-8, integration Point Parameters 16-9 and Presentation Attributes 16- 10.
[01 13] The Functional Description 16-7 defines the Functionality that needs to be provided by the Application. The Functional Description 16-7 comprises tire Functional Block Chain 16-11, which is the list of Basic Server Functional Blocks and Native Client Functional Blocks that need to be used by the Automatic Application Generator 6-4 to generate all the components of the Application, The Functional Block Chain 16-11 also defines in which order the blocks should be used (if there is a hierarchy). Since the Services can be hierarchical, the Functional Description 16-7 is also hierarchical. The Functional Description 16-7 is derived by the Automatic Dat Model Generator 6-2 from the selected Service Flavors 14-2, Service Features 14-3 and Service Internal Interfaces 12-4, For every one of the Service Flavors 14-2 and Service Features 14-3, there is a list in memory that, defines the Functional Blocks that should be used. The Service Internal Interfaces 12-4 define the hierarchy of Services t at are needed (if any) to build a certain Service 10-3, In the case of a Service that uses other Services, the Automatic Data Model Generator 6-2 identifies the blocks that are used by each Service. The Functional Description 16-7 consists of a series of checkmarks that identify which blocks are used and in which order (if there is a hierarchy). [0.1 .14] The Configuration Parameters .16-8 is a list of all the Parameters that are needed to implement the selected Ffavor(s) and Features. Each configuration Parameter is described by Name- Type and Value 16-12 which are derived from the Service Configuration 14-4. Service Configuration 14-4 depends on Service Features 14-3 and Service Flavors 14-2 (as explained in FIGS. 15B-3)). Type specifies the format of the parameter and whether the parameter is an input (i.e., a value needs to be entered for that Parameter) or an output (i.e., a value is generated and displayed for that Parameter by the Service). Fhe input Method 1.6-13 for each Parameter specifies how (and by whom) the parameter value is entered. The value can be entered via a Service Integration Points 14-7, or via a Service internal Interfaces 12-4, or via a Dashboard 6-8, or by the End User 9-1 via the Application Client, or be derived by the Business Entity Data, The Automatic Data Model Generator 6-2 goes over the list of Configuration Parameters and determines the Input Method by looking at Service Integration Points 14-7, and Service Presentation 14-9 (note that Presentation Templates .15-1 defines which parameters can be entered via the Dashboards 6-8). The Dynamic Property 16- defines when the value for the parameter is entered and when it can (or cannot) be changed. The Automatic Data Model Generator 6-2 determines the Dynamic Property 16-14 by looking at Service Features 1 -3, The Dynamic Property 16-14 of a parameter can be one of: a. Settings where the value has to be entered before the Service 10-3 is presented to any end user (e.g., the address of a store for a Service that should be offered only in that store); or an Initialization where the value has to be entered before the Service is presented to a specific End User 9-1 (e.g., the barcode identifying a specific consumer in an Electronic Loyalty Card Run Time); or a value can he entered at any time (e.g., the data describing a new Promotion) The Dynamic Property 1 -14 also defines whether the value can be changed and when.
[0.3 .35] The Integration Point Parameters 16-9 are the Configuration Parameters 1.6-8 that are entered via Service Integration Points 14-7. Each Configuration Parameter 16-8 is described by its corresponding Name, Type and Value 16-17 that are derived from the Service Configuration 14-4. Service Configuration 14-4 depends on Service Features 14-3 and Service Flavors 1-2 (as explained in F GS, 15B-D). The integration Point Parameters 16-9 has a corresponding Dynamic Property 16- 19 is derived in the same way as mentioned in Configuration Parameters 16-8. In the Integration Point Parameters 16-9, the whole Integration Interface 16-18 is stored in the Data Model 6-3. For example, all the fields and formats of all the messages are in the Integration Interlace 16-18 of the Integration Point Parameters 16-9.
[01 16] The Presentation Attributes 16-10 comprise the Page Relationships 16-20. The User Interface in the Application Client consists of a collection of "Pages" (the notion of Page is similar to the one in a website, each Page presents a User interface to one or more Services and the end user can navigate from one Page to another). The Presentation Template 15-1 in the Service Presentation 14- consists of one or more Pages. The Template also defines the relationships among those Pages (e.g., there is a button in a Page that, when tapped, leads to another Page). The Template defines Primar' Service Presentation Rules 16-21 (which consists of one or more Pages) and Highlighters (which typically are displayed in yet. other Pages). Page Relationships 16-20 are derived torn the Presentation Templates 15-1. The Page Relationships 1.6-20 are a matri where the rows are the starting Pages and the columns are the ending Pages and the values in the matrix describe how any two Pages are connected. The elationship between Pages can be constant (i.e., there is a button in a Page that always appears and leads to the other Page), or coodiiional (i.e., there is a button in a Page that appears only if certain conditions are verified). Navigation Conditions 16-22 are conditional relationships that correspond to Navigation Conditions 16-22 in the Presentation Template 15-1. For each Navigation Condition 16-22, there is a Parameter that contains a Value that is used to compute the Navigation Condition at runtime (this is explained in detail in U.S. Patent Application Ser. No. 13/833,775 titled. "Dynamic User Interface Delivery y t " filed on March 15, 2013 which is incorporated in reference in its entirety). What is relevant in this application is that the Navigation Condition 16-22 and the associated Parameter(s) are automatically derived from the Presentation Templates 15-1 and stored in the data model. The Presentation Templates 15-1 contain buttons, which can be associated with Navigation Conditions Presentation Rule. Thev are derived from the Presentation Templates 15-1. The Presentation Templates 15-1 contain Widgets (e.g. Carouse! or List Display), which can be associated with Presentation Rules ( or example Functional Description, use Carousel if Number of Promotions <10, use List Display if Number j-u^Promotions ::: 10).
[01 17] FIG. 1.7 illustrates the Automatic Application Generator 6-2 in more detail (from Data Model to the output applications and features). The Data Model 6-3 consists of the Common Data Model 16-23 that couples to the Server Data Model 16-15 and the Client Data Model 16-16. The output of the Data Model 6-3 is applied to the Automatic Application Generator 6-4. The Automatic Application Generator 6-4 comprises the Automatic Application Server Generator 1.7-1 coupled to a Server Data Model 16-15. the Automatic Protocol Generator 17-2 coupled to a Common Data Model 16-23, the Automatic Dashboards Generator 17-3 coupled to a Common Data Model 16-23, the Automatic Cheat Generator 17-4 coupled to a Client Data Model 16-16, the Automatic Searchable Application Representation Generator 17-5 coupled to a Common Data Model 16-23, the Automatic Business Portal Generator 17-6 coupled to a Server Data Model 16-15 and the Automatic Business Account Generator 17-7 coupled to a Server Data Model 16-15. The Application Components generated by the Automatic Application Generator 6-4 are shown on the right of FIG. 17 and includes the Retailer Application Server 7-1 and the corresponding Retailer Application Server Database 17-9, the Consumer Application Server 7-2 and the corresponding Consumer Application Server Database 17-8, the Client-Server Protocols 6-7, Security 7-5, the Dashboards 6-8, the Analytics 7~6a5 the Native Mobile Application Clients 6-6, the Non-Native Mobile Application Clients 7-3, the Non-Mobile and Cloud Application Clients 7-4, the Searchable Applicaticm Representation 7-8, the Business Portal 7-6b and the Business Account and Business Profile 7-7. FIG. 17 provides a portion of the figure in FIG. 7A with significantly more detail.
[0118] FIG. 18A illustrates a Server Data Mode! 16-15 coupled to the Automatic Application Server Generator 17-1. The output of this Automatic Application Server Generator generates, the Application Servers 6-5 where the final output is the Retailer Application Server Logic 7-1, the Retailer Application Server Database 17-9, the Consumer Application Server Logic 7-2, the Consumer Application Server Database 17-8 and the Automatic Dashboard Generator 17-3. The Automatic Application Server Generator 17-1 contains Server Functional Blocks 18-8 and a Server Orchestration Controller 18-7 that applies the final output to the Server Generator 18-6. The Server Functional Blocks 18-8 comprise the Configuration Parameters 1 -9, input Output Parameters and Rules 18-10, Functional Rules 18-11, Navigational Roles 18-12 and a Dedicated Logic 18-13. These are the components necessary to help the Automatic Application Server Generator 17-1 to generate its outputs. Inside the Application Servers 6-5 which receives the output from the Automatic Application Server Generator 17-1 is the Application Server Runtime Logic 9-14, the Application Server Backend Logic 9-16, a Service Database Server 9-15, Analytics-Server 9-18, Integration Data ingestion Logic 9-19, a Navigational Graph 9-28 and Service Policies and Rules 9- 17. The Server Validation Controller 18-3 uses the Validation Rules 18-4 and the Consistency Rules 18-5 to help make this generation possible and guarantee that the generated functionality is correct.
One of the outputs of generates the Application Servers 6-5 is an input that is used by the Automatic Dashboard Generator 17-3 which will be discussed in detail shortly.
[0.1 .1 ] FIG. 18 B illustrates the Basic Server Functional Blocks 18-8 that are used to help the Automatic Application Server Generator .17-1 to generate the Application Servers 6-5. The Basic Server Functional Blocks 18-8 include boxes 18-21 through 18-77. These basic server functional blocks are the personalization management 1.8-21, Multi-Platform Synchronization 1 -22, Two- Way Communications 18-23, Image Recognition 18-24, Consumer Input Editing 18-25, Search Mgmt 18-26, Event Chaining 18-27, Historical Data Collection J 8-28, Video Streaming 18-29, Computation Engine 18-30, Bar Coding Decoding 18-31, Book Keeping 18-32, Usage Statistics Collection 1.8-33, Sorting 18-34, Behavioral Data Collection .18-35, Garbage Collection 18-36, Navigation Manager 18-37, Bar Coding Generation 18-38, Redemptions 18-39, Likelihood Computation 18-48, Ranking 18-41 , Accurate Location integration 18-42, List Mgmt 18-43, Filtering 18-44, Behavioral Pattern Recognition 18-45, Identity Validation .18-46, Security 'Mgmt 18-47, Data Mining Manager 1 -48, Social Media Integration 18-49, Dictionaries and Ontologies 18-50, Logins 18-51, Load Balancing 18-52, Business Profile Manager 18-53, List Editing 18-54, Fraud Prevention 18-55, Content Mgmt 18-56, Mobile Payment. Integration 18-57, Correlation Manage 18-58, Notification Pres 18-59, Key wording 1.8-68, Push Mechanism .1.8-61 , Mobile Client Memory Mgmt 18-62, Geo-Fenc ng 18-63, Item Pool Presentation 18-64, Content Ingestion Mgmt 1.8-65, Matching 18-66, Targeting 18-67, Alert Mgmt 18-68, Time Stamping 18-69, Location 18- 78, Item Pool Mgmt 18-71, Integration Point Mgmt .1.8-72, Preference Mgmt 1.8-73, Behavioral Tracking 18-74, Notifications 18-75, Scheduler 18-76 and Mobile Client Control 18-77. These blocks are used in FIG. 18A which is within the Basic Server Functional Block 18-8 and provide functions related to servers in terms of management, filtering, synchronization, statistics, likelihood, etc.
[0120] FIG. 19 A illustrates the Common Data Model 16-23 which applies its output to the Automatic Protocol Generator 17-2. The Automatic Protocol Generator 17-2 has two flows. The first one is from the Basic Messages 19-2 that feeds its output to die Field Configurator 19-3, which in turn feeds it. output to the Protocol Message Builder 1.9-1. The Call. Flow Configurator 19-4 also feeds its output to the Protocol Message Builder 19-1. The output of the Protocol Message Builder 19-1 determines the Client/Server Protocol 6-7. The second flow is from the Basic Security Methods 19-6 that applies its output to the Security Builder 19-5. The output of the Security Builder 19-5 generates the Security 7-5. The Basic Security Methods 19-6 consist of the Call Flow Generator 19-7 and. the Key Material Generator 19-8. This Automatic Protocol Generator 17-2 generates the protocol for the client/server as well as ensuring security.
[0121] in F G, 19B shows examples of the Basic Message 19-2 and the components the Basic Message contains. There is Push Notificatio Messages 19-10, an Analytics Upload Message 1.9-11 Data Query Messages 19-12. Synchronization Messages 19-13, Page Update Messages 19-14 and Initialization Messages 19-15.
[0122] FIG, 20A illustrates the internal components of the Automatic Client Generator 17-4. The Automatic Client Generator 17-4 uses the Client Data Model 16-16 to generate the Application Client 9-7 which is used to create the Native Client Translation and Generator 20-4, Five Native Client Translation and Generator 20-4 create the Native Mobile Client 6-6, the Non-Mobile and Cloud Application Clients 7-4 and the Non-Native Mobile Application Clients 7-3. in the process of doing this there is a Client Validation Controller 20-1.3 that contains Validation Rules 20-1 and Consistency Rules 20-2 to ensure that the client components are generated appropriately. Inside the Automatic Client Generator 17-4 is the Native Client Functional Blocks 20-27 that feeds to a Client Orchestration Controller 20-23 which creates the HI Generator Controller 20-17 and the Master Client Generator 20-12. Inside the Native Client Functional Blocks 20-27 are the Configuration .Parameters 20-26, Input Output Parameters and Rules 20-25, the Functional Rules 20-24, the Navigation Rules 20-22 and a Dedicated Logic 20-21. inside of the III Generator Controller 20-17 are the Presentation Template 15-1 as described in FIG. 15J, the Widgets 20-19 and the Presentation Rules 20-18, The Master Client Generator 20-12 contains the Logic Generator 20-16 and the VI Generator 20-15. The Applicatio Client 9-7 contains the Client Foundation 20-5, the Client Surfaces 20-6, the Tillable Elements 20-7, the Actionable Elements 20-8, the Navigation Conditions 20-9, the Analytics-Client 9-12, Service Database-Client 9-1 T Page Relationships and Navigation Conditions. The Client Foundation 20-5 and the Client Surfaces 20-6 are in the Application Client User interface 9-8. The Fillable Elements 20-7 and the Actionable Elements 20-
8 are in the Application Client Service Logic 9-9, The Application Client 9-7 also comprises the Navigation Conditions 20-9, the Analytics-Client 9-12, and the Service Database-Client 9-11. The Page Relationships and Navigation Conditions are in Application Flow 9-10. These blocks contain all the functionality that is implemented in the Application Clients. The Application Client 9-7 contains the functionality that is implemented in the Master Client (i.e., one of the Application Clients selected as a reference Application Client). This functionality is then processed by the Native Client Translation and Generator 20-4 to generate the set of Native Mobile Application Clients 6-6, Non-Mobile and Cloud Application Qients 7-4, and Non-Native Mobile Application Clients 7-3.
[0123] Note that the Blocks inside the Native Client Functional Blocks 20-27 of FIG, 20A are the same as the contents as the Blocks inside of the Server Functional Blocks 18-8 of FIG. ISA. These two blocks involving the native Client and the Server are used to generate new functionality of Services 10-3 from a list of Basic Functional Blocks.
[0124] In FIG. 20A, the Automatic Client Generator 17-4 comprises the Native Client Functional Blocks 20-27 and the Widgets 20-19. in FIG. 20B, the ative Client Functional Block 20-27 contains blocks 20-43 through 20-67 which are involved with matching, filtering, client-server communications, managing and locations. These blocks include filtering 20-43, matching 20-45., sorting 20-47, Condition Computation 20-48, Analytics Data Collection 20-49, Push Notification Handler 20-50, Server Data Queries 20-51 , Consumer input 20-52, Client Update Manager 20-53, Client Server Communication 20-54, Mobile Client Offline Behavior 20-55, Garbage Collection 20- 56, Social Media Integration 20-57, Geo-Fencing 20-59, Bar Code Processing 20-59, Device Manager 20-60, Client Storage Manager 20-61, Navigation Manager 20-62, User interface Manager 20-63, Preferences 20-64, edia Players 20-65, Device Specific Functions 20-66 and Native Location Services 20-67. In FIG. 20B, the Widgets 20-19 are also indicated and provide tables, overlays, navigation, grids and calendars. These comprise the blocks 20-30 through 20-42. These blocks are the Carousel Horizontal 20-30, Content Display 20-31 , Table 20-32, Hierarchical List 20-33, Carouse! Verticai 20-34, Input Editor 2Θ-35, Dialog 20-36, Grid 20-37, Balloon 20-38, Calendar 20-39, Overlay 20-40, Multi-Step Form 20-41 and Hierarchical Navigation 20-42.
[0125] FIG. 21 illustrates the Automatic Dashboard Generator 17-3 which uses the Common Data Model 16-23 to generate the Dashboards 6-8. The Automatic Dashboard Generator 17-3 contains a Dashboard Widget 21-3 which feeds into a Dashboard Generator Controller 21-4, The output of the Dashboard Generator Controller 21-4 and the output of the Dashboard Ul Generator Controller 21-5 are applied to the Dashboard Generator 21-6, The output of the Dashboard Generator 21-6 generates the Dashboards 6-8. At all times, the Dashboard Validation Controller 21-2 uses the Validation Rules 21-7 and Consistency Rules 21-8 to ensure that die Dashboards 6-8 are generated correctly,
[0126] FIG. 22A illustrates the apparatus of the Single System Solution Application Server or Single Application Server 22-2, The Single Application Server contains the Automatic Creation Application Server 22-3 with a corresponding Single System Solutio Automatic Creation Database or Single Automatic Creation Database 22-4. There is only one of these single application servers in the System Solution apparatus , However, each of the Business Entities coupled to the System Solution comprises the components within the dotted box 22-1. There is a Consumer Application Server 7-2 and a corresponding Consumer Application Server Database 17-8 and a Retailer Application Server 7-1 with its corresponding Retailer Application Server Database 17-9. A Client- Server Protocol 6-7 communicates in between the servers and. the Native Mobile Application Clients 6-6, the Non-Native Mobile Application Clients 7-3 and Other Application Clients 22-5. The Retailer Application Server 7-1 contains a Searchable Application Representation 7-8 and a Business Portal 7~6! The Retailer Application Server 7-1 is connected to the Dashboards 6-8.
[0127] FIG. 22B illustrates a System Solution 22-15 coupled to a Business Entity 5-1. At least one of System Solution Computing devices 22-7 and at least one System Solution servers 22-2 that comprises Server-A 22-9 through Server-Z 22-10 is coupled to the Business Entity 5-1 though the Internet 1-3. The Automatic Creation Application Server 22-3 with a corresponding Automatic Creation Database 22-4 is a sub-set of the server bank 22-2. It is understood that the Applications 2- 14 running on the OS 2-13 of the Client Devices l-2a, l-2b, and l-2c in Client Devices 22-16 are generated by the block 22-2 under the control of the System Solution 22-15. The System Solution servers 22-2 can also be located in the Cloud, in the vicinity of the Computing devices 22-7 or a combination of any therein. The System Solution 22-1.5 couples to the internet via all interconnects 22-1 !., 22-1.4, 2-3, 22-13, 22-12 and 2-2. This interconnection can be a wireline or wireless and is part of the Communication network. The System Solution 22-15 creates through the Internet 1-3 Application servers, appropriate Server/client protocols. Databases Server for the Business Entities, Dashboards, security insurances, etc., with the server bank 2-4 that comprises Server ~Q 2-11 through server-N 2-12 via interconnect 2-3. The generated Applications for Native or Non-Native Clients are applied to Client Devices I -2a via interconnect 2-2, Client Device l-2b via interconnect 22-12 and Client Device l-2e via interconnect 22-13. These Client. Devices can be mobile, non-mobile or in the Cloud and have a software and hardware similar to thai explained in FIG. 2A. For the latter, some of the application is split between the Cloud and the Client Device. At all times, the System Solution 22-1.5 is monitoring the interactions between the Clients Devices and the Application servers, appropriate Server/client protocols. Databases Server for the Business Entities, Dashboards, security insurances, etc. via the interconnects to and between the Internet 1-3.
[0128] The automatically generated Applications and updated Applications are both generated in FIG. 22B. The generated Applications apply to Native as well as non-Native devices. All desired Services 10-3 are also included in the automatically generated Applications. The updated Applications may be generated by the Business Entity through the use of the Dashboard 6-8 provided b the System Solution 22-15 allowing the Business Entity 5-1 to change a. portion of the application or for the Dashboard 6-8 under the control of the System Solution 22-1.5 to alter the entire 'look." For the updated Applications there may be no need to re- apply to the Application store 3-5 for approval.
[0.129] 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 constated 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 con ve the scope of the inventio to those skilled in the arte. 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 wireiessiy by using communication techniques such as Time Division Multiple Access (TDMA), Frequency Division Multipl Access (FDMA), Code Division Multiple Access (COMA), 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. Local Area Network (LAN), ad hoc networks, local routers and even other portable systems, in addition, the term "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" 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 method of coupling a second part of an Application Components to a plurality of Client
Devices comprising the steps of:
running an Operating System on each Client Device of the plurality of Client Devices;
generating the Application Components automatically from a Data Model using a System Solutio with at least one first server and with at least one Computing device;
coupling the plurality of Client Devices, a plurality of Computer hardware, the at least one first server and the at least one Computing device together using a Communication network to deploy the Application Components;
deploying a first pari of the Application Components to the plurality of Computer hardware to create a first plurality of servers retaining the first part of the Application Components;
deploying the second part of the Applicatio Components to the at least one first server; and coupling a corresponding portion of the second part of the Application Components to a
corresponding Client Device in the plurality of Client Devices via the Communication network,
Ϊ. The method of claim 1, further comprising the steps of:
showing a validity and a consistenc of each of the Application Components wit a plurality of
Validation Controllers.
3. The method of claim I, further comprising the steps of:
automatically generating the Data model from a Service Representation and a Business Entity Data.
4. The method of claim 1„ whereby
the first part of the Application Components comprises a Retailer Application Server and a Retai ler Application Server Database, a Consumer Application Server and a Consumer Application Server Database created by an Automatic Application Server Generator coupled to a Server Data Model.
5. The method of claim ί , whereby the first part of the Application Components comprises a Client Server Protocol and Security created by an Automatic Protocol Generator coupled to a Common Data. Model.
6. The method of claim I . whereby
the first part of the Application Components comprises Dashboards created by an Automatic- Dashboards Generator coupled to a Common Data Model .
7. The method of claim 1, w hereby
the second part of the Application Components comprises an Analytics, a Native Mobile
Applicatio Client, a Non-Native Mobile Application Client, a Non-Mobile Application Client and a Cloud Application Client created by an Automatic Client Generator coupled to a. Client Data Model
8. The met hod of claim 1, whereby
the first part of the Application Components comprises a Searchable Application Representation created by an Automatic Searchable Application Representation coopled to a Common Data Model,
9. The method of claim 1, whereby
the Data Model comprises a Common Data Model, a Server Data M odel and a Client Data M odel, and outputs of the Data Model are partitioned between a Common Data Model output, a Server Data Model output and a Client Data Model output.
.10. The method of claim 9, whereby
the Data Model comprises a Functional description. Configuration Parameters, Integration Point Parameters and Presentation Attributes.
11. The method of claim .1, whereby
the Client Device is a mobile device, a wearable device, a non-mobile device, or a Cloud device coupled to the communication network.
12. The method of claim I , further comprising the steps of downloading a first Client Device with a first Operating System with, at least one Native Mobile Application; and
downloading a second Client Device with a second Operating System with at least one Non-Nati ve Mobile Application, wherein
the second part of the Application Components comprises the at least one Native Mobile
Application and the at least one Non-Native Mobile Application.
13. A method of generating a Data Model comprising the steps of:
coupling at least one Computing device to a System Solution with at least one first server;
generating a Service Representation using the System Solution;
coupling a Business Entity Data to an Automatic Data Model Generator;
coupling the Service Representation to the Automatic Data Model Generator: and
generating the Data Model from the Automatic Data Model Generator automatically using the Service Representation, the Business Entity Data and the System Solution.
14. The method of claim 13, further comprising the steps of:
showing a val idit and a consistency of the Data Model with a plurality of Validation Controllers.
15. The method of claim 13, whereby
the Service Representation comprises a high-level feature list includes a Service Black Box
Description, Service Fla vors, Service Features, a Service Configuration, Service User Interfaces, Dashboards, Service Integration Points, Service internal interfaces. Service Presentation and a Service Status.
16. The method of claim 13, whereby
the Data Model comprises a Common Dat Model, a Server Data Model and a Client Data Model and outputs of the Data Model are partitioned between a Common Data Model output, a Server Data Model output and a Client Data Model output.
17. The method of claim 16, whereby the Data Model comprises a Functional Description, Configuration Parameters, Integration Point .Parameters and Presentation Attributes.
18. A method of generating a set of Updated Applications Clients automatically comprising the steps of:
coupling at least one Computing device to a System Solution with at least one first server;
loading a Business Entity Data of a Business Entity on a. server;
filling tillable entries of Dashboards by the Business Entity;
generating an Updated Data Model by the Dashboards controlled by the System Solution; and generating the set of Updated Applications Clients automatically with the Updated Data Model and the Automatic Application Update Generator.
19. The method of claim 18, further comprising the steps of:
show ing a validity and a consistency of the Updated Data Model with a plurality of Validation Controllers; and
showing the validity and the consistency of the set of Updated Applications Clients with the plurality of Validation Controllers.
20. The method of claim 18, further comprising the steps of:
including an Updated Native Mobile Application Client, an Updated Non-Native Mobile
Application Client, an Updated Non-Mobile Application Client and an Updated Cloud Application Client in the set of Updated Applications Clients.
21. The method of claim 20, further comprising the steps of:
downloading each the Updated Applications Client to a. corresponding Client Device via a
Commun ication network.
22. A method of automatical ly generating a functionality of a selected one or more desired Services, comprising the steps of:
providing a finite number of Basic Server Functional Blocks for a Server;
providing a finite number of Native Client Functional Blocks for a Client; providing a finite number of Basic Messages for a Client-Server Protocol;
se lecti n g one or more desired Services from a list of basic Services provided in a. Service Selection; and
generating the combined functionality of the selected one or more desired Sen ices automatically into a higher functionality component for the Server, the Client and the Server-Client Protocol, simultaneously.
23. The method of claim 22, further comprising the steps of:
specifying a. plurality of basic Services as a list of inputs, outputs and parameters passes through a Service Internal interface.
24. The method of claim 23, whereby
combining the selected one or more desired Service list of inputs, outputs and parameters together to generate another desired Service or the higher functionality component.
25. The method of claim 22, further comprising the steps of:
specifying the functionality of a User interface with a Consumer End User using a Service User Interface.
EP14771074.3A 2013-03-15 2014-03-14 Method for single workflow for multi-platform mobile application creation and delivery Withdrawn EP2972814A1 (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,589 US10326825B2 (en) 2013-03-15 2013-03-15 Apparatus for single workflow for multi-platform mobile application creation and delivery
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
PCT/US2014/026989 WO2014152136A1 (en) 2013-03-15 2014-03-14 Method for single workflow for multi-platform mobile application creation and delivery

Publications (1)

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

Family

ID=51581123

Family Applications (2)

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

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EP14770270.8A Withdrawn EP2972813A1 (en) 2013-03-15 2014-03-14 Dynamic user interface delivery system

Country Status (2)

Country Link
EP (2) EP2972813A1 (en)
WO (5) WO2014152141A1 (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
US20160132301A1 (en) 2014-11-06 2016-05-12 Microsoft Technology Licensing, Llc Programmatic user interface generation based on display size
US10949075B2 (en) 2014-11-06 2021-03-16 Microsoft Technology Licensing, Llc Application command control for small screen display
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
AU2001259486A1 (en) * 2000-05-05 2001-11-20 @ Hand Corporation System and method for extending an enterprise network to mobile devices
US7752214B2 (en) * 2000-09-01 2010-07-06 Op40, Inc. Extended environment data structure for distributed digital assets over a multi-tier computer network
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
WO2006010255A2 (en) * 2004-07-30 2006-02-02 Research In Motion 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
WO2008147616A1 (en) * 2007-05-25 2008-12-04 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 WO2014152136A1 *

Also Published As

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

Similar Documents

Publication Publication Date Title
US11375004B2 (en) Method for single workflow for multi-platform mobile application creation and delivery
US11082481B2 (en) Apparatus for single workflow for multi-platform mobile application creation and delivery
US9942358B2 (en) Recommending applications
TWI393064B (en) Device, method, system, and processor readable medium for event communication platform for mobile device users
US9645797B2 (en) Development system and method for providing external functionality
US20160140625A1 (en) Method and apparatus for distributing items using a social graph
CA2836877C (en) Social information management method and system adapted thereto
JP4976585B2 (en) Apparatus and method for transport optimization for widget content delivery
CN103119588B (en) For the method and apparatus for wishing system response is pre-rendered
US7954115B2 (en) Mashup delivery community portal market manager
US20120198347A1 (en) Method and apparatus for enhancing user based content data
US20080177638A1 (en) Real time re-purposing of a mobile application using xml data
US20120047013A1 (en) Real Time Statistics Extraction From Arbitrary Advertising Audiences
WO2014152136A1 (en) Method for single workflow for multi-platform mobile application creation and delivery
CN108628628A (en) Method and system for mobile application management
CN103703460A (en) Method and apparatus for collaborative filtering for real-time recommendation
CN103119538A (en) Apparatus and methods of extending application services
CN115917512A (en) Artificial intelligence request and suggestion card
US20180040017A1 (en) System and Method for Improving Marketing Services in a Social Networking Environment
CN110070394A (en) Data processing method, system, medium and calculating equipment
JP2002539536A (en) Method and system for accessing clinical information
US20130110609A1 (en) Method and apparatus for controlled data sharing for vendor loyalty program execution
EP3374860B1 (en) Communicating information about an update of an application
JP5556786B2 (en) System and method for utilizing morphing procedures in an information distribution network
Liu A taxonomy and business analysis for mobile web applications

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