In some aspects, different applications may often experience a similar repeated pattern of accepting user inputs and displaying them. This repeated pattern of interaction between a user and different applications may be observed particularly with respect to transactional applications. Based on the requirements of the different applications, the user patterns of interaction might vary to some extent. However, a significant core of interactions may be the same or similar across the different applications. In this manner, there might be a certain amount of duplication of user interface (UI) development across the spectrum of the different applications.
There thus exists a need and a desire to provide a mechanism to facilitate the development of user interfaces for different applications, including mechanisms that are efficient and consistent across the different applications.
The present disclosure presents, in some embodiments, methods and apparatuses that facilitate the building of parameter user interfaces (UIs) in a model driven manner. In some embodiments, the parameter UIs built using aspects of the present disclosure are provided by a framework wherein a backend system is decoupled from a user interface frontend, while providing a standardized experience for end users across multiple different applications having their UI built based on the model-driven parameter model framework herein.
In some aspects, the present disclosure focuses on the modeling, display and storage of various user input fields (i.e., parameters) that an application may expose via a UI. As used herein, a user input field is referred to as a “parameter” for a UI. In some aspects, parameters of parameter model defining a UI herein can be specified by a developer or other entity during a designtime (DT) and at least one input value can be obtained from an end user during a runtime (RT) that uses the parameter model. The at least one input value corresponds to the parameters of the parameter model defined during the DT.
To address concepts and aspects of a parameter model framework herein, two main components are proposed as shown in
Framework 100 also includes a frontend UI framework 150. The UI framework 150 may consume the parameter model services provided by a parameter model service 115. Model service 115 includes a plurality of services to coordinate functions and communication between parameter model 120 of backend 110 and frontend 105. Frontend 105 may further render an instance of a UI as defined by a parameter model herein. The rendered parameter model may solicit or request input values from an end-user based on the parameter model defined for the application.
In addition to the parameter model 120 including the DT metadata 125 and the RT metadata 130, backend 110 includes the parameter model service 115 that provides services that may provide the UI and the applications with the capability to access the DT metadata (Model Metadata Service 135), parameter module invocation capabilities (Module Service 140), and the reading and persisting of parameter values (Persistence Service 145). In some aspects and based on a text language file specification of individual models in a “ParameterModel” table, a translation service may provide an automated translation for, as an example, section header text and parameter texts using Translation Service 132, in accordance with some embodiments herein.
Referring again to the parameter model described above with respect to
Model renderer 155 may be responsible for displaying/translating the parameter model into appropriate UI Controls. Those controls may be either simple controls (e.g., input fields of a single value) with representing scalar values or also complex ones (e.g. tables, lists, etc).
In some embodiments, a dynamic interaction handler 160 of frontend 105 includes dynamic event handlers based on the “ParameterModelSectionDependency” as specified/defined the parameter model to enrich the controls that render the predefined model. For example, based on user interactions with a rendered UI as specified by a parameter model, the corresponding controls can be adapted or configured in response to user selections (e.g., selection of single items in list, select/unselect of checkboxes). In some embodiments, those changes can also be interpreted by the handler in the way to update other dependent controls.
In some instances, after a user finishes an interaction with a rendered UI, it is possible to store/translate the frontend based UI values in a RT persistence for a parameter model using the parameter model services 115. In some embodiments, storing and translating of user input values as a RT persistence can include one or more of verification checks and conversions, if necessary. Model persister 165 may facilitate the storing and translating of UI values.
Regarding a parameter model specified by the backend, applications may have the capability to specify the parameter models for their respective application UIs using the parameter model metadata 120.
In the example of
In some embodiments, applications can specify their model definition via entries in the parameter model DT tables, such as those shown at 205-235. Illustrative DT tables are presented below, as an example of some embodiments. It is noted that other types and configurations of data structures may be used to represent the DT metadata.
Referring to
A “ParameterModule” table 700 is shown in
Referring to
In some embodiments, a “ParameterModule” can be associated with or belong to a parameter that could be generically called by the UI for more advanced interactions on the parameter (e.g., type ahead modules, value help modules, etc.). The fields of an example “ParameterModule” table 700.
Regarding the RT aspects of the metadata defining a parameter model in some embodiments herein, a RT Persistence is specified as shown in
In some aspects, a database representation of the parameter model specified in
At operation 1505, a user interface is defined as a parameter model. That is, the user interface being defined is represented as a parameter model where the parameter model is a data structure specifying user input fields of the user interface being defined. A user interface developer (or other entity) having knowledge of UIs may specify the particular parameters to be included in the parameter model.
Process 1500 continues to operation 1510 where the parameter model defined at operation 1505 is delivered to a user interface framework. As previously discussed, the UI framework may comprise a frontend of a system through which a user interacts with a framework to build a UI based on a model-based representation of the parameters defining a UI and the values for the UI parameters.
At operation 1515, the parameter model may be rendered to a user in a user understandable format to solicit at least one input value for the input fields of the user interface from a user. The frontend of a UI framework herein may present a generic visualization of the UI as defined by the parameter model to an end-user via a browser, for example, and request the user provide values for one or more parameters. In some aspects, a translation service may operate or otherwise be responsible for returning the UI labels of parameters and section in the language corresponding to the users UI locale.
At operation 1520, the at least one input value from the user may be persisted in a data storage facility. In some aspects, the storage facility may be a database system or an aspect therein.
In some embodiments, a developer of a UI control need not be concerned about where the individual fields are filled with data, as the generic services facilitate the corresponding backend calls.
In some embodiments, one or more aspects of the parameter model service disclosed herein can provide technological advantages, improvements, and efficiencies, including but not limited to a Model based specification of application interaction and UI intents, a consistent user experience across different applications (e.g., a same or similar behavior, low/same learning curve, etc.) and a consistent error handling strategy for the different applications having the same or similar UI. In some regards, the present disclosure can provide a central point of adherence regarding fulfillment of product standards by building multiple applications and/or services completely on a same UI “standard”. In some embodiments, an application having a UI built in accordance with the framework disclosed herein may be pre-delivered with a set of widely used controls (e.g. DropDowns, Input Fields. Tables, Checkboxes) and may be extensible with other UI controls, not only those that are currently included in the application or service.
In some embodiments herein, a backend parameter model and a frontend handler are completely decoupled from each other. In some embodiments, a model services layer may facilitate and support communication between the backend and the frontend of the framework.
Aspects of the processes, systems, and services discussed hereinabove may be implemented through any tangible implementation of one or more of tangible software, firmware, hardware, and combinations thereof, including processor executable instructions embodied on one or more types of media and executable by apparatuses including processors.
Processor 1605 communicates with a storage device 1630. Storage device 1630 may comprise any appropriate information storage device, including combinations of magnetic storage devices (e.g., a hard disk drive), optical storage devices, solid state drives, and/or semiconductor memory devices. In some embodiments, storage device 1630 may comprise a cache management engine, including in some configurations an in-memory database.
Storage device 1630 may store program code or instructions 1635 that may provide processor executable instructions for building model-based UIs, in accordance with processes herein. Processor 1605 may perform the instructions of the program instructions for parameter model engine 1635 to thereby operate in accordance with any of the embodiments described herein. Program instructions 1635 may be stored in a compressed, uncompiled and/or encrypted format. Program instructions for parameter model engine 1635 may furthermore include other program elements, such as an operating system, a database management system, and/or device drivers used by the processor 1605 to interface with, for example, other systems, devices, and peripheral devices (not shown in
All systems and processes discussed herein may be embodied in program code stored on one or more tangible, non-transitory computer-readable media. Such media may include, for example, a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid state Random Access Memory (RAM) or Read Only Memory (ROM) storage units. Embodiments are therefore not limited to any specific combination of hardware and software.
Aspects of the processes, systems, and services discussed hereinabove may be implemented through any tangible implementation of one or more of tangible software, firmware, hardware, and combinations thereof, including processor executable instructions embodied on one or more types of media and executable by apparatuses including processors.
Although embodiments have been described with respect to certain contexts, some embodiments may be associated with other types of devices, systems, and configurations, either in part or whole, without any loss of generality.
The embodiments described herein are solely for the purpose of illustration. Those in the art will recognize other embodiments which may be practiced with modifications and alterations.
Although embodiments have been described with respect to certain contexts, some embodiments may be associated with other types of devices, systems, and configurations, either in part or whole, without any loss of generality.
The embodiments described herein are solely for the purpose of illustration. Those in the art will recognize other embodiments which may be practiced with modifications and alterations.
Number | Name | Date | Kind |
---|---|---|---|
7062502 | Kesler | Jun 2006 | B1 |
7412658 | Gilboa | Aug 2008 | B2 |
7424485 | Kristiansen | Sep 2008 | B2 |
7451403 | Srinivasan | Nov 2008 | B1 |
7917888 | Chong | Mar 2011 | B2 |
8296665 | Stienhans | Oct 2012 | B2 |
9891897 | Sullivan | Feb 2018 | B2 |
20030145305 | Ruggier | Jul 2003 | A1 |
20040015819 | Romano-Critchley | Jan 2004 | A1 |
20040148586 | Gilboa | Jul 2004 | A1 |
20040153992 | Molina-Moreno | Aug 2004 | A1 |
20050071749 | Goerke | Mar 2005 | A1 |
20050071801 | Jesse | Mar 2005 | A1 |
20050071803 | Cherdron | Mar 2005 | A1 |
20050071805 | Lauterbach | Mar 2005 | A1 |
20060004845 | Kristiansen | Jan 2006 | A1 |
20060074730 | Shukla | Apr 2006 | A1 |
20060074732 | Shukla | Apr 2006 | A1 |
20060074733 | Shukla | Apr 2006 | A1 |
20060074734 | Shukla | Apr 2006 | A1 |
20060074736 | Shukla | Apr 2006 | A1 |
20070168936 | Shaburov | Jul 2007 | A1 |
20070220035 | Misovski | Sep 2007 | A1 |
20080120593 | Keren | May 2008 | A1 |
20090006987 | Simhi | Jan 2009 | A1 |
20090077119 | Speth | Mar 2009 | A1 |
20100077070 | Baikov | Mar 2010 | A1 |
20100131857 | Prigge | May 2010 | A1 |
20100242049 | Li | Sep 2010 | A1 |
20100251133 | Beringer | Sep 2010 | A1 |
20110054970 | Minsky | Mar 2011 | A1 |
20110153624 | Aigner | Jun 2011 | A1 |
20110239269 | Wahl | Sep 2011 | A1 |
20120054262 | Demant | Mar 2012 | A1 |
20120054659 | Demant | Mar 2012 | A1 |
20120166977 | Demant | Jun 2012 | A1 |
20120198364 | Bornheimer | Aug 2012 | A1 |
20120198365 | Bornheimer | Aug 2012 | A1 |
20120198368 | Bornheimer | Aug 2012 | A1 |
20130326470 | Jentsch | Dec 2013 | A1 |
20140033168 | Solovey | Jan 2014 | A1 |
20140181703 | Sullivan | Jun 2014 | A1 |
20140237443 | Pana | Aug 2014 | A1 |
20150363090 | Sarangdhar | Dec 2015 | A1 |
20170031881 | Chen | Feb 2017 | A1 |
Entry |
---|
Joel M. Rahman et al., Making frameworks more useable: using model introspection and metadata to develop model processing tools, Oct. 29, 2002, [Retrieved on Sep. 13, 2018]. Retrieved from the internet: <URL: https://ac.els-cdn.com/S1364815203001531/1-s2.0-S1364815203001531-main.pdf?> 10 Pages (275-284) (Year: 2002). |
Sungjoo Kang et al., A Design of the conceptual Architecture for a Multitenant SaaS Application Platform, 2011, [Retrieved on Sep. 13, 2018]. Retrieved from the internet: <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5954363> 6 Pages (462-467) (Year: 2011). |
Number | Date | Country | |
---|---|---|---|
20170123769 A1 | May 2017 | US |
Number | Date | Country | |
---|---|---|---|
62248504 | Oct 2015 | US |