Dynamic generation of user interfaces and automated mapping of input data for service-oriented architecture-based system management applications
Claim Score by NHIP
Abstract
A method and system for dynamically generating a semantically correct user interface (UI) panel for a service request and automatically mapping input data for service-oriented architecture-based system management applications. A document is received that includes semantic annotations specifying semantics of elements of a service request input message. During runtime, a UI panel is generated based on the semantics and by interpreting metadata generated by interpreting hints included in the document Further, the semantic annotations may include a mapping definition of information technology (IT) resource selections. Based on the mapping definition, the IT resource selections are extracted from a registry and automatically mapped to a UI input element in a UI panel. In response to selecting an IT resource from the UI panel, properties of the selected IT resource are automatically mapped to an element of the service request input message according to the semantic annotations.

Term
Projected expiry 16 April 2030.
- Priority and filed
- Published
- Today
- Projected expiry
20 claims: 5 independent, 15 dependent
- 1Broadest claimClaim Score 59, broad(NHIP)A computer-implemented method of dynamically generating a semantically correct user interface (UI) panel for a service request, said method comprising:a computer system receiving a document that includes a plurality of semantic annotations specifying semantics of a plurality of elements of an input message for a service request;said computer system generating metadata by interpreting one or more semantic annotations of said plurality of semantic annotations included in said document;during runtime, a processor of said computer system generating a UI panel based on said semantics by interpreting said metadata;and said computer system receiving user input for said service request via said UI panel.
- 5A computer system comprising a processor and a computer-readable memory unit coupled to said processor, said memory unit containing instructions that when executed by said processor implement a method of dynamically generating a semantically correct user interface (UI) panel for a service request, said method comprising:receiving a document that includes a plurality of semantic annotations specifying semantics of a plurality of elements of an input message for a service request;generating metadata by interpreting one or more semantic annotations of said plurality of semantic annotations included in said document;during runtime, generating a UI panel based on said semantics by interpreting said metadata;and receiving user input for said service request via said UI panel.
- 9A computer program product, comprising a computer-readable storage medium having a computer-readable program code stored therein, said computer-readable program code containing instructions configured to be executed by a processor of a computer system to implement a method of dynamically generating a semantically correct user interface (UI) panel for a service request, said method comprising:receiving a document that includes a plurality of semantic annotations specifying semantics of a plurality of elements of an input message for a service request;generating metadata by interpreting one or more semantic annotations of said plurality of semantic annotations included in said document;during runtime, generating a UI panel based on said semantics by interpreting said metadata;and receiving user input for said service request via said UI panel.
- 13A computer-implemented method of automatically mapping resource registry data to input data using semantic annotations, said method comprising:a computer system receiving a document having a plurality of semantic annotations that includes a mapping definition of a plurality of selections of information technology (IT) resources;said computer system automatically extracting said plurality of selections of IT resources from a resource registry, wherein said extracting is based on said mapping definition, wherein said automatically extracting said plurality of selections of IT resources includes: extracting a type of an IT resource from said mapping definition and optionally extracting selection criteria from said mapping definition, selecting said resource registry based on said extracted type of said IT resource, extracting, from said resource registry, IT resource data that includes an identifier of said IT resource and one or more values of one or more properties of said IT resource, and storing said IT resource data in a memory coupled to said computer system;said computer system automatically mapping said extracted plurality of selections of IT resources to a user interface (UI) input element;said computer system generating a UI panel that provides a plurality of identifiers of said extracted plurality of selections of IT resources in said UI input element, wherein said plurality of identifiers includes said identifier of said IT resource;displaying said UI panel on a display device in response to said generating said UI panel;said computer system receiving a selection of said IT resource, wherein said selection is included in said plurality of selections of IT resources;and responsive to said receiving said selection, a processor of said computer system automatically mapping said one or more values of said one or more properties of said IT resource to one or more elements of an input message of a service request according to said plurality of semantic annotations of said document.
- 16A computer-implemented method of dynamically modifying a user interface (UI) panel in a complex flow, said method comprising:a computer system mapping a plurality of input elements of a plurality of services of a complex flow to a plurality of unique fields, wherein said input elements are associated with said unique fields in a many-to-one correspondence;at runtime, a processor of said computer system determining a unique field of said plurality of unique fields includes a value as a result of a prior inclusion of an input element in a rendering of a previous UI panel in said complex flow, wherein said input element corresponds to said unique field;responsive to said determining said unique field includes said value, said computer system omitting said input element in a rendering of a current UI panel in said complex flow;and subsequent to said omitting said input element, said computer system displaying said current UI panel on a display device without said input element included in said current UI panel.
Independent claims5
79 paragraphs in 5 sections, as filed
FIELD OF THE INVENTION
p-0002The present invention relates to system management applications implemented by service-oriented architecture (SOA) where various services are combined into system management flows in order to manage information technology (IT) infrastructures. More particularly, the present invention relates to a data processing method and system for dynamically generating user interfaces and automatically mapping input data for SOA-based system management applications.
BACKGROUND OF THE INVENTION
p-0003The implementation of system management applications has moved to a service-oriented approach. All kinds of IT resources are encapsulated as software services that offer a number of resource-specific interfaces for querying state (e.g., query current CPU temperature) and controlling a resource. System management applications then use the services to control underlying IT infrastructures. The set of services in a SOA-like system is very dynamic and rapidly changing. New services can be made available, services can be removed, or the interface of services can change. In a system management application operated by an end user, it is necessary to provide user interface (UI) panels in order to display data to the user or to get input from the user. These UI panels usually have to be implemented on a per-service basis. For management flows comprising several services, the panels for single services are combined into a flow of panels for entering data for each service, thereby introducing redundancy in input and output data that needs to be addressed by costly efforts of service implementers and UI programmers. The fact that services in a SOA-like system can rapidly change imposes a need for costly maintenance and rework on UI panels so that the UI keeps up-to-date with the management services of the underlying system management applications. <figref idrefs="DRAWINGS">FIG. 1</figref> is a block diagram of a conventional system <b>100</b> that includes a software service <b>102</b> that has an interface <b>104</b>. Interface <b>104</b> is syntactically well-defined in a service description <b>106</b> (a.k.a. service interface description) that includes a schema <b>108</b> (e.g., an Extensible Markup Language (XML) schema document (XSD)) that specifies the structure of input and output data for service <b>102</b>. By analyzing the description <b>106</b> of service <b>102</b> and evaluating the corresponding schema <b>108</b> (e.g., corresponding XSD), it is possible to derive a simple UI panel <b>110</b> that includes input elements <b>112</b>, where the UI panel is to be used by a user for invoking service <b>102</b>. Known techniques for generating UI panel <b>110</b> for a service request (i.e., invocation) are limited to a syntactical analysis of service description <b>106</b> and the associated schema <b>108</b> (i.e., all elements defined for the input document of service <b>102</b> can be rendered in the UI using appropriate UI elements according to basic rules and the rendered elements are labeled using the element names (i.e., field names) given in service description <b>106</b> and schema <b>108</b>). This known syntactical analysis allows valuable semantic meanings of the service provider to be lost due to a disconnect between the service provider and the UI provider. A conventional conveyance of semantic meanings for UI panel generation is inefficient and costly due to a large amount of communication required between the UI provider and the service provider, as well as extensive hard-coding included in the UI implementation efforts. Further, conventional technologies are deficient in how resource data may be mapped to input data for service requests, thereby requiring expensive and time-consuming manual entry of input data. For example, a known rendering of ordinary input fields in a UI panel for a server resource's multiple properties required by a service of a system management application requires manual entry of property values. Thus, there exists a need to overcome at least one of the preceding deficiencies and limitations of the related art.
SUMMARY OF THE INVENTION
p-0004In first embodiments, the present invention provides a computer-implemented method of dynamically generating a semantically correct user interface (UI) panel for a service request. The method comprises: a computer system receiving a document that includes a plurality of semantic annotations specifying semantics of a plurality of elements of an input message for a service request; the computer system generating metadata by interpreting one or more semantic annotations of the plurality of semantic annotations included in the document; during runtime, the computer system generating a UI panel based on the semantics by interpreting the metadata; and the computer system receiving user input for the service request via the UI panel.
p-0005In a first aspect of the first embodiments, the step of generating the UI panel includes labeling a first element of the plurality of elements of the input message with a first label in the UI panel. The first label is semantically correct based on the semantics.
p-0006In a second aspect of the first embodiments, the method further comprises defining a first mapping of the first element to the first label based on a first client locale and defining a second mapping of the first element to a second label based on a second client locale. The labeling of the first element with the first label is based on the first mapping.
p-0007In a third aspect of the first embodiments, the method further comprises: determining a first field in the UI panel includes a value; and displaying a second field in the UI panel in response to determining that the first field includes the value.
p-0008In second embodiments, the present invention provides a computer-implemented method of automatically mapping resource registry data to input data using semantic annotations. The method comprises: a computer system receiving a document having a plurality of semantic annotations that includes a mapping definition of a plurality of selections of information technology (IT) resources; the computer system automatically extracting the plurality of selections of IT resources from a resource registry, where the extracting is based on the mapping definition; the computer system automatically mapping the extracted plurality of selections of IT resources to a user interface (UI) input element; the computer system generating a UI panel that provides the extracted plurality of selections of IT resources in the UI input element; displaying the UI panel on a display device in response to generating the UI panel; the computer system receiving a selection of an IT resource, where the selection is included in the plurality of selections of IT resources; and responsive to receiving the selection, the computer system automatically mapping one or more properties of the IT resource to an element of an input message of a service request according to the plurality of semantic annotations of the document.
p-0009In third embodiments, the present invention provides a computer-implemented method of dynamically modifying a user interface (UI) panel in a complex flow. The method comprises: a computer system mapping a plurality of input elements of a plurality of services of a complex flow to a plurality of unique fields, wherein the input elements are associated with the unique fields in a many-to-one correspondence; at runtime, the computer system determining a unique field of the plurality of unique fields includes a value as a result of a prior inclusion of an input element in a rendering of a previous UI panel in the complex flow, where the input element corresponds to the unique field; responsive to determining that the unique field includes the value, the computer system omitting the input element in a rendering of a current UI panel in the complex flow; and subsequent to omitting the input element, the computer system displaying the current UI panel on a display device without the input element included in the current UI panel.
p-0010Systems and computer program products corresponding to the above-summarized methods are also described and claimed herein.
p-0011One or more embodiments of the present invention provide a technique for dynamically generating user interface panels and automatically mapping input data. Furthermore, embodiments of the present invention reduce the amount of user input required in UI panels associated with a single service invocation of a complex flow, while still allowing flexibility during runtime. Moreover, the present invention allows a service provider to express semantics as part of service descriptions, thereby preventing a loss of semantic meaning in UI panels being generated.
BRIEF DESCRIPTION OF THE DRAWINGS
p-0012<figref idrefs="DRAWINGS">FIG. 1</figref> is a block diagram of a prior art system for generating a user interface panel.
p-0013<figref idrefs="DRAWINGS">FIG. 2</figref> is a block diagram of a system for attaching semantic annotations to support UI panel generation, in accordance with embodiments of the present invention.
p-0014<figref idrefs="DRAWINGS">FIG. 3</figref> is a block diagram of a system for dynamically generating a semantically correct UI, automatically mapping resource registry data to input data, and dynamically modifying UI panels in a complex flow, where the system includes the system of <figref idrefs="DRAWINGS">FIG. 2</figref>, in accordance with embodiments of the present invention.
p-0015<figref idrefs="DRAWINGS">FIG. 4</figref> is a flowchart of a process for dynamically generating a semantically correct UI in the system of <figref idrefs="DRAWINGS">FIG. 3</figref>, in accordance with embodiments of the present invention.
p-0016<figref idrefs="DRAWINGS">FIG. 5A</figref> is a flowchart of a process for automatically mapping resource registry data to input data in the system of <figref idrefs="DRAWINGS">FIG. 3</figref>, in accordance with embodiments of the present invention.
p-0017<figref idrefs="DRAWINGS">FIG. 5B</figref> is a flowchart of a process for extracting IT resource data in the process of <figref idrefs="DRAWINGS">FIG. 5A</figref>, in accordance with embodiments of the present invention.
p-0018<figref idrefs="DRAWINGS">FIG. 6</figref> is a flowchart of a process for dynamically modifying UI panels in a complex flow in the system of <figref idrefs="DRAWINGS">FIG. 3</figref>, in accordance with embodiments of the present invention.
p-0019<figref idrefs="DRAWINGS">FIG. 7</figref> is a block diagram of a computer system that includes components of the system of <figref idrefs="DRAWINGS">FIG. 3</figref>, and that implements one or more of the processes of <figref idrefs="DRAWINGS">FIG. 4</figref>, <b>5</b>A, <b>5</b>B, and <b>6</b>, in accordance with embodiments of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
Overview
p-0020The present invention may allow service implementers to attach effective semantic annotation to a description of a service (e.g., web service) to support UI rendering. UI pre-processing components may be defined that interpret the semantic annotations in order to create a semantically correct UI for a service invocation. As used herein, a semantically correct UI is defined as a UI in accordance with semantic intentions of a provider or implementer of a service. Furthermore, data from IT resource registries may be automatically retrieved and mapped to UI input elements and finally to service input data. More particularly, the present invention may be a data processing method and system for dynamically generating user interface panels from the descriptions of combined and invoked services and for automatically mapping input data extracted from IT resource registries using semantic annotation of service interfaces.
Dynamic User Interface Generation and Automatic Input Data Mapping System
p-0021<figref idrefs="DRAWINGS">FIG. 2</figref> is a block diagram of a system for attaching semantic annotations to support UI panel generation, in accordance with embodiments of the present invention. System <b>200</b> includes a software service <b>202</b> that has an interface <b>204</b>. Interface <b>204</b> is syntactically well-defined in a service interface description <b>206</b> (a.k.a. service description) that includes a schema <b>208</b> (e.g., XSD) and an additional descriptor, request parameter hints <b>210</b>, which is introduced by the present invention. By analyzing service description <b>206</b> and evaluating schema <b>208</b> and request parameter hints <b>210</b>, a UI panel <b>220</b> that includes input elements <b>222</b> is rendered, where the UI panel is to be used by the user for invoking service <b>202</b> in an operation of a SOA-based system management application.
p-0022Service description <b>206</b> is, for example, a Web Services Description Language (WSDL) document that describes the operation(s) provided by service <b>202</b>. The structure of input and output data for the described operation(s) is defined by schema <b>208</b>. Schema <b>208</b> is, for example, an XML schema document.
p-0023Request parameter hints <b>210</b> is an XML document that is attached to service description <b>206</b>. Request parameter hints <b>210</b> provides additional information and semantic annotation for elements of an input message for a service request (a.k.a. service request input message).
p-0024In one embodiment, each element of the input message is referenced by an XPath name or an XPath-like name (i.e., a name interpreted within the XML document representing the input message according to the input message's XSD) by zero to N hints (a.k.a. semantic annotations) in request parameter hints <b>210</b>. As used herein, a hint is defined as a semantic annotation that specifies how a portion of a UI is to be rendered. Each hint provides information such as: <ul><li id="ul0001-0001" num="0000"><ul><li id="ul0002-0001" num="0024">Semantically correct labeling of message elements in UI panel <b>220</b>. For example, a service implementer defines how a field should be labeled in UI panel <b>220</b> in order to convey correct semantics for the field. These name-label-mappings may be uniquely defined for different locales. For example, a first set of labels in a UI panel is displayed for a first client locale and a second set of labels in the UI panel is displayed for a second client locale, where the first set of labels is different from the second set of labels and the first client locale is different from the second client locale. Thus, a UI rendering engine may label a field with a first label in response to a user being in a first locale and may label the same field with a second label in response to the user being in a second locale.</li><li id="ul0002-0002" num="0025">Additional selection and display criteria for UI panel <b>220</b> that cannot be expressed using XML Schema in schema <b>208</b>. In one embodiment, an additional display criterion is a condition that specifies that field X in UI panel <b>220</b> is displayed only when a value has been entered in another field Y in UI panel <b>220</b>.</li><li id="ul0002-0003" num="0026">Definition of IT resource selections and mapping of IT resource properties to input data of the service request input message. It may be defined that one or more fields in a section of the service request input message are to be filled with one or more predefined properties of an IT resource that the user has to select in UI panel <b>220</b> (e.g., element X is to be filled in with the value of property Y of a resource of type Z). The service request input message is generated during runtime based on the service description <b>206</b> and the schema <b>208</b>, and is then sent to the service implementation. The request parameter hints document <b>210</b> denotes that one or more elements of the service request input message may be filled with mapped resource data. Further, the set of IT resources to be offered for user selection may be defined, for example, in terms of the type of IT resource and other selection criteria (e.g., a predefined state of the resource or a predefined computing architecture of the resource, such as computer systems with x86 architecture). Still further, resource selections displayed to the user may be created at runtime and the mapping of request elements to properties of the resource selected by the user is automated.</li></ul></li></ul>
p-0025As one example, the semantic information provided by one or more hints in request parameter hints <b>210</b> allows input elements <b>222</b> to be a reduced set of input elements as compared to the set of input elements <b>112</b> in <figref idrefs="DRAWINGS">FIG. 1</figref>.
p-0026<figref idrefs="DRAWINGS">FIG. 3</figref> is a block diagram of a system for dynamically generating a semantically correct UI, automatically mapping resource registry data to input data, and dynamically modifying UI panels in a complex flow, where the system includes the system of <figref idrefs="DRAWINGS">FIG. 2</figref>, in accordance with embodiments of the present invention. System <b>300</b> includes software service <b>202</b> that has an interface <b>204</b>. As in <figref idrefs="DRAWINGS">FIG. 2</figref>, interface <b>204</b> is syntactically well-defined in service interface description <b>206</b> (e.g., WSDL document) that includes schema <b>208</b> and request parameter hints <b>210</b>. The functionality of service <b>202</b>, interface <b>204</b>, service description <b>206</b>, schema <b>208</b>, and request parameter hints <b>210</b> in <figref idrefs="DRAWINGS">FIG. 3</figref> is the same functionality described above relative to <figref idrefs="DRAWINGS">FIG. 2</figref>. The information provided by the hints in request parameter hints <b>210</b> in <figref idrefs="DRAWINGS">FIG. 3</figref> is the same as the information described above relative to <figref idrefs="DRAWINGS">FIG. 2</figref>.
p-0027System <b>300</b> also includes a hints interpreter <b>312</b>, which is a UI pre-processing component introduced by the present invention. Hints interpreter <b>312</b> interprets request parameter hints <b>210</b> and generates and sends metadata to UI generation logic <b>313</b>, which understands and processes the metadata. The UI generation logic <b>313</b> also receives the service description <b>206</b> and schema <b>208</b> as input. In one embodiment, the UI generation logic <b>313</b> is implementation code in a UI rendering engine (not shown) (e.g., a Web 2.0 web front end). By interpreting the metadata received from hints interpreter <b>312</b> along with the service description <b>206</b> and schema <b>208</b>, the UI generation logic <b>313</b> generates the correct UI panels including UI panel <b>314</b>, which includes a set of input elements <b>316</b>. UI panel <b>314</b> is generated by the UI generation logic <b>313</b> according to the semantics desired by a service designer/implementer (i.e., the semantics that are included in request parameter hints <b>210</b>). A user utilizes UI panel <b>314</b> for invoking service <b>202</b> in an operation of a SOA-based system management application. Further details about dynamically generating UI panels using the hints interpreter are presented below relative to <figref idrefs="DRAWINGS">FIG. 4</figref>.
p-0028Hints interpreter <b>312</b> also retrieves information about one or more sets of managed IT resources <b>318</b>-<b>1</b>, . . . , <b>318</b>-N from one or more resource registries <b>320</b>-<b>1</b>, . . . , <b>320</b>-N (a.k.a. one or more management databases) according to mapping definitions included in request parameter hints <b>210</b>. Request parameter hints <b>210</b> specify that one or more elements of the service request input message are filled with properties of a particular type of resource. For each type of resource, there is a corresponding registry (e.g., one registry for servers, one registry for storage partitions, etc.) The types of resources may be defined by standards such as the Common Information Model (CIM). These standards also define properties that are provided by each type of resource. The properties provided by a type of resource are present in resource descriptions stored in the resource registry corresponding to the type of resource. Properties defined by the aforementioned standards may then be mapped to the service request input message. The N resource registries are associated with the N sets of IT resources in a one-to-one correspondence.
p-0029Hints interpreter <b>312</b> retrieves the information from one or more resource registries <b>320</b>-<b>1</b>, . . . , <b>320</b>-N to generate one or more selection elements in UI panels, including selection element <b>322</b>, which is presented to a user by a display of UI panel <b>314</b> on a display device. In response to a user selecting an entry in selection element <b>322</b>, properties of the IT resource represented to the user are automatically mapped to one or more elements of the service request input message, as defined in request parameter hints <b>210</b> attached to service description <b>206</b>. Further details about mapping information from the resource registries are discussed below relative to <figref idrefs="DRAWINGS">FIGS. 5A and 5B</figref>.
p-0030System <b>300</b> also may include a user input tracker <b>324</b>. At runtime, a user input tracker <b>324</b> tracks the input made by a user. Furthermore, before the generation of each UI panel, user input tracker <b>324</b> checks whether a unique field already contains a value, where an input element of a single service of a flow is mapped to the unique field. This check by the user input tracker <b>324</b> allows the present invention to dynamically modify a UI panel according to input made by the user. Further details about dynamically modifying a UI panel using the user input tracker <b>324</b> are discussed below relative to <figref idrefs="DRAWINGS">FIG. 6</figref>.
Dynamic User Interface Generation and Automatic Input Data Mapping Processes
p-0031<figref idrefs="DRAWINGS">FIG. 4</figref> is a flowchart of a process for dynamically generating a semantically correct UI in the system of <figref idrefs="DRAWINGS">FIG. 3</figref>, in accordance with embodiments of the present invention. The process for dynamically generating a semantically correct UI for a service invocation in an operation of a SOA-based system management application begins at step <b>400</b>. In step <b>402</b>, a computer system (e.g., computer system <b>700</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>) receives request parameter hints <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) as a document (a.k.a. request parameter hints document) and stores the received document in a computer data storage device. The document received in step <b>402</b> includes one or more semantic annotations and other information describing one or more elements of a service request input message. In one embodiment, the document received in step <b>402</b> is an XML document.
p-0032In step <b>404</b>, hints interpreter <b>312</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) interprets hints included in the request parameter hints document received in step <b>402</b> and produces metadata as a result.
p-0033In step <b>406</b>, UI generation logic <b>313</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) interprets the metadata produced in step <b>404</b> to dynamically (i.e., at runtime) generate correct UI panels according to the semantics provided in the semantic annotation(s) included in the document received in step <b>402</b>.
p-0034In step <b>408</b>, the computer system (e.g., computer system <b>700</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>) receives user input for a service request by one or more user entries and/or one or more user selections made via the UI panels generated in step <b>406</b>. User input received in step <b>408</b> operates a SOA-based system management application. The process for dynamically generating a semantically correct UI for a service invocation ends at step <b>410</b>.
p-0035In the case of several service invocations combined into a complex flow (e.g., by means of Business Process Execution Language (BPEL)), the panels for each single service invocation are generated by the process of <figref idrefs="DRAWINGS">FIG. 4</figref> and chained to form a flow of UI panels. In a complex flow (e.g., management flow), input for one service may also be input for one or more other services. Once the input is entered by the user, the input does not have to be queried again in UI panels for subsequent service invocations. Therefore, the process of <figref idrefs="DRAWINGS">FIG. 4</figref> reduces the amount of user input required in each of the UI panels associated with a single service invocation making up a complex flow.
p-0036<figref idrefs="DRAWINGS">FIG. 5A</figref> is a flowchart of a process for automatically mapping resource registry data to input data in the system of <figref idrefs="DRAWINGS">FIG. 3</figref>, in accordance with embodiments of the present invention. The process for automatically mapping resource registry data to input data begins at step <b>500</b>. In step <b>502</b>, a computer system (e.g., computer system <b>700</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>) receives a request parameter hints document as in step <b>402</b> (see <figref idrefs="DRAWINGS">FIG. 4</figref>). The request parameter hints document received in step <b>502</b> has semantic annotations that include a mapping definition of IT resource selections.
p-0037In step <b>504</b>, hints interpreter <b>312</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) automatically extracts multiple IT resources (i.e., IT resource selections) from a resource registry (e.g., resource registry <b>320</b>-<b>1</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>). The extraction of IT resource selections in step <b>504</b> is based on the mapping definition in the semantic annotations included in the request parameter hints document received in step <b>502</b>.
p-0038In step <b>506</b>, hints interpreter <b>312</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) automatically maps the IT resource selections extracted in step <b>504</b> to the content of a UI input element (e.g., input element <b>322</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>). In step <b>508</b>, UI generation logic <b>313</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) generates a UI panel that provides the IT resource selections in the UI input element whose content is mapped to the IT resource selections in step <b>506</b>.
p-0039In step <b>510</b>, the UI panel generated in step <b>508</b> is displayed on a display device by a computer system (e.g., computer system <b>700</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>) and receives a user's selection of one IT resource (e.g., IT resource <b>318</b>-<b>1</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>) of the IT resource selections in the UI input element whose content is mapped to the IT resource selections in step <b>506</b>.
p-0040In step <b>512</b>, hints interpreter <b>312</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) automatically maps one or more values of one or more properties of the selected IT resource to one or more elements of a service request input message, as defined in request parameter hints <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>). The mapping of the one or more properties in step <b>512</b> is performed in response to receiving the user's selection of the IT resource in step <b>510</b>. The process for automatically mapping resource registry data to input data ends at step <b>514</b>.
p-0041<figref idrefs="DRAWINGS">FIG. 5B</figref> is a flowchart of a process for extracting IT resource data in the process of <figref idrefs="DRAWINGS">FIG. 5A</figref>, in accordance with embodiments of the present invention. In one embodiment, step <b>504</b> in <figref idrefs="DRAWINGS">FIG. 5A</figref> includes the process of extracting IT resource data in <figref idrefs="DRAWINGS">FIG. 5B</figref>. The process of <figref idrefs="DRAWINGS">FIG. 5B</figref> begins at step <b>520</b>.
p-0042Request parameter hints document <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) includes one or more mapping definitions. Each mapping definition maps an input element to a property of an IT resource based on the IT resource being a particular type of resource. For example, a mapping definition included in request parameter hints document <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) may define that input element A is filled with the IP address property of an IT resource based on the IT resource being of type server. Different mapping definitions included in request parameter hints document <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) may map to input elements based on different types of resources.
p-0043Furthermore, mapping definitions included in request parameter hints document <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) may optionally include selection criteria defined for the resources being mapped. For example, selection criteria included in a mapping definition may indicate that only servers of a specific hardware type are to be selected.
p-0044In step <b>522</b>, the hints interpreter <b>312</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) extracts the following items from the request parameter hints document <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>): (1) the type (a.k.a. resource type) of an IT resource for one mapping and (2) selection criteria for the one mapping (if selection criteria exists for the mapping). Hereinafter in the discussion of <figref idrefs="DRAWINGS">FIG. 5B</figref>, the IT resource whose type is extracted in step <b>522</b> is simply referred to as “the IT resource”.
p-0045Resource registries (e.g., resource registry <b>320</b>-<b>1</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>) are known to system <b>300</b> because the resource registries were registered on a resource type basis as a prerequisite for the processes of <figref idrefs="DRAWINGS">FIGS. 4</figref>, <b>5</b>A and <b>5</b>B. For example, there is a resource registry for resources of type server. In step <b>524</b>, hints interpreter <b>312</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) selects the resource registry (e.g., resource registry <b>320</b>-<b>1</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>) to be queried, where the selection of the resource registry is based on the resource type extracted in step <b>522</b>.
p-0046In step <b>526</b>, hints interpreter <b>312</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) extracts IT resource data from the resource registry selected in step <b>524</b> by using the selection criteria extracted in step <b>522</b>. The IT resource data extracted in step <b>526</b> includes an identifier of the IT resource and one or more values of one or more properties of the IT resource. For example, data about servers of a specific hardware type may be extracted. If no selection criteria are extracted in step <b>522</b>, then step <b>526</b> includes hints interpreter <b>312</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) extracting IT resource data about all IT resources in the resource registry selected in step <b>524</b>.
p-0047In step <b>528</b>, a computer system (e.g., computer system <b>700</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>) stores the IT resource data extracted in step <b>526</b> into a memory operatively coupled to the computer system. The IT resource data stored in the memory is used for (1) display in a UI panel (see step <b>508</b> in <figref idrefs="DRAWINGS">FIG. 5A</figref>) and (2) automatically mapping properties of IT resources to elements of a service request input message (see step <b>512</b> in <figref idrefs="DRAWINGS">FIG. 5A</figref>).
p-0048In one embodiment, for each IT resource the memory includes a record that includes an identifier or name for the IT resource and a number of properties (i.e., name-value pairs). One example of the name-value pairs stored in step <b>528</b> is presented below:
p-0049server<b>1</b>: IP address=10.1.1.1; numberOfProcessors=2; memory=4 GB
p-0050server<b>2</b>: IP address=10.1.1.2; numberOfProcessors=1; memory=2 GB
p-0051server<b>3</b>: IP address=10.1.1.3; numberOfProcessors=2; memory=4 GB
p-0052In the example presented above, the identifier/name is later used for displaying the record in a selection element (e.g., selection element <b>322</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>) in the UI (see step <b>508</b> in <figref idrefs="DRAWINGS">FIG. 5A</figref>). The properties in the example presented above are used for mapping the value of the properties to an element of a service request input message (see step <b>512</b> of <figref idrefs="DRAWINGS">FIG. 5A</figref>).
p-0053Request parameter hints document <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) may include more than one mapping definition for a UI panel. In step <b>530</b>, hints interpreter <b>312</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) determines whether or not all resource types in the mapping definitions of the request parameter hints document <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) have been processed already. If step <b>530</b> determines that there is another resource type for data mapping defined in the request parameter hints document <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) that has not yet been processed by steps <b>522</b>-<b>528</b>, then the process of <figref idrefs="DRAWINGS">FIG. 5B</figref> repeats starting at step <b>522</b> with the extraction of the resource type that has not yet been processed. If step <b>530</b> determines that all resource types in the mapping definitions of the request parameter hints document have been processed already, then the process of <figref idrefs="DRAWINGS">FIG. 5B</figref> ends at step <b>532</b>. After step <b>532</b>, the process of mapping resource registry data to input data using semantic annotations continues with step <b>506</b> in <figref idrefs="DRAWINGS">FIG. 5A</figref>.
p-0054<figref idrefs="DRAWINGS">FIG. 6</figref> is a flowchart of a process for dynamically modifying UI panels in a complex flow in the system of <figref idrefs="DRAWINGS">FIG. 3</figref>, in accordance with embodiments of the present invention. The process of dynamically modifying UI panels in a complex flow begins at step <b>600</b>. In step <b>602</b>, hints interpreter <b>312</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) maps input elements of services of a complex flow to unique fields. The input elements are associated with the unique fields in a many-to-one correspondence.
p-0055In step <b>604</b>, which is at runtime and before a generation of a UI panel for one of the services in the complex flow, user input tracker <b>324</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) tracks input made by a user and checks whether a unique field already includes a value entered by the user, where the unique field is associated with the service and is mapped in step <b>602</b>.
p-0056If user input tracker <b>324</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) determines in step <b>606</b> that the unique field being checked in step <b>604</b> already includes the value, then the Yes branch of step <b>606</b> is taken and step <b>608</b> is performed. In step <b>608</b>, the UI generation logic <b>313</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) omits the input element corresponding to the unique field from a rendering of the UI panel.
p-0057Returning to step <b>606</b>, if the user input tracker <b>324</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) determines that the unique field being checked in step <b>604</b> does not yet include a value, then the No branch of step <b>606</b> is taken and step <b>610</b> is performed. In step <b>610</b>, the UI generation logic <b>313</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) includes the input element corresponding to the unique field in a rendering of the UI panel.
p-0058Inquiry step <b>612</b> follows steps <b>608</b> and <b>610</b>. If user input tracker <b>324</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) determines in step <b>612</b> that there is at least one more unique field to check to determine whether the unique field includes a value previously entered by the user, then the Yes branch of step <b>612</b> is taken and the process of <figref idrefs="DRAWINGS">FIG. 6</figref> repeats starting at step <b>604</b> with a next unique field. Otherwise, if user input tracker <b>324</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>) determines in step <b>612</b> that there are no other unique fields to check in step <b>604</b>, then the No branch of step <b>612</b> is taken and step <b>614</b> is performed.
p-0059In step <b>614</b>, a computer system (e.g., computer system <b>700</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>) displays the UI panel on a display device, receives user-defined input for the unique field, and places the user-defined input into the unique field. The displayed UI panel is the panel rendered with the input element(s) included by step <b>610</b>. Since the unique field includes the value entered by the user, the process of rendering of a subsequent UI panel after step <b>614</b> includes: step <b>604</b>, the Yes branch of step <b>606</b>, and step <b>608</b>, which omits a corresponding input element from the rendering of the subsequent UI panel. The process of <figref idrefs="DRAWINGS">FIG. 6</figref> ends at step <b>616</b>.
p-0060Using the process of <figref idrefs="DRAWINGS">FIG. 6</figref>, mapping input or output of one service in a complex flow to input of another service of the complex flow allows for runtime user selection of alternatives for each service. Therefore, the present invention does not need to know the exact flow and/or selection of input alternatives for each service at pre-runtime.
Computer System
p-0061<figref idrefs="DRAWINGS">FIG. 7</figref> is a block diagram of a computer system that includes components of the system of <figref idrefs="DRAWINGS">FIG. 3</figref>, and that implements one or more of the processes of <figref idrefs="DRAWINGS">FIGS. 4</figref>, <b>5</b>A, <b>5</b>B, and <b>6</b>, in accordance with embodiments of the present invention. Computer system <b>700</b> generally comprises a central processing unit (CPU) <b>702</b>, a memory <b>704</b>, an input/output (I/O) interface <b>706</b>, and a bus <b>708</b>. Further, computer system <b>700</b> is coupled to I/O devices <b>710</b> and a computer data storage unit <b>712</b>. CPU <b>702</b> performs computation and control functions of computer system <b>700</b>. CPU <b>702</b> may comprise a single processing unit, or be distributed across one or more processing units in one or more locations (e.g., on a client and server).
p-0062Memory <b>704</b> may comprise any known type of computer data storage and/or transmission media, including bulk storage, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), a data cache, a data object, etc. In one embodiment, cache memory elements of memory <b>704</b> provide temporary storage of at least some program code (e.g., code comprising hints interpreter <b>312</b>, UI generation logic <b>313</b> and/or code comprising user input tracker <b>318</b>) in order to reduce the number of times code must be retrieved from bulk storage during execution. Moreover, similar to CPU <b>702</b>, memory <b>704</b> may reside at a single physical location, comprising one or more types of data storage, or be distributed across a plurality of physical systems in various forms. Further, memory <b>704</b> can include data distributed across, for example, a local area network (LAN) or a wide area network (WAN).
p-0063I/O interface <b>706</b> comprises any system for exchanging information to or from an external source. I/O devices <b>710</b> comprise any known type of external device, including a display device (e.g., monitor), keyboard, mouse, printer, speakers, handheld device, facsimile, etc. Bus <b>708</b> provides a communication link between each of the components in computer system <b>700</b>, and may comprise any type of transmission link, including electrical, optical, wireless, etc.
p-0064I/O interface <b>706</b> also allows computer system <b>700</b> to store and retrieve information (e.g., data or program instructions such as code comprising hints interpreter <b>312</b>, UI generation logic <b>313</b> and/or code comprising user input tracker <b>318</b>) from an auxiliary storage device such as computer data storage unit <b>712</b> or another computer data storage unit (not shown). Computer data storage unit <b>712</b> may be a non-volatile storage device, such as a magnetic disk drive (i.e., hard disk drive) or an optical disc drive (e.g., a CD-ROM drive which receives a CD-ROM disk). Hereinafter, code comprising hints interpreter <b>312</b> is also referred to as computer program code <b>312</b>, code <b>312</b>, and program <b>312</b>. Hereinafter, code comprising UI generation logic <b>313</b> is also referred to as computer program code <b>313</b>, code <b>313</b>, and program <b>313</b>. Hereinafter, code comprising user input tracker <b>318</b> is also referred to as computer program code <b>318</b>, code <b>318</b>, and program <b>318</b>.
p-0065Memory <b>704</b> includes computer program code <b>312</b> and computer program code <b>313</b> that provide the logic for processes for dynamically generating a semantically correct user interface and for automatically mapping resource registry data to input data using semantic annotations (e.g., the processes of <figref idrefs="DRAWINGS">FIGS. 4 and 5A</figref>). Memory <b>704</b> also may include computer program code <b>318</b> that provides the logic for dynamically modifying a UI panel in a complex flow (e.g., the process of <figref idrefs="DRAWINGS">FIG. 6</figref>). Further, memory <b>704</b> may include other systems not shown in <figref idrefs="DRAWINGS">FIG. 7</figref>, such as an operating system (e.g., Linux) that runs on CPU <b>702</b> and provides control of various components within and/or connected to computer system <b>700</b>.
p-0066Memory <b>704</b>, storage unit <b>712</b>, and/or one or more other computer data storage units (not shown) that are coupled to computer system <b>700</b> may store IT resources <b>318</b>-<b>1</b>, . . . , <b>318</b>-N (see <figref idrefs="DRAWINGS">FIG. 3</figref>), request parameter hints <b>210</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>), and schema <b>208</b> (see <figref idrefs="DRAWINGS">FIG. 3</figref>).
p-0067As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, an embodiment of the present invention may be an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “system” (e.g., system <b>200</b> in <figref idrefs="DRAWINGS">FIG. 2</figref>, system <b>300</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>, or computer system <b>700</b>). Furthermore, an embodiment of the present invention may take the form of a computer program product embodied in any tangible medium of expression (e.g., memory <b>704</b> or computer data storage unit <b>712</b>) having computer-usable program code (e.g., code <b>312</b>, code <b>313</b> or code <b>318</b>) embodied or stored in the medium.
p-0068Any combination of one or more computer-usable or computer-readable medium(s) (e.g., memory <b>704</b> and computer data storage unit <b>712</b>) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus, device or propagation medium. A non-exhaustive list of more specific examples of the computer-readable medium includes: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program <b>312</b>, the program <b>313</b> or the program <b>318</b> is printed, as the program <b>312</b>, program <b>313</b> or program <b>318</b> can be electronically captured via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory <b>704</b>. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code (e.g., program <b>312</b>, program <b>313</b> and/or program <b>318</b>) embodied therewith, either in baseband or as part of a carrier wave. The computer-usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.
p-0069Computer program code (e.g., code <b>312</b>, code <b>313</b> and/or code <b>318</b>) for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java®, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on a user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server (e.g., computer system <b>700</b>). In the latter scenario, the remote computer may be connected to the user's computer through any type of network (not shown), including a LAN, a WAN, or the connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider).
p-0070The present invention is described herein with reference to flowchart illustrations (e.g., <figref idrefs="DRAWINGS">FIGS. 4</figref>, <b>5</b>A, <b>5</b>B, and <b>6</b>) and/or block diagrams of methods, apparatus (systems) (e.g., <figref idrefs="DRAWINGS">FIGS. 2</figref>, <b>3</b> and <b>7</b>), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions (e.g., code <b>312</b>, code <b>313</b> or code <b>318</b>). These computer program instructions may be provided to a processor (e.g., CPU <b>702</b>) of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
p-0071These computer program instructions may also be stored in a computer-readable medium (e.g., memory <b>704</b> or computer data storage unit <b>712</b>) that can direct a computer (e.g., computer system <b>700</b>) or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
p-0072The computer program instructions may also be loaded onto a computer (e.g., computer system <b>700</b>) or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
p-0073Any of the components of an embodiment of the present invention can be deployed, managed, serviced, etc. by a service provider that offers to deploy or integrate computing infrastructure with respect to the processes for dynamically generating a semantically correct user interface for a service invocation and for automatically mapping resource registry data to input data using semantic annotations. Thus, an embodiment of the present invention discloses a process for supporting computer infrastructure, comprising integrating, hosting, maintaining and deploying computer-readable code (e.g., code <b>312</b>, code <b>313</b> and/or code <b>318</b>) into a computer system (e.g., computer system <b>700</b>), wherein the code in combination with the computer system is capable of performing processes for dynamically generating a semantically correct user interface for a service invocation and for automatically mapping resource registry data to input data using semantic annotations.
p-0074In another embodiment, the invention provides a business method that performs the process steps of the invention on a subscription, advertising and/or fee basis. That is, a service provider, such as a Solution Integrator, can offer to create, maintain, support, etc. processes for dynamically generating a semantically correct user interface for a service invocation and for automatically mapping resource registry data to input data using semantic annotations. In this case, the service provider can create, maintain, support, etc. a computer infrastructure that performs the process steps of the invention for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement, and/or the service provider can receive payment from the sale of advertising content to one or more third parties.
p-0075The flowcharts in <figref idrefs="DRAWINGS">FIGS. 4</figref>, <b>5</b>A, <b>5</b>B and <b>6</b> and the block diagrams in <figref idrefs="DRAWINGS">FIGS. 2</figref>, <b>3</b> and <b>7</b> illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code (e.g., code <b>312</b>, code <b>313</b> or code <b>318</b>), which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
p-0076While embodiments of the present invention have been described herein for purposes of illustration, many modifications and changes will become apparent to those skilled in the art. Accordingly, the appended claims are intended to encompass all such modifications and changes as fall within the true spirit and scope of this invention.
Contents5
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8977971B2 | Cited by | United States of America | Search report |
| US9652506B2 | Cited by | United States of America | Applicant |
| US10509789B2 | Cited by | United States of America | Applicant |
| US2016191295A1 | Cited by | United States of America | Search report |
| EP2743826A1 | Cited by | European Patent Office (EPO) | Search report |
| CN102891892A | Cited by | China | Search report |
| US8429203B2 | Cited by | United States of America | Search report |
| EP2624128A3 | Cited by | European Patent Office (EPO) | Search report |
| US2012047130A1 | Cited by | United States of America | Pre-grant |
| US2013159871A1 | Cited by | United States of America | Pre-grant |
| US2016191295A1 | Cited by | United States of America | Search report |
| US9304931B2 | Cited by | United States of America | Applicant |
| US2011029575A1 | Cited by | United States of America | Pre-grant |
| US10146660B2 | Cited by | United States of America | Applicant |
| US8144839B2 | Cited by | United States of America | Search report |
| US9483260B1 | Cited by | United States of America | Search report |
| US8200710B2 | Cited by | United States of America | Search report |
| US2010086110A1 | Cited by | United States of America | Pre-grant |
| US9384012B2 | Cited by | United States of America | Search report |
| US8756568B2 | Cited by | United States of America | Search report |
| US2012166978A1 | Cited by | United States of America | Pre-grant |
| US9870302B2 | Cited by | United States of America | Applicant |
| US9921728B2 | Cited by | United States of America | Applicant |
| US8892585B2 | Cited by | United States of America | Applicant |
| US10432449B2 | Cited by | United States of America | Search report |
| US7149747B1 | Cites | United States of America | Pre-grant |
4 members in 3 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 40902109 | United States of America | A | |
| US20090409021 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| US2010241978A1 | United States of America | A1 | |
| WO2010108724A2 | World Intellectual Property Organization (WIPO) | A2 | |
| TW201035852A | Taiwan Province of China | A | |
| US8140590B2 | United States of America | B2 |
5 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Lapse for failure to pay maintenance feesLapsedLAPS | LAPS | |
| Maintenance fee reminder mailedREMI | REMI | |
| AssignmentAS | AS |
Numbers
- Publication
- 20100241978
- Publication, DOCDB
- 2010241978
- Publication, EPODOC
- US2010241978
- Application
- 12409021
- Application, DOCDB
- 40902109
- Application, EPODOC
- US20090409021
Titles
- English
- DYNAMIC GENERATION OF USER INTERFACES AND AUTOMATED MAPPING OF INPUT DATA FOR SERVICE-ORIENTED ARCHITECTURE-BASED SYSTEM MANAGEMENT APPLICATIONS
Classification
- CPC, 1
- G06F9/451
- IPC, 1
- G06F3 048
- USPC, 1
- 715765000