# US 2008/0307385 A1 · Enhanced Widget Composition Platform

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2008/0307385 A1
- Document ID: US20080307385A1
- Status: Published application
- Kind: A1
- Application number: 11/761,139
- Filed: 2007-06-11
- Published: 2008-12-11
- Earliest claimed: 2007-06-11
- Assignees: Sap SE
- Inventors: Alexander Dreiling; Kathrin J. Fleischmann; Fabian Eberhardt; Philipp Heltewig; Daniel Ricketts
- Web page: https://patentgrep.com/patent/US20080307385A1

## CPC

- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 8/34: Graphical or visual programming
- G06F 8/38: for implementing user interfaces
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 1

A computer-implemented method comprising automatically generating code based on receiving a selection of at least a first service and a widget engine via a 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.

### Claim 2 (depends on 1)

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 a design mode, and
wherein the widget is simulated via the web-based widget composition platform, in a preview mode.

### Claim 3 (depends on 1)

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

### Claim 4 (depends on 1)

The method of claim 1, further comprising 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 SERVICEDATAMODEL object, and
transmit the SERVICEDATAMODEL object to the service mediator instance; and
a renderer component operable to render a visual representation of data in the SERVICEDATAMODEL object.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

The method of claim 1, wherein the code is further automatically generated based on receiving a selection of a second service via the web-based widget composition platform.

### Claim 7 (depends on 6)

The method of claim 6, wherein the code is further automatically generated based on receiving a selection connecting an output of the first service with an input of the second service, via a WIDGETOBJECTMANAGER module.

### Claim 8 (depends on 7)

The method of claim 7, 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 ENVELOPE object from the caller to the listener based on upon detecting the event, the ENVELOPE object encapsulating output values from the caller.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
verifying the selection connecting the output of the first service with the input of the second service is valid, via a LINEMANAGER module; and
outputting a representation of the selection connecting the output of the first service with the input of the second service, via the LINEMANAGER module, if the selection connecting the output module of the first service with the input of the second service is verified to be valid.

### Claim 10 (depends on 1)

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

### Claim 11 (depends on 1)

The method of claim 1, further comprising:
receiving data from the first service; and
displaying the data via the widget.

### Claim 12 (depends on 1)

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

### Claim 13 (depends on 1)

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

### Claim 14 (depends on 13)

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

### Claim 15 (depends on 1)

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.

### Claim 16 (depends on 1)

The method of claim 1, further comprising adding the at least the first service to a global widget model using a WINDOWOBSERVER module based on receiving the selection of the at least the first service.

### Claim 17 (depends on 16)

The method of claim 16, further comprising tracking a state change of the widget composition platform, via the WINDOWOBSERVER module.

### Claim 18 (depends on 17)

The method of claim 17, further comprising transmitting an array including the at least the first service, a position and a size of each of the at least the first service, and connections between the at least the first service, via the WINDOWOBSERVER module.

### Claim 19

A computer program product, tangibly embodied in a machine-readable medium, the computer program product comprising instructions that, when read by a machine, operate to cause a data processing apparatus to generate code based on receiving a selection of at least a first service and a widget engine via a 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.

### Claim 20

A device comprising a processor configured to generate code based on receiving a selection of at least a first service and a widget engine via a 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.
