WO2014152149A1 - User interface and content translation system - Google Patents

User interface and content translation system Download PDF

Info

Publication number
WO2014152149A1
WO2014152149A1 PCT/US2014/027009 US2014027009W WO2014152149A1 WO 2014152149 A1 WO2014152149 A1 WO 2014152149A1 US 2014027009 W US2014027009 W US 2014027009W WO 2014152149 A1 WO2014152149 A1 WO 2014152149A1
Authority
WO
WIPO (PCT)
Prior art keywords
client device
client
translation
user interface
application
Prior art date
Application number
PCT/US2014/027009
Other languages
French (fr)
Inventor
Fabio Chiussi
Parameshwar Hegde
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/834,765 external-priority patent/US20140280481A1/en
Priority claimed from US13/833,669 external-priority patent/US10320885B2/en
Priority claimed from US13/833,589 external-priority patent/US10326825B2/en
Priority claimed from US13/833,775 external-priority patent/US10320942B2/en
Priority claimed from US13/833,849 external-priority patent/US10075560B2/en
Application filed by Beeonics, Inc. filed Critical Beeonics, Inc.
Publication of WO2014152149A1 publication Critical patent/WO2014152149A1/en

Links

Classifications

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

Definitions

  • the internet is a communication system that interconnects the world.
  • the internet has been structured to provide connectivity to billions of users with laptops, notebooks, desktops, internet Enabled TV sets, cellular phones, smartphones like the iPhoneTM, Android' M and Blackberry m 5 wearable devices, and tablets.
  • the internet 1-3 connects a Client Device 1.-2 to a server 1-4 and the sen-'er to the same Client Device as illustrated in 1-1 of FIG. 1A or to another Client Device (not illustrated).
  • the Client Device 1-2 can have at least one display screen 1-8 that can be a touch sensitive screen, pen based or both.
  • the screen can display various icons or be attached to a physical keypad 1-9.
  • the Client Devices are physical and can be either mobile, such as cellular phones, smartphones, wearable devices, and tablets, or non-mobile, such as laptops, desktops, and TV sets.
  • the Client Devices 1-2 are coupled to the internet by wired (a physical interconnect), wirelessly (waves through space), or both wired /wireless networks.
  • the wireless connectivity can be cellular (3G, 4G, etc.), Wi-Fi, Bluetooth. WiMax, etc.
  • the Client Device 1-2 runs the Applicatio Client which is the actual appiication software running on device.
  • FIG. 1 also shows an appiication store connected to the Internet.
  • the application store makes application clients available for download to the Client Devices.
  • the Apple' application store makes Application Clients for the tPhone 1M and iPad m available for download
  • the Android*** application store makes Application Clients for smartphones and tablets running the Android m operating system available for download
  • There are application stores dedicated to support mobile Client Devices for example, the iPhone iM iPad m Apple 1* application store, the Blackberry 1 ** application store, etc, ⁇ ,
  • application stores dedicated to support non-mobile Client Devices for example, the Mac 1 " Apple iM application store, which makes applications for AppleTM computers running the Mac 01,1 operating system available for download).
  • the Cloud uses the network of the internet to offer services to users by using a combination of hardware and software embedded in the network.
  • An Application Client can be in the Cloud, but in this case the Client Device is a "virtual" Client Device.
  • the * Virtual" Client Device has a way to provide access to the Application Client running i 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.
  • 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 ( F) wireless transmission network (wired/wireless) 2-2 and further coupled to a bank of servers 2-4 via second interconnection 2-3 that can be wired or wireless.
  • the communication Sink is a receiver and a transmitter known as a transceiver and is coupled to either a wired connector or an antenna (not illustrated) for the wireline connection or RF wireless transmission network, respectively, in general, these links: wired, wireless, cellular, internet, etc are called the Communication network.
  • the Communication network couples all components together.
  • the server's bank 2-4 comprises server-0 2- 1 to server-N 2- 2.
  • the bank contains at least one server and these servers can be localized, coupled by an intranet, or be physically separated from one another, coupled by the internet.
  • the operating system (OS) 2-13 running in the Client Device is closely coupled with the hardware 2-16, especially in case of Mobile Client Devices 1-2.
  • the hardware 2-16 comprises at least one processor 2-5 operating under the operating system 2-13.
  • the processor 2-5 is coupled to at least one memory 2-7 and at least one communication link 2-9 via at least one bus 2-8.
  • At least one communication link 2-9 couples the Client Devic to the outside world through a wired and/or wireless interconnection via the transceiver.
  • the Client Device offers the user at least one mode of input and one mode of output.
  • One mode of i nput to the Client Device 1-2 is via the touch based keypad 2-6 or through voice control (not illustrated).
  • the screen 2-10 can be a touch sensitive screen and provide a second mode of input.
  • the screen 2-10 can provide an output response or sound can provide a second mode of output known as voice output (not illustrated).
  • Other hardware components such as MEMS, power supplies, etc, are not mentioned but as well-known by those skilled in the art.
  • a set of applications or Application Clients 2-14 run on the Client Device are coupled to the operating system 2-13.
  • the Client Device is one of a plurality of Client Devices coupled to the I nternet.
  • An Application Store .1-10 connected 2-21 to the I nternet.
  • FIG. 2B illustrates that when the term server 2-20 is used, this server is a sub-set representation of a Computer hardware 2-17, which can contain software 2-18, a database 2-19 and the server 2-20 itself. Other components not illustrated are the memory, power supply, etc. One skilled in the art is knowledgeable of other components contained in this device and will not be described further. All servers used in this specification are substantially the same as the server 2-20. Furthermore, a plurality of servers and a plurality of databases can be embedded in the Computer hardware 2- ⁇ 7.
  • Client Device encompasses the device being mobile, non-mobile, or located in the Cloud.
  • Mobile Client Device will be used for mobile devices
  • Non-Mobile Client Device will be used for non-mobile devices
  • Cloud Client Device will be used for the device formed in the Cloud.
  • FIG. 3 A and FIG. 3B present two different types of Application Clients. This distinction is especial ly relevant in the case of mobile Client Devices, but is also applicable to non-mobile Client Devices.
  • FIG. 3A shows a Native Application Client 3-1 and how it relates to the layered stacks of the hardware/software representation of a Client Device 1-2.
  • the Native Application. Client 3-1 includes a User interface 3-5 and a Client Functionality 3-2.
  • the User Interface 3-5 provides at least one mode of input and one mode of output to the end user and is the means with which the end user interacts with the Native Application Client 3-1.
  • the Native Application Client 3-1 is an executable which runs directly on the operating system 2-13 of the Client Device 1-2, which in turn runs on the hardware 2-16 of the Client Device.
  • the operating system 2-13 provides a set of system libraries 3- 3, which the Native Application Client uses.
  • the Native Application Client is compiled to run on the operating system of the Client Device.
  • the Native Application Client needs to be downloaded to the Client Device and installed o the Client Device in order to ru on the Client Device.
  • the User Interface 3-5 depends on the operating system 2-13 and on the hardware 2-16, and in particular on the screen 2-10.
  • FIG. 3B shows a Non-Native Application Client and how it relates to the layered stacks of the hardware/software representation of a Client Device.
  • the ' Non-Native Application Client. 3-1 b includes a User interface 3-5h and a Client Functionality 3-2lt.
  • the User interface 3-5h provides at least one mode of input and one mode of output to the end user and is the means with which the end user interacts with the Non-Native Application Client 3-1 h.
  • the Non-Native Application Client 3- Ih does not run directly on the operating system 2 ⁇ 13h of the Client Device, but instead uses a web browser 3-5 installed on the Client Device in order to ran.
  • the Non-Native Application Client 3-1 b is written in a programming language that is understood, by the web browser running on the Client Device, The most common example of such a language is HTML5.
  • the web browser running on the Client Device contains a parser 3-4 that is used to interpret the code of the Non-Native Application Client 3-1 b.
  • the Non-Native Application Client 3-1. h does not depend on the Client Device l ⁇ 2a since it does not run directly on the operating system 2- ⁇ but instead uses the web browser 3-3 running on the Client Device l-2a.
  • the Non-Native Application Client 3-1 h can run on anv Client Device l -2a that runs a web browser 3-5 capable of understanding tire lanauaae which the Non-Native Application Client is written in.
  • the web browser 3-5 may depend on the Client Device l-2a, but the Non-Native Application client does not depend on the Client Device.
  • the User Interface 3-Sh depends on the operating system 2-13h and on the hardware 2-16h, and in particular on the screen 2-Mlh [0010]
  • the terra "Application Client " " refers to the portion of the application running on the Client Device.
  • the term "Application Client” encompasses the Application Client running on a mobile Client Device, a non-mobile Client Device or even in the Cloud.
  • the Cloud can run a portion of the Application Client in the server while the remaining portion of the Application Client can run on the Client Device, simultaneously.
  • the term “Application Client” is used to refer io both Native and Non-Native Application Client.
  • the term "Mobile Application Client” will be used for both Native and Non-Native Application Clients running on a mobile Client Device, but it also applies to Client Devices that are non-mobile or in the Cloud.
  • FIG. 4 An approval and download process in the Application Store is illustrated in FIG. 4.
  • a Business Entity 4-1 creates a new application which comprises a new Native Application Client 3-1.
  • the new Native Application Client 3-1 is submitted 4-3 to the Application Store 1-10 for an approval process 4-4.
  • Once the new Native Application Client is accepted 4-5 information is passed to the Application Store 1-10 to make the new Native Application Client available for download and install 4-6 into a Client Device 1-2.
  • a Client Device 1-2 which desires the Native Applicaticm Client 3-1 downloads the Nativ Application Cliem from the corresponding application store 1-10. For example, an iPhone iM downloads its desired Native Application Client from the Apple 1 ** application store, an Android iM device downloads its desired Native Application Client from the Android 1 M application store, etc.
  • the Native Application Client is downloaded to the Client Device, it is installed on the Client Device so it can run on the operating system of the Client Device.
  • the client now contains a "native" application coupled to the operating system 2-13 (see FIG. 2A) of the Client Device,
  • the Native Mobile Application Client executable depends on the operating system (OS) as an iPhone would require a different executable than an. Android i:M phone.
  • a first User Interface in the set of generated User Interfaces is adapted t the characteristics of a first Client Device in the plurality of Client Devices.
  • the first generated User Interface offers the end user on the first Client Device the same user experience as the user experience that a second generated User Interface in the set of generated User Interface, which is adapted to the characteristics of a second Client Device in the plurality of Client Devices, offers the end user on the second.
  • Client Device Using these inventive ideas, the Business Entity automatically generates a plurality of User Interfaces that offer the same user experience in a plurality of Client Devices of different characteristics in terms of operating system, hardware, and look and feel
  • a preferred embodiment of the invention is a method to automatically translate a User
  • the objects displayed in the User Interface for the Reference Client Device are classified as Content Objects, Shape Objects, and Navigation Object.
  • a Reference Translation Grid is generated and superimposed on the User Interface of the Reference Client Device.
  • the objects displayed in the User Interface for the Reference Client Device are placed in relation to the Reference Translation Grid.
  • Reference Text Formatting Translation Rules, Reference Object Formatting Translation Rules, Reference Top Navigation Translation Rules, Reference Bottom Navigation Translation Rules, and Reference Look and Feel Translation Rules are defined.
  • Correspondin Client Translation Grid, Client Text Formatting Translation Rules, Client Object Formatting Translation Rules, Client Top Navigation Translatio Rules, Client Bottom Navigation Translation Rules, and Client Look and Feel Translation Rules are defined for each Client Device in the plurality of Clien t Devices of different characteristics in terms of operating system, hardware, and look and feel.
  • a User Interface for a first Client Device in the plurality of different characteristics in terms of operating system, hardware, and look and feel is generated by scaling the objects according to the relative screen sizes and. resolution of the Reference Client Device and first Client Device, placing the. objects on the Client Translation Grid in the grid position corresponding to the object placed in the Reference Translation Grid, and applying the Client Text Formatting Translation Rules, Client Object Formatting Translation Rules, Client Top Navigation Translation Rules, Client Bottom Navigation Translation Rules, and Client Look and Feel Translation Rules.
  • Another preferred embodiment of the invention includes computing a Reference Fill Score for the User Interface for the Reference Client Device, a Client Fill Score for the generated User Interface for the first Client Device, and a Translation Ratio.
  • the Translation Ratio is compared with a Translation Threshold to determine that the generated User Interface for the .
  • first Client Device offers the end user on the first Client Device the same user experience that the User Interface for the Reference Client Device offers the end user on the Reference Client Device.
  • Another preferred embodiment of the invention includes a method, to adjust the generated User Interface for the first Client Device if, by comparing the computed Translation Ratio with a Translation Threshold, it is determined that the generated User Interface for the first Client Device does not offer the end user on the first Client Device the same user experience that, the User Interface for the Reference Client Device offers the end user on the Reference Client Device.
  • the adjustment of the generated User Interface for the first Client Device makes the user experience offered to the end user on the first Client Device more similar to the user experience offered to the end user on the Reference Client Device,
  • This preferred embodiment of the invention includes a method to determine that a generated User Interface for the .first Client Device, which does not offer the end user on. the first Client. Device the same user experience that the User interface for the Reference Client Device offers the end user on the Reference Client Device, cannot be further automatically adjusted in order to make the user experience offered to the end user on the first Client Device more similar to the user experience offered to the end user on the Reference Client Device.
  • Another preferred embodiment of the preferred invention includes the apparatus comprising Computing devices with dedicated servers running the System Solution that takes as input a User Interface designed for a Reference Client Device and automatically generates a plurality of User Interfaces designed to run on a plurality of Client Devices of different types in terras of their operating system, hardware, and look and feel characteristics,
  • the System Solution includes the apparatus comprising Computing devices with dedicated servers which determine whether a generated User Interface for a first Client Device offers the end user the same user experience of a User interface for a Reference Client Device of different characteristics, if the a generated User Interface for a first Client Device does not offer the end user the same user experience as a User Interface for a Reference Client Device, the apparatus identifies which portions of the User interface for the first Client Device do not offer the end user the same user experience as a User interface for a Reference Client Device.
  • a System Apparatus comprising a Reference Client Device with a Reference Application Client with an first Operating system and a first screen of a first aspect ratio and a first scree resolution, a plurality of Objects displayed on a User Interface of the Reference Client Device, a Client Translator and Generator receives the User interface of the Reference Application Client and automatically generates and translates a plurality of User interfaces of Application Clients other than the Reference Application Client for a plurality of Client Devices, each Application Client with one of a plurality of Operating Systems and a correspondin one of a plurality of different screens with a different aspect ratio and a different screen resolution, and the plurality of the User Interfaces of the Application Client display the plurality of Objects on the plurality of different screens.
  • the System Apparatus further comprising an Automatic Application Client Generator receives data from a Client Data Model and generates a Reference Application Client including the User Interface of the Reference Client Device.
  • the System Apparatus further comprising a set of Native Mobile Application Clients, a set of Native Norn-Mobile Application Clients, Non-Native Non-Mobile Application Clients, Non- Native Non-Mobile Cloud Application Clients, and Non-Native Mobile Application Clients in the plurality of Application Clients.
  • the System Apparatus further comprising a User interface Translator in the Client Translator and Generator that combines the User Interface of the Reference Client Device with the plurality of Client Devices to generate a plurality of User Interfaces that feature the plurality of Objects of the Reference Client Device for each of the plurality of Client Devices.
  • the System Apparatus further comprising the Reference Client Device providing a reference parameters to translate the reference parameters into the parameters used in the piurality of Client devices.
  • the System Apparatus further comprising the User interface of the Reference Application Client with a plurality of pages.
  • the System Apparatus further comprising a page with a Body Area with a Top Navigation Area and/or a Bottom Navigation Area displaying the plurality of Objects, the System Apparatus further comprising a Translation Grid that partitions the Body Area on the Reference Client Device and each Client Device in the plurality of Client Devices into Translation Grid Nodes, Translation Grid Height and.
  • the System Apparatus further comprising a Content Object Picture with a Picture Format, Content Object Video with a Video Format, a Context Object Text with a Text Format, a Shape Object with a Shape format, and a Navigation Object with a Navigation Object Format, forming the plurality of Objects,
  • a method of automatically generating an optimal translation comprising the steps of selecting each Client Device in a plurality of Client Devices, each Client Device with one of a plurality of Operating Systems and a corresponding one of a plurality of different screens each with a different aspect ratio and a different screen resolution, providing a Page with a Body Area, adjusting a Translation Grid to the Body Area of a selected Client Device, converting sizes and a resolution of each of a plurality of Objects, placing the plurality of Objects on the Translation.
  • the method farther comprising the steps of placing the Top Navigation Area and/or Bottom Navigation Area at the Top and/or Bottom of the Body Area and in addition the method farther comprising the steps of checking if the Top and/or Bottom Navigation Rules are valid.
  • the method farther comprising the steps of identifying the plurality of Objects from a list comprising Content Object Picture with a Picture Format Translation Rules, Content Object Video with a Video Format Translation Rules, a Context Object Text with a Text Format Translation Rules, a Shape Object with a Shape Format Translation Rules, and a Navigation Object with a Navigation Object Format Translation Rules.
  • a Translation Grid that partitions the Body Area into Translation Grid Nodes, Translation Grid Height and, Translation Grid width parameters and the translation grid is used to place the plurality of Objects on the Body Area of a plurality of different screens, simultaneously.
  • a method of identifying when a translation is suboptimal comprising the steps of selecting each Client Device in a plurality of Client Devices, each Client Device with one of a plurality of Operating Systems and a corresponding one of a plurality of different screens each with a different aspect ratio and a different screen resolution, providing a Page with a Body Area, adjusting a Translation Grid to the Bod Area of a selected Client Device, converting sizes and.
  • a resolution of each of a plurality of Objects (a) placing the plurality of Objects on the Translation Grid of the selected Client Device filling up a portion of the Translation Grid, (b) computing a Fill Score of the selected Client Device of the filled portion of the Translation Grid area, (c) computing a Translation Ratio as the ratio of the Fill Score of the selected Client Device and the Fill Score of a Reference Client Device, (d) comparing if the computed Translation Ratio is less than or equal to a Translation Threshold and identifying that the translation is optimal, and generating the optimal translation automatically of a User Interface of the Reference Client Device into a plurality of User interfaces of each Client Device in the plurality of Client Devices, otherwise, (e) determining if a maximum number of iterations have been reached then the translation is suboptimal and identify the suboptimal translation to a System Solution Expert, otherwise, applying Text Formatting Translation Rules to a Context Object Text from the plurality of Objects, applying Object Formatting Translation Rules to the remaining plurality
  • the method farther comprising the steps of placing the Top Navigation Area and/or Bottom Navigation Area at the Top and/or Bottom of the Body Area , and in addition the method further comprising the steps of checking if the Top and/or Bottom Navigation Rules are valid.
  • the method farther comprising the steps of identifying the remaining plurality of Objects from a list composing Content Object Picture wi th a Picture Format Translation Rules, Content Object Video with a Video Format Translation Rules, a Shape Object with a Shape Format Translation Rules, and a Navigation Object with a Navigation Object Format Translation Rules.
  • the method wherein a Translation Grid that partitions the Body Area into Translation Grid Nodes, Translation Grid Height and, Translation Grid widt parameters and the translation grid is used to place the plurality of Objects on the Body Area of a plurality' of different screens, simultaneously.
  • FIG. 1A depicts a Client Device coupled to a server and an Application Store and provides some examples of Client Devices.
  • FIG. IB depicts a Client Device coupled to a client/server.
  • FIG. 2A shows a Client Device wit a coupling to a bank of servers, an Applicatio Store, and the internal hardware/software structure of the Client Device.
  • FIG. 2B depicts a more detailed description of a server being a subset of Computer hardware with software, a Database and the server,
  • FIG. 3A presents a Native Application Client and how it relates to the layered stacks of the hardware/software representatio of a Client Device.
  • FIG. 3B illustrates a Non-Native Application Client and how it relates to the layered stacks of the hardware/software representation of a Client Device.
  • FIG. 4 shows the flow of how a Native Application Client is approved and downloaded by an Application Store to a Client Device.
  • FIG. 5 depicts a Two-Layer Native Application Client in accordance with the present invention.
  • FIG. 6A shows a Two-Layer Applicatio Client being downloaded to a Client Device for the first time in accordance with the present invention.
  • FIG. 6B presents a Dynamic Layer a Two- Layer Appiicaiion Client being downloaded to a Client Device in accordance with the present invention.
  • FIG. 7 shows different Native Application Client Devices having different Operating Systems and different Hardware in accordance with the present invention.
  • FIG. 8 illustrates shows different Non-Native Application Client Devices having different Operating Systems and different Hardware in accordance with the present invention.
  • FIG. 9 depicts Applications and Application Clients being generated automatically in accordance with the present invention.
  • FIG. 10 illustrates the flow to generate Application Clients from a Reference Application Client in accordance with the present invention.
  • FIG. II A shows the User interface Translation Process on a first Device in accordance with the present invention.
  • FIG. J IB illustrates the User Interface Translation Process on a second Device in accordance with the present invention.
  • FIG. 12 depicts the structure of the Application Client in accordance with the present invention.
  • FIG. J 3 illustrates the structure of a Page in accordance with the presen invention
  • FIG. 14 depicts a Page containing different Objects in accordance with the present invention.
  • FIG. 15. and 15B illustrates a Translation grid with Translation Grid Nodes, Height, and width in accordance with the present invention.
  • FIG. 16 depicts the process for preparing ail Clients for Translation in accordance with the present invention
  • FIG. 17 shows the process of placing Objects on the Reference Translation Grid of a Reference Client Device in accordance with the present invention.
  • FIG. IS depicts a flow chart of an algorithm to determine optimal and sub-optimal Translation 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 the Business Entity with Application Clients adapted to the characteristics of all the Client Devices which the Business Entity desires the Applicatio Client to run on.
  • the Application Clients provided by the System Solution comprise a plurality of Native Applicatio Clients that run on Mobile, Non- Mobile, and Cloud Client Devices of different types and a plurality of Non-Native Application Clients that ran on Mobile, Non-Mobile, and Cloud Client Devices of different types.
  • the System Solution is the owner of ail Application Components, including Native and Non-Native Application Client, automatically generated by the System Solution.
  • the System Solution creates and hosts Applications and generates Application Clients for different Business Entities (each Business Entity is a System Solution customer).
  • the System Solution provides a complete environment for the creation, hosting, updating, and management of the Application.
  • the Application Servers generated by the System Solution for all Business Entities are hosted in a multi- tenant environment in the Cloud, but each Business Entity "feels" like it is provided a dedicated Application Server.
  • the System Solution architecture also applies with minor changes to a scenario where the System Solution Application Server run on dedicated servers owned by the Business Entity, rather than in the Cloud. In this scenario, the System Solution has access to control and offer beneficial use for those servers that are coupled to the Cloud.
  • Business Entities deploy their Applications and Application Clients to reach Consumers (i.e., the customers of that Business Entity served by System Solution).
  • Consumers are the primary End Users of the Application Clients generated by the System Solution.
  • the Business Entities are the End Users of the Dashboards and the Application Server that the System Solution provides to each Business Entity for managing the corresponding Application Clients.
  • Mobile Client Devices cellular phones, smartphones, wearable devices, and tablets
  • Non-Mobile Client Devices laptops, desktops, and Internet-enabled TV sets
  • wired a physical interconnect
  • wirelessiy microwaves through space
  • the wireless connectivity can be cellular (3G, 4G 5 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 term “ Mobi le” when used alone or in a larger phrase "Mobile Client Devices” can also imply the terms Mobile, Non-Mobile or in the Cloud.
  • 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 runs on a server ⁇ the Application Server).
  • the term “Application Client” refers to the portion of the application running on the Client Device.
  • the terra “Application Client” encompasses the Application Client, running on a mobile Client Device, a non-mobile Client Device or even in the Cloud.
  • the Cloud can run a portion of the Application Client in the server while the remaining portion of the Application Client can run on the Client Device, simultaneously.
  • the term “Application Client” is used to refer to both Native and Non-Native Application Client.
  • the term “Mobile Application Client” will be used for both Native and Non-Native Application Clients running on a mobile Client Device, but it also applies to Client Devices thai are non-mobile or in the Cloud,
  • the Application Clients provide the End User with a User Interface which provides the end user with at least one mode of input and at least one mode of output.
  • the User Interface provides the means to the end users through which the end user navigates and interacts with the Application Client,
  • Each Application includes a family of Application Clients.
  • Each Application Client is designed to run on a Client Device of a certain type, part of a plurality of Clien t Devices.
  • the Client Devices in the plurality of Client Devices have different characteristics in terms of hardware, operating system, and "look and feel" of each device.
  • each Client Device in the plurality of Client Devices may have a different screen in. terms of resol tion, aspect ratio, and size.
  • the family o Application Clients includes a set of Native M obile Application Clients, one per mobile Client Device.
  • the family of Application Clients also includes a set of Native Non- Mobile Application Clients, one per non-mobile Client Device.
  • the family of Application Clients also includes Non-Native Mobile and Non-Mobile Application Clients, and Cloud Application Clients residing in the Cloud. Native, Non-Native, and Cloud Application Clients can be- automatically generated by the System Solution.
  • a Native Application Client executable depends on the operating system of the Client Device on which the Native Application Client is running on. Thus, the executable of a Native Application Client to run on different Client Devices may be different.
  • the set of automatically generated Native Mobile Application Clients provides a Native Mobile Application Client per each mobile Client Device which the Mobile Application is desired to ran on.
  • the executable of a Native Mobile Application Client designed to run on a first mobile Client Device is generated to run on the operating system of the first mobile Client Device and may be different from the executable of a Native Mobile Application Client designed to run on a second mobile Client Device.
  • the executable of a Native Non- Mobile Application Client designed to run on a first non-mobile Client Device is generated to run on the operating system of the first non-mobile Client Device and may be different from the executable of a.
  • Native Non-Mobile Application Client designed to ran on a second non-mobile Client Device is generated to run on the operating system of the first non-mobile Client Device and may be different from the executable of a.
  • the User interface of a Nati ve Application Client to run on different Client Devices may be different.
  • the User Interface of a Native Application Client depends on the operating system, the hardware, and the "look and feel" of each Client Device. In particular, the User Interface depends on the characteristics of the screen of each Client Device in terms of screen resolution, aspect ratio, and size.
  • the User Interface of a Native Mobile Application Client designed to run on a first mobile Client Device is adapted to the characteristics in terms of operating system, hardware and 'look and feel of the first mobile Client Device and may be different, from the User Interface of a Native Mobile Application Client designed to run on a second mobile Client Device, which is adapted to the characteristics in terms of operating system, hardware and "look and feel of the second mobile Client Device.
  • the User Interface of a Native Non-Mobile Application. Client designed to run on a first non-mobile Client Device is adapted to the characteristics in terms of operating system, hardware and "look and feel of the first non-mobile Client Device and may be different from the User Interface of a Native Non-Mobile Application Client designed to run on a.
  • second non-mobile Client Device which is adapted to the characteristics in terms of operating system, hardware and "look and feel of the second non-mobile Client Device.
  • Client must be adapted to the characteristics in terms of operating system, hardware, and look and feel of each Client Device on which the Native Application Client is desired to run.
  • a Non-Native Application Client does not depend on the operating system of the Client Device on which the Non-Native Application Client is running on, since it runs on the Web Browser that is runnina on each Client Device.
  • the User Interface of a Non-Native Application Client to run on different Client Devices may be different.
  • the User Interface of a Non- Native Application Client depends on the hardware and the "look and feel" of each Client Device. In particular, the User Interface depends on the characteristic s of the screen of each Client De vice i terms of screen resolution, aspect ratio, and size.
  • the User Interface of a Non-Native Application Client must be adapted to the characteristics in terms of hardware and look and feel of each Client Device on which the Non-Native Application Client is desired to run.
  • the Non-Native Application Client is written in a programming language that is understood by the web browser running on the Client Device.
  • a programming language for example HTML5
  • HTML5 provides certain functionality that allows the web browser running on the Client Device to adapt the User interface of the Non-Native Application Client to the characteristics of the Client Device.
  • the " 'adapted" User Interface may not offer the same user experience in all Client Devices.
  • the automatic generation of the set of Native Mobile Application Clients, the set of Native Non-Mobile Application Clients, Non-Nativ Application Clients, and Cloud Application Clients requires a Client Translator and Generator thai translates a User Interface of an Application Client designed to run on a Reference Client Device into a User Interface of an Application Client designed to run on each Client Device in the plurality of Client Devices of different types which the Applicatio Client is desired to run on.
  • the Reference Client Device may be one of the Client. Devices that the Application Client is desired to run on.
  • the User interface which is translated to run on a Client Device must adapt to the characteristics of the Client Device in terms of operating system, hardware, in particular screen resolution, size, and aspect ratio, and "look and feel .
  • the user experience offered by a Application Ciieni on a Client Device is the result of many factors, many of the factors qualitative in nature, since the user experience is a qualitative experience. For example, pictures and videos displayed by a User Interface should not look distorted. Text should use proper fonts and font sizes, be well-spaced and not truncated. Buttons and other navigation elements should be properly spaced, and follow the look and feel of the Client Device. .Embellishment effects such as shapes, outlines, and shadows should be properly displayed. The "composition" of the User Interface, i.e., the relationship among the different graphical elements displayed by the User Interface should be visually pleasant in all Client Devices.
  • the different elements displayed by the User Interface should not look too large or too small, areas of the screen should not look unnaturally empty, the distance between any two elements should be similar in relative terms on ail Client Devices, elements that do not overlap in the Reference Client Device User Interface should not overlap in any User interface, etc.
  • first User Interface that "looks good” on a first Client. Device may "look poor" when the first User Interface is translated to a second Client Device.
  • a set of buttons that appear properly spaced when displayed on. the first Client Device, may appear too closely-spaced when displayed on the second Client Device, and the end user may find them awkward to use them on the second Client Device.
  • Another example is a picture that ma appear properly sized whe displayed on a first Client Device, but may appear distorted when displayed on a second Client Device featuring a screen of a different aspect ratio than the first Client De vice.
  • the problem of properly adapting a User Interface to the characteristics of Cl ient Devices of different types is especially relevant for Native Application Clients.
  • the problem also applies to a certain extent to Non-Native Application Clients.
  • the web browser .running on the Client Device provides certain capabilities to adapt a Non-Native Application Client to the characteristics of the Client Device.
  • the adaptation capabilities provided by the web browser running on a certain Client Device may he limited and the adaptation may not result in the same user experience in all Client Devices.
  • tfl €»- 5 depicts a.
  • Two-Layer Native Application Client 5-1 which is a Native Application Client that consists of two layers: a Dynamic Layer 5-3 and a Native Layer 5-2,
  • the Native Layer 5-2 runs directly on. the operating system 2-13 of the Client Device 1-2 by using the system libraries 3-3 that are part of the operating system 2-13.
  • the Dynamic Layer 5-3 does not run directly on the operating system 3-3, but instead runs on the Native Layer 5-2 by making use of software libraries and functional blocks provided in the Native Layer 5-2.
  • the Native Layer 5-2 is an executable that depends on the Client Device 1-2 and needs to be downloaded and installed on the Client Device 1-2 using an installation .manager external to the Two- Layer Native Applicatio Client 5-1.
  • the Native Layer 5-2 needs to be downloaded from the application store.
  • the Dynamic Layer 5-3 does not need to be downloaded from the application store, bu can be downloaded directly from an Application Server that is part of the System Solution.
  • the operating system runs on the hardware 2-16.
  • FIG. 6A illustrates the process of downloading the Two-Layer Native Application Client 5- I. to a Client Device 1 -2 for the first time. This process is similar to the process of downloading a Native Application Client 3-1 to the Client Device depicted in FIG. 4.
  • a Business Entity 4-1 creates a new application which comprises a Two-Layer Native Application Client 5-1.
  • the new Two-Layer Native Application Client 5-1 is submitted 4-3 to the .Application Store .1-10 for an approval process 4-4.
  • a Client Device 1-2 which desires the Two- Layer Native Application Client 5-1 downloads the Two-Layer Native Application Client from the corresponding application store 1-10. Once the Two-Layer Native Application Client is downloaded to the Client Device, it is installed 4-6 on the Client Device so it can run on the operating system 2- 13 of the Client Device.
  • the Two-Layer Native Mobile Application Client 5-1 executable depends on the operating system (OS) as an iPhone would require a different executable than an Android phone. If the Business Entity modifies the Native Layer 5-2, it needs to submit the new version of the Native Layer 5-2 to the application store for re-approval in order to make it available for download to the Client Device.
  • the existing version of the Native Layer if running on the Client Device 1-2, must be stopped and deleted from the memory of the Client Device 1-2 in order for the ne w version of t he Native Layer to be installed on the Client Device.
  • the Native Layer cannot be updated "on the fly" while the Native Application Client 5-1 is running on the Client Device 1-2.
  • the Dynamic Layer 5- 1 runs on the Native Layer 5-2.
  • FIG. 6B illustrates the process of downloading an updated Dynamic Layer 6-4 to the Client Device.
  • the Business Entity 4-1 modifies the Dynamic Layer 5-1 and creates an Updated Dynamic Layer 6-2, it ca make it available for download 6-4 directly from an Application Server 6-3 that is part of the System Solution or is owned by the Business Entity.
  • the new version 6-2 of the Dynamic Layer 5-3 is made available for download to the Client Device without having the Business Entity submit it for approval to the application store 1-10.
  • the updated Dynamic Layer 6- 2 can be downloaded and installed 6-4 in the Client Device 1-2 while the Two-Layer Native Application Client 5-1 is running on the Client Device.
  • the update of the existing Dynamic Layer can he achieved using an update manager 6-6 that is internal in the Native Layer 5-2 of the Two- Layer Native Application Client 3-1.
  • the Updated Dynamic Layer 5-3 is installed on the Client Device 1-2, the new application client -functionality and new user experience is provided to the end user.
  • the Native Layer 5-2 runs on the operating system 2-13 which in turn runs on the hardware 2-1 .
  • FIG. 7 illustrates a plurality of Client Devices comprising Client Device 1 1.-2 to Client Device N l-2b.
  • Each Client Device is of a different Client Device type and different characteristic, suc as hardware, operating system, and "look and feel" of each device.
  • a first Client Device can be an iPhone 4
  • a second Client Device can be an i Phone 5 '
  • a third Client Device can be an iPad i M
  • a fourth Client Device can be an sPad Mini 5M
  • Client Device can be a Nokia LamiaTM smartphone running the Windows MobileTM operating system
  • a seventh Client Device can be Samsung Notes I tablet with 10" screen running the Android' M operating system
  • an eighth Client Device can be a Samsung Note f M tablet with 7" screen running the Android : operating system
  • a ninth Client Device can be a Dell" "' laptop, and so on.
  • Client Device 1 1-2 comprises an Operating System 1 2-13 and a Hardware 1 2-16 which comprises a Screen 1 2- 10 with a certai Scree Resolution., Aspect. Ratio and Size.
  • Client Device 1 has a certain "Look and fee!
  • Client Device 2 l ⁇ 2a comprises an Operating System.
  • Client Device 2 has a certain "Look and Feel" Client Device 2 7-l.a.
  • Client Device N l-2b comprises an Operating System N 2-13fo and a Hardware N 2- 6b which comprises a Screen N 2-!.0b with a certai Screen Resolution, Aspect Ratio and Size.
  • Client Device N has a certain "Look and Feel" Ciient Device 7-1 b.
  • Operating System I 2-13 may differ from Operating System 2 2-13a, which in turn may differ from Operating System 2-13b.
  • Hardware I 2-16 may differ from Hardware 2 2-16a, which in turn .may differ from Hardware N 2-16b.
  • Screen 1 2-10 may differ front Screen 2 2-10a, which i turn may differ from Screen 2-10b in terms of screen resolution, or aspect ratio and size.
  • "Look and feel" Client Device 1 7-1 may differ from “Look and feel” Client Device 2 7*1 a, which in turn may differ from “Look aad feel” Client Device N 7-1 b.
  • the "Look and Feel" of a Client Device is due to the fact that the manufacturer of a certain operating system or Client Device encourages certain practices that developers of Application Client User Interfaces running on their devices should follow, so all Application Clients running on the Client Device have some general common behavior and an end user is comfortable even the first time he-'she uses a User Interface of a new Application Client, since the end user can "navigate” the new Application Client, at least to some extent, by applying "knowledge” gained by navigating other Application Clients, The “Look and Feel" often depends on the operating system and on the device itself.
  • the "look and feel" of an iPhone lM is different from the “look and feel” of a device running the Android 1 operating system or from a device running the Blackberry : * operating system.
  • the "look and feel" of an iPhone , M is also slightly different from the "look and feel" of an iPad iM , even if the two devices run the same operating system.
  • the Tab Bar is typically at the bottom of the screen, in an Application Client running on Android phone can be at the top.
  • a Native Application Client executable depends on. the operating system of the Client Device on which the Native Application Client is running on.
  • the executable of a Native Application Client depends on. the operating system of the Client Device on which the Native Application Client is running on.
  • the Application Client to run on different Client Devices may be different
  • the executable of the Native Application Client 3-1 to run on Client Device i 1-2 may be different from the executable of the same Native Application Client 3-1 a. to run on Client Device 2 1-2 » which in turn, may be different from the executable of the same Native Application Client 3-lb to run on Client Device N 1-2b.
  • the User Interface of a Native Application Client when run on different Client Devices may be different.
  • the User interface of a Native Application Client depends on the operating system, the hardware, and the "look and feel" of each Client Device, in particular, the User Interface depends on the characteristics of the screen of each Client Device in terras of screen resolution, aspect ratio, and size.
  • the User Interface 3-5 of the Native Application Client 3-1 to run on Client Device 1 1-2 may be different from the User Interface 3-5a of the same Native Application Client 3-1 a to run on Client Device 2 l-2a ambulance which in torn ma be different from the User Interface 3 ⁇ 5b of the same Native Application Client 3-1 b to run on Client Device N l-2b.
  • the User Interface of a Native Application Client must be adapted to the characteristics in terms of operating system, hardware, and look and feel of each Client Device on which the N ative Application Client is desired to ran.
  • Each Native Appli eati on C 11 ent include s a C 1 lent Fune tionali ty 3-2 , 3 - a and 3-2 b, respectively.
  • FIG. 8 is similar to FIG-. 7 t but addresses the case of Non-Native Application Clients.
  • FIG. 8 illustrates the same plurality of Client Devices comprising Client Device 1 1-2 to Client Device N l-2b shown in FIG. 7, each Client Device of a different Client Device type and different characteristic, such as hardware, operating system, and 'look and feel" of each device,
  • a Non-Native Applicatio Client does not depend on the operating system of the Client Device on which the Non-Native Application Client is running on, since it runs on the Web Browser 1 8-2, Web Browser 2 8 ⁇ 2a, and Web Browser 3 8-2b mat is running on each Client Device.
  • the Web Browser running on each Client Device supports the "look and feel" of each device.
  • the User Interface of a Non-Native Application Client to run on different Client Devices may be different.
  • the User interface of a Non-Nati ve Application Client 8-3 to 8-3b depends on the hardware 2-16 to 2-16b, respectively, and the "look and feel" 8-1 to 8-lb, respectively of each Client Device.
  • the User Interface depends on the characteristics of the screen of each Client Device in terms of screen resolution, aspect ratio, and size.
  • the User Interface 8-5 of the Non-Native Application Client 8-3 to run on Client Device .1 1-2 ma be different f om the User interface 8-5a of the same Non-Native Applicatio Client 8-3a to ran on Client Device 2 l-2a, which in turn may be different from the User interface 8-5» of the same Non-Native Application Client 8-3b to ran on Client Device N l-2b.
  • the User interface of a Non-Native Application Client must be adapted to the characteristics in terms of hardware and look and feel of each Client Device on which the Non-Native Application Client is desired to run.
  • the Non-Native Application Client is written in a programming language that is understood by the web browser running o the Client Device.
  • a programming language for example HTML 5
  • HTML 5 provides certain functionality that allows the web browser running on the Client Device to adapt the User interface of the Non-Native Application Client to the characteristics of the Client Device.
  • the "adapted" User Interface may not offer the same user experience in all Client Device 1 .1-2 comprises an Operating System I 1 2-13 and a Hardware I 1 2-16 which comprises a Scree 1 2-10 with a certain Screen Resolution, Aspect Ratio and Size.
  • Client Device I has a certain "Look and Feel" for Web browser I Client Device 1 8-1.
  • Client Device 2 l-2a comprises an Operating System 2 2-13a and a Hardware 2 2-1 a which comprises a Screen 2 2-10a with a certain Screen Resolution, Aspect Ratio and Size.
  • Client Device 2 has a certain "Look and Feel" for Web browser 2 Client Device 2 8-l.a.
  • Client Device N l ⁇ 2b comprises an Operating System N 2-13» and a Hardware N 2-16b which comprises a Screen N 2-1 Ob wit a certain Screen Resolution, Aspect Ratio and Size.
  • Client Device N has a certain "Look and Feel" for Web browser N Client Device N 8-1 b.
  • Each Non-Native Application Client includes a Client Functionalit 3-2, 3-2» and 3 ⁇ 2b, respectively JSach Non-Native Application Client includes a Client Functionality 3 ⁇ 2. 3-2a and 3-2b, respectively.
  • FIG. 9 depicts a method and apparatus to automatically generate an Application, consisting of several Applicatio Components.
  • a Business Entity 4-1 defines a Service Representation 9-1 and Business Entity Data 9-2.
  • An Automatic Data Model Generator 9-3 takes the Sen-ice Representation 9-1 and the Business Entity Data 9-2 as inputs and automatically generates a Data Model 9-4, and from the Data Model 9-4 it generates a Commo Data Model 9-5, a Server Data Model 9-6 and a Client Data Model 9-7.
  • an Automatic Application Generator 9-8 automatically generates ail the Application Components.
  • the generated Appiication Components include an Application Server 9-9, a set of Native Mobile Application Clients 9-10, a set of Native Non- Mobile Application Clients 9-11 , a set of Non-Native Application Clients 9-12, Client Server Protocols 9-13, Dashboards 9-14, and Other Application Components 9-15, [0075]
  • the method and apparatus depicted in FIG. 9 is explained in detail in U.S. Patent Application Ser. No. 13/833,589 titled "Apparatus for Single Workflow for Multi-Platform Mobile Application Creation and Delivery ' filed on March 15, 2013, in U.S. Patent Application Ser.
  • the set of generated Native Mobile Application Clients 9-1.0 comprises a Native Mobile Application Client executable for each mobile Client Device that the Native Mobile Application Client is desired to run on.
  • the User Interface of each Native Mobile Application Client in the set of generated Mobile Application Clients 9-10 is adapted to the characteristics in terms of operating system, hardware, and look and feel of the corresponding mobile Ciient Device that the Native Mobile Application Client is desired to run on.
  • the set of generated ' Native Non-Mobile Application Clients 9-11 comprises a Native Non-Mobile Application Ciient executable for each non-mobile Client Device that the generated Native Mobile Application Client is desired to run on.
  • the User Interface of each Native Non- Mobile Application Client in the set of Non-Mobile Application Clients 9-11 is adapted to the characteristics in terms of operating system, hardware, and look and feel of the corresponding non- mobile Client Device that the Native Mobile Application Client is desired to run on.
  • the User Interface of the Non-Native Application Clients 9-12 is adapted to the characteristics in terms of hardware and look and feel of the corresponding Client Device that the Native Mobile Application Client is desired to run on.
  • FIG. 10 provides further detail of the Automatic Client Generation process, which is part of the method, and apparatus depicted in FIG. 9.
  • the Automatic Application Client Generator 10-1 which is part of the Automatic Application Generator 9-8 f first automatically generates a Reference Application Client 10-2.
  • the Reference Application Ciient 10- 2 is an. Application Client whose executable is compiled to ru on a Reference Client Device and whose User Interface is adapted to the characteristics in terms of operating system, hardware, and look and feel of the Reference Client Device.
  • the Reference Client Device may be one of the Client Devices that the Applicatio Client is desired to run on.
  • the iPhone 5 i : i may be picked as the Reference Client Device, and the Reference Application Client 10-2 is generated and adapted to run on the iP one 5 l ⁇
  • the Client Translator and Generator 10-3 translates the executable and User Interface and generates the set of Native Mobile Application Clients 9-10, the set of Native Non-Mobile Application Client 9-11, the Non-Native Mobile Application Clients 10-5, and the Non-Native Non-Mobile and Cloud Application Clients 10-4 for all the Client Device on which the Applicatio Client is desired to run on.
  • FIG. 10 also shows that the Automatic Client Generation process, which is part of the method and apparatus depicted in FIG. 9, first automatically generates a Reference Application Client 10-2.
  • the Reference Application Client 10-2 is an Application Client whose executable is compiled to ru on a Reference Client Device and whose User Interface is adapted to the characteristics in terms of operating system, hardware, and look and feel of the Reference Client Device.
  • the Reference Client Device may be one of the Client Devices that the Application Client is desired to ran on.
  • the Client Translator and Generator 10-3 translates the executable and User interface and generates the set of Native Mobile Application Clients 9-10, the set of Native Non-Mobile Application Client 9-1.1, the Non- Native Mobile Application Clients 10-5, and the Non-Native Non-Mobile and Cloud Application Clients 1.0-4 for all the Client Device on which the Application Client is desired to run on.
  • Fig. 11 A and FIG. I1B provide details of the ' User Interface Translator 11-2, which is part of the Client Translator and Generator 10-3.
  • FIG. MA the User Interface Translator J 1-2, translates a Reference Client Device User Interface 11.-1 into a User Interface for Client Device 1 11-8.
  • the Reference Client Device User interface 11-1 is the User interface designed to ran on the Reference Client Device.
  • the User Interface for Client Device 1 11-8 is a User Interface adapted to the characteristics of a first Client Device 1 in the plurality of Client Devices of different types which the Application Client is desired to run on.
  • the User Interface Translator 11 -2 uses the characteristics of Reference Client Device Screen 11-10 in terms of resolution, aspect, ratio, and size, the "Look and Feel" Reference Client Device I 11-3, the characteristics of Client Device 1 Screen 1 11-4 in terms of resolution, aspect ratio, and size, and the "Look and Feel” Client Device I 1 -5 in order to perform the translation.
  • 11B depicts the same process to iransiate the Reference Client Device User Interface 11-1 and generate a Use Interface for Client Device 2 11-9, the User Interface for Client Device 2 11-9 being a user interface adapted to the characteristics of a second Client Device 2 in the plurality of Client Devices of different types which the Application Client is desired to run on, the Client Device 2 having different characteristics than Client Device i .
  • the User Interface Translator uses the characteristics of Client Device 2 Screen 2 11-6 and the "Look and Feel" Client Device 2 11-7 to perform the translation.
  • the User Interface Translator 11-2 uses a similar process to translate the Reference Client Device User Interface 11-1 and generate a User Interface adapted to the characteristics of each Client Device in the plurality of Client Devices which the Application Client is desired to run on.
  • the User Interface Translator lt-2 uses the characteristics of Reference Client Device Screen 11-10 in terms of resolution, aspect ratio, and size, the "Look and Feel" Reference Client Device 1 ⁇ .. ⁇ .-3, the characteristics of Client Device I Screen I 11-6 in terms of resolution, aspect ratio, and size, and the "Look and Feel” Client. Device 1 11-7 in order to perform the translation.
  • FIG. 12 shows the structure of an Application Client 12-1, including a Native and a Non- Native Application Client.
  • the Application Client 12-1 comprises a plurality of Pages comprising Page i 12-2 to Page N 12-4. Each Page in the plurality of Pages 12-2 to 12-4 inc ludes a Page User Interface .12-6 to 12-8.
  • the Application Client User Interface 12-5 consists of the Page User
  • FIG. 13 shows the structure of a Page User interface 13-1 In the plurality of Page User Interfaces comprised in the Application Client 1.2-1.
  • the Page User Interface has a size defined by the Page Height 13-2 and Page Width 13-3. It is understood that the Page Height 13-2 and Page Width 13-3 may differ from the Screen Height 13-10 and Screen Width 13-11 which define the size of the actual physical Client Device Screen 13-9 because the "Usable Area" of the Client Device Screen 13-9, which corresponds to the Page User Interface Size, may be smaller than the physical screen area.
  • an area at the very top of the physical Client Device Screen is typically not usable by the Application Client User Interface, since it displays the battery and connectivity indicators of the Client Device, if the Usable Area of the Client Device is smaller than the physical screen area, a simple adjustment of the Screen Height and Screen Width must be made in order to derive the Page Height and Page Width.
  • Screen Height/' "Screen Width” and screen size to refer to the height, width, and size of the Usable Area as well as the actual physical area of the screen.
  • the Page User Interface 1.3-1 comprises a Top Navigation Area 13-7 of height Top Navigation Height 13-4, a Bottom Navigation Area 13-8 of height Bottom Navigation Height 1.3-5 and a Body Area 13-10 of size determined by Body Width 13-9 and Body Height 13-6.
  • the Top Navigation Area 13-7 ma not be present, in which case the Body Area starts at the top of the Page User interlace.
  • the Bottom Navigatio Area 1.3-8 may not be present, in which case the Body Area ends at the bottom of the Page User Interface.
  • FIG. 1 shows the elements that may be displayed in a Body Area 13-10 of a Page User Interface 13-1.
  • the Page User Interface 13-1 displays a plurality of Objects.
  • Objects can be of different types, A plurality of Objects of each type can be displayed in the Body Area 13-10.
  • Objects include an Object Position and an Object Format.
  • the types of Objects include the following.
  • a Content Object Picture 14-1 which contains a Picture, and includes a size defined by a Content Object Width 14-12 and a Content Object Height 14-11, an Object Position 14-17 defined by a X-Coordinate 14-18 and Y-Coordinate 14-19 of the top left corner of the object and a Picture Format 14-6.
  • a Content Object Video 14-2 which contains a Video, and includes a size defined by a Content Object Width 14-1.2 and a Content Object Height 14-1.1, an Object Position 14-17 defined by a X-Coordinate 14-18 and Y -Coordinate 1 -19 of the top left comer of the object, and a. Video Format 14-7.
  • a Content Object Text .14-3 which contains a text box, which contains text, and includes a size defined by a Content Object Width 14-12 and a Content Object Height 14-11, an Object Position 14-17 defined by a X-Coordinate 14-18 and Y-Coordmate 14-19 of the top left corner of the object and a Text Format 14-8.
  • a Shape Object 14-4 which contains a Shape, and includes a size defined by a Shape Object Width 14-14 and a Shape Object Height 14-1.3, an Object Position 14-17 defined by a X -Coordinate 14-18 and Y -Coordinate 14-19 of the top left corner of the object, and a Shape Format 1 -9.
  • a Navigation Object 14-5 which contains a Button, or a Tab, or another Navigation Element and includes a size defined by a Navigation Object Width .14-16 and a Navigatio Object Height 14-15, an Object Position 14-17 defined by a X-Coordinate 14-18 and Y-Coo.rdi.nate -19 of the top left corner of the object, and a Navigation Object Format 14-10.
  • the Text Format 14-8 may include a Font, a Font Size, a Font Color, an Alignment, a Font Style, a Truncation, a Spacing between Words, and a Spacing between Letters.
  • the Top Navigation Area 13-7 and the Botton Navigation Area 13-8 are also illustrated.
  • FIG. I SA shows the Translation Grid 15-11 applied to the Body Area 13-10 of a Page User Interface 1.3-1.
  • the Translation Grid 15-11 is used by the User Interface Translator 11-2 to perform the translation of the Reference Client Device ' User Interface 11-1 and generate the User Interface for all Client Devices which the Application Client is desired to run on.
  • the Translation Grid 15-11 is defined by a Translation Grid Pitch that is defined by a Translation Grid Pitch Width 15-10 and a Translation Grid Pitch Height 15-9.
  • the Translation Grid 15-11 consists of a plurality of Translation Grid Node i, j 15-6, numbered sequentially according to their position on the X axis and Y axis of the Body Area 13-10.
  • the Translation Grid Node 1 , 1 15-2 defines the top left corner of the Translation Grid 15-11 and coincides with the top left corner of the Body Area 13-10
  • the Translation Grid ode 0,m 15-5 defines the top right comer of the Translation Grid 15-1 and coincides with the top right corner of the Body Area 13-10
  • the Translation Grid Node n,0 15-3 defines the bottom left corner of the Translation Grid .15-11 and coincides with the bottom left corner of the Body Area 13-10
  • Translation Grid Node n.ni 15-4 defines the bottom right corner of the Translation Grid 15-1.1 and coincides with the bottom right corner of the Body Area 13-10.
  • FIG. 158 shows the Reference Translation Grid 1.5-12, which is the Translation Grid applied to a Reference Client Page User interface 15-1,. which is comprised in the Reference Client
  • the Reterence Translation Grid 1.5-12 is used by the User interface Translator 11-2.
  • the Reference Translation Grid 1 -12 is defined by the Translation Grid Pitch Reference Client, which consists of the Translation Grid Pitch Height Reference Client 15-13 and the Translation Grid Pitch Width Reference Client .15-14.
  • the Translation Grid Pitch Height Reference Client 15-13 and the Translation Grid Pitch Reference Client 15-14 are defined based on the resolution and screen size of the Reference Client Device. The finer the Translation Grid Pitch Reference Client, the larger the number of Translation Grid Nodes in the Reference Translation Grid and the more accurate the translation process performed by the User Interface Translator 11.-2, but the higher the computation complexity of the User Interface Translator .11-2.
  • the remaining identifier numerics correspond to those described in FIG. ISA.
  • FIG. 16 illustrates all the translation data that needs to be prepared in order for the User Interface Translator 11-2 to perform the translation of the Reference Client Device User Interlace 11-1 and generate the User interface for all Client Devices which the Application Client is desired to run on.
  • the translation data illustrated in FIG. 16 needs to be prepared for the Reference Client Device and for each Client Device in the pkraliiy of Client Devices of different types that the Application Client is desire to run on.
  • the translation data illustrated in FIG. 1.6 depends only on the characteristics of each Client Device in terras of operating system, hardware, and look and feel . Thus, once the translation data is computed for a Client Device, it is used by the User Interface Translator .11-2 to translate any Reference User Interface to that Clieni Device.
  • the Reference Client Device Translation Data 16-1 includes the following.
  • a Reference Scree Size 16-3 which consists of the Screen Height, Screen Width, and aspect ratio of the screen of the Reference Client Device. If the Usable Area of screen of the Reference Client Device is smaller than the actual area of the physical screen of the Reference Client Device, an adjustment is made to reflect the area of the Usable Area.
  • a Reference Screen Resolution 16-4 which is the resolution of the screen of the Reference Client Device.
  • a Reference Text Formatting Rules 16-5 which includes a list of supported fonts and font sizes, a list of the dimensions of the areas occupied by letters of different fonts and font sizes, a list of spacing rules between letters and between words for different fonts and font sizes, a list of rules for font styles, and other formatting .rules.
  • a Reference Object Formatting Translation Rules 16-6 which includes a list of cropping rules, border rules, and spacing rules for pictures, videos, and shapes, a list of object effect rules that includes recommended ways to display shadows, transparencies, 3-D effects, etc., a list of outline rules that includes recommended widths and effects of outlines, and other formatting rules.
  • a Reference Top Navigation Translation Rules 16-7 which defines the dimensions of the top navigation area, and any other rule that applies to the top navigation area, if present.
  • a Reference Bottom Navigation Translation Rules 16-8 which defines the dimensions of the bottom navigation area, and any other rule that applies to the top navigation area, if present.
  • a Reference Look and Feel Translation Rules 16-9 which defines the Look and Feel guidelines of the Reference Client Device.
  • the Client Device I Translation Data 16-1 a contains the translation, data for a first Client
  • the Client Device 1 Translation Data 16-1 a includes the following, A Client I Translation Grid 16-16 which is the Translation Grid applied to Client Device 1. This grid has the same number of rows of Translation Grid Nodes as the Reference Translation Grid and the same number of Translation Grid Nodes as the Reference Translation Grid. The ratio of the Translation Grid Pitch Height of the Client I Translation Grid 16-10 and the Reference ' Translation Grid 15-12 depends on the relative height, width, resolution, and pixel dimension of the screen of the Reference Client Device and of Client Device 1.
  • a Client 1 Screen Size ⁇ 16-11 which consists of the Screen Height, Screen Width, and aspect ratio of the screen of Client Device I , If the Usable Area of screen of Client Device I is smaller than the actual area of the physical screen of the Client Device 1, an adjustment is made to reflect the area of the Usable Area.
  • a Client I Screen Resolution 16-12 which is the resoi otion of the screen of the Client Device 1.
  • a Client 1 Text Formatting Translation Rules 16-13 which includes a list of fonts and font sizes supported in Client Device I , a list of the dimensions of the areas occupied by letters of different fonts and font sizes in Client Device 1 , a list of spacing rules between letters and between words for different fonts and font sizes in Client Device 1 5 a list of rales lor font styles in Client Device 1 , and other formatting rules in Client Device 1.
  • the Client 1 Text Formatting Translation Rides 16-13 also includes a list of font substitution rules for fonts that are supported in the Reference Client Device but are not supported in Client Device I .
  • a Client 1 Object Formatting Translation Utiles 16-14 which includes a list of cropping rules, border rides, and spacing rules for pictures, videos, and shapes in Client Device 1, a list of object effect rules that includes recommended ways to display shadows, transparencies, 3-D effects, etc, in Client Device L a list of outline rules that includes recommended widths and effects of outlines, and other formatting rules in Client Device 1.
  • a Client 1 Top Navigation Translation Rules 16-15 which defines the dimensions of the top navigation area in Client Device I, and any other rule that applies to the top navigation area, if present.
  • a Client 1 Bottom Navigatio Translation Rules 16-16 which defines the dimensions of the bottom navigation area in Client Device I , and any other rule that applies to the top navigation area, if present.
  • a Client I Look and Feel Translation Rules 16-17 which defines the Look and Feel guidelines of Client Device 1.
  • the Client 1 Look and Feel Translatio Rules 16-17 must include a Look and Feel Translation Rule for Client Device 1 for each Look and feel Translation Rule included in the Reference Look and Feel Translation Rules 16-9.
  • Client Device Translation Data is prepared in a similar fashion for all the Client Devices in the plurality of Client Devices which the Application Clien is desired to run on ,
  • FIG. 17 illustrates at a high level the method used by the User Interface Translator 11-2 to perform the translatio of each Reference Client Page User .
  • Interface 15-11 comprised in the Reference Client Device User Interface 1-1 and generate the User Interface for all Client Devices which the Application Client is desired to run on.
  • Each Reference Client Page User Interface 15-11 comprised in the Reference Client Device User Interface 11-1 is individually translated.
  • Each Object i the plurality of Objects is associated with the Translation Grid Node closest to the top left corner of the Object in the Reference Translation Grid 15-12.
  • Object 2 17-4 is associated with Translation Grid Node 2,6 17-7.
  • the Object Origin Distance can be computed for each object along the X and Y axis.
  • the Object Origin Distance along the X axis is the distance of the top left corner of the Object from the associated Translation Grid Node, computed along the X axis, as a percentage of the Translation Grid Pitch Width Reference Client 15-14.
  • the Object Origin Distance along the Y axis is the distance of the top left corner of the Object from the associated Translatioo Grid Node, computed along the Y axis, as a percentage of the Translation Grid Pitch Height Reference Client 15-13.
  • the Reference Fill Score 17-8 for the Reference Client Page User Interface is computed as the percentage of the Reference Translation Grid which is not covered, by any Object, except for the Body Area Background.
  • the Object 3 1 7-2, Object 3 17-3,. Object 5 17-6 are also placed and also illustrated
  • the top left comer of each Object that is displayed in the Reference Client Page User Interface 15-11 is placed on the Client 1 Translation Grid 16-10, on the Translation Grid Node corresponding to the Translation Grid Node associated with the top left corner of the Object in the Reference Translation Grid 15-12.
  • the position of the top left corner of the Object in the Client 1 Translation Grid 16-10 can be adjusted using the Object Origin Distance, using the same percentages computed in the Reference Translation Grid 15-12.
  • the size of the Objeci is scaled proportionally based on the ratio of the Reference Screen Size 16-3 and Client 1 Screen Size 16-11,
  • the Objects are then adjusted using Client 1 Object Formatting Translation Rules 16-14, Client 1 Text Formatting Translation Rules 16-13 and Client 1 Look and Feel. Translation Rules 16-17.
  • FIG. 18 shows the details of the process used by the User Interface Translator 11-2 to perform the translation of each Reference Client Page User Interface 15-11 comprised in the Reference Client Device User Interface 11-1 and generate the corresponding Page User Interface 13-1 for a first Client Device 1 1-2 in the plurality of Client Devices which the Appi.icat.ion Client is desired to run on.
  • "Place Top Navigation Area” 18-1 generates the Top Navigation Area 13-7 (if present) for the corresponding Page User Interface 13-1 for Client Device .1 1-2
  • the result of "Top Navigatio Translation Rules OK?" 18-2 is "YES”
  • the "Place Bottom Navigation Area” 18-3 is executed, otherwise adjustments are made to the generated Top Navigation Area 13-7 until the Client 1 Top Navigation Translation Rules 16-15 are satisfied.
  • the "Look and Feel Translation Rules OK?” 18-5 checks that the Client 1 Look and Feel Translation Rules 16-17 are satisfied. If they are, the process moves to the "Convert Object Sizes and Resolution” 1.8-6, otherwise adjustments are made until the Client 1 Look and Feel Translation Rides 16-17 are satisfied.
  • the "Convert Object Sizes and Resolution” 8-6 scales the size of the Object proportionally based on the ratio of the Reference Screen Size 16-3 and Client I Screen Size 16-11.
  • the "Place Objects on Translation Grid” 18-7 places the Objects on the Client 1 Translatio Grid 16-10, For each Object, the top left corner is placed on the Client 1 Translation Grid .16-10, on the Translation Grid Node corresponding to the Translation Grid Node associated with the top left corner of the Object in the Reference Translation Grid 15-12. In order to improve accuracy, the position of the top left corner of the Object i the Client 1 Translation Grid 1.6-10 can be adjusted using the Object Origin Distance, using the same percentages computed in the Reference Translation Grid .15-12.
  • the "Adjust Objects on Translation Grid” 18-8 then adjusts the Objects by tweaking their sixes to minimize distortion. The Objects are then adjusted using ⁇ " Merit 1 Object Formatting Translation Rules 16-14, Client I Text Formatting Translation Rules 1.6-13 and Client I Look and Feei Translation Rules 16-17.
  • the "Compute Fill Score "" 18-9 computes the Client ' 1 Fill Score as the percentage of the Reference Translation Grid which is not covered by any Object, except for the Body Area Background.
  • the "Compute Translation Ratio” .18-10 computes the Translation Ratio for the Page User Interface 13-1 as the ratio between the Client 1 Fill Score and the Reierence Fill Score 17-8.
  • the computed Translation Ratio for the Page User Interface 3-1 is compared with a pre-conflgored Translation Threshold 17-9 in "Is Translation Ratio ⁇ ⁇ Translation Threshold?" 18-11. If the computed Translation Ratio for the Page User Interface 13-1 is smaller or equal than the Translation Threshold 17-9, the "Translation Completed, Optima!
  • the Translation Threshold is configured empirically. A Translation Ratio equal to I is an indication of a "perfect translation, 5 ' since the Objects in the Client 1 Page User Interface maintain the same relative sizes and positions of the Objects in the corresponding Reference Client Page User interface 15-11. However, because of the wide variations in the characteristics of different Client Devices, a "perfect translation” is not always possible.
  • the Translation Threshold is typically configured to a value above L to allow for some tolerance in the translation process,
  • Adjustments are made in the Objects and in their placement in an attempt to improve the translation result. Adjustments are introduced by executing "Apply Text Formatting Translation Rules" 18-15, “Apply Object Formatting Translation Rules” 18-16 and “Compute Mew Object Sizes aid Positions” 18-17, and then repeating "Place Objects on Translation Grid” 1 -7 and the rest of the process. Examples of adjustments thai can be made include the following. Tweaks in the size and position of the Objects, according to the Client i Object Formatting Translation Rules 16-14 and the relationships between Objects, such relationships including maintain alignment and relative sizes of Objects. Changes in the Fonts, Font Sizes, Spacing between Words, Spacing between Letters, etc., according to the Client 1 Text Formatting Translation Rules.
  • a network and a portable system can exchange information wirelessly by using communication techniques such as Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Code Division Multiple Access (CDMA), Orthogonal Frequency Division Multiplexing (OFDM), Ultra Wide Band (UWB), Wi-Fi, WiGig, Bluetooth, etc.
  • the network can comprise the phone network, IP (Internet protocol) network, Local Area. Network; (LAN), ad hoc networks, local routers and even other portable systems.
  • IP Internet protocol
  • LAN Local Area. Network
  • Non- Mobil 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.”

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 system solution offers a Business Entity an automatically generated set of User Interfaces to run on a plurality of Client Devices of different characteristics in terms of operating system, hardware, and look and feel, and yet provide the same user experience. A User Interface that offers a user experience on a Reference Client Device is automatically translated to offer the same user experience on a plurality of Client Device having different characteristics from the Reference Client Device. The objects displayed in the User Interface for the Reference Client Device are placed on a Translation Grid that is generated and superimposed on the User Interface. A Client Translator and Generator translates the User Interface from the Reference Client to the plurality of Client Devices using the Translation Grid and a set of Translation Rules. Measurement of the automatic translation process identifies optimal and sub-optimal translation for each Client Device.

Description

User interface and Content Translation System
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present appiication is related to the co-filed U.S. applications Ser. No, 13/833,589 entitled '''Apparatus for Single Workflow for Multi-Platform Mobile Application Creation and Deliver) " , Ser. No. 13/833,669 entitled Method for Single Workflow for Multi-Platform Mobile Application Creation and Delivery", Ser. No. 13/833,775 entitled "Dynamic User Interface Delivery System", and Ser. No. 13/834,765 entitled "'Hierarchical Application Client System", all filed on March 15, 2013, whic are assigned to the same assignee as the present application and invented by the same inventors as the present application and incorporated herein by reference in its entirety,
BACKGROUND OF THE INVENTION
[0002] The internet is a communication system that interconnects the world. The internet has been structured to provide connectivity to billions of users with laptops, notebooks, desktops, internet Enabled TV sets, cellular phones, smartphones like the iPhone™, Android' M and Blackberry m 5 wearable devices, and tablets. The internet 1-3 connects a Client Device 1.-2 to a server 1-4 and the sen-'er to the same Client Device as illustrated in 1-1 of FIG. 1A or to another Client Device (not illustrated). The Client Device 1-2 can have at least one display screen 1-8 that can be a touch sensitive screen, pen based or both. The screen can display various icons or be attached to a physical keypad 1-9. As illustrated in 1-1 , the Client Devices are physical and can be either mobile, such as cellular phones, smartphones, wearable devices, and tablets, or non-mobile, such as laptops, desktops, and TV sets. The Client Devices 1-2 are coupled to the internet by wired (a physical interconnect), wirelessly (waves through space), or both wired /wireless networks. The wireless connectivity can be cellular (3G, 4G, etc.), Wi-Fi, Bluetooth. WiMax, etc. The Client Device 1-2 runs the Applicatio Client which is the actual appiication software running on device.
[0003] FIG. 1 also shows an appiication store connected to the Internet. The application store makes application clients available for download to the Client Devices. There is a plurality of application stores, each of the application stores dedicated to make available for download Application Clients for a certain type of Client Device or Client Device operating system. For example, the Apple' application store makes Application Clients for the tPhone1M and iPadm available for download, the Android*** application store makes Application Clients for smartphones and tablets running the Android m operating system available for download, etc There are application stores dedicated to support mobile Client Devices (for example, the iPhoneiM iPadm Apple1* application store, the Blackberry1** application store, etc,},, and application stores dedicated to support non-mobile Client Devices (for example, the Mac1 " Apple iM application store, which makes applications for Apple™ computers running the Mac 01,1 operating system available for download).
[0004] The Cloud uses the network of the internet to offer services to users by using a combination of hardware and software embedded in the network. An Application Client can be in the Cloud, but in this case the Client Device is a "virtual" Client Device. The * Virtual" Client Device has a way to provide access to the Application Client running i the cloud via a physical Client Device. For example, as in the example listed in 1-5 of FIG. IB, a web browser 1-6 running on the physical Client Device 1-2 and coupled to the client server 1-7 in the Cloud via the Internet accesses the Application Client running in the Cloud, which performs the actual application software. For the Cloud, there are two cases: the entire Application Client runs in the Cloud, or a small portion of the Application Client runs on a physical Client Device while most of the logic runs in the Cloud.
[0005] FIG. 2A illustrates a system 2-1 with the hardware 2-16 and software 2-15 of a Client Device 1-2. The Client Device 1-2 is coupled to the internet 1-3 via wireline connection or Radio Frequency ( F) wireless transmission network (wired/wireless) 2-2 and further coupled to a bank of servers 2-4 via second interconnection 2-3 that can be wired or wireless. The communication Sink is a receiver and a transmitter known as a transceiver and is coupled to either a wired connector or an antenna (not illustrated) for the wireline connection or RF wireless transmission network, respectively, in general, these links: wired, wireless, cellular, internet, etc are called the Communication network. The Communication network couples all components together. The server's bank 2-4 comprises server-0 2- 1 to server-N 2- 2. The bank contains at least one server and these servers can be localized, coupled by an intranet, or be physically separated from one another, coupled by the internet. The operating system (OS) 2-13 running in the Client Device is closely coupled with the hardware 2-16, especially in case of Mobile Client Devices 1-2. The hardware 2-16 comprises at least one processor 2-5 operating under the operating system 2-13. The processor 2-5 is coupled to at least one memory 2-7 and at least one communication link 2-9 via at least one bus 2-8. At least one communication link 2-9 couples the Client Devic to the outside world through a wired and/or wireless interconnection via the transceiver. The Client Device offers the user at least one mode of input and one mode of output. One mode of i nput to the Client Device 1-2 is via the touch based keypad 2-6 or through voice control (not illustrated). The screen 2-10 can be a touch sensitive screen and provide a second mode of input. The screen 2-10 can provide an output response or sound can provide a second mode of output known as voice output (not illustrated). Other hardware components such as MEMS, power supplies, etc, are not mentioned but as well-known by those skilled in the art. A set of applications or Application Clients 2-14 run on the Client Device are coupled to the operating system 2-13. The Client Device is one of a plurality of Client Devices coupled to the I nternet. An Application Store .1-10 connected 2-21 to the I nternet.
[0006] FIG. 2B illustrates that when the term server 2-20 is used, this server is a sub-set representation of a Computer hardware 2-17, which can contain software 2-18, a database 2-19 and the server 2-20 itself. Other components not illustrated are the memory, power supply, etc. One skilled in the art is knowledgeable of other components contained in this device and will not be described further. All servers used in this specification are substantially the same as the server 2-20. Furthermore, a plurality of servers and a plurality of databases can be embedded in the Computer hardware 2-Ϊ 7.
[0007] The term "Client Device" encompasses the device being mobile, non-mobile, or located in the Cloud. However, in some cases, for further distinction within this document the term "Mobile Client Device"" will be used for mobile devices, "Non-Mobile Client Device" will be used for non- mobile devices and "Cloud Client Device" will be used for the device formed in the Cloud.
[0008] FIG. 3 A and FIG. 3B present two different types of Application Clients. This distinction is especial ly relevant in the case of mobile Client Devices, but is also applicable to non-mobile Client Devices. FIG. 3A shows a Native Application Client 3-1 and how it relates to the layered stacks of the hardware/software representation of a Client Device 1-2. The Native Application. Client 3-1 includes a User interface 3-5 and a Client Functionality 3-2. The User Interface 3-5 provides at least one mode of input and one mode of output to the end user and is the means with which the end user interacts with the Native Application Client 3-1. The Native Application Client 3-1 is an executable which runs directly on the operating system 2-13 of the Client Device 1-2, which in turn runs on the hardware 2-16 of the Client Device. The operating system 2-13 provides a set of system libraries 3- 3, which the Native Application Client uses. The Native Application Client is compiled to run on the operating system of the Client Device. The Native Application Client needs to be downloaded to the Client Device and installed o the Client Device in order to ru on the Client Device. The User Interface 3-5 depends on the operating system 2-13 and on the hardware 2-16, and in particular on the screen 2-10.
[0009] FIG. 3B shows a Non-Native Application Client and how it relates to the layered stacks of the hardware/software representation of a Client Device. The 'Non-Native Application Client. 3-1 b includes a User interface 3-5h and a Client Functionality 3-2lt. The User interface 3-5h provides at least one mode of input and one mode of output to the end user and is the means with which the end user interacts with the Non-Native Application Client 3-1 h. The Non-Native Application Client 3- Ih does not run directly on the operating system 2~13h of the Client Device, but instead uses a web browser 3-5 installed on the Client Device in order to ran. The Non-Native Application Client 3-1 b is written in a programming language that is understood, by the web browser running on the Client Device, The most common example of such a language is HTML5. The web browser running on the Client Device contains a parser 3-4 that is used to interpret the code of the Non-Native Application Client 3-1 b. The Non-Native Application Client 3-1. h does not depend on the Client Device l~2a since it does not run directly on the operating system 2-Οϊι but instead uses the web browser 3-3 running on the Client Device l-2a. The Non-Native Application Client 3-1 h can run on anv Client Device l -2a that runs a web browser 3-5 capable of understanding tire lanauaae which the Non-Native Application Client is written in. The web browser 3-5 may depend on the Client Device l-2a, but the Non-Native Application client does not depend on the Client Device. The User Interface 3-Sh depends on the operating system 2-13h and on the hardware 2-16h, and in particular on the screen 2-Mlh [0010] The terra "Application Client"" refers to the portion of the application running on the Client Device. The term "Application Client" encompasses the Application Client running on a mobile Client Device, a non-mobile Client Device or even in the Cloud. The Cloud can run a portion of the Application Client in the server while the remaining portion of the Application Client can run on the Client Device, simultaneously. The term "Application Client" is used to refer io both Native and Non-Native Application Client. The term "Mobile Application Client" will be used for both Native and Non-Native Application Clients running on a mobile Client Device, but it also applies to Client Devices that are non-mobile or in the Cloud.
[001 1] An approval and download process in the Application Store is illustrated in FIG. 4. A Business Entity 4-1 creates a new application which comprises a new Native Application Client 3-1. The new Native Application Client 3-1 is submitted 4-3 to the Application Store 1-10 for an approval process 4-4. Once the new Native Application Client is accepted 4-5, information is passed to the Application Store 1-10 to make the new Native Application Client available for download and install 4-6 into a Client Device 1-2. A Client Device 1-2 which desires the Native Applicaticm Client 3-1 downloads the Nativ Application Cliem from the corresponding application store 1-10. For example, an iPhoneiM downloads its desired Native Application Client from the Apple1** application store, an AndroidiM device downloads its desired Native Application Client from the Android1 M application store, etc. Once the Native Application Client is downloaded to the Client Device, it is installed on the Client Device so it can run on the operating system of the Client Device. The client now contains a "native" application coupled to the operating system 2-13 (see FIG. 2A) of the Client Device, The Native Mobile Application Client executable depends on the operating system (OS) as an iPhone would require a different executable than an. Android i:M phone.
BRIEF SUMMARY OF THE INVENTION
[0012] it is a first objective of the invention to provide a system solution that offers the Business Entity a way to automatically generate a set of User Interfaces to ran on a plurality of Client Devices of different types in terms of operating system, hardware, and look and feel. A first User Interface in the set of generated User Interfaces is adapted t the characteristics of a first Client Device in the plurality of Client Devices. The first generated User Interface offers the end user on the first Client Device the same user experience as the user experience that a second generated User Interface in the set of generated User Interface, which is adapted to the characteristics of a second Client Device in the plurality of Client Devices, offers the end user on the second. Client Device, Using these inventive ideas, the Business Entity automatically generates a plurality of User Interfaces that offer the same user experience in a plurality of Client Devices of different characteristics in terms of operating system, hardware, and look and feel
[0013] It is a second objective of the invention to provide a a way to quantify that, a first User Interface offers the same user experience on a first Client Device as a second User Interface offers on a second Client Device of different characteristics in terms of operating system, hardware, and look and feel
[0014] A preferred embodiment of the invention is a method to automatically translate a User
Interface designed to offer a user experience on a Reference Client Device into a User Interface designed to offer the same user experience on a first Client Device the first Client Device having different characteristics from the Reference Client Device in terms of operating system, hardware, and look and feel
[0015] In this preferred embodiment of the invention, the objects displayed in the User Interface for the Reference Client Device are classified as Content Objects, Shape Objects, and Navigation Object. A Reference Translation Grid is generated and superimposed on the User Interface of the Reference Client Device. The objects displayed in the User Interface for the Reference Client Device are placed in relation to the Reference Translation Grid. Reference Text Formatting Translation Rules, Reference Object Formatting Translation Rules, Reference Top Navigation Translation Rules, Reference Bottom Navigation Translation Rules, and Reference Look and Feel Translation Rules are defined. Correspondin Client Translation Grid, Client Text Formatting Translation Rules, Client Object Formatting Translation Rules, Client Top Navigation Translatio Rules, Client Bottom Navigation Translation Rules, and Client Look and Feel Translation Rules are defined for each Client Device in the plurality of Clien t Devices of different characteristics in terms of operating system, hardware, and look and feel. [00.16] In this preferred embodiment of the invention, a User Interface for a first Client Device in the plurality of different characteristics in terms of operating system, hardware, and look and feel is generated by scaling the objects according to the relative screen sizes and. resolution of the Reference Client Device and first Client Device, placing the. objects on the Client Translation Grid in the grid position corresponding to the object placed in the Reference Translation Grid, and applying the Client Text Formatting Translation Rules, Client Object Formatting Translation Rules, Client Top Navigation Translation Rules, Client Bottom Navigation Translation Rules, and Client Look and Feel Translation Rules.
[0017] Another preferred embodiment of the invention includes computing a Reference Fill Score for the User Interface for the Reference Client Device, a Client Fill Score for the generated User Interface for the first Client Device, and a Translation Ratio. The Translation Ratio is compared with a Translation Threshold to determine that the generated User Interface for the .first Client Device offers the end user on the first Client Device the same user experience that the User Interface for the Reference Client Device offers the end user on the Reference Client Device.
[0018] Another preferred embodiment of the invention includes a method, to adjust the generated User Interface for the first Client Device if, by comparing the computed Translation Ratio with a Translation Threshold, it is determined that the generated User Interface for the first Client Device does not offer the end user on the first Client Device the same user experience that, the User Interface for the Reference Client Device offers the end user on the Reference Client Device. The adjustment of the generated User Interface for the first Client Device makes the user experience offered to the end user on the first Client Device more similar to the user experience offered to the end user on the Reference Client Device,
[0019] This preferred embodiment of the invention includes a method to determine that a generated User Interface for the .first Client Device, which does not offer the end user on. the first Client. Device the same user experience that the User interface for the Reference Client Device offers the end user on the Reference Client Device, cannot be further automatically adjusted in order to make the user experience offered to the end user on the first Client Device more similar to the user experience offered to the end user on the Reference Client Device.
[0020] Another preferred embodiment of the preferred invention includes the apparatus comprising Computing devices with dedicated servers running the System Solution that takes as input a User Interface designed for a Reference Client Device and automatically generates a plurality of User Interfaces designed to run on a plurality of Client Devices of different types in terras of their operating system, hardware, and look and feel characteristics,
[0021] in another preferred embodiment of the invention, the System Solution includes the apparatus comprising Computing devices with dedicated servers which determine whether a generated User Interface for a first Client Device offers the end user the same user experience of a User interface for a Reference Client Device of different characteristics, if the a generated User Interface for a first Client Device does not offer the end user the same user experience as a User Interface for a Reference Client Device, the apparatus identifies which portions of the User interface for the first Client Device do not offer the end user the same user experience as a User interface for a Reference Client Device.
[0022] in accordance with another preferred embodiment of the invention, a System Apparatus comprising a Reference Client Device with a Reference Application Client with an first Operating system and a first screen of a first aspect ratio and a first scree resolution, a plurality of Objects displayed on a User Interface of the Reference Client Device, a Client Translator and Generator receives the User interface of the Reference Application Client and automatically generates and translates a plurality of User interfaces of Application Clients other than the Reference Application Client for a plurality of Client Devices, each Application Client with one of a plurality of Operating Systems and a correspondin one of a plurality of different screens with a different aspect ratio and a different screen resolution, and the plurality of the User Interfaces of the Application Client display the plurality of Objects on the plurality of different screens. The System Apparatus further comprising an Automatic Application Client Generator receives data from a Client Data Model and generates a Reference Application Client including the User Interface of the Reference Client Device. The System Apparatus further comprising a set of Native Mobile Application Clients, a set of Native Norn-Mobile Application Clients, Non-Native Non-Mobile Application Clients, Non- Native Non-Mobile Cloud Application Clients, and Non-Native Mobile Application Clients in the plurality of Application Clients. The System Apparatus further comprising a User interface Translator in the Client Translator and Generator that combines the User Interface of the Reference Client Device with the plurality of Client Devices to generate a plurality of User Interfaces that feature the plurality of Objects of the Reference Client Device for each of the plurality of Client Devices. The System Apparatus further comprising the Reference Client Device providing a reference parameters to translate the reference parameters into the parameters used in the piurality of Client devices. The System Apparatus further comprising the User interface of the Reference Application Client with a plurality of pages. The System Apparatus further comprising a page with a Body Area with a Top Navigation Area and/or a Bottom Navigation Area displaying the plurality of Objects, the System Apparatus further comprising a Translation Grid that partitions the Body Area on the Reference Client Device and each Client Device in the plurality of Client Devices into Translation Grid Nodes, Translation Grid Height and. Translation Grid width parameters, and a set of transiatioo rules for the Reference Client Device and each Client Device in the piurality of Client Devices, and the System Apparatus wherein the translation grid is used to place the piurality of Objects on the Body Area of each Client Device in the piurality of Client Device. The System Apparatus further comprising a Content Object Picture with a Picture Format, Content Object Video with a Video Format, a Context Object Text with a Text Format, a Shape Object with a Shape format, and a Navigation Object with a Navigation Object Format, forming the plurality of Objects,
[0023] In accordance with another preferred embodiment of the invention, a method of automatically generating an optimal translation comprising the steps of selecting each Client Device in a plurality of Client Devices, each Client Device with one of a plurality of Operating Systems and a corresponding one of a plurality of different screens each with a different aspect ratio and a different screen resolution, providing a Page with a Body Area, adjusting a Translation Grid to the Body Area of a selected Client Device, converting sizes and a resolution of each of a plurality of Objects, placing the plurality of Objects on the Translation. Grid of the selected Cli ent Device filling up a portion of the Translation Grid, computing a Fill Score of the selected Client Device of the filled portion of the Translation Grid area, computing a Translation Ratio as the ratio of the Fill Score of the selected Client Device and the Fill Score of a Reference Client Device, comparing if the computed Translation Ratio is less than or equal to a Translation Threshold, and generating the optimal translation automatically of a User interface of the Reference Client Device into a plurality of User interfaces of each Client Device in the plurality of Client Devices. The method farther comprising the steps of placing the Top Navigation Area and/or Bottom Navigation Area at the Top and/or Bottom of the Body Area and in addition the method farther comprising the steps of checking if the Top and/or Bottom Navigation Rules are valid. The method farther comprising the steps of identifying the plurality of Objects from a list comprising Content Object Picture with a Picture Format Translation Rules, Content Object Video with a Video Format Translation Rules, a Context Object Text with a Text Format Translation Rules, a Shape Object with a Shape Format Translation Rules, and a Navigation Object with a Navigation Object Format Translation Rules. The method wherein a Translation Grid that partitions the Body Area into Translation Grid Nodes, Translation Grid Height and, Translation Grid width parameters and the translation grid is used to place the plurality of Objects on the Body Area of a plurality of different screens, simultaneously.
[0024] in accordance with another preferred embodiment of the invention, a method of identifying when a translation is suboptimal comprising the steps of selecting each Client Device in a plurality of Client Devices, each Client Device with one of a plurality of Operating Systems and a corresponding one of a plurality of different screens each with a different aspect ratio and a different screen resolution, providing a Page with a Body Area, adjusting a Translation Grid to the Bod Area of a selected Client Device, converting sizes and. a resolution of each of a plurality of Objects, (a) placing the plurality of Objects on the Translation Grid of the selected Client Device filling up a portion of the Translation Grid, (b) computing a Fill Score of the selected Client Device of the filled portion of the Translation Grid area, (c) computing a Translation Ratio as the ratio of the Fill Score of the selected Client Device and the Fill Score of a Reference Client Device, (d) comparing if the computed Translation Ratio is less than or equal to a Translation Threshold and identifying that the translation is optimal, and generating the optimal translation automatically of a User Interface of the Reference Client Device into a plurality of User interfaces of each Client Device in the plurality of Client Devices, otherwise, (e) determining if a maximum number of iterations have been reached then the translation is suboptimal and identify the suboptimal translation to a System Solution Expert, otherwise, applying Text Formatting Translation Rules to a Context Object Text from the plurality of Objects, applying Object Formatting Translation Rules to the remaining plurality of Objects, computing new Object Sizes, and repeating steps (a)---(e). The method farther comprising the steps of placing the Top Navigation Area and/or Bottom Navigation Area at the Top and/or Bottom of the Body Area , and in addition the method further comprising the steps of checking if the Top and/or Bottom Navigation Rules are valid. The method farther comprising the steps of identifying the remaining plurality of Objects from a list composing Content Object Picture wi th a Picture Format Translation Rules, Content Object Video with a Video Format Translation Rules, a Shape Object with a Shape Format Translation Rules, and a Navigation Object with a Navigation Object Format Translation Rules. The method wherein a Translation Grid that partitions the Body Area into Translation Grid Nodes, Translation Grid Height and, Translation Grid widt parameters and the translation grid is used to place the plurality of Objects on the Body Area of a plurality' of different screens, simultaneously.
BRIEF DESCRIPTION OF THE DRAWINGS
[0025] 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.
[0026] FIG. 1A depicts a Client Device coupled to a server and an Application Store and provides some examples of Client Devices.
[0027] FIG. IB depicts a Client Device coupled to a client/server.
[0028] FIG. 2A shows a Client Device wit a coupling to a bank of servers, an Applicatio Store, and the internal hardware/software structure of the Client Device. [0029] FIG. 2B depicts a more detailed description of a server being a subset of Computer hardware with software, a Database and the server,
[0030] FIG. 3A presents a Native Application Client and how it relates to the layered stacks of the hardware/software representatio of a Client Device.
[0031] FIG. 3B illustrates a Non-Native Application Client and how it relates to the layered stacks of the hardware/software representation of a Client Device.
[0032] FIG. 4 shows the flow of how a Native Application Client is approved and downloaded by an Application Store to a Client Device.
[0033] FIG. 5 depicts a Two-Layer Native Application Client in accordance with the present invention.
[0034] FIG. 6A shows a Two-Layer Applicatio Client being downloaded to a Client Device for the first time in accordance with the present invention.
[0035] FIG. 6B presents a Dynamic Layer a Two- Layer Appiicaiion Client being downloaded to a Client Device in accordance with the present invention.
[0036] FIG. 7 shows different Native Application Client Devices having different Operating Systems and different Hardware in accordance with the present invention.
[0037] FIG. 8 illustrates shows different Non-Native Application Client Devices having different Operating Systems and different Hardware in accordance with the present invention.
[0038] FIG. 9 depicts Applications and Application Clients being generated automatically in accordance with the present invention. [0039] FIG. 10 illustrates the flow to generate Application Clients from a Reference Application Client in accordance with the present invention.
[0040] FIG. II A shows the User interface Translation Process on a first Device in accordance with the present invention.
[0041 J FIG. J IB illustrates the User Interface Translation Process on a second Device in accordance with the present invention.
[0042] FIG. 12 depicts the structure of the Application Client in accordance with the present invention.
[0043] FIG. J 3 illustrates the structure of a Page in accordance with the presen invention,
[0044] FIG. 14 depicts a Page containing different Objects in accordance with the present invention.
[0045] FIG. 15. and 15B illustrates a Translation grid with Translation Grid Nodes, Height, and width in accordance with the present invention.
[0046] FIG. 16 depicts the process for preparing ail Clients for Translation in accordance with the present invention,
[0047] FIG. 17 shows the process of placing Objects on the Reference Translation Grid of a Reference Client Device in accordance with the present invention.
[0048] FIG. IS depicts a flow chart of an algorithm to determine optimal and sub-optimal Translation in accordance with the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0049] 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 the Business Entity with Application Clients adapted to the characteristics of all the Client Devices which the Business Entity desires the Applicatio Client to run on. The Application Clients provided by the System Solution comprise a plurality of Native Applicatio Clients that run on Mobile, Non- Mobile, and Cloud Client Devices of different types and a plurality of Non-Native Application Clients that ran on Mobile, Non-Mobile, and Cloud Client Devices of different types.
[0050] The System Solution is the owner of ail Application Components, including Native and Non-Native Application Client, automatically generated by the System Solution. The System Solution creates and hosts Applications and generates Application Clients for different Business Entities (each Business Entity is a System Solution customer). The System Solution provides a complete environment for the creation, hosting, updating, and management of the Application. The Application Servers generated by the System Solution for all Business Entities are hosted in a multi- tenant environment in the Cloud, but each Business Entity "feels" like it is provided a dedicated Application Server. The System Solution architecture also applies with minor changes to a scenario where the System Solution Application Server run on dedicated servers owned by the Business Entity, rather than in the Cloud. In this scenario, the System Solution has access to control and offer beneficial use for those servers that are coupled to the Cloud.
[0051] Business Entities deploy their Applications and Application Clients to reach Consumers (i.e., the customers of that Business Entity served by System Solution). The Consumers are the primary End Users of the Application Clients generated by the System Solution. The Business Entities are the End Users of the Dashboards and the Application Server that the System Solution provides to each Business Entity for managing the corresponding Application Clients.
[0052] Mobile Client Devices (cellular phones, smartphones, wearable devices, and tablets) and Non-Mobile Client Devices (laptops, desktops, and Internet-enabled TV sets) are coupled to the internet by wired (a physical interconnect), wirelessiy (waves through space), or both wired /wireless networks. The wireless connectivity can be cellular (3G, 4G5 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 term ""Mobi le" 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 runs on a server {the Application Server). The term "Application Client" refers to the portion of the application running on the Client Device. The terra "Application Client" encompasses the Application Client, running on a mobile Client Device, a non-mobile Client Device or even in the Cloud. The Cloud can run a portion of the Application Client in the server while the remaining portion of the Application Client can run on the Client Device, simultaneously. The term "Application Client" is used to refer to both Native and Non-Native Application Client. The term "Mobile Application Client" will be used for both Native and Non-Native Application Clients running on a mobile Client Device, but it also applies to Client Devices thai are non-mobile or in the Cloud,
[0053] in all cases, the Application Clients provide the End User with a User Interface which provides the end user with at least one mode of input and at least one mode of output. The User Interface provides the means to the end users through which the end user navigates and interacts with the Application Client,
[0054] Each Application includes a family of Application Clients. Each Application Client is designed to run on a Client Device of a certain type, part of a plurality of Clien t Devices. The Client Devices in the plurality of Client Devices have different characteristics in terms of hardware, operating system, and "look and feel" of each device. In particular, each Client Device in the plurality of Client Devices may have a different screen in. terms of resol tion, aspect ratio, and size.
[0055] The family o Application Clients includes a set of Native M obile Application Clients, one per mobile Client Device. The family of Application Clients also includes a set of Native Non- Mobile Application Clients, one per non-mobile Client Device. The family of Application Clients also includes Non-Native Mobile and Non-Mobile Application Clients, and Cloud Application Clients residing in the Cloud. Native, Non-Native, and Cloud Application Clients can be- automatically generated by the System Solution.
[0056] A Native Application Client executable depends on the operating system of the Client Device on which the Native Application Client is running on. Thus, the executable of a Native Application Client to run on different Client Devices may be different. The set of automatically generated Native Mobile Application Clients provides a Native Mobile Application Client per each mobile Client Device which the Mobile Application is desired to ran on. The executable of a Native Mobile Application Client designed to run on a first mobile Client Device is generated to run on the operating system of the first mobile Client Device and may be different from the executable of a Native Mobile Application Client designed to run on a second mobile Client Device. The executable of a Native Non- Mobile Application Client designed to run on a first non-mobile Client Device is generated to run on the operating system of the first non-mobile Client Device and may be different from the executable of a. Native Non-Mobile Application Client designed to ran on a second non-mobile Client Device.
[0057] The User interface of a Nati ve Application Client to run on different Client Devices may be different. The User Interface of a Native Application Client depends on the operating system, the hardware, and the "look and feel" of each Client Device. In particular, the User Interface depends on the characteristics of the screen of each Client Device in terms of screen resolution, aspect ratio, and size. The User Interface of a Native Mobile Application Client designed to run on a first mobile Client Device is adapted to the characteristics in terms of operating system, hardware and 'look and feel of the first mobile Client Device and may be different, from the User Interface of a Native Mobile Application Client designed to run on a second mobile Client Device, which is adapted to the characteristics in terms of operating system, hardware and "look and feel of the second mobile Client Device. The User Interface of a Native Non-Mobile Application. Client designed to run on a first non-mobile Client Device is adapted to the characteristics in terms of operating system, hardware and "look and feel of the first non-mobile Client Device and may be different from the User Interface of a Native Non-Mobile Application Client designed to run on a. second non-mobile Client Device, which is adapted to the characteristics in terms of operating system, hardware and "look and feel of the second non-mobile Client Device. The User Interface of a Native Application
Client must be adapted to the characteristics in terms of operating system, hardware, and look and feel of each Client Device on which the Native Application Client is desired to run.
[0058] A Non-Native Application Client does not depend on the operating system of the Client Device on which the Non-Native Application Client is running on, since it runs on the Web Browser that is runnina on each Client Device. However, the User Interface of a Non-Native Application Client to run on different Client Devices may be different. The User Interface of a Non- Native Application Client depends on the hardware and the "look and feel" of each Client Device. In particular, the User Interface depends on the characteristic s of the screen of each Client De vice i terms of screen resolution, aspect ratio, and size. The User Interface of a Non-Native Application Client must be adapted to the characteristics in terms of hardware and look and feel of each Client Device on which the Non-Native Application Client is desired to run. The Non-Native Application Client is written in a programming language that is understood by the web browser running on the Client Device. Typically, such a programming language, for example HTML5, provides certain functionality that allows the web browser running on the Client Device to adapt the User interface of the Non-Native Application Client to the characteristics of the Client Device. However, because of possible limitations in the adaptation capabilities that the web browser running on the Client Device provides, the "'adapted" User Interface may not offer the same user experience in all Client Devices.
[0059] The automatic generation of the set of Native Mobile Application Clients, the set of Native Non-Mobile Application Clients, Non-Nativ Application Clients, and Cloud Application Clients requires a Client Translator and Generator thai translates a User Interface of an Application Client designed to run on a Reference Client Device into a User Interface of an Application Client designed to run on each Client Device in the plurality of Client Devices of different types which the Applicatio Client is desired to run on. The Reference Client Device may be one of the Client. Devices that the Application Client is desired to run on. The User interface which is translated to run on a Client Device must adapt to the characteristics of the Client Device in terms of operating system, hardware, in particular screen resolution, size, and aspect ratio, and "look and feel . [0060] The process of translating the User Interface from a User Interface designed for a Reference Client Device to a User Interface adapted to the characteristics in terms of operating system, hardware, and look and feel for each Client Device that an Application Client is desired to run on is very complex because of the broad differences in the characteristics of each Client Device. Also, the User interface is a very important part of the user experience that the Application Client provides to the end user, since it. provides the "sensorial"' experience (especially visual) of the interaction with the Application Client. Since end users have scarce tolerance for imperfections in the User interface visual aspects and behavior, the translated User Interface for each Client Device must be of very "high qual ity" in order to offer the same user experience in all Client Devices.
[0061 ] The user experience offered by a Application Ciieni on a Client Device is the result of many factors, many of the factors qualitative in nature, since the user experience is a qualitative experience. For example, pictures and videos displayed by a User Interface should not look distorted. Text should use proper fonts and font sizes, be well-spaced and not truncated. Buttons and other navigation elements should be properly spaced, and follow the look and feel of the Client Device. .Embellishment effects such as shapes, outlines, and shadows should be properly displayed. The "composition" of the User Interface, i.e., the relationship among the different graphical elements displayed by the User Interface should be visually pleasant in all Client Devices. For example, the different elements displayed by the User Interface should not look too large or too small, areas of the screen should not look unnaturally empty, the distance between any two elements should be similar in relative terms on ail Client Devices, elements that do not overlap in the Reference Client Device User Interface should not overlap in any User interface, etc.
[0062] Because of the wide variation in the characteristics of different Client Devices in terras of operating system, hardware, and "look and feel," first User Interface that "looks good" on a first Client. Device may "look poor" when the first User Interface is translated to a second Client Device. For example, a set of buttons that appear properly spaced when displayed on. the first Client Device, may appear too closely-spaced when displayed on the second Client Device, and the end user may find them awkward to use them on the second Client Device. Another example is a picture that ma appear properly sized whe displayed on a first Client Device, but may appear distorted when displayed on a second Client Device featuring a screen of a different aspect ratio than the first Client De vice. Especially in mobile Client Devices, which use screens of relatively small sizes and typically run Application Clients with User Interfaces that are very carefully designed and highly fine-tuned, even small changes in the elements or composition of the User Interfaces may be very noticeable and affect the user experience offered by the Application Client to the end user.
[0063] The problem of properly adapting a User Interface to the characteristics of Cl ient Devices of different types is especially relevant for Native Application Clients. The problem, also applies to a certain extent to Non-Native Application Clients. In the case of Non-Native Application Clients, the web browser .running on the Client Device provides certain capabilities to adapt a Non-Native Application Client to the characteristics of the Client Device. However, the adaptation capabilities provided by the web browser running on a certain Client Device may he limited and the adaptation may not result in the same user experience in all Client Devices.
[0064] Since a User interface 'looks good" or does not "look good" on a Client Device based on a numbe of factors that are qualitative in nature, the "measurement" of the result of the User interface translation to different Client Devices is difficult, since a "good" or "bad" translation also depends on factors that are qualitative in nature. However, certain metrics provide a quantitative estimate of the quality of the User Interface translation.
[0065] tfl€»- 5 depicts a. Two-Layer Native Application Client 5-1 which is a Native Application Client that consists of two layers: a Dynamic Layer 5-3 and a Native Layer 5-2, The Native Layer 5-2 runs directly on. the operating system 2-13 of the Client Device 1-2 by using the system libraries 3-3 that are part of the operating system 2-13. The Dynamic Layer 5-3 does not run directly on the operating system 3-3, but instead runs on the Native Layer 5-2 by making use of software libraries and functional blocks provided in the Native Layer 5-2. The Native Layer 5-2 is an executable that depends on the Client Device 1-2 and needs to be downloaded and installed on the Client Device 1-2 using an installation .manager external to the Two- Layer Native Applicatio Client 5-1. The Native Layer 5-2 needs to be downloaded from the application store. The Dynamic Layer 5-3 does not need to be downloaded from the application store, bu can be downloaded directly from an Application Server that is part of the System Solution. We use the terra "Dynamic Native Application Client" as synonymous of the term "Two-Layer Native Application Client". The operating system runs on the hardware 2-16.
[0066] FIG. 6A illustrates the process of downloading the Two-Layer Native Application Client 5- I. to a Client Device 1 -2 for the first time. This process is similar to the process of downloading a Native Application Client 3-1 to the Client Device depicted in FIG. 4. A Business Entity 4-1 creates a new application which comprises a Two-Layer Native Application Client 5-1. The new Two-Layer Native Application Client 5-1 is submitted 4-3 to the .Application Store .1-10 for an approval process 4-4. Once the new Two-Layer Native Application Client is accepted 4-5, information is passed to the Application Store 1-10 to make the new 'iwo-Layer Native Application Client available for download into a Client Device 1-2. A Client Device 1-2 which desires the Two- Layer Native Application Client 5-1 downloads the Two-Layer Native Application Client from the corresponding application store 1-10. Once the Two-Layer Native Application Client is downloaded to the Client Device, it is installed 4-6 on the Client Device so it can run on the operating system 2- 13 of the Client Device. The Two-Layer Native Mobile Application Client 5-1 executable depends on the operating system (OS) as an iPhone would require a different executable than an Android phone. If the Business Entity modifies the Native Layer 5-2, it needs to submit the new version of the Native Layer 5-2 to the application store for re-approval in order to make it available for download to the Client Device. In order to install the updated version of the Native Layer on the Client Device, the existing version of the Native Layer, if running on the Client Device 1-2, must be stopped and deleted from the memory of the Client Device 1-2 in order for the ne w version of t he Native Layer to be installed on the Client Device. The Native Layer cannot be updated "on the fly" while the Native Application Client 5-1 is running on the Client Device 1-2. The Dynamic Layer 5- 1 runs on the Native Layer 5-2.
[0067] FIG. 6B illustrates the process of downloading an updated Dynamic Layer 6-4 to the Client Device. If the Business Entity 4-1 modifies the Dynamic Layer 5-1 and creates an Updated Dynamic Layer 6-2, it ca make it available for download 6-4 directly from an Application Server 6-3 that is part of the System Solution or is owned by the Business Entity. The new version 6-2 of the Dynamic Layer 5-3 is made available for download to the Client Device without having the Business Entity submit it for approval to the application store 1-10. The updated Dynamic Layer 6- 2 can be downloaded and installed 6-4 in the Client Device 1-2 while the Two-Layer Native Application Client 5-1 is running on the Client Device. The update of the existing Dynamic Layer can he achieved using an update manager 6-6 that is internal in the Native Layer 5-2 of the Two- Layer Native Application Client 3-1. Once the Updated Dynamic Layer 5-3 is installed on the Client Device 1-2, the new application client -functionality and new user experience is provided to the end user. The Native Layer 5-2 runs on the operating system 2-13 which in turn runs on the hardware 2-1 .
[0068] FIG. 7 illustrates a plurality of Client Devices comprising Client Device 1 1.-2 to Client Device N l-2b. Each Client Device is of a different Client Device type and different characteristic, suc as hardware, operating system, and "look and feel" of each device. For example, a first Client Device can be an iPhone 4 , a second Client Device can be an i Phone 5 ' , a third Client Device can be an iPadi M, a fourth Client Device can be an sPad Mini 5M, a fifth Client Device cars he a Samsung Galaxy 0 ' 1 sroariphone running the Android '" operating system, a sixth Client. Device can be a Nokia Lamia™ smartphone running the Windows Mobile™ operating system, a seventh Client Device can be Samsung Notes I tablet with 10" screen running the Android' M operating system, an eighth Client Device can be a Samsung Note f M tablet with 7" screen running the Android : operating system, a ninth Client Device can be a Dell""' laptop, and so on. Client Device 1 1-2 comprises an Operating System 1 2-13 and a Hardware 1 2-16 which comprises a Screen 1 2- 10 with a certai Scree Resolution., Aspect. Ratio and Size. Client Device 1 has a certain "Look and fee!" Client Device 1 7-1. Client Device 2 l~2a comprises an Operating System. 2 2-13a and a Hardware 2 2-16a which comprises a Screen 2 2-10a with a certain Screen Resolution, Aspect Ratio and Size. Client Device 2 has a certain "Look and Feel" Client Device 2 7-l.a. Client Device N l-2b comprises an Operating System N 2-13fo and a Hardware N 2- 6b which comprises a Screen N 2-!.0b with a certai Screen Resolution, Aspect Ratio and Size. Client Device N has a certain "Look and Feel" Ciient Device 7-1 b. Operating System I 2-13 may differ from Operating System 2 2-13a, which in turn may differ from Operating System 2-13b. Hardware I 2-16 may differ from Hardware 2 2-16a, which in turn .may differ from Hardware N 2-16b. Specifically, Screen 1 2-10 may differ front Screen 2 2-10a, which i turn may differ from Screen 2-10b in terms of screen resolution, or aspect ratio and size. "Look and feel" Client Device 1 7-1 may differ from "Look and feel" Client Device 2 7*1 a, which in turn may differ from "Look aad feel" Client Device N 7-1 b.
[0069] The "Look and Feel" of a Client Device is due to the fact that the manufacturer of a certain operating system or Client Device encourages certain practices that developers of Application Client User Interfaces running on their devices should follow, so all Application Clients running on the Client Device have some general common behavior and an end user is comfortable even the first time he-'she uses a User Interface of a new Application Client, since the end user can "navigate" the new Application Client, at least to some extent, by applying "knowledge" gained by navigating other Application Clients, The "Look and Feel" often depends on the operating system and on the device itself. For example, the "look and feel" of an iPhonelM is different from the "look and feel" of a device running the Android 1 operating system or from a device running the Blackberry : * operating system. The "look and feel" of an iPhone, M is also slightly different from the "look and feel" of an iPadiM, even if the two devices run the same operating system. For example, in an Application Client running on an iPhone, the Tab Bar is typically at the bottom of the screen, in an Application Client running on Android phone can be at the top. Another example is that in an Application Client running on i Phone there is a "Home" button in the User interface to go back to a main landing page in the Application Client, In an Application Client running on man Android Client Devices, typically there is no "Home" button because there is a physical "Home" button in the Client Device, In another example, in an Application Client running on iPhone, when displaying a choice menu asking the end user for a "Yes" or "No" answer, the "Yes" is on the left, in Android, the "Yes" is on the right.
[0070] A Native Application Client executable depends on. the operating system of the Client Device on which the Native Application Client is running on. Thus, the executable of a Native
Application Client to run on different Client Devices may be different For example, the executable of the Native Application Client 3-1 to run on Client Device i 1-2 may be different from the executable of the same Native Application Client 3-1 a. to run on Client Device 2 1-2», which in turn, may be different from the executable of the same Native Application Client 3-lb to run on Client Device N 1-2b. [0071] The User Interface of a Native Application Client when run on different Client Devices may be different. The User interface of a Native Application Client depends on the operating system, the hardware, and the "look and feel" of each Client Device, in particular, the User Interface depends on the characteristics of the screen of each Client Device in terras of screen resolution, aspect ratio, and size. For example, the User Interface 3-5 of the Native Application Client 3-1 to run on Client Device 1 1-2 may be different from the User Interface 3-5a of the same Native Application Client 3-1 a to run on Client Device 2 l-2a„ which in torn ma be different from the User Interface 3~5b of the same Native Application Client 3-1 b to run on Client Device N l-2b. The User Interface of a Native Application Client must be adapted to the characteristics in terms of operating system, hardware, and look and feel of each Client Device on which the N ative Application Client is desired to ran. Each Native Appli eati on C 11 ent include s a C 1 lent Fune tionali ty 3-2 , 3 - a and 3-2 b, respectively.
[0072] FIG. 8 is similar to FIG-. 7t but addresses the case of Non-Native Application Clients. FIG. 8 illustrates the same plurality of Client Devices comprising Client Device 1 1-2 to Client Device N l-2b shown in FIG. 7, each Client Device of a different Client Device type and different characteristic, such as hardware, operating system, and 'look and feel" of each device,
[0073] A Non-Native Applicatio Client does not depend on the operating system of the Client Device on which the Non-Native Application Client is running on, since it runs on the Web Browser 1 8-2, Web Browser 2 8~2a, and Web Browser 3 8-2b mat is running on each Client Device. The Web Browser running on each Client Device supports the "look and feel" of each device. The User Interface of a Non-Native Application Client to run on different Client Devices may be different. The User interface of a Non-Nati ve Application Client 8-3 to 8-3b depends on the hardware 2-16 to 2-16b, respectively, and the "look and feel" 8-1 to 8-lb, respectively of each Client Device. In particular, the User Interface depends on the characteristics of the screen of each Client Device in terms of screen resolution, aspect ratio, and size. For example, the User Interface 8-5 of the Non-Native Application Client 8-3 to run on Client Device .1 1-2 ma be different f om the User interface 8-5a of the same Non-Native Applicatio Client 8-3a to ran on Client Device 2 l-2a, which in turn may be different from the User interface 8-5» of the same Non-Native Application Client 8-3b to ran on Client Device N l-2b. The User interface of a Non-Native Application Client must be adapted to the characteristics in terms of hardware and look and feel of each Client Device on which the Non-Native Application Client is desired to run. The Non-Native Application Client is written in a programming language that is understood by the web browser running o the Client Device. Typically, such a programming language, for example HTML 5, provides certain functionality that allows the web browser running on the Client Device to adapt the User interface of the Non-Native Application Client to the characteristics of the Client Device. However, because of possible limitations in the adaptation capabilities that the web browser running on the Client Device provides, the "adapted" User Interface may not offer the same user experience in all Client Device 1 .1-2 comprises an Operating System I 1 2-13 and a Hardware I 1 2-16 which comprises a Scree 1 2-10 with a certain Screen Resolution, Aspect Ratio and Size. Client Device I has a certain "Look and Feel" for Web browser I Client Device 1 8-1. Client Device 2 l-2a comprises an Operating System 2 2-13a and a Hardware 2 2-1 a which comprises a Screen 2 2-10a with a certain Screen Resolution, Aspect Ratio and Size. Client Device 2 has a certain "Look and Feel" for Web browser 2 Client Device 2 8-l.a. Client Device N l~2b comprises an Operating System N 2-13» and a Hardware N 2-16b which comprises a Screen N 2-1 Ob wit a certain Screen Resolution, Aspect Ratio and Size. Client Device N has a certain "Look and Feel" for Web browser N Client Device N 8-1 b. Each Non-Native Application Client includes a Client Functionalit 3-2, 3-2» and 3~2b, respectively JSach Non-Native Application Client includes a Client Functionality 3~ 2. 3-2a and 3-2b, respectively.
[0074] FIG. 9 depicts a method and apparatus to automatically generate an Application, consisting of several Applicatio Components. A Business Entity 4-1 defines a Service Representation 9-1 and Business Entity Data 9-2. An Automatic Data Model Generator 9-3 takes the Sen-ice Representation 9-1 and the Business Entity Data 9-2 as inputs and automatically generates a Data Model 9-4, and from the Data Model 9-4 it generates a Commo Data Model 9-5, a Server Data Model 9-6 and a Client Data Model 9-7. Using the generated Common Data Model 9-5, Server Data Model 9-6, and Client Data Model 9-7, an Automatic Application Generator 9-8 automatically generates ail the Application Components. The generated Appiication Components include an Application Server 9-9, a set of Native Mobile Application Clients 9-10, a set of Native Non- Mobile Application Clients 9-11 , a set of Non-Native Application Clients 9-12, Client Server Protocols 9-13, Dashboards 9-14, and Other Application Components 9-15, [0075] The method and apparatus depicted in FIG. 9 is explained in detail in U.S. Patent Application Ser. No. 13/833,589 titled "Apparatus for Single Workflow for Multi-Platform Mobile Application Creation and Delivery ' filed on March 15, 2013, in U.S. Patent Application Ser. No, 1.3/833,669 titled "Method for Single Workflow for Midti-Plalform Mobile Application Creation and Delivery filed on March 15, 2013, and in U.S. Patent Application Ser. No. 13/833,775 titled "Dynamic User Inierface Delivery System" filed on March 15, 2013, which are incorporated in reference in their entirety. What is relevant in this application is that the set of generated Native Mobile Application Clients 9-1.0 comprises a Native Mobile Application Client executable for each mobile Client Device that the Native Mobile Application Client is desired to run on. The User Interface of each Native Mobile Application Client in the set of generated Mobile Application Clients 9-10 is adapted to the characteristics in terms of operating system, hardware, and look and feel of the corresponding mobile Ciient Device that the Native Mobile Application Client is desired to run on. The set of generated 'Native Non-Mobile Application Clients 9-11 comprises a Native Non-Mobile Application Ciient executable for each non-mobile Client Device that the generated Native Mobile Application Client is desired to run on. The User Interface of each Native Non- Mobile Application Client in the set of Non-Mobile Application Clients 9-11 is adapted to the characteristics in terms of operating system, hardware, and look and feel of the corresponding non- mobile Client Device that the Native Mobile Application Client is desired to run on. The User Interface of the Non-Native Application Clients 9-12 is adapted to the characteristics in terms of hardware and look and feel of the corresponding Client Device that the Native Mobile Application Client is desired to run on.
[0076] FIG. 10 provides further detail of the Automatic Client Generation process, which is part of the method, and apparatus depicted in FIG. 9. From the Client Data Model 9-7, the Automatic Application Client Generator 10-1 , which is part of the Automatic Application Generator 9-8f first automatically generates a Reference Application Client 10-2. The Reference Application Ciient 10- 2 is an. Application Client whose executable is compiled to ru on a Reference Client Device and whose User Interface is adapted to the characteristics in terms of operating system, hardware, and look and feel of the Reference Client Device. The Reference Client Device may be one of the Client Devices that the Applicatio Client is desired to run on. For example, the iPhone 5 i : i may be picked as the Reference Client Device, and the Reference Application Client 10-2 is generated and adapted to run on the iP one 5 l \ Once the Reference Application Client 10-2 is generated, the Client Translator and Generator 10-3 translates the executable and User Interface and generates the set of Native Mobile Application Clients 9-10, the set of Native Non-Mobile Application Client 9-11, the Non-Native Mobile Application Clients 10-5, and the Non-Native Non-Mobile and Cloud Application Clients 10-4 for all the Client Device on which the Applicatio Client is desired to run on.
[0077] The process of translating the User Interface from a User interface designed for the Reference Client Device io a User Interface adapted to the characteristics in terms of operating system, hardware, and look and feel for each Client Device that an Application Client is desired to .run on is very complex because of the broad differences in the characteristics of each Client Device. This problem is especially relevant for Native Application Clients. The problem also applies to a certain extent to Non-Native Application Clients. In the case of Non-Native Application Clients, the web browser running on the Client Device provides certain capabilities to adapt a Non-Native Applicaticffi Client to the characteristics of the Client Device. However, the adaptation capabilities provided by the web browser running on a certain Client Device may be limited and the adaptation may not result in the same user experience in all Client Devices.
[0078] FIG. 10 also shows that the Automatic Client Generation process, which is part of the method and apparatus depicted in FIG. 9, first automatically generates a Reference Application Client 10-2. The Reference Application Client 10-2 is an Application Client whose executable is compiled to ru on a Reference Client Device and whose User Interface is adapted to the characteristics in terms of operating system, hardware, and look and feel of the Reference Client Device. The Reference Client Device may be one of the Client Devices that the Application Client is desired to ran on. Once the Reference Application Client 10-2 is generated, the Client Translator and Generator 10-3 translates the executable and User interface and generates the set of Native Mobile Application Clients 9-10, the set of Native Non-Mobile Application Client 9-1.1, the Non- Native Mobile Application Clients 10-5, and the Non-Native Non-Mobile and Cloud Application Clients 1.0-4 for all the Client Device on which the Application Client is desired to run on.. [0079] Fig. 11 A and FIG. I1B provide details of the 'User Interface Translator 11-2, which is part of the Client Translator and Generator 10-3. i FIG. MA, the User Interface Translator J 1-2, translates a Reference Client Device User Interface 11.-1 into a User Interface for Client Device 1 11-8. The Reference Client Device User interface 11-1 is the User interface designed to ran on the Reference Client Device. The User Interface for Client Device 1 11-8 is a User Interface adapted to the characteristics of a first Client Device 1 in the plurality of Client Devices of different types which the Application Client is desired to run on. In the translation process, the User Interface Translator 11 -2 uses the characteristics of Reference Client Device Screen 11-10 in terms of resolution, aspect, ratio, and size, the "Look and Feel" Reference Client Device I 11-3, the characteristics of Client Device 1 Screen 1 11-4 in terms of resolution, aspect ratio, and size, and the "Look and Feel" Client Device I 1 -5 in order to perform the translation. FIG. 11B depicts the same process to iransiate the Reference Client Device User Interface 11-1 and generate a Use Interface for Client Device 2 11-9, the User Interface for Client Device 2 11-9 being a user interface adapted to the characteristics of a second Client Device 2 in the plurality of Client Devices of different types which the Application Client is desired to run on, the Client Device 2 having different characteristics than Client Device i . I this case, the User Interface Translator uses the characteristics of Client Device 2 Screen 2 11-6 and the "Look and Feel" Client Device 2 11-7 to perform the translation. The User Interface Translator 11-2 uses a similar process to translate the Reference Client Device User Interface 11-1 and generate a User Interface adapted to the characteristics of each Client Device in the plurality of Client Devices which the Application Client is desired to run on. in the translation process, the User Interface Translator lt-2 uses the characteristics of Reference Client Device Screen 11-10 in terms of resolution, aspect ratio, and size, the "Look and Feel" Reference Client Device 1 Ί..Ι.-3, the characteristics of Client Device I Screen I 11-6 in terms of resolution, aspect ratio, and size, and the "Look and Feel" Client. Device 1 11-7 in order to perform the translation.
[0080] FIG. 12 shows the structure of an Application Client 12-1, including a Native and a Non- Native Application Client. The Application Client 12-1 comprises a plurality of Pages comprising Page i 12-2 to Page N 12-4. Each Page in the plurality of Pages 12-2 to 12-4 inc ludes a Page User Interface .12-6 to 12-8. The Application Client User Interface 12-5 consists of the Page User
Interface of all Pages comprised in the Application Client. [0081 J FIG. 13 shows the structure of a Page User interface 13-1 In the plurality of Page User Interfaces comprised in the Application Client 1.2-1. The Page User Interface has a size defined by the Page Height 13-2 and Page Width 13-3. It is understood that the Page Height 13-2 and Page Width 13-3 may differ from the Screen Height 13-10 and Screen Width 13-11 which define the size of the actual physical Client Device Screen 13-9 because the "Usable Area" of the Client Device Screen 13-9, which corresponds to the Page User Interface Size, may be smaller than the physical screen area. For example, in a sniartphone, an area at the very top of the physical Client Device Screen is typically not usable by the Application Client User Interface, since it displays the battery and connectivity indicators of the Client Device, if the Usable Area of the Client Device is smaller than the physical screen area, a simple adjustment of the Screen Height and Screen Width must be made in order to derive the Page Height and Page Width. However, since this simple adjustment is well understood by those skilled in the art, we use the terms "Screen Height/' "Screen Width," and screen size to refer to the height, width, and size of the Usable Area as well as the actual physical area of the screen.
[0082] The Page User Interface 1.3-1 comprises a Top Navigation Area 13-7 of height Top Navigation Height 13-4, a Bottom Navigation Area 13-8 of height Bottom Navigation Height 1.3-5 and a Body Area 13-10 of size determined by Body Width 13-9 and Body Height 13-6. The Top Navigation Area 13-7 ma not be present, in which case the Body Area starts at the top of the Page User interlace. The Bottom Navigatio Area 1.3-8 may not be present, in which case the Body Area ends at the bottom of the Page User Interface.
[0083] FIG. 1 shows the elements that may be displayed in a Body Area 13-10 of a Page User Interface 13-1. The Page User Interface 13-1 displays a plurality of Objects. Objects can be of different types, A plurality of Objects of each type can be displayed in the Body Area 13-10. Objects include an Object Position and an Object Format. The types of Objects include the following. A Content Object Picture 14-1, which contains a Picture, and includes a size defined by a Content Object Width 14-12 and a Content Object Height 14-11, an Object Position 14-17 defined by a X-Coordinate 14-18 and Y-Coordinate 14-19 of the top left corner of the object and a Picture Format 14-6. A Content Object Video 14-2, which contains a Video, and includes a size defined by a Content Object Width 14-1.2 and a Content Object Height 14-1.1, an Object Position 14-17 defined by a X-Coordinate 14-18 and Y -Coordinate 1 -19 of the top left comer of the object, and a. Video Format 14-7. A Content Object Text .14-3, which contains a text box, which contains text, and includes a size defined by a Content Object Width 14-12 and a Content Object Height 14-11, an Object Position 14-17 defined by a X-Coordinate 14-18 and Y-Coordmate 14-19 of the top left corner of the object and a Text Format 14-8. A Shape Object 14-4 which contains a Shape, and includes a size defined by a Shape Object Width 14-14 and a Shape Object Height 14-1.3, an Object Position 14-17 defined by a X -Coordinate 14-18 and Y -Coordinate 14-19 of the top left corner of the object, and a Shape Format 1 -9. A Navigation Object 14-5 which contains a Button, or a Tab, or another Navigation Element and includes a size defined by a Navigation Object Width .14-16 and a Navigatio Object Height 14-15, an Object Position 14-17 defined by a X-Coordinate 14-18 and Y-Coo.rdi.nate -19 of the top left corner of the object, and a Navigation Object Format 14-10. For example, the Text Format 14-8 may include a Font, a Font Size, a Font Color, an Alignment, a Font Style, a Truncation, a Spacing between Words, and a Spacing between Letters. The Top Navigation Area 13-7 and the Botton Navigation Area 13-8 are also illustrated.
[0084] FIG. I SA shows the Translation Grid 15-11 applied to the Body Area 13-10 of a Page User Interface 1.3-1. The Translation Grid 15-11. is used by the User Interface Translator 11-2 to perform the translation of the Reference Client Device 'User Interface 11-1 and generate the User Interface for all Client Devices which the Application Client is desired to run on. The Translation Grid 15-11 is defined by a Translation Grid Pitch that is defined by a Translation Grid Pitch Width 15-10 and a Translation Grid Pitch Height 15-9. The Translation Grid 15-11 consists of a plurality of Translation Grid Node i, j 15-6, numbered sequentially according to their position on the X axis and Y axis of the Body Area 13-10. The Translation Grid Node 1 , 1 15-2 defines the top left corner of the Translation Grid 15-11 and coincides with the top left corner of the Body Area 13-10, the Translation Grid ode 0,m 15-5 defines the top right comer of the Translation Grid 15-1 and coincides with the top right corner of the Body Area 13-10, the Translation Grid Node n,0 15-3 defines the bottom left corner of the Translation Grid .15-11 and coincides with the bottom left corner of the Body Area 13-10, Translation Grid Node n.ni 15-4 defines the bottom right corner of the Translation Grid 15-1.1 and coincides with the bottom right corner of the Body Area 13-10. There are n rows of Translation Grid Nodes along the height of the Body Area 13-10. Adjacent rows of Translation Grid Nodes are equally spaces with distance Translation Grid Pitch Height. There are .m columns of Translation Grid Nodes along the width of the Body Area. Adjacent columns of Translation Grid Nodes are equally spaced with distance Translation Grid Pitch Width. The Top Navigation Area 13-7 with a Top Navigation Height 13-4 and the Bottom Navigation Area 1.3-8 with a Bottom Navigation Height 13-5 are also illustrated.
[0085] FIG. 158 shows the Reference Translation Grid 1.5-12, which is the Translation Grid applied to a Reference Client Page User interface 15-1,. which is comprised in the Reference Client
Device User Interface 1.1-1. The Reterence Translation Grid 1.5-12 is used by the User interface Translator 11-2. The Reference Translation Grid 1 -12 is defined by the Translation Grid Pitch Reference Client, which consists of the Translation Grid Pitch Height Reference Client 15-13 and the Translation Grid Pitch Width Reference Client .15-14. The Translation Grid Pitch Height Reference Client 15-13 and the Translation Grid Pitch Reference Client 15-14 are defined based on the resolution and screen size of the Reference Client Device. The finer the Translation Grid Pitch Reference Client, the larger the number of Translation Grid Nodes in the Reference Translation Grid and the more accurate the translation process performed by the User Interface Translator 11.-2, but the higher the computation complexity of the User Interface Translator .11-2. The remaining identifier numerics correspond to those described in FIG. ISA.
[0086] FIG. 16 illustrates all the translation data that needs to be prepared in order for the User Interface Translator 11-2 to perform the translation of the Reference Client Device User Interlace 11-1 and generate the User interface for all Client Devices which the Application Client is desired to run on. The translation data illustrated in FIG. 16 needs to be prepared for the Reference Client Device and for each Client Device in the pkraliiy of Client Devices of different types that the Application Client is desire to run on. The translation data illustrated in FIG. 1.6 depends only on the characteristics of each Client Device in terras of operating system, hardware, and look and feel . Thus, once the translation data is computed for a Client Device, it is used by the User Interface Translator .11-2 to translate any Reference User Interface to that Clieni Device.
[0087] The Reference Client Device Translation Data 16-1 includes the following. A Reference Translation Grid 15-12. A Reference Scree Size 16-3, which consists of the Screen Height, Screen Width, and aspect ratio of the screen of the Reference Client Device. If the Usable Area of screen of the Reference Client Device is smaller than the actual area of the physical screen of the Reference Client Device, an adjustment is made to reflect the area of the Usable Area. A Reference Screen Resolution 16-4. which is the resolution of the screen of the Reference Client Device. A Reference Text Formatting Rules 16-5 which includes a list of supported fonts and font sizes, a list of the dimensions of the areas occupied by letters of different fonts and font sizes, a list of spacing rules between letters and between words for different fonts and font sizes, a list of rules for font styles, and other formatting .rules. A Reference Object Formatting Translation Rules 16-6, which includes a list of cropping rules, border rules, and spacing rules for pictures, videos, and shapes, a list of object effect rules that includes recommended ways to display shadows, transparencies, 3-D effects, etc., a list of outline rules that includes recommended widths and effects of outlines, and other formatting rules. A Reference Top Navigation Translation Rules 16-7 which defines the dimensions of the top navigation area, and any other rule that applies to the top navigation area, if present. A Reference Bottom Navigation Translation Rules 16-8 which defines the dimensions of the bottom navigation area, and any other rule that applies to the top navigation area, if present. A Reference Look and Feel Translation Rules 16-9 which defines the Look and Feel guidelines of the Reference Client Device.
[0088] The Client Device I Translation Data 16-1 a contains the translation, data for a first Client
Device 1 with certain operating system, hardware, and look and feel characteristics that are different from the corresponding characteristics of the Reference Client Device. The Client Device 1 Translation Data 16-1 a includes the following, A Client I Translation Grid 16-16 which is the Translation Grid applied to Client Device 1. This grid has the same number of rows of Translation Grid Nodes as the Reference Translation Grid and the same number of Translation Grid Nodes as the Reference Translation Grid. The ratio of the Translation Grid Pitch Height of the Client I Translation Grid 16-10 and the Reference 'Translation Grid 15-12 depends on the relative height, width, resolution, and pixel dimension of the screen of the Reference Client Device and of Client Device 1. A Client 1 Screen Size Ϊ 16-11 , which consists of the Screen Height, Screen Width, and aspect ratio of the screen of Client Device I , If the Usable Area of screen of Client Device I is smaller than the actual area of the physical screen of the Client Device 1, an adjustment is made to reflect the area of the Usable Area. A Client I Screen Resolution 16-12, which is the resoi otion of the screen of the Client Device 1. A Client 1 Text Formatting Translation Rules 16-13 which includes a list of fonts and font sizes supported in Client Device I , a list of the dimensions of the areas occupied by letters of different fonts and font sizes in Client Device 1 , a list of spacing rules between letters and between words for different fonts and font sizes in Client Device 15 a list of rales lor font styles in Client Device 1 , and other formatting rules in Client Device 1. The Client 1 Text Formatting Translation Rides 16-13 also includes a list of font substitution rules for fonts that are supported in the Reference Client Device but are not supported in Client Device I . A Client 1 Object Formatting Translation Utiles 16-14 which includes a list of cropping rules, border rides, and spacing rules for pictures, videos, and shapes in Client Device 1, a list of object effect rules that includes recommended ways to display shadows, transparencies, 3-D effects, etc, in Client Device L a list of outline rules that includes recommended widths and effects of outlines, and other formatting rules in Client Device 1. A Client 1 Top Navigation Translation Rules 16-15 which defines the dimensions of the top navigation area in Client Device I, and any other rule that applies to the top navigation area, if present. A Client 1 Bottom Navigatio Translation Rules 16-16 which defines the dimensions of the bottom navigation area in Client Device I , and any other rule that applies to the top navigation area, if present. A Client I Look and Feel Translation Rules 16-17 which defines the Look and Feel guidelines of Client Device 1. The Client 1 Look and Feel Translatio Rules 16-17 must include a Look and Feel Translation Rule for Client Device 1 for each Look and feel Translation Rule included in the Reference Look and Feel Translation Rules 16-9. Client Device Translation Data is prepared in a similar fashion for all the Client Devices in the plurality of Client Devices which the Application Clien is desired to run on ,
[0089] FIG. 17 illustrates at a high level the method used by the User Interface Translator 11-2 to perform the translatio of each Reference Client Page User .Interface 15-11 comprised in the Reference Client Device User Interface 1-1 and generate the User Interface for all Client Devices which the Application Client is desired to run on. Each Reference Client Page User Interface 15-11 comprised in the Reference Client Device User Interface 11-1 is individually translated. Each Object i the plurality of Objects is associated with the Translation Grid Node closest to the top left corner of the Object in the Reference Translation Grid 15-12. For example, Object 2 17-4 is associated with Translation Grid Node 2,6 17-7. To improve the accuracy of the translation process, the Object Origin Distance can be computed for each object along the X and Y axis. The Object Origin Distance along the X axis is the distance of the top left corner of the Object from the associated Translation Grid Node, computed along the X axis, as a percentage of the Translation Grid Pitch Width Reference Client 15-14. The Object Origin Distance along the Y axis is the distance of the top left corner of the Object from the associated Translatioo Grid Node, computed along the Y axis, as a percentage of the Translation Grid Pitch Height Reference Client 15-13. The Reference Fill Score 17-8 for the Reference Client Page User Interface is computed as the percentage of the Reference Translation Grid which is not covered, by any Object, except for the Body Area Background. The Object 3 1 7-2, Object 3 17-3,. Object 5 17-6 are also placed and also illustrated
[0090] in order to translate the Reference Client Page User interface 15-11 arid generate a corresponding Page User nterface 13-1 for a first Client Device 1 1-2, the top left comer of each Object that is displayed in the Reference Client Page User Interface 15-11 is placed on the Client 1 Translation Grid 16-10, on the Translation Grid Node corresponding to the Translation Grid Node associated with the top left corner of the Object in the Reference Translation Grid 15-12. in order to improve accuracy, the position of the top left corner of the Object in the Client 1 Translation Grid 16-10 can be adjusted using the Object Origin Distance, using the same percentages computed in the Reference Translation Grid 15-12. Then, the size of the Objeci is scaled proportionally based on the ratio of the Reference Screen Size 16-3 and Client 1 Screen Size 16-11, The Objects are then adjusted using Client 1 Object Formatting Translation Rules 16-14, Client 1 Text Formatting Translation Rules 16-13 and Client 1 Look and Feel. Translation Rules 16-17.
[0091] FIG. 18 shows the details of the process used by the User Interface Translator 11-2 to perform the translation of each Reference Client Page User Interface 15-11 comprised in the Reference Client Device User Interface 11-1 and generate the corresponding Page User Interface 13-1 for a first Client Device 1 1-2 in the plurality of Client Devices which the Appi.icat.ion Client is desired to run on. First, "Place Top Navigation Area" 18-1 generates the Top Navigation Area 13-7 (if present) for the corresponding Page User Interface 13-1 for Client Device .1 1-2, If the result of "Top Navigatio Translation Rules OK?" 18-2 is "YES", the "Place Bottom Navigation Area" 18-3 is executed, otherwise adjustments are made to the generated Top Navigation Area 13-7 until the Client 1 Top Navigation Translation Rules 16-15 are satisfied. [0092] "Place Bottom Navigation Area" 18-3 generates the Bottom Navigation Area 13-8 (if present) for the corresponding Page User Interface 13-1 for Client Device 1 1-2. If the result of "Bottom Navigation Translation Rules OK?" 18-4 is "YES", the "Look and Feel Translation Rules OK?" 18-5 is executed, otherwise adjustments are made to the generated Bottom Navigation Area 13-8 until the Client I Bottom Navigation Translation Rules 16-16 are satisfied. The Top Navigatio Area 13-7 and Bottom Navigation Area 13-8 must be generated separately from the Body Area 13-10 because they are governed by the Top Navigation Translation Rules 16-15 and Bottom Navigation Translation Rules 1.6-16, rather than the placement of the Objects on the Client 1 Translation Grid 16-10, which applies to the Body Area .13-10. The "Look and Feel Translation Rules OK?" 18-5 checks that the Client 1 Look and Feel Translation Rules 16-17 are satisfied. If they are, the process moves to the "Convert Object Sizes and Resolution" 1.8-6, otherwise adjustments are made until the Client 1 Look and Feel Translation Rides 16-17 are satisfied. The "Convert Object Sizes and Resolution" 8-6 scales the size of the Object proportionally based on the ratio of the Reference Screen Size 16-3 and Client I Screen Size 16-11. The "Place Objects on Translation Grid" 18-7 places the Objects on the Client 1 Translatio Grid 16-10, For each Object, the top left corner is placed on the Client 1 Translation Grid .16-10, on the Translation Grid Node corresponding to the Translation Grid Node associated with the top left corner of the Object in the Reference Translation Grid 15-12. In order to improve accuracy, the position of the top left corner of the Object i the Client 1 Translation Grid 1.6-10 can be adjusted using the Object Origin Distance, using the same percentages computed in the Reference Translation Grid .15-12. The "Adjust Objects on Translation Grid" 18-8 then adjusts the Objects by tweaking their sixes to minimize distortion. The Objects are then adjusted using {"Merit 1 Object Formatting Translation Rules 16-14, Client I Text Formatting Translation Rules 1.6-13 and Client I Look and Feei Translation Rules 16-17.
[0093] The "Compute Fill Score"" 18-9 computes the Client' 1 Fill Score as the percentage of the Reference Translation Grid which is not covered by any Object, except for the Body Area Background. The "Compute Translation Ratio" .18-10 computes the Translation Ratio for the Page User Interface 13-1 as the ratio between the Client 1 Fill Score and the Reierence Fill Score 17-8. The computed Translation Ratio for the Page User Interface 3-1 is compared with a pre-conflgored Translation Threshold 17-9 in "Is Translation Ratio <~ Translation Threshold?" 18-11. If the computed Translation Ratio for the Page User Interface 13-1 is smaller or equal than the Translation Threshold 17-9, the "Translation Completed, Optima!" is reached. The Translation Threshold is configured empirically. A Translation Ratio equal to I is an indication of a "perfect translation,5' since the Objects in the Client 1 Page User Interface maintain the same relative sizes and positions of the Objects in the corresponding Reference Client Page User interface 15-11. However, because of the wide variations in the characteristics of different Client Devices, a "perfect translation" is not always possible. The Translation Threshold is typically configured to a value above L to allow for some tolerance in the translation process,
[0094] if the computed Translation Ratio is larger than the Translation Threshold 17-9, a Current Iteration Parameter is incremented and the "Is Maximum iterations Reached?" 18-13 is executed, if the value of the Current Iteration Parameter is lower than the value of a pre-configured Maximum
Iteration Parameter, adjustments are made in the Objects and in their placement in an attempt to improve the translation result. Adjustments are introduced by executing "Apply Text Formatting Translation Rules" 18-15, "Apply Object Formatting Translation Rules" 18-16 and "Compute Mew Object Sizes aid Positions" 18-17, and then repeating "Place Objects on Translation Grid" 1 -7 and the rest of the process. Examples of adjustments thai can be made include the following. Tweaks in the size and position of the Objects, according to the Client i Object Formatting Translation Rules 16-14 and the relationships between Objects, such relationships including maintain alignment and relative sizes of Objects. Changes in the Fonts, Font Sizes, Spacing between Words, Spacing between Letters, etc., according to the Client 1 Text Formatting Translation Rules.
[0095] Once the value of the Current Iteration Parameter reaches the value of the Maximum Iteration Parameter, the process is terminated and the "Translation Completed, Suboptimai" 18-14 is reached. The "Translation Completed, Suboptimai" 18-14 indicates that the translated Page User Interface may provide a user experience that is in some respect different than tire user experience provided by the corresponding Reference Client Page User interface 15-11. If the "Translation. Completed, Suboptimai" 18-14 is reached for a certain Page User Interface 13-1 for a first Client Device 1 1-2, the Business Entity may decide to have a User Interface designer skilled in the art adjust the Objects on the Page User Interface manually. [0096] The process described in FIG, 18 is repeated for ail Reference Client Page User interfaces 15-11. comprised in the Reference Client Device User Interface 11-1.
[0097] Finally, it is understood that the above descriptions are only illustrative of the principle of the current invention. Various alterations, improvements, and modifications will occur and are intended to be suggested hereby, and are within the spirit and scope of the invention. This invention can, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that the disciosare will be thorough and complete, and wil l fully convey the scope of the invention to those skilled in the arts. It is understood that the various embodiments of the invention, although different, are not mutually exclusive. In accordance with these principles, those skilled in the art can devise numerous modifications without departing from the spirit and scope of the invention. For example. In addition, a network and a portable system can exchange information wirelessly by using communication techniques such as Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Code Division Multiple Access (CDMA), Orthogonal Frequency Division Multiplexing (OFDM), Ultra Wide Band (UWB), Wi-Fi, WiGig, Bluetooth, etc. The network can comprise the phone network, IP (Internet protocol) network, 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- Mobil 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 System Apparatus comprising:
a Reference Client Device with a Reference Application Client with an first Operating system and a first screen of a first aspect ratio and a first screen resolution;
a pluralit of Objects displayed on a User Interface of the Reference Client Device;
a Client Translator and Generator recei ves the User Interface of the Reference Application Client and automatically generates and translates a plurality of User Interfaces of Application Clients other than the Reference Application Client for a plurality of Client Devices, each Application Client with one of a plurality of Operating Systems and a. corresponding one of a plurality of different screens with a different aspect ratio and a different screen resolution; and
the plurality of the User Interfaces of the Application Client display the plurality of Objects on the plurality of different screens.
2. The System Apparatus of claim I , further comprising:
an Automatic Application Client Generator receives data from a Client Data Model and generates a Reference Appl ication Client including the User Interface of the R eference Client Device.
3. The System Apparatus of claim 1, further comprising:
a set of Native Mobile Application Clients, a set of Native Nom-Mobile Application. Clients, Non- Native Non-Mobile Application Clients, Non-Native Non-Mobile Cloud Application Clients, and Non-Native Mobile Application Clients in the plurality of Application Clients.
4. The System Apparatus of clai 1 , further comprising:
a User interface Translator in the Client "Franslator and Generator that combines the User Interface of the Reference Client Device with the plurality of Client Devices to generate a plurality of User Interfaces that feature the plurality of Objects of the Reference Client Device for each of the plurality of Client Devices.
5. The System Apparatus of claim 1 , further comprising: the Reference Client Device providing a reference parameters to translate the reference parameters into the parameters used in the plurality of Client devices.
6. The System Apparatus of claim 1, further comprising:
the User interface of the Reference Application ("Merit with a plurality of pages.
7. The System Apparatus of claim Ϊ , further comprising".
a page with a Body Area wit a Top Navigation Area and/or a Bottom Navigation Area displaying the plurality of Objects.
8; The System Apparatus of claim 7, further comprising;
a Translation Grid that partitions the Body Area on the Reference Client Device and each Client Device in the plurality of Client Devices into Translation Grid Nodes, Translation Grid Height and. Translatio Grid width parameters; and
a set of transiation rules for the Reterence Client Device and each Client Device in the plurality of Client Devices.
9, The S ystem Apparatus of claim 8, wherein
the translation grid is used to place the plurality of Objects on. the Body Area of each Client Device in the plurality of Client Device.
JO, The System Apparatus of claim I , farther comprising:
a Content Object Picture with a Picture Format, Content Object Video with a Video Format, a Context Object Text with a Text Format, a Shape Object with a Shape format, and a Navigation Object with a Navigation Object Format forming the plurality of Objects.
11. A method of automatically generating an optimal translation comprising the steps of:
selecting each Client Device in a plurality of Client Devices, each Client Device with one of a plurality of Operating Systems and a corresponding one of a plurality of different screens each with a different aspect ratio and a different screen resolution;
providing a Page with a Body Area; adjusting a Translation Grid to the Body Area of a selected Client Device;
converting sizes and a resolution of each of a plurality of Objects;
placing the plurality of Objects on the Translation Grid of the selected Client Device tilling up a portion of the Translation Grid;
computing a Fill Score of the selecied Client Device of the filled portion of the Translation Grid area;
computing a Translation Ratio as the ratio of the Fill Score of the selected Client Device and the Fill Score of a Reference Client Device;
comparing if the computed Translation Ratio is less tha or equal to a Translation Threshold;
and
generating the optimal translation automatically of a User Interface of the Reference Client Device into a plurality of User Interfaces of each Client Device in the plurality of Client Devices.
.12. The method of claim 11 , further comprising the steps of:
placing the Fop Na vigation Area and/or Bottom Navigation Area at the l op and/or Bottom of the Body Area.
13. The method of claim 12, further comprising the steps of:
checking if the Top and/or Bottom Navigation Rules are valid.
14» The method of claim 1 1 : furthe comprising the steps of:
identifying the plurality of Objects from a list comprising Content Objec t Picture with a Picture Format Translation Rules, Content Object: Video with, a Video Format Translation Rules, a Context Object Text with a Text Format Translation Rules, a Shape Object with a Shape Format Translation Rules, and a Navigation Object with a Navigation Object Format Translation Rules.
15. The method of claim .11, wherein
a Translation Grid that partitions the Body Area into Translation. Grid Nodes, Translatio Grid Height, and, Translation Grid width parameters and
the translation grid is used to place the plurality of Objects on the Body Area of a plurality of different screens, simultaneously.
16. A method of identifying when a translation is suboptimal comprising the steps of: selecting each Client Device in a plurality of Client Devices, each Client Device with one of a plurality of Operating Systems and a corresponding one of a plurality of different screens each with a different aspect ratio and a different screen resolution;
providing a Page with a Body Area;
adjusting a Translation Grid to the Body Area of a selected Client Device;
converting sizes and a resolution of each of a plurality of Objects ;
(a) placing the plurality of Objects on the Translation Grid of the selected Client Device filling up a portion of the Translation Gr id;
(b) computing a Fill Score of the selected Client Device of the filled portion of the Translation Grid area;
(c) computing a Translation Ratio as the ratio of the Fill Score of the selected Client Device and the Fill Score of a Reference Client Device;
(d) comparing if the computed Translation Ratio is less than or equal to a Translation Threshold and identifying that the translation is optimal, and generating the optimal translation automatically of a User interface of the Reference Client Device into a plurality of User interfaces of each Client Device in the plurality of Client Devices., otherwise;
(e) determining if a maximum number of iterations ha ve been reached then the translation is suboptimal and identify the suboptimal translation to a System Solution Expert, otherwise;
applying Text Formatting Translation Rules to a Context Object Text from the plurality of Objects; applying Object Formatting Translation Rules to the remaining plurality of Objects;
computing new Object Sizes; and
repeating steps {a)-{e).
17. The method of claim 16, further comprising the steps of:
placing the Top Navigation Are and/or Bottom Navigation Area at the Top and or Bottom of the Body Area,
18. The method of claim 7, further comprising the steps of:
checking if the Top and/or Bottom Navigation Rules are valid.
1 . The method of claim 16, further comprising the steps of:
identifying the remaining plurality of Objects from a list comprising Content Object Picture with a
Picture Format Translation Rules, Content Object Video with a Video Foraiat Traosiation Rules, a Shape Object with a Shape Format Translation Rules, and a Navigation Object with a Navigation Object Format Translation Rules.
20. The method of claim 1 , wherein
a Translation Grid that partitions the Body Area into Transiation Grid Nodes, Translation. Grid Height and. Translation Grid width parameters and
the translation grid is used to place the plurality of Objects on the Body Area of a plurality of different screens, simultaneously.
PCT/US2014/027009 2013-03-15 2014-03-14 User interface and content translation system WO2014152149A1 (en)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US13/834,765 US20140280481A1 (en) 2013-03-15 2013-03-15 Hierarchical Application Client System
US13/833,589 2013-03-15
US13/833,669 2013-03-15
US13/833,775 2013-03-15
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,589 US10326825B2 (en) 2013-03-15 2013-03-15 Apparatus for single workflow for multi-platform mobile application creation and delivery
US13/833,775 US10320942B2 (en) 2013-03-15 2013-03-15 Dynamic user interface delivery system
US13/834,765 2013-03-15
US13/833,849 2013-03-15
US13/833,849 US10075560B2 (en) 2013-03-15 2013-03-15 User interface and content translation system

Publications (1)

Publication Number Publication Date
WO2014152149A1 true WO2014152149A1 (en) 2014-09-25

Family

ID=51581123

Family Applications (5)

Application Number Title Priority Date Filing Date
PCT/US2014/027024 WO2014152164A1 (en) 2013-03-15 2014-03-14 Hierarchical application client system
PCT/US2014/027009 WO2014152149A1 (en) 2013-03-15 2014-03-14 User interface and content translation system
PCT/US2014/026981 WO2014152128A1 (en) 2013-03-15 2014-03-14 Apparatus for single workflow for multi-platform mobile application creation and delivery
PCT/US2014/026989 WO2014152136A1 (en) 2013-03-15 2014-03-14 Method for single workflow for multi-platform mobile application creation and delivery
PCT/US2014/026995 WO2014152141A1 (en) 2013-03-15 2014-03-14 Dynamic user interface delivery system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/US2014/027024 WO2014152164A1 (en) 2013-03-15 2014-03-14 Hierarchical application client system

Family Applications After (3)

Application Number Title Priority Date Filing Date
PCT/US2014/026981 WO2014152128A1 (en) 2013-03-15 2014-03-14 Apparatus for single workflow for multi-platform mobile application creation and delivery
PCT/US2014/026989 WO2014152136A1 (en) 2013-03-15 2014-03-14 Method for single workflow for multi-platform mobile application creation and delivery
PCT/US2014/026995 WO2014152141A1 (en) 2013-03-15 2014-03-14 Dynamic user interface delivery system

Country Status (2)

Country Link
EP (2) EP2972813A1 (en)
WO (5) WO2014152164A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725632B2 (en) 2013-03-15 2020-07-28 Microsoft Technology Licensing, Llc In-place contextual menu for handling actions for a listing of items
US10949075B2 (en) 2014-11-06 2021-03-16 Microsoft Technology Licensing, Llc Application command control for small screen display
US11126329B2 (en) 2014-11-06 2021-09-21 Microsoft Technology Licensing, Llc Application command control for smaller screen display

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10275221B2 (en) * 2015-03-06 2019-04-30 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

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020078253A1 (en) * 2000-12-20 2002-06-20 Gyorgy Szondy Translation of digital contents based on receiving device capabilities
US20070150816A1 (en) * 2005-12-22 2007-06-28 Innopath Software, Inc. User interface authoring utility for changing user interface elements on wireless devices
US20100124939A1 (en) * 2008-11-19 2010-05-20 John Osborne Method and system for graphical scaling and contextual delivery to mobile devices
US20110164056A1 (en) * 2010-01-06 2011-07-07 Bas Ording Device, Method, and Graphical User Interface with Grid Transformations During Device Rotation
US7984060B2 (en) * 2003-07-15 2011-07-19 International Business Machines Corporation Model content provider with reusable components for supporting a plurality of GUI API's
US8170536B2 (en) * 2005-12-19 2012-05-01 Smarttrust Ab Provisioning content formatting in a mobile device management system
US20120213103A1 (en) * 2011-02-22 2012-08-23 Cheng-Wei Du Method and network device for packet content translation
US20130013671A1 (en) * 2011-07-08 2013-01-10 Rohan Relan System and method for providing interactive content to non-native application environments

Family Cites Families (16)

* 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
US7331035B2 (en) * 2000-05-05 2008-02-12 @ Hand Corporation System and method for mobile software application development and deployment
US20030050932A1 (en) * 2000-09-01 2003-03-13 Pace Charles P. System and method for transactional deployment of J2EE web components, enterprise java bean components, and application data over multi-tiered computer networks
US7461086B1 (en) * 2006-01-03 2008-12-02 Symantec Corporation Run-time application installation application layered system
AU2003299837B2 (en) * 2002-12-23 2010-03-25 Antenna Dexterra, Inc. Mobile data and software update system and method
US7620705B2 (en) * 2004-07-30 2009-11-17 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
US8561048B2 (en) * 2005-12-29 2013-10-15 Sap Ag Late and dynamic binding of pattern components
US8904342B2 (en) * 2007-05-25 2014-12-02 Zoot Enterprises, Inc. System and method for rapid development of software applications
US8020144B2 (en) * 2007-06-29 2011-09-13 Microsoft Corporation Metadata-based application deployment
AU2008229743A1 (en) * 2007-10-03 2009-04-23 Britesoft Solutions (M) Sdn Bhd Cutomizable Application System
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
US20120174079A1 (en) * 2010-06-23 2012-07-05 Ansca, Inc. Systems and methods for simulating a mobile device application
US8898629B2 (en) * 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a mobile application development and deployment platform

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020078253A1 (en) * 2000-12-20 2002-06-20 Gyorgy Szondy Translation of digital contents based on receiving device capabilities
US7984060B2 (en) * 2003-07-15 2011-07-19 International Business Machines Corporation Model content provider with reusable components for supporting a plurality of GUI API's
US8170536B2 (en) * 2005-12-19 2012-05-01 Smarttrust Ab Provisioning content formatting 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
US20100124939A1 (en) * 2008-11-19 2010-05-20 John Osborne Method and system for graphical scaling and contextual delivery to mobile devices
US20110164056A1 (en) * 2010-01-06 2011-07-07 Bas Ording Device, Method, and Graphical User Interface with Grid Transformations During Device Rotation
US20120213103A1 (en) * 2011-02-22 2012-08-23 Cheng-Wei Du Method and network device for packet content translation
US20130013671A1 (en) * 2011-07-08 2013-01-10 Rohan Relan System and method for providing interactive content to non-native application environments

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725632B2 (en) 2013-03-15 2020-07-28 Microsoft Technology Licensing, Llc In-place contextual menu for handling actions for a listing of items
US10949075B2 (en) 2014-11-06 2021-03-16 Microsoft Technology Licensing, Llc Application command control for small screen display
US11126329B2 (en) 2014-11-06 2021-09-21 Microsoft Technology Licensing, Llc Application command control for smaller screen display
US11422681B2 (en) 2014-11-06 2022-08-23 Microsoft Technology Licensing, Llc User interface for application command control

Also Published As

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

Similar Documents

Publication Publication Date Title
EP3132345B1 (en) Application managing application
US10999411B2 (en) User interface and content translation system
US11375045B2 (en) Dynamic user interface delivery system
WO2014152149A1 (en) User interface and content translation system
US20140258849A1 (en) Automatic Alignment of a Multi-Dimensional Layout
US9092241B2 (en) Multi-layer graphics painting for mobile devices
CN103677860B (en) A kind of method and apparatus for being used to update browser
KR20140078676A (en) Custom optimization of web pages
CN102469114A (en) Open mobile terminal widget application platform, realization method thereof and server
EP2790142A1 (en) Terminal apparatus, server and method of controlling the same
CN107783648B (en) Interaction method and system
CN109274705A (en) Service providing method, apparatus and system based on user identity
EP2641224A2 (en) Systems and methods for content development and management
CN104102759B (en) Building model image display system and method thereof
US20140280481A1 (en) Hierarchical Application Client System
US11016647B2 (en) Web-based client-server geometric design methods
AU2016354677B2 (en) A method and system for distributing electronic publishing content
CN107209674B (en) Method for managing assets and asset management system and machine using the same
Lange et al. Overcoming challenges in delivering services to social networks in location centric scenarios
CN115563422A (en) Display method and system of queuing and calling pictures, storage medium and electronic equipment
Metingu et al. Wireless communications infrastructure for collaboration in common space

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14768986

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 14.01.2016)

122 Ep: pct application non-entry in european phase

Ref document number: 14768986

Country of ref document: EP

Kind code of ref document: A1