US20080052294A1 - Web services data aggregation system and method - Google Patents
Web services data aggregation system and method Download PDFInfo
- Publication number
- US20080052294A1 US20080052294A1 US11/688,155 US68815507A US2008052294A1 US 20080052294 A1 US20080052294 A1 US 20080052294A1 US 68815507 A US68815507 A US 68815507A US 2008052294 A1 US2008052294 A1 US 2008052294A1
- Authority
- US
- United States
- Prior art keywords
- service
- services
- results
- schema
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Definitions
- the invention relates to systems and methods for managing data from disparate sources. Specifically, the invention relates to methods, and systems for collecting and reviewing data related to network accessible services such as Web Services.
- Web Services A communications and computing paradigm often referred to as Web Services provides a new model for creating network accessible applications.
- a significant focus of Web Services is on creating infrastructure for discovering, utilizing, and managing available services developed by various entities around the world.
- WSDL Web Services Description Language
- UDDI Universal Description, Discovery and Integration
- RDF Resource Description Framework
- Company A may publish a Web Service that will buy and sell stocks.
- Company B may also publish a Web Service that will also buy and sell stocks.
- Those Web Services may exhibit different calling conventions, perhaps accepting different parameters and returning different values based solely on the needs of each individual company.
- the apparatus of the present invention has been developed in response to the present state of the art, and in particular, in response to the problems and needs in the art that have not yet been fully solved by currently available Web Services discovery and integration systems and methods. Accordingly, it is an overall objective of the present invention to provide an improved system and method for collecting and presenting data from differing sources related to Web Services.
- an improved system and method are presented for aggregating and presenting data related to Web Services and the like.
- the improved system and method provide uniform and consistent means to select, invoke, and evaluate results obtained from Web Services.
- a system for collecting and accessing data related to Web Services includes one or more registries containing descriptions of Web Services, a candidate selection module, a dispatch module, and a data aggregation module.
- the candidate selection module receives service criteria from a service requester, accesses the service descriptions within the registries, and provides a list of selected services that match the service criteria.
- the dispatch module receives the list of selected services, references service definitions that define the format for invoking the candidate services, and invokes each selected service using likely parameter values included within the service criteria.
- the data aggregation module constructs a composite schema and aggregates results provided by the invoked services within service result objects conforming to the composite schema.
- metadata such as a service location and timestamp are appended to the results data to increase the utility of the aggregated data.
- the system for collecting and accessing data related to Web Services receives service requests from a service requester.
- the service requests comprise a collection of name and value pairs that specify desired values for likely parameters.
- the present invention performs tasks such as queries to service registries, consultations with service definitions, invocation of services, and aggregation of data from the invoked services.
- the tasks are performed without requiring direct knowledge by the service requester of the service directories, available Web Services, and their required parameters and formats.
- the system provides service information and/or service results to the service requester.
- the data aggregation module constructs a composite schema that is a superset of the individual result schemas from each selected web service. Construction of a composite schema may occur previous to, or after reception of, actual results from service invocations.
- the composite schema is constructed in one embodiment by examining each element type within each results schema, conducting a test to determine if the composite schema contains sufficient entries corresponding to the element type, and adding an element to the composite schema if the composite schema lacks sufficient entries.
- the elements within each results schema are mapped to the composite schema. Mapping the elements within each results schema to the corresponding elements with the composite schema facilitates placing results data within service result objects conforming to the composite schema. In one embodiment, the mapping is accomplished by appending a label corresponding the element type with a type count indicating the number of elements of that type that have been encountered within the schema or result object that is currently being processed.
- the data aggregation module assembles a set of value lists that contain references to data elements that have a common value.
- the references contained within value lists comprise memory pointers that point to data elements.
- the value lists expedite access, perusal and discovery of unknown relationships.
- the value lists are assembled by examining each value returned from each invoked service, creating a new value list if the examined value is previously unknown, and adding a reference to the data element within a value list corresponding to the examined value.
- the value lists are accessed through a value table in which the entries within the value table correspond to keys generated by a generating function such as a hashing function.
- the resulting structure of the value table and the value lists facilitates aggregation, review, and access to data from disparate or heterogeneous sources in an efficient and uniform manner.
- the resulting structure also facilitates discovery of normally unseen data relationships.
- the aggregation of results data may be organized by other attributes such as element type.
- FIG. 1 is a block diagram illustrating one embodiment of a Web Services data aggregation and perusal system of the present invention
- FIG. 2 is a flow chart diagram illustrating one embodiment of a Web Services data aggregation and review method of the present invention
- FIG. 3 is a flow chart diagram illustrating one embodiment of a composite schema construction method of the present invention.
- FIG. 4 is a set of example tables depicting the results of the composite schema construction method of FIG. 3 ;
- FIG. 5 is a flow chart diagram illustrating one embodiment of a data aggregation method of the present invention.
- FIG. 6 is a block diagram illustrating data structures related to collecting and reviewing data from disparate sources in general and the method of FIG. 5 in particular.
- a Web Services data aggregation and review system 100 includes an aggregation and review engine 110 , and an aggregated data store 120 .
- the aggregation and review engine 110 is preferably interconnected with, or has access to, one or more service registries 130 and one or more service definitions 140 .
- the Web Services data aggregation and review system 100 addresses many of the problems and issues inherent in the prior art discovery and integration techniques as discussed in the Background Section above.
- the aggregation and review engine 110 receives service requests 108 from a service requester 150 .
- the service requests 108 result in tasks being performed by the engine 110 such as queries to the service registries 130 , consultations with the service definitions 140 , invocation of services from one or more service providers 160 , and information storage to and retrieval from the aggregated data store 120 .
- the performed tasks typically result in the engine 110 providing service information 112 and/or service results 114 to the service requester 150 .
- the service requests 108 include a collection of name and value pairs that specify parameter values for various likely parameter names.
- the collection of name and value pairs is used by the aggregation and review engine 110 to initialize parameter values when invoking the selected Web Services.
- the collection of name and value pairs is preferably an extensive, diverse, and redundant set in that the precise parameter names may differ widely between the potentially available services.
- the service registries 130 contain service descriptions that describe the functionality of available Web Services along with general information such as web service names, locations, and service types. Additionally, the service registries 130 typically function as a directory listing service and provide convenient access points for locating services distributed throughout an intra-network or inter-network. In one embodiment, the service registries 130 are accessible through various keys such as entity name for white pages access and entity type for yellow pages access.
- the service registries 130 receive directory queries 128 and provide directory results 132 .
- the directory queries 128 and the directory results 132 conform to the directory services specification.
- the directory queries 128 and the directory results 132 conform to the UDDI specification. Namely, in this embodiment a directory query 128 includes invocation of the UDDI find-business method and the directory results 132 includes a UDDI businessList structure.
- the service definitions 140 contain detailed information necessary to exchange information electronically between a service requester and a service provider.
- the service definitions 140 may contain detailed information on the format and parameters of service invocations 158 and service results 162 .
- the service definitions 140 are accessed using definition queries 138 . Access results are returned as definition results 142 .
- the service definitions 140 and the definition results 142 conform to the emerging WSDL specification.
- the service definitions 140 may define XML schemas used to package and parse data sent to and received from the service providers 160 .
- the service definitions may be co-located with the service registries 130 , or the service providers 160 .
- the service definitions 140 include meta-tags or a similar abstraction that convey the nature of the parameters and results data.
- the service definitions 140 include metadata conforming to the RDF specification.
- Meta-tags such as RDF metadata identify data in an abstract fashion that facilitates better data handling. For example, with the present invention, meta-tags facilitate better matching of name and value pairs included with the service requests 108 with name and values of invocation parameters defined by the service definitions 140 .
- the presence of meta-tags such as RDF metadata also increases the possibility of finding related results data.
- the aggregation and review engine 110 includes a candidate selection module 170 , a dispatch module 180 , and a data aggregation module 190 .
- the candidate selection module 170 receives the service requests 108 , validates those requests, provides the directory queries 128 to conduct searches within the registries 130 , processes the directory results 132 returned by the registries 130 , and provides a service list 172 to the dispatch module 180 .
- the service list 172 comprises service definition objects (not shown) constructed from the service definitions 140 .
- the service definition objects define the interface to the service providers 160 in a consistent service-independent manner that facilitates service invocation and aggregation of results data.
- the dispatch module 180 receives the service list 172 and generates the service invocations 158 after consulting the service definitions 140 or the service definition objects. In one embodiment, the dispatch module 180 matches name and value pairs included with the service requests 108 with parameter names and values from the service definitions 140 . The matching of names and values facilitates initialization of the parameters used in the service invocations 158 .
- the service providers 160 provide the service results 162 .
- the service results 162 are received and organized by the data aggregation module 190 and placed within the aggregated data store 120 .
- metadata such as the service location and an invocation timestamp are appended to the service results.
- the data aggregation module 190 also receives review requests from the service requester 150 , accesses the aggregated data store 120 , and provides service information 112 and/or service results 114 to the service requester 150 .
- the aggregation and review engine 110 facilitates discovery, invocation, and evaluation of Web Services without requiring direct knowledge of services, registries, invocation formats, invocation parameters, and the like.
- a Web Services data aggregation and review method 200 of the present invention collects and organizes web service information and provides the Web Service information and results to service requesters.
- the Web Services data aggregation and review method 200 includes a receive criteria step 210 , a select candidate services step 220 , an invoke candidate services step 230 , an aggregate results step 240 , and a provide relational view step 250 .
- the Web Services data aggregation and review method 200 may be conducted in conjunction with or independently of the Web Services data aggregation and perusal system 100 .
- the data aggregation and review method 200 commences with the receive criteria step 210 .
- the receive criteria step 210 receives and validates service criteria such as the service criteria 108 described in conjunction with FIG. 1 .
- the receive criteria step 210 acknowledges reception of service criteria from the service requester and further acknowledges the validity or non-validity of the received service criteria.
- the data aggregation and review method 200 proceeds to the select candidate services step 220 .
- the select candidate services step 220 conducts or invokes searches within one or more registries such as the service registries 130 . The searches are conducted to find services registered with the service registries that match the service criteria received in step 210 and provide selected services (not shown).
- the service registries support the UDDI specification and the select candidates services step 220 uses UDDI methods to access the service registries.
- the method 200 Upon finding services that match the service criteria, the method 200 proceeds to the invoke candidate services step 230 .
- the invoke candidate services step 230 invokes, or sends messages to cause invocation of, the selected services such as those associated with the service providers 160 shown in FIG. 1 .
- invoking the selected services is performed via SOAP (Simple Object Access Protocol.)
- invoking the selected services occurs using XML-RPC (Extensible Markup Language—Remote Procedure Call).
- the data aggregation and review method 200 proceeds from step 230 to the aggregate results step 240 .
- the aggregate results step 240 collects results returned by the invoked candidate services.
- metadata such as the service location and invocation timestamp are appended to the results data to increase the utility of the results data.
- the aggregate results step 240 creates a service result object for each invoked service, and the service result object contains fields conforming to a composite schema.
- the present invention creates a composite schema by merging results schemas and removing redundant elements.
- the schemas adhere to the XML schema specification. Conforming to a composite schema presents a common view of results data and provides a uniform interface for utilizing the results data. Construction of the composite schema will be described below in conjunction with FIGS. 3 and 5 .
- each value list contains references to the service result objects that share a common result value independent of any schema structure.
- other lists such as element type lists are also assembled in order to facilitate analysis and discovery.
- the data aggregation and review method 200 proceeds from the aggregate results step 240 to the provide relational view step 250 .
- Associating service results objects with value lists and other lists as described in the aggregate results step 240 facilitates presenting views that enable discovery of, and exploitation of, relationships that otherwise would go unnoticed. For example, views may be presented to the service requester that allow the service requester to select any result value and display results from invoked services that have a similar result value.
- the provide relational view step 250 provides a default view of the results data that contains or shows the relationships contained within value lists.
- the provide relational view may also change the current view of the results data in response to requests from the service requester.
- the provide relational view step 250 may persist across many usage sessions.
- the aggregated results data accumulates with usage, and results data from various invocations is compared via the provided relational view.
- the ability to select various views of the results data persists indefinitely.
- the data aggregation and review method 200 releases the aggregated results data and ends 260 in response to a termination request from the service requester.
- a composite schema construction method 300 may be conducted in conjunction with, or independent of, the data aggregation and review method 200 .
- the composite schema construction method 300 in the depicted embodiment includes an examine type step 310 , a sufficient entries test 320 , an add element step 330 , and a map element step 340 .
- the composite schema construction method 300 is conducted on each individual element from a plurality of schemas, such as those defining results returned from service invocations. The method is used to construct a composite schema that facilitates handling data from disparate sources in a consistent manner.
- the composite schema construction method 300 commences with the examine type step 310 .
- the examine type step 310 inspects an individual element from a schema or result object that is being merged into the composite schema and ascertains the type of element that is being merged.
- the element type is then used to update a type count or some other tabulating mechanism that indicates the number of elements of that type that have been encountered within the schema or result object that is currently being processed.
- the composite schema construction method 300 proceeds to the sufficient entries test 320 .
- the sufficient entries test 320 ascertains whether sufficient entries of the examined type exist within the composite schema.
- the sufficient entries test 320 comprises comparing a type count of the schema or result object that is currently being processed, with a type count for the composite schema. If an acceptable match exists, the composite schema construction method 300 skips to the map element step 340 . If there are not sufficient entries within the composite schema, the method proceeds to the add element step 330 .
- An acceptable match is an exact match of the data types or alternatively, the substitution of data types that would not result in data loss or truncation.
- the add element step 330 adds an element of the examined type to the composite schema. Adding an element ensures that sufficient entries exist within the composite schema.
- the composite schema construction method 300 proceeds to the map element step 340 .
- the map element step 340 maps the element that is currently being processed within the schema or result object that is currently being processed to a corresponding element within the composite schema. In one embodiment, the mapping is accomplished by appending the type count onto a label corresponding the element type. Examples of the results of the map element step 340 can be found within the fourth column of the result schemas 400 shown in FIG. 4 .
- mapping of schema elements to composite schema elements facilitates moving results data from disparate sources into structures or objects conforming to the composite schema. Structures or objects conforming to the composite schema may be handled and accessed in a consistent manner regardless of origin and content.
- the composite schema construction method 300 ends 350 .
- FIG. 4 illustrates the utility of the composite schema construction method 300 .
- a plurality of result schemas 400 are used to create a composite schema 410 .
- the result schemas 400 and the composite schema 410 include a name field 420 and a type field 430 .
- Construction of a composite schema may occur prior to or after reception of actual results from service invocations.
- a composite schema is constructed prior to receiving results data by conducting the composite schema construction method 300 in conjunction with consulting the service definitions 140 shown in FIG. 1 .
- the rows within the depicted schemas represent schema elements 450 .
- the result schemas 400 and the composite schema 410 contain simple non-hierarchical elements and the elements are populated with sample data within a value field 440 .
- the composite schema 410 contains enough elements of each particular type to represent any particular result schema 400 .
- the composite schema 410 is a superset of all of the result schemas 400 .
- results data received from invoking a particular web service corresponds to a relatively small subset of the composite schema elements.
- results data are stored within service result objects conforming to a composite schema.
- the depicted composite schema 410 is populated with data corresponding to data from the depicted result schema 400 b .
- Schema elements within the depicted composite schema 410 that have no corresponding element within the depicted result schema 400 b are shown populated with NULL values.
- mapping the results data into the format of the composite schema as shown by each mapping 460 is achieved in part by mapping the results data into the format of the composite schema as shown by each mapping 460 .
- the mapping occurs via a target element field 470 (fourth column of the result schemas 400 ) for each element 450 within the result schemas 400 .
- the target element field is a composite element field name.
- the target element field is an element index or offset.
- a data aggregation method 500 may be conducted in conjunction with, or independent of, the aggregate results step 240 of the data aggregation and review method 200 .
- the data aggregation method 500 includes an examine value step 510 , a new value test 520 , a create list step 530 , and an add object reference step 540 .
- the data aggregation method 500 essentially creates a set of reference tables or lists that expedite access, review and discovery of unknown relationships. Each table or list references one or more data elements that correspond to a unique reference value. In one embodiment, the references contained within reference tables or lists comprise memory pointers that point to data elements. The data aggregation method 500 is preferably conducted for each data element within data objects that are the objects of interest, such as the result objects returned from invoking Web Services.
- the method 500 is conducted for each data element returned from each invoked web service and the references within the reference tables or lists point to data elements within service result objects.
- other lists such as element type lists may be assembled by adapting the method 500 in an appropriate manner.
- the data aggregation method 500 begins with the examine value step 510 .
- the examine value step 510 ascertains the value of an individual data element.
- the examine value step 510 conducts a hashing algorithm to reduce large values to a manageable size. After ascertaining the value, the method 500 proceeds to the new value test 520 .
- the new value test 520 ascertains whether the value has been encountered within the previously processed data.
- the new value test comprises accessing a value table containing pointers to value lists and testing for a null value. If the value has been previously encountered (i.e., the value list exists), the data aggregation method 500 skips to the add object reference step 540 . Otherwise, a new value has been found and the method proceeds to the create new list step 530 .
- the create new list step 530 creates a list for a newly encountered value.
- the created list comprises an array of memory pointers initialized to null values.
- the add object reference step 540 adds a reference to the examined data element within the appropriate list. For example, in one embodiment adding a reference to the examined data element comprises appending a pointer to the examined data element to the appropriate list.
- the data aggregation method checks in a step 545 to see whether more data exists. If so, the method 500 loops back to the step 510 and repeats. This continues until no more data exists, whereupon the method 500 ends 550 .
- FIG. 6 illustrates the effect of the data aggregation method 500 in the form of aggregated data 600 .
- the source data for the depicted aggregated data 600 is the example results data shown within the result schemas 400 of FIG. 4 .
- the depicted structure of the aggregated data 600 may be used to aggregate and review results data such as service result objects created by the Web Services data aggregation and review method 200 .
- the depicted structure may be adapted to organize by other identifiers such as element type.
- the depicted results are restricted to values from data elements having airport, city, and location element types.
- the aggregated data 600 includes a reference table or list 610 , a plurality of individual objects 620 , and a plurality of lists 630 .
- the aggregated data 600 is structured in a manner that facilitates aggregation, review, and access to data from disparate or heterogeneous sources in an efficient uniform manner.
- the structure of the aggregated data 600 also facilitates discovery of normally unseen data relationships.
- a reference table or list 610 facilitates mapping specific values to corresponding individual result objects 620 .
- Each of the corresponding individual result objects 620 that have a specific value are enumerated within the lists 630 via a reference such as a pointer or an index.
- the reference table or list 610 is a hash table and values may be converted to a value table index via a generating function (not shown).
- a value table index or a value list pointer may also be stored within the disparate result objects 620 .
Abstract
Description
- This application is a continuation-in-part of and claims priority to U.S. patent application Ser. No. 10/256,124 entitled “WEB SERVICES DATA AGGREGATION SYSTEM AND METHOD” and filed on Sep. 26, 2002 for Michael K. Larkin and Howard Lee, which is incorporated herein by reference.
- 1. The Field of the Invention
- The invention relates to systems and methods for managing data from disparate sources. Specifically, the invention relates to methods, and systems for collecting and reviewing data related to network accessible services such as Web Services.
- 2. The Relevant Art
- The increased interconnectivity, computing power, and publishing capabilities associated with the growth of the Internet have spurred acceptance and deployment of electronic commerce and other inter-network enabled applications. Corporations, individuals, and organizations of all types are now interacting and conducting commerce through this exponentially increasing medium. The expanding potential of the medium presents opportunities for new applications and methods of doing business as well as automation of existing intra-entity and inter-entity processes and systems.
- Despite the tremendous potential of the Internet, barriers to the full exploitation of electronic commerce remain. For example, computing systems from different cooperating entities often have difficulty communicating. Typically, expensive custom programming is required. The cost and delays associated with linking different systems into a single common system have limited deployment to these specific tasks and markets where cooperating entities are highly motivated to conduct business with one another.
- A communications and computing paradigm often referred to as Web Services provides a new model for creating network accessible applications. A significant focus of Web Services is on creating infrastructure for discovering, utilizing, and managing available services developed by various entities around the world. Several emerging standards such as WSDL (Web Services Description Language), UDDI (Universal Description, Discovery and Integration) and RDF (Resource Description Framework) attempt to provide publicly accessible means for publishing and utilizing Web Services.
- To more fully understand what a Web Service is and how it is used in the context of a software program, and in order to more fully appreciate the deficiencies of the prior art, we can consider several fictitious businesses that provide Web Services dealing with securities trading such as stocks and bonds. Company A may publish a Web Service that will buy and sell stocks. Company B may also publish a Web Service that will also buy and sell stocks. Those Web Services may exhibit different calling conventions, perhaps accepting different parameters and returning different values based solely on the needs of each individual company.
- These companies may also choose to publish WSDL documents to a UDDI registry to make the Web characteristics of each published service publicly available. Nevertheless, a customer of these services (in this case, a software program making invocations on the Web Services) must either previously know how to handle both companies' services, or limit themselves to using either one or the other. Hence, the need for a uniform and consistent representation of WSDL documents is readily seen by virtue of the deficiencies exhibited by the scenario described.
- Despite the emerging efforts to automate inter-entity interaction, human judgment and analysis remains a critical component. Systems and methods are needed to facilitate better automated discovery and analysis of informational and functional services such as Web Services. The ability to automatically collect, organize and display results provided by various services in a consistent manner would facilitate automated selection and deployment of useful services within network-based systems and applications.
- The apparatus of the present invention has been developed in response to the present state of the art, and in particular, in response to the problems and needs in the art that have not yet been fully solved by currently available Web Services discovery and integration systems and methods. Accordingly, it is an overall objective of the present invention to provide an improved system and method for collecting and presenting data from differing sources related to Web Services.
- To achieve the foregoing objectives, and in accordance with the invention as embodied and broadly described herein in the preferred embodiments, an improved system and method are presented for aggregating and presenting data related to Web Services and the like. The improved system and method provide uniform and consistent means to select, invoke, and evaluate results obtained from Web Services.
- In a first aspect of the invention, a system for collecting and accessing data related to Web Services includes one or more registries containing descriptions of Web Services, a candidate selection module, a dispatch module, and a data aggregation module.
- The candidate selection module receives service criteria from a service requester, accesses the service descriptions within the registries, and provides a list of selected services that match the service criteria.
- The dispatch module receives the list of selected services, references service definitions that define the format for invoking the candidate services, and invokes each selected service using likely parameter values included within the service criteria. In turn, the data aggregation module constructs a composite schema and aggregates results provided by the invoked services within service result objects conforming to the composite schema. In one embodiment, metadata such as a service location and timestamp are appended to the results data to increase the utility of the aggregated data.
- The system for collecting and accessing data related to Web Services receives service requests from a service requester. In one embodiment, the service requests comprise a collection of name and value pairs that specify desired values for likely parameters. In response to service requests, the present invention performs tasks such as queries to service registries, consultations with service definitions, invocation of services, and aggregation of data from the invoked services. The tasks are performed without requiring direct knowledge by the service requester of the service directories, available Web Services, and their required parameters and formats. After completion of the necessary tasks, the system provides service information and/or service results to the service requester.
- In a second aspect of the invention, the data aggregation module constructs a composite schema that is a superset of the individual result schemas from each selected web service. Construction of a composite schema may occur previous to, or after reception of, actual results from service invocations. The composite schema is constructed in one embodiment by examining each element type within each results schema, conducting a test to determine if the composite schema contains sufficient entries corresponding to the element type, and adding an element to the composite schema if the composite schema lacks sufficient entries.
- In one embodiment, the elements within each results schema are mapped to the composite schema. Mapping the elements within each results schema to the corresponding elements with the composite schema facilitates placing results data within service result objects conforming to the composite schema. In one embodiment, the mapping is accomplished by appending a label corresponding the element type with a type count indicating the number of elements of that type that have been encountered within the schema or result object that is currently being processed.
- In a third aspect of the invention, the data aggregation module assembles a set of value lists that contain references to data elements that have a common value. In one embodiment, the references contained within value lists comprise memory pointers that point to data elements. The value lists expedite access, perusal and discovery of unknown relationships.
- The value lists are assembled by examining each value returned from each invoked service, creating a new value list if the examined value is previously unknown, and adding a reference to the data element within a value list corresponding to the examined value. In one embodiment, the value lists are accessed through a value table in which the entries within the value table correspond to keys generated by a generating function such as a hashing function.
- The resulting structure of the value table and the value lists facilitates aggregation, review, and access to data from disparate or heterogeneous sources in an efficient and uniform manner. The resulting structure also facilitates discovery of normally unseen data relationships. In addition to organizing by value, the aggregation of results data may be organized by other attributes such as element type.
- These and other objects, features, and advantages of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
- In order that the manner in which the advantages and objects of the invention are obtained will be readily understood, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof, which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
-
FIG. 1 is a block diagram illustrating one embodiment of a Web Services data aggregation and perusal system of the present invention; -
FIG. 2 is a flow chart diagram illustrating one embodiment of a Web Services data aggregation and review method of the present invention; -
FIG. 3 is a flow chart diagram illustrating one embodiment of a composite schema construction method of the present invention; -
FIG. 4 is a set of example tables depicting the results of the composite schema construction method ofFIG. 3 ; -
FIG. 5 is a flow chart diagram illustrating one embodiment of a data aggregation method of the present invention; and -
FIG. 6 is a block diagram illustrating data structures related to collecting and reviewing data from disparate sources in general and the method ofFIG. 5 in particular. - Referring to
FIG. 1 , a Web Services data aggregation andreview system 100 includes an aggregation andreview engine 110, and an aggregateddata store 120. In addition to thedata store 120, the aggregation andreview engine 110 is preferably interconnected with, or has access to, one ormore service registries 130 and one ormore service definitions 140. The Web Services data aggregation andreview system 100 addresses many of the problems and issues inherent in the prior art discovery and integration techniques as discussed in the Background Section above. - In operation, the aggregation and
review engine 110 receivesservice requests 108 from aservice requester 150. The service requests 108 result in tasks being performed by theengine 110 such as queries to theservice registries 130, consultations with theservice definitions 140, invocation of services from one ormore service providers 160, and information storage to and retrieval from the aggregateddata store 120. The performed tasks typically result in theengine 110 providing service information 112 and/or service results 114 to theservice requester 150. - In one embodiment, the service requests 108 include a collection of name and value pairs that specify parameter values for various likely parameter names. The collection of name and value pairs is used by the aggregation and
review engine 110 to initialize parameter values when invoking the selected Web Services. The collection of name and value pairs is preferably an extensive, diverse, and redundant set in that the precise parameter names may differ widely between the potentially available services. - The
service registries 130 contain service descriptions that describe the functionality of available Web Services along with general information such as web service names, locations, and service types. Additionally, theservice registries 130 typically function as a directory listing service and provide convenient access points for locating services distributed throughout an intra-network or inter-network. In one embodiment, theservice registries 130 are accessible through various keys such as entity name for white pages access and entity type for yellow pages access. - In the depicted embodiment, the
service registries 130 receivedirectory queries 128 and provide directory results 132. The directory queries 128 and the directory results 132 conform to the directory services specification. In the embodiment ofFIG. 1 , the directory queries 128 and the directory results 132 conform to the UDDI specification. Namely, in this embodiment adirectory query 128 includes invocation of the UDDI find-business method and the directory results 132 includes a UDDI businessList structure. - The
service definitions 140 contain detailed information necessary to exchange information electronically between a service requester and a service provider. For example, theservice definitions 140 may contain detailed information on the format and parameters ofservice invocations 158 and service results 162. Theservice definitions 140 are accessed using definition queries 138. Access results are returned as definition results 142. - In one embodiment, the
service definitions 140 and the definition results 142 conform to the emerging WSDL specification. For example, theservice definitions 140 may define XML schemas used to package and parse data sent to and received from theservice providers 160. For convenience, the service definitions may be co-located with theservice registries 130, or theservice providers 160. - The
service definitions 140 include meta-tags or a similar abstraction that convey the nature of the parameters and results data. In one embodiment, theservice definitions 140 include metadata conforming to the RDF specification. Meta-tags such as RDF metadata identify data in an abstract fashion that facilitates better data handling. For example, with the present invention, meta-tags facilitate better matching of name and value pairs included with the service requests 108 with name and values of invocation parameters defined by theservice definitions 140. The presence of meta-tags such as RDF metadata also increases the possibility of finding related results data. - Internally, the aggregation and
review engine 110 includes acandidate selection module 170, adispatch module 180, and adata aggregation module 190. Thecandidate selection module 170 receives the service requests 108, validates those requests, provides the directory queries 128 to conduct searches within theregistries 130, processes the directory results 132 returned by theregistries 130, and provides aservice list 172 to thedispatch module 180. In one embodiment theservice list 172 comprises service definition objects (not shown) constructed from theservice definitions 140. The service definition objects define the interface to theservice providers 160 in a consistent service-independent manner that facilitates service invocation and aggregation of results data. - The
dispatch module 180 receives theservice list 172 and generates theservice invocations 158 after consulting theservice definitions 140 or the service definition objects. In one embodiment, thedispatch module 180 matches name and value pairs included with the service requests 108 with parameter names and values from theservice definitions 140. The matching of names and values facilitates initialization of the parameters used in theservice invocations 158. - In response to the
service invocations 158, theservice providers 160 provide the service results 162. The service results 162 are received and organized by thedata aggregation module 190 and placed within the aggregateddata store 120. In one embodiment, metadata such as the service location and an invocation timestamp are appended to the service results. Thedata aggregation module 190 also receives review requests from theservice requester 150, accesses the aggregateddata store 120, and provides service information 112 and/or service results 114 to theservice requester 150. - Through the means described herein, the aggregation and
review engine 110 facilitates discovery, invocation, and evaluation of Web Services without requiring direct knowledge of services, registries, invocation formats, invocation parameters, and the like. - Referring to
FIG. 2 , a Web Services data aggregation andreview method 200 of the present invention collects and organizes web service information and provides the Web Service information and results to service requesters. The Web Services data aggregation andreview method 200 includes a receivecriteria step 210, a select candidate services step 220, an invoke candidate services step 230, an aggregate results step 240, and a providerelational view step 250. The Web Services data aggregation andreview method 200 may be conducted in conjunction with or independently of the Web Services data aggregation andperusal system 100. - The data aggregation and
review method 200 commences with the receivecriteria step 210. The receivecriteria step 210 receives and validates service criteria such as theservice criteria 108 described in conjunction withFIG. 1 . In one embodiment, the receivecriteria step 210 acknowledges reception of service criteria from the service requester and further acknowledges the validity or non-validity of the received service criteria. - Assuming valid service criteria, the data aggregation and
review method 200 proceeds to the select candidate services step 220. The select candidate services step 220 conducts or invokes searches within one or more registries such as theservice registries 130. The searches are conducted to find services registered with the service registries that match the service criteria received instep 210 and provide selected services (not shown). In one embodiment, the service registries support the UDDI specification and the select candidates services step 220 uses UDDI methods to access the service registries. - Upon finding services that match the service criteria, the
method 200 proceeds to the invoke candidate services step 230. The invoke candidate services step 230 invokes, or sends messages to cause invocation of, the selected services such as those associated with theservice providers 160 shown inFIG. 1 . In one embodiment, invoking the selected services is performed via SOAP (Simple Object Access Protocol.) In another embodiment, invoking the selected services occurs using XML-RPC (Extensible Markup Language—Remote Procedure Call). The data aggregation andreview method 200 proceeds fromstep 230 to the aggregate results step 240. - The aggregate results step 240 collects results returned by the invoked candidate services. In one embodiment, metadata such as the service location and invocation timestamp are appended to the results data to increase the utility of the results data. Preferably, the aggregate results step 240 creates a service result object for each invoked service, and the service result object contains fields conforming to a composite schema.
- The present invention creates a composite schema by merging results schemas and removing redundant elements. In one embodiment, the schemas adhere to the XML schema specification. Conforming to a composite schema presents a common view of results data and provides a uniform interface for utilizing the results data. Construction of the composite schema will be described below in conjunction with
FIGS. 3 and 5 . - To facilitate review of the results data, certain embodiments of the aggregate results step 240 place references to service results objects within value lists. Each value list contains references to the service result objects that share a common result value independent of any schema structure. In certain embodiments, other lists such as element type lists are also assembled in order to facilitate analysis and discovery.
- The data aggregation and
review method 200 proceeds from the aggregate results step 240 to the providerelational view step 250. Associating service results objects with value lists and other lists as described in the aggregate results step 240 facilitates presenting views that enable discovery of, and exploitation of, relationships that otherwise would go unnoticed. For example, views may be presented to the service requester that allow the service requester to select any result value and display results from invoked services that have a similar result value. - In one embodiment, the provide
relational view step 250 provides a default view of the results data that contains or shows the relationships contained within value lists. The provide relational view may also change the current view of the results data in response to requests from the service requester. The providerelational view step 250 may persist across many usage sessions. - In certain embodiments, the aggregated results data accumulates with usage, and results data from various invocations is compared via the provided relational view. In the described embodiments, the ability to select various views of the results data persists indefinitely. In another embodiment, the data aggregation and
review method 200 releases the aggregated results data and ends 260 in response to a termination request from the service requester. - Referring to
FIG. 3 , a compositeschema construction method 300 may be conducted in conjunction with, or independent of, the data aggregation andreview method 200. The compositeschema construction method 300 in the depicted embodiment includes an examinetype step 310, a sufficient entries test 320, anadd element step 330, and amap element step 340. The compositeschema construction method 300 is conducted on each individual element from a plurality of schemas, such as those defining results returned from service invocations. The method is used to construct a composite schema that facilitates handling data from disparate sources in a consistent manner. - The composite
schema construction method 300 commences with the examinetype step 310. The examinetype step 310 inspects an individual element from a schema or result object that is being merged into the composite schema and ascertains the type of element that is being merged. The element type is then used to update a type count or some other tabulating mechanism that indicates the number of elements of that type that have been encountered within the schema or result object that is currently being processed. - After completion of the examine
type step 310, the compositeschema construction method 300 proceeds to the sufficient entries test 320. The sufficient entries test 320 ascertains whether sufficient entries of the examined type exist within the composite schema. In one embodiment, the sufficient entries test 320 comprises comparing a type count of the schema or result object that is currently being processed, with a type count for the composite schema. If an acceptable match exists, the compositeschema construction method 300 skips to themap element step 340. If there are not sufficient entries within the composite schema, the method proceeds to the addelement step 330. An acceptable match is an exact match of the data types or alternatively, the substitution of data types that would not result in data loss or truncation. - The
add element step 330 adds an element of the examined type to the composite schema. Adding an element ensures that sufficient entries exist within the composite schema. After theadd element step 330, the compositeschema construction method 300 proceeds to themap element step 340. - The
map element step 340 maps the element that is currently being processed within the schema or result object that is currently being processed to a corresponding element within the composite schema. In one embodiment, the mapping is accomplished by appending the type count onto a label corresponding the element type. Examples of the results of themap element step 340 can be found within the fourth column of the result schemas 400 shown inFIG. 4 . - The mapping of schema elements to composite schema elements facilitates moving results data from disparate sources into structures or objects conforming to the composite schema. Structures or objects conforming to the composite schema may be handled and accessed in a consistent manner regardless of origin and content. After completion of the
map element step 340, the compositeschema construction method 300 ends 350. -
FIG. 4 illustrates the utility of the compositeschema construction method 300. As depicted, a plurality of result schemas 400 are used to create acomposite schema 410. The result schemas 400 and thecomposite schema 410 include aname field 420 and atype field 430. Construction of a composite schema may occur prior to or after reception of actual results from service invocations. For example, in one embodiment a composite schema is constructed prior to receiving results data by conducting the compositeschema construction method 300 in conjunction with consulting theservice definitions 140 shown inFIG. 1 . - The rows within the depicted schemas represent
schema elements 450. For purposes of illustration, the result schemas 400 and thecomposite schema 410 contain simple non-hierarchical elements and the elements are populated with sample data within avalue field 440. Thecomposite schema 410 contains enough elements of each particular type to represent any particular result schema 400. In essence, thecomposite schema 410 is a superset of all of the result schemas 400. Typically, results data received from invoking a particular web service corresponds to a relatively small subset of the composite schema elements. - In one embodiment of the present invention, results data are stored within service result objects conforming to a composite schema. For purposes of illustration, the depicted
composite schema 410 is populated with data corresponding to data from the depictedresult schema 400 b. Schema elements within the depictedcomposite schema 410 that have no corresponding element within the depictedresult schema 400 b are shown populated with NULL values. - Providing a consistent view of the results data as well as consistent methods to access results data are achieved in part by mapping the results data into the format of the composite schema as shown by each mapping 460. In the depicted example, the mapping occurs via a target element field 470 (fourth column of the result schemas 400) for each
element 450 within the result schemas 400. For example, in one embodiment the target element field is a composite element field name. In another embodiment, the target element field is an element index or offset. - Referring to
FIG. 5 , adata aggregation method 500 may be conducted in conjunction with, or independent of, the aggregate results step 240 of the data aggregation andreview method 200. Thedata aggregation method 500 includes an examinevalue step 510, anew value test 520, a createlist step 530, and an addobject reference step 540. - The
data aggregation method 500 essentially creates a set of reference tables or lists that expedite access, review and discovery of unknown relationships. Each table or list references one or more data elements that correspond to a unique reference value. In one embodiment, the references contained within reference tables or lists comprise memory pointers that point to data elements. Thedata aggregation method 500 is preferably conducted for each data element within data objects that are the objects of interest, such as the result objects returned from invoking Web Services. - In the present invention the
method 500 is conducted for each data element returned from each invoked web service and the references within the reference tables or lists point to data elements within service result objects. In certain embodiments, other lists such as element type lists may be assembled by adapting themethod 500 in an appropriate manner. - The
data aggregation method 500 begins with the examinevalue step 510. The examinevalue step 510 ascertains the value of an individual data element. In one embodiment the examinevalue step 510 conducts a hashing algorithm to reduce large values to a manageable size. After ascertaining the value, themethod 500 proceeds to thenew value test 520. - The
new value test 520 ascertains whether the value has been encountered within the previously processed data. In one embodiment, the new value test comprises accessing a value table containing pointers to value lists and testing for a null value. If the value has been previously encountered (i.e., the value list exists), thedata aggregation method 500 skips to the addobject reference step 540. Otherwise, a new value has been found and the method proceeds to the createnew list step 530. - The create
new list step 530 creates a list for a newly encountered value. In one embodiment, the created list comprises an array of memory pointers initialized to null values. After the createnew list step 530, thedata aggregation method 500 proceeds to the addobject reference step 540. - The add
object reference step 540 adds a reference to the examined data element within the appropriate list. For example, in one embodiment adding a reference to the examined data element comprises appending a pointer to the examined data element to the appropriate list. Upon completion of the addobject reference step 540, the data aggregation method checks in astep 545 to see whether more data exists. If so, themethod 500 loops back to thestep 510 and repeats. This continues until no more data exists, whereupon themethod 500 ends 550. -
FIG. 6 illustrates the effect of thedata aggregation method 500 in the form of aggregateddata 600. The source data for the depicted aggregateddata 600 is the example results data shown within the result schemas 400 ofFIG. 4 . The depicted structure of the aggregateddata 600 may be used to aggregate and review results data such as service result objects created by the Web Services data aggregation andreview method 200. In addition to organization by value, the depicted structure may be adapted to organize by other identifiers such as element type. In order to simplify the illustration, the depicted results are restricted to values from data elements having airport, city, and location element types. - The aggregated
data 600 includes a reference table orlist 610, a plurality ofindividual objects 620, and a plurality oflists 630. The aggregateddata 600 is structured in a manner that facilitates aggregation, review, and access to data from disparate or heterogeneous sources in an efficient uniform manner. The structure of the aggregateddata 600 also facilitates discovery of normally unseen data relationships. - A reference table or
list 610 facilitates mapping specific values to corresponding individual result objects 620. Each of the corresponding individual result objects 620 that have a specific value are enumerated within thelists 630 via a reference such as a pointer or an index. In one embodiment, the reference table orlist 610 is a hash table and values may be converted to a value table index via a generating function (not shown). To facilitate repeated access to the reference table orlist 610 and thelists 630, a value table index or a value list pointer may also be stored within the disparate result objects 620. - The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims (29)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/688,155 US7933891B2 (en) | 2002-09-26 | 2007-03-19 | Web services data aggregation system and method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/256,124 US7194482B2 (en) | 2002-09-26 | 2002-09-26 | Web services data aggregation system and method |
US11/688,155 US7933891B2 (en) | 2002-09-26 | 2007-03-19 | Web services data aggregation system and method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/256,124 Continuation-In-Part US7194482B2 (en) | 2002-09-26 | 2002-09-26 | Web services data aggregation system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
US20080052294A1 true US20080052294A1 (en) | 2008-02-28 |
US7933891B2 US7933891B2 (en) | 2011-04-26 |
Family
ID=46328605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/688,155 Expired - Fee Related US7933891B2 (en) | 2002-09-26 | 2007-03-19 | Web services data aggregation system and method |
Country Status (1)
Country | Link |
---|---|
US (1) | US7933891B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090240694A1 (en) * | 2008-03-18 | 2009-09-24 | Nathan Blaine Jensen | Techniques for application data scrubbing, reporting, and analysis |
US20100114620A1 (en) * | 2008-10-30 | 2010-05-06 | Diament Judah M | Service Description Refinement Based on Actual Service Use |
CN107832463A (en) * | 2017-11-28 | 2018-03-23 | 中国银行股份有限公司 | A kind of finance data service platform |
US11366678B2 (en) * | 2013-03-14 | 2022-06-21 | Amazon Technologies, Inc. | Avoiding or deferring data copies |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9594759B2 (en) * | 2009-06-16 | 2017-03-14 | Microsoft Technology Licensing, Llc | Backup and archival of selected items as a composite object |
US8973012B2 (en) | 2011-10-25 | 2015-03-03 | International Business Machines Corporation | Composing analytic solutions |
US20140006576A1 (en) * | 2012-06-28 | 2014-01-02 | International Business Machines Corporation | Managing service specifications and the discovery of associated services |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379419A (en) * | 1990-12-07 | 1995-01-03 | Digital Equipment Corporation | Methods and apparatus for accesssing non-relational data files using relational queries |
US5793964A (en) * | 1995-06-07 | 1998-08-11 | International Business Machines Corporation | Web browser system |
US5946696A (en) * | 1996-05-31 | 1999-08-31 | Microsoft Corporation | Object property lists |
US6094654A (en) * | 1996-12-06 | 2000-07-25 | International Business Machines Corporation | Data management system for file and database management |
US6128624A (en) * | 1997-11-12 | 2000-10-03 | Ncr Corporation | Collection and integration of internet and electronic commerce data in a database during web browsing |
US6216173B1 (en) * | 1998-02-03 | 2001-04-10 | Redbox Technologies Limited | Method and apparatus for content processing and routing |
US6269362B1 (en) * | 1997-12-19 | 2001-07-31 | Alta Vista Company | System and method for monitoring web pages by comparing generated abstracts |
US20010013020A1 (en) * | 2000-01-20 | 2001-08-09 | Hiroshi Yoshida | Service providing system and method used therefor |
US20010018680A1 (en) * | 2000-02-28 | 2001-08-30 | Park Jun Hyun | Electronic commerce business settlement system using financial accounts |
US20010034771A1 (en) * | 2000-01-14 | 2001-10-25 | Sun Microsystems, Inc. | Network portal system and methods |
US6421681B1 (en) * | 1998-09-25 | 2002-07-16 | International Business Machines Corporation | Framework for representation and manipulation of record oriented data |
US20020147611A1 (en) * | 2000-05-22 | 2002-10-10 | Greene William S. | Method and system for realizing a rendezvous service in a management operations center implemented in a global ecosystem of interrelated services |
US20020161745A1 (en) * | 1998-03-27 | 2002-10-31 | Call Charles Gainor | Methods and apparatus for using the internet domain name system to disseminate product information |
US20020169852A1 (en) * | 2001-05-11 | 2002-11-14 | International Business Machines Corporation | System and method for dynamically integrating remote protlets into portals |
US20020178254A1 (en) * | 2001-05-23 | 2002-11-28 | International Business Machines Corporation | Dynamic deployment of services in a computing network |
US20030182392A1 (en) * | 2002-03-22 | 2003-09-25 | Andre Kramer | Methods and systems for providing access to an application |
US20030187841A1 (en) * | 2002-03-28 | 2003-10-02 | International Business Machines Corporation | Method and structure for federated web service discovery search over multiple registries with result aggregation |
US20030229640A1 (en) * | 2002-06-07 | 2003-12-11 | International Business Machines Corporation | Parallel database query processing for non-uniform data sources via buffered access |
US20030233631A1 (en) * | 2002-06-13 | 2003-12-18 | Ambrose Curry | Web services development method |
US6799182B2 (en) * | 2001-11-13 | 2004-09-28 | Quovadx, Inc. | System and method for data source flattening |
US6839896B2 (en) * | 2001-06-29 | 2005-01-04 | International Business Machines Corporation | System and method for providing dialog management and arbitration in a multi-modal environment |
US7266764B1 (en) * | 2000-08-16 | 2007-09-04 | Sparta Systems, Inc. | Graphical user interface for automated process control |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000067012A (en) | 1998-08-20 | 2000-03-03 | Hitachi Ltd | Mobile communication method |
KR100496056B1 (en) | 2000-02-26 | 2005-06-17 | 주식회사 하우리 | Restoring service system and a method thereof for internet-based remote data and file |
-
2007
- 2007-03-19 US US11/688,155 patent/US7933891B2/en not_active Expired - Fee Related
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379419A (en) * | 1990-12-07 | 1995-01-03 | Digital Equipment Corporation | Methods and apparatus for accesssing non-relational data files using relational queries |
US5793964A (en) * | 1995-06-07 | 1998-08-11 | International Business Machines Corporation | Web browser system |
US5946696A (en) * | 1996-05-31 | 1999-08-31 | Microsoft Corporation | Object property lists |
US6094654A (en) * | 1996-12-06 | 2000-07-25 | International Business Machines Corporation | Data management system for file and database management |
US6128624A (en) * | 1997-11-12 | 2000-10-03 | Ncr Corporation | Collection and integration of internet and electronic commerce data in a database during web browsing |
US6269362B1 (en) * | 1997-12-19 | 2001-07-31 | Alta Vista Company | System and method for monitoring web pages by comparing generated abstracts |
US6216173B1 (en) * | 1998-02-03 | 2001-04-10 | Redbox Technologies Limited | Method and apparatus for content processing and routing |
US20020161745A1 (en) * | 1998-03-27 | 2002-10-31 | Call Charles Gainor | Methods and apparatus for using the internet domain name system to disseminate product information |
US6421681B1 (en) * | 1998-09-25 | 2002-07-16 | International Business Machines Corporation | Framework for representation and manipulation of record oriented data |
US20010034771A1 (en) * | 2000-01-14 | 2001-10-25 | Sun Microsystems, Inc. | Network portal system and methods |
US20010013020A1 (en) * | 2000-01-20 | 2001-08-09 | Hiroshi Yoshida | Service providing system and method used therefor |
US20010018680A1 (en) * | 2000-02-28 | 2001-08-30 | Park Jun Hyun | Electronic commerce business settlement system using financial accounts |
US20020147611A1 (en) * | 2000-05-22 | 2002-10-10 | Greene William S. | Method and system for realizing a rendezvous service in a management operations center implemented in a global ecosystem of interrelated services |
US7266764B1 (en) * | 2000-08-16 | 2007-09-04 | Sparta Systems, Inc. | Graphical user interface for automated process control |
US20020169852A1 (en) * | 2001-05-11 | 2002-11-14 | International Business Machines Corporation | System and method for dynamically integrating remote protlets into portals |
US20020178254A1 (en) * | 2001-05-23 | 2002-11-28 | International Business Machines Corporation | Dynamic deployment of services in a computing network |
US6839896B2 (en) * | 2001-06-29 | 2005-01-04 | International Business Machines Corporation | System and method for providing dialog management and arbitration in a multi-modal environment |
US6799182B2 (en) * | 2001-11-13 | 2004-09-28 | Quovadx, Inc. | System and method for data source flattening |
US20030182392A1 (en) * | 2002-03-22 | 2003-09-25 | Andre Kramer | Methods and systems for providing access to an application |
US20030187841A1 (en) * | 2002-03-28 | 2003-10-02 | International Business Machines Corporation | Method and structure for federated web service discovery search over multiple registries with result aggregation |
US20030229640A1 (en) * | 2002-06-07 | 2003-12-11 | International Business Machines Corporation | Parallel database query processing for non-uniform data sources via buffered access |
US20030233631A1 (en) * | 2002-06-13 | 2003-12-18 | Ambrose Curry | Web services development method |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090240694A1 (en) * | 2008-03-18 | 2009-09-24 | Nathan Blaine Jensen | Techniques for application data scrubbing, reporting, and analysis |
US8838652B2 (en) * | 2008-03-18 | 2014-09-16 | Novell, Inc. | Techniques for application data scrubbing, reporting, and analysis |
US20100114620A1 (en) * | 2008-10-30 | 2010-05-06 | Diament Judah M | Service Description Refinement Based on Actual Service Use |
US8341212B2 (en) | 2008-10-30 | 2012-12-25 | International Business Machines Corporation | Service description refinement based on actual service use |
US11366678B2 (en) * | 2013-03-14 | 2022-06-21 | Amazon Technologies, Inc. | Avoiding or deferring data copies |
CN107832463A (en) * | 2017-11-28 | 2018-03-23 | 中国银行股份有限公司 | A kind of finance data service platform |
Also Published As
Publication number | Publication date |
---|---|
US7933891B2 (en) | 2011-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7194482B2 (en) | Web services data aggregation system and method | |
US10528555B2 (en) | Data management system and method to host applications and manage storage, finding and retrieval of typed items with support for tagging, connections, and situated queries | |
US8495211B2 (en) | Network service system and mechanism for searching service registries | |
US7877726B2 (en) | Semantic system for integrating software components | |
US7933891B2 (en) | Web services data aggregation system and method | |
US7475058B2 (en) | Method and system for providing a distributed querying and filtering system | |
Hartig et al. | A database perspective on consuming linked data on the web | |
US6799174B2 (en) | Retrieving, organizing, and utilizing networked data using databases | |
CA2409882A1 (en) | Persistent data storage for metadata related to web service entities | |
JP2010225181A (en) | Registry driven interoperability and exchange of document | |
JP2002351873A (en) | Metadata management system and search method | |
Degwekar et al. | Constraint specification and processing in web services publication and discovery | |
Dogac et al. | Enhancing ebXML registries to make them OWL aware | |
Harrison et al. | Introduction to OGC web services | |
WO2000065486A2 (en) | A method of mapping semantic context to enable interoperability among disparate sources | |
Hayes et al. | Shaping a CBR view with XML | |
US7970867B2 (en) | Hypermedia management system | |
Brock et al. | Attributed publication and selection for web service-based distributed systems | |
US7725564B2 (en) | Nested exception roles | |
Ramakrishnan et al. | Scalable Integration of Data Collections on the Web | |
Cope et al. | UDDI for a manufactured product brokering service | |
US20040015501A1 (en) | Metadata based hypermedia management system | |
US7725563B2 (en) | Nested AND roles | |
US7774433B2 (en) | Nested XOR roles | |
Schwarz et al. | Efficient domain-specific information integration in Nexus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LARKIN, MICHAEL K.;LEE, HOWARD;REEL/FRAME:022903/0367;SIGNING DATES FROM 20070309 TO 20070319 Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LARKIN, MICHAEL K.;LEE, HOWARD;SIGNING DATES FROM 20070309 TO 20070319;REEL/FRAME:022903/0367 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20150426 |