IP Library › Granted Patent US 8,578,330
Granted Patent B2
US 8,578,330 · App. 11/761,139 · Granted Nov 5, 2013

Enhanced widget composition platform

Inventors: Alexander Dreiling (Kelvin Grove, AU); Kathrin J. Fleischmann (Paddington, AU); Fabian Eberhardt (Bruchsal, DE); Philipp Heltewig (Paddington, AU); Daniel Ricketts (Indooroopilly, AU)
Assignee: SAP AG
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,578,330
App. No.
11/761,139
Granted
Nov 5, 2013
Kind
B2
Abstract

An enhanced widget composition platform, in which code is automatically generated based on receiving a selection of at least a first service and a widget engine via the web-based widget composition platform, the code, when invoked by the selected widget engine, implementing a widget that is operable to communicate with the first service.

Claims (66)

1. A computer-implemented method comprising:

transmitting instructions to a computing device to display a user interface of a web-based widget composition platform;

receiving, via the user interface, first user input comprising a selection of at least a first service and a second service;

receiving, via the user interface, second user input comprising a selection of a widget engine;

automatically generating code based on the first service, the second service and the widget engine, the code, when invoked by the widget engine, providing a widget that includes a first service window associated with the first service and a second service window associated with the second service, and that is operable to communicate with the first service and the second service to connect an output of the first service to an input of the second service such that data presented in the second service window is contextualized based upon a user-selection of one of a plurality of data items displayed in the first service window; and

creating a service mediator instance based on receiving the selection, the service mediator instance comprising:

a service requestor component operable to:

gather input parameters,

transmit a service call to the first service based on the input parameters, and

transmit raw data results of the service call to the service mediator instance;

an interpreter component operable to:

process the raw data results into an interpreted S ERVICE D ATA M ODEL object, and transmit the S ERVICE D ATA M ODEL object to the service mediator instance; and

a renderer component operable to render a visual representation of data in the S ERVICE D ATA M ODEL object.

2. The method of claim 1 ,

wherein the web-based widget composition platform further comprises a design mode and a preview mode,

wherein the first service is selected via the web-based widget composition platform, in the design mode, and

wherein the widget is simulated via the web-based widget composition platform, in the preview mode.

3. The method of claim 1 , further comprising invoking the code in a browser environment using a compatibility layer that emulates the widget engine to simulate the widget in the widget composition platform.

4. The method of claim 1 , wherein the code is further automatically generated based on receiving a selection of a design element defining an appearance of the widget or based on receiving a selection of a design element for performing a non-service-related function.

5. The method of claim 1 , wherein connecting the output is via a W IDGET O BJECT M ANAGER module.

6. The method of claim 5 , further comprising:

generating a CONNECTOR object for an event, the CONNECTOR object adding the input of the second service as a listener and adding the output of the first service as a caller; and

sending an E NVELOPE object from the caller to the listener based on upon detecting the event, the E NVELOPE object encapsulating output values from the caller.

7. The method of claim 6 , further comprising:

verifying the selection connecting the output of the first service with the input of the second service is valid, via a L INE M ANAGER module; and

outputting a representation of the selection connecting the output of the first service with the input of the second service, via the L INE M ANAGER module, if the selection connecting the output module of the first service with the input of the second service is verified to be valid.

8. The method of claim 1 , wherein the widget is operable to communicate with the first service and the second service via a Service Oriented Architecture Protocol (SOAP) call or other HyperText Transfer Protocol (HTTP) call.

9. The method of claim 1 , further comprising:

receiving data from the first service; and

displaying the data via the widget.

10. The method of claim 1 , wherein the widget composition platform comprises a What-You-See-Is-What-You-Get (WYSIWYG) Integrated Development Environment (IDE).

11. The method of claim 1 , further comprising outputting the widget.

12. The method of claim 11 , wherein outputting the widget further comprises uploading the widget to a user device.

13. The method of claim 1 , wherein the first service is a web service, a Really Simple Syndication (RSS) service or a Multidimensional eXpressions (MDX) service.

14. The method of claim 1 , further comprising adding the first service and the second service to a global widget model using a W INDOW O BSERVER module based on receiving the selection of the first service and the second service.

15. The method of claim 14 , further comprising tracking a state change of the widget composition platform, via the W INDOW O BSERVER module.

16. The method of claim 15 , further comprising transmitting an array including the first service and the second service, a position and a size of each of the first service and the second service, and connections between the first service and the second service, via the W INDOW O BSERVER module.

17. The method of claim 1 , wherein connecting further includes the data presented by the second service is contextualized based upon user-interaction with the first widget.

18. A computer program product, tangibly stored in a non-transitory machine-readable medium, the computer program product comprising instructions that, when read by a machine, operate to cause a data processing apparatus to:

transmit instructions to a computing device to display a user interface of a web-based widget composition platform;

receive, via the user interface, first user input comprising a selection of at least a first service and a second service;

receive, via the user interface, second user input comprising a selection of a widget engine;

automatically generate code based on the first service, the second service and the widget engine, the code, when invoked by the widget engine, providing a widget that includes a first service window associated with the first service and a second service window associated with the second service, and that is operable to communicate with the first service and the second service to connect an output of the first service to an input of the second service such that data presented in the second service window is contextualized based upon a user-selection of one of a plurality of data items displayed in the first service window; and

create a service mediator instance based on receiving the selection, the service mediator instance comprising:

a service requestor component operable to:

gather input parameters,

transmit a service call to the first service based on the input parameters, and

transmit raw data results of the service call to the service mediator instance;

an interpreter component operable to:

process the raw data results into an interpreted S ERVICE D ATA M ODEL object, and

transmit the S ERVICE D ATA M ODEL object to the service mediator instance; and

a renderer component operable to render a visual representation of data in the S ERVICE D ATA M ODEL object.

19. A device comprising a processor configured to:

transmit instructions to a computing device to display a user interface of a web-based widget composition platform;

receive, via the user interface, first user input comprising a selection of at least a first service and a second service;

receive, via the user interface, second user input comprising a selection of a widget engine;

automatically generate code based on the first service, the second service and the widget engine, the code, when invoked by the widget engine, providing a widget that includes a first service window associated with the first service and a second service window associated with the second service, and that is operable to communicate with the first service and the second service to connect an output of the first service to an input of the second service such that data presented in the second service window is contextualized based upon a user-selection of one of a plurality of data items displayed in the first service window; and

create a service mediator instance based on receiving the selection, the service mediator instance comprising:

a service requestor component operable to:

gather input parameters,

transmit a service call to the first service based on the input parameters, and

transmit raw data results of the service call to the service mediator instance;

an interpreter component operable to:

process the raw data results into an interpreted S ERVICE D ATA M ODEL object, and

transmit the S ERVICE D ATA M ODEL object to the service mediator instance; and

a renderer component operable to render a visual representation of data in the S ERVICE D ATA M ODEL object.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0334 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2007
From: DREILING, ALEXANDER; FLEISCHMANN, KATHRIN J.; EBERHARDT, FABIAN; HELTEWIG, PHILIPP; RICKETTS, DANIEL
To: SAP AG
Reel/Frame 019719/0358 →
Continuity (1)
Related Publication 20080307385A1 · Dec 11, 2008