WO2015092803A1 - A system and method for generating platform independent applications for computing devices - Google Patents

A system and method for generating platform independent applications for computing devices Download PDF

Info

Publication number
WO2015092803A1
WO2015092803A1 PCT/IN2013/000824 IN2013000824W WO2015092803A1 WO 2015092803 A1 WO2015092803 A1 WO 2015092803A1 IN 2013000824 W IN2013000824 W IN 2013000824W WO 2015092803 A1 WO2015092803 A1 WO 2015092803A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
application
client device
applications
registered
Prior art date
Application number
PCT/IN2013/000824
Other languages
French (fr)
Inventor
Varada Sreenivasa PRADEEP
Madhav Nagasandra VYASARAJU
Rajani Gorur KRISHNAIYENGAR
Original Assignee
Loremclaro Solutions Private Limited
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
Application filed by Loremclaro Solutions Private Limited filed Critical Loremclaro Solutions Private Limited
Publication of WO2015092803A1 publication Critical patent/WO2015092803A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Definitions

  • the present invention generally relates to application development systems and methods and particularly relates to a system and method for developing platform independent and display agonistic interpreted applications for computing devices, which runs on a native wireframe adapted to work across multiple combinations of devices, platforms and operating systems.
  • the same smartphone application must often be written for at least each of the Android iPhone, and Windows phone platforms, to say nothing of additional applications that may be needed for specific smartphones, desktops, laptops, palmtops, Point-of-Sale machines and so on. Not only must these different versions of applications be developed, but they must also be tested, maintained, and stored. Furthermore, even if the applications are developed to be as similar as possible across different devices and platforms, users may still experience different results when accessing the same application from different smartphones, or from a personal computer, or laptop.
  • application development, including both GUI and business logic, for both hand-held and conventional devices involves at least two sets of independent applications, namely, one for hand-held devices like mobile phones and one for desktop PCs.
  • an application developer may have to re-design, re-implement and re- test every application for each device, each operating system and each platform.
  • a change in any application environment leads to re-design/re-compilation of the GUI screens and business logic code for each device platform which in turn makes it labor intensive and increases application design time, time to market, and cost.
  • any widget in any GUI screens has the capability of being associated with dynamic, re-usable business logic. This association of the business logic to the GUI screens is not apparently available in comparable prior art, or existing products. Also, more efforts are required for synchronizing different code bases for different device platforms.
  • the various embodiments herein provide a system and method for generating platform independent applications for computing devices.
  • the system comprises of a plurality of client devices, a registration engine adapted to register the plurality of client devices, a template generator adapted for designing a plurality of client applications for the plurality of client devices, and a control server in communication with the plurality of client devices and the template generator.
  • the template generator herein is a graphical user interface module adapted to be used for developing the plurality of client applications programed to execute and render on the wireframe module installed in the client device.
  • the plurality of client applications is stored as platform independent interpretable command sets.
  • the control server is adapted for handling one or more requests from the plurality of client devices, enabling a client device specific wireframe module to be downloaded and installed on the specific client device and providing an application design interface on the plurality of client devices.
  • the registration engine is a native application adapted to receive data relating to client device credentials and the list of applications required by the wireframe module of the client device.
  • the data relating to user credentials comprises at least one of client device wireframe version information, IMEI number, MAC address, device type, device operating system, device operating system version and device display metrics including resolution and density.
  • the native applications refers to one or more application is designed to run on a devices operating system and machine firmware and are accessed through icons on the device home screen.
  • Native apps are installed through an application store (such as Google Play or Apple's App Store).
  • the native applications are developed specifically for one platform, and can take full advantage of all the device features, such as they can use the camera, the GPS, the accelerometer, the compass, the list of contacts, and so on. They can also incorporate gestures either standard operating-system gestures or new, app- defined gestures and use devices notification system and work offline.
  • the list of applications required by the client device wireframe module comprises the applications adapted to be executed and rendered on the client device with the wireframe module as a platform.
  • the list of applications required by the client device wireframe module is adapted to be updated periodically or when required by the user.
  • the template generator comprises of an application management module configured for creating and managing the plurality of client applications.
  • the plurality of client applications herein is a native application.
  • the template generator further comprises a user interface module configured for designing a plurality of user interface screens, a business logic module configured for appending business logic to one or more components of the plurality of Ul screens and a configuration module adapted for providing a framework for linking the plurality user interface screens for one or more applications.
  • the application management module is further adapted for modifying at least one of user interface screens, business logic and configuration data associated with the plurality of client applications, creating one or more versions of the plurality of client applications, generating one or more client applications according to a display metrics associated with the user device, deleting one or more client applications and enabling the user to store at least one of the selected application by performing a predefined set of actions.
  • the user interface module is further adapted for enabling the user of the client device to perform a set of actions on at least one of a selected application.
  • the set of actions herein comprises of adding a widget, customizing a widget, adding a new screen, deleting an existing screen, arranging/rearranging the widgets, resizing the widgets, designing a custom widget using a combination of basic widgets and generate files required to render the custom widget on the client device.
  • Each widget on the screen is associated with a specific code defining the functionality of the widget and designing a new application using a plurality of user interface elements.
  • the system herein comprises a data storage module adapted to function as a data repository.
  • the data storage module comprises of a server data store adapted for storing the plurality of client credentials and the plurality of user-defined applications, a local data store for storing a plurality of application data generated by the template generation engine during application development and an application data store for storing a plurality of client applications generated by the template generation engine.
  • the system further comprises a data security module provided in each of the control server and the plurality of client devices for encryption and decryption of the plurality of data exchanged between the control server and the client device.
  • the control server comprises a client authentication and application setup provider module configured for establishing a session with the plurality of client devices upon successful registration of the plurality of client devices, authenticating the registered client devices by comparing the information present in a received request and pre-stored information associated with the registered client devices upon receiving a request from the registered client devices and fetching the plurality of client applications for which the client devices are registered from a data store if the authentication of the registered client device is successful, retrieving the requested application and information associated with the requested application from the database based on the received request, wherein the requested application comprises of a plurality of screens linked with each other in a specific manner and each screen comprises of a plurality of graphical user interface (GUI) elements such as widgets arranged in a specific manner, identifying the device platform and the display metrics associated with the registered client device based on the information stored in the database upon retrieving the requested application and determining whether the registered client devices includes a standard display type based on the display metrics of each of the registered client devices present in the request.
  • GUI graphical user interface
  • control server comprises of an application data retrieval module configured for receiving a request for selecting an application among the plurality of pre-defined applications fetched from the application data store and providing the selected application along with the information associated with the requested application to the registered client device based on display metrics and device characteristics associated with the registered client device.
  • the control server comprises of a server data formatter module, a server data communication module and a server side client engine reconfiguration module.
  • the server data formatter module is configured for formatting the data associated with each of the plurality of client application to a format adaptable for the client device and the control server.
  • the control server comprises of a server data communication module configured for sending the plurality of registered applications fetched from the application data store to the plurality of client devices, applying a predefined scaling factor on one or more user interface elements associated with each of the plurality of client applications fetched from the application data store if the registered client devices do not have a standard display type and sending an acknowledgement in response to data sent by the registered client device by the control server.
  • the acknowledgement provided by the control server to the client device indicates that the server has successfully received the data.
  • the server side client engine reconfiguration module is configured for updating the plurality of client applications at the server data store when the registered client device has performed the pre-defined set of actions on the selected application and also for automatic reconfiguration of the wireframe module.
  • the client device wireframe module comprises of a handshake and application set up module, a parser module, a data formatter module, a display rendering unit and a client data communication module.
  • the handshake and application set up module is configured for receiving the selected application along with the information associated with the selected application from the control server and selecting one or more applications from the fetched plurality of client applications for performing an action at each of the selected one or more applications.
  • the parser module is adapted for parsing the selected application received from the control server along with the information associated with the selected application.
  • the data formatter module configured for converting the parsed application to a format compatible for the control server and an operating platform corresponding to each of the plurality of client devices.
  • the display rendering unit is adapted for displaying the fetched client applications on the display of each of the registered client devices based on one or more parameters resulting in an optimal scaling factor.
  • the control server applies a respective scaling factor to adjust the fetched client applications according to the characteristics of the display screen associated with each of the client device.
  • the client data communication module configured for terminating a session established between the registered client device and the control server if the registered client device does not receive any acknowledgement from the control server.
  • the system as disclosed by the present invention is a computationally reusable system using a master slave philosophy with a master driven wireframe for developing applications with dynamic business logic and graphical user interface (GUI) elements for the slave that is native, light weight, dynamically reconfigurable and platform and display agnostic.
  • GUI graphical user interface
  • Embodiments herein further disclose a method for generating platform independent applications for computing devices.
  • the method comprises of designing a plurality of user interface screens corresponding to a plurality of client applications, appending business logic to one or more components of the plurality of Ul screens, providing a framework for linking the plurality of user interface screens for one or more client applications and rendering the plurality of client applications on one or more client devices.
  • the plurality of client applications are programmed to be executed and rendered on a wireframe module installed in one or more client devices, where the plurality of client applications are stored as platform independent interpretable command sets.
  • the method further comprises of modifying at least one of user interface screens, business logic and configuration data associated with the plurality of client applications, creating one or more versions of the plurality of client applications, generating one or more client applications according to a display metrics associated with the user device, deleting one or more client applications and enabling the user to store at least one of the selected application by performing a predefined set of actions and the newly created application to be stored in a data store.
  • the set of actions performed on at least one of the selected application comprises of adding a widget, customizing a widget, adding a new screen, deleting an existing screen, arranging/rearranging the widgets, resizing the widgets and creating a custom widget
  • creating a custom widget comprises designing a custom widget using a combination of basic widgets and generate files required to render the custom widget on the client device.
  • Each widget on the screen is associated with a specific code defining the functionality of the widget.
  • the method of rendering the plurality of client applications on one or more client devices comprises of registering a plurality of client devices with a control server for downloading and installing a device specific wireframe module on the client device, providing an application design interface on the plurality of client devices on successful registration, establishing a communication session with the application server through the application design interface, sending a request by at least one of a registered client device to the application server for accessing a plurality of client applications for which the client device is registered, fetching the applications corresponding to each of the registered client device from a database and rendering the fetched applications to each of the registered client devices.
  • the method of fetching the plurality of client applications corresponding to each of the registered client device based on the request comprises of authenticating the registered client devices by comparing the information present in the received request and the stored information associated with the registered client devices upon receiving a request from the registered client devices and fetching the applications for which the client devices are registered from the database if the authentication of the registered client device is successful.
  • the method of rendering the fetched applications to each of the registered client device further comprises of retrieving the requested application and information associated with the requested application from the database based on the request, identifying the device platform and the display metrics associated with the registered client device based on the information obtained upon retrieving the requested application and providing the requested application along with the information associated with the requested application to the registered client device based on the identified platform and display metrics associated with the registered client device.
  • the one or more requested applications comprises of a plurality of screens linked with each other in a specific manner and each screen comprises of a plurality of graphical user interface (GUI) elements such as widgets arranged in a specific manner.
  • GUI graphical user interface
  • the method of rendering the fetched applications to each of the registered client devices further comprises of providing the selected application along with the information associated with the requested application to the registered client device based on display metrics and device characteristics associated with the registered client device, parsing the received requested application along with the information associated with the received requested application, converting the parsed application to a client device specific format based on the client device platform and displaying the converted application on the display screen of the client device based on the display metrics of the client device.
  • the method of identifying the platform and the display metrics associated with the registered client device comprises of determining whether the registered client devices includes a standard display type based on the display metrics of each of the registered client devices present in the request, wherein the standard display type is pre-defined at the application server, applying a predefined scaling factor on one or more user interface elements associated with each of the applications fetched from the application data store if the registered client devices do not have a standard display type.
  • Figure 1 is a block diagram illustrating architecture of a system for generating platform independent applications for computing devices, according to an embodiment herein.
  • Figure 2 is a block diagram illustrating the various components of the template generator such as those shown in Figure 1.
  • Figure 3 is a block diagram illustrating the functional components of a control server of Figure 1.
  • Figure 4 is a schematic representation of the client device wireframe module according to the embodiments herein.
  • Figure 5 is a flowchart illustrating an exemplary method for generating platform independent applications for computing devices, according to an embodiment herein.
  • Figure 6 is a flowchart illustrating a method of rendering generating platform independent applications to computing devices, according to another embodiment herein.
  • Figure 7 is a flowchart illustrating an exemplary method of enabling a user of the client device to perform a set of actions on a selected application, according to an embodiment herein.
  • Figure 8 is a flowchart illustrating an exemplary method of displaying an application on the display unit of the client device, according to an embodiment herein.
  • the present invention provides a system and method for generating platform independent applications for various computing devices.
  • the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
  • FIG. 1 is a block diagram illustrating architecture of a system for generating platform independent applications for computing devices, according to an embodiment herein.
  • the system 100 as depicted by Figure 1 comprises a registration engine 102, a template generator 104, a control server 106 and a plurality of client devices 110A-110B in communication with the control server 106.
  • the plurality of client devices 1 10 A, 1 10 B is at least one of a phablet, laptop or any conventional computing devices.
  • Each of the plurality of client devices 11 OA and 110B comprises of a wireframe module 12A, 112B and a data security module 114A and 112B.
  • the system 100 further comprises a data store 1 16 incorporating a local data store 118 and an application data store 120 associated with the template generator 104 and a server data store 122 associated with the control server 106. Further the control server 106 is provided with a server side data security module 108. The client device and the control sever utilizes the data security module 1 14 and 108 respectively for encryption and decryption of the data that is being communicated between each other.
  • the registration engine 102 enables the plurality of client devices 11 OA, 110B to be registered with the control server 106 for downloading the wireframe module 112 to the client device and to obtain a plurality of client specific applications.
  • the registration engine 102 can be a web interface or can be embedded within the control server 106.
  • the user provides client device credentials and defines a list of applications of interest during the registration.
  • the template generator 104 provides a graphic interface module adapted for designing a plurality of client applications for the plurality of client device 1 10A and 110B.
  • the template generator 104 enables the users to modify, delete and save the generated client applications, design GUI screens, add business logic components and link all the GUI screens for the client application.
  • the template generator 104 is adapted for developing the plurality of client applications programed to execute and render on the wireframe module 112 installed in the client device 110A, 110B.
  • the control server 106 is in communication with the plurality of client devices 110A- 110B and the template generator 104 for handling one or more requests from the plurality of client devices 110A-1 10B, enabling a client device specific wireframe module 112A- 12B to be downloaded and installed on the specific client device and providing an application design interface on the plurality of client devices 11 OA- HOB.
  • the control server 106 is further adapted for providing application management, device/user management, managing security, data management, communication management, deployment/ upgradation of applications.
  • the client device 110A-110B is prompted to provide all the credential information associated with the client device 11 OA- H OB.
  • the control server 106 authenticates the client device 106 based on the information stored in the server data store 122. If the client device is successfully authenticated by the control server 106, then the control server 106 sends an acknowledgement and a plurality of client applications for which the client device 110A-110B is registered.
  • the display render unit of the client device displays the received screens associated with the selected application on the display of the client device 110A-110B based on the display metrics of the client device 110A- 10B.
  • the credential information associated with the client device 110A-1 10B provided to the registration engine for registering with the control server 106 comprises, but not limited to wireframe module version information, IMEI number, MAC address, client device type, device OS, device OS version, device display details including resolution and density.
  • the registration engine 102 also enables the user to update the list of applications required by the wireframe module.
  • FIG 2 is a block diagram illustrating the various components of the template generator such as those shown in Figure 1.
  • the template generator 104 comprises of a graphical user interface module 202, a business logic module 204, a configuration module 206 and an application management module 208.
  • the template generator 104 is a GUI based engine which is used for designing a plurality of user interface screens corresponding to a plurality of client applications. Further, the template generator 104 appends the business logic to one or more components of the plurality of Ul screens. Furthermore, the template generator 104 is adapted for modifying at least one of user interface screens, business logic and configuration data associated with the plurality of client applications, creating one or more versions of the plurality of client applications, deleting one or more client applications, and enabling the user to store at least one of the selected application by performing a predefined set of actions and the newly created application to be stored in a data store.
  • the set of actions performed on at least one of the selected application comprises of adding a widget, customizing a widget, adding a new screen, deleting an existing screen, arranging/rearranging the widgets, resizing the widgets and generating a custom widget.
  • each widget on the screen is associated with a specific code defining the functionality of the widget.
  • the graphical user interface module 202 comprises of a set of GUI screens and each screen has a set of widgets like "text field", "button”, “checkbox” and graph elements like “bar graph", "pie chart” etc.
  • the GUI module 202 of the template generator 104 enables the user to design the set of GUI screens.
  • These GUI modules 202 comprise a plurality of planes such as a widget pane, a design pane and a tool bar.
  • the GUI screens are designed by creating a screen in the design pane, using the toolbar followed by choosing the widget components from the widget pane and placing the same on to the screen.
  • the user is allowed to perform at least the following set of actions on any widget component in the design pane such as resizing of widgets, moving of widgets, set properties for the widget and the like.
  • Each widget includes the respective properties like background color, width, height, etc. which are set by performing a specific action on the respective widget.
  • the property of a widget is of two types say, static and dynamic. If the static operation is chosen, then user types in the value of the property and if the dynamic option is chosen for a property, the user is asked to select/compose the program/script which is used to fetch the data for the widget.
  • Each GUI screen and the plurality of widgets in the screen are associated with a unique key through which the screens can be referred later.
  • the scripts/programs/executab!es that the user provides as dynamic data is placed in known locations in the application data store and can be accessed later on.
  • Graph elements are treated as another widget element.
  • the data for these graph elements is static or dynamic. If the graph element is static, then the user provides the file name where the data is present. If the graphic element is set to dynamic, then the user chooses a graph type and is allowed to compose/select a program which is used to fetch the data for the selected graph type.
  • the toolbar includes an option to save the individual screen components in at least two formats. All GUI widget components are saved as a set of commands which are interpretable and all graph components are saved in another format, in the application data store 120. Hence, data for any property of a widget component can be set as static or dynamic. If static data is set, then GUI module embeds the data directly into the command set and stores it as a part of the command set. If the data is set as dynamic, then the control server 106 fetches the data using subsequent scripts/programs/executables when it receives a request from the client device 110- 110B to send the screen. The data is sent as a part of the input data for widgets section, to the client device 110A-1 10B.
  • the GUI module 202 is further adapted for generating command sets for standard display types.
  • the template generator 104 fetches the list of standard display types by querying the server data store 122. If the client's display type is a non-standard one, server applies a suitable scaling factor on the GUI elements to make the GUI screen compatible for the client device. Further the control server 106 updates the control server data store 122 with the new configurations as a standard display type for the client device for future use. Generally, the scaling factor is determined using the physical display size and display density of the screen as determined from the client device 110, either by vendor provided application programming interface calls, or, failing which, by methods described herein.
  • the business logic unit module 204 is adapted to append business logic to one or more components of the plurality of Ul screens.
  • Any widget in an application can be associated with business logic.
  • a specific action on the widget allows the user to associate the BLU on that widget.
  • the BLU can either be selected or composed.
  • the BLU can be saved in a known location in the application data store 120.
  • Each BLU designed by the user follows a specific syntax, like each BLU provides the following output, the return value and data for the next screen (which includes widget ID and data for the widget) in a known location which is unique per transaction.
  • the configuration module 206 is adapted to provide a configuration framework to link all the screens that are designed using GUI module.
  • the toolbar has an option to enable this functionality.
  • a screen is linked to another screen, based on the BLU scripts that are provided for the different widgets in a screen.
  • the result of executing the BLU scripts of a specific screen is mapped to the next screen that is rendered on the client device 10.
  • the configuration module 206 saves the mapping information in the application data store 120. Also, the configuration module 206 includes a capability to view all the links created between different screens.
  • the application management module 208 is configured for creating and managing the plurality of client applications.
  • the application management module 208 allows the user to create one or more new applications. Further the application management module 208 provides for modification to the already generated GUI screen, business logic and configuration data associated with any application, creating and modifying different versions of the same application, designing device specific applications considering the configuration, operating platform and display metrics of the device. Furthermore, the application management module 208 allows the user to open an existing application into the template generator 104 so as to modify or redesign the application. Moreover, the application management module 208 allows an application along with the entire data for the application to be deleted/replaced with a new application.
  • FIG. 3 is a block diagram illustrating the functional components of a control server of Figure 1.
  • the control server 106 according to the embodiments herein comprises of, a configuration module 302, a client authentication and application set up provider module 304, an application data retrieval module 306, a server-side client device reconfiguration module 308, a server data format module 310, a server data communication module 312 and a server data security module 108.
  • the configuration module 302 is adapted for setting a plurality of configurable parameters required to run the control server 106.
  • the configurable parameters herein comprises at least one of the port on which control server 106 looks for connections, the server data store location and the application data store location.
  • the control server 106 interacts with the server configuration module 302 during startup and fetches the plurality of required parameters for configuration.
  • the server configuration module 302 is associated with a set of configuration data each giving information related to specific module like network configuration, server data store configuration, application configuration and so on.
  • the client authentication and application set up provider module 304 is configured for establishing a session with the plurality of client devices 110A-110B upon successful registration of the plurality of client devices 110A-110B.
  • the client authentication and application set up provider module 304 is also configured for authenticating the registered client devices 110A-110B by comparing the information present in a received request and pre-stored information associated with the registered client devices on receiving a request from the registered client devices.
  • the client devices 110 send the client device's display metrics including screen resolution, size etc to this module. If the received display metrics from the client device 10 is not of standard display type, then the control server performs scaling of the screen elements by applying a predetermined scaling factor on the screen elements.
  • the control server sends an appropriate scaling factor to the wireframe module of the client device 1 10 to handle the display of the GUI screens in the manner that all the applications fit within the display of the client device 110. Further the control server 106 saves the nonstandard display type obtained to the standard display type list, for future reference. Further, the client authentication and application set up provider module 302 is configured for fetching the plurality of applications for which the client devices are registered from a data store if the authentication of the registered client device is successful. Also, the client authentication and application set up provider module 302 is configured for retrieving the requested application and information associated with the requested application from the database based on the received request.
  • the requested application comprises of a plurality of screens linked with each other in a specific manner and each screen comprises of a plurality of graphical user interface (GUI) elements such as widgets arranged in a specific manner.
  • GUI graphical user interface
  • the client authentication and application set up provider module 302 is configured for identifying the device platform and the display metrics associated with the registered client device based on the information stored in the database upon retrieving the requested application and determining whether the registered client devices includes a standard display type based on the display metrics of each of the registered client devices 110 present in the request; wherein the standard display type is pre-defined at the control server 106.
  • the application data retrieval module 306 is adapted for receiving a request for selecting a client application among the plurality of pre-defined client applications fetched from the application data store. Further, the application data retrieval module 306 is configured for providing the selected application along with the information associated with the requested application to the registered client device 110 based on display metrics and device characteristics associated with the registered client device 110.
  • the template generator 104 generates at least three types of data, for instance, GUI data, BLU data and configuration data. Based on the request from the client device 110, the application data retrieval module 306 queries the server data store 122 to know the location of the application data store 120 and fetches the respective data from the application data store 120 and executes the same on the server side before responding to the client device 1 0.
  • the control server 106 Whenever the client device 110 is authenticated with the control server, the control server 106 sends the list of applications that the client device 110 is registered for. Once, a particular application is selected by the client device 10, the selected application information is sent to the control server 106. The control server 106 then chooses the screen 1 for the client application and transmits the same to the client device 10. The control server 106 then executes the script/program/executable associated with the dynamic properties for the widgets to fetch the data for the specific property. Once the data is ready, the data and the command set appropriate to the screen are sent to the client device 110. On receiving the data command sets, the client device 110 parses the data and renders the same on its display. Further, the users can interact with the display screen.
  • the client device 110 sends the entire screen information along with the data entered for different widgets, and the specific action information to the control server 106.
  • the control server 06 has a methodology to execute BLU script program and based on its output, the next screen information is prepared and steps of server executing the script/program/executable to the step of sending the next screen information to the client device 110 is repeated.
  • the control server 106 then stores each screen data received from the client device 110 in a temporary location, so that any widget's BLU can access any of the data entered for a widget in any other screen. After serving the entire application, the control server intimates the client device 110 that it has finished serving all the screens of the chosen application by sending an appropriate "End of Application" notification.
  • the server side client device reconfiguration module 308 is configured for updating the plurality of applications at the server data store 122 when the registered client device 110 has performed the pre-defined set of actions on the selected client application.
  • the control server 106 signals it using the reconfiguration module 308.
  • updating of the wireframe module 112 involves at least one of addition of any new widget component, change in syntax of the interpreter code, addition of any new property to the widget component, bug fixing in the specific application and so on.
  • the client device 110 sends the device version number, time stamp of when the wireframe module 112 was installed and other related information to the control server.
  • the module identifies any updates available to the current wireframe module 1 2 and informs the client device 0 accordingly.
  • the wireframe module 12 is then rebuilt with newer version at least in the following cases. In each of the cases, the version of the wireframe module 112 is updated and the information is sent to the client device 110 for reconfiguration. Firstly, if a defect is identified in the client device code by the server side client device reconfiguration module 308. Secondly, if there is any enhancement to the interpreter code to handle new features.
  • the application is rebuilt with newer version when a defect is found in the application or when an enhancement to the GUI or BLU or any of the data fetch mechanism is found or when there are any changes in the wireframe module 112 which trigger changes in the application's code. If the user updates the list of applications using the registration engine 102, then the client device 110 is informed about the same.
  • the server data format module 310 is configured for formatting the data associated each of the plurality of client application to a format adaptable for the client device 110 and the control server 106.
  • the data that is exchanged between the client device 110 and the control server 106 is in a manner that both the client device 1 10 and the control server 106 can understand, so formatting the data for communication is handled by this module 310.
  • the server data format module 310 handles the data parsing technique for the data received by the client device 110 as well. After data formatting is done, the formatted data is passed on to a data security module 108 where the data is encrypted before sending to the client device 110. Similarly any data received from the client device 1 10 is passed to the data security module 108 from decryption before performing the parsing.
  • the data received from the client device 110 comprises the client server handshake information.
  • the information allows the control server 106 to communicate any handshake information or information required by the client device 110 for any further processing.
  • the data received from the client device also comprises of an individual widget property information (data generated dynamically by the server 106), a GUI screen information and a chart information.
  • the individual widget property information corresponds to the data relating to properties of the widgets in the GUI screen which is generated dynamically by the server by executing a program, just before the server sends the GUI interpreter code.
  • the GUI screen information is provided in an interpretable language designed for the GUI screen.
  • the server data communication module 312 is adapted for sending the plurality of client applications fetched from the application data store to the plurality of client devices. Further, the server data communication module 312 is configured for applying a predefined scaling factor on one or more user interface elements associated with each of the plurality of applications fetched from the application data store if the registered client devices do not have a standard display type. Furthermore, the server data communication module 312 is configured for sending an acknowledgement in response to data sent by the registered client device, wherein the acknowledgement indicates that the server has successfully received the data.
  • server data communication module 312 module handles the timeouts/re-tries and retry for a stipulated time frame. After the stipulated time frame, the server data communication module 312 module notifies the control server about the communication error and the control server 106 terminates the established client connection, cleans up the temporary data, and assumes the client is closed. When the client reconnects at a later time, the connection is considered as fresh request from the client and necessitates re-authentication.
  • the server data security module 108 is configured for encrypting and decrypting the data communicated between the control server 106 and the client device 110.
  • FIG. 4 illustrates a detailed view of a wireframe module such as those shown in Figure 1.
  • the wireframe module comprises of a handshake and application setup module 402, a parser module 404, a client device reconfiguration module 406, a client device data formatter module 408, a display render unit 410, a client data communication module 412 and a client device data security module 114B.
  • the handshake and application setup module 402 is configured for receiving the selected application along with the information associated with the selected application from the control server. Further, the application setup module 402 is configured for selecting one or more client applications from the fetched plurality of applications for performing an action at each of the selected one or more applications.
  • the user registers the client device 10 using the registration engine 102 before the client device software is downloaded to the client device 110.
  • the client device When the client device first connects to the server, it sends its credential information to the server 106 as expected by the authentication module 302 in the control server 106.
  • the authentication module 302 in the control server 106 validates this data.
  • the control server 106 checks whether the client device requires a reconfiguration, and if required, sends the reconfiguration information.
  • the client devices 110 have the choice of reconfiguring itself immediately or postpone the reconfiguration to a future time. Once the authentication and client device reconfiguration process is complete, the control server 106 fetches the list of applications for which the client device has registered for and sends it to client device 110.
  • the parser module 404 is configured for parsing the selected application received from the control server along with the information associated with the selected application.
  • the data received by the client device 110 is always in an encrypted format. This data is decrypted by the data security module before the parser starts the parsing activity.
  • the main data parser comprises of many parsers to parse the respective sections of the data. For example, the handshake data parser parses the client server handshake information and takes further actions. One such action would be, it applies the scaling factor in the widget sizes before rendering the widgets. If the scaling factor is 1 , then no scaling is done. If any other value is set for the scaling factor, then the value is to applied on the widget's size, margin, and location.
  • the widget property data parser parses all the input data for the widget properties that are dynamically generated by the server and keeps it in a known location.
  • the interpreter code parser parses the interpretable code and prepare the screen widget that can be rendered by the display render unit 412 by using the native windowing tools available for the specific client OS.
  • the parser parses the GUI interpreter code and sets the data to the widget's property if it has received the data as a part of the interpreter code. If the data for a widget property is set to dynamic, in the interpreter code, then the parser understands that the data for the widget property has come separately. Consequently, the parser picks up the data and sets it to the specific property of a widget.
  • the parsing data for that widget is performed as illustrated herein. If the scaling factor received is not set to 1 , then the parser applies the scaling factor for all the width, height and margin information of individual widgets. Yet another type of parser referred as chart parser parses the chart related information. If the screen contains a chart element, then the chart related information come in a format that the chart parser understands. The main data parser fetches the chart related information and passes it to the chart parser. The chart parser parses the information and prepares a chart object widget in the form of an open source file format called scalable vector graphics or SVG files. The chart object widget is added to the screen object widget by the interpreter code parser.
  • the client device reconfiguration module 406 is configured for handling reconfiguration of the client device 110.
  • the server intimates the client device 110 if the client device 10 needs to reconfigure itself.
  • the client device is intimated to reconfigure itself.
  • the reconfiguration happens immediately. Further, if the user has the deprecated version of the client software, then the user is recommended to install the newer version.
  • a reconfiguration of applications is performed. In this case, if an update to the list of applications is received, the client device reconfiguration module 406 reconfigures the existing wireframe module to make use of the updated list of applications. Also, if a new version of an application exists then the user is given a choice to select the new version. Once the user selects the new version, from then onwards the same version is served.
  • the user is served with the newer version itself without giving a selection option to the user.
  • the user is warned about the same, and recommended to use the newer version.
  • the client data formatter module 408 is configured for converting the parsed application to a format compatible for the control server and an operating platform corresponding to each of the plurality of client devices.
  • the data that the client device 0 has to send to the server 106 is in a predefined known format which both the client device 1 0 and server 106 understand. This module formats the data in the specific format and sends the data to the control server 106.
  • the display render unit 410 is configured for displaying the fetched plurality of applications on the display of each of the registered client devices 110 based on a scaling factor, wherein the control server 106 applies a respective scaling factor to adjust the fetched plurality of applications according to the characteristics of the display screen associated with each of the client device 110 and displaying the converted application on the display screen of the client device 0 based on the display metrics of the client device 1 10.
  • the parser After the parser generates the screen object widget using the native language toolkit, the widget is displayed using the native windowing toolkit methods, which in turn displays the plurality widgets that are expected to be present as per the GUI screen information received.
  • the actions are either predefined in the client device code or the action is set to dynamic.
  • the client device 110 does not execute the default actions for the widget, rather shall send the entire screen information in a known formatted way to the server 106.
  • the server 106 processes the data and respond to the client device 1 0 for further actions/screens that needs to be performed/ rendered.
  • the client 110 After receiving "End of Application" from the server 106, the client 110 provides an option to the user to either continue with the same application or choose a different application or Exit.
  • the client data communication module 414 is configured for communicating any data to and from the client device 110 and terminating a session established between the registered client device 110 and the control server 106 if the registered client device 110 does not receive any acknowledgement from the control server 106.
  • FIG. 5 is a flowchart illustrating an exemplary method for generating platform independent applications for computing devices, according to an embodiment herein. At step 502, a plurality of user interface screens corresponding to a plurality of client applications are designed.
  • a business logic is appended to one or more components of the plurality of Ul screens.
  • a framework for linking the plurality of user interface screens for one or more client applications is created.
  • the pluralities of client applications are rendered to one or more client devices 110A-110B.
  • the plurality of client applications are stored as platform independent interpretable command sets, such that the codes are reusable for different operating platforms associated with one or more computing devices.
  • Figure 6 is a flowchart illustrating a process of rendering the plurality of client applications on one or more client devices, according to an embodiment herein.
  • a plurality of client devices are registered with the control server.
  • download a client device wireframe module from the control server to the client device on successful registration and provide an application design interface to the client device.
  • step 606 establish a communication session with the control server through the application design interface.
  • a request for accessing a plurality of applications is sent by at least one of the registered client device.
  • the registered client device is authenticated by comparing the information present in the request and the pre-stored information associated with the registered client device by the application server.
  • the plurality of client applications fetched from the data store are rendered to the registered client device. If the authentication fails, an error message is sent to the client device at 614 and the connection with the client device is terminated at step 616.
  • Figure 7 is a flowchart illustrating an exemplary method of enabling the user of the client device to perform a set of actions on a selected application, according to an embodiment herein.
  • the selected application along with the information associated with the selected application is received from the control server 106.
  • parse the selected application and the information associated with the application is received from the control server 106.
  • the parsed application is converted into client device specific format based on the operation platform on the client device.
  • the converted application is displayed on the display screen of the client device based on the display metrics of the client device.
  • the pre-defined set of actions herein comprises of adding a widget, customizing a widget, adding a new screen, deleting an existing screen, arranging/rearranging the widgets, resizing the widgets, creating a custom widget or designing a new application using a plurality of user interface elements.
  • each widget on the GUI screen is associated with a specific code defining the functionality of the widget.
  • FIG. 8 is a flowchart illustrating an exemplary method of displaying an application on the display unit of the client device, according to an embodiment herein.
  • the control server identifies the display metrics of the registered client devices based on the display characteristics stored in the server data store.
  • the control server verifies if the display of the client device is of a standard display type of not. If yes, then the client application is displayed on the client device based on the standard display metrics at step 806. If the display type is not standard, then at step 808, the control server applies a scaling factor on one or more user interface elements associated with each of the plurality of client applications fetched from the application data store.
  • the scaling factor is calculated using the physical display size and display density of the screen as determined from the device, either by vendor provided Application Programming Interface calls, or any such methods.
  • the application is displayed on the display screen of the client device corresponding to the display metrics of the client device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The embodiments herein provide a system and method for generating platform independent applications for computing devices. The system comprises of a plurality of client devices, a registration engine, a template generator adapted for designing a plurality of client applications and a control server. The template generator is a graphical user interface module adapted for developing the client applications programed to execute and render on the wireframe module installed in the client device. The plurality of client applications is stored as platform independent interpretable command sets. The control server is adapted for handling requests from the client devices, enabling a client device specific wireframe module to be downloaded and installed on the client device and providing an application design interface on the client devices. The wireframe module herein is a reusable, self-configurable, native client application adapted to execute and display a plurality of client applications on the client device.

Description

A SYSTEM AND METHOD FOR GENERATING PLATFORM INDEPENDENT APPLICATIONS FOR COMPUTING DEVICES
FIELD OF INVENTION
The present invention generally relates to application development systems and methods and particularly relates to a system and method for developing platform independent and display agonistic interpreted applications for computing devices, which runs on a native wireframe adapted to work across multiple combinations of devices, platforms and operating systems.
BACKGROUND OF THE INVENTION
The advent of wireless technology has led to increased number of hand-held devices amongst enterprises and consumers. Also, rapid evolution of technology platforms for both hand-held and conventional computing devices has contributed to significant increase in business dynamics in recent years. The increased dynamics leads to new demands on businesses and also opening up new opportunities that need to be addressed in a minimal time window.
Recent advancements in technology have resulted in increased usage of different devices and operating systems. Devices such as laptops, smartphones, tablets, and computer systems may operate on a variety of operating systems, including Linux, Android, Windows, OS X, BlackBerry, and iOS. Users of these devices and operating systems have grown to expect seamless access and increased functionality and interactivity. As a result, users also expect inter-compatibility between different devices. To adhere to the high standards set by users, developers and content providers must maintain and develop several versions and permutations for each application written for each different device and each different operating system. For example, the same smartphone application must often be written for at least each of the Android iPhone, and Windows phone platforms, to say nothing of additional applications that may be needed for specific smartphones, desktops, laptops, palmtops, Point-of-Sale machines and so on. Not only must these different versions of applications be developed, but they must also be tested, maintained, and stored. Furthermore, even if the applications are developed to be as similar as possible across different devices and platforms, users may still experience different results when accessing the same application from different smartphones, or from a personal computer, or laptop. Typically, application development, including both GUI and business logic, for both hand-held and conventional devices involves at least two sets of independent applications, namely, one for hand-held devices like mobile phones and one for desktop PCs. More specifically, due to a wide diversity of hand-held mobile devices with variations in device operating system, display size, display resolution, GUI libraries etc., an application developer may have to re-design, re-implement and re- test every application for each device, each operating system and each platform. As a result, a change in any application environment leads to re-design/re-compilation of the GUI screens and business logic code for each device platform which in turn makes it labor intensive and increases application design time, time to market, and cost.
For the purpose of developing B2B/B2C/P2P applications, any widget in any GUI screens has the capability of being associated with dynamic, re-usable business logic. This association of the business logic to the GUI screens is not apparently available in comparable prior art, or existing products. Also, more efforts are required for synchronizing different code bases for different device platforms.
The foregoing examples of the related art and limitations related therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent upon a reading of the specification and a study of the drawings. SUMMARY OF THE INVENTION
The various embodiments herein provide a system and method for generating platform independent applications for computing devices. The system comprises of a plurality of client devices, a registration engine adapted to register the plurality of client devices, a template generator adapted for designing a plurality of client applications for the plurality of client devices, and a control server in communication with the plurality of client devices and the template generator. The template generator herein is a graphical user interface module adapted to be used for developing the plurality of client applications programed to execute and render on the wireframe module installed in the client device. Here the plurality of client applications is stored as platform independent interpretable command sets. According to an embodiment herein, the control server is adapted for handling one or more requests from the plurality of client devices, enabling a client device specific wireframe module to be downloaded and installed on the specific client device and providing an application design interface on the plurality of client devices. According to an embodiment herein, the registration engine is a native application adapted to receive data relating to client device credentials and the list of applications required by the wireframe module of the client device. Here the data relating to user credentials comprises at least one of client device wireframe version information, IMEI number, MAC address, device type, device operating system, device operating system version and device display metrics including resolution and density.
According to an embodiment herein, the native applications refers to one or more application is designed to run on a devices operating system and machine firmware and are accessed through icons on the device home screen. Native apps are installed through an application store (such as Google Play or Apple's App Store). The native applications are developed specifically for one platform, and can take full advantage of all the device features, such as they can use the camera, the GPS, the accelerometer, the compass, the list of contacts, and so on. They can also incorporate gestures either standard operating-system gestures or new, app- defined gestures and use devices notification system and work offline.
According to an embodiment herein, the list of applications required by the client device wireframe module comprises the applications adapted to be executed and rendered on the client device with the wireframe module as a platform. The list of applications required by the client device wireframe module is adapted to be updated periodically or when required by the user.
According to an embodiment herein, the template generator comprises of an application management module configured for creating and managing the plurality of client applications. The plurality of client applications herein is a native application. The template generator further comprises a user interface module configured for designing a plurality of user interface screens, a business logic module configured for appending business logic to one or more components of the plurality of Ul screens and a configuration module adapted for providing a framework for linking the plurality user interface screens for one or more applications.
According to an embodiment herein, the application management module is further adapted for modifying at least one of user interface screens, business logic and configuration data associated with the plurality of client applications, creating one or more versions of the plurality of client applications, generating one or more client applications according to a display metrics associated with the user device, deleting one or more client applications and enabling the user to store at least one of the selected application by performing a predefined set of actions. According to an embodiment herein, the user interface module is further adapted for enabling the user of the client device to perform a set of actions on at least one of a selected application. The set of actions herein comprises of adding a widget, customizing a widget, adding a new screen, deleting an existing screen, arranging/rearranging the widgets, resizing the widgets, designing a custom widget using a combination of basic widgets and generate files required to render the custom widget on the client device. Each widget on the screen is associated with a specific code defining the functionality of the widget and designing a new application using a plurality of user interface elements.
According to an embodiment herein, the system herein comprises a data storage module adapted to function as a data repository. The data storage module comprises of a server data store adapted for storing the plurality of client credentials and the plurality of user-defined applications, a local data store for storing a plurality of application data generated by the template generation engine during application development and an application data store for storing a plurality of client applications generated by the template generation engine. According to an embodiment herein, the system further comprises a data security module provided in each of the control server and the plurality of client devices for encryption and decryption of the plurality of data exchanged between the control server and the client device. According to an embodiment herein, the control server comprises a client authentication and application setup provider module configured for establishing a session with the plurality of client devices upon successful registration of the plurality of client devices, authenticating the registered client devices by comparing the information present in a received request and pre-stored information associated with the registered client devices upon receiving a request from the registered client devices and fetching the plurality of client applications for which the client devices are registered from a data store if the authentication of the registered client device is successful, retrieving the requested application and information associated with the requested application from the database based on the received request, wherein the requested application comprises of a plurality of screens linked with each other in a specific manner and each screen comprises of a plurality of graphical user interface (GUI) elements such as widgets arranged in a specific manner, identifying the device platform and the display metrics associated with the registered client device based on the information stored in the database upon retrieving the requested application and determining whether the registered client devices includes a standard display type based on the display metrics of each of the registered client devices present in the request. The standard display type is predefined at the control server. According to an embodiment herein, the control server comprises of an application data retrieval module configured for receiving a request for selecting an application among the plurality of pre-defined applications fetched from the application data store and providing the selected application along with the information associated with the requested application to the registered client device based on display metrics and device characteristics associated with the registered client device.
According to an embodiment herein, the control server comprises of a server data formatter module, a server data communication module and a server side client engine reconfiguration module. The server data formatter module is configured for formatting the data associated with each of the plurality of client application to a format adaptable for the client device and the control server. The control server comprises of a server data communication module configured for sending the plurality of registered applications fetched from the application data store to the plurality of client devices, applying a predefined scaling factor on one or more user interface elements associated with each of the plurality of client applications fetched from the application data store if the registered client devices do not have a standard display type and sending an acknowledgement in response to data sent by the registered client device by the control server. The acknowledgement provided by the control server to the client device indicates that the server has successfully received the data. The server side client engine reconfiguration module is configured for updating the plurality of client applications at the server data store when the registered client device has performed the pre-defined set of actions on the selected application and also for automatic reconfiguration of the wireframe module.
According to an embodiment herein, the client device wireframe module comprises of a handshake and application set up module, a parser module, a data formatter module, a display rendering unit and a client data communication module. Here the handshake and application set up module is configured for receiving the selected application along with the information associated with the selected application from the control server and selecting one or more applications from the fetched plurality of client applications for performing an action at each of the selected one or more applications. The parser module is adapted for parsing the selected application received from the control server along with the information associated with the selected application. The data formatter module configured for converting the parsed application to a format compatible for the control server and an operating platform corresponding to each of the plurality of client devices. The display rendering unit is adapted for displaying the fetched client applications on the display of each of the registered client devices based on one or more parameters resulting in an optimal scaling factor. The control server applies a respective scaling factor to adjust the fetched client applications according to the characteristics of the display screen associated with each of the client device. The client data communication module configured for terminating a session established between the registered client device and the control server if the registered client device does not receive any acknowledgement from the control server. According to an embodiment herein, the system as disclosed by the present invention is a computationally reusable system using a master slave philosophy with a master driven wireframe for developing applications with dynamic business logic and graphical user interface (GUI) elements for the slave that is native, light weight, dynamically reconfigurable and platform and display agnostic.
Embodiments herein further disclose a method for generating platform independent applications for computing devices. The method comprises of designing a plurality of user interface screens corresponding to a plurality of client applications, appending business logic to one or more components of the plurality of Ul screens, providing a framework for linking the plurality of user interface screens for one or more client applications and rendering the plurality of client applications on one or more client devices. The plurality of client applications are programmed to be executed and rendered on a wireframe module installed in one or more client devices, where the plurality of client applications are stored as platform independent interpretable command sets.
According to an embodiment herein, the method further comprises of modifying at least one of user interface screens, business logic and configuration data associated with the plurality of client applications, creating one or more versions of the plurality of client applications, generating one or more client applications according to a display metrics associated with the user device, deleting one or more client applications and enabling the user to store at least one of the selected application by performing a predefined set of actions and the newly created application to be stored in a data store.
According to an embodiment herein, the set of actions performed on at least one of the selected application comprises of adding a widget, customizing a widget, adding a new screen, deleting an existing screen, arranging/rearranging the widgets, resizing the widgets and creating a custom widget, where creating a custom widget comprises designing a custom widget using a combination of basic widgets and generate files required to render the custom widget on the client device. Each widget on the screen is associated with a specific code defining the functionality of the widget.
According to an embodiment herein, the method of rendering the plurality of client applications on one or more client devices comprises of registering a plurality of client devices with a control server for downloading and installing a device specific wireframe module on the client device, providing an application design interface on the plurality of client devices on successful registration, establishing a communication session with the application server through the application design interface, sending a request by at least one of a registered client device to the application server for accessing a plurality of client applications for which the client device is registered, fetching the applications corresponding to each of the registered client device from a database and rendering the fetched applications to each of the registered client devices.
According to an embodiment herein, the method of fetching the plurality of client applications corresponding to each of the registered client device based on the request comprises of authenticating the registered client devices by comparing the information present in the received request and the stored information associated with the registered client devices upon receiving a request from the registered client devices and fetching the applications for which the client devices are registered from the database if the authentication of the registered client device is successful.
According to an embodiment herein, the method of rendering the fetched applications to each of the registered client device further comprises of retrieving the requested application and information associated with the requested application from the database based on the request, identifying the device platform and the display metrics associated with the registered client device based on the information obtained upon retrieving the requested application and providing the requested application along with the information associated with the requested application to the registered client device based on the identified platform and display metrics associated with the registered client device. Here, the one or more requested applications comprises of a plurality of screens linked with each other in a specific manner and each screen comprises of a plurality of graphical user interface (GUI) elements such as widgets arranged in a specific manner. According to an embodiment herein, the method of rendering the fetched applications to each of the registered client devices further comprises of providing the selected application along with the information associated with the requested application to the registered client device based on display metrics and device characteristics associated with the registered client device, parsing the received requested application along with the information associated with the received requested application, converting the parsed application to a client device specific format based on the client device platform and displaying the converted application on the display screen of the client device based on the display metrics of the client device.
According to an embodiment herein, the method of identifying the platform and the display metrics associated with the registered client device comprises of determining whether the registered client devices includes a standard display type based on the display metrics of each of the registered client devices present in the request, wherein the standard display type is pre-defined at the application server, applying a predefined scaling factor on one or more user interface elements associated with each of the applications fetched from the application data store if the registered client devices do not have a standard display type. The foregoing has outlined, in general, the various aspects of the invention and is to serve as an aid to better understanding the more complete detailed description which is to follow. In reference to such, there is to be a clear understanding that the present invention is not limited to the method or application of use described and illustrated herein. It is intended that any other advantages and objects of the present invention that become apparent or obvious from the detailed description or illustrations contained herein are within the scope of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
The other objects, features and advantages will occur to those skilled in the art from the following description of the preferred embodiment and the accompanying drawings in which: Figure 1 is a block diagram illustrating architecture of a system for generating platform independent applications for computing devices, according to an embodiment herein.
Figure 2 is a block diagram illustrating the various components of the template generator such as those shown in Figure 1.
Figure 3 is a block diagram illustrating the functional components of a control server of Figure 1. Figure 4 is a schematic representation of the client device wireframe module according to the embodiments herein.
Figure 5 is a flowchart illustrating an exemplary method for generating platform independent applications for computing devices, according to an embodiment herein. Figure 6 is a flowchart illustrating a method of rendering generating platform independent applications to computing devices, according to another embodiment herein.
Figure 7 is a flowchart illustrating an exemplary method of enabling a user of the client device to perform a set of actions on a selected application, according to an embodiment herein. Figure 8 is a flowchart illustrating an exemplary method of displaying an application on the display unit of the client device, according to an embodiment herein.
Although specific features of the present invention are shown in some drawings and not in others, this is done for convenience only as each feature may be combined with any or all of the other features in accordance with the present invention.
DETAILED DESCRIPTION OF THE INVENTION The present invention provides a system and method for generating platform independent applications for various computing devices. In the following detailed description of the embodiments of the invention, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims. Figure 1 is a block diagram illustrating architecture of a system for generating platform independent applications for computing devices, according to an embodiment herein. The system 100 as depicted by Figure 1 comprises a registration engine 102, a template generator 104, a control server 106 and a plurality of client devices 110A-110B in communication with the control server 106. The plurality of client devices 1 10 A, 1 10 B is at least one of a phablet, laptop or any conventional computing devices. Each of the plurality of client devices 11 OA and 110B comprises of a wireframe module 12A, 112B and a data security module 114A and 112B. The system 100 further comprises a data store 1 16 incorporating a local data store 118 and an application data store 120 associated with the template generator 104 and a server data store 122 associated with the control server 106. Further the control server 106 is provided with a server side data security module 108. The client device and the control sever utilizes the data security module 1 14 and 108 respectively for encryption and decryption of the data that is being communicated between each other.
The registration engine 102 enables the plurality of client devices 11 OA, 110B to be registered with the control server 106 for downloading the wireframe module 112 to the client device and to obtain a plurality of client specific applications. The registration engine 102 can be a web interface or can be embedded within the control server 106. The user provides client device credentials and defines a list of applications of interest during the registration. The template generator 104 provides a graphic interface module adapted for designing a plurality of client applications for the plurality of client device 1 10A and 110B. The template generator 104 enables the users to modify, delete and save the generated client applications, design GUI screens, add business logic components and link all the GUI screens for the client application. Here the template generator 104 is adapted for developing the plurality of client applications programed to execute and render on the wireframe module 112 installed in the client device 110A, 110B.
The control server 106 is in communication with the plurality of client devices 110A- 110B and the template generator 104 for handling one or more requests from the plurality of client devices 110A-1 10B, enabling a client device specific wireframe module 112A- 12B to be downloaded and installed on the specific client device and providing an application design interface on the plurality of client devices 11 OA- HOB. The control server 106 is further adapted for providing application management, device/user management, managing security, data management, communication management, deployment/ upgradation of applications.
According to an embodiment herein, once the client device 110A-110B registers itself with the control server 106, the client device 110A-110B is prompted to provide all the credential information associated with the client device 11 OA- H OB. On receiving the credential information associated with the client device 110A- 10B, the control server 106 authenticates the client device 106 based on the information stored in the server data store 122. If the client device is successfully authenticated by the control server 106, then the control server 106 sends an acknowledgement and a plurality of client applications for which the client device 110A-110B is registered. When the client device receives this information, the display render unit of the client device displays the received screens associated with the selected application on the display of the client device 110A-110B based on the display metrics of the client device 110A- 10B.
According to an embodiment herein, the credential information associated with the client device 110A-1 10B provided to the registration engine for registering with the control server 106 comprises, but not limited to wireframe module version information, IMEI number, MAC address, client device type, device OS, device OS version, device display details including resolution and density. The registration engine 102 also enables the user to update the list of applications required by the wireframe module.
Figure 2 is a block diagram illustrating the various components of the template generator such as those shown in Figure 1. The template generator 104 comprises of a graphical user interface module 202, a business logic module 204, a configuration module 206 and an application management module 208.
The template generator 104 is a GUI based engine which is used for designing a plurality of user interface screens corresponding to a plurality of client applications. Further, the template generator 104 appends the business logic to one or more components of the plurality of Ul screens. Furthermore, the template generator 104 is adapted for modifying at least one of user interface screens, business logic and configuration data associated with the plurality of client applications, creating one or more versions of the plurality of client applications, deleting one or more client applications, and enabling the user to store at least one of the selected application by performing a predefined set of actions and the newly created application to be stored in a data store. The set of actions performed on at least one of the selected application comprises of adding a widget, customizing a widget, adding a new screen, deleting an existing screen, arranging/rearranging the widgets, resizing the widgets and generating a custom widget. Here each widget on the screen is associated with a specific code defining the functionality of the widget.
The graphical user interface module 202 comprises of a set of GUI screens and each screen has a set of widgets like "text field", "button", "checkbox" and graph elements like "bar graph", "pie chart" etc. The GUI module 202 of the template generator 104 enables the user to design the set of GUI screens. These GUI modules 202 comprise a plurality of planes such as a widget pane, a design pane and a tool bar. The GUI screens are designed by creating a screen in the design pane, using the toolbar followed by choosing the widget components from the widget pane and placing the same on to the screen.
The user is allowed to perform at least the following set of actions on any widget component in the design pane such as resizing of widgets, moving of widgets, set properties for the widget and the like. Each widget includes the respective properties like background color, width, height, etc. which are set by performing a specific action on the respective widget. The property of a widget is of two types say, static and dynamic. If the static operation is chosen, then user types in the value of the property and if the dynamic option is chosen for a property, the user is asked to select/compose the program/script which is used to fetch the data for the widget. Each GUI screen and the plurality of widgets in the screen are associated with a unique key through which the screens can be referred later. The scripts/programs/executab!es that the user provides as dynamic data is placed in known locations in the application data store and can be accessed later on. Graph elements are treated as another widget element. The data for these graph elements is static or dynamic. If the graph element is static, then the user provides the file name where the data is present. If the graphic element is set to dynamic, then the user chooses a graph type and is allowed to compose/select a program which is used to fetch the data for the selected graph type.
The toolbar includes an option to save the individual screen components in at least two formats. All GUI widget components are saved as a set of commands which are interpretable and all graph components are saved in another format, in the application data store 120. Hence, data for any property of a widget component can be set as static or dynamic. If static data is set, then GUI module embeds the data directly into the command set and stores it as a part of the command set. If the data is set as dynamic, then the control server 106 fetches the data using subsequent scripts/programs/executables when it receives a request from the client device 110- 110B to send the screen. The data is sent as a part of the input data for widgets section, to the client device 110A-1 10B.
The GUI module 202 is further adapted for generating command sets for standard display types. The template generator 104 fetches the list of standard display types by querying the server data store 122. If the client's display type is a non-standard one, server applies a suitable scaling factor on the GUI elements to make the GUI screen compatible for the client device. Further the control server 106 updates the control server data store 122 with the new configurations as a standard display type for the client device for future use. Generally, the scaling factor is determined using the physical display size and display density of the screen as determined from the client device 110, either by vendor provided application programming interface calls, or, failing which, by methods described herein. The business logic unit module 204 is adapted to append business logic to one or more components of the plurality of Ul screens. Any widget in an application can be associated with business logic. A specific action on the widget allows the user to associate the BLU on that widget. The BLU can either be selected or composed. The BLU can be saved in a known location in the application data store 120. Each BLU designed by the user follows a specific syntax, like each BLU provides the following output, the return value and data for the next screen (which includes widget ID and data for the widget) in a known location which is unique per transaction. The configuration module 206 is adapted to provide a configuration framework to link all the screens that are designed using GUI module. The toolbar has an option to enable this functionality. A screen is linked to another screen, based on the BLU scripts that are provided for the different widgets in a screen. The result of executing the BLU scripts of a specific screen is mapped to the next screen that is rendered on the client device 10. The configuration module 206 saves the mapping information in the application data store 120. Also, the configuration module 206 includes a capability to view all the links created between different screens.
The application management module 208 is configured for creating and managing the plurality of client applications. The application management module 208 allows the user to create one or more new applications. Further the application management module 208 provides for modification to the already generated GUI screen, business logic and configuration data associated with any application, creating and modifying different versions of the same application, designing device specific applications considering the configuration, operating platform and display metrics of the device. Furthermore, the application management module 208 allows the user to open an existing application into the template generator 104 so as to modify or redesign the application. Moreover, the application management module 208 allows an application along with the entire data for the application to be deleted/replaced with a new application.
Figure 3 is a block diagram illustrating the functional components of a control server of Figure 1. The control server 106 according to the embodiments herein comprises of, a configuration module 302, a client authentication and application set up provider module 304, an application data retrieval module 306, a server-side client device reconfiguration module 308, a server data format module 310, a server data communication module 312 and a server data security module 108.
The configuration module 302 is adapted for setting a plurality of configurable parameters required to run the control server 106. The configurable parameters herein comprises at least one of the port on which control server 106 looks for connections, the server data store location and the application data store location. The control server 106 interacts with the server configuration module 302 during startup and fetches the plurality of required parameters for configuration. The server configuration module 302 is associated with a set of configuration data each giving information related to specific module like network configuration, server data store configuration, application configuration and so on.
The client authentication and application set up provider module 304 is configured for establishing a session with the plurality of client devices 110A-110B upon successful registration of the plurality of client devices 110A-110B. The client authentication and application set up provider module 304 is also configured for authenticating the registered client devices 110A-110B by comparing the information present in a received request and pre-stored information associated with the registered client devices on receiving a request from the registered client devices. During the authentication, the client devices 110 send the client device's display metrics including screen resolution, size etc to this module. If the received display metrics from the client device 10 is not of standard display type, then the control server performs scaling of the screen elements by applying a predetermined scaling factor on the screen elements. Alternatively, the control server sends an appropriate scaling factor to the wireframe module of the client device 1 10 to handle the display of the GUI screens in the manner that all the applications fit within the display of the client device 110. Further the control server 106 saves the nonstandard display type obtained to the standard display type list, for future reference. Further, the client authentication and application set up provider module 302 is configured for fetching the plurality of applications for which the client devices are registered from a data store if the authentication of the registered client device is successful. Also, the client authentication and application set up provider module 302 is configured for retrieving the requested application and information associated with the requested application from the database based on the received request. Here the requested application comprises of a plurality of screens linked with each other in a specific manner and each screen comprises of a plurality of graphical user interface (GUI) elements such as widgets arranged in a specific manner. Furthermore, the client authentication and application set up provider module 302 is configured for identifying the device platform and the display metrics associated with the registered client device based on the information stored in the database upon retrieving the requested application and determining whether the registered client devices includes a standard display type based on the display metrics of each of the registered client devices 110 present in the request; wherein the standard display type is pre-defined at the control server 106.
The application data retrieval module 306 is adapted for receiving a request for selecting a client application among the plurality of pre-defined client applications fetched from the application data store. Further, the application data retrieval module 306 is configured for providing the selected application along with the information associated with the requested application to the registered client device 110 based on display metrics and device characteristics associated with the registered client device 110. The template generator 104 generates at least three types of data, for instance, GUI data, BLU data and configuration data. Based on the request from the client device 110, the application data retrieval module 306 queries the server data store 122 to know the location of the application data store 120 and fetches the respective data from the application data store 120 and executes the same on the server side before responding to the client device 1 0. Whenever the client device 110 is authenticated with the control server, the control server 106 sends the list of applications that the client device 110 is registered for. Once, a particular application is selected by the client device 10, the selected application information is sent to the control server 106. The control server 106 then chooses the screen 1 for the client application and transmits the same to the client device 10. The control server 106 then executes the script/program/executable associated with the dynamic properties for the widgets to fetch the data for the specific property. Once the data is ready, the data and the command set appropriate to the screen are sent to the client device 110. On receiving the data command sets, the client device 110 parses the data and renders the same on its display. Further, the users can interact with the display screen. When a specific action on the widget which has a BLU associated with the widget occurs, the client device 110 sends the entire screen information along with the data entered for different widgets, and the specific action information to the control server 106. The control server 06 has a methodology to execute BLU script program and based on its output, the next screen information is prepared and steps of server executing the script/program/executable to the step of sending the next screen information to the client device 110 is repeated. The control server 106 then stores each screen data received from the client device 110 in a temporary location, so that any widget's BLU can access any of the data entered for a widget in any other screen. After serving the entire application, the control server intimates the client device 110 that it has finished serving all the screens of the chosen application by sending an appropriate "End of Application" notification.
The server side client device reconfiguration module 308 is configured for updating the plurality of applications at the server data store 122 when the registered client device 110 has performed the pre-defined set of actions on the selected client application. Once the client device 110 has installed the wireframe module 1 2, any future updates/upgrades to the wireframe module 112 or any updates to the list of client applications, the control server 106 signals it using the reconfiguration module 308. Here updating of the wireframe module 112 involves at least one of addition of any new widget component, change in syntax of the interpreter code, addition of any new property to the widget component, bug fixing in the specific application and so on. During the initial handshake of the client device 110 with the control server 106 as a part of the credentials, the client device 110 sends the device version number, time stamp of when the wireframe module 112 was installed and other related information to the control server. During the handshake, the module identifies any updates available to the current wireframe module 1 2 and informs the client device 0 accordingly. The wireframe module 12 is then rebuilt with newer version at least in the following cases. In each of the cases, the version of the wireframe module 112 is updated and the information is sent to the client device 110 for reconfiguration. Firstly, if a defect is identified in the client device code by the server side client device reconfiguration module 308. Secondly, if there is any enhancement to the interpreter code to handle new features. Lastly, if there is any enhancement to the default action handlers present in the client device 110. On the other hand, the application is rebuilt with newer version when a defect is found in the application or when an enhancement to the GUI or BLU or any of the data fetch mechanism is found or when there are any changes in the wireframe module 112 which trigger changes in the application's code. If the user updates the list of applications using the registration engine 102, then the client device 110 is informed about the same.
The server data format module 310 is configured for formatting the data associated each of the plurality of client application to a format adaptable for the client device 110 and the control server 106. The data that is exchanged between the client device 110 and the control server 106 is in a manner that both the client device 1 10 and the control server 106 can understand, so formatting the data for communication is handled by this module 310. The server data format module 310 handles the data parsing technique for the data received by the client device 110 as well. After data formatting is done, the formatted data is passed on to a data security module 108 where the data is encrypted before sending to the client device 110. Similarly any data received from the client device 1 10 is passed to the data security module 108 from decryption before performing the parsing. The data received from the client device 110 comprises the client server handshake information. The information allows the control server 106 to communicate any handshake information or information required by the client device 110 for any further processing. The data received from the client device also comprises of an individual widget property information (data generated dynamically by the server 106), a GUI screen information and a chart information. The individual widget property information corresponds to the data relating to properties of the widgets in the GUI screen which is generated dynamically by the server by executing a program, just before the server sends the GUI interpreter code. The GUI screen information is provided in an interpretable language designed for the GUI screen.
The server data communication module 312 is adapted for sending the plurality of client applications fetched from the application data store to the plurality of client devices. Further, the server data communication module 312 is configured for applying a predefined scaling factor on one or more user interface elements associated with each of the plurality of applications fetched from the application data store if the registered client devices do not have a standard display type. Furthermore, the server data communication module 312 is configured for sending an acknowledgement in response to data sent by the registered client device, wherein the acknowledgement indicates that the server has successfully received the data. In an embodiment, if the control sever 106 does not receive any acknowledgement from the client device 110 for any data communication due to network breakdown, then server data communication module 312 module handles the timeouts/re-tries and retry for a stipulated time frame. After the stipulated time frame, the server data communication module 312 module notifies the control server about the communication error and the control server 106 terminates the established client connection, cleans up the temporary data, and assumes the client is closed. When the client reconnects at a later time, the connection is considered as fresh request from the client and necessitates re-authentication. The server data security module 108 is configured for encrypting and decrypting the data communicated between the control server 106 and the client device 110. The server 106 and client device 110 communicate with the security module 108 for data encryption or decryption. The data security module 108 uses customized levels of encryption technique along with standard encryption algorithm to make data transmission more tight and secure. Figure 4 illustrates a detailed view of a wireframe module such as those shown in Figure 1. In Figure 4, the wireframe module comprises of a handshake and application setup module 402, a parser module 404, a client device reconfiguration module 406, a client device data formatter module 408, a display render unit 410, a client data communication module 412 and a client device data security module 114B.
The handshake and application setup module 402 is configured for receiving the selected application along with the information associated with the selected application from the control server. Further, the application setup module 402 is configured for selecting one or more client applications from the fetched plurality of applications for performing an action at each of the selected one or more applications. According to an embodiment of the present invention, the user registers the client device 10 using the registration engine 102 before the client device software is downloaded to the client device 110. When the client device first connects to the server, it sends its credential information to the server 106 as expected by the authentication module 302 in the control server 106. When the client device sends its credentials, the authentication module 302 in the control server 106 validates this data. If the authentication is successful, the control server 106 checks whether the client device requires a reconfiguration, and if required, sends the reconfiguration information. The client devices 110 have the choice of reconfiguring itself immediately or postpone the reconfiguration to a future time. Once the authentication and client device reconfiguration process is complete, the control server 106 fetches the list of applications for which the client device has registered for and sends it to client device 110.
The parser module 404 is configured for parsing the selected application received from the control server along with the information associated with the selected application. The data received by the client device 110 is always in an encrypted format. This data is decrypted by the data security module before the parser starts the parsing activity. The main data parser comprises of many parsers to parse the respective sections of the data. For example, the handshake data parser parses the client server handshake information and takes further actions. One such action would be, it applies the scaling factor in the widget sizes before rendering the widgets. If the scaling factor is 1 , then no scaling is done. If any other value is set for the scaling factor, then the value is to applied on the widget's size, margin, and location. The widget property data parser parses all the input data for the widget properties that are dynamically generated by the server and keeps it in a known location. The interpreter code parser parses the interpretable code and prepare the screen widget that can be rendered by the display render unit 412 by using the native windowing tools available for the specific client OS. The parser parses the GUI interpreter code and sets the data to the widget's property if it has received the data as a part of the interpreter code. If the data for a widget property is set to dynamic, in the interpreter code, then the parser understands that the data for the widget property has come separately. Consequently, the parser picks up the data and sets it to the specific property of a widget. If the GUI screen contains a chart element, then the parsing data for that widget is performed as illustrated herein. If the scaling factor received is not set to 1 , then the parser applies the scaling factor for all the width, height and margin information of individual widgets. Yet another type of parser referred as chart parser parses the chart related information. If the screen contains a chart element, then the chart related information come in a format that the chart parser understands. The main data parser fetches the chart related information and passes it to the chart parser. The chart parser parses the information and prepares a chart object widget in the form of an open source file format called scalable vector graphics or SVG files. The chart object widget is added to the screen object widget by the interpreter code parser.
The client device reconfiguration module 406 is configured for handling reconfiguration of the client device 110. In an embodiment, when the client device 110 starts and sends handshake information to the control server 106, the server intimates the client device 110 if the client device 10 needs to reconfigure itself. In an alternate embodiment, after serving an application when the client device110 comes back to the screen which has the list of application, then the client device is intimated to reconfigure itself. There may be at least two case of reconfiguration. In the first case, the reconfiguration of the client software is performed. That is, if the reconfiguration is for a new feature/enhancement in the client device software, then the client device has the choice of reconfiguring itself immediately or postpones the reconfiguration to a future time. Also, if the reconfiguration is for a defect fix or if the user has a version of the client software which is obsolete, then the reconfiguration happens immediately. Further, if the user has the deprecated version of the client software, then the user is recommended to install the newer version. In another case, a reconfiguration of applications is performed. In this case, if an update to the list of applications is received, the client device reconfiguration module 406 reconfigures the existing wireframe module to make use of the updated list of applications. Also, if a new version of an application exists then the user is given a choice to select the new version. Once the user selects the new version, from then onwards the same version is served. Further, if the application version the user has is obsoleted or the newer application version is for a defect fix, then the user is served with the newer version itself without giving a selection option to the user. Moreover, if the user has the deprecated version of an application, the user is warned about the same, and recommended to use the newer version.
The client data formatter module 408 is configured for converting the parsed application to a format compatible for the control server and an operating platform corresponding to each of the plurality of client devices. The data that the client device 0 has to send to the server 106 is in a predefined known format which both the client device 1 0 and server 106 understand. This module formats the data in the specific format and sends the data to the control server 106. The display render unit 410 is configured for displaying the fetched plurality of applications on the display of each of the registered client devices 110 based on a scaling factor, wherein the control server 106 applies a respective scaling factor to adjust the fetched plurality of applications according to the characteristics of the display screen associated with each of the client device 110 and displaying the converted application on the display screen of the client device 0 based on the display metrics of the client device 1 10. After the parser generates the screen object widget using the native language toolkit, the widget is displayed using the native windowing toolkit methods, which in turn displays the plurality widgets that are expected to be present as per the GUI screen information received. For some of widgets on the screen, the actions are either predefined in the client device code or the action is set to dynamic. If the BLU property in the widget is set to DYNAMIC, then the client device 110 does not execute the default actions for the widget, rather shall send the entire screen information in a known formatted way to the server 106. The server 106 processes the data and respond to the client device 1 0 for further actions/screens that needs to be performed/ rendered. After receiving "End of Application" from the server 106, the client 110 provides an option to the user to either continue with the same application or choose a different application or Exit. The client data communication module 414 is configured for communicating any data to and from the client device 110 and terminating a session established between the registered client device 110 and the control server 106 if the registered client device 110 does not receive any acknowledgement from the control server 106. Every data that is sent by client device 110 to the server 106 is acknowledged appropriately by the server 106. If the client device 110 does not receive any acknowledgment from the server 106 for any data communication due to network breakdown, then this module handles the timeouts/re-tries and re-tries for a stipulated time frame. After the stipulated time frame expires, then this module notifies an appropriate error message to the user and exits from the application. Further, the user has to restart the application as a fresh launch. Figure 5 is a flowchart illustrating an exemplary method for generating platform independent applications for computing devices, according to an embodiment herein. At step 502, a plurality of user interface screens corresponding to a plurality of client applications are designed. At step 504, a business logic is appended to one or more components of the plurality of Ul screens. At step 506, a framework for linking the plurality of user interface screens for one or more client applications is created. At step 508, the pluralities of client applications are rendered to one or more client devices 110A-110B.
According to an embodiment herein, the plurality of client applications are stored as platform independent interpretable command sets, such that the codes are reusable for different operating platforms associated with one or more computing devices. Figure 6 is a flowchart illustrating a process of rendering the plurality of client applications on one or more client devices, according to an embodiment herein. At step 602, a plurality of client devices are registered with the control server. At step 604, download a client device wireframe module from the control server to the client device on successful registration and provide an application design interface to the client device. At step 606, establish a communication session with the control server through the application design interface. At step 608, a request for accessing a plurality of applications is sent by at least one of the registered client device. At step 610, the registered client device is authenticated by comparing the information present in the request and the pre-stored information associated with the registered client device by the application server. At step 612, it is determined whether the authentication is successful or not. If the authentication is successful, then a plurality of client applications corresponding to each of the registered client device is fetched from the database at 618. At step 620, the plurality of client applications fetched from the data store are rendered to the registered client device. If the authentication fails, an error message is sent to the client device at 614 and the connection with the client device is terminated at step 616.
Figure 7 is a flowchart illustrating an exemplary method of enabling the user of the client device to perform a set of actions on a selected application, according to an embodiment herein. At step 702, the selected application along with the information associated with the selected application is received from the control server 106. At step 704, parse the selected application and the information associated with the application. At step 706, the parsed application is converted into client device specific format based on the operation platform on the client device. At step 708, the converted application is displayed on the display screen of the client device based on the display metrics of the client device. At step 710, performing a predefined set of actions on the selected application by the user of the client device. The pre-defined set of actions herein comprises of adding a widget, customizing a widget, adding a new screen, deleting an existing screen, arranging/rearranging the widgets, resizing the widgets, creating a custom widget or designing a new application using a plurality of user interface elements. Here each widget on the GUI screen is associated with a specific code defining the functionality of the widget.
Figure 8 is a flowchart illustrating an exemplary method of displaying an application on the display unit of the client device, according to an embodiment herein. At step 802, the control server identifies the display metrics of the registered client devices based on the display characteristics stored in the server data store. At step 804, the control server verifies if the display of the client device is of a standard display type of not. If yes, then the client application is displayed on the client device based on the standard display metrics at step 806. If the display type is not standard, then at step 808, the control server applies a scaling factor on one or more user interface elements associated with each of the plurality of client applications fetched from the application data store. The scaling factor is calculated using the physical display size and display density of the screen as determined from the device, either by vendor provided Application Programming Interface calls, or any such methods. At step 810, the application is displayed on the display screen of the client device corresponding to the display metrics of the client device.
The present embodiments have been described with reference to specific example embodiments; it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the various embodiments. Furthermore, the various devices, modules, and the like described herein may be enabled and operated using hardware circuitry, firmware, and/or software embodied in a machine readable medium. Although the embodiments herein are described with various specific embodiments, it will be obvious for a person skilled in the art to practice the invention with modifications. However, all such modifications are deemed to be within the scope of the claims. It is also to be understood that the following claims are intended to cover all of the generic and specific features of the embodiments described herein and all the statements of the scope of the embodiments which as a matter of language might be said to fall there between.

Claims

We Claim:
1. A system for generating platform independent applications for computing devices, the system comprises of:
a plurality of client devices;
a registration engine adapted to register the plurality of client devices;
a template generator adapted for designing a plurality of client applications for the plurality of client devices; and
a control server in communication with the plurality of client devices and the template generator adapted for :
handling one or more requests from the plurality of client devices;
enabling a client device specific wireframe module to be downloaded and installed on the specific client device; and
providing an application design interface on the plurality of client devices; wherein the template generator is a graphical user interface module adapted to be used for developing the plurality of client applications programed to execute and render on the wireframe module installed in the client device, where the plurality of client applications are stored as platform independent interpretable command sets. 2. The system of claim 1, wherein the registration engine is a native application adapted to receive data relating to client device credentials and the list of applications required by the wireframe module of the client device.
3. The system of claim 2, wherein the data relating to user credentials comprises at least one of client device wireframe version information, IMEI number, MAC address, device type, device operating system, device operating system version and device display metrics including resolution and density.
4. The system of claim 2, wherein the list of applications required by the client device wireframe module comprises the applications adapted to be executed and rendered on the client device with the wireframe module as a platform.
5. The system of claim 2, wherein the list of applications required by the client device wireframe module is adapted to be updated periodically or when required by the user.
6. The system of claim 1 , wherein the template generator comprises of:
an application management module configured for creating and managing the plurality of client applications, where the plurality of client application is a native application;
a user interface module configured for designing a plurality of user interface screens;
a business logic module configured for appending business logic to one or more components of the plurality of Ul screens; and
a configuration module adapted for providing a framework for linking the plurality user interface screens for one or more applications.
7. The system of claim 6, wherein the application management module is further adapted for:
modifying at least one of user interface screens, business logic and configuration data associated with the plurality of client applications;
creating one or more versions of the plurality of client applications;
generating one or more client applications according to a display metrics associated with the user device;
deleting one or more client applications; and
enabling the user to store at least one of the selected application by performing a predefined set of actions.
8. The system of claim 6, wherein the user interface module is further adapted for: enabling the user of the client device to perform a set of actions on at least one of a selected application, wherein the set of actions comprises of adding a widget, customizing a widget, adding a new screen, deleting an existing screen, arranging/rearranging the widgets, resizing the widgets and designing a custom widget., where each widget on the screen is associated with a specific code defining the functionality of the widget; and
designing a new application using a plurality of user interface elements.
9. The system of claim 1 , further comprises a data storage module adapted to function as a data repository, wherein the data storage module comprises of: a server data store adapted for storing the plurality of client credentials and the plurality of user-defined applications;
a local data store for storing a plurality of application data generated by the template generator during application development; and
an application data store for storing a plurality of client applications generated by the template generator.
10. The system of claim 1, further comprises a data security module provided in each of the control server and the plurality of client devices for encryption and decryption of the plurality of data exchanged between the control server and the client device.
11. The system of claim 1 , wherein the control server comprises a client authentication and application setup provider module configured for:
establishing a session with the plurality of client devices upon successful registration of the plurality of client devices;
authenticating the registered client devices by comparing the information present in a received request and pre-stored information associated with the registered client devices upon receiving a request from the registered client devices; fetching the plurality of client applications for which the client devices are registered from a data store if the authentication of the registered client device is successful;
retrieving the requested application and information associated with the requested application from the database based on the received request, wherein the requested application comprises of a plurality of screens linked with each other in a specific manner and each screen comprises of a plurality of graphical user interface (GUI) elements such as widgets arranged in a specific manner;
identifying the device platform and the display metrics associated with the registered client device based on the information stored in the database upon retrieving the requested application; and
determining whether the registered client devices includes a standard display type based on the display metrics of each of the registered client devices present in the request; wherein the standard display type is pre-defined at the control server.
12. The system as claimed in claim 1 , wherein the control server comprises of an application data retrieval module configured for:
receiving a request for selecting an application among the plurality of predefined applications fetched from the application data store; and
providing the selected application along with the information associated with the requested application to the registered client device based on display metrics and device characteristics associated with the registered client device.
13. The system as claimed in claim 1, wherein the control server comprises of a server data formatter module configured for:
formatting the data associated with each of the plurality of client application to a format adaptable for the client device and the control server.
14. The system as claimed in claim 1, wherein the control server comprises of a server data communication module configured for: sending the plurality of registered applications fetched from the application data store to the plurality of client devices;
applying a predefined scaling factor on one or more user interface elements associated with each of the plurality of client application fetched from the application data store if the registered client devices do not have a standard display type; and sending an acknowledgement in response to data sent by the registered client device by the control server, wherein the acknowledgement indicates that the server has successfully received the data. 15. The system as claimed in claim 1 , wherein the control server comprises of a server side client engine reconfiguration module configured for:
updating the plurality of client applications at the server data store when the registered client device has performed the pre-defined set of actions on the selected application. 6. The system of claim 1 , wherein the client device wireframe module comprises of a handshake and application set up module configured for:
receiving the selected application along with the information associated with the selected application from the control server; and
selecting one or more client applications from the plurality of client applications fetched from the data store for performing an action at each of the selected one or more applications.
17. The system of claim 1 , wherein the client device wireframe module comprises of a parser module configured for:
parsing the selected application received from the control server along with the information associated with the selected application.
18. The system of claim 1 , wherein the client device wireframe module comprises of a data formatter module configured for: converting the parsed application to a format compatible for the control server and an operating platform corresponding to each of the plurality of client devices. 19. The system of claim 1 , wherein the client device wireframe module comprises of a display rendering unit configured for:
displaying the fetched plurality of client applications on the display of each of the registered client devices based on a scaling factor, wherein the control server applies a respective scaling factor to adjust the fetched plurality of client applications according to the characteristics of the display screen associated with each of the client device; and
displaying the converted application on the display screen of the client device based on the display metrics of the client device. 20. The system of claim 1 , wherein the client device wireframe module comprises of a client data communication module configured for:
terminating a session established between the registered client device and the control server if the registered client device does not receive any acknowledgement from the control server.
21. A method for generating platform independent applications for computing devices, the method comprising steps of:
designing a plurality of user interface screens corresponding to a plurality of client applications;
appending business logic to one or more components of the plurality of Ul screens;
providing a framework for linking the plurality of user interface screens for one or more client applications; and
rendering the plurality of client applications on one or more client devices; wherein the plurality of client applications are programed to be executed and rendered on a wireframe module installed in one or more client devices, where the plurality of client applications are stored as platform independent interpretable command sets.
22. The method of claim 21 , further comprises of:
modifying at least one of user interface screens, business logic and configuration data associated with the plurality of client applications;
creating one or more versions of the plurality of client applications;
generating one or more client applications according to a display metrics associated with the user device;
deleting one or more client applications; and
enabling the user to store at least one of the selected application by performing a predefined set of actions and the newly created application to be stored in a data store.
23. The method of claim 22, wherein the set of actions performed on at least one of the selected application comprises of adding a widget, customizing a widget, adding a new screen, deleting an existing screen, arranging/rearranging the widgets, resizing the widgets and providing a custom widget, where each widget on the screen is associated with a specific code defining the functionality of the widget.
24. The method of claim 21, wherein rendering the plurality of client applications on one or more client devices comprises of:
registering a plurality of client devices with a control server for downloading and installing a device specific wireframe module on the client device;
providing an application design interface on the plurality of client devices on successful registration; establishing a communication session with the control server through the application design interface;
sending a request by at least one of a registered client device to the control server for accessing a plurality of applications for which the client device is registered;
fetching the plurality of applications corresponding to each of the registered client device from a database; and
rendering the fetched plurality of applications to each of the registered client devices.
25. The method of claim 24, wherein registering the plurality of client devices comprises of:
providing a plurality of credentials associated with each of the plurality of client devices; where the plurality of credentials comprises at least one of a device platform and display metrics of the client device; and
defining the plurality of applications based on the user's interest.
26. The method of claim 24, wherein fetching the plurality of applications corresponding to each of the registered client device based on the request comprises of:
authenticating the registered client devices by comparing the information present in the received request and the stored information associated with the registered client devices upon receiving a request from the registered client devices; and
fetching the plurality of applications for which the client devices are registered from the database if the authentication of the registered client device is successful.
27. The method of claim 24, wherein rendering the fetched applications to each of the registered client device comprises of: retrieving the requested application and information associated with the requested application from the database based on the request, wherein the one or more requested applications comprises of a plurality of screens linked with each other in a specific manner and each screen comprises of a plurality of graphical user interface (GUI) elements such as widgets arranged in a specific manner;
identifying the device platform and the display metrics associated with the registered client device based on the information stored in the database upon retrieving the requested application; and
providing the requested application along with the information associated with the requested application to the registered client device based on the identified platform and display metrics associated with the registered client device.
28. The method of claim 24, wherein rendering the fetched plurality of applications to each of the registered client devices further comprises of:
providing the selected application along with the information associated with the requested application to the registered client device based on display metrics and device characteristics associated with the registered client device;
parsing the received requested application along with the information associated with the received requested application;
converting the parsed application to a client device specific format based on the client device platform; and
displaying the converted application on the display screen of the client device based on the display metrics of the client device, 29. The method of claim 24, wherein identifying the platform and the display metrics associated with the registered client device comprises of:
determining whether the registered client devices includes a standard display type based on the display metrics of each of the registered client devices present in the request, wherein the standard display type is pre-defined at the control server; applying a device specific scaling factor on one or more user interface elements associated with each of the plurality of applications fetched from the application data store if the registered client devices do not have a standard display type; and
displaying the application on the display screen of the client device corresponding to the display metrics of the client device.
PCT/IN2013/000824 2013-12-16 2013-12-31 A system and method for generating platform independent applications for computing devices WO2015092803A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN5868/CHE/2013 2013-12-16
IN5868CH2013 2013-12-16

Publications (1)

Publication Number Publication Date
WO2015092803A1 true WO2015092803A1 (en) 2015-06-25

Family

ID=53402221

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IN2013/000824 WO2015092803A1 (en) 2013-12-16 2013-12-31 A system and method for generating platform independent applications for computing devices

Country Status (1)

Country Link
WO (1) WO2015092803A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106527937A (en) * 2016-10-26 2017-03-22 维沃移动通信有限公司 Mobile terminal widget adding method and mobile terminal

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610577B1 (en) * 2004-05-29 2009-10-27 Sun Microsystems, Inc. Method for developing platform independent launchable applications
WO2010001324A2 (en) * 2008-06-30 2010-01-07 Mominis Ltd Method of generating and distributing a computer application
WO2012131727A1 (en) * 2011-03-31 2012-10-04 Lukup Media Pvt Ltd System and method for creating and delivering platform independent interactive applications on user devices
US20130152072A1 (en) * 2011-12-07 2013-06-13 Yahoo! Inc. Development of Platform Independent Applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610577B1 (en) * 2004-05-29 2009-10-27 Sun Microsystems, Inc. Method for developing platform independent launchable applications
WO2010001324A2 (en) * 2008-06-30 2010-01-07 Mominis Ltd Method of generating and distributing a computer application
WO2012131727A1 (en) * 2011-03-31 2012-10-04 Lukup Media Pvt Ltd System and method for creating and delivering platform independent interactive applications on user devices
US20130152072A1 (en) * 2011-12-07 2013-06-13 Yahoo! Inc. Development of Platform Independent Applications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106527937A (en) * 2016-10-26 2017-03-22 维沃移动通信有限公司 Mobile terminal widget adding method and mobile terminal
CN106527937B (en) * 2016-10-26 2019-10-15 维沃移动通信有限公司 A kind of adding method and mobile terminal of mobile terminal widget

Similar Documents

Publication Publication Date Title
US10908896B2 (en) Application wrapping for application management framework
US9258669B2 (en) Registering a mobile application with a server
CN111279320B (en) API repository implementing microservice configuration and management
US9811394B1 (en) Application programming interface recipe cloning
KR102341154B1 (en) High-speed application for installation on mobile devices for permitting remote configuration of such mobile devices
US10664388B2 (en) Continuous integration testing for network-based applications
WO2019000627A1 (en) Software customization server, method, program and computer readable storage medium
US20110154305A1 (en) System and method for remotely compiling multi-platform native applications for mobile devices
US20150378714A1 (en) Providing Context-Specific Software Updates to Client Applications
US10521243B2 (en) Pre/post deployment customization
US20230058197A1 (en) Distributed software development pipeline for coherent graphical user interface
US9692808B2 (en) Code path directives for controlling in-app experiences
CN112100078A (en) Method, device and equipment for generating interface test case
US10705895B2 (en) Device based automated tool integration for lifecycle management platform
US10078532B2 (en) Resource management method and device for terminal system among multiple operating systems
US20240086180A1 (en) Safe modular upgrades
US10181016B2 (en) Information processing device, information processing method, and program
KR101437943B1 (en) Smart platform apparatus, system and contol method
US10073689B2 (en) Managing application lifecycles within a federation of distributed software applications
US8286131B2 (en) Environment definition files for an environment definition system
WO2015092803A1 (en) A system and method for generating platform independent applications for computing devices
US20130007622A1 (en) Demonstrating a software product
JP5959535B2 (en) Server, method, and program for causing a computer to function as a server for accessing a mobile terminal from a client via a network
US10038598B2 (en) Leveraging and extending mobile operating system MDM protocol
CN106775900B (en) Calling method and system of application browser

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: 13899451

Country of ref document: EP

Kind code of ref document: A1

WA Withdrawal of international application
NENP Non-entry into the national phase

Ref country code: DE