U.S. patent application number 11/428013 was filed with the patent office on 2008-01-03 for system and method for model-based user interface using transformation nodes.
This patent application is currently assigned to SAP AG. Invention is credited to Bare Said.
Application Number | 20080005623 11/428013 |
Document ID | / |
Family ID | 38878324 |
Filed Date | 2008-01-03 |
United States Patent
Application |
20080005623 |
Kind Code |
A1 |
Said; Bare |
January 3, 2008 |
SYSTEM AND METHOD FOR MODEL-BASED USER INTERFACE USING
TRANSFORMATION NODES
Abstract
Methods and systems to include transformation nodes in a
business system are provided. A transformation node may provide
controlled redundancy of data within the business object hierarchy.
Transformation nodes may store data from core nodes without
persistency, and permit different data presentation modes than for
the core nodes. When a service call is placed to a transformation
node, the transformation node may call corresponding services from
associated core nodes.
Inventors: |
Said; Bare; (St. Leon-Rot,
DE) |
Correspondence
Address: |
KENYON & KENYON LLP
1500 K STREET N.W.
WASHINGTON
DC
20005
US
|
Assignee: |
SAP AG
|
Family ID: |
38878324 |
Appl. No.: |
11/428013 |
Filed: |
June 30, 2006 |
Current U.S.
Class: |
714/46 |
Current CPC
Class: |
G06Q 10/00 20130101 |
Class at
Publication: |
714/46 |
International
Class: |
G06F 11/00 20060101
G06F011/00 |
Claims
1. A method for executing a service in a computer-based business
management system, comprising: responsive to a first request
generated from a first model-driven user interface, sending the
first request to a transformation node associated with the first
interface; selecting a core node associated with the transformation
node; defining a second request based on the first request and the
core node; sending the second request to the core node; executing
the second request; and updating the first user interface to
reflect changes resulting from execution of the second request.
2. The method of claim 1, wherein the transformation node
constructs the second request based on services exposed by the core
node.
3. The method of claim 1, wherein the transformation node is
derived from the core node.
4. The method of claim 3, wherein the core node is associated with
a second user interface, and the second user interface has a
different presentation mode than the first user interface.
5. The method of claim 3, wherein the core node is associated with
a second user interface, and the second user interface displays the
same information as the first user interface.
6. A method for executing a service in a computer-based business
management system, comprising: responsive to a request generated
from a first model-driven user interface, sending the request to a
core node associated with the first interface; executing the
request; sending a first notification to a transformation node
derived from the core node when the request has been executed; if
the transformation node is affected by the request, sending a
second notification; and responsive to the first notification or
the second notification, updating the first user interface to
reflect changes resulting from execution of the request.
7. The method of claim 6, wherein the transformation node is
derived from the core node.
8. The method of claim 7, wherein the transformation node is
associated with a second user interface, and the second user
interface has a different presentation mode than the first user
interface.
9. The method of claim 7, wherein the transformation node is
associated with a second user interface, and the second user
interface displays the same information as the first user
interface.
10. The method of claim 9, further comprising updating the second
user interface to reflect changes resulting from execution of the
request.
11. A method of updating information displayed in a user interface,
comprising: responsive to a request for properties describing a
transformation node, requesting properties describing a core node
associated with the transformation node; responsive to receiving
properties of the core node, mapping the properties of the core
node to properties of the transformation node; sending the
properties of the transformation node to a model-driven user
interface; and updating a user interface element associated with
the transformation node to display the new information.
12. The method of claim 11, wherein the transformation node is
derived from the core node.
13. The method of claim 11, wherein the request for properties
describing a transformation node is responsive to execution of a
request by a core node.
14. The method of claim 11, wherein the request for properties
describing a transformation node is responsive to execution of a
request by a transformation node.
15. A system for accessing a business management system,
comprising; a model-driven user interface to construct user
interface elements based on services exposed by nodes; a plurality
of core nodes, each core node exposing a service of a backend
application; and a transformation node, wherein the transformation
node is derived from a first of the plurality of core nodes.
16. The system of claim 15 wherein a first user interface element
based on the first core node is semantically different from a
second user interface element based on the transformation node.
17. The system of claim 15 wherein a first user interface element
based on the first core node displays the same information as a
second user interface element based on the transformation node.
18. The system of claim 15 wherein the transformation node includes
data stored in a second core node.
19. The system of claim 15 wherein the transformation node includes
a service exposed by a second core node.
20. A machine-readable medium containing program instructions for
execution on at least one processor, which when executed by the
processor cause the processor to perform: responsive to a first
request generated from a first model-driven user interface, sending
the first request to a transformation node associated with the
first interface; selecting a core node associated with the
transformation node; defining a second request based on the first
request and the core node; sending the second request to the core
node; executing the second request; and updating the first user
interface to reflect changes resulting from execution of the second
request.
21. The machine-readable medium of claim 20, wherein the
transformation node constructs the second request based on services
exposed by the core node.
22. The machine-readable medium of claim 20, wherein the core node
is associated with a second user interface, and the second user
interface has a different presentation mode than the first user
interface.
Description
BACKGROUND
[0001] Computer-based business systems often contain many business
objects to store data and perform business functions. Each business
object may expose one or more services to a user interface, such as
services to create or update entities managed by the business
object. For example, a business object for storing and manipulating
purchase orders may expose services allowing for the creation of
new purchase orders, modification of previously-created purchase
orders, and other similar functions. The services exposed by a
business object may be represented as a hierarchy of nodes.
[0002] Business objects are designed to be redundancy-free so that
specific content, such as an address, telephone number, etc., only
occurs once in the business object. A user interface can discover
the services available from various business objects and
applications by querying a service layer. The service layer
interacts with business objects to identify what services are
available for each business object, and returns information about
the services to the user interface. Model-driven user interfaces
therefore do not include functionality coded therein; instead, all
functionality in the user interface is derived from the service
layer and business objects. When a service is invoked via the user
interface, service providers in the backend applications implement
the appropriate service.
[0003] Although this structure permits the user interface to
reflect the structure of each business object, it does not allow
for structural differences between the user interface and the
backend database or business object. That is, since the user
interface renders data only as presented by the business object, it
does not allow for variations in the presentation of data and
services. For example, model-driven interfaces generally are unable
to display the same data in multiple formats. Also, it may be
difficult to present highly-sophisticated user interfaces since the
rendered data must be directly related to the services exposed by
each business object.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] FIG. 1 shows a business system and user interface
implementing transformation nodes according to an embodiment of the
present invention.
[0005] FIG. 2 shows core nodes and a transformation node according
to an embodiment of the present invention.
[0006] FIG. 3 shows a user interface using a core node and a
transformation node according to an embodiment of the present
invention.
[0007] FIG. 4 shows a method used by a transformation node
according to an embodiment of the present invention.
[0008] FIG. 5 shows a process for executing a service in a system
implementing transformation nodes according to an embodiment of the
present invention,
[0009] FIG. 6 shows a process for executing a service in a system
implementing transformation nodes according to an embodiment of the
present invention.
[0010] FIG. 7 shows a process for retrieving properties in a system
implementing transformation nodes according to an embodiment of the
present invention.
[0011] FIG. 8 shows a process for retrieving properties in a system
implementing transformation nodes according to an embodiment of the
present invention.
DETAILED DESCRIPTION
[0012] The present invention provides systems and methods to
include "transformation nodes" in a business system. A
transformation node may provide controlled redundancy of data
within the business object hierarchy. Transformation nodes may be
flagged or otherwise designated in the business object to
distinguish them from "core nodes." Core nodes store data elements
and functions on which the business processes rely. Transformation
nodes may store data from core nodes without persistency, and
permit different data presentation modes than for the core nodes. A
transformation node may also have associated services in the
backend application. However, when a service is invoked, the
service for the transformation node may call corresponding services
from associated core nodes, which perform the requested
operations.
[0013] In some applications, it may be desirable to have a certain
amount of redundancy in the user interface. For example, it may be
useful to provide alternate interfaces for a user to enter the same
data, such as a date or date range. In a standard model-driven user
interface, the user is only presented with fields corresponding to
database entries. A transformation node may allow this sort of
redundancy in the user interface, without requiring corresponding
redundancy in the backend databases or business objects. For
example, where the same information is to be displayed in multiple
ways in the user interface, the information can be displayed using
transformation nodes instead of being stored in multiple forms and
later displayed via a standard model-driven user interface.
[0014] Transformation nodes may avoid inconsistencies in the user
interface or stored data that could result from this controlled
redundancy by synchronizing the various redundant interfaces
created by the transformation nodes. The same data and services may
be displayed simultaneously on multiple user interfaces. When data
is updated or a service called in one interface, the transformation
nodes are notified. The transformation nodes can then send
notifications to other user interfaces displaying the same data
and/or services, instigating a refresh of the information displayed
in each interface. Information therefore may be consistently
displayed across all appropriate user interfaces.
[0015] In an embodiment, service requests may be made via core
nodes or transformation nodes. For example, a user interface might
include an element that exposes a service of a core node, and an
element that exposes a service of a transformation node. When a
user generates a request using a user interface element, the
request is sent to the node associated with the interface element
used to generate the request.
[0016] FIG, 1 shows a business system and user interface
implementing transformation nodes according to an embodiment of the
present invention. One or more backend applications 150 are present
in the business system. The applications may be stored and executed
on one or more servers in communication with a user interface 170
displayed on a terminal or other display 180. Various network
topologies and protocols may be used to enable communication
between the business system and the user interface. The specific
arrangement and topology of servers, applications, systems,
communication protocols, and connections are irrelevant to the
present discussion unless specified otherwise herein.
[0017] The user interface 170 may access the backend applications
150 via a service layer 160. Each business object in the system may
be associated with one or more services, represented in FIG. 1 as a
hierarchy of core nodes 151-157. Each core node 151-157 represents
a single service exposed by the business object. In an embodiment,
services are only executed by the core nodes and related service
providers.
[0018] A transformation node 100 may present different services and
user interface functionality than the core nodes 151-157. The
services and functionality exposed by the transformation node 100
are based on and associated with services exposed by specific core
nodes 151, 155, 157. When the transformation node 100 receives a
request to a service implemented by the transformation node, the
request is translated and/or redirected to the appropriate services
implemented by the core nodes 151, 155, 157.
[0019] FIG. 2 illustrates a transformation node 200 that reads data
and services from two core nodes 210, 230. A transformation node
200 may not use all the core nodes in the hierarchy. For example,
in FIG. 2 the transformation node does not use one of the exemplary
core nodes 220. Each core node 210, 220, 230 includes data 212,
222, 232 and services 211, 221, 231, respectively. The
transformation node reads data and services from the core nodes.
Based on a set of transformation rules stored in the business
object, the transformation node 200 compiles the data into a
presentation format appropriate for a user interface. The
transformation node may offer representations of data and services
that are different from those exposed by the core nodes. That is,
the transformation node may provide different formats and/or
presentation modes than those provided by the core nodes. In the
example shown in FIG. 2, the transformation node 200 includes data
202 and two services 201, 203.
[0020] Because a transformation node is a business object node, a
user interface need not distinguish between the transformation node
and a standard core node The transformation node can thus expose
data and services in a way that can be used by the user interface.
Based on the services exposed by the selected core nodes, the
transformation node may create services to be exposed to the user
interface. These services may be direct "copies" of the original
services (i.e., data will be passed directly through the
transformation node service to the original service). The services
may also be "new" services created by the transformation node, that
can pass requests on to one or more core services The requests may
be passed directly, or they may be modified before being passed to
the core services. Similarly, the transformation node can select
and combine various data stored in the business object. A service
exposed by a transformation node may be referred to as a
transformation service.
[0021] Interface information is provided to the user interface by a
transformation node, which allows the user interface to present the
data and call the services created in the transformation node. In
general, the user interface does not distinguish between the data
and services provided by a transformation node and those provided
by a core node. The transformation node includes the logic and
rules to map between transformation node services and core node
services. For example, in FIG. 2 the transformation node 200
exposes services 201, 203 based on or referencing core services 211
and 231 respectively. These services may utilize or display a
combination of data 202 derived from data 212, 232 stored in the
core nodes.
[0022] An example of user interface elements generated from a core
node and transformation nodes is shown in FIG. 3. A user interface
may include multiple screens 340, 350, 360. The screens may be
shown on the same display device, or they may be shown on different
displays. In the example shown, each interface may be used by an
employee to make a leave request. In one interface 340, the
interface is mapped directly from a core node 310. The structure of
the interface directly reflects the structure of data stored in the
core node 310. That is, since the only information required by the
core node to create and process a leave request is the start and
end dates, the user is only able to enter the leave request by
specifying those two dates The interface element 340 associated
with the core node 310 therefore provides data entry areas for an
employee to enter the start and end dates of the leave request.
[0023] A second user interface element 350 may be associated with a
transformation node 320. The transformation node 320 may retrieve
data and services from the appropriate core node 310. An interface
element 350 may then be constructed in the user interface based on
the services and data provided by the transformation node 320. The
element constructed from the transformation node may provide a
different presentation mode than the element constructed from the
core node. In the example shown, an employee may enter a leave
request by selecting the day on which the leave is to begin, such
as "Next Monday," "Next Friday," etc., and the duration of the
leave in weeks and days. The transformation node 320 includes logic
to map between the start and end date values stored in the business
object and the values shown in the interface.
[0024] Other presentation modes may be used. As another example, a
second transformation node 330 allows for a "date selection"
calendar 360 to be displayed in the user interface. Thus, instead
of typing in the dates of a leave request as required in the core
node interface 340 or selecting the leave request times as shown in
the first transformation node interface 350, an employee may
select, the dates from a calendar.
[0025] To prevent data errors and/or redundancy in the business
system, the transformation node may provide mechanisms for
synchronizing the two interface elements. For example, in the user
interface shown in FIG. 3, when a user selects a date in the
calendar 340 the appropriate date may be entered in the "Start
Date" entry area in the other interface element 330. Each interface
may display data derived from data entered by a user in one of the
other interfaces. That is, data displayed in one interface 350 may
be derived from another interface 340 or 360; similarly, data
displayed in the "calendar" interface 360 may be derived from data
entered in either of the other interfaces 340 or 350. Specific
examples of the processes and communications used to maintain
consistency between interface elements are described in more detail
below.
[0026] The transformation node may act as an intermediary between
the core nodes of a business object and the user interface. The
transformation node can select various data and services to expose
to the user interface based on user input. FIG. 4 shows the basic
process a transformation node might use in communication with a
user interface. First, the transformation node receives a request
410 from the user interface related to a business object. For
example, a user might select a function allowing for a business
partner address to be updated. The transformation node then
determines the services and data provided by and stored in the
related business object that are necessary to complete the user
request 420. Core nodes that provide the required data and services
may be selected 430. The transformation node may then create and/or
select services and data to expose to the user interface, based on
the request received from the user and the services exposed by the
selected core nodes. Finally, interface information may be provided
to the user interface 450.
[0027] FIGS. 5-8 show the basic communications between nodes, the
user interface, and a service layer when a transformation node is
present. Referring to FIG. 5, a set of communications resulting
from a user request via a core node is shown. When a user makes a
service request 511 via a user interface 510, the request may be
made using an element of the user interface associated with a core
node. A service layer 520 may receive the request, and call the
appropriate node. If the request is made using a core node
interface element, the service layer may call the appropriate core
node 530. The core node 530 then executes an appropriate service
531 and sends a change notification 532 to the service layer.
[0028] Since transformation nodes may introduce controlled
redundancy in a user interface, there may be transformation nodes
in the system which should be updated based on the service executed
by the core node 530. The service layer 520 may send a notification
522 to each transformation node 540 after a core node executes a
service. The transformation node may then identify which core node
or nodes have changed. If the transformation node should be updated
as a result of the service request, the transformation node may
send a change notification 541 to the service layer. Finally, the
service layer may notify 523 the user interface of which nodes
should be refreshed due to completion of the service request. The
user interface can then request updated data from changed nodes.
Examples of the user interface refresh process are described in
further detail below.
[0029] FIG, 6 shows a similar process where the service to be
executed is implemented by a transformation node. When the service
layer 420 receives a service request 611 based on a service
implemented by the transformation node 540, a call 621 may be sent
to the transformation node 540. The transformation node may then
determine which core node or nodes 530 implement the core services
necessary to perform the request. The transformation node then
sends appropriate service calls 642 to the core nodes 530. A
service call sent to a core node may be a redirection or copy of
the original call 621 to the transformation node, or it may be a
service call constructed by the transformation node based on the
original service request. The core node may execute the service or
services requested by the transformation node 631, and return a
change notification 632 to the transformation node. In an
embodiment, the core node 530 performs the same regardless of
whether it receives a request from a service layer or a
transformation node 540, and therefore the change notification 632
is returned as if the request had been made by the service layer
520. When it receives change notifications from the core nodes, the
transformation node may send a change notification 642 to the
service layer. The user interface 510 may then be updated
appropriately.
[0030] Before rendering fields related to services, the user
interface must retrieve properties of the fields from the
appropriate nodes. The user interface may also retrieve information
from nodes to update displayed information after a service has been
executed. FIG. 7 shows an exemplary process by which a user
interface may retrieve properties from a core node. First the user
interface 510 may send a request 711 to the service layer 520. The
service layer may determine whether to send the request to a core
node 530 or a service node 540. If the request is for properties of
a core node 540, the service layer may retrieve properties 721 from
the core node. The properties may then be returned 731 to the
service layer, and sent from the service layer to the user
interface 722. In most cases, no communication between the service
layer and transformation nodes will be necessary to retrieve
properties of a core node.
[0031] To retrieve properties of fields from a transformation node
a similar process may be used, as shown in FIG. 8. When a user
interface sends a request 812 to the service layer 520, the service
layer may send a request 823 to retrieve properties from the
appropriate transformation node 540. To maintain consistency among
core nodes and transformation nodes, the transformation node may
then request 641 and receive 631 related properties of any core
nodes on which the transformation node depends. The request 641
sent by the transformation node may be the same as the request that
the service layer sends when requesting core node properties, such
as the request 711 described above with reference to FIG. 7. When
the transformation node receives properties 831 from the core node,
it may map those properties to the related fields of the
transformation node 842. The properties may then be returned to the
service layer 843 and passed on to the user interface 824.
[0032] In an embodiment, core nodes, transformation nodes, and
their respective service providers within the service layer may be
implemented separately. Such separation may reduce or eliminate the
potential negative impact of the redundancy introduced by use of a
transformation node.
[0033] Although the present invention has been described with
reference to particular examples and embodiments, it is understood
that the present invention is not limited to those examples and
embodiments The present invention as claimed therefore includes
variations from the specific examples and embodiments described
herein, as will be apparent to one of skill in the art.
* * * * *