Mark-up language implementation of graphical or non-graphical user interfaces
First Claim
1. A method of implementing a user interface to an application, comprising:
- storing at least one description document conforming to a user interface object model, defining a user interface and comprising one or more definition elements;
storing at least one description document conforming to the user interface object model, defining interaction of the user interface with the application and comprising one or more interaction elements;
storing a plurality of layout objects each comprising a renderer for rendering a different definition element;
storing a,plurality of connector objects each comprising a renderer for rendering a different interaction element;
reflecting the description documents into the object model to generate an instance of the object model defining the user interface and comprising the definition elements and the interaction elements of the description documents;
forming a layout engine for the user interface by downloading from storage layout objects corresponding to definition elements in the instance of the object model;
making interfaces of the downloaded layout objects accessible to the corresponding definition elements;
forming a connector engine for the user interface by downloading from storage connector objects corresponding to interaction elements in the instance of the object model;
making interfaces of the downloaded connector objects accessible to the corresponding interaction elements; and
rendering the user interface via the layout engine and the connector engine by passing each element in the instance of the object model to the corresponding downloaded object and executing said object to cause the object to render the element.
21 Assignments
0 Petitions
Accused Products
Abstract
Interface description documents define the appearance and behavior of a user interface (132) toward the user, and feature description documents define interaction of the interface with the interfaced-to application, both in conformity with a user-interface object model (310). Connector and layout object plug-ins (126, 128) define connector and layout objects for rendering elements of feature and interface description documents, respectively; of one or more interfaces. An interactor (130), independent of any interface or interface type, the application, and the user device (100,200), generates user interfaces from the stored information. The interactor parses the description documents of an interface into elements and reflects them in the object model to form an instance representing the interface, downloads the objects corresponding to the reflected elements registers their interfaces in the object model instance to make them accessible by the elements, and invokes execution of each downloaded object with the corresponding element to render the element.
241 Citations
33 Claims
-
1. A method of implementing a user interface to an application, comprising:
-
storing at least one description document conforming to a user interface object model, defining a user interface and comprising one or more definition elements;
storing at least one description document conforming to the user interface object model, defining interaction of the user interface with the application and comprising one or more interaction elements;
storing a plurality of layout objects each comprising a renderer for rendering a different definition element;
storing a,plurality of connector objects each comprising a renderer for rendering a different interaction element;
reflecting the description documents into the object model to generate an instance of the object model defining the user interface and comprising the definition elements and the interaction elements of the description documents;
forming a layout engine for the user interface by downloading from storage layout objects corresponding to definition elements in the instance of the object model;
making interfaces of the downloaded layout objects accessible to the corresponding definition elements;
forming a connector engine for the user interface by downloading from storage connector objects corresponding to interaction elements in the instance of the object model;
making interfaces of the downloaded connector objects accessible to the corresponding interaction elements; and
rendering the user interface via the layout engine and the connector engine by passing each element in the instance of the object model to the corresponding downloaded object and executing said object to cause the object to render the element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28)
the definition elements comprise one or more elements defining appearance of the user interface, and one or more elements defining behavior of the user interface toward the user.
-
-
3. The method of claim 2 wherein:
-
the elements defining appearance are expressed in a descriptive language, and the elements defining behavior are expressed in an interpretive language.
-
-
4. The method of claim 2 wherein:
-
the elements defining appearance are expressed in a markup language, and the elements defining behavior are expressed in a scripting language.
-
-
5. The method of claim 2 wherein:
-
the elements defining appearance are expressed in XML, and the elements defining behavior as expressed in JavaScript.
-
-
6. The method of claim 1 wherein:
-
storing at least one description document defining a user interface comprises storing a plurality of description documents defining a plurality of user interfaces;
storing a,plurality of layout objects comprises storing a plurality of layout objects each comprising a renderer for rendering a different definition element of a plurality of user interfaces; and
storing a plurality of connector objects comprises storing a plurality of connector objects each comprising a renderer for rendering a different interaction element of the plurality of user interfaces.
-
-
7. The method of claim 6 wherein:
-
the plurality of user interfaces comprise user interfaces to a plurality of different applications; and
storing at least one description document defining interaction comprises storing at least one plurality of description documents defining interactions of the plurality of user interfaces with the plurality of applications.
-
-
8. The method of claim 7 wherein:
the user interfaces include a telephony user interface and a graphical user interface.
-
9. The method of claim 6 wherein:
-
the plurality of user interfaces comprise a plurality of different user interfaces to a same application; and
storing at least one description document defining a user interface comprises storing a plurality of description documents defining the plurality of different user interfaces to the application.
-
-
10. The method of claim 9 wherein:
the interfaces include a telephony user interface and a graphical user interface.
-
11. The method of claim 6 wherein:
-
the plurality of user interfaces comprise user interfaces of a plurality of types of user access devices to a same application; and
storing at least one description document defining a user interface comprises storing a plurality of description documents defining the plurality of user interfaces to the application.
-
-
12. The method of claim 11 wherein:
the interfaces include a telephony user interface and a graphical user interface.
-
13. The method of claim 6 wherein:
the plurality of user interfaces share a common description document.
-
14. The method of claim 13 wherein:
the interfaces include a telephony user interface and a graphical user interface.
-
15. The method of claim 1 wherein:
-
reflecting comprises downloading the description documents, parsing the description documents into their constituent elements, and generating a corresponding node in the instance of the object model for each of the constituent elements.
-
-
16. The method of claim 1 wherein:
-
the layout objects are user-interface-dependent objects, and the connector objects are user-interface-independent objects.
-
-
17. The method of claim 1 wherein:
-
the layout objects are access-device-specific and application-neutral objects, and the connector objects are application-specific and access-device-neutral objects.
-
-
18. The method of claim 1 wherein:
-
storing at least one description document comprises generating at least one description document by using a software developer'"'"'s kit, software tools, and a definition of the user interface object model.
-
-
19. The method of claim 18 wherein:
-
each step of storing a plurality of objects comprises generating the plurality of objects by using the software developer'"'"'s kit, the software tools, and the definition of the user interface object model.
-
-
20. The method of claim 1 wherein:
-
the one or more definition elements define at least one of a menu, a prompt, and a command, and the one or more interaction elements define features of the application.
-
-
21. The method of claim 1 wherein:
-
storing at least one description document defining a user interface comprises storing a plurality of description documents defining a plurality of different user interfaces and each comprising one or more definition elements; and
storing a plurality of layout objects comprises storing a plurality of layout objects each comprising a renderer for rendering a different definition element of the plurality of user interfaces.
-
-
22. The method of claim 21 wherein:
the plurality of user interfaces includes a telephony user interface and a graphical user interface.
-
23. The method of claim 1 wherein:
-
each step of making interfaces accessible comprises registering interfaces of the downloaded objects in the instance of the object model.
-
-
27. An apparatus that effects the method of any one of the claims 1-15, 16-23, and 26.
-
28. A computer-readable medium containing instructions which, when executed in a computer, cause they computer to perform the method of any one of the claims 16-23, and 26.
-
24. An apparatus for implementing a user interface to an application, comprising:
-
a memory for storing (a) a description document conforming to a user interface object model, defining a user interface and comprising one or more definition elements, (b) a description document conforming to the user interface object model, defining interaction of the user interface with the application and comprising one or more interaction elements, (c) a plurality of layout objects each comprising a renderer for rendering a different definition element, and (d) a plurality of connector objects each comprising a renderer for rendering a different interaction element; and
processor for connecting to the memory and for (a) reflecting the description documents into the object model to generate an instance of the object model defining the user interface and comprising the definition elements and the interaction elements of the description documents, (b) forming a layout engine for the user interface by downloading from the memory layout objects corresponding to the definition elements in the instance of the object model, (c) forming a connector engine for the user interface by downloading from the memory connector objects corresponding to the interaction elements in the instance of the object model, (d) making interfaces of the downloaded layout objects accessible to the corresponding definition elements, (e) making interfaces of the downloaded connector objects accessible to the corresponding interaction elements, and (f) rendering the user interface via the layout engine and the connector engine by invoking execution of said each downloaded object with its corresponding element from the object model to cause the object to render the element.
-
-
25. A method of implementing a user interface comprising:
-
storing one or more description documents defining at least one user interface and comprising definitions of elements of the at least one user interface;
storing a plurality of objects each comprising a renderer for rendering a different one of the elements;
forming a renderer of a selected user interface from objects of the plurality of objects that correspond to the elements of at least one description document of the stored description documents that defines the selected user interface; and
rendering the selected user interface by executing the renderer;
wherein;
storing one or more description documents comprises storing one or more description documents defining the at least one user interface and comprising one or more definition elements, and storing one or more description documents defining interactions of the at least one user interface with at least one application and comprising one or more interaction elements;
storing a plurality of objects comprises storing a plurality of layout objects each comprising a renderer for rendering a different one of the definition elements, and storing a plurality of connector objects each comprising a renderer for rendering a different one of the interaction elements;
forming a renderer comprises forming a layout engine for the selected user interface from layout objects that correspond to the definition elements of at least one description document that defines the selected user interface, and forming a connector engine for the selected user interface from layout objects that correspond to the interaction elements of at least one description document that defines interaction of the selected user interface with a selected application; and
rendering the selected user interface comprises
rendering the selected interface to the selected application by executing the layout engine and the connector engine.- View Dependent Claims (26, 29)
rendering the selected interface to the selected application by executing the layout engine and the connector engine comprises passing each element of the description documents that define the selected user interface and its interaction with the selected application to the corresponding object and executing said object to render said element.
-
-
29. The method of claim 25 wherein:
-
rendering comprises passing each element definition from the at least one description document that defines the selected user interface to the corresponding object and executing said object to render the element.
-
-
30. An apparatus for implementing a user interface, comprising:
-
storage for storing (a) one or more description documents defining at least one user interface and comprising definitions of elements of at least one user interface, and (b) a plurality of objects each comprising a renderer for rendering a different one of the elements; and
a processor for connecting to the storage and (c) forming a renderer of a selected user interface from objects of the plurality of objects that correspond to the elements of at least one description document of the stored description documents that defines the selected user interface, and (d) rendering the selected user interface by executing the renderer;
wherein;
the storage stores (a)(i) one or more description documents defining at least one user interface and comprising one or more definition elements, (a)(ii) one or more description documents defining interactions of the at least one user interface with at least one application and comprising one or more interaction elements, (b)(i) a plurality of layout objects each comprising a renderer for rendering a different one of the definition elements, and (b)(ii) a plurality of connector objects each comprising a renderer for rendering a different one of the interaction elements; and
the processor forms (c)(i) a layout engine for the selected user interface from layout objects that correspond to the definition elements of at least one description document that defines the selected user interface and (c)(ii) a connector engine for the selected user interface from layout objects that correspond to the interaction elements of at least one description document that defines interaction of the selected user interface with a selected application, and (d) renders the selected interface to the selected application by executing the layout engine and the connector engine. - View Dependent Claims (31, 32)
the processor renders the selected user interface by passing each element definition from the at least one description document that defines the selected user interface to the corresponding object and executes said object to render the element.
-
-
32. The apparatus of claim 30 wherein:
the processor renders the selected user interface to the selected application by passing each element of the description documents that define the selected user interface and its interactions with the selected application to the corresponding object and executing said object to render said element.
-
33. An apparatus for implementing a user interface to an application, comprising:
-
means for storing at least one description document conforming to a user interface object model, defining a user interface and comprising one or more definition elements;
means for storing at least one description document conforming to the user interface object model, defining interaction of the user interface with the application and comprising one or more interaction elements;
means for storing a plurality of layout objects each comprising a control renderer for rendering a different definition element;
means for storing a plurality of connector objects each comprising a control renderer for rendering a different interaction element;
means for reflecting the description documents into the object model to generate an instance of the object model defining the user interface and comprising the definition elements and the interaction elements of the description documents;
means for forming a layout engine for the user interface by downloading from storage layout objects corresponding to definition elements in the instance of the object model;
means for making interfaces of the downloaded layout objects accessible to the corresponding definition elements;
means for forming a connector engine for the user interface by downloading from storage connector objects corresponding to interaction elements in the instance of the object model;
means for making interfaces of the downloaded connector objects accessible to the corresponding interaction elements; and
means for rendering the user interface via the layout engine and the connector engine by passing each element in the instance of the object model to the corresponding downloaded object and executing said object to cause the object to render the element.
-
Specification