Model driven user interface

A user interface generation method for model driven architecture (MDA) architected applications includes defining multiple job functions in a model for an instance of an MDA architected application, each referencing one or more user interface (UI) experiences for the application, each experience including a single menu and one or more screens, each screen including one or more UI components. Thereafter, each end user of the instance is associated with one or more job functions. Then, in response to receiving an event on an event bus servicing the instance, an event handler for UI events in the instance selects an experience corresponding to the defined job function for the end user specified by the event, retrieves a screen of the selected experience based upon the event and transmits for display to the specified end user a specification of a graphical UI representative of the retrieved screen including the single menu for the selected experience.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to the field of user interface generation and more particularly to the presentation of a user interface in a model driven architecture.

Description of the Related Art

A model driven architecture (MDA) refers to a software development paradigm in which the functional specification of a computer program is held separate from the underlying technical implementation of the functional specification. The functional specification becomes a model reflective of the underlying real-world problem addressed by the computer program—the computation independent model (CIM). The functional specification for the computer program is then produced as a transformation of the CIM into a model expressed according to a modeling language such as the Unified Modeling Language (UML) using business process modeling (BPM) notation—the platform independent model (PIM). Consequently, in MDA, the model exists independently from the constraints of the computing platform supporting different instances of the model during run-time so that the model can be ported to nearly any underlying computing platform—the platform specific model (PSM) from which source code may then be automatically generated.

In MDA, the user interface is the representation of the underlying model and is expressed as part of the PIM. All actions taken as part of the MDA architected program remain part of the PIM, for example, screen navigation. Yet, the user interface, including navigation options, may vary based upon a role of an end user interacting with the user interface. Indeed, in an MDA architected program, the role of each end user in of itself is included as a portion of the PIM. Consequently, changing the user experience for a particular role in an MDA architected program requires the intervention of an application programmer skilled in the art of MDA development. So much, though, runs counter to the trend of self-service, solution-space driven software development in which the end user, irrespective of technical wherewithal, elect to adapt a generic application to the specific needs of the end user.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the present invention address deficiencies of the art in respect to user interface definition in an MDA architected application and provide a novel and non-obvious method, system and computer program product for model driven user interface generation in an MDA application. In an embodiment of the invention, a user interface generation method for MDA architected applications begins with the definition of multiple job functions in a model for an instance of an MDA architected application, and the definition of multiple different roles in the model for the instance of the MDA architected application. Each role corresponds to a different level of access control in which a corresponding end user is permitted to access certain data in the MDA architecture application as well as certain operations presented within a user interface (UI) for the MDA architected application. Each job function, turn, references one or more UI experiences for the application. As well, each of the UI experiences includes a single menu and one or more screens. Each of the screens, in turn, includes one or more UI components. Thereafter, each end user of the instance of the application may be associated with one or more of the job functions.

Then, in response to the receipt of an event on an event bus of a host computing platform servicing the instance, an event handler for user interface events in the instance of the application selects one of the UI experiences corresponding to one of the defined job functions for an end user specified by the event. Optionally, the selection of the one of the UI experiences can be further performed in respect to a defined role for the end user. Thereafter, the event handler retrieves a screen of the selected one of the UI experiences based upon the event. Finally, the event handler provides to a client computer of the specified one of the end users, a specification of a graphical UI representative of the retrieved screen including the single menu for the selected one of the UI experiences with operations presented in the single menu and in UI components of the screen accounting for the role of the end user.

In one aspect of the embodiment, each corresponding one of the UI components specifies a location in a corresponding one of the screens at which the corresponding one of the UI components is to be rendered. In another aspect of the embodiment, a graphical UI may be transmitted to the client computer, providing a palette of graphical representations of a set of the different components associated with a corresponding one of the job functions for the specified one of the end users and a blank canvas of a new screen for one of the UI experiences of the corresponding one of the job functions. As such, different selected ones of the components may be received in the graphical UI in the palette at locations in the screen specified within the canvas. Finally, a new screen specified in the graphical UI may be included in the definition of the corresponding one of the job functions.

In another embodiment of the invention, a data processing system may be adapted for user interface generation in an MDA architected application. The system includes a host computing platform having one or more computers, each with memory and at least one processor. The system also includes a user interface generation module including computer program instructions enabled while executing in the host computing platform to define in the memory of the host computing platform, a multiplicity of job functions in a model for an instance of an MDA architected application, each job function referencing one or more UI experiences for the application, each of the UI experiences including a single menu and one or more screens, each of the screens including one or more UI components.

The program instructions further are enabled to associate in the memory each different end user of the instance of the application with one or more of the job functions, and optionally, one or more roles, and receive an event on an event bus of the host computing platform servicing the instance, the event specifying one of the end users. Finally, the program instructions are enabled to respond to the event in an event handler for user interface events in the instance of the application by selecting one of the UI experiences corresponding to one of the defined job functions for the specified one of the end users, and optionally in respect to the role of the specified one of the end users, retrieving a screen of the selected one of the UI experiences based upon the event and transmitting, to a client computer of the specified one of the end users, a specification of a graphical UI representative of the retrieved screen and including the single menu for the selected one of the UI experiences.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the invention provide for user interface generation in an MDA architected application. In accordance with an embodiment of the invention, different UI models are defined for different roles and different job functions in the form of different UI experiences. Each UI experience is defined to include one or more screens, each of which in turn is defined to include one or more UI components including UI components directing corresponding data access operations in the MDA architected application. Thereafter, each end user accessing a common instance of an MDA architected application executing in a host computing platform receives a correspondingly assigned job function and role. Then, as UI events are posted onto an event bus for the MDA architected application, a specified one of the end users for each of the UI events may be determined and a corresponding UI assembled dynamically for the specified one of the end users according to the job function and role assigned to the specified one of the end users. In this way, augmenting or changing the UI for the MDA architected application is as simple a matter as changing the specification of one or more of the UI experiences or adding a new UI experience in association with a job function and role for the MDA architected application.

In further illustration,FIG. 1is pictorial illustration of a process for user interface generation in an MDA architected application. As shown inFIG. 1, an application instance195of an MDA architected application includes different event handlers185communicating with one another over an event bus175and providing a UI posting events onto the event bus175. The UI itself is generated based upon a user interface model100disposed within a UI repository125. The user interface model100defines for each user110of an application, one or more roles (not shown) and one or more job functions120with each job function120having one or more UI experiences130and each of the UI experiences130having both one or more screens150and a single menu140of menu options, selected according to the role, directing different UI actions within the application including navigation to different ones of the screens150of the experience130. Finally, each of the screens150provides a UI display of one or more components160. In this way, each experience130provides a different collection of UI screens for the application and different job functions120have different experiences130so that an end user110assigned to a particular one of the job functions120will receive a corresponding UI for the application based upon the experiences130of the particular one of the job functions120.

During execution of the application instance195, a UI event170may be posted onto the event bus175indicating a request to render a screen in a computing device of an end user135. A UI event handler190processes the event170by identifying from the event, the end user135and locating a job function180in the user interface model100for the end user135. The UI event handler190then locates a particular screen115in the user interface model100for an associated UI experience assigned to the end user135based upon the action specified in the event170and the job function180. The UI event handler190then returns the screen115onto the event bus175for delivery to the computing device of the end user135.

As it will be understood, then, the UI presented to the end user135may be extended without altering the program code of the UI event handler190by defining a new experience130for the job function120of the end user135, or modifying an existing experience130with one or more screens150, each with one or more different UI components160and a menu140of actions to be taken in the experience130. To that end, a graphical UI editor145may be provided for the benefit and use of the end user135in which a palette of UI components160may be selectably presented for drag and drop manipulation onto a canvas so as to define a screen165, along with a list of menu items (actions) also that may be included as the menu of the experience130to which the screen165is assigned. Once complete, the screen165may be transformed into a screen definition155and incorporated into the user interface model100in the UI model repository125.

The process described in connection withFIG. 1may be implemented in a host computing platform. In more particular illustration,FIG. 2schematically shows a host computing platform supporting a process for user interface generation in an MDA architected application. The system includes a host computing platform200that includes one or more computers, each with memory and at least one processor. An application instance260executes within the memory of the host computing platform200and includes a multiplicity of different event handlers290A,290B processing events posted in the application instance260onto an associated event bus240. Finally, the host computing platform200is communicatively coupled over computer communications network220to different client computers230, each associated with a different end user of the application instance260.

Of note, the system includes a UI generation module300. The module300includes computer program instructions that execute in the memory of the host computing platform200. The program instructions are operable to receive a UI event from UI event handler290B on the event bus240directed to the generation of a UI screen for an end user viewing the screen through a corresponding one of the client computers230. The program instructions are further operable to process the event by identifying the end user and locating both a job function and a role for the end user in table250. The program instructions then consult a UI model210for the combination of job function and role of the end user so as to locate a pre-specified screen for display based upon an experience associated with the job function and data access rights correspondintg to the role, and a particular screen of the experience set forth in respect to the event. In this way, the UI provided to the end user is dynamically determined according to the UI model210which may be varied not by modifying the program code of the application event handlers290A,290B, but by modifying the specification of a UI experience for the end user within the UI model210.

In even yet further illustration of the operation of the UI generation module300,FIG. 3is a flow chart illustrating a process for user interface generation in an MDA architected application. Beginning in block310, the event bus for the application instance is monitored for UI events. In decision block320, on condition that a UI event is detected, in block330, the UI event is retrieved from the event bus and a user ID for an associated user extracted from the event in block340. Then, in block350, a job function and role assigned to the end user ID is determined and in block360an experience selected for the determined job function and role. In block370, a screen of the experience is retrieved based upon the event, and potentially limited by the role. Finally, in block380the retrieved screen is placed onto the event bus for transmission to a display of the end user.

The present invention may be embodied within a system, a method, a computer program product or any combination thereof. The computer program product may include a computer readable storage medium or media having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention. The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.