WO2002091240A2 - Method, system, and product for data integration through a dynamic - Google Patents

Method, system, and product for data integration through a dynamic Download PDF

Info

Publication number
WO2002091240A2
WO2002091240A2 PCT/US2002/013491 US0213491W WO02091240A2 WO 2002091240 A2 WO2002091240 A2 WO 2002091240A2 US 0213491 W US0213491 W US 0213491W WO 02091240 A2 WO02091240 A2 WO 02091240A2
Authority
WO
WIPO (PCT)
Prior art keywords
native
record
format
catalog
data
Prior art date
Application number
PCT/US2002/013491
Other languages
French (fr)
Other versions
WO2002091240A3 (en
Inventor
Aderbad Tamboli
John Jacobs
Original Assignee
Petris Technology, Inc.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Petris Technology, Inc. filed Critical Petris Technology, Inc.
Priority to AU2002303540A priority Critical patent/AU2002303540A1/en
Publication of WO2002091240A2 publication Critical patent/WO2002091240A2/en
Publication of WO2002091240A3 publication Critical patent/WO2002091240A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Definitions

  • Data integration is intended to enable a customer using one repository to make use of o data residing in another repository.
  • Data integration customers typically need to locate data in a source repository, transform the data from a source format to a destination format, and transfer the data from the source to the destination.
  • the most ambitious attempt in prior art to solve the problem of data integration is data 5 warehousing based upon a standard data model.
  • the idea of the standard model is that an industry, for example the seismic data processing industry or the geophysical data processing industry, gathers in committee and agrees on standard data formats for seismic data.
  • the geophysical data processing industry is a good example ofthe need for data integration because the industry utilizes extremely large volumes of o geophysical data regarding wells, well logs, and log curves. If the industry could agree on a standard data model, then the industry could build application programs to convert the multiple data models from various source databases into one standard model and use the data in standard form to transfer data among customers.
  • data in the standard form is physically stored 5 in a central location called a data warehouse which is then made available to subscribing customers who can make use ofthe data through applications designed to operate against the standard data model.
  • data warehousing does not require use of an industry-wide standard model, hi fact, many data warehousing projects start with a o group within a corporate entity establishing a local standard model for their own internal warehouse. This local standard model may or may not be based on any industry standard. However, when such a local standard model is established and used as a corporate standard, it behaves identically to an industry-based standard with all its inherent flaws and weaknesses. 5
  • the standard data model does, to some extent, ease access to data across structure types.
  • the standard data model demonstrates problems that seem intractable within the standard model itself.
  • One problem is that the standard data model utilizes a completely static standard structure. That is, there is no method or o system within the standard model for giving effect to routine changes in source system data structures. After the structure of a standard model is standardized by an industry standards committee (or a local data management group), the standard model structure is locked in place until changed by the committee.
  • the source data structures in the databases integrated by the standard model change daily. The only way to 5 change the standard model data structures to keep up with the changes in structures in industry databases is to gather a list of desired changes, take them to the industry standards committee, and request changes in the standard model.
  • a second problem with the standard model is data loss.
  • the static nature ofthe standard model means that all data structure changes in industry databases not yet integrated into the standard model result in data loss every time data from an external repository is transferred into the standard model.
  • the fact that the standard model data structure is established by committee means that it is a compromise practically never capable of including all fields from all databases for any record type. Neither the initial implementation of a standard model nor subsequent upgrades typically include all fields from all repositories contributing transferred data for a record type. For these reasons, actual utilization of a standard model for data integration almost always results in data loss.
  • aspects ofthe present invention include methods, systems, and products for data integration based upon dynamic common models.
  • Aspects ofthe present invention 5 typically include adapters as data communications interfaces between native data repositories and data integration applications.
  • aspects ofthe present invention typically include loose coupling between adapters and data integration applications.
  • Aspects ofthe invention are summarized here in terms of methods, although persons skilled in the art will immediately recognize the applicability of this summary equally 0 to systems and to products.
  • a first aspect ofthe invention includes methods of data integration including extracting a first native record from a first native repository, through a first adapter for the first native repository.
  • the first adapter is loosely coupled s for data integration to a data integration application, wherein the first native record from the first native repository has a first native format, and the first native format belongs to a category of formats identified as a datatype.
  • Typical embodiments include transforming, through the first adapter, the format ofthe o first native record having the first native format to a dynamic common format, the dynamic common format being a subset of a dynamic common model, the dynamic common model comprising mappings specifying transformations to and from the dynamic common format for all data elements in all formats of all native records in all datatypes, whereby is produced a first native record having the dynamic common 5 format.
  • Typical embodiments include transforming, through a second adapter, the format of the first native record having the dynamic common format from the dynamic common format to a second native format of a second native repository, the second native o format belonging to a category of formats identified as datatypes, wherein the second adapter is loosely coupled for data integration to the data integration application, whereby is produced a first native record having attributes in the second native format.
  • Typical embodiments include inserting, through the second adapter, the first native record having the second native fo ⁇ nat into the second native repository.
  • aspects ofthe invention include methods of creating systems implementing a dynamic common model, the systems typically including data integration applications, the methods typically including developing a first adapter for a first native repository, the first adapter being loosely coupled for data integration to the data integration application, the first native repository comprising first native records having first 0 native formats, the first native formats belonging to categories of formats identified as datatypes.
  • Typical embodiments further include developing a second adapter for a second native repository, the second adapter being loosely coupled for data integration to the data integration application, the second native repository comprising second native records having second native formats, the second native formats belonging to 5 categories of formats identified as datatypes.
  • Typical embodiments include creating mappings specifying transformations of records: from the first native format to a first dynamic common format, from the first dynamic common format to the first native format, from the second native format to a o second dynamic common format, and from the second dynamic common format to the second native format.
  • Typical embodiments also include providing a transformation service capable of transforming formats in dependence upon the mappings, the transformation service coupled for data communications to the first adapter and to the second adapter.
  • the data integration 5 application is coupled for data communications to a multiplicity of native repositories through a multiplicity of adapters, and the multiplicity of adapters includes the first adapter and the second adapter.
  • all the adapters among the multiplicity of adapters are loosely o coupled for data integration to the data integration application, and the data integration application includes the transformation service, i typical embodiments the dynamic common format is a subset of a dynamic common model, and the dynamic common model has the capability of specifying transformations to and from the dynamic common format for all formats of records in all datatypes ofthe multiplicity of native repositories.
  • a further aspect ofthe present invention includes methods of integrating an additional native repository with a system implementing a dynamic common model, the system including a data integration application, hi typical embodiments, methods include developing an additional adapter for the additional native repository, the additional 0 adapter being loosely coupled for data integration to the data integration application, the additional native repository comprising additional native records having at least one additional native format, the additional native format belonging to at least one category of formats identified as a datatype.
  • Typical embodiments of this aspect include creating mappings specifying transformations of records: from the at least one 5 additional native format to an additional dynamic common format, and from the additional dynamic common format to the at least one additional native format.
  • the dynamic common model is capable of a true union of all data elements selected for integration from all source repositories integrated through an embodiment ofthe invention. Because the standard model is static and includes from the beginning only agreed subsets of source data elements, the standard model never represents more than an intersection. In contrast, the dynamic common model ofthe 5 present invention is capable at all times of transforming and transferring each and every data element from each and every source repository.
  • the dynamic common model remains capable of quickly effecting a full union if desired, a capability never o available in the standard model for data integration.
  • the standard model itself provides no mechanism for changing or updating source data structures.
  • the dynamic common model itself comprises elements useful for automatically upgrading the dynamic common model to include changes in source repository structures. In fact, changes typically are administered in a similar manner as additions of new repositories.
  • Figure 1 is a process flow diagram of various embodiments ofthe invention.
  • Figure 2 is a high-level process flow diagram of embodiments ofthe invention.
  • Figure 3 is a more detailed process flow illustration of embodiments of extraction with respect to an adapter and a transformation service.
  • Figure 4 is a more detailed process flow illustration of embodiments of insertion with respect to an adapter and a transformation service.
  • Figure 5 illustrates embodiments of process flow for spidering.
  • 0 Figure 6 is a further illustration of embodiments with particular regard to extraction.
  • Figure 7 is a further illustration of embodiments with particular regard to insertion.
  • Figure 8 is a further illustration of embodiments with particular regard to mapping formats.
  • Figure 9 is a further illustration of embodiments with particular regard to 5 administration of proxy data and identifying attributes for catalogs.
  • Figure 10 is a high-level process flow for embodiments ofthe aspect including creating systems implementing dynamic common models.
  • Figure 10a is a more detailed illustration with respect to embodiments of mappings.
  • Figure 10b illustrates embodiments utilizing an adapter manager.
  • Figure 10c illustrates embodiments spidering native repositories pursuant to creating systems implementing dynamic common models.
  • Figure 11 is a high-level process flow for embodiments ofthe aspect including integrating additional native repositories into systems implementing dynamic common models.
  • Figure 1 la is a more detailed illustration with respect to embodiments of mappings.
  • Figure 1 lb illustrates embodiments utilizing an adapter manager.
  • Figure lie illustrates embodiments spidering native repositories pursuant to integrating additional native repositories into systems implementing dynamic common models.
  • Figure 12a illustrates an example embodiment of a native record format for a well.
  • Figure 12b continues the illustration of an example embodiment of a native record format for a well.
  • Figure 13 illustrates an example embodiment of a of native XML for a well.
  • Figure 14a illustrates an example embodiment of a native record format for a well log curve.
  • Figure 15 illustrates an example embodiment of a of native XML for a well log curve.
  • Figure 16 illustrates an example embodiment of a dynamic common format implemented in XML.
  • Figures 17a - 17i illustrate an example mapping implemented in an XML stylesheet, more specifically:
  • Figure 17a illustrates an embodiment of an XML stylesheet header, in the illustrated example embodiment directed to mapping dynamic common format to catalog
  • Figure 17b illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well datatype.
  • Figure 17c continues the illustration of an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well datatype.
  • Figure 17d illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well log datatype.
  • Figure 17e illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well log curve 5 datatype.
  • Figure 17f illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of formation tops datatype.
  • Figure 17g illustrates an example embodiment of mapping through an XML stylesheet o from dynamic common format to catalog XML for a record of well deviation survey datatype.
  • Figure 17h illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well core datatype.
  • Figure 17i illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for data elements having similar tag names in records of several datatypes.
  • Figure 18 illustrates an embodiment of a catalog record.
  • Figure 19 illustrates an example embodiment of an adapter base class.
  • system refers to computer systems or system comprising computers coupled, typically through networks, for data communications.
  • Suitable programming means include any means for directing a computer system to execute the steps ofthe method ofthe invention, including for example, systems comprised of processing units coupled to computer memory, which systems have the capability of storing in computer memory programmed steps ofthe method ofthe invention for execution by a processing unit.
  • processing unit includes s arithmetic logic circuits configured to execute methods implemented in embodiments ofthe invention. Such arithmetic logic circuits typically operate in dependence upon electronic memory circuits configured to store representations of methods implemented in embodiments ofthe invention.
  • system “computer system,” and “data processing system” are used as synonyms.
  • memory and “computer memory” are used as synonyms in this specification.
  • “Memory” or “computer memory” includes both electronic memory circuits such as random access memory and read-only memory, as well as various forms of magnetic or optical memory storage such as compact disks, magnetic diskettes, and fixed or removable disk drives. 5
  • Embodiments ofthe invention include computer program products, such as diskettes, for use with any suitable data processing system.
  • Embodiments of a computer program product may be implemented by use of any recording medium for machine- readable information, including magnetic media, optical media, or other suitable o media.
  • Persons skilled in the art will immediately recognize that any computer system having suitable programming means will be capable of executing the steps ofthe method ofthe invention as embodied in a program product.
  • the present invention is particularly concerned with computer data, and it is useful to clarify the usage of particular terms, consistent with their usual usage in the computer 5 industry.
  • this specification distinguishes databases and data repositories, using "database” to refer to aggregates of files having regular record structures usually capable of organization in rows and columns and typically included under administration of database management systems.
  • repository to include databases, but also to include data stores other than databases, data stores, in which, for example, data records may be stored in file systems under hierarchical directory structures rather than in databases as such.
  • “Native repositories” are data stores outside a data integration application subject to integration by use of a data integration application. 5
  • data elements Individual data elements are referred to as “data elements” or as “fields.” Aggregates of data elements are called “records.” The organization of fields within records is referred as “data format,” simply as “format,” or sometimes as “data structure.”
  • Tables are a category of files having records and fields capable of orderly arrangement in rows and columns, a characteristic not necessarily shared by all files.
  • process refers to a computer program, or a routine within a computer program, stored in random access memory either ready to execute or presently under execution.
  • Thread refers to a lightweight process or thread of execution.
  • program is used more generally to refer to an aggregate of computer instructions that may still be in storage outside random access memory and may in fact still be in uncompiled o source code form.
  • routine refers to a program that may still be in storage outside random access memory and may in fact still be in uncompiled o source code form.
  • Figure 1 illustrates example embodiments ofthe present invention typically as 5 including a spider (518), a metadata catalog (202), a transfer manager (208), a transformation service (206), and adapters (102, 124, 204).
  • Embodiments ofthe present invention function generally to allow users to identify data located among multiple databases or data repositories, referred to as "native repositories," coupled for data communications, and to transfer identified data from one repository to another.
  • the repositories have multiple internal data formats.
  • Embodiments ofthe present invention include the capability of transforming the data format of data transferred from a source repository (typically referred to in this specification as a "native repository") to a destination repository (another native repository) from the format of the source repository into the format ofthe destination repository.
  • Data 5 transformations in embodiments ofthe present invention typically utilize mappings comprising subsets of a dynamic common model referred to as "dynamic common formats.”
  • a "dynamic common model” is an aggregate of all mappings to and from native o formats and dynamic common formats within a data integration application. It is a characteristic of typical embodiments ofthe present invention that their dynamic common models provide the capability of including such mappings for all data elements in all datatypes in all native repositories integrated through a particular data integration application.
  • a dynamic common model comprises all mappings implemented in all the stylesheets present in the embodiment.
  • the use or presence of a dynamic common model does not mean that all data elements in all integrated native repositories are actually available for transfer at every moment in time. Human operators naturally have discretion to include or exclude particular data elements.
  • Data transformations in embodiments ofthe present invention typically utilize also an additional intermediate format called a "native mapping format.”
  • the usefulness of the native mapping format is that in typical embodiments it is implemented in the 0 same underlying technology as the dynamic common formats and the dynamic common model, thus enabling the transformation service always to administer all its inputs and outputs in the same general manner.
  • many embodiments of the present invention utilize XML to implement the dynamic common formats and the native mapping formats. Choosing XML as the underlying technology for the formats 5 to be input to the transformation service enables the transformation service to be implemented as an XSL translator, and the mappings (120) that drive the transformation service to be XML stylesheets.
  • Embodiments ofthe invention therefore, have the advantage of presenting to and receiving from their transformation services file records or documents formulated in terms of a single technology. This o approach, as will be seen, greatly simplifies data integration.
  • XML of course refers to the well-known standard "Extensible Markup Language.”
  • XSL translators are well known computer applications that translate XML documents. Many embodiments ofthe present invention utilize XSL translators in transformation 5 services. Many embodiments utilize XML stylesheets as guides for XSL translations. In the terminology ofthe present specification, such XML stylesheets embody "mappings" of data transformations. It is usual to think of XSL translators as translating XML to HTML. An XSL translator, however, is in fact a general-purpose translating engine that, in most embodiments ofthe present invention, for example, is o used to translate from one XML format into another XML format.
  • Adapters are implementations of interfaces between native repositories and other elements of embodiments, particularly transfer managers and spiders. Each adapter serves one native repository. Registering an adapter with a data integration application is the same as registering the native repository served by the adapter. And 5 vice versa: registering a native repository for data integration is typically the same as registering its adapter. Adapters function to extract (224) from native repositories (106) data to be transferred.
  • Adapters or their extract routines, provide the capability of calling a transformation service (218), passing to the transformation service data in a native mapping format, accepting (214) from the transformation service data o transformed into a dynamic common format, and providing (224) the transformed data in dynamic common format to other elements of an embodiment such as a data integration application (116) or a transfer manager (208) within a data integration application.
  • Adapters also provide the capability of inserting data into destination repositories (134). Adapters' insert routines typically receive (222) data in dynamic s common format and call a transformation service (212) to transform the data into a native mapping format, after which the adapter transforms the data into the native format required by the destination repository.
  • Adapters in typical embodiments are loosely coupled to data integration applications o including transfer managers, transformation services, and spiders.
  • “Loosely coupled” generally means “data-driven.” More specifically, “loosely coupled” means that all changes in operations of typical embodiments ofthe invention as between adapters and data integration applications are effected by mere changes in text or other kinds of data in, for example, tables, mapping files or documents, or configuration files, with 5 no need for changes in computer programming, computer source code, or executable computer code.
  • Changes in operations means changes needed to address alterations of native repositories, either changes in the structures ofrepositori.es already integrated in an o existing system, or changes needed to integrate an additional repository into an existing system.
  • changes in operations resulting from modification of an existing repository or addition of a new one, as between the adapter for the affected repository and a data integration application to which the adapter is coupled require modifications to or addition of no more than two XML stylesheets, mere changes in, 5 or creations of, text files, changes effected with a word processor or text editor, changes requiring no computer programming whatsoever.
  • Adapters typically are tightly coupled to 0 native repositories.
  • tightly coupled means that changing the structure or operation of an already-integrated repository, or integrating an additional repository, typically requires at least some computer programming within an adapter.
  • Some data conversion operations are not amenable to loose coupling.
  • the category of data conversion operations typically referred to as “rules” or “business 5 rules” is resistant to loose coupling.
  • Business rules are requirements for data conversion that cut across records, such as, for example, a requirement that a field contain the sum of values from several other fields in other records. Conversion or
  • a transfer manager (208) is an application operated as part of a data integration application that includes the capabilities of ordering extraction (104) of native repository records from one repository and ordering insertion (132) ofthe extracted records into a second 5 native repository. Naturally, in order to carry out such transfers including extractions and insertions, the transfer manager must know where to extract the data from and where to insert it.
  • Embodiments utilizing transfer managers therefore typically include in transfer managers the capabilities of reading (240) catalog keys and destination codes from a transfer cart (242) wherein are stored such information 0 deposited there in response to a user's request to execute a transfer.
  • Transfer managers call adapter extract routines to retrieve data to be transferred, and the adapters' extract routines return data to be transferred in common fonnat.
  • An adapters is capable of returning data in common format because, before providing transfer data to the transfer manager, the adapter's extract routine calls a 5 transformation service to transform the data format from its source format to common format.
  • transfer managers or rather software functions, methods, or routines within transfer managers, call (222) adapter insert routines to provide o transferred data for insertion into a destination repository.
  • transferred data is provided by the transfer manager to the destination adapter's insert routine in dynamic common format, and the destination adapter insert routine calls a transformation service (212) to convert the transfer data from dynamic common format to a destination native mapping format.
  • transfer managers function by reading from transfer carts catalog keys identifying catalog records storing proxy data for native records to be transferred, the proxy data identifying the exact source repository and location within source repositories ofthe data records to be transferred.
  • an extract routine in the transfer manager typically calls
  • an insert routine in the transfer manager typically calls an adapter insert routine in a destination adapter and passes the transfer data to the destination adapter in dynamic common format for transformation and 5 insertion into a destination repository.
  • Some embodiments effect transfers of each transfer record separately. Some embodiments concatenate proxy data for all records to be extracted from a particular source repository so that such records are extracted through a single call to the adapter 0 extract routine for that source repository. Because such concatenated calls may effect transfers of large quantities of data, some embodiments concatenate proxy data for records to be extracted from a particular source repository so that such records are extracted through more than one call to the adapter extract routine for that source repository, each such call being subject to a maximum block size to optimize 5 efficiency in data transfer.
  • transformation services transform data from a native mapping format into dynamic common format and from dynamic common format into a native mapping format.
  • adapters calling transformation services provide to the transformation service the source data in XML documents that the transformation service uses to locate in an XML stylesheet database an XML stylesheet containing rules for translating the source data to common format.
  • An XML stylesheet database typically in such 5 embodiments contains two XML stylesheets for each native repository, one stylesheet for transformation from native mapping format to dynamic common fonnat and one for transformation from dynamic common format to native mapping format.
  • the transformation service After locating a stylesheet, for calls from source adapters, the transformation service, in typical embodiments utilizing XML, passes the source data in native mapping format o and the stylesheet to an XSL translator which in turn is guided by the stylesheet in translating the source data into dynamic common format and returning a new XML document to the calling adapter, the new XML document comprising the transfer data in dynamic common format.
  • the translation is from an XML document comprising data in dynamic common format to an XML document comprising data in native mapping format.
  • Catalogs are databases having their own adapters. Catalogs are databases containing data about data, or "metadata,” so that "catalogs" are sometimes referred to as “metadata catalogs.” Metadata in catalogs includes identifying attributes or data elements useful to allow users to identify data available for transfer among other native repositories. Metadata in catalogs includes also proxy data or data identifying specific locations of particular data records in native repositories.
  • Spiders are software applications that populate catalogs. Spiders typically are included as parts of data integration applications (116). Spiders function to maintain s in a catalog a current listing of all data available through that catalog for transfer by users among native repositories. Spiders call specialized extract routines in source adapters and specialized insert routines in catalog adapters. Unlike transfer managers, however, spiders do not identify data to be transferred by reference to a transfer cart. Moreover, spiders typically do not transfer native records in their entirety as transfer 0 function typically do.
  • spiders transfer only identifying attributes and proxy data from native repositories to catalogs, and spiders identify data to be transferred not by reference to proxy data, but by transferring data regarding all native records in a repository or all native records in a repository having a date or time stamp later than a last spider date or a last spider time. 5
  • date stamp or "time stamp” refers to data elements in native records representing the last date and time when native records were changed in any way, altered, added, deleted, or updated. Because the purpose of spidering native repositories is to maintain in a catalog current accurate identifying attributes and o proxy data for all records in integrated native repositories, many embodiments track the last spider date and time and spider only those native records having date/time stamps later than the last spider date and time for the repository in which the native records are located.
  • spiders identify data to be transferred in terms of time.
  • spiders serve two kinds of native repositories, repositories having update time stamps on native records and repositories having no such time stamps.
  • spiders maintain a file of records identifying all such repositories including a time and date entry on each such record indicating the last 0 time the subject repository was spidered.
  • the term "spider" is sometimes used as a verb to refer to the process of extracting from a repository identifying information for data in the repository and inserting the identifying information into a catalog.
  • the extract routines in adapters for repositories with update time stamps are capable of accepting a last-spider time from a calling routine in a spider and extracting only those repository records having time stamps that indicate updates after the last-spider time for the particular repository. Extract routines in adapters for repositories without update time stamps typically upon request from a o spider's calling routine extract the entire source repository each time the source repository is spidered, hi some embodiments, spiders are called manually; in other embodiments, spiders are run by cron jobs.
  • “Cron” refers to the well known UNIX daemon for launching application at times identified in a UNIX system table commonly known as a "cron tab.” Despite the fact that “cron job” is UNIX jargon, 5 this specification uses the term “cron job” in a generic sense to refer to any launching by any computer operating system, not just UNIX, of a spider into a separate process or thread of execution at a preset time stored in non- volatile computer memory, such as a cron table or 'crontab.'
  • spiders can accept as parameters the last-update time for a repository and an identification ofthe repository to be spidered.
  • the time parameter in some embodiments comes from a crontab. In other embodiments the time parameter is provided manually by a user. In other embodiments the time parameter is read from a registration list where are stored last spider times for native repositories integrated under a data integration application. For spidering source repositories not 5 supporting internal update time stamps, some embodiments of spiders accept a time parameter coded to indicate the need to spider the entire repository.
  • spiders for repositories without update time stamps ignore the time parameter because the associated repository adapter's specialized extract routine for spiders is programmed to extract the entire repository every time the specialized 0 extract routine is called.
  • the extract routines called by spiders in typical embodiments are specialized for spidering, returning in a dynamic common format data elements comprising identifying attributes and proxy data, the different data elements being different from the data elements returned in common format to transfer managers, the different data elements being those needed for updating a 5 catalog.
  • Embodiments ofthe invention typically include a subsystem called a user interface, typically installed and operating on a web server or a network application server, capable of reading display data from a catalog and displaying across a network onto o user workstations or personal computers information identifying data available for transfer among native repositories.
  • the catalog in typical embodiments is a database operating under a database management system including database files comprising information identifying the locations and kinds of data ("identifying attributes") available for transfer as well as the exact locations (“proxy data”) of particular data 5 within particular native repositories.
  • the identifying attributes, or some part of them are displayed through user interfaces for users on user workstations in response to users' queries comprising search parameters entered through the user interface.
  • the user interface in typical embodiments also provides the capability for users to indicate which ofthe native records identified by displayed identifying attributes is to be o transferred and the destination of each transfer.
  • Displays of identifying attributes typically include identification of pertinent native repositories. Indeed, native records describing oil well logs, seismic surveys, or a tulip growers typically are available from several native repositories. User prompts at transfer time therefore in some embodiments include both the source and the destination ofthe transfer.
  • identifying attributes for display through a user interface are organized consistently across a datatype. More specifically, in the example case of well logs, on a display screen of a user workstation, it is useful for all well logs to have similar and logical display appearance regardless ofthe physical nature of identifying attributes actually stored in a catalog. It is usual, therefore, in typical 0 embodiments ofthe invention to include a datatype dictionary (201), coupled for data communications to a catalog, to map physical identifying attributes to logical identifying attributes.
  • the physical identifying attributes are the identifying attributes stored in a catalog as a result of spider operations and data transfers.
  • the logical identifying attributes are reorganizations ofthe logical identifying attributes for 5 logical, consistent display appearance.
  • the datatype dictionary is organized according to datatypes because the usual display consistency is organized around datatypes. It is typical to display identities of tulip growers, for example, in a format that is consistent across tulip growers but different from displays of well logs, tulip growers belonging to or having, in the terminology ofthe invention, a datatype. Well logs, having their o own separate datatype, also have their own logical format for display of identifying attributes, typically established in a datatype dictionary.
  • a user interface provides the capability for the user to order execution of a transfer, to transfer particular identified data from a source native 5 repository to a destination native repository.
  • User interfaces in such embodiments are capable, when ordered to do so, of writing to a transfer cart catalog keys from the identifying attributes for all native records ordered transferred by the user. It is the transfer manager in typical embodiments that then reads the catalog keys from the transfer cart and uses a catalog key to find in the catalog the proxy data needed to o locate in a native repository a particular native record selected for transfer. The transfer manger then calls an extract routine in the adapter for the source repository identified in the identification data.
  • a user requests through a user interface (244) identification information for a datatype, passing to the user interface search 5 parameters (250).
  • the user interface searches (248, 246) a catalog (202) and returns for display logical identifying attributes (252) fitting the user's request.
  • the user interface then supports various sorting and selecting functions (254) on behalf of the user, including enabling the user affirmatively to indicate which data records are to be transferred and the destinations ofthe transfers.
  • the user's last act before transfer is o to instruct the user interface to begin transfer (256).
  • the user interface then, in typical embodiments, writes a catalog key into a transfer cart (242), one key for each transfer record.
  • a transfer manager regularly scans (240) the transfer cart to read catalog keys from 5 cart records.
  • the transfer manager uses the catalog keys to locate (238) in the catalog the proxy data for the transfer records, passing the proxy data to an adapter for the source repository by calling (226) an extract routine within the adapter.
  • the adapter extracts (103) the data from the source repository (106) and converts it to common format by calling a transformation service (218). After transformation, the o adapter returns the data in common format to the transfer manager (224).
  • the transfer manager in a typical embodiment then calls (222) an insert routine in the destination adapter serving the destination repository (134).
  • the destination adapter converts the common format to native format by calling a transformation service. 5 After transformation the destination adapter inserts (125) the transfer data into the destination repository (134), returning to the transfer manager new identifying attributes and proxy data for the newly inserted record in the destination repository (220). If the insertion was successful, so that the destination now contains data it did not contain before the transfer, the transfer manager updates (236) the catalog by o calling (237) an insert routine in an adapter for the catalog. It is useful to note that in typical embodiments, this particular routine updating of a catalog at the conclusion of a successful transfer is administered directly by the transfer manager rather than a spider.
  • additions of new repositories to the 5 system ofthe invention require only three things: a new adapter and a two new mappings for conversion ofthe new source format to common format.
  • the requirement is one new adapter and two new stylesheets.
  • an additional native repository upon joining a data integration system, receives a new adapter, and the 0 adapter automatically upon activation registers with the data integration application, and the contents ofthe new repository are then spidered automatically into a catalog, making the contents ofthe new repository immediately available to users ofthe invention.
  • a new adapter for an additional native repository requires some additional programming to alter or develop routines to convert data formats from the raw native format of an additional repository to and from a native mapping format.
  • programming typically is needed within a new adapter to convert data formats between the raw native format and a native XML o format. It is useful to note that creating a new XML stylesheet does not involve computer programming. Creating a new XML stylesheets is merely a matter of text entry, often done merely through a word processor or text editor.
  • Principal elements of typical embodiments, user interfaces, transfer managers, 5 transformation services, adapters, catalogs, and spiders are implemented as computer applications, capable of installation and operation all on the same computer or upon separate computers coupled, generally through networks, for purposes of data communications.
  • Principal elements of typical embodiments, particularly the adapters and transfer managers communicate with one another through remote procedure calls o implemented in various ways, mcluding, for example, tluough CORBA objects or through JDBC objects. Some embodiments utilize custom-programmed remote procedure calls. Persons skilled in the art will recognize that all methods of accomplishing efficient data communications among principal elements of embodiments are well within the scope ofthe invention.
  • CORBA refers to the Common Object Request Broker Architecture, a standard for interoperability as promulgated by the Object Management Group of Framingham, Massachusetts.
  • JDBC refers to the well known Java Database Connectivity standard, which includes a standardized API for SQL-oriented database access.”
  • SQL refers to the Structured Query Language, a known standard for database access.
  • An aspect ofthe invention is seen as a method of data integration.
  • An example embodiment illustrated in Figure 2 includes extracting (104) a first native record (108) from a first native repository (106), through a first adapter (102) for the first native repository.
  • the first adapter (102) in the illustrated embodiment is loosely coupled for data integration (117) to a data integration application (116).
  • the first native record (108) from the first native repository (106) has a first native format (112), and the first native format belongs to a category of formats identified as a datatype (110).
  • a further embodiment illustrated in Figure 2 includes transforming (114), through the first adapter (102), the format ofthe first native record (108) having the first native format to a first native record having a dynamic common format.
  • the dynamic common format is a subset of a dynamic common model (118).
  • Typical embodiments implement many datatypes.
  • the dynamic common model (118) in typical embodiments includes mappings (120) specifying transformations to and from the dynamic common format for all data elements in all formats of all native records in all datatypes implemented in an embodiment.
  • a further embodiment, illustrated also in Figure 2 includes transforming (126), through a second adapter (124), the format ofthe first native record (122) having the dynamic common format to a first native record having a second native format of a second native repository (134), the second native format belonging to a category of formats identified as datatypes (110).
  • the second adapter (124) is loosely coupled for data integration to the data integration application (116).
  • the result of this transformation is a first native record (128) having attributes (130) organized in the second native format.
  • a further embodiment, illustrated also in Figure 2 includes inserting (132), through the second adapter (124), the first native record (128) having the second native format into the second native repository (134).
  • a still further embodiment is shown in Figure 6 to include generating (604) search parameters (606) capable of supporting a search for the first native record (108).
  • the illustrated embodiment of Figure 6 includes finding catalog records corresponding to the search parameters. More specifically, the illustrated embodiment includes finding (612), in a catalog (202), in dependence upon search parameters (606), catalog records (610) having identifying attributes (614) that match the search parameters (606).
  • the identifying attributes for each catalog record include a catalog key for each catalog record.
  • a "catalog key” is a group of data elements uniquely identifying a catalog record.
  • Catalog keys in some embodiments comprise a single data element. In other embodiments, multiple data elements are used as a catalog key to uniquely identify a catalog record.
  • the catalog (202) comprises identifying attributes (614) and proxy data (616) for all native records (610) in a multiplicity of native repositories.
  • the multiplicity of native repositories comprises the first native repository (106).
  • at least one found catalog record contains identifying attributes that identify the first native record (108).
  • marking (624) for extraction the identifying attributes ofthe at least one found catalog record containing identifying attributes that identify the first native record.
  • posting (628) from the marked identifying attributes, 5 a catalog key (626) to a transfer cart (630) in the data integration application (116).
  • a still further embodiment, shown also in Figure 6, includes extracting (634), in dependence upon (627) the posted catalog key (626), from the catalog (202) through a catalog adapter (632) proxy data (616) for the first native record (108).
  • the proxy data (616) comprises data representing the location ofthe first native record (108) in the first native repository (106).
  • extracting (104) a first native record (108) from a first native repository (106) further comprises reading (638), in dependence upon the proxy data (616), through the first adapter (102), from the first s native repository (106), the first native record (108) having a first native format.
  • a more detailed example embodiment of transforming (114) the format ofthe first native record (108) having the first native format, illustrated in Figure 7, includes converting (702), through the first adapter (102), the first native record (108) having o the first native format to a first native record (704) having a first native mapping format.
  • the illustrated embodiment of Figure 7 includes retrieving (712) from a mapping store (120) a first mapping (710), wherein the first mapping (710) specifies a data transformation from the first native mapping format to the dynamic common format.
  • the illustrated embodiment of Figure 7 includes translating (706), through a 5 translator (708), in dependence upon the first mapping (710), the first native record (704) having a first native mapping format to first native record (122) having a dynamic common format.
  • the first mapping (710) o comprises a first XML stylesheet
  • the translator (708) comprises an XSL translator
  • the first native mapping format (705) is implemented in XML
  • the dynamic common format (123) is implemented in XML
  • the first native record (704) having a first native mapping format is a first XML document
  • the first native record (122) having dynamic common format is a second XML document.
  • a further embodiment of transforming (126) the format of the first native record ( 122) having the dynamic common format includes receiving (802), through a second adapter (124), a first native record (122) having the dynamic common format.
  • the embodiment of Figure 8 includes retrieving (804) from a mappings store (120) a second mapping (806), wherein the second mapping (806) 0 specifies a data transformation from the dynamic common format to a second native mapping format.
  • the illustrated embodiment includes 5 converting (814), through the second adapter (124), the format ofthe first native record (812) having the second native mapping format into a first native record (128) having the second native format.
  • the second mapping (806) o comprises an XML stylesheet
  • the translator (708) is an XSL translator
  • the dynamic common format (123) is implemented in XML
  • the second native mapping format (811) is implemented in XML
  • the first native record (122) having the dynamic common format is a first XML document
  • the first native record (812) having a second native mapping format comprises a second XML document.
  • a more detailed embodiment of inserting (132) through the second adapter (124), shown in Figure 9, includes writing (904), through the second adapter (124), the first native record (128) having the native format ofthe second native repository (134) into the second native repository (134), thereby creating a new native record.
  • the example o embodiment shown in Figure 9 includes creating (906) new proxy data (908) and identifying attributes (910) for the first native record (128) having the native format of the second native repository (134), that is, new proxy data and identifying attributes for the new native record.
  • the example embodiment of Figure 9 also includes inserting (912) the new proxy data (908) and identifying attributes (910) through a catalog adapter (204) into a catalog (202).
  • the catalog (202) typically comprises identifying attributes (614) and proxy data (616) for all native records in a multiplicity of native repositories.
  • the multiplicity of native repositories includes the second native repository (106).
  • FIG. 5 an embodiment is seen using a spider to populate a catalog. More specifically, a further embodiment shown in Figure 5 includes spidering (518) through a spider (518) proxy data (541) and identifying attributes (539) from a single native repository (502) to a catalog (202).
  • the single native repository (502) is coupled (505) for data communications to an adapter 5 (504), and the adapter (504) is coupled (503) for data communications to a data integration application (116).
  • the illustrated the data integration application (116) includes the spider (518).
  • the catalog (202) comprises a database of o identifying attributes (538) and proxy data (540) for all native records in a multiplicity of native repositories, and the multiplicity of native repositories include the single native repository (502).
  • spidering (518) 5 includes providing (522) to the spider (518) an identification code for the single native repository (502).
  • spiders are provided repository identification codes as parameters of calls (522) from cron jobs that begin spider execution.
  • "Cron job” refers to the well known UNIX utility for automated scheduling of software program execution under the UNIX operating system.
  • FIG. 5 Other embodiments will enable manual operation of a spider in that a user is provided on a workstation (258) interface elements, such as typical known elements of graphical user interfaces, mouse-clickable buttons, pull-down menus, and the like, from which a user manually starts a spider.
  • the data integration application is programmed to prompt the user for native repository identification (516) o when a spider (518) is manually ordered (514) by a user.
  • a further embodiment as shown in Figure 5 includes reading (534), in dependence upon an identification code (509) for a single native repository, from a native repository registration list (506) a last spider time (535) for the native repository (502) s to be spidered.
  • a still further embodiment as shown in Figure 5 includes retrieving (524, 526) from the single native repository native records having time stamps later than the last spider time.
  • Some native repositories do not support native records having time stamps. For a native repository not supporting time stamps, each spider call to such a repository retrieves proxy data and identifying attributes for all native o records in the repository.
  • a still further embodiment also illustrated in Figure 5 includes creating (530), in dependence upon the retrieved native records, proxy data (541) and identifying attributes (539).
  • Creating proxy data in this kind of embodiment includes providing, 5 for each record in the single native repository meeting the spider timing requirements, sufficient data elements to uniquely find each such record in the single native repository.
  • a datatype and a single data element will be sufficient to locate a particular record.
  • a datatype and more than one key data element are needed 0 to locate a particular record.
  • other modes of proxy data are used, such as, for example, specific file system location such as disk drive identification codes, directory and subdirectory names, and file names.
  • Identifying attributes are data elements comprising a description ofthe thing that is represented by the native record.
  • the identifying attributes are useful for displaying 0 on a user workstation interface to enable a user to select records for transfer.
  • Identifying attributes information a user finds useful for selecting data to transfer, includes well location, latitude, longitude, well depth, age of a well, geological characteristics of a well, and so on.
  • proxy data purely 5 identifies the location of a well record in a native repository. In other words, identifying attributes describe the thing represented by a data record, whereas proxy data describes the location in a native repository ofthe data record itself.
  • a still further embodiment also illustrated in Figure 5 includes writing (532) to the o catalog (202), through the catalog adapter (528, 204), the proxy data (541) and identifying attributes (539).
  • a still further embodiment also illustrated in Figure 5 includes updating (536) the last spider time (535) in the native repository registration list (506). So that users will have the last spider time and last spider date available for convenient reference, typical embodiments maintain the last spider date and last 5 spider time in storage regardless whether native repositories spidered do or do not support time stamps on native records.
  • the system includes a data integration application, and the method includes developing (1002) a first adapter (1004) for a first native repository (106).
  • the first adapter is loosely coupled for data integration (1006) to the data integration application (116), and the first native repository includes first native records (1010) having first native formats (1014).
  • the first native formats belong to categories of formats identified as datatypes (110). 5
  • a further embodiment, shown also in Figure 10, includes developing (1020) a second adapter (1022) for a second native repository (134).
  • the second adapter is loosely coupled for data integration (1024) to the data integration application ofthe illustrated embodiment.
  • the second native repository o includes second native records (1028) having second native formats (1032), and the second native formats belong to categories of formats identified as datatypes (1012). '
  • a still further embodiment, shown also in Figure 10, includes creating (1018) mappings (120) specifying transformations of records.
  • the mappings (120) created in 5 the exemplary embodiment are shown in more detail in Figure 10a as a mapping (1050) from the first native format to a first dynamic common format, a mapping (1052) from the first dynamic common format to the first native format, a mapping (1054) from the second native format to a second dynamic common format, and a mapping (1056) from the second dynamic common format to the second native o format.
  • a further embodiment, shown also in Figure 10, includes providing (1016) a fransformation service (206) capable of transforming formats (1014, 1032) in dependence upon the mappings (120), the transformation service coupled (1040, 1042) for data communications to the first adapter (1040) and to the second adapter 5 (1042).
  • providing a transformation service includes programming data conversion routines for converting data elements, one by one, from one format to another.
  • providing a transformation service includes installing and configuring an XSL translator.
  • the data integration application (1024) is coupled for data communications to a multiplicity of native repositories through a multiplicity of adapters, and the multiplicity of adapters includes the first adapter and the second adapter.
  • the multiplicity of adapters typically are loosely coupled for data integration to the data 5 integration application, and the data integration application comprises the transformation service.
  • the dynamic common format (119) is a subset of a dynamic common model (118), and the dynamic common model o has the capability of specifying transformations to and from a dynamic common format for all formats of records in all datatypes in a multiplicity of native repositories, hi some embodiments, the multiplicity of native repositories consists of only the first native repository and the second native repository. That is, some embodiments practice the present invention with no more than two native repositories, 5 while other embodiments have many native repositories coupled through adapters to at least one data integration application.
  • a more detailed embodiment, illustrated at Figure 10b, includes registering (1050, 1052), through an adapter manager (1044) in a data integration application (116), the o adapters for the first native repository and the second native repository .
  • Embodiments ofthe present aspect ofthe invention typically include also, as shown in Figure 10c, populating (1054, 1056), through spiders (1046, 1048), a catalog (202) in the data integration application (116) with identifying attributes (538) and proxy data (540) for all records of all datatypes in the first native repository and the second native repository.
  • FIG 11 a further aspect ofthe invention is seen, a method of integrating an additional native repository with a system implementing a dynamic common model, in which the system includes a data integration application.
  • the embodiment shown in Figure 11 includes developing (1102) an additional adapter 0 (1104) for the additional native repository (1106).
  • the additional adapter is loosely coupled for data integration (1120) to the data integration application (116), and the additional native repository includes additional native records (1108) having additional native formats (1112).
  • the additional native formats belonging to categories 5 of formats identified as datatypes (1012).
  • mappings (120) specifying transformations of records.
  • the mappings (120) include a mapping (1150) from the additional native format to an o additional dynamic common format and a mapping (1152) from the additional dynamic common format to the additional native format.
  • the data integration application typically is coupled (1123) for data communications to a multiplicity of native 5 repositories (1118) through a multiplicity of adapters (1116), and the multiplicity of adapters (1116) typically includes the additional adapter (1104).
  • all the adapters among the multiplicity of adapters typically are loosely coupled (1122, 1120) for data integration to the data integration application.
  • the data integration application (116) typically comprises a transformation service (206) capable of transforming formats (1112) in dependence upon the mappings (120), and the transformation service typically is coupled (1121) for data communications to all the adapters among the multiplicity of adapters.
  • dynamic common formats (119) are subsets of a dynamic common model (118), and the dynamic common model has the 5 capability of specifying transformations to and from dynamic common formats for all formats of records in all datatypes ofthe multiplicity of native repositories.
  • a more detailed embodiment illustrated in Figure 1 lb includes registering (1130), through an adapter manager (1044) in the data integration application (116), the 0 additional adapter (1104).
  • a still further embodiment, shown in Figure lie, includes populating (1132), through a spider (1134), a catalog (202) in the data integration application (116) with identifying attributes (538) and proxy data (540) for all records of all datatypes in the additional native repository (1106).
  • Figure 12a illustrates an example embodiment of a native record format for a well.
  • the illustrated native record describes a well in detail, including the identity ofthe well (1202) as a native well identification code, a standard universal well identifier known as a "UWI" code, well type, common name, operator identification, and a well number.
  • the example native record shown in Figure 12a includes also the physical o location ofthe well (1204), its latitude and longitude, elevation, total depth, and plug depth.
  • the example native record includes the geopolitical location ofthe well (1206), its field, basin, county, state, and country.
  • the example native record includes the class and status history ofthe well (1208).
  • the example native record as continued for illustration in Figure 12b includes a representation whether the well is 5 on or offshore (1210).
  • the example native record of Figure 12b includes information regarding the drilling ofthe well (1212) including plot, survey, lease identification, drilling permit, completion date, borehole type, and cost.
  • Figure 13 illustrates an example embodiment of a native XML for a well.
  • the o example embodiment of Figure 13 illustrates the dynamic common model by comparison with the set of native fields shown in Figures 12a and 12b. More specifically, the set of fields shown in Figure 13 is smaller than that of Figures 12a and 12b, because a human operator or programmer has chosen to present as a dynamic common model fewer fields than are actually present in the pertinent native repository, assuming that the examples of Figures 12a, 12b, and 13 are all related to 5 the same native repository. It is useful to note the simplicity of adding fields to the dynamic common model. In this case, suppose it were desired to add the native field on_off_shore (ref. 1210 on Figure 12b). Then a programmer would simply add one or more lines of code as part ofthe extract function in the adapter for the native repository to write into the XML file of Figure 13 the line 0
  • mappings implemented as XML stylesheets for example, default instructions are available for fields having similar names, so that "on_off_shore" in o some embodiments would already be covered for transformation by a default
  • mapping is amended to cover the new field. That is, in such embodiments, mappings to and from a dynamic common format are amended to cover the new field. Either way, the process of adding the new field is simple in typical embodiments. 5
  • Figure 14a illustrates an example embodiment of a native record format for a well log curve.
  • Figure 14b continues the illustration of an example embodiment of a native record format for a well log curve.
  • Figures 14a and 14b together illustrate one way in which one native repository formats records having one datatype, survey curves for o wells. Native record formats naturally vary widely across various native databases and repositories.
  • Figure 15 illustrates an example embodiment of a native mapping format in the form of native XML for a well log curve.
  • Figure 16 illustrates an example embodiment of a dynamic common format implemented in XML, in this case, a dynamic common format in XML for a well log 5 curve record.
  • Figures 17a - 17i illustrate an example mapping implemented in the form of an XML stylesheet, described more specifically below.
  • Figure 17a illustrates an embodiment of an XML stylesheet header, in the illustrated example embodiment directed to mapping dynamic common format o to catalog XML
  • Figure 17b illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well datatype
  • Figure 17c continues the illustration of an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well datatype
  • Figure 17d illustrates an example 5 embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well log datatype.
  • Figure 17e illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well log curve o datatype
  • Figure 17f illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of formation tops datatype
  • Figure 17g illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well deviation survey datatype
  • Figure 17h illustrates an example 5 embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well core datatype
  • Figure 17i illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for data elements having similar tag names in records of several datatypes.
  • Figure 18 illustrates an embodiment of a catalog record. It is useful to compare the number of data elements in the example catalog record to the number of data elements in the example native well record shown in Figures 12a and 12b.
  • the example catalog record of Figure 18, which itself also apparently represents a well, contains substantially fewer data elements that the native record shown in Figures 12a and 12b.
  • 5 Catalog records typically contains fewer data elements because the data elements included in the catalog are only the data elements useful for display to users in aid of selecting data for transfers for data integration, hi the particular example of Figure 18, such data elements include fields identifying the well (1804), fields representing the physical (1808) and geopolitical (1910) locations ofthe well, and fields indicating the o well's status, type, and depth (1806).
  • the native data elements shown in Figures 12a and 12b include all operational data relevant to well maintenance, operations, or analysis.
  • a typical embodiment of an adapter includes member methods for extracting (1904) data from a native repository, inserting (1906) data into a native repository, spidering (1908) data from a native repository in support of catalog entries, registering (1912) a native repository with a data integration application, optionally checking (1910) upon request current validity 0 of catalog entries in support of catalog integrity, handling (1914) remote procedure calls and data communications, fransforming (1916) native mapping format to dynamic common format, and constructing (1918) adapter class objects.
  • spider() member method (1908) in an adapter is not a "spider" as that term has been used to describe processes or programs within a data integration application for maintaining catalogs.
  • a spider() member method in an adapter is called by, or passed messages from, a spider program or process in a data integration application in the process of updating a catalog.
  • a spider() member method in an adapter is called a "spider(),” at some slight risk of o confusion, to commemorate that it is a method within an adapter that supports the overall procedure of spidering for a catalog in a data integration application.
  • This specification for clarity, attempts to consistently refer to spider() member methods in adapters as "spider() member methods in adapters.”
  • Typical adapter class objects provide a message handling method such as the one mentioned at reference (1914) in Figure 19.
  • a typical message handling method accepts two parameters, 'Message' and 'Data' of type string. These parameters in many embodiments are XML formatted strings.
  • Typical embodiments implement a method return also as an 0 XML string. That is, a typical example of a declaration for a message handling method is:
  • the 'Message' parameter typically is used to identify one ofthe typical functions of adapters, such as the functions represented by the other member methods shown in Figure 19.
  • the 'Data' parameter typically in such embodiments provides the data or parameters to be used by the function identified in the 'Message' parameter.
  • message handling functions or member methods within example embodiments functions according to the following pseudocode.
  • parse Data string for data to be inserted transform from common to native ; insert into native repository; create proxy data for new inserts; concatenate proxy data into return_string; transform proxy data in return_string into common format; retx ⁇ m(retum_string);
  • parse Data string for data to be inserted 5 transform from common to native ; insert(data_to_be_inserted); create proxy data for new inserts; concatenate(return_string, proxy_data) ; transform(return_string); // to dynamic common format o return(return_string) ;
  • a further exemplary use case illustrates some ofthe benefits of data integration with a dynamic common model.
  • Such an exclusion occurs, for example, when a 5 user redefines an implementation of a datatype in the second repository but has not yet updated the pertinent mappings to and from dynamic common, or the mappings are updated erroneously.
  • the two-step procedure just outlined illustrates some ofthe benefits ofthe dynamic common model.
  • a data integration that includes many native repositories and many adapters, only two elements need to be checked or amended to correct the exemplary typical variation from full integration.
  • no programming is required, only text editing.
  • an adapter needs to be amended, only a small amount of programming is involved, just enough in the current example to add the one excluded data element. In this manner, a change that was nearly impossible to accomplish under the standard model of prior art is made almost trivial.

Abstract

Data integration including extracting a first native record having a first native format from a first native repository (106) through a first adapter (102), the first adapter loosely coupled for data integration to a data integration application, the first native format having a datatype; transforming the first native record having a first native format to a first native record having dynamic common format, the dynamic common format being a subset of a dynamic common model comprising mappings to and from the dynamic common format for all native records in all datatypes; transforming the format of the first native record having dynamic common format to a first native record having second native format; and inserting through a second adapter, also loosely coupled to the application, the first native record the second native format into a second native repository(134).

Description

METHOD, SYSTEM, AND PRODUCT FOR DATA INTEGRATION THROUGH A DYNAMIC COMMON MODEL
Inventors: Aderbad Tamboli 5 John Jacobs
BACKGROUND OF THE INVENTION
Large masses of data reside in multiple databases, applications, file systems, 0 repositories, or specialized data stores. The large masses of data are comprised of multiple models of multiple products of multiple vendors or manufacturers, all of which utilize different data structures and different database management systems including different user interfaces into their respective underlying databases. The data structures within databases even vary among versions ofthe same model from the s same manufacturer. Adding to the complexity, many data stores are not even databases as such, comprising, for example, repositories of electronic files or documents stored in file systems under hierarchical directory structures.
Data integration is intended to enable a customer using one repository to make use of o data residing in another repository. Data integration customers typically need to locate data in a source repository, transform the data from a source format to a destination format, and transfer the data from the source to the destination.
The most ambitious attempt in prior art to solve the problem of data integration is data 5 warehousing based upon a standard data model. The idea of the standard model is that an industry, for example the seismic data processing industry or the geophysical data processing industry, gathers in committee and agrees on standard data formats for seismic data. The geophysical data processing industry is a good example ofthe need for data integration because the industry utilizes extremely large volumes of o geophysical data regarding wells, well logs, and log curves. If the industry could agree on a standard data model, then the industry could build application programs to convert the multiple data models from various source databases into one standard model and use the data in standard form to transfer data among customers.
h one application of a standard model, data in the standard form is physically stored 5 in a central location called a data warehouse which is then made available to subscribing customers who can make use ofthe data through applications designed to operate against the standard data model. It is useful to note that data warehousing, as the term is usually used in the data integration industry, does not require use of an industry-wide standard model, hi fact, many data warehousing projects start with a o group within a corporate entity establishing a local standard model for their own internal warehouse. This local standard model may or may not be based on any industry standard. However, when such a local standard model is established and used as a corporate standard, it behaves identically to an industry-based standard with all its inherent flaws and weaknesses. 5
The standard data model does, to some extent, ease access to data across structure types. The standard data model, however, demonstrates problems that seem intractable within the standard model itself. One problem is that the standard data model utilizes a completely static standard structure. That is, there is no method or o system within the standard model for giving effect to routine changes in source system data structures. After the structure of a standard model is standardized by an industry standards committee (or a local data management group), the standard model structure is locked in place until changed by the committee. The source data structures in the databases integrated by the standard model, however, change daily. The only way to 5 change the standard model data structures to keep up with the changes in structures in industry databases is to gather a list of desired changes, take them to the industry standards committee, and request changes in the standard model. After the committee approves changes in the standard model, all applications desiring to use the new standard model, as well as the software processes, if any, comprising the model itself, o must be rewritten, an extremely laborious, expensive, and time-consuming process. A second problem with the standard model is data loss. The static nature ofthe standard model means that all data structure changes in industry databases not yet integrated into the standard model result in data loss every time data from an external repository is transferred into the standard model. In addition, the fact that the standard model data structure is established by committee means that it is a compromise practically never capable of including all fields from all databases for any record type. Neither the initial implementation of a standard model nor subsequent upgrades typically include all fields from all repositories contributing transferred data for a record type. For these reasons, actual utilization of a standard model for data integration almost always results in data loss.
For these reasons, and for other good reasons that will occur to the reader, there is an ongoing need for improved methods and systems for data integration.
SUMMARY
Aspects ofthe present invention include methods, systems, and products for data integration based upon dynamic common models. Aspects ofthe present invention 5 typically include adapters as data communications interfaces between native data repositories and data integration applications. Aspects ofthe present invention typically include loose coupling between adapters and data integration applications. Aspects ofthe invention are summarized here in terms of methods, although persons skilled in the art will immediately recognize the applicability of this summary equally 0 to systems and to products.
A first aspect ofthe invention includes methods of data integration including extracting a first native record from a first native repository, through a first adapter for the first native repository. In typical embodiments, the first adapter is loosely coupled s for data integration to a data integration application, wherein the first native record from the first native repository has a first native format, and the first native format belongs to a category of formats identified as a datatype.
Typical embodiments include transforming, through the first adapter, the format ofthe o first native record having the first native format to a dynamic common format, the dynamic common format being a subset of a dynamic common model, the dynamic common model comprising mappings specifying transformations to and from the dynamic common format for all data elements in all formats of all native records in all datatypes, whereby is produced a first native record having the dynamic common 5 format.
Typical embodiments include transforming, through a second adapter, the format of the first native record having the dynamic common format from the dynamic common format to a second native format of a second native repository, the second native o format belonging to a category of formats identified as datatypes, wherein the second adapter is loosely coupled for data integration to the data integration application, whereby is produced a first native record having attributes in the second native format. Typical embodiments include inserting, through the second adapter, the first native record having the second native foπnat into the second native repository.
Other aspects ofthe invention include methods of creating systems implementing a dynamic common model, the systems typically including data integration applications, the methods typically including developing a first adapter for a first native repository, the first adapter being loosely coupled for data integration to the data integration application, the first native repository comprising first native records having first 0 native formats, the first native formats belonging to categories of formats identified as datatypes. Typical embodiments further include developing a second adapter for a second native repository, the second adapter being loosely coupled for data integration to the data integration application, the second native repository comprising second native records having second native formats, the second native formats belonging to 5 categories of formats identified as datatypes.
Typical embodiments include creating mappings specifying transformations of records: from the first native format to a first dynamic common format, from the first dynamic common format to the first native format, from the second native format to a o second dynamic common format, and from the second dynamic common format to the second native format. Typical embodiments also include providing a transformation service capable of transforming formats in dependence upon the mappings, the transformation service coupled for data communications to the first adapter and to the second adapter. In typical embodiments, the data integration 5 application is coupled for data communications to a multiplicity of native repositories through a multiplicity of adapters, and the multiplicity of adapters includes the first adapter and the second adapter.
hi typical embodiments, all the adapters among the multiplicity of adapters are loosely o coupled for data integration to the data integration application, and the data integration application includes the transformation service, i typical embodiments the dynamic common format is a subset of a dynamic common model, and the dynamic common model has the capability of specifying transformations to and from the dynamic common format for all formats of records in all datatypes ofthe multiplicity of native repositories.
5
A further aspect ofthe present invention includes methods of integrating an additional native repository with a system implementing a dynamic common model, the system including a data integration application, hi typical embodiments, methods include developing an additional adapter for the additional native repository, the additional 0 adapter being loosely coupled for data integration to the data integration application, the additional native repository comprising additional native records having at least one additional native format, the additional native format belonging to at least one category of formats identified as a datatype. Typical embodiments of this aspect include creating mappings specifying transformations of records: from the at least one 5 additional native format to an additional dynamic common format, and from the additional dynamic common format to the at least one additional native format.
It is usual to view data in native repositories as sets of data elements. In this view, the integration achieved by the standard model is never more than an intersection of sets. o The dynamic common model, however, is capable of a true union of all data elements selected for integration from all source repositories integrated through an embodiment ofthe invention. Because the standard model is static and includes from the beginning only agreed subsets of source data elements, the standard model never represents more than an intersection. In contrast, the dynamic common model ofthe 5 present invention is capable at all times of transforming and transferring each and every data element from each and every source repository. If as a practical matter, users elect to integrate less than a full union of all data elements in all integrated native repositories for a particular embodiment, nevertheless, the dynamic common model remains capable of quickly effecting a full union if desired, a capability never o available in the standard model for data integration. The standard model itself provides no mechanism for changing or updating source data structures. In contrast, the dynamic common model itself comprises elements useful for automatically upgrading the dynamic common model to include changes in source repository structures. In fact, changes typically are administered in a similar manner as additions of new repositories. "Automatic upgrading" in this sense means that upon activation, a new adapter automatically registers itself and its new repository with a data integration application to which it is coupled for data communications and a spider then automatically enters in a catalog identifying information for all the records in the new repository served by the new adapter. The process for changing existing repositories or adding new repositories is extremely flexible and efficient, especially in contrast with the standard model in which such changes or additions are almost impossible and are not provided for within the model itself.
The foregoing and other objects, features and advantages ofthe invention will be apparent from the following more particular description of a preferred embodiment of the invention, as illustrated in the accompanying drawings wherein like reference numbers generally represent like parts ofthe invention.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a process flow diagram of various embodiments ofthe invention. Figure 2 is a high-level process flow diagram of embodiments ofthe invention. 5 Figure 3 is a more detailed process flow illustration of embodiments of extraction with respect to an adapter and a transformation service. Figure 4 is a more detailed process flow illustration of embodiments of insertion with respect to an adapter and a transformation service. Figure 5 illustrates embodiments of process flow for spidering. 0 Figure 6 is a further illustration of embodiments with particular regard to extraction. Figure 7 is a further illustration of embodiments with particular regard to insertion. Figure 8 is a further illustration of embodiments with particular regard to mapping formats. Figure 9 is a further illustration of embodiments with particular regard to 5 administration of proxy data and identifying attributes for catalogs.
Figure 10 is a high-level process flow for embodiments ofthe aspect including creating systems implementing dynamic common models. Figure 10a is a more detailed illustration with respect to embodiments of mappings. Figure 10b illustrates embodiments utilizing an adapter manager. o Figure 10c illustrates embodiments spidering native repositories pursuant to creating systems implementing dynamic common models. Figure 11 is a high-level process flow for embodiments ofthe aspect including integrating additional native repositories into systems implementing dynamic common models. 5 Figure 1 la is a more detailed illustration with respect to embodiments of mappings. Figure 1 lb illustrates embodiments utilizing an adapter manager. Figure lie illustrates embodiments spidering native repositories pursuant to integrating additional native repositories into systems implementing dynamic common models. o Figure 12a illustrates an example embodiment of a native record format for a well.
Figure 12b continues the illustration of an example embodiment of a native record format for a well. Figure 13 illustrates an example embodiment of a of native XML for a well. Figure 14a illustrates an example embodiment of a native record format for a well log curve. 5 Figure 14b continues the illustration of an example embodiment of a native record format for a well log curve. Figure 15 illustrates an example embodiment of a of native XML for a well log curve. Figure 16 illustrates an example embodiment of a dynamic common format implemented in XML. 0 Figures 17a - 17i illustrate an example mapping implemented in an XML stylesheet, more specifically: Figure 17a illustrates an embodiment of an XML stylesheet header, in the illustrated example embodiment directed to mapping dynamic common format to catalog
XML. 5 Figure 17b illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well datatype. Figure 17c continues the illustration of an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well datatype. o Figure 17d illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well log datatype. Figure 17e illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well log curve 5 datatype.
Figure 17f illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of formation tops datatype. Figure 17g illustrates an example embodiment of mapping through an XML stylesheet o from dynamic common format to catalog XML for a record of well deviation survey datatype. Figure 17h illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well core datatype.
Figure 17i illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for data elements having similar tag names in records of several datatypes.
Figure 18 illustrates an embodiment of a catalog record.
Figure 19 illustrates an example embodiment of an adapter base class.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
The present invention is described primarily in terms of a method of data integration. Persons skilled in the art, however, will recognize that any computer system that 5 includes suitable programming means for operating in accordance with the disclosed method also falls well within the scope ofthe present invention. The term "system" as used throughout this specification refers to computer systems or system comprising computers coupled, typically through networks, for data communications.
0 Suitable programming means include any means for directing a computer system to execute the steps ofthe method ofthe invention, including for example, systems comprised of processing units coupled to computer memory, which systems have the capability of storing in computer memory programmed steps ofthe method ofthe invention for execution by a processing unit. The term "processing unit" includes s arithmetic logic circuits configured to execute methods implemented in embodiments ofthe invention. Such arithmetic logic circuits typically operate in dependence upon electronic memory circuits configured to store representations of methods implemented in embodiments ofthe invention. In this specification, the terms "system," "computer system," and "data processing system" are used as synonyms. o The terms "memory" and "computer memory" are used as synonyms in this specification. "Memory" or "computer memory" includes both electronic memory circuits such as random access memory and read-only memory, as well as various forms of magnetic or optical memory storage such as compact disks, magnetic diskettes, and fixed or removable disk drives. 5
Embodiments ofthe invention include computer program products, such as diskettes, for use with any suitable data processing system. Embodiments of a computer program product may be implemented by use of any recording medium for machine- readable information, including magnetic media, optical media, or other suitable o media. Persons skilled in the art will immediately recognize that any computer system having suitable programming means will be capable of executing the steps ofthe method ofthe invention as embodied in a program product.
The present invention is particularly concerned with computer data, and it is useful to clarify the usage of particular terms, consistent with their usual usage in the computer 5 industry. For example, this specification distinguishes databases and data repositories, using "database" to refer to aggregates of files having regular record structures usually capable of organization in rows and columns and typically included under administration of database management systems.
0 This specification uses the term "repository" to include databases, but also to include data stores other than databases, data stores, in which, for example, data records may be stored in file systems under hierarchical directory structures rather than in databases as such. "Native repositories" are data stores outside a data integration application subject to integration by use of a data integration application. 5
Individual data elements are referred to as "data elements" or as "fields." Aggregates of data elements are called "records." The organization of fields within records is referred as "data format," simply as "format," or sometimes as "data structure."
o Aggregates of records are called "files." "Tables" are a category of files having records and fields capable of orderly arrangement in rows and columns, a characteristic not necessarily shared by all files.
With respect to software programs or processes, this specification uses the terms 5 "process" to mean a computer program, or a routine within a computer program, stored in random access memory either ready to execute or presently under execution. "Thread" refers to a lightweight process or thread of execution. The term "program" is used more generally to refer to an aggregate of computer instructions that may still be in storage outside random access memory and may in fact still be in uncompiled o source code form. Referring to callable segments of software typically accepting data parameters and returning return data, values or strings, the terms "routine," "member method" and "function" are used as synonyms.
The present invention regards methods, systems, and products for data integration. Figure 1 illustrates example embodiments ofthe present invention typically as 5 including a spider (518), a metadata catalog (202), a transfer manager (208), a transformation service (206), and adapters (102, 124, 204). Embodiments ofthe present invention function generally to allow users to identify data located among multiple databases or data repositories, referred to as "native repositories," coupled for data communications, and to transfer identified data from one repository to another. 0 The repositories have multiple internal data formats. Embodiments ofthe present invention include the capability of transforming the data format of data transferred from a source repository (typically referred to in this specification as a "native repository") to a destination repository (another native repository) from the format of the source repository into the format ofthe destination repository. Data 5 transformations in embodiments ofthe present invention typically utilize mappings comprising subsets of a dynamic common model referred to as "dynamic common formats."
A "dynamic common model" is an aggregate of all mappings to and from native o formats and dynamic common formats within a data integration application. It is a characteristic of typical embodiments ofthe present invention that their dynamic common models provide the capability of including such mappings for all data elements in all datatypes in all native repositories integrated through a particular data integration application. In the case of an embodiment utilizing XML stylesheets for 5 mappings, for example, a dynamic common model comprises all mappings implemented in all the stylesheets present in the embodiment. The use or presence of a dynamic common model does not mean that all data elements in all integrated native repositories are actually available for transfer at every moment in time. Human operators naturally have discretion to include or exclude particular data elements. The o use of a dynamic common model within the meaning of the present invention, however, does assure that every data element in every integrated native repository can be provided for transfer within the model almost immediately merely by adding or altering one adapter and adding or altering one or two mappings. It is in this sense that it is said that the dynamic common model provides the capability of a true union of all data elements in all supported datatypes in all native repositories integrated 5 through a data integration application.
Data transformations in embodiments ofthe present invention typically utilize also an additional intermediate format called a "native mapping format." The usefulness of the native mapping format is that in typical embodiments it is implemented in the 0 same underlying technology as the dynamic common formats and the dynamic common model, thus enabling the transformation service always to administer all its inputs and outputs in the same general manner. For example, many embodiments of the present invention utilize XML to implement the dynamic common formats and the native mapping formats. Choosing XML as the underlying technology for the formats 5 to be input to the transformation service enables the transformation service to be implemented as an XSL translator, and the mappings (120) that drive the transformation service to be XML stylesheets. Embodiments ofthe invention, therefore, have the advantage of presenting to and receiving from their transformation services file records or documents formulated in terms of a single technology. This o approach, as will be seen, greatly simplifies data integration.
"XML" of course refers to the well-known standard "Extensible Markup Language." XSL translators are well known computer applications that translate XML documents. Many embodiments ofthe present invention utilize XSL translators in transformation 5 services. Many embodiments utilize XML stylesheets as guides for XSL translations. In the terminology ofthe present specification, such XML stylesheets embody "mappings" of data transformations. It is usual to think of XSL translators as translating XML to HTML. An XSL translator, however, is in fact a general-purpose translating engine that, in most embodiments ofthe present invention, for example, is o used to translate from one XML format into another XML format. "Adapters" are implementations of interfaces between native repositories and other elements of embodiments, particularly transfer managers and spiders. Each adapter serves one native repository. Registering an adapter with a data integration application is the same as registering the native repository served by the adapter. And 5 vice versa: registering a native repository for data integration is typically the same as registering its adapter. Adapters function to extract (224) from native repositories (106) data to be transferred. Adapters, or their extract routines, provide the capability of calling a transformation service (218), passing to the transformation service data in a native mapping format, accepting (214) from the transformation service data o transformed into a dynamic common format, and providing (224) the transformed data in dynamic common format to other elements of an embodiment such as a data integration application (116) or a transfer manager (208) within a data integration application. Adapters also provide the capability of inserting data into destination repositories (134). Adapters' insert routines typically receive (222) data in dynamic s common format and call a transformation service (212) to transform the data into a native mapping format, after which the adapter transforms the data into the native format required by the destination repository.
Adapters in typical embodiments are loosely coupled to data integration applications o including transfer managers, transformation services, and spiders. "Loosely coupled" generally means "data-driven." More specifically, "loosely coupled" means that all changes in operations of typical embodiments ofthe invention as between adapters and data integration applications are effected by mere changes in text or other kinds of data in, for example, tables, mapping files or documents, or configuration files, with 5 no need for changes in computer programming, computer source code, or executable computer code.
"Changes in operations" means changes needed to address alterations of native repositories, either changes in the structures ofrepositori.es already integrated in an o existing system, or changes needed to integrate an additional repository into an existing system. In, for example, the case of embodiments utilizing XML for mapping data transformations, changes in operations resulting from modification of an existing repository or addition of a new one, as between the adapter for the affected repository and a data integration application to which the adapter is coupled, require modifications to or addition of no more than two XML stylesheets, mere changes in, 5 or creations of, text files, changes effected with a word processor or text editor, changes requiring no computer programming whatsoever.
Changes in operations often do, in typical examples, however, require computer programming for, of, or within an adapter. Adapters typically are tightly coupled to 0 native repositories. In this context, "tightly coupled" means that changing the structure or operation of an already-integrated repository, or integrating an additional repository, typically requires at least some computer programming within an adapter. Some data conversion operations are not amenable to loose coupling. For example, the category of data conversion operations typically referred to as "rules" or "business 5 rules" is resistant to loose coupling. "Business rules" are requirements for data conversion that cut across records, such as, for example, a requirement that a field contain the sum of values from several other fields in other records. Conversion or
» transformation of such fields requires manipulations that are difficult or impossible to do in a purely data-driven fashion. It is one ofthe benefits ofthe present invention o that the location of rules-based programming requirements is concisely focused in adapters immediately adjacent to native repositories and that, except for the data conversion relations between an adapter and the native repository served by the adapter, all other data conversion relations in typical embodiments are loosely coupled. 5
Persons skilled in the art, however, will recognize that the scope of computer programming required in adapters for such changes in operations typically are minimal, needing to address through a single adapter only the changes in data elements affected within a changed repository. The fact that adapters are tightly o coupled to native repositories does not diminish in any way the benefits of loose coupling to data integration applications. Adapter routines are typically called by transfer managers and by spiders. A transfer manager (208) is an application operated as part of a data integration application that includes the capabilities of ordering extraction (104) of native repository records from one repository and ordering insertion (132) ofthe extracted records into a second 5 native repository. Naturally, in order to carry out such transfers including extractions and insertions, the transfer manager must know where to extract the data from and where to insert it. Embodiments utilizing transfer managers therefore typically include in transfer managers the capabilities of reading (240) catalog keys and destination codes from a transfer cart (242) wherein are stored such information 0 deposited there in response to a user's request to execute a transfer. Transfer managers call adapter extract routines to retrieve data to be transferred, and the adapters' extract routines return data to be transferred in common fonnat. An adapters is capable of returning data in common format because, before providing transfer data to the transfer manager, the adapter's extract routine calls a 5 transformation service to transform the data format from its source format to common format.
In many embodiments, transfer managers, or rather software functions, methods, or routines within transfer managers, call (222) adapter insert routines to provide o transferred data for insertion into a destination repository. In such embodiments, transferred data is provided by the transfer manager to the destination adapter's insert routine in dynamic common format, and the destination adapter insert routine calls a transformation service (212) to convert the transfer data from dynamic common format to a destination native mapping format. 5
In many embodiments, transfer managers function by reading from transfer carts catalog keys identifying catalog records storing proxy data for native records to be transferred, the proxy data identifying the exact source repository and location within source repositories ofthe data records to be transferred. In such embodiments o utilizing transfer managers, an extract routine in the transfer manager typically calls
(226) an adapter extract routine in an adapter for a source repository and passes proxy data to the adapter, receiving the return of data in dynamic common format from the source adapter. In such embodiments, an insert routine in the transfer manager typically calls an adapter insert routine in a destination adapter and passes the transfer data to the destination adapter in dynamic common format for transformation and 5 insertion into a destination repository.
Some embodiments effect transfers of each transfer record separately. Some embodiments concatenate proxy data for all records to be extracted from a particular source repository so that such records are extracted through a single call to the adapter 0 extract routine for that source repository. Because such concatenated calls may effect transfers of large quantities of data, some embodiments concatenate proxy data for records to be extracted from a particular source repository so that such records are extracted through more than one call to the adapter extract routine for that source repository, each such call being subject to a maximum block size to optimize 5 efficiency in data transfer.
In typical embodiments, as shown in Figure 1, transformation services transform data from a native mapping format into dynamic common format and from dynamic common format into a native mapping format. In many embodiments in which o dynamic common formats and native mapping formats are implemented in XML, adapters calling transformation services provide to the transformation service the source data in XML documents that the transformation service uses to locate in an XML stylesheet database an XML stylesheet containing rules for translating the source data to common format. An XML stylesheet database typically in such 5 embodiments contains two XML stylesheets for each native repository, one stylesheet for transformation from native mapping format to dynamic common fonnat and one for transformation from dynamic common format to native mapping format. After locating a stylesheet, for calls from source adapters, the transformation service, in typical embodiments utilizing XML, passes the source data in native mapping format o and the stylesheet to an XSL translator which in turn is guided by the stylesheet in translating the source data into dynamic common format and returning a new XML document to the calling adapter, the new XML document comprising the transfer data in dynamic common format. For calls from destination adapters, of course, the translation is from an XML document comprising data in dynamic common format to an XML document comprising data in native mapping format.
Catalogs are databases having their own adapters. Catalogs are databases containing data about data, or "metadata," so that "catalogs" are sometimes referred to as "metadata catalogs." Metadata in catalogs includes identifying attributes or data elements useful to allow users to identify data available for transfer among other native repositories. Metadata in catalogs includes also proxy data or data identifying specific locations of particular data records in native repositories.
Spiders (518) are software applications that populate catalogs. Spiders typically are included as parts of data integration applications (116). Spiders function to maintain s in a catalog a current listing of all data available through that catalog for transfer by users among native repositories. Spiders call specialized extract routines in source adapters and specialized insert routines in catalog adapters. Unlike transfer managers, however, spiders do not identify data to be transferred by reference to a transfer cart. Moreover, spiders typically do not transfer native records in their entirety as transfer 0 function typically do. In contrast, spiders transfer only identifying attributes and proxy data from native repositories to catalogs, and spiders identify data to be transferred not by reference to proxy data, but by transferring data regarding all native records in a repository or all native records in a repository having a date or time stamp later than a last spider date or a last spider time. 5
The term "date stamp" or "time stamp" refers to data elements in native records representing the last date and time when native records were changed in any way, altered, added, deleted, or updated. Because the purpose of spidering native repositories is to maintain in a catalog current accurate identifying attributes and o proxy data for all records in integrated native repositories, many embodiments track the last spider date and time and spider only those native records having date/time stamps later than the last spider date and time for the repository in which the native records are located.
hi typical embodiments, spiders identify data to be transferred in terms of time. With 5 reference to time data, spiders serve two kinds of native repositories, repositories having update time stamps on native records and repositories having no such time stamps. In many embodiments, for all native repositories integrated by a data integration application, spiders maintain a file of records identifying all such repositories including a time and date entry on each such record indicating the last 0 time the subject repository was spidered. In this specification, the term "spider" is sometimes used as a verb to refer to the process of extracting from a repository identifying information for data in the repository and inserting the identifying information into a catalog.
s In typical embodiments, the extract routines in adapters for repositories with update time stamps are capable of accepting a last-spider time from a calling routine in a spider and extracting only those repository records having time stamps that indicate updates after the last-spider time for the particular repository. Extract routines in adapters for repositories without update time stamps typically upon request from a o spider's calling routine extract the entire source repository each time the source repository is spidered, hi some embodiments, spiders are called manually; in other embodiments, spiders are run by cron jobs. "Cron" refers to the well known UNIX daemon for launching application at times identified in a UNIX system table commonly known as a "cron tab." Despite the fact that "cron job" is UNIX jargon, 5 this specification uses the term "cron job" in a generic sense to refer to any launching by any computer operating system, not just UNIX, of a spider into a separate process or thread of execution at a preset time stored in non- volatile computer memory, such as a cron table or 'crontab.'
0 hi typical embodiments, spiders can accept as parameters the last-update time for a repository and an identification ofthe repository to be spidered. The time parameter in some embodiments comes from a crontab. In other embodiments the time parameter is provided manually by a user. In other embodiments the time parameter is read from a registration list where are stored last spider times for native repositories integrated under a data integration application. For spidering source repositories not 5 supporting internal update time stamps, some embodiments of spiders accept a time parameter coded to indicate the need to spider the entire repository. Other embodiments of spiders for repositories without update time stamps ignore the time parameter because the associated repository adapter's specialized extract routine for spiders is programmed to extract the entire repository every time the specialized 0 extract routine is called. The extract routines called by spiders in typical embodiments are specialized for spidering, returning in a dynamic common format data elements comprising identifying attributes and proxy data, the different data elements being different from the data elements returned in common format to transfer managers, the different data elements being those needed for updating a 5 catalog.
Embodiments ofthe invention typically include a subsystem called a user interface, typically installed and operating on a web server or a network application server, capable of reading display data from a catalog and displaying across a network onto o user workstations or personal computers information identifying data available for transfer among native repositories. The catalog in typical embodiments is a database operating under a database management system including database files comprising information identifying the locations and kinds of data ("identifying attributes") available for transfer as well as the exact locations ("proxy data") of particular data 5 within particular native repositories. The identifying attributes, or some part of them, are displayed through user interfaces for users on user workstations in response to users' queries comprising search parameters entered through the user interface. The user interface in typical embodiments also provides the capability for users to indicate which ofthe native records identified by displayed identifying attributes is to be o transferred and the destination of each transfer. Displays of identifying attributes typically include identification of pertinent native repositories. Indeed, native records describing oil well logs, seismic surveys, or a tulip growers typically are available from several native repositories. User prompts at transfer time therefore in some embodiments include both the source and the destination ofthe transfer.
In typical embodiments, identifying attributes for display through a user interface are organized consistently across a datatype. More specifically, in the example case of well logs, on a display screen of a user workstation, it is useful for all well logs to have similar and logical display appearance regardless ofthe physical nature of identifying attributes actually stored in a catalog. It is usual, therefore, in typical 0 embodiments ofthe invention to include a datatype dictionary (201), coupled for data communications to a catalog, to map physical identifying attributes to logical identifying attributes. The physical identifying attributes are the identifying attributes stored in a catalog as a result of spider operations and data transfers. The logical identifying attributes are reorganizations ofthe logical identifying attributes for 5 logical, consistent display appearance. The datatype dictionary is organized according to datatypes because the usual display consistency is organized around datatypes. It is typical to display identities of tulip growers, for example, in a format that is consistent across tulip growers but different from displays of well logs, tulip growers belonging to or having, in the terminology ofthe invention, a datatype. Well logs, having their o own separate datatype, also have their own logical format for display of identifying attributes, typically established in a datatype dictionary.
In typical embodiments, a user interface provides the capability for the user to order execution of a transfer, to transfer particular identified data from a source native 5 repository to a destination native repository. User interfaces in such embodiments are capable, when ordered to do so, of writing to a transfer cart catalog keys from the identifying attributes for all native records ordered transferred by the user. It is the transfer manager in typical embodiments that then reads the catalog keys from the transfer cart and uses a catalog key to find in the catalog the proxy data needed to o locate in a native repository a particular native record selected for transfer. The transfer manger then calls an extract routine in the adapter for the source repository identified in the identification data.
In overview therefore of typical operation, a user requests through a user interface (244) identification information for a datatype, passing to the user interface search 5 parameters (250). The user interface searches (248, 246) a catalog (202) and returns for display logical identifying attributes (252) fitting the user's request. The user interface then supports various sorting and selecting functions (254) on behalf of the user, including enabling the user affirmatively to indicate which data records are to be transferred and the destinations ofthe transfers. The user's last act before transfer is o to instruct the user interface to begin transfer (256). The user interface then, in typical embodiments, writes a catalog key into a transfer cart (242), one key for each transfer record.
A transfer manager regularly scans (240) the transfer cart to read catalog keys from 5 cart records. The transfer manager then uses the catalog keys to locate (238) in the catalog the proxy data for the transfer records, passing the proxy data to an adapter for the source repository by calling (226) an extract routine within the adapter. The adapter extracts (103) the data from the source repository (106) and converts it to common format by calling a transformation service (218). After transformation, the o adapter returns the data in common format to the transfer manager (224).
The transfer manager in a typical embodiment then calls (222) an insert routine in the destination adapter serving the destination repository (134). The destination adapter converts the common format to native format by calling a transformation service. 5 After transformation the destination adapter inserts (125) the transfer data into the destination repository (134), returning to the transfer manager new identifying attributes and proxy data for the newly inserted record in the destination repository (220). If the insertion was successful, so that the destination now contains data it did not contain before the transfer, the transfer manager updates (236) the catalog by o calling (237) an insert routine in an adapter for the catalog. It is useful to note that in typical embodiments, this particular routine updating of a catalog at the conclusion of a successful transfer is administered directly by the transfer manager rather than a spider.
In many embodiments ofthe present invention, additions of new repositories to the 5 system ofthe invention require only three things: a new adapter and a two new mappings for conversion ofthe new source format to common format. In embodiments utilizing XML stylesheets for mappings, the requirement is one new adapter and two new stylesheets. In typical embodiments, an additional native repository, upon joining a data integration system, receives a new adapter, and the 0 adapter automatically upon activation registers with the data integration application, and the contents ofthe new repository are then spidered automatically into a catalog, making the contents ofthe new repository immediately available to users ofthe invention.
5 In typical embodiments, a new adapter for an additional native repository requires some additional programming to alter or develop routines to convert data formats from the raw native format of an additional repository to and from a native mapping format. In embodiments utilizing XML, programming typically is needed within a new adapter to convert data formats between the raw native format and a native XML o format. It is useful to note that creating a new XML stylesheet does not involve computer programming. Creating a new XML stylesheets is merely a matter of text entry, often done merely through a word processor or text editor.
Principal elements of typical embodiments, user interfaces, transfer managers, 5 transformation services, adapters, catalogs, and spiders are implemented as computer applications, capable of installation and operation all on the same computer or upon separate computers coupled, generally through networks, for purposes of data communications. Principal elements of typical embodiments, particularly the adapters and transfer managers, communicate with one another through remote procedure calls o implemented in various ways, mcluding, for example, tluough CORBA objects or through JDBC objects. Some embodiments utilize custom-programmed remote procedure calls. Persons skilled in the art will recognize that all methods of accomplishing efficient data communications among principal elements of embodiments are well within the scope ofthe invention.
"CORBA" refers to the Common Object Request Broker Architecture, a standard for interoperability as promulgated by the Object Management Group of Framingham, Massachusetts. "JDBC" refers to the well known Java Database Connectivity standard, which includes a standardized API for SQL-oriented database access." And "SQL" refers to the Structured Query Language, a known standard for database access.
Turning now to Figure 2, an aspect ofthe invention is seen as a method of data integration. An example embodiment illustrated in Figure 2 includes extracting (104) a first native record (108) from a first native repository (106), through a first adapter (102) for the first native repository. The first adapter (102) in the illustrated embodiment is loosely coupled for data integration (117) to a data integration application (116). In an embodiment as illustrated in Figure 2, the first native record (108) from the first native repository (106) has a first native format (112), and the first native format belongs to a category of formats identified as a datatype (110).
A further embodiment illustrated in Figure 2 includes transforming (114), through the first adapter (102), the format ofthe first native record (108) having the first native format to a first native record having a dynamic common format. In the illustrated example embodiment, the dynamic common format is a subset of a dynamic common model (118). Typical embodiments implement many datatypes. The dynamic common model (118) in typical embodiments includes mappings (120) specifying transformations to and from the dynamic common format for all data elements in all formats of all native records in all datatypes implemented in an embodiment.
A further embodiment, illustrated also in Figure 2, includes transforming (126), through a second adapter (124), the format ofthe first native record (122) having the dynamic common format to a first native record having a second native format of a second native repository (134), the second native format belonging to a category of formats identified as datatypes (110). In the illustrated embodiment, the second adapter (124) is loosely coupled for data integration to the data integration application (116). As shown for the illustrated embodiment, the result of this transformation is a first native record (128) having attributes (130) organized in the second native format.
A further embodiment, illustrated also in Figure 2, includes inserting (132), through the second adapter (124), the first native record (128) having the second native format into the second native repository (134).
A still further embodiment is shown in Figure 6 to include generating (604) search parameters (606) capable of supporting a search for the first native record (108). The illustrated embodiment of Figure 6 includes finding catalog records corresponding to the search parameters. More specifically, the illustrated embodiment includes finding (612), in a catalog (202), in dependence upon search parameters (606), catalog records (610) having identifying attributes (614) that match the search parameters (606). In typical embodiments, as shown in Figure 6, the identifying attributes for each catalog record include a catalog key for each catalog record.
A "catalog key" is a group of data elements uniquely identifying a catalog record. Catalog keys in some embodiments comprise a single data element. In other embodiments, multiple data elements are used as a catalog key to uniquely identify a catalog record.
In typical embodiments, as shown in Figure 6, the catalog (202) comprises identifying attributes (614) and proxy data (616) for all native records (610) in a multiplicity of native repositories. In typical embodiments, as shown in Figure 6, the multiplicity of native repositories comprises the first native repository (106). In typical embodiments, as shown in Figure 6, at least one found catalog record contains identifying attributes that identify the first native record (108). A still further embodiment, shown also in Figure 6, includes marking (624) for extraction the identifying attributes ofthe at least one found catalog record containing identifying attributes that identify the first native record. A still further embodiment, shown also in Figure 6, includes posting (628), from the marked identifying attributes, 5 a catalog key (626) to a transfer cart (630) in the data integration application (116). A still further embodiment, shown also in Figure 6, includes extracting (634), in dependence upon (627) the posted catalog key (626), from the catalog (202) through a catalog adapter (632) proxy data (616) for the first native record (108).
o In typical embodiments, as shown in Figure 6, the proxy data (616) comprises data representing the location ofthe first native record (108) in the first native repository (106). In typical embodiments, as shown in Figure 6, extracting (104) a first native record (108) from a first native repository (106) further comprises reading (638), in dependence upon the proxy data (616), through the first adapter (102), from the first s native repository (106), the first native record (108) having a first native format.
A more detailed example embodiment of transforming (114) the format ofthe first native record (108) having the first native format, illustrated in Figure 7, includes converting (702), through the first adapter (102), the first native record (108) having o the first native format to a first native record (704) having a first native mapping format. The illustrated embodiment of Figure 7 includes retrieving (712) from a mapping store (120) a first mapping (710), wherein the first mapping (710) specifies a data transformation from the first native mapping format to the dynamic common format. The illustrated embodiment of Figure 7 includes translating (706), through a 5 translator (708), in dependence upon the first mapping (710), the first native record (704) having a first native mapping format to first native record (122) having a dynamic common format.
In many embodiments ofthe kind illustrated in Figure 7, the first mapping (710) o comprises a first XML stylesheet, the translator (708) comprises an XSL translator, the first native mapping format (705) is implemented in XML, the dynamic common format (123) is implemented in XML, the first native record (704) having a first native mapping format is a first XML document, and the first native record (122) having dynamic common format is a second XML document.
5 A further embodiment of transforming (126) the format of the first native record ( 122) having the dynamic common format, as shown in Figure 8, includes receiving (802), through a second adapter (124), a first native record (122) having the dynamic common format. The embodiment of Figure 8 includes retrieving (804) from a mappings store (120) a second mapping (806), wherein the second mapping (806) 0 specifies a data transformation from the dynamic common format to a second native mapping format. A further embodiment, shown also in Figure 8, includes translating (706), through a translator (708), in dependence upon the second mapping (806), the first native record (122) having the dynamic common format, into a first native record (812) having the second native mapping format. The illustrated embodiment includes 5 converting (814), through the second adapter (124), the format ofthe first native record (812) having the second native mapping format into a first native record (128) having the second native format.
In many embodiments ofthe kind illustrated in Figure 8, the second mapping (806) o comprises an XML stylesheet, the translator (708) is an XSL translator, the dynamic common format (123) is implemented in XML, the second native mapping format (811) is implemented in XML, the first native record (122) having the dynamic common format is a first XML document, and the first native record (812) having a second native mapping format comprises a second XML document. 5
A more detailed embodiment of inserting (132) through the second adapter (124), shown in Figure 9, includes writing (904), through the second adapter (124), the first native record (128) having the native format ofthe second native repository (134) into the second native repository (134), thereby creating a new native record. The example o embodiment shown in Figure 9 includes creating (906) new proxy data (908) and identifying attributes (910) for the first native record (128) having the native format of the second native repository (134), that is, new proxy data and identifying attributes for the new native record. The example embodiment of Figure 9 also includes inserting (912) the new proxy data (908) and identifying attributes (910) through a catalog adapter (204) into a catalog (202). In the kind of embodiment shown in Figure 5 9, the catalog (202) typically comprises identifying attributes (614) and proxy data (616) for all native records in a multiplicity of native repositories. In typical embodiments, the multiplicity of native repositories includes the second native repository (106).
0 Turning now to Figure 5, an embodiment is seen using a spider to populate a catalog. More specifically, a further embodiment shown in Figure 5 includes spidering (518) through a spider (518) proxy data (541) and identifying attributes (539) from a single native repository (502) to a catalog (202). In the illustrated example embodiment, the single native repository (502) is coupled (505) for data communications to an adapter 5 (504), and the adapter (504) is coupled (503) for data communications to a data integration application (116). The illustrated the data integration application (116) includes the spider (518).
In an embodiment illustrated in Figure 5, the catalog (202) comprises a database of o identifying attributes (538) and proxy data (540) for all native records in a multiplicity of native repositories, and the multiplicity of native repositories include the single native repository (502).
In a more specific example embodiment, also shown in Figure 5, spidering (518) 5 includes providing (522) to the spider (518) an identification code for the single native repository (502). In some embodiments, spiders are provided repository identification codes as parameters of calls (522) from cron jobs that begin spider execution. "Cron job" refers to the well known UNIX utility for automated scheduling of software program execution under the UNIX operating system. Although an example is shown 0 in Figure 5 starting a spider from a cron utility (520), persons skilled in the art will immediately recognize that any tool or utility, functional under any computer operating system, can be used to schedule spider operations and that the use of any automated scheduler for starting spiders is well within the scope ofthe present invention.
5 Other embodiments will enable manual operation of a spider in that a user is provided on a workstation (258) interface elements, such as typical known elements of graphical user interfaces, mouse-clickable buttons, pull-down menus, and the like, from which a user manually starts a spider. In such embodiments, the data integration application is programmed to prompt the user for native repository identification (516) o when a spider (518) is manually ordered (514) by a user.
A further embodiment as shown in Figure 5 includes reading (534), in dependence upon an identification code (509) for a single native repository, from a native repository registration list (506) a last spider time (535) for the native repository (502) s to be spidered. A still further embodiment as shown in Figure 5 includes retrieving (524, 526) from the single native repository native records having time stamps later than the last spider time. Some native repositories do not support native records having time stamps. For a native repository not supporting time stamps, each spider call to such a repository retrieves proxy data and identifying attributes for all native o records in the repository.
A still further embodiment also illustrated in Figure 5 includes creating (530), in dependence upon the retrieved native records, proxy data (541) and identifying attributes (539). Creating proxy data in this kind of embodiment includes providing, 5 for each record in the single native repository meeting the spider timing requirements, sufficient data elements to uniquely find each such record in the single native repository. For native records using single-field unique keys, a datatype and a single data element will be sufficient to locate a particular record. For native records using multiple-field unique keys, a datatype and more than one key data element are needed 0 to locate a particular record. For native repositories that do not use database management technology as such, other modes of proxy data are used, such as, for example, specific file system location such as disk drive identification codes, directory and subdirectory names, and file names. Persons skilled in the art recognize by now that any formulation of data elements capable of specifying the location in a repository, a data store, a database, a file system, or in any other form of computer 5 data storage, of a particular file or record representing, implementing, or supporting a datatype is fully useful as proxy data within the present invention.
Identifying attributes are data elements comprising a description ofthe thing that is represented by the native record. The identifying attributes are useful for displaying 0 on a user workstation interface to enable a user to select records for transfer. Consider an example involving oil wells, and distinguish for purposes of illustration identifying attributes and proxy data. Identifying attributes, information a user finds useful for selecting data to transfer, includes well location, latitude, longitude, well depth, age of a well, geological characteristics of a well, and so on. In contrast, proxy data purely 5 identifies the location of a well record in a native repository. In other words, identifying attributes describe the thing represented by a data record, whereas proxy data describes the location in a native repository ofthe data record itself.
A still further embodiment also illustrated in Figure 5 includes writing (532) to the o catalog (202), through the catalog adapter (528, 204), the proxy data (541) and identifying attributes (539). A still further embodiment also illustrated in Figure 5 includes updating (536) the last spider time (535) in the native repository registration list (506). So that users will have the last spider time and last spider date available for convenient reference, typical embodiments maintain the last spider date and last 5 spider time in storage regardless whether native repositories spidered do or do not support time stamps on native records.
Some users take the view that there is no need to maintain in storage last spider time or last spider date for native repositories not supporting time stamps on grounds that o there is no need to provide last spider time in spidering such repositories because the last spider time will not be used. Spidering such repositories always retrieves proxy data and identifying attributes for all records in the repository, regardless ofthe last spider time or last spider date. Some alternative embodiments, therefore, do not maintain last spider data and last spider time for native repositories that do not support time stamps on native records.
5
Turning now to Figure 10, a further aspect ofthe invention is seen, a method of creating a system implementing a dynamic common model, hi an embodiment shown in Figure 10, the system includes a data integration application, and the method includes developing (1002) a first adapter (1004) for a first native repository (106). In 0 the example embodiment of Figure 10, the first adapter is loosely coupled for data integration (1006) to the data integration application (116), and the first native repository includes first native records (1010) having first native formats (1014). In the illustrated embodiment, the first native formats belong to categories of formats identified as datatypes (110). 5
A further embodiment, shown also in Figure 10, includes developing (1020) a second adapter (1022) for a second native repository (134). The second adapter is loosely coupled for data integration (1024) to the data integration application ofthe illustrated embodiment. Also in the illustrated embodiment, the second native repository o includes second native records (1028) having second native formats (1032), and the second native formats belong to categories of formats identified as datatypes (1012). '
A still further embodiment, shown also in Figure 10, includes creating (1018) mappings (120) specifying transformations of records. The mappings (120) created in 5 the exemplary embodiment are shown in more detail in Figure 10a as a mapping (1050) from the first native format to a first dynamic common format, a mapping (1052) from the first dynamic common format to the first native format, a mapping (1054) from the second native format to a second dynamic common format, and a mapping (1056) from the second dynamic common format to the second native o format. A further embodiment, shown also in Figure 10, includes providing (1016) a fransformation service (206) capable of transforming formats (1014, 1032) in dependence upon the mappings (120), the transformation service coupled (1040, 1042) for data communications to the first adapter (1040) and to the second adapter 5 (1042). In some embodiments, providing a transformation service includes programming data conversion routines for converting data elements, one by one, from one format to another. In other embodiments, providing a transformation service includes installing and configuring an XSL translator.
0 In embodiments ofthe kind illustrated in Figure 10, the data integration application (1024) is coupled for data communications to a multiplicity of native repositories through a multiplicity of adapters, and the multiplicity of adapters includes the first adapter and the second adapter. In such embodiments, all the adapters among the multiplicity of adapters typically are loosely coupled for data integration to the data 5 integration application, and the data integration application comprises the transformation service.
In embodiments ofthe kind illustrated in Figure 10, the dynamic common format (119) is a subset of a dynamic common model (118), and the dynamic common model o has the capability of specifying transformations to and from a dynamic common format for all formats of records in all datatypes in a multiplicity of native repositories, hi some embodiments, the multiplicity of native repositories consists of only the first native repository and the second native repository. That is, some embodiments practice the present invention with no more than two native repositories, 5 while other embodiments have many native repositories coupled through adapters to at least one data integration application.
A more detailed embodiment, illustrated at Figure 10b, includes registering (1050, 1052), through an adapter manager (1044) in a data integration application (116), the o adapters for the first native repository and the second native repository .
Embodiments ofthe present aspect ofthe invention typically include also, as shown in Figure 10c, populating (1054, 1056), through spiders (1046, 1048), a catalog (202) in the data integration application (116) with identifying attributes (538) and proxy data (540) for all records of all datatypes in the first native repository and the second native repository.
5
Turning now to Figure 11, a further aspect ofthe invention is seen, a method of integrating an additional native repository with a system implementing a dynamic common model, in which the system includes a data integration application. The embodiment shown in Figure 11 includes developing (1102) an additional adapter 0 (1104) for the additional native repository (1106). hi the embodiment illustrated in Figure 11, the additional adapter is loosely coupled for data integration (1120) to the data integration application (116), and the additional native repository includes additional native records (1108) having additional native formats (1112). In the embodiment shown in Figure 11, the additional native formats belonging to categories 5 of formats identified as datatypes (1012).
The embodiment illustrated in Figure 11 includes creating (1114) mappings (120) specifying transformations of records. The mappings (120), as shown in more detail in Figure 11a, include a mapping (1150) from the additional native format to an o additional dynamic common format and a mapping (1152) from the additional dynamic common format to the additional native format.
In embodiments ofthe kind shown in Figure 11, the data integration application typically is coupled (1123) for data communications to a multiplicity of native 5 repositories (1118) through a multiplicity of adapters (1116), and the multiplicity of adapters (1116) typically includes the additional adapter (1104). hi such embodiments, all the adapters among the multiplicity of adapters typically are loosely coupled (1122, 1120) for data integration to the data integration application.
0 In embodiments of the kind shown in Figure 11 , the data integration application (116) typically comprises a transformation service (206) capable of transforming formats (1112) in dependence upon the mappings (120), and the transformation service typically is coupled (1121) for data communications to all the adapters among the multiplicity of adapters. In such embodiments, dynamic common formats (119) are subsets of a dynamic common model (118), and the dynamic common model has the 5 capability of specifying transformations to and from dynamic common formats for all formats of records in all datatypes ofthe multiplicity of native repositories.
A more detailed embodiment illustrated in Figure 1 lb includes registering (1130), through an adapter manager (1044) in the data integration application (116), the 0 additional adapter (1104). A still further embodiment, shown in Figure lie, includes populating (1132), through a spider (1134), a catalog (202) in the data integration application (116) with identifying attributes (538) and proxy data (540) for all records of all datatypes in the additional native repository (1106).
5 Figure 12a illustrates an example embodiment of a native record format for a well. The illustrated native record describes a well in detail, including the identity ofthe well (1202) as a native well identification code, a standard universal well identifier known as a "UWI" code, well type, common name, operator identification, and a well number. The example native record shown in Figure 12a includes also the physical o location ofthe well (1204), its latitude and longitude, elevation, total depth, and plug depth. The example native record includes the geopolitical location ofthe well (1206), its field, basin, county, state, and country. The example native record includes the class and status history ofthe well (1208). The example native record as continued for illustration in Figure 12b includes a representation whether the well is 5 on or offshore (1210). The example native record of Figure 12b includes information regarding the drilling ofthe well (1212) including plot, survey, lease identification, drilling permit, completion date, borehole type, and cost.
Figure 13 illustrates an example embodiment of a native XML for a well. The o example embodiment of Figure 13 illustrates the dynamic common model by comparison with the set of native fields shown in Figures 12a and 12b. More specifically, the set of fields shown in Figure 13 is smaller than that of Figures 12a and 12b, because a human operator or programmer has chosen to present as a dynamic common model fewer fields than are actually present in the pertinent native repository, assuming that the examples of Figures 12a, 12b, and 13 are all related to 5 the same native repository. It is useful to note the simplicity of adding fields to the dynamic common model. In this case, suppose it were desired to add the native field on_off_shore (ref. 1210 on Figure 12b). Then a programmer would simply add one or more lines of code as part ofthe extract function in the adapter for the native repository to write into the XML file of Figure 13 the line 0
<on_off_shore>ON<on_off_shore> or
<on_off_shore>OFF<on_off_shore>
5 according to whether the well is located on shore or offshore. The mapping would need to be checked in the data integration application to be sure that it would correctly address the new field. In some embodiments, no change in the mapping would be needed. In mappings implemented as XML stylesheets, for example, default instructions are available for fields having similar names, so that "on_off_shore" in o some embodiments would already be covered for transformation by a default
. provision. In an embodiment not having a default that already covered the new field, the mapping is amended to cover the new field. That is, in such embodiments, mappings to and from a dynamic common format are amended to cover the new field. Either way, the process of adding the new field is simple in typical embodiments. 5
Figure 14a illustrates an example embodiment of a native record format for a well log curve. Figure 14b continues the illustration of an example embodiment of a native record format for a well log curve. Figures 14a and 14b together illustrate one way in which one native repository formats records having one datatype, survey curves for o wells. Native record formats naturally vary widely across various native databases and repositories. Figure 15 illustrates an example embodiment of a native mapping format in the form of native XML for a well log curve.
Figure 16 illustrates an example embodiment of a dynamic common format implemented in XML, in this case, a dynamic common format in XML for a well log 5 curve record. Figures 17a - 17i illustrate an example mapping implemented in the form of an XML stylesheet, described more specifically below.
More specifically, Figure 17a illustrates an embodiment of an XML stylesheet header, in the illustrated example embodiment directed to mapping dynamic common format o to catalog XML, and Figure 17b illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well datatype. Figure 17c continues the illustration of an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well datatype, and Figure 17d illustrates an example 5 embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well log datatype.
Figure 17e illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well log curve o datatype, and Figure 17f illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of formation tops datatype. Figure 17g illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well deviation survey datatype, while Figure 17h illustrates an example 5 embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for a record of well core datatype. Figure 17i illustrates an example embodiment of mapping through an XML stylesheet from dynamic common format to catalog XML for data elements having similar tag names in records of several datatypes. 0
Figure 18 illustrates an embodiment of a catalog record. It is useful to compare the number of data elements in the example catalog record to the number of data elements in the example native well record shown in Figures 12a and 12b. The example catalog record of Figure 18, which itself also apparently represents a well, contains substantially fewer data elements that the native record shown in Figures 12a and 12b. 5 Catalog records typically contains fewer data elements because the data elements included in the catalog are only the data elements useful for display to users in aid of selecting data for transfers for data integration, hi the particular example of Figure 18, such data elements include fields identifying the well (1804), fields representing the physical (1808) and geopolitical (1910) locations ofthe well, and fields indicating the o well's status, type, and depth (1806). In contrast, the native data elements shown in Figures 12a and 12b include all operational data relevant to well maintenance, operations, or analysis.
Turning now to Figure 19, an additional detailed embodiment is seen as a base class 5 diagram (1902) for an adapter. As shown in Figure 19, a typical embodiment of an adapter includes member methods for extracting (1904) data from a native repository, inserting (1906) data into a native repository, spidering (1908) data from a native repository in support of catalog entries, registering (1912) a native repository with a data integration application, optionally checking (1910) upon request current validity 0 of catalog entries in support of catalog integrity, handling (1914) remote procedure calls and data communications, fransforming (1916) native mapping format to dynamic common format, and constructing (1918) adapter class objects.
It is useful to note that the kind of spider() member method (1908) in an adapter, as 5 shown in Figure 19, is not a "spider" as that term has been used to describe processes or programs within a data integration application for maintaining catalogs. A spider() member method in an adapter is called by, or passed messages from, a spider program or process in a data integration application in the process of updating a catalog. A spider() member method in an adapter is called a "spider()," at some slight risk of o confusion, to commemorate that it is a method within an adapter that supports the overall procedure of spidering for a catalog in a data integration application. This specification, for clarity, attempts to consistently refer to spider() member methods in adapters as "spider() member methods in adapters."
Because adapters typically function in environments of intense data communications, 5 their message handling functions are important. Typical adapter class objects provide a message handling method such as the one mentioned at reference (1914) in Figure 19. A typical message handling method, for example, accepts two parameters, 'Message' and 'Data' of type string. These parameters in many embodiments are XML formatted strings. Typical embodiments implement a method return also as an 0 XML string. That is, a typical example of a declaration for a message handling method is:
string handleMessage(string Message, string Data);
5 The 'Message' parameter typically is used to identify one ofthe typical functions of adapters, such as the functions represented by the other member methods shown in Figure 19. The 'Data' parameter typically in such embodiments provides the data or parameters to be used by the function identified in the 'Message' parameter.
o From this description ofthe structure of typical example adapters, it can be seen that the process of developing an adapter typically is to have an adapter inherit from an adapter base class, hi many embodiments, then, the adapter class object subject to such inheritance is completed by writing code implementing the individual adapter functions or member methods so that they accept data from a 'Data' parameter in a 5 'handleMessageQ' method and perform the functions identified in a
'Message 'parameter. It is at this point that it is generally necessary to write code for adapter functions or member methods that is either written in the language of a database management system for a native repository or that calls application programming interfaces ("APIs") supported by a native repository or its database o management system. For adapters for native repositories not implemented as
'databases' as such under database management systems, it is typically necessary in developing adapter functions or member methods to write code that writes or reads directly to or from files systems at the level of a computer operating system.
More specifically, message handling functions or member methods within example embodiments functions according to the following pseudocode.
string handleMessage(String Command, String Data)
{ parse Command parameter string to obtain the command; if (command is "Extract")
{ parse Data parameter string for proxy data; for each proxy
{ read from native repository; transform to common format; add to return_string;
} re1nrn(return_string); } if(message is "Insert")
{ parse Data string for data to be inserted; transform from common to native ; insert into native repository; create proxy data for new inserts; concatenate proxy data into return_string; transform proxy data in return_string into common format; retxιm(retum_string);
} if(message is "Spider")
{ parse Data string for last spider date; read records meeting last spider date from native repository; concatenate the read records into return_string; transform from native to common format; return(return_string)
} } // end of Example Message Handler Pseudocode.
Alternative message handling functions or member methods within other example embodiments functions according to the following pseudocode.
string handleMessage(String Command, String Data)
{ parse Command parameter string to obtain the command; if (command is "Extract")
{ parse Data parameter string for proxy data; for each item of proxy data
{ concatenate(return_string, extract(proxy_data)) ;
// the extract() routine in this example includes transformation
// to common, typically through a call to a function such as
// transform() shown at reference (1916) on
Figure 19 } return(return_string) ; } if(message is "Insert")
{ parse Data string for data to be inserted; 5 transform from common to native ; insert(data_to_be_inserted); create proxy data for new inserts; concatenate(return_string, proxy_data) ; transform(return_string); // to dynamic common format o return(return_string) ;
} if(message is "Spider")
{ parse Data string for last spider date; 5 read records meeting last spider date from native repository; concatenate(return_string, readjrecords) ; fransform(return_string); // from native to dynamic common format o return(return_string)
} } // end of Example Message Handler Pseudocode.
As noted above in this specification, many embodiments utilize XML for mapping 5 and for data communications. The following pseudocode is an example of an "extract" call implemented through as XML string sent to a message handler in an adapter called "NativeAdapterl." In the example, both a "Message" parameter identifying the "exfract" function and a Data parameter are implemented in the same XML string: 0
<message> <recipient>NativeAdap'terl<recipient/>
<category/> <subcategory>extract<subcategory/>
<parameter>
<para> <type/> 5 <name>datatype</name>
<value>well</value> <operator/> </para> <para> <type/> 0 <name>NativeDTID</name>
<value>502</value> <operator/> </para> <para> <type/> 5 <name>project</name>
<value>lowcock</value> <operator/> </para> <para> <type/> o <name>interpreter</name>
<value>Bill Liang</value> <operator/> </para> </parameter> 5 <message>
A further exemplary use case illustrates some ofthe benefits of data integration with a dynamic common model. Consider a user of a first native repository having a first adapter interfacing the first native repository to a data integration application having a o dynamic common model integrating many native repositories. Consider a case in which the user determines that the first native repository is not fully integrated through the dynamic common model with a second native repository in that data transfers seem incomplete. That is, results of transfers from the second native repository to the first native repository exclude a data element that the user wishes to include in the first native repository. Such an exclusion occurs, for example, when a 5 user redefines an implementation of a datatype in the second repository but has not yet updated the pertinent mappings to and from dynamic common, or the mappings are updated erroneously. All that is required to repair this exclusion are two simple steps: (1) if the adapter for the second native repository does not presently extract and translate the excluded data element, or does so incorrectly, then the adapter for the o second native repository needs to be amended to include correct extraction and translation ofthe excluded data element into the second native mapping format ofthe second native repository, and (2) the mapping from the second native mapping format to dynamic common format is checked, and, if necessary, amended correctly to include the excluded data element. 5
The two-step procedure just outlined illustrates some ofthe benefits ofthe dynamic common model. In a data integration that includes many native repositories and many adapters, only two elements need to be checked or amended to correct the exemplary typical variation from full integration. To the extent that the mapping needs to be o amended, no programming is required, only text editing. To the extent that an adapter needs to be amended, only a small amount of programming is involved, just enough in the current example to add the one excluded data element. In this manner, a change that was nearly impossible to accomplish under the standard model of prior art is made almost trivial. In this manner is illustrated what is meant by the quality of full 5 union in the dynamic common model, that, despite the fact that human error or human choice may as a practical matter exclude data elements in a way that fails the definition of full union, nevertheless, there is within embodiments ofthe model itself means and methods to quickly and simply include any omitted data element of any datatype so that union of data elements among native repositories is readily capable of o achievement to any practical extent desired. It will be understood from the foregoing description that various modifications and changes maybe made in the preferred embodiment ofthe present invention without departing from its true spirit. It is intended that this description is for purposes of illustration only and should not be construed in a limiting sense. The scope of this invention should be limited only by the language of the following claims.

Claims

1. A method of data integration with respect to data stores in native repositories, the method implemented in conjunction with a data integration application coupled 5 for data communications through a multiplicity of adapters to a multiplicity of native repositories, the native repositories comprising native records having formats having datatypes supported by the native repositories, the method comprising the steps of:
o extracting through a first adapter from a first native repository a first native record having a first native format, the first native format belonging to a category of formats identified as a first datatype;
transforming, through the first adapter, the first native record having a first 5 native format to a first native record having dynamic common format;
transforming, through a second adapter, the first native record having dynamic common format to a first native record having second native format, the second native format belonging to a category of formats identified as the first o datatype; and
inserting, through the second adapter, the first native record having a second native format into a second native repository;
5 wherein the first adapter and the second adapter each are loosely coupled for data integration to the data integration application; and
wherein dynamic common format comprises a subset of a dynamic common model, the dynamic common model comprising mappings specifying o transformations to and from dynamic common formats for all native records having all datatypes supported in all native repositories coupled through adapters to the data integration application.
2. The method of claim 1 wherein the data integration application comprises a catalog, the method further comprising finding in a catalog at least one catalog
5 record containing identifying attributes that identify the first native record.
3. The method of claim 2 wherein the catalog record comprises a catalog key and the data integration application further comprises a transfer cart, the method further comprising posting the catalog key to the. transfer cart. 0
4. The method of claim 3 further comprising extracting, in dependence upon the posted catalog key, from the catalog through a catalog adapter proxy data for the first native record, wherein the proxy data comprises data representing the location ofthe first native record in the first native repository. 5
5. The method of claim 4 wherein extracting a first native record from a first native repository further comprises reading, in dependence upon the proxy data, through the first adapter, from the first native repository, the first native record having a first native format. 0
6. The method of claim 1 further comprising the steps of:
finding in a catalog, in dependence upon search parameters, catalog records having identifying attributes that match the search parameters, 5 wherein the identifying attributes for each catalog record include a catalog key for each catalog record, wherein the catalog comprises identifying attributes and proxy data for all native records in a multiplicity of native repositories, wherein the multiplicity of native repositories comprises the first native o repository, and wherein at least one found catalog record contains identifying attributes that identify the first native record;
marking for extraction the identifying attributes ofthe at least one found catalog record containing identifying attributes that identify the first native record;
posting from the marked identifying attributes a catalog key to a transfer cart in the data integration application; and
extracting, in dependence upon the posted catalog key, from the catalog through a catalog adapter proxy data for the first native record, wherein the proxy data comprises data representing the location ofthe first native record in the first native repository; and
wherein extracting a first native record from a first native repository further comprises reading, in dependence upon the proxy data, through the first adapter, from the first native repository, the first native record having a first native format.
7. The method of claim 1 , wherein transforming the format of the first native record having the first native format comprises the further steps of:
converting, through the first adapter, the first native record having the first native format to a first native record having a first native mapping format; retrieving from a mapping store a first mapping, wherein the first mapping specifies a data transformation from the first native mapping format to dynamic common format; and
translating, through a translator, in dependence upon the first mapping, the first native record having a first native mapping format to first native record having a dynamic common format.
8. The method of claim 3 wherein
the first mapping comprises a first XML stylesheet,
5 the translator comprises an XSL translator,
the first native mapping format is implemented in XML,
the dynamic common format is implemented in XML, 0 the first native record having a first native mapping format is a first XML document, and
the first native record having dynamic common format is a second XML s document.
9. The method of claim 1, wherein transforming the format ofthe first native record having dynamic common format comprises the further steps of:
o receiving, through the second adapter, the first native record having dynamic common format; retrieving from a mappings store a second mapping, wherein the second mapping specifies a data transformation from dynamic common format to a second native mapping format; 5 translating, through a translator, in dependence upon the second mapping, the first native record having dynamic common format, into a first native record having the second native mapping format; and
o converting, through the second adapter, the format ofthe first native record having the second native mapping format into a first native record having the second native format.
10. The method of claim 9 wherein
5 the second mapping comprises an XML stylesheet,
the translator is an XSL franslator,
the dynamic common format is implemented in XML, 0 the second native mapping format is implemented in XML,
the first native record having dynamic common format is a first XML document, and 5 the first native record having a second native mapping format comprises a second XML document.
11. The method of claim 1 wherein inserting through the second adapter comprises the 0 further steps of:
writing, through the second adapter, the first native record having a second native format into the second native repository, whereby is created a new second native record; 5 creating new proxy data and identifying attributes for the new second native record; and
inserting the new proxy data and identifying attributes through a catalog o adapter into a catalog; wherein the catalog comprises identifying attributes and proxy data for all native records in a multiplicity of native repositories, wherein the multiplicity of native repositories comprises the second native repository.
12. The method of claim 1, further comprising:
spidering through a spider proxy data and identifying attributes from a single native repository to a catalog, wherein the single native repository is coupled for data communications to an adapter, wherein the adapter is coupled for data communications to a data integration application, wherein the data integration application comprises the spider;
wherein the catalog comprises a database of identifying attributes and proxy data for all native records in a multiplicity of native repositories, wherein the multiplicity of native repositories comprises the single native repository.
13. The method of claim 12, wherein spidering further comprises the steps of:
providing to the spider an identification code for the single native repository;
retrieving from the single native repository all native records in the repository;
creating, in dependence upon the retrieved native records, proxy data and identifying attributes for all the retrieved native records;
writing to the catalog, through the catalog adapter, the created proxy data and identifying attributes.
14. The method of claim 12, wherein spidering further comprises the steps of:
providing to the spider an identification code for the single native repository; reading, in dependence upon the identification code for the single native repository, from a native repository registration list a last spider time for the native repository to be spidered;
retrieving from the single native repository native records having time stamps later than the last spider time;
creating, in dependence upon the retrieved native records, proxy data and identifying attributes for all the retrieved native records;
writing to the catalog, through the catalog adapter, the created proxy data and identifying attributes; and
updating the last spider time in the native repository registration list.
15. A method of creating a system implementing a dynamic common model, the system including a data integration application, the method comprising the steps of:
5 developing a first adapter for a first native repository, the first adapter being loosely coupled for data integration to the data integration application, the first native repository comprising first native records having first native formats, the first native formats belonging to categories of formats identified as o datatypes;
developing a second adapter for a second native repository, the second adapter being loosely coupled for data integration to the data integration application, the second native repository comprising second native records having second s native formats, the second native formats belonging to categories of formats identified as datatypes;
creating mappings specifying transformations of records: from the first native fonnat to a first dynamic common format, o from the first dynamic common format to the first native format, from the second native format to a second dynamic common format, and from the second dynamic common format to the second native fonnat;
providing a transformation service capable of transforming formats in 5 dependence upon the mappings, the transformation service coupled for data communications to the first adapter and to the second adapter;
wherein the data integration application is coupled for data communications to a multiplicity of native repositories through a multiplicity of adapters; 0 wherein the multiplicity of adapters includes the first adapter and the second adapter;
wherein all the adapters among the multiplicity of adapters are loosely coupled for data integration to the data integration application;
5 wherein the data integration application comprises the transformation service; and
wherein the dynamic common format is a subset of a dynamic common model, i o the dynamic common model having the capability of specifying transformations to and from dynamic common format for all formats of records in all datatypes ofthe multiplicity of native repositories.
16. The method of claim 15 wherein the multiplicity of native repositories consists of 15 only the first native repository and the second native repository.
17. The method of claim 15 further comprising registering, through an adapter manager in the data integration application, the adapters for the first native repository and the second native repository.
20
18. The method of claim 15 further comprising populating, through spiders, a catalog in the data integration application with identifying attributes and proxy data for all records of all datatypes in the native first native repository and the second native repository.
25
9. A method of integrating an additional native repository with a system implementing a dynamic common model, the system including a data integration application, the method comprising the steps of:
developing an additional adapter for the additional native repository, the additional adapter being loosely coupled for data integration to the data integration application, the additional native repository comprising additional native records having at least one additional native format, the additional native format belonging to at least one category of formats identified as a datatype;
creating mappings specifying transformations of records: from the at least one additional native format to an additional dynamic common format, and from the additional dynamic common format to the at least one additional native format;
wherein the data integration application is coupled for data communications to a multiplicity of native repositories through a multiplicity of adapters;
wherein the multiplicity of adapters includes the additional adapter;
wherein all the adapters among the multiplicity of adapters are loosely coupled for data integration to the data integration application;
wherein the data integration application comprises a fransformation service capable of transforming formats in dependence upon the mappings, the transformation service coupled for data communications to all the adapters among the multiplicity of adapters;
wherein the dynamic common format is a subset of a dynamic common model, the dynamic common model having the capability of specifying transformations to and from dynamic common format for all formats of records in all datatypes ofthe multiplicity of native repositories.
20. The method of claim 19 further comprising registering, through an adapter manager in the data integration application, the additional adapter.
21. The method of claim 19 further comprising populating, through a spider, a catalog in the data integration application with identifying attributes and proxy data for all records of all datatypes in the additional native repository.
22. A system for data integration with respect to data stores in native repositories, the system implemented in conjunction with a data integration application coupled for data communications through a multiplicity of adapters to a multiplicity of native repositories, the native repositories comprising native records having formats having datatypes supported by the native repositories, the system comprising:
means for extracting tlirough a first adapter from a first native repository a first native record having a first native format, the first native format belonging to a category of formats identified as a first datatype;
means for fransforming, through the first adapter, the first native record having a first native format to a first native record having dynamic common format;
means for transforming, through a second adapter, the first native record having dynamic common format to a first native record having second native format, the second native format belonging to a category of formats identified as the first datatype; and
means for inserting, through the second adapter, the first native record having a second native format into a second native repository;
wherein the first adapter and the second adapter each are loosely coupled for data integration to the data integration application; and
wherein dynamic common format comprises a subset of a dynamic common model, the dynamic common model comprising mappings specifying transformations to and from dynamic common formats for all native records having all datatypes supported in all native repositories coupled through adapters to the data integration application.
23. The system of claim 22 wherein the data integration application comprises a catalog, the system further comprising means for finding in a catalog at least one catalog record containing identifying attributes that identify the first native record.
24. The system of claim 23 wherein the catalog record comprises a catalog key and the 5 data integration application further comprises a transfer cart, the system further comprising means for posting the catalog key to the transfer cart.
25. The system of claim 24 further comprising means for extracting, in dependence upon the posted catalog key, from the catalog through a catalog adapter proxy data o for the first native record, wherein the proxy data comprises data representing the location ofthe first native record in the first native repository.
26. The system of claim 25 wherein means for exfracting a first native record from a first native repository further comprises means for reading, in dependence upon 5 the proxy data, through the first adapter, from the first native repository, the first native record having a first native format.
27. The system of claim 22 further comprising:
o means for finding in a catalog, in dependence upon search parameters, catalog records having identifying attributes that match the search parameters, wherein the identifying attributes for each catalog record include a catalog key for each catalog record, wherein the catalog comprises identifying attributes and proxy data for all 5 native records in a multiplicity of native repositories, wherein the multiplicity of native repositories comprises the first native repository, and wherein at least one found catalog record contains identifying attributes that identify the first native record; 0 means for marking for extraction the identifying attributes ofthe at least one found catalog record containing identifying attributes that identify the first native record;
means for posting from the marked identifying attributes a catalog key to a 5 transfer cart in the data integration application; and
means for extracting, in dependence upon the posted catalog key, from the catalog through a catalog adapter proxy data for the first native record, wherein the proxy data comprises data representing the location ofthe first native 0 record in the first native repository;
wherein means for extracting a first native record from a first native repository further comprises means for reading, in dependence upon the proxy data, through the first adapter, from the first native repository, the first native record s having a first native format.
28. The system of claim 22, wherein means for transforming the format ofthe first native record having the first native format further comprises:
o means for converting, through the first adapter, the first native record having the first native format to a first native record having a first native mapping format;
means for retrieving from a mapping store a first mapping, wherein the first 5 mapping specifies a data transformation from the first native mapping format to dynamic common format; and
means for translating, through a franslator, in dependence upon the first mapping, the first native record having a first native mapping format to first o native record having a dynamic common format.
29. The system of claim 28 wherein
the first mapping comprises a first XML stylesheet,
5 the translator comprises an XSL translator,
the first native mapping format is implemented in XML,
the dynamic common format is implemented in XML, 0 the first native record having a first native mapping format is a first XML document, and
the first native record having dynamic common format is a second XML s document.
30. The system of claim 22, wherein means for transforming the format ofthe first native record having dynamic common format further comprises:
o means for receiving, through the second adapter, the first native record having dynamic common format;
means for retrieving from a mappings store a second mapping, wherein the second mapping specifies a data transformation from dynamic common format 5 to a second native mapping format;
means for translating, through a translator, in dependence upon the second mapping, the first native record having dynamic common format, into a first native record having the second native mapping format; and 0 means for converting, through the second adapter, the format ofthe first native record having the second native mapping format into a first native record having the second native format.
31. The system of claim 30 wherein
the second mapping comprises an XML stylesheet,
the franslator is an XSL translator,
the dynamic common format is implemented in XML,
the second native mapping format is implemented in XML,
the first native record having dynamic common format is a first XML document, and
the first native record having a second native mapping format comprises a second XML document.
32. The system of claim 22 wherein means for inserting through the second adapter further comprises:
means for writing, through the second adapter, the first native record having a second native format into the second native repository, wherein the first native record having second native format comprises a new second native record;
means for creating new proxy data and identifying attributes for the new second native record; and
means for inserting the new proxy data and identifying attributes through a catalog adapter into a catalog;
wherein the catalog comprises identifying attributes and proxy data for all native records in a multiplicity of native repositories, wherein the multiplicity of native repositories comprises the second native repository.
33. The system of claim 22, further comprising:
means for spidering through a spider proxy data and identifying attributes from a single native repository to a catalog, wherein the single native repository is coupled for data communications to an adapter, wherein the adapter is coupled for data communications to a data integration application, wherein the data integration application comprises the spider;
wherein the catalog comprises a database of identifying attributes and proxy data for all native records in a multiplicity of native repositories, wherein the multiplicity of native repositories comprises the single native repository.
34. The system of claim 33, wherein means for spidering further comprises: means for providing to the spider an identification code for the single native repository;
means for retrieving from the single native repository all native records in the 5 repository;
means for creating, in dependence upon the retrieved native records, proxy data and identifying attributes for all the retrieved native records;
0 means for writing to the catalog, through the catalog adapter, the created proxy data and identifying attributes.
35. The system of claim 33, wherein means for spidering further comprises:
5 means for providing to the spider an identification code for the single native repository;
means for reading, in dependence upon the identification code for the single native repository, from a native repository registration list a last spider time for o the native repository to be spidered;
means for retrieving from the single native repository native records having time stamps later than the last spider time;
5 means for creating, in dependence upon the retrieved native records, proxy data and identifying attributes for all the retrieved native records;
means for writing to the catalog, through the catalog adapter, the created proxy data and identifying attributes; and 0 means for updating the last spider time in the native repository registration list.
36. A computer program product for data integration of a multiplicity of native repositories coupled for data communications through a multiplicity of adapters to at least one data integration application, the computer program product including the data integration application, the native repositories comprising native records 5 having formats having datatypes supported by the native repositories, the computer program product comprising:
a recording medium;
o means, recorded on the recording medium, for extracting through a first adapter from a first native repository a first native record having a first native format, the first native format belonging to a category of formats identified as a first datatype;
5 means, recorded on the recording medium, for transforming, through the first adapter, the first native record having a first native format to a first native record having dynamic common format;
means, recorded on the recording medium, for transforming, through a second o adapter, the first native record having dynamic common format to a first native record having second native format, the second native format belonging to a category of formats identified as the first datatype; and
means, recorded on the recording medium, for inserting, through the second 5 adapter, the first native record having a second native format into a second native repository;
wherein the first adapter and the second adapter each are loosely coupled for data integration to the data integration application; and 0 wherein dynamic common format comprises a subset of a dynamic common model, the dynamic common model comprising mappings specifying transformations to and from dynamic common formats for all native records having all datatypes supported in all native repositories coupled through adapters to the data integration application.
5
37. The computer program product of claim 36 wherein the data integration application comprises a catalog, the computer program product further comprising means, recorded on the recording medium, for finding in a catalog at least one catalog record containing identifying attributes that identify the first native record. 0
38. The computer program product of claim 37 wherein the catalog record comprises a catalog key and the data integration application further comprises a transfer cart, the computer program product further comprising means, recorded on the recording medium, for posting the catalog key to the transfer cart. 5
39. The computer program product of claim 38 further comprising means, recorded on the recording medium, for extracting, in dependence upon the posted catalog key, from the catalog through a catalog adapter proxy data for the first native record, wherein the proxy data comprises data representing the location ofthe first native o record in the first native repository.
40. The computer program product of claim 39 wherein means for extracting a first native record from a first native repository further comprises means, recorded on the recording medium, for reading, in dependence upon the proxy data, through 5 the first adapter, from the first native repository, the first native record having a first native format.
41. The computer program product of claim 36 further comprising:
o means, recorded on the recording medium, for finding in a catalog, in dependence upon search parameters, catalog records having identifying attributes that match the search parameters, wherein the identifying attributes for each catalog record include a catalog key for each catalog record, wherein the catalog comprises identifying attributes and proxy data for all 5 native records in a multiplicity of native repositories, wherein the multiplicity of native repositories comprises the first native repository, and wherein at least one found catalog record contains identifying attributes that identify the first native record; 0 means, recorded on the recording medium, for marking for extraction the identifying attributes ofthe at least one found catalog record containing identifying attributes that identify the first native record;
5 means, recorded on the recording medium, for posting from the marked identifying attributes a catalog key to a transfer cart in the data integration application; and
means, recorded on the recording medium, for extracting, in dependence upon o the posted catalog key, from the catalog through a catalog adapter proxy data for the first native record, wherein the proxy data comprises data representing the location ofthe first native record in the first native repository;
wherein means for extracting a first native record from a first native repository 5 further comprises means, recorded on the recording medium, for reading, in dependence upon the proxy data, through the first adapter, from the first native repository, the first native record having a first native format.
42. The computer program product of claim 36, wherein means for transforming the o format ofthe first native record having the first native format further comprises: means, recorded on the recording medium, for converting, through the first adapter, the first native record having the first native format to a first native record having a first native mapping format;
5 means, recorded on the recording medium, for retrieving from a mapping store a first mapping, wherein the first mapping specifies a data transformation from the first native mapping format to dynamic common format; and
means, recorded on the recording medium, for translating, through a translator, 0 in dependence upon the first mapping, the first native record having a first native mapping format to first native record having a dynamic common format.
43. The computer program product of claim 42 wherein 5 the first mapping comprises a first XML stylesheet,
the translator comprises an XSL translator,
o the first native mapping format is implemented in XML,
the dynamic common format is implemented in XML,
the first native record having a first native mapping format is a first XML 5 document, and
the first native record having dynamic common format is a second XML document.
o 44. The computer program product of claim 36, wherein means for transforming the format ofthe first native record having dynamic common format further comprises:
means, recorded on the recording medium, for receiving, through the second adapter, the first native record having dynamic common format;
5 means, recorded on the recording medium, for retrieving from a mappings store a second mapping, wherein the second mapping specifies a data transformation from dynamic common format to a second native mapping format; 0 means, recorded on the recording medium, for translating, through a translator, in dependence upon the second mapping, the first native record having dynamic common format, into a first native record having the second native mapping format; and 5 means, recorded on the recording medium, for converting, through the second adapter, the format ofthe first native record having the second native mapping format into a first native record having the second native format.
0
45. The computer program product of claim 44 wherein
the second mapping comprises an XML stylesheet, 5 the translator is an XSL translator,
the dynamic common format is implemented in XML,
o the second native mapping format is implemented in XML, the first native record having dynamic common format is a first XML document, and
the first native record having a second native mapping format comprises a 5 second XML document.
46. The computer program product of claim 36 wherein means for inserting through the second adapter further comprises:
o means, recorded on the recording medium, for writing, through the second adapter, the first native record having a second native format into the second native repository, wherein the first native record having second native format comprises a new second native record;
5 means, recorded on the recording medium, for creating new proxy data and identifying attributes for the new second native record; and
means, recorded on the recording medium, for inserting the new proxy data and identifying attributes through a catalog adapter into a catalog; 0 wherein the catalog comprises identifying attributes and proxy data for all native records in a multiplicity of native repositories, wherein the multiphcity of native repositories comprises the second native repository.
5 47. The computer program product of claim 36, further comprising:
means, recorded on the recording medium, for spidering tlirough a spider proxy data and identifying attributes from a single native repository to a catalog, wherein the single native repository is coupled for data o communications to an adapter, wherein the adapter is coupled for data commumcations to a data integration application, wherein the data integration application comprises the spider;
wherein the catalog comprises a database of identifying attributes and proxy data for all native records in a multiplicity of native repositories, wherein the 5 multiplicity of native repositories comprises the single native repository.
48. The computer program product of claim 47, wherein means for spidering further comprises:
0 means, recorded on the recording medium, for providing to the spider an identification code for the single native repository;
means, recorded on the recording medium, for retrieving from the single native repository all native records in the repository; 5 means, recorded on the recording medium, for creating, in dependence upon the retrieved native records, proxy data and identifying attributes for all the retrieved native records;
o means, recorded on the recording medium, for writing to the catalog, through the catalog adapter, the created proxy data and identifying attributes.
49. The computer program product of claim 47, wherein means for spidering further comprises: 5 means, recorded on the recording medium, for providing to the spider an identification code for the single native repository;
means, recorded on the recording medium, for reading, in dependence upon o the identification code for the single native repository, from a native repository registration list a last spider time for the native repository to be spidered; means, recorded on the recording medium, for retrieving from the single native repository native records having time stamps later than the last spider time;
means, recorded on the recording medium, for creating, in dependence upon the retrieved native records, proxy data and identifying attributes for all the retrieved native records;
means, recorded on the recording medium, for writing to the catalog, through the catalog adapter, the created proxy data and identifying attributes; and
means, recorded on the recording medium, for updating the last spider time in the native repository registration list.
PCT/US2002/013491 2001-05-07 2002-05-01 Method, system, and product for data integration through a dynamic WO2002091240A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002303540A AU2002303540A1 (en) 2001-05-07 2002-05-01 Method, system, and product for data integration through a dynamic

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/850,317 US6792431B2 (en) 2001-05-07 2001-05-07 Method, system, and product for data integration through a dynamic common model
US09/850,317 2001-05-07

Publications (2)

Publication Number Publication Date
WO2002091240A2 true WO2002091240A2 (en) 2002-11-14
WO2002091240A3 WO2002091240A3 (en) 2007-10-18

Family

ID=25307806

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2002/013491 WO2002091240A2 (en) 2001-05-07 2002-05-01 Method, system, and product for data integration through a dynamic

Country Status (3)

Country Link
US (2) US6792431B2 (en)
AU (1) AU2002303540A1 (en)
WO (1) WO2002091240A2 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004021185A2 (en) * 2002-08-29 2004-03-11 Sap Aktiengesellschaft Isolated mapping point
WO2004072755A2 (en) * 2003-02-13 2004-08-26 Sap Aktiengesellschaft Message translation using adaptive agents
US7269665B2 (en) 2002-08-29 2007-09-11 Sap Ag Isolated mapping point
US7277940B2 (en) 2002-08-29 2007-10-02 Sap Ag Managing uneven authorizations in a computer data exchange
US7457792B2 (en) 2004-10-14 2008-11-25 Sap Ag Customizing transaction processing in a computer application by using pre-defined functions
US7457793B2 (en) 2004-10-14 2008-11-25 Sap Ag Investigating execution of a customized transaction process in a computer application
US7457794B2 (en) 2004-10-14 2008-11-25 Sap Ag Searching for customized processing rules for a computer application
US7461091B2 (en) 2005-06-09 2008-12-02 Sap Aktiengesellschaft Controlling data transition between business processes in a computer application
US7707432B2 (en) 2004-08-13 2010-04-27 Sap Ag Enabling communication between an application program and services used by the application program
US7756808B2 (en) 2004-10-14 2010-07-13 Sap Ag Apparatus and product of manufacture for using condition data structures separately from rule data structures in business transactions
US7761396B2 (en) 2004-10-14 2010-07-20 Sap Ag Apparatus and product of manufacture for adaptive business transaction rule structures
US8739124B2 (en) 2012-06-27 2014-05-27 Sap Ag Configuring integration capabilities for system integration

Families Citing this family (135)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1384454A (en) * 2001-05-01 2002-12-11 株式会社东芝 Information generalizing system and method
WO2002093430A1 (en) * 2001-05-14 2002-11-21 Infomove, Inc. Method and apparatus for implementing a data management system using a metadata specification
AU2002320172A1 (en) * 2001-06-29 2003-03-03 Vitria Technology, Inc. Method and apparatus for instance based data transformation
JP2003067185A (en) * 2001-08-14 2003-03-07 Internatl Business Mach Corp <Ibm> Application editing device and data processing method and program
US20030074358A1 (en) * 2001-09-24 2003-04-17 Siamak Sarbaz Integration, management and processing of network data from disparate sources
US7117220B2 (en) 2001-10-15 2006-10-03 Vanderdrift Richard William System and method for non-programmers to dynamically manage multiple sets of XML document data
US7644014B2 (en) * 2001-10-17 2010-01-05 Sun Microsystems, Inc. Document exchange framework for automated extensible markup language data in an e-procurement system and method
US20030131144A1 (en) * 2002-01-10 2003-07-10 Ncr Corporation Data wedge
WO2004107094A2 (en) * 2002-01-25 2004-12-09 Seurat Company Data integration system and method for presenting 360° customer views
US7343585B1 (en) * 2002-01-30 2008-03-11 Oracle International Corporation Operator approach for generic dataflow designs
US7428531B2 (en) * 2002-02-06 2008-09-23 Jpmorgan Chase Bank, N.A. Customer information management system and method
US6993717B2 (en) * 2002-02-12 2006-01-31 Siemens Medical Solutions Health Services Inc. Data transformation system
US7350698B2 (en) * 2002-03-15 2008-04-01 Sun Microsystems, Inc. Line item approval processing in an electronic purchasing system and method
US7257647B2 (en) * 2002-06-12 2007-08-14 Seapass Solutions Inc. Development environment platform using message type mapping for converting message and providing information between systems having different data structures
US7089261B2 (en) * 2002-07-25 2006-08-08 International Business Machines Corporation Programmable use of data extracted from common presentation files
US8538840B2 (en) * 2002-12-20 2013-09-17 Siebel Systems, Inc. Financial services data model
US7856454B2 (en) 2002-12-20 2010-12-21 Siebel Systems, Inc. Data model for business relationships
US7191450B2 (en) 2003-02-06 2007-03-13 International Business Machines Corporation Data-driven application integration adapters
US7895589B2 (en) * 2003-02-26 2011-02-22 International Business Machines Corporation Dynamic data-driven application integration adapters
US8392298B2 (en) * 2003-03-04 2013-03-05 Siebel Systems, Inc. Invoice adjustment data object for a common data object format
US8473399B2 (en) * 2003-03-04 2013-06-25 Siebel Systems, Inc. Invoice data object for a common data object format
US7188345B2 (en) 2003-03-19 2007-03-06 International Business Machines Corporation Installation of data-driven business integration adapters
WO2004084083A1 (en) * 2003-03-19 2004-09-30 Unisys Corporation Server consolidation analysis
US8489470B2 (en) * 2003-03-24 2013-07-16 Siebel Systems, Inc. Inventory location common object
WO2004086198A2 (en) 2003-03-24 2004-10-07 Siebel Systems, Inc. Common common object
US7912932B2 (en) * 2003-03-24 2011-03-22 Siebel Systems, Inc. Service request common object
US9704120B2 (en) * 2003-03-24 2017-07-11 Oracle International Corporation Inventory balance common object
US20070208577A1 (en) * 2003-03-24 2007-09-06 Leon Maria T B Position common object
US7904340B2 (en) * 2003-03-24 2011-03-08 Siebel Systems, Inc. Methods and computer-readable medium for defining a product model
US8510179B2 (en) * 2003-03-24 2013-08-13 Siebel Systems, Inc. Inventory transaction common object
US8762415B2 (en) * 2003-03-25 2014-06-24 Siebel Systems, Inc. Modeling of order data
US20070226037A1 (en) * 2003-03-25 2007-09-27 Shailendra Garg Modeling of opportunity data
EP1618495A1 (en) * 2003-04-28 2006-01-25 International Business Machines Corporation Automatic data consolidation
US20100145752A1 (en) * 2004-05-11 2010-06-10 Davis James E Adaptable workflow and communications system
GB2405062A (en) * 2003-06-13 2005-02-16 Brian Bolam Protocol conversion via intermediate protocol with message storage and verification
US7788214B2 (en) * 2003-07-11 2010-08-31 Computer Associates International, Inc. XML configuration technique and graphical user interface (GUI) for managing user data in a plurality of databases
US7926064B2 (en) * 2003-07-11 2011-04-12 Computer Associates Think, Inc. Business transformation logic engine and handlers
US9317570B2 (en) * 2003-07-11 2016-04-19 Ca, Inc. System and method for managing user data in a plurality of databases
US7873684B2 (en) * 2003-08-14 2011-01-18 Oracle International Corporation Automatic and dynamic provisioning of databases
US20050108206A1 (en) * 2003-11-14 2005-05-19 Microsoft Corporation System and method for object-oriented interaction with heterogeneous data stores
US7512599B2 (en) 2004-01-13 2009-03-31 Oracle International Corporation Query duration types
US7689542B2 (en) * 2004-01-13 2010-03-30 Oracle International Corporation Dynamic return type generation in a database system
WO2005072114A2 (en) * 2004-01-19 2005-08-11 Pantero Corporation Enterprise interoperability using shared data services
US8311974B2 (en) * 2004-02-20 2012-11-13 Oracle International Corporation Modularized extraction, transformation, and loading for a database
US7934012B2 (en) * 2004-03-12 2011-04-26 Sap Ag Automatic translation code generation
US8782405B2 (en) 2004-03-18 2014-07-15 International Business Machines Corporation Providing transaction-level security
US20050216525A1 (en) * 2004-03-26 2005-09-29 Andre Wachholz-Prill Defining target group for marketing campaign
US7222128B2 (en) * 2004-03-29 2007-05-22 Pitney Bowes Inc. Method for updating and preserving data when performing a software upgrade
US7693268B2 (en) * 2004-04-02 2010-04-06 Computer Associates Think, Inc. Methods and apparatus for processing and display of voice data
US8554806B2 (en) * 2004-05-14 2013-10-08 Oracle International Corporation Cross platform transportable tablespaces
US8112296B2 (en) * 2004-05-21 2012-02-07 Siebel Systems, Inc. Modeling of job profile data
US7617239B2 (en) * 2004-05-21 2009-11-10 Siebel Systems, Inc. Modeling of activity data
US7865390B2 (en) * 2004-05-21 2011-01-04 Siebel Systems, Inc. Modeling of employee performance result data
US7827205B2 (en) 2004-05-27 2010-11-02 International Business Machines Corporation Bi-directional data mapping tool
US20060020477A1 (en) * 2004-07-26 2006-01-26 Ford Motor Company Vehicle sales and service data integration system and method
US8903919B2 (en) * 2004-09-14 2014-12-02 International Business Machines Corporation Dynamic integration of application input and output in an instant messaging/chat session
US7739670B2 (en) * 2004-09-16 2010-06-15 Sap Ag System and method for transforming information between data formats
US8099736B2 (en) * 2004-10-14 2012-01-17 The Trizetto Group, Inc. Systems and methods providing intelligent routing of data between software systems
US8620816B2 (en) * 2004-10-14 2013-12-31 Google Inc. Information vault, data format conversion services system and method
US7694284B2 (en) * 2004-11-30 2010-04-06 International Business Machines Corporation Shareable, bidirectional mechanism for conversion between object model and XML
US7877543B2 (en) * 2004-12-03 2011-01-25 Hewlett-Packard Development Company, L.P. System and method for writing data and a time value to an addressable unit of a removable storage medium
US7685510B2 (en) * 2004-12-23 2010-03-23 Sap Ag System and method for grouping data
US20060174170A1 (en) * 2005-01-28 2006-08-03 Peter Garland Integrated reporting of data
JP2008538028A (en) * 2005-03-30 2008-10-02 ウェルチ アレン, インコーポレイテッド Communication of information between multiple network elements
US7650335B2 (en) * 2005-04-20 2010-01-19 The Board Of Trustees Of The University Of Illinois High-level database management system
US8666964B1 (en) 2005-04-25 2014-03-04 Google Inc. Managing items in crawl schedule
US8386459B1 (en) 2005-04-25 2013-02-26 Google Inc. Scheduling a recrawl
US20060271582A1 (en) * 2005-05-25 2006-11-30 Caterpillar Inc. System and method for analyzing raw data files
US20060282470A1 (en) * 2005-06-10 2006-12-14 Hong-Lee Yu Determining compliance of a database architecture to an enterprise data standard
US9792351B2 (en) * 2005-06-10 2017-10-17 International Business Machines Corporation Tolerant and extensible discovery of relationships in data using structural information and data analysis
US7827562B1 (en) 2005-06-16 2010-11-02 The Trizetto Group, Inc. System and method for flexible publishing and consumption of data between disparate applications
US7509315B1 (en) 2005-06-24 2009-03-24 Google Inc. Managing URLs
US8122346B2 (en) * 2005-08-05 2012-02-21 Sap Ag Methods and systems for merging software-level objects with document-level objects in a document publishing environment
US7603364B2 (en) * 2005-10-25 2009-10-13 Ods-Petrodata, Inc. System for acquiring rights to lease a floating production system
US7599943B2 (en) * 2005-10-25 2009-10-06 Ods-Petrodata, Inc. System for acquiring rights to lease a drilling rig
US7603295B2 (en) * 2005-10-25 2009-10-13 Ods-Petrodata, Inc. Method for acquiring rights to lease a drilling rig
US7599940B2 (en) * 2005-10-25 2009-10-06 Ods-Petrodata, Inc. System for acquiring rights to lease an offshore support vessel
US7992132B2 (en) * 2005-11-10 2011-08-02 Computer Associates Think, Inc. Server side application integration framework
WO2007127422A2 (en) * 2006-04-29 2007-11-08 724 Solutions Software Inc. Platform for interoperability
US8327024B2 (en) * 2006-04-29 2012-12-04 724 Solutions Software, Inc. System and method for SMS/IP interoperability
WO2007130312A2 (en) * 2006-04-29 2007-11-15 724 Solutions Software Inc. Channel selection/translation based on user-preference
US20080005144A1 (en) * 2006-05-23 2008-01-03 Seapass Solutions Inc. Apparatus and method for transferring data between incompatible computer systems
US8584139B2 (en) * 2006-05-23 2013-11-12 Seapass Solutions Inc. Apparatus and method for connecting incompatible computer systems
US7702747B1 (en) * 2006-05-31 2010-04-20 Oracle America, Inc. Identity synchronization across multiple domains
US7747569B2 (en) * 2006-09-22 2010-06-29 Raytheon Company Systems, methods, and language for selection and retrieval of information from databases
AU2007307196B2 (en) 2006-10-04 2012-02-09 Welch Allyn, Inc. Dynamic medical object information base
WO2008054948A1 (en) * 2006-10-31 2008-05-08 Nielsen Media Research, Inc. Methods and systems to retrieve information from data sources
US8909599B2 (en) * 2006-11-16 2014-12-09 Oracle International Corporation Efficient migration of binary XML across databases
US8843881B2 (en) * 2007-01-12 2014-09-23 Microsoft Corporation Transporting and processing foreign data
US7865459B2 (en) * 2007-02-06 2011-01-04 Sap Ag Integration of a service-oriented transaction system with an information storage, access and analysis system
EP1995667A1 (en) * 2007-05-25 2008-11-26 Software Ag Method and system for processing a non-XML document for storage in a XML database
US20080294604A1 (en) * 2007-05-25 2008-11-27 International Business Machines Xquery join predicate selectivity estimation
US8060568B2 (en) * 2007-05-29 2011-11-15 SAP Portal Israel Ltd. Real time messaging framework hub to intercept and retransmit messages for a messaging facility
US8103704B2 (en) * 2007-07-31 2012-01-24 ePrentise, LLC Method for database consolidation and database separation
US8719335B2 (en) * 2007-08-21 2014-05-06 Microsoft Corporation Framework for development of integration adapters that surface non-static, type-safe service contracts to LOB systems
US8140501B2 (en) * 2007-11-28 2012-03-20 International Business Machines Corporation Attribute presenter of object attributes and method for presenting object attributes using the attribute presenter
GB2456184A (en) * 2008-01-07 2009-07-08 Cvon Innovations Ltd System for selecting an information provider or service provider
EP2266021A4 (en) 2008-04-04 2014-01-01 Landmark Graphics Corp Systems and methods for correlating meta-data model representations and asset-logic model representations
US10552391B2 (en) * 2008-04-04 2020-02-04 Landmark Graphics Corporation Systems and methods for real time data management in a collaborative environment
US7991915B2 (en) * 2008-05-05 2011-08-02 Sentilla Corporation Software platform for radio network
US7970726B2 (en) * 2008-05-09 2011-06-28 Hewlett-Packard Development Company, L.P. Apparatus, and an associated method, for quantifying a quality of a use case
FR2931613B1 (en) * 2008-05-22 2010-08-20 Inst Nat Rech Inf Automat DEVICE AND METHOD FOR INTEGRITY VERIFICATION OF PHYSICAL OBJECTS
US20100161344A1 (en) * 2008-12-12 2010-06-24 Dyson David S Methods and apparatus to prepare report requests
US8214566B2 (en) * 2009-07-24 2012-07-03 Welch Allyn, Inc. Configurable health-care equipment apparatus
JP5375413B2 (en) 2009-07-30 2013-12-25 富士通株式会社 Data conversion apparatus, data conversion method, and data conversion program
US8266029B2 (en) * 2009-09-04 2012-09-11 Hartford Fire Insurance Company System and method for managing data relating to investments from a variety of sources
US8907951B2 (en) * 2010-01-27 2014-12-09 Pason Systems Corp. Method, system and computer-readable medium for providing a user interface for predicting the physical attributes of a proposed well
US9715666B2 (en) 2010-06-30 2017-07-25 International Business Machines Corporation Supply chain management using mobile devices
USD635681S1 (en) 2010-07-22 2011-04-05 Welch Allyn, Inc. Patient-monitor housing
USD671222S1 (en) 2010-07-22 2012-11-20 Welch Allyn, Inc. Module for a patient-monitor or the like
USD632397S1 (en) 2010-07-22 2011-02-08 Welch Allyn, Inc. Portions of a patient-monitor housing
EP2469421A1 (en) * 2010-12-23 2012-06-27 British Telecommunications Public Limited Company Method and apparatus for processing electronic data
US9229603B2 (en) * 2010-12-28 2016-01-05 Schlumberger Technology Corporation Methods, systems, apparatuses, and computer-readable mediums for provisioning petrotechnical workflows in a cloud computing environment
US20130218875A1 (en) * 2011-02-03 2013-08-22 B. Victor Carriri Table-driven enterprise-wide data integration
US20120271779A1 (en) * 2011-04-19 2012-10-25 Cactus Commerce Inc. Unifying domain model for internet business systems
US10318635B2 (en) 2012-09-28 2019-06-11 Cerner Innovation, Inc. Automated mapping of service codes in healthcare systems
US10403391B2 (en) 2012-09-28 2019-09-03 Cerner Health Services, Inc. Automated mapping of service codes in healthcare systems
US10565315B2 (en) 2012-09-28 2020-02-18 Cerner Innovation, Inc. Automated mapping of service codes in healthcare systems
US9672228B2 (en) 2013-03-11 2017-06-06 Honeywell International Inc. Methods and systems for creating a complex user interface adapting a generic database software application to individually manage subset domains in complex database
US9898537B2 (en) 2013-03-14 2018-02-20 Open Text Sa Ulc Systems, methods and computer program products for information management across disparate information systems
US10073956B2 (en) 2013-03-14 2018-09-11 Open Text Sa Ulc Integration services systems, methods and computer program products for ECM-independent ETL tools
CA2847330C (en) 2013-03-14 2022-06-21 Open Text S.A. Systems, methods and computer program products for information integration across disparate information systems
US9569469B2 (en) 2013-07-26 2017-02-14 Honeywell International Inc. Methods and systems for providing intuitive direction for populating complex model content into a database
US9613072B2 (en) * 2014-10-29 2017-04-04 Bank Of America Corporation Cross platform data validation utility
US9690834B2 (en) * 2014-11-27 2017-06-27 Siemens Product Lifecycle Management Software Inc. Representation, comparison, and troubleshooting of native data between environments
US10275476B2 (en) * 2014-12-22 2019-04-30 Verizon Patent And Licensing Inc. Machine to machine data aggregator
US10548185B2 (en) * 2017-06-23 2020-01-28 At&T Mobility Ii Llc Facilitating integrated management of connected assets that utilize different technologies and that are located across disparate wireless communications networks
CN108596415B (en) 2017-12-15 2023-11-24 创新先进技术有限公司 Model integration method and device
US11663414B2 (en) 2018-02-20 2023-05-30 Fluence Bioengineering, Inc. Controlled agricultural systems and methods of managing agricultural systems
US10496557B1 (en) * 2018-06-28 2019-12-03 Kahua, Inc. Transport protocol for disparate entity applications
US11016756B1 (en) 2018-06-28 2021-05-25 Kahua, Inc. Application repository protocol for disparate entity applications
WO2020047003A1 (en) * 2018-08-27 2020-03-05 Tomizuka John Internet of things designer for an authoring tool in virtual and augmented reality environments
EP3924808A4 (en) * 2019-02-14 2022-10-26 Fluence Bioengineering, Inc. Controlled agricultural systems and methods of managing agricultural systems
US11256709B2 (en) * 2019-08-15 2022-02-22 Clinicomp International, Inc. Method and system for adapting programs for interoperability and adapters therefor
US20220147568A1 (en) * 2020-11-10 2022-05-12 Sap Se Mapping expression generator

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970490A (en) * 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US6167405A (en) * 1998-04-27 2000-12-26 Bull Hn Information Systems Inc. Method and apparatus for automatically populating a data warehouse system
US6301584B1 (en) * 1997-08-21 2001-10-09 Home Information Services, Inc. System and method for retrieving entities and integrating data
US6339775B1 (en) * 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6366921B1 (en) * 1999-02-09 2002-04-02 International Business Machines Corporation System and method for data manipulation in a dynamic object-based format

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4751740A (en) 1984-12-10 1988-06-14 Wang Laboratories, Inc. Apparatus, method, and structure for translating a document having one structure into a document having another structure
US5226161A (en) 1987-08-21 1993-07-06 Wang Laboratories, Inc. Integration of data between typed data structures by mutual direct invocation between data managers corresponding to data types
US5206951A (en) 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
US5210824A (en) 1989-03-03 1993-05-11 Xerox Corporation Encoding-format-desensitized methods and means for interchanging electronic document as appearances
US5119465A (en) 1989-06-19 1992-06-02 Digital Equipment Corporation System for selectively converting plurality of source data structures through corresponding source intermediate structures, and target intermediate structures into selected target structure
US5410675A (en) 1989-08-21 1995-04-25 Lisa M. Shreve Method of conforming input data to an output data structure and engine for accomplishing same
JP2532148B2 (en) 1990-01-19 1996-09-11 富士通株式会社 Database management method for intelligent network
EP0456249B1 (en) 1990-05-10 1998-12-09 Hewlett-Packard Company System for integrating application programs in a heterogeneous network enviroment
US5428737A (en) 1991-10-16 1995-06-27 International Business Machines Corporation Comprehensive bilateral translation between SQL and graphically depicted queries
US5392390A (en) 1992-04-10 1995-02-21 Intellilink Corp. Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
US5446880A (en) 1992-08-31 1995-08-29 At&T Corp. Database communication system that provides automatic format translation and transmission of records when the owner identified for the record is changed
US5339434A (en) 1992-12-07 1994-08-16 Trw Inc. Heterogeneous data translation system
US6141663A (en) 1994-03-18 2000-10-31 Unimax Systems Corporation Automatic external data synchronization method
US5625816A (en) 1994-04-05 1997-04-29 Advanced Micro Devices, Inc. Method and system for generating product performance history
US5557790A (en) 1994-06-21 1996-09-17 International Business Machines Corp. Facility for the generic storage and management of multimedia objects
US5715397A (en) 1994-12-02 1998-02-03 Autoentry Online, Inc. System and method for data transfer and processing having intelligent selection of processing routing and advanced routing features
US5708828A (en) 1995-05-25 1998-01-13 Reliant Data Systems System for converting data from input data environment using first format to output data environment using second format by executing the associations between their fields
US5706434A (en) 1995-07-06 1998-01-06 Electric Classifieds, Inc. Integrated request-response system and method generating responses to request objects formatted according to various communication protocols
WO1997011426A1 (en) 1995-09-18 1997-03-27 Cyberstorage Systems, Inc. Universal storage management system
US5870746A (en) 1995-10-12 1999-02-09 Ncr Corporation System and method for segmenting a database based upon data attributes
US5884310A (en) 1996-06-14 1999-03-16 Electronic Data Systems Corporation Distributed data integration method and system
US5781902A (en) 1996-07-12 1998-07-14 Microsoft Corporation Method, computer program product, and system for extending the capabilities of an existing process to store and display foreign data
US5794234A (en) 1996-08-14 1998-08-11 The Ec Company Method and system for providing electronic commerce between incompatible data processing systems
US5926810A (en) * 1996-08-30 1999-07-20 Oracle Corporation Universal schema system
US5781911A (en) 1996-09-10 1998-07-14 D2K, Incorporated Integrated system and method of data warehousing and delivery
US5794039A (en) 1996-12-18 1998-08-11 Unisys Corp. Method for abstracting messages of various protocols into objects for storage in a database
US5848415A (en) 1996-12-18 1998-12-08 Unisys Corporation Selective multiple protocol transport and dynamic format conversion in a multi-user network
US5911776A (en) 1996-12-18 1999-06-15 Unisys Corporation Automatic format conversion system and publishing methodology for multi-user network
US6101556A (en) 1997-01-07 2000-08-08 New Era Of Networks, Inc. Method for content-based dynamic formatting for interoperation of computing and EDI systems
US5842213A (en) 1997-01-28 1998-11-24 Odom; Paul S. Method for modeling, storing, and transferring data in neutral form
US5873049A (en) 1997-02-21 1999-02-16 Atlantic Richfield Company Abstraction of multiple-format geological and geophysical data for oil and gas exploration and production analysis
US5933837A (en) 1997-05-09 1999-08-03 At & T Corp. Apparatus and method for maintaining integrated data consistency across multiple databases
US5937409A (en) 1997-07-25 1999-08-10 Oracle Corporation Integrating relational databases in an object oriented environment
US6222533B1 (en) * 1997-08-25 2001-04-24 I2 Technologies, Inc. System and process having a universal adapter framework and providing a global user interface and global messaging bus
JPH11126209A (en) 1997-10-23 1999-05-11 Toshiba Corp Information processor, its method and recording medium recorded with information processing program
US6061688A (en) 1997-11-04 2000-05-09 Marathon Oil Company Geographical system for accessing data
US6014670A (en) * 1997-11-07 2000-01-11 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6038565A (en) 1998-01-16 2000-03-14 International Business Machines Corporation Object oriented data format mapping mechanism
US6151608A (en) 1998-04-07 2000-11-21 Crystallize, Inc. Method and system for migrating data
US6208345B1 (en) * 1998-04-15 2001-03-27 Adc Telecommunications, Inc. Visual data integration system and method
US6636861B1 (en) * 2000-02-01 2003-10-21 David J. Stack Real-time database upload with real-time column mapping
US6615220B1 (en) * 2000-03-14 2003-09-02 Oracle International Corporation Method and mechanism for data consolidation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970490A (en) * 1996-11-05 1999-10-19 Xerox Corporation Integration platform for heterogeneous databases
US6301584B1 (en) * 1997-08-21 2001-10-09 Home Information Services, Inc. System and method for retrieving entities and integrating data
US6339775B1 (en) * 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6167405A (en) * 1998-04-27 2000-12-26 Bull Hn Information Systems Inc. Method and apparatus for automatically populating a data warehouse system
US6366921B1 (en) * 1999-02-09 2002-04-02 International Business Machines Corporation System and method for data manipulation in a dynamic object-based format

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004021185A3 (en) * 2002-08-29 2004-09-02 Sap Ag Isolated mapping point
US7269665B2 (en) 2002-08-29 2007-09-11 Sap Ag Isolated mapping point
US7277940B2 (en) 2002-08-29 2007-10-02 Sap Ag Managing uneven authorizations in a computer data exchange
US8024465B2 (en) 2002-08-29 2011-09-20 Sap Aktiengesellschaft Managing uneven authorizations in a computer data exchange
US7970942B2 (en) 2002-08-29 2011-06-28 Sap Aktiengesellschaft Isolated mapping point
WO2004021185A2 (en) * 2002-08-29 2004-03-11 Sap Aktiengesellschaft Isolated mapping point
WO2004072755A2 (en) * 2003-02-13 2004-08-26 Sap Aktiengesellschaft Message translation using adaptive agents
WO2004072755A3 (en) * 2003-02-13 2006-08-17 Sap Ag Message translation using adaptive agents
US7707432B2 (en) 2004-08-13 2010-04-27 Sap Ag Enabling communication between an application program and services used by the application program
US7457794B2 (en) 2004-10-14 2008-11-25 Sap Ag Searching for customized processing rules for a computer application
US7756808B2 (en) 2004-10-14 2010-07-13 Sap Ag Apparatus and product of manufacture for using condition data structures separately from rule data structures in business transactions
US7761396B2 (en) 2004-10-14 2010-07-20 Sap Ag Apparatus and product of manufacture for adaptive business transaction rule structures
US7457793B2 (en) 2004-10-14 2008-11-25 Sap Ag Investigating execution of a customized transaction process in a computer application
US7457792B2 (en) 2004-10-14 2008-11-25 Sap Ag Customizing transaction processing in a computer application by using pre-defined functions
US7461091B2 (en) 2005-06-09 2008-12-02 Sap Aktiengesellschaft Controlling data transition between business processes in a computer application
US8739124B2 (en) 2012-06-27 2014-05-27 Sap Ag Configuring integration capabilities for system integration

Also Published As

Publication number Publication date
US20040230605A1 (en) 2004-11-18
WO2002091240A3 (en) 2007-10-18
US6792431B2 (en) 2004-09-14
AU2002303540A8 (en) 2007-12-20
US7257594B2 (en) 2007-08-14
US20030014617A1 (en) 2003-01-16
AU2002303540A1 (en) 2002-11-18

Similar Documents

Publication Publication Date Title
US6792431B2 (en) Method, system, and product for data integration through a dynamic common model
US5257366A (en) Query language execution on heterogeneous database servers using a bind-file bridge between application and database languages
US7921367B2 (en) Application generator for data transformation applications
US5884317A (en) Service interface repository
US9009099B1 (en) Method and system for reconstruction of object model data in a relational database
US7620665B1 (en) Method and system for a generic metadata-based mechanism to migrate relational data between databases
US7844642B2 (en) Method and structure for storing data of an XML-document in a relational database
US5303379A (en) Link mechanism for linking data between objects and for performing operations on the linked data in an object based system
US5261080A (en) Matchmaker for assisting and executing the providing and conversion of data between objects in a data processing system storing data in typed objects having different data formats
US7165073B2 (en) Dynamic, hierarchical data exchange system
US5634124A (en) Data integration by object management
US20060259470A1 (en) Apparatus, system, and method for map definition generation
US20050071359A1 (en) Method for automated database schema evolution
US20030105745A1 (en) Text-file based relational database
CA1289255C (en) Data integration by object management
KR101114189B1 (en) Label system-translation of text and multi-language support at runtime and design
US6915303B2 (en) Code generator system for digital libraries
US6370545B1 (en) Method of accessing removable storage media
US20030110175A1 (en) Deploying predefined data warehouse process models
WO2005026993A1 (en) A system and method for managing item interchange and identification in an extended enterprise
US20070094289A1 (en) Dynamic, hierarchical data exchange system
US9207917B2 (en) Application generator for data transformation applications
CA1287173C (en) Customization by automated resource substitution
US20050137846A1 (en) On-demand creation of Java locale source
Benjamin et al. A visual tool for managing relational databases

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP