Web client-server system and method for incompatible page markup and presentation languages
First Claim
Patent Images
1. A client-server system wherein the server is configured to receive requests from the client, send responses to the client, and wherein the server is further configured to:
- (a) interpret the request to determine at least one of the language, protocol, or syntax in which the client sends requests and receives responses;
(b) interpret the request to determine data submitted by the client, that should be used to create, modify, delete, or append to business objects or user data in the server system;
(c) recover metadata or descriptive information from a metadata repository associated with the server; and
(d) create a response in the preferred language, protocol, or syntax of the client;
where this response represents the states of some objects in the server system following the processing of the request, properly represented in the language, protocol or syntax preferred by the client.
2 Assignments
0 Petitions
Accused Products
Abstract
Client-server systems and methods for transferring data via a network, including a wireless network, between a server and one or more clients or browsers that are spatially distributed (i.e., situated at different locations). At least one local client computer provides a user interface to interact with at least one remote server computer which implements data processing in response to the local client computer. The user interface may be a browser or a thin client.
2459 Citations
120 Claims
-
1. A client-server system wherein the server is configured to receive requests from the client, send responses to the client, and wherein the server is further configured to:
-
(a) interpret the request to determine at least one of the language, protocol, or syntax in which the client sends requests and receives responses;
(b) interpret the request to determine data submitted by the client, that should be used to create, modify, delete, or append to business objects or user data in the server system;
(c) recover metadata or descriptive information from a metadata repository associated with the server; and
(d) create a response in the preferred language, protocol, or syntax of the client;
where this response represents the states of some objects in the server system following the processing of the request, properly represented in the language, protocol or syntax preferred by the client.- 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, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
(a) interpret the request to determine the classes and instances of business objects and user data to associate with the request (b) interpret the request to determine commands to be executed by the business objects.
-
-
3. The client-server system of claim 1 wherein the server is further configured to interpret the request to determine data submitted by the client to do one or more of creating, modifying, deleting, or appending to business objects or data in the server.
-
4. The client-server system of claim 1 wherein the server is further configured to recover user data or business data from database servers or application servers associated with the server.
-
5. The client-server system of claim 1 wherein the server is further configured to optimize the handling of subsequent requests from the same client, by embedding information in early responses to the client, where that embedded response information will be included in subsequent requests from the same client, and where that embedded request information will be used by the server during the processing of subsequent requests.
-
6. The client-server system of claim 1 wherein the server response is in the form of an object intended for display in a client with a user interface.
-
7. The client-server system of claim 1 wherein the object is a page.
-
8. The client-server system of claim 6 wherein the client is a browser.
-
9. The client-server system of claim 1 wherein the server response is in the form of machine-readable data.
-
10. The client-server system of claim 1 wherein the client request includes tokens specifying the language requested.
-
11. The client-server system of claim 10 wherein at least one token in the request identify metadata objects that are available to the server system.
-
12. The client-server system of claim 11 wherein the metadata objects are selected from the group consisting of views, pages, applets, controls, and objects having user interface semantics.
-
13. The client-server system of claim 12 wherein the metadata objects are selected from the group consisting of business objects, business components, and objects having non-interface semantics.
-
14. The client-server system of claim 13 wherein metadata objects having non-interface semantics are selected from the group consisting of linkages to other objects, containment, and association.
-
15. The client-server system of claim 14 wherein association has a user interface representation.
-
16. The client-server system of claim 14 wherein access to detailed information through drilldown in the user interface.
-
17. The client-server system of claim 10 wherein the client request further includes tokens that specify instances of object types specified in the metadata repository to be created, modified, or deleted.
-
18. The client-server system of claim 11 wherein part of the metadata associated with an object is in the form of one or more template objects, said template objects containing rules for representing the object in various languages, protocols, or syntaxes.
-
19. The client-server system of claim 18 wherein the template object is stored as a file in the server file system.
-
20. The client-server system of claim 18 wherein th e template object is stored as a binary object in a database or other on-line storage system.
-
21. The client-server system of claim 18 wherein each template object is associated with a particular language, protocol, or syntax.
-
22. The client-server system of claim 18 wherein the server system is configured to identify a client'"'"'s preferred language, protocol, or syntax, and to use a template object associated with that preferred language, protocol, or syntax, to represent an instance of the parent metadata object to the client.
-
23. The client-server system of claim 22 wherein the server is configured to iterate and enumerate child or subordinate objects.
-
24. The client-server system of claim 22 wherein some of the rules pertain to containment.
-
25. The client-server system of claim 22 wherein some of the rules are placeholders for specific properties of the metadata object.
-
26. The client-server system of claim 22 wherein some of the rules include specifiers of a language, protocol for representation of an instance of the metadata object.
-
27. The client-server system of claim 22 wherein some of the rules are constants or literals, to enable the representation of portions of the metadata object without processing by the server system beyond inserting the constants or literals into the body of a response to client requests.
-
28. The client-server system of claim 22 wherein some of the rules have multiple variants, each specifying a different language, protocol, or syntax.
-
29. The client-server system of claim 28 wherein the server is configured to assign a default value to language, protocol, or syntax.
-
30. The client-server system of claim 29 wherein the server is configured to represent the instance of the metadata object by:
- (1) searching for a rule that specifies the preferred language, protocol, or syntax of the client, and (2) use that rule, or (3) in the absence of a rule, search for a rule that does not specify a language, protocol, or syntax, and use that rule as if it specified the client'"'"'s current preference.
-
31. The client-server system of claim 1 wherein the server is configured to recognize that the client'"'"'s preferred language is a markup language.
-
32. The client-server system of claim 31 wherein the markup language is selected from the group consisting of SGML, HTML, WML, HDML, and XML.
-
33. The client-server system of claim 32 wherein the server is configured to create responses in multiple markup languages.
-
34. The client-server system of claim 33 wherein the server is configured to use similarities among various markup languages, to optimize the creation of responses in the different markup languages.
-
35. The client-server system of claim 34 where one markup language is derived from another markup language, and the server is configured to use common components or procedures that represent metadata objects in the parent language.
-
36. The client-server system of claim 35 wherein the system is configured treat two or more markup languages as being derived from an artificially constructed markup language.
-
37. The client-server system of claim 36 wherein the derivation structure of the languages includes more than one layer of derivation.
-
38. The client-server system of claim 37 wherein an artificial language occupies a position in the derivation structure between one or more known languages.
-
39. The client-server system of claim 34 wherein the properties of a metadata object that are identified by placeholders in the templates, have different representations in different languages, protocols, or syntaxes, and the server is configured to represent this object in the language of the client.
-
40. The client-server system of claim 39 wherein the server is configured to identify the client'"'"'s language, protocol, or syntax, and associate it with the current client request.
-
41. The client-server system of claim 40 wherein the server is configured query the current context for the preferred language, protocol, or syntax, and use this preference to create a response including representations of objects in the preferred language, protocol, or syntax.
-
42. The client-server system of claim 41 wherein the server is configured to query the context for the preferred language of representation when representing every object in the system.
-
43. The client-server system of claim 1, wherein the server is configured to identify the preferred language, protocol, or syntax of the client, receiving data from the client, and using the data to add, modify, or delete records in the server database.
-
44. The client-server system of claim 43 wherein the preferred language is associated with encoding of the data, and where the server removes this language-dependent encoding, and stores the data in a language independent format.
-
45. The client-server system of claim 44 the format is persistently associated with the data.
-
46. The client-server system of claim 1 wherein tags specifying the language of the request are embedded in the request.
-
47. The client-server system of claim 1 where the client is an HTML browser, and the preferred language for representing objects for this client is HTML.
-
48. The client-server system of claim 1 where the client is a HTTP browser or wireless device for which the preferred language for responses from the server system is WML.
-
49. The client-server system of claim 1 where the preferred language for the client, to be used to create responses from the server system, is XML.
-
50. The client-server system of claim 1 where the preferred language for the client, to be used to create responses from the server system, is a language which does not include user interface elements.
-
51. The client-server system of claim 1 where the client is an HTTP client and also a gateway server to wireless browser clients, said wireless clients requesting pages from the client via the WAP protocol, said gateway server transforming WAP/WML requests from the wireless or other browsers into HTTP/WML requests which it submits as a client to the server, said gateway server receiving HTTP/WML responses created by the server, and transforming them into WAP/WML responses which it returns as a gateway server to the wireless browser clients which initiated the request process.
-
52. The client-server system of claim 1 wherein the server is configured to accept requests from multiple clients, in multiple markup languages and to respond to a client in the markup language used by the client.
-
53. The client-server system of claim 1 wherein the client is a wireless client configured to send requests incorporating tagged requests for pages to the server and receive pages from the server, said tagged requests specifying the language of the request and of the requested response, and wherein the server is configured to:
-
(a) parse the tagged request from the client to determine the language of the request and the information requested;
(b) recover information including views from a repository associated with the server;
and (c) render a page to the client including information and views in the language of the request, wherein said view comprises a display and applets in the language requested by the client.
-
-
54. The client-server system of claim 53 wherein said view further comprises data from the server.
-
55. The client-server system of claim 1 wherein the client request specifies a directory on the server system, and said directory is associated with the preferred language, protocol, or syntax for the client.
-
56. The client-server system of claim 1 wherein the server is configured to read data embedded in header responses.
-
57. The client-server system of claim 56 wherein the server is configured to embed information included in one or more of URIs, URLs, or URNs in the server responses, and where the client is configured to use the one or more of URIs, URLs, or URNs to submit further requests to the server.
-
58. The client-server system of claim 1 wherein the server is configured to interpret an early request from a client as a persistent preference for language, protocol, or syntax, and where the server is further configured to store this preference and use the stored preference to retrieve the language, protocol, or syntax preference of the client from the dictionary or other cache.
-
59. The client-server system of claim 1 wherein the server is configured to create a state description or session for the client during an early request from the client, and to thereafter associate a particular language, protocol, or syntax with the session, and maintain the session in expectation of receiving later requests from the client, and where the embedded information identifies the session, thereby identifying the client'"'"'s preferred language, protocol, or syntax.
-
60. The client-server system of claim 1 wherein the server is a multi-tiered server system, comprising multiple programs and where the various are distributed among the different tiers of the system.
-
61. A client-server method wherein the server receives requests from the client, sends responses to the client, and wherein the server further performs the steps of:
-
(a) interpreting the request to determine at least one of the language, protocol, or syntax in which the client sends requests and receives responses;
(b) interpreting the request to determine data submitted by the client, that should be used to create, modify, delete, or append to business objects or user data in the server system. (c) recovering metadata or descriptive information from a metadata repository associated with the server; and
(d) creating a response in the preferred language, protocol, or syntax of the client;
where this response represents the states of some objects in the server system following the processing of the request, properly represented in the language, protocol or syntax preferred by the client.- View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120)
(a) interpreting the request to determine the classes and instances of business objects and user data to associate with the request (b) interpreting the request to determine commands to be executed by the business objects.
-
-
63. The method of claim 61 wherein the method further comprises interpreting the request to determine data submitted by the client to do one or more of creating, modifying, deleting, or appending to business objects or data in the server.
-
64. The method of claim 61 wherein the method further comprises recovering user data or business data from database servers or application servers associated with the server.
-
65. The method of claim 61 wherein the method further comprises optimizing the handling of subsequent requests from the same client, by embedding information in early responses to the client, where that embedded response information will be included in subsequent requests from the same client, and where that embedded request information will be used by the server during the processing of subsequent requests.
-
66. The method of claim 61 comprising the server responding in the form of an object intended for display in a client with a user interface.
-
67. The method of claim 61 wherein the object is a page.
-
68. The method of claim 61 wherein the client is a browser.
-
69. The method of claim 61 comprising the server responding in the form of machine-readable data.
-
70. The method of claim 61 comprising the client request including tokens specifying the language requested.
-
71. The method of claim 70 wherein at least one token in the request identifies metadata objects that are available to the server system.
-
72. The method of claim 71 comprising selecting the metadata objects from the group consisting of views, pages, applets, controls, and objects having user interface semantics.
-
73. The method of claim 72 comprising selecting the metadata objects from the group consisting of business objects, business components, and objects having non-interface semantics.
-
74. The method of claim 73 wherein metadata objects having non-interface semantics are selected from the group consisting of linkages to other objects, containment, and association.
-
75. The method of claim 74 wherein association has a user interface representation.
-
76. The method of claim 71 wherein metadata objects having linkages to other objects provide access to detailed information through drilldown in the user interface.
-
77. The method of claim 71 wherein the client request further includes tokens that specify instances of object types specified in the metadata repository to be created, modified, or deleted.
-
78. The method of claim 76 wherein part of the metadata associated with an object is in the form of one or more template objects, said template objects containing rules for representing the object in various languages, protocols, or syntaxes.
-
79. The method of claim 78 comprising storing the template object as a file in the server file system.
-
80. The method of claim 78 comprising storing the template object as a binary object in a database or other on-line storage system.
-
81. The method of claim 78 wherein each template object is associated with a particular language, protocol, or syntax.
-
82. The method of claim 78 comprising identifying a client'"'"'s preferred language, protocol, or syntax, and to use a template object associated with that preferred language, protocol, or syntax, to represent an instance of the parent metadata object to the client.
-
83. The method of claim 82 further comprising iterating and enumerating child or subordinate objects.
-
84. The method of claim 82 wherein rules pertain to containment.
-
85. The method of claim 82 wherein rules are placeholders for specific properties of the metadata object.
-
86. The method of claim 82 wherein rules include specifiers of a language, protocol for representation of an instance of the metadata object.
-
87. The method of claim 82 wherein rules are constants or literals, to enable the representation of portions of the metadata object without processing by the server system beyond inserting the constants or literals into the body of a response to client requests.
-
88. The method of claim 82 wherein rules have multiple variants, each specifying a different language, protocol, or syntax.
-
89. The method of claim 88 wherein the method further comprises assigning a default value to language, protocol, or syntax.
-
90. The method of claim 89 wherein the method further comprises representing the instance of the metadata object by:
- (1) searching for a rule that specifies the preferred language, protocol, or syntax of the client, and (2) use that rule, or (3) in the absence of a rule, search for a rule that does not specify a language, protocol, or syntax, and use that rule as if it specified the client'"'"'s current preference.
-
91. The method of claim 61 wherein the method further comprises recognizing that the client'"'"'s preferred language is a markup language.
-
92. The method of claim 91 wherein the markup language is selected from the group consisting of SGML, HTML, WML, HDML, and XML.
-
93. The method of claim 92 wherein the method further comprises creating responses in multiple markup languages.
-
94. The method of claim 93 wherein the method further comprises using similarities among various markup languages, to optimize the creation of responses in the different markup languages.
-
95. The method of claim 94 where one markup language is derived from another markup language, and the method comprises using common components or procedures that represent metadata objects in the parent language.
-
96. The method of claim 95 comprising treating two or more markup languages as being derived from an artificially constructed markup language.
-
97. The method of claim 96 wherein the derivation structure of the languages includes more than one layer of derivation.
-
98. The method of claim 97 wherein an artificial language occupies a position in the derivation structure between one or more known languages.
-
99. The method of claim 94 comprising identifying the properties of a metadata object by placeholders in the templates, where the placeholders have different representations in different languages, protocols, or syntaxes, and the method further comprises representing the object in the language of the client.
-
100. The method of claim 99 wherein the method further comprises identifying the client'"'"'s language, protocol, or syntax, and associating it with the current client request.
-
101. The method of claim 100 querying the current context for the preferred language, protocol, or syntax, and using this preference to create a response including representations of objects in the preferred language, protocol, or syntax.
-
102. The method of claim 101 wherein the method further comprises querying the context for the preferred language of representation when representing every object in the system.
-
103. The method of claim 61, wherein the method further comprises identifying the preferred language, protocol, or syntax of the client, receiving data from the client, and using the data to add, modify, or delete records in the server database.
-
104. The method of claim 103 wherein the preferred language is associated with encoding of the data, and where the server removes this language-dependent encoding, and stores the data in a language independent format.
-
105. The method of claim 104 the format is persistently associated with the data.
-
106. The method of claim 61 wherein tags specifying the language of the request are embedded in the request.
-
107. The method of claim 61 where the client is an HTML browser, and the preferred language for representing objects for this client is HTML.
-
108. The method of claim 61 where the client is a HTTP browser or wireless device for which the preferred language for responses from the server system is WML.
-
109. The method of claim 61 where the preferred language for the client, to be used to create responses from the server system, is XML.
-
110. The method of claim 61 where the preferred language for the client, to be used to create responses from the server system, is a language which does not include user interface elements.
-
111. The method of claim 61 where the client is an HTTP client and also a gateway server to wireless browser clients, said wireless clients requesting pages from the client via the WAP protocol, said gateway server transforming WAP/WML requests from the wireless or other browsers into HTTP/WML requests which it submits as a client to the server, said gateway server receiving HTTP/WML responses created by the server, and transforming them into WAP/WML responses which it returns as a gateway server to the wireless browser clients which initiated the request process.
-
112. The method of claim 61 wherein the method further comprises accepting requests from multiple clients, in multiple markup languages and responding to a client in the markup language used by the client.
-
113. The method of claim 61 wherein the client is a wireless client configured to send requests incorporating tagged requests for pages to the server and receive pages from the server, said tagged requests specifying the language of the request and of the requested response, and wherein the method further comprises:
-
(a) parsing the tagged request from the client to determine the language of the request and the information requested;
(b) recovering information including views from a repository associated with the server; and
(c) rendering a page to the client including information and views in the language of the request, wherein said view comprises a display and applets in the language requested by the client.
-
-
114. The method of claim 112 wherein said view further comprises data from the server.
-
115. The method of claim 61 wherein the client request specifies a directory on the server system, and said directory is associated with the preferred language, protocol, or syntax for the client.
-
116. The method of claim 61 wherein the method further comprises reading data embedded in header responses.
-
117. The method of claim 116 wherein the method further comprises embedding information included in one or more of URIs, URLs, or URNs in the server responses, and where the client is configured to use the one or more of URIs, URLs, or URNs to submit further requests to the server.
-
118. The method of claim 111 wherein the method further comprises interpreting an early request from a client as a persistent preference for language, protocol, or syntax, storing this preference and using the stored preference to retrieve the language, protocol, or syntax preference of the client from the dictionary or other cache.
-
119. The method of claim 61 comprising creating a state description or session for the client during an early request from the client, and thereafter associating a particular language, protocol, or syntax with the session, and maintaining the session in expectation of receiving later requests from the client, where the embedded information identifies the session, thereby identifying the client'"'"'s preferred language, protocol, or syntax.
-
120. The method of claim 61 wherein the server is a multi-tiered server system, comprising multiple programs and where the various are distributed among the different tiers of the system.
Specification