专利摘要:
Bei einem Ausführungsbeispiel wird ein System zur Verfügung gestellt zum Ausführen von Massendatentransfers zwischen persistenten Datenspeichern. Programmatische Quellschnittstellen werden jeweils einem Quellspeicher zugeordnet, entsprechend einer Quellschnittstellenspezifikation definiert und während eines Transfers bereitgestellt, um Extraktion von Datenentitäten von ihrem Quellspeicher zum Laden in irgendeinen gewählten Zielspeicher während des Transfers zu ermöglichen. Programmatische Zielschnittstellen werden jeweils einem Zielspeicher zugeordnet, entsprechend einer gemeinsamen Zielschnittstellenspezifikation definiert und während eines Transfers bereitgestellt, um Laden von Datenentitäten, die aus irgendeinem gewählten Quellspeicher während des Transfers extrahiert wurden, in ihren Zielspeicher zu ermöglichen. Jede programmatische Schnittstelle: (1) stellt ihrem Speicher eine Abstraktion von Transferoperationen zur Verfügung, so dass eigener Code nicht in Verbindung mit ihrem Speicher entwickelt werden muss, um Transfers zwischen ihrem Speicher und jedem anderen bestimmten Speicher zu ermöglichen; und (2) isoliert spezifische Details, die ihrem Speicher zugeordnet sind, so dass eigener Code nicht in Verbindung mit den Transferoperationen entwickelt werden muss, um Transfers zwischen ihrem Speicher und jedem anderen bestimmten Speicher zu ermöglichen.
公开号:DE102004022486A1
申请号:DE102004022486
申请日:2004-05-07
公开日:2004-12-23
发明作者:Andrew J. Arlington Carroll;David M. Allston DeCaprio
申请人:I2 Technologies Inc;
IPC主号:G06F17-30
专利说明:
[0001] DieseErfindung bezieht sich im Allgemeinen auf Datenintegration und insbesondereauf ein Datenintegrationssystem mit programmatischen Quell- undZielschnittstellen.
[0002] Invielen Betriebsumfeldern kann es notwendig sein, Massendatentransferszwischen einer Vielzahl von persistenten Datenspeichern, die Anwendungenoder anderen Systemen intern, sowie auch extern zu einem Unternehmenzugeordnet sind, auszuführen.Bei früherenTechniken zum Handhaben solcher Massendatenbewegungen von einemQuelldatenspeicher zu einem Zieldatenspeicher in Zusammenhang mitAusführungeiner Anwendung in einem Arbeitsablauf wurde vom Anwendungsentwicklerzusätzlichzum Entwickeln des Codes fürdie Anwendung selbst typischerweise verlangt: (1) eigenes Entwickelneines fürdie Anwendung und den Quelldatenspeicher spezifischen ersten Codeteilszum Extrahieren von Daten von dem Quelldatenspeicher und Platzierender extrahierten Daten an einem Zwischenspeicherort (wie z.B. einemFlat File) in einem Zwischenformat; (2) eigenes Entwickeln einesfür dieAnwendung und das Zwischenformat spezifischen zweiten Codeteils(wie z.B. ein Perl Skript) zum Transformieren der gespeichertenDaten in ein fürden Zieldatenspeicher passendes Format; und (3) eigenes Entwickelneines fürdie Anwendung und den Zieldatenspeicher spezifischen dritten Codeteilszum Laden der transformierten Daten in den Zieldatenspeicher. Derartiger selbstentwickelter Code ist selten wieder verwendbar, ist typischerweiseschwer zu pflegen und macht Anwendungsintegration typischerweiseschwierig, wenn zusätzlicheAnwendungen und Datenspeicher der Integrationsumgebung hinzugefügt werden.ErhältlicheExtract-TransformLoad (ETL) Werkzeuge könnenExtraktion von Daten von bestimmten Quelldatenspeichern, Ansammelnoder andere einfache Transformationen von extrahierten Daten undLaden von transformierten Daten in bestimmte Zieldatenspeicher handhaben.
[0003] Obwohlsolche ETL Werkzeuge fürbestimmte einfache Integrationsszenarien geeignet sein können, dieVerbinden einer existierenden Anwendung oder eines anderen Systemsmit einer Datenbank beinhalten, sind solche Werkzeuge in ihren Fähigkeitenbegrenzt und nehmen einem Anwendungsentwickler nicht die oben diskutiertenLasten hinsichtlich Design und Entwicklung einer neuen Anwendungab. Entsprechend bleibt die Unterstützung von Massendatenintegrationzwischen persistenten Datenspeichern dringend notwendig.
[0004] Gemäß der vorliegendenErfindung könnenNachteile und Probleme, die mit früheren Datenintegrationstechnikenzusammenhängen,reduziert oder eliminiert werden.
[0005] Beieinem Ausführungsbeispielwird ein System zur Verfügunggestellt zum Ausführenvon Massendatentransfers zwischen persistenten Datenspeichern. Eineoder mehrere programmatische Quellschnittstellen sind jeweils einementsprechenden Quelldatenspeicher zugeordnet, sind einer allgemeinenprogrammatischen Quellschnittstellenspezifikation entsprechend definiert,und werden währendeines Massendatentransfers bereitgestellt, um Extraktion einer odermehrerer Datenentitätenzum Laden in einen oder mehrere ausgewählte Zieldatenspeicher während desMassendatentransfers von dem entsprechenden Quelldatenspeicher zuermöglichen.Eine oder mehrere programmatische Zielschnittstellen sind jeweilseinem entsprechenden Zieldatenspeicher zugeordnet, einer allgemeinenprogrammatischen Zielschnittstellenspezifikation entsprechend definiert,und werden währendeines Massendatentransfers bereitgestellt, um Laden einer oder mehrererDatenentitäten,die von irgendeinem oder mehreren gewählten Quelldatenspeichern während des Massendatentransfersextrahiert wurden, in den entsprechenden Zieldatenspeicher zu ermöglichen.Jede programmatische Schnittstelle stellt dem entsprechenden Datenspeichereine Abstraktion von Massendatentransferoperationen zur Verfügung, sodass eigener Code nicht in Verbindung mit dem entsprechenden Datenspeicherentwickelt werden muss, um Massendatentransfers zwischen dem entsprechendenDatenspeicher und jedem anderen bestimmten Datenspeicher zu ermöglichen.Jede programmatische Schnittstelle isoliert auch spezifische Details,die dem entsprechenden Datenspeicher zugeordnet sind, so dass eigenerCode nicht in Verbindung mit den Massendatentransferoperationenentwickelt werden muss, um Massendatentransfers zwischen dem entsprechendenDatenspeicher und jedem anderen bestimmten Datenspeicher zu ermöglichen.
[0006] BestimmteAusführungsbeispielekönnenalle, einige oder keinen der Vorteile zur Verfügung stellen, die in den hierenthaltenen Figuren, Beschreibungen und Ansprüchen dargestellt sind. BestimmteAusführungsbeispielekönneneinen oder mehrere Vorteile zur Verfügung stellen, von denen eineroder mehrere für denFachmann aus den hier enthaltenen Figuren, Beschreibungen und Ansprüchen ohneweiteres erkennbar sind.
[0007] Umein kompletteres Verständnisder vorliegenden Erfindung und deren Merkmale und Vorteile zur Verfügung zustellen, wird auf die folgende Beschreibung in Verbindung mit denbeiliegenden Zeichnungen Bezug genommen, in denen:
[0008] 1 ein Beispiel eines Datenintegrationssystemsmit programmatischen Quell- undZielschnittstellen darstellt; und
[0009] 2 ein Beispiel eines Verfahrenseiner Datenintegration unter Verwendung eines Datenintegrationssystemsmit programmatischen Quell- und Zielschnittstellen darstellt.
[0010] 1 stellt ein beispielhaftesDatenintegrationssystem 2 dar, das programmatische Quell-und Zielschnittstellen einbezieht. System 2 schließt einenDatenintegrationsserver 10 ein, auf den in bestimmten Ausführungsbeispielenals „backbus" Server Bezuggenommen werden kann, der Massendatenintegration zwischen einemoder mehreren internen persistenten Datenspeichern 12a,die internen Anwendungen oder anderen Systemen 14a zugeordnetsind, und einem oder mehreren externen persistenten Datenspeichern 12b, dieexternen Anwendungen oder anderen Systemen 14b zugeordnet sind,unterstützt.Bei einem Ausführungsbeispielkann z.B. ein interner Datenspeicher 12aeinem Betriebskonfigurations-Managementssystemzugeordnet sein und kann ein Masterdepot für Kernunternehmensreferenzdaten,die sich auf die Artikel, Standorte, Verkäufer, Käufer oder andere Entitäten einesUnternehmens beziehen, zur Verfügungstellen, währendein externer Datenspeicher 12b einer Planungs-, Ausführungs-, Überwachungs-oder anderen Unternehmensanwendung zugeordnet sein kann, die sichauf die Referenzdaten bei ihren Operationen verlasst. Hochleistungs-Massendatentransferserfordern typischerweise Schnittstellen und andere Integrationskomponenten, diefür dieseOperationen ausgelegt sind.
[0011] Datenintegrationsserver 10 kanneinen oder mehrere JAVA-Prozesse oder andere geeignete Softwarekomponenteneinschließen.Im Allgemeinen stellt Datenintegrationsserver 10 einenMechanismus für Massendatentransferszwischen Datenspeichern 12 zur Verfügung. Bei einem Ausführungsbeispielführt Datenintegrationsserver 10 Extraktionvon Daten von einem gewünschtenQuelldatenspeicher 12 (z.B. Reihe für Reihe oder Objekt für Objekt),Zwischentransformation der extrahierten Daten gemäß der Transformationslogik,falls angemessen, (z.B. Reihe fürReihe oder Objekt fürObjekt in und aus der Transformation) und Laden der transformiertenDaten in einen gewünschtenZieldatenspeicher 12 aus (z.B. Reihe für Reihe oder Objekt für Objekt).Obwohl überwiegendLaden von Daten in einen Zieldatenspeicher 12 beschriebenist, kann Datenintegrationsserver 10 Einfügen, Updatenoder Löschenvon Daten ausführen,die entsprechend besonderer Anforderungen einem Zieldatenspeicher 12 zugeordnetsind, und der Begriff „Laden" kann, wo es je nachKontext angemessen ist, alle solche Operationen einschließen. Jededieser Operationen kann z.B. in Verbindung mit Ausführung einerAnwendung oder anderem System 14 innerhalb eines Arbeitsablaufsauf Unternehmensebene auftreten.
[0012] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 jeden Quelldatenspeicher 12 undjeden Zieldatenspeicher 12 aufnehmen, die jeweils programmatischeQuell- und Zielschnittstellen 16a und 16b verwenden.Programmatische Schnittstellen 16 können als JAVA oder jede anderegeeignete Schnittstellen ausgelegt sein.
[0013] ImAllgemeinen stellen Quellschnittstellen 16a Zugang zurVerfügung,um Daten von einem zugeordneten Quelldatenspeicher 12 abzufragen,und Zielschnittstellen 16b stellen Zugang zur Verfügung, umDaten in einem zugeordneten Zieldatenspeicher 12 einzufügen, upzudatenoder zu löschen.Wo programmatische Schnittstellen 16 JAVA-Schnittstellensind, könnenprogrammatische Schnittstellen 16 ein JAVA Application ProgramInterface (API) implementieren, um derartigen Zugang zur Verfügung zustellen.
[0014] EineQuellschnittstelle 16a kann für jede geeignete Zeit bestehenbleiben, z.B. währendeines Abschnitts eines einzelnen Datentransfers, während dergesamten Dauer nur eines einzelnen Transfers oder während verschiedenerDatentransfers. Bei einem Ausführungsbeispieljedoch bleibt eine Quellschnittstelle 16a nur für die Dauereines einzelnen Datentransfers bestehen, nach dem Quellschnittstelle 16a freigegeben oderanderweitig verworfen wird. Ähnlichkann eine Zielschnittstelle 16b für jede geeignete Zeit bestehenbleiben, z.B. währendeines Abschnitts eines einzelnen Datentransfers, während dergesamten Dauer nur eines einzelnen Transfers oder während verschiedenerDatentransfers. Bei einem Ausführungsbeispieljedoch bleibt eine Zielschnittstelle 16b nur für eineneinzelnen Schritt eines Datentransfers bestehen, nach dem Zielschnittstelle 16b freigegebenoder anderweitig verworfen wird.
[0015] Obwohljeder interne Datenspeicher 12a abhängig vom Massendatentransfer-Szenario ein Quelldatenspeicheroder ein Zieldatenspeicher sein kann und ähnlich jeder externe Datenspeicher 12b abhängig vom Massendatentransfer-Szenarioein Quelldatenspeicher oder Zieldatenspeicher sein kann, können zuZwecken der Einfachheit interne Datenspeicher 12a als Quelldatenspeicherund externe Datenspeicher 12b als Zieldatenspeicher inbestimmten hierin beschriebenen Beispielen bezeichnet sein. In dembesonderen in 1 dargestelltenBeispiel werden somit Quellschnittstellen 16a so dargestellt,als wärensie internen Datenspeichern 12a zugeordnet (d.h. die Quelldatenspeicherin dem Beispiel), währendZielschnittstellen 16b so dargestellt werden, als wären sieexternen Datenspeichern 12b zugeordnet (d.h. die Zieldatenspeicherin dem Beispiel). Es sollte jedoch klar verstanden werden, dassein Quelldatenspeicher 12 entweder intern oder extern sein kann,ein Zieldatenspeicher 12 entweder intern oder extern seinkann und Datenintegrationsserver 10 programmatische Schnittstellen 16 verwendenkann, um Intern-Intern-, Intern-Extern-, Extern-Intern- oder Extern-Extern-Massendatentransfersentsprechend besonderen Anforderungen auszuführen.
[0016] Beieinem Ausführungsbeispielstellen programmatische Schnittstellen 16 Abstraktionender tatsächlicheninnerhalb des Datenintegrationsservers 10 für Massendatentransferzwischen Datenspeichern 12 durchgeführten Operationen zur Verfügung, undschließenanwendungsspezifische oder andere systemspezifische Details ein.Als Resultat muss z.B. ein Entwickler einer Anwendung 14 miteinem zugeordneten Datenspeicher 12 nichts über bestimmteMassendatentransferoperationen innerhalb des Datenintegrationsservers 10 oderden Entwickler-Code wissen, um solche Massendatentransferoperationenhandhaben zu können. Auchmuss der Entwickler von Anwendung 14 nichts über dieDetails oder sogar die Identitätenanderer Anwendungen 14 oder der zugeordneten Datenspeicher 12 wissen,die letztendlich als Zieldatenspeicher 12 (wo eine Quellschnittstelle 16a implementiertist) oder als Quelldatenspeicher 12 (wo eine Zielschnittstelle 16b implementiertist) dienen. Stattdessen kann der Entwickler von Anwendung 14 eineQuellschnittstelle 16a zum Extrahieren von Daten von zugeordnetemDatenspeicher 12, eine Zielschnittstelle 16b zumLaden von Daten in zugeordneten Datenspeicher 12 oder beides,je nachdem wie Anwendung 14 genutzt wird, spezifizieren,definieren oder anderweitig implementieren. Implementieren einerprogrammatischen Schnittstelle 16 kann Entwicklungscodegemäß einergeeigneten Schnittstellenspezifikation beinhalten, um sicherzustellen,dass programmatische Schnittstelle 16 mit anderen, Datenintegrationsserver 10 zugeordnetenKomponenten voll kompatibel ist. Nach Implementierung der programmatischenSchnittstelle 16 könnenandere Anwendungen 14 durch Datenintegrationsserver 10 programmatischeSchnittstelle 16 verwenden, um Daten von (wo eine Quellschnittstelle 16a implementiertist) oder Daten in (wo eine Zielschnittstelle 16b implementiertist) Datenspeicher 12, welcher der Anwendung 14 zugeordnetist, die die programmatische Schnittstelle 16 bereitstellt,zu extrahieren oder zu laden. Im Gegensatz zu früheren Techniken bleibt demAnwendungsentwickler somit die Entwicklung von separatem eigenemCode zum Handhaben von Massendatentransfers für jede andere Anwendung 14,zu der Daten exportiert oder von der Daten importiert werden können, erspart.Bei Infrastrukturen, bei denen sogar mehrere Anwendungen 14 Datenaustauschen müssen,kann derartige Generierung des eigenen Codes eine bedeutende Lastfür Entwicklungsressourcendarstellen.
[0017] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 eine programmatische Schnittstelle 16 bereitstellen,die eine Standard File Transfer Protocol (FTP) Schnittstelle verwendet.Typischerweise hat ein FTP Server Zugang zu auf einer Platte persistentenDateien, und Anwendungen laden diese Dateien unter Verwendung desFTP Servers in Übereinstimmungmit FTP herunter oder hoch. Wo Datenintegrationsserver 10 FTPin Verbindung mit einer programmatischen Schnittstelle 16 implementiert,sind jedoch keine Dateien tatsächlichauf einer Platte persistent. Stattdessen kann ein FTP Client, wennder FTP Client Daten von einem Quelldatenspeicher 12 extrahierenmuss, eine FTP Verbindung öffnen,die den Datenintegrationsserver 10 informiert, dass ereinen Datenstrom von Quelldatenspeicher 12 herunterlädt. AlsReaktion kann Datenintegrationsserver 10 einfach die geeigneteQuellschnittstelle 16a für Quelldatenspeicher 12 instanziierenund, wenn Quellschnittstelle 16a den von Quelldatenspeicher 12 extrahiertenDatenstrom produziert, den abgehenden Datenstrom zu dem FTP Clientin Übereinstimmungmit FTP senden (z.B. als .txt oder .xml Datei je nach Anforderung). Ähnlich kannein FTP Client, wenn der FTP Client Daten in einen Zieldatenspeicher 12 ladenmuss, eine FTP Verbindung öffnen,die den Datenintegrationsserver 10 informiert, dass ereinen Datenstrom in Zieldatenspeicher 12 hochlädt. AlsReaktion kann Datenintegrationsserver 10 einfach die entsprechendeZielschnittstelle 16b fürZieldatenspeicher 12 instanziieren und, wenn der Datenstromvom FTP Client ankommt (z. B. als .txt oder .xml Datei je nach Anforderung),den ankommenden Datenstrom an Zielschnittstelle 16b zumLaden in Zieldatenspeicher 12 senden. Da keine Datei tatsächlich gelesenoder geschrieben wird, gibt es geringe oder keine Wartezeit.
[0018] AlsErgebnis kann bei einem AusführungsbeispielDatenintegrationsserver 10 jedem geeigneten FTP Clienterlauben, Massendatentransfers auszuführen hinsichtlich Datenspeicher 12 unterVerwendung von programmatischen Schnittstellen 16, egalob diese Datenspeicher 12 oder deren zugeordnete Anwendungen 14 selbstFTP Transfers unterstützenoder nicht. Aus der Perspektive des FTP Clients werden Daten wiein einem Standard FTP Transfer heruntergeladen oder hochgeladen.Aus der Perspektive des Datenspeichers 12 und dessen zugeordneterAnwendung 14 werden Daten exportiert oder importiert unterVerwendung der bereitgestellten programmatischen Schnittstelle 16,ohne zu berücksichtigen,ob das Ziel (zum Exportieren von Daten unter Verwendung einer Quellschnittstelle 16a)oder die Quelle (zum Importieren von Daten unter Verwendung einerZielschnittstelle 16b) einen FTP Transfer ausführt. Wieoben beschrieben, könnenprogrammatische Schnittstellen 16 Datenspeicher 12 undzugeordnete Anwendungen 14 von solchen Details isolieren,um transparente Kompatibilitätzwischen Quellen und Zielen zur Verfügung zu stellen. Darüber hinausbetrachtet die vorliegende Erfindung, obwohl FTP als Beispiel für eine Situationbeschrieben wird, in der Daten dem Client als eine Datei bereitgelegtwerden, ähnlichenAblauf und ähnlicheVorteile in Verbindung mit Hypertext Transport Protocol (HTTP) (woDaten dem Client als Webpage bereitgestellt werden), Open DatabaseConnectivity (ODBC) oder JAVA Database Connectivity (JDBC) (wo derClient so tut, als wäreer eine Datenbank), oder jedem anderen geeigneten Standard-Protokoll. So kannim weiten Sinne Datenintegrationsserver 10 mit programmatischenSchnittstellen 16 die Fähigkeitzur Verfügungstellen, Unterstützungfür Standard-Protokolle zu existierendenAnwendungen 14 und zugeordneten Datenspeichern 12 transparenthinzuzufügen,die solche Protokolle nicht anderweitig unterstützen.
[0019] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 zusätzlich zu programmatischen Schnittstellen 16 relationaleSchnittstellen 18 als eine Alternative zum Exportierenund Importieren von Daten hinsichtlich einfacher relationaler Datenspeicher 12 unterstützen. Wenneine Anwendung 14 z.B. einem relationalen Datenspeicher 12 zugeordnetist, kann es fürden Anwendungsentwickler wünschenswertsein, eine relationale Schnittstelle 18 zu implementieren,um Datenintegrationsserver 10 zu erlauben, direkt von relationalemDatenspeicher 12 zu lesen und direkt auf relationalen Datenspeicher 12 zuschreiben, ohne die zusätzliche Komplexität, die jeweilseiner Quellschnittstelle 16a oder einer Zielschnittstelle 16b zugeordnetist. Entsprechend besonderer Anforderungen kann der Anwendungsentwicklerentscheiden, ob eine programmatische Schnittstelle 16 odereine relationale Schnittstelle 18 für Datenexport oder -importin Bezug auf relationalen Datenspeicher 12 implementiertwird.
[0020] DieEntscheidung, ob eine programmatische Schnittstelle 16 odereine relationale Schnittstelle 18 zur Verfügung gestelltwird, hängtvon bestimmten Anforderungen ab. Wenn z.B. relationaler Datenspeicher 12 FlatFiles zum Importieren von Daten verwendet, dann kann die Entscheidungzwischen einer Zielschnittstelle 16b und einer relationalenSchnittstelle 18 von der Verarbeitungsmenge abhängen, diean den Flat Files durchgeführtwird, bevor diese in relationalem Datenspeicher 12 gespeichertwerden. Wenn relativ wenig Verarbeitung nötig ist und die Leistung kritischist, dann kann der Anwendungsentwickler wählen, eine relationale Schnittstelle 18 zuimplementieren, um direkt relationalen Datenspeicher 12 bereitzustellen.Wenn jedoch relativ signifikante Validierung oder andere Verarbeitungbenötigtwird und die Leistung nicht so kritisch ist, dann kann der Anwendungsentwicklerwählen,relationalen Datenspeicher 12 unter Verwendung einer Zielschnittstelle 16b bereitzustellen.
[0021] WennAnwendung oder anderes System 14 über eine existierende relationaleSchnittstelle zu dessen relationalen Datenspeicher 12 verfügt, dannkann es wünschenswertsein, diese existierende relationale Schnittstelle innerhalb Datenintegrationsserver 10 alseine relationale Schnittstelle 18 bereitzustellen. Jedoch mussdas nicht immer die beste Option sein. Wenn z.B. die existierenderelationale Schnittstelle einfach eine Menge von Zwischenspeicher-Tabellenist, die besetzt und gelesen werden, validiert und in richtige Tabellen gesetztwerden, dann kann es wünschenswertsein, stattdessen eine programmatische Schnittstelle 16 zuimplementieren, um den Zwischenspeicher-Schritt zu eliminieren.Die Verwendung eines Zwischenspeicher-Bereiches kann die Fähigkeiteliminieren, die Daten in Datenintegrationsserver 10 zufördern,was jegliche Leistungsgewinne durch die Verwendung einer relationaleSchnittstelle 18 aufwiegen kann. Wenn Verarbeitung zwischendem Zwischenspeicher-Bereich und internen Tabellen von relationalemDatenspeicher 12 auf einer Reihe-für-Reihe-Basis ausgeführt werdenkann, dann kann es am Besten sein, die existierende relationale Schnittstellein eine programmatische Schnittstelle 16 zu konvertieren.Wenn jedoch Verarbeitung zwischen dem Zwischenspeicher-Bereich undinternen Tabellen von relationalem Datenspeicher 12 komplexeAnfragen erfordert, die auf alle Daten wirken, dann kann es am Bestensein, die Zwischenspeicher-Tabellen beizubehalten und einfach dieexistierende relationale Schnittstelle als eine relationale Schnittstelle 18 bereitzustellen.
[0022] Beieinem Ausführungsbeispielkönnenjede programmatische Schnittstelle 16 und relationale Schnittstelle 18 eineSchnittstellen-Schema-Datei und eine Schnittstellen-Zuweisungs-Dateieinschließen,wobei beide eine XML- oder andere Metadaten-Datei sein können. DieSchnittstellen-Schemadatei kann eine datenbankneutrale Beschreibungdes physikalischen Schemas des Datenspeichers 12 zur Verfügung stellen,der der Schnittstelle 16, 18 zugeordnet ist. DieSchnittstellen-Zuweisungs-Datei kann logisch-physikalische Zuweisungenfür alleDatenentitäten,die als Teil von Schnittstelle 16, 18 verwendetwerden, zur Verfügungstellen, kann alle Datenentitätenidentifizieren, die nur fürprogrammatische Schnittstellen 16 und nicht für relationale Schnittstellen 18 verwendetwerden sollen, und kann anzeigen, ob Datenentitäten für Export (d.h. als Quellen) oderImport (d.h. als Ziele) oder fürbeides verwendet werden sollen. Obwohl in erster Linie separateSchnittstellen-Schema- und Schnittstellen-Zuweisungs-Dateien beschriebensind, könnensolche Informationen unter Verwendung einer einzelnen Datei oderjeder anderen geeigneten Darstellung gehalten werden.
[0023] EineZuweisungs-Datei, die einer Schnittstelle 16, 18 zugeordnetist, beschreibt vorzugsweise Datenentitäten, die unter Verwendung vonSchnittstelle 16, 18 während eines Massendatentransfersauf eine Art transferiert werden, die es diesen Datenentitäten erlaubt,zwischen Datenspeichern 12 transferiert zu werden und über dieunterschiedliche Datenbankschemata haben. Die Datenentitäten, dietransferiert werden, können z.B.Menschen beschreiben, unter Verwendung eines Person genannten Typsmit drei Feldern Vorname, Nachname, und Geburtsdatum. Wenn die Datenentitäten zu odervon einem Datenspeicher 12 transferiert werden, der einePerson genannte Tabelle mit drei Feldern Vorname, Nachname und Geburtsdatum,enthält,dann ist zusätzlicheKonfiguration hinsichtlich Schnittstelle 16, 18,die diesem Datenspeicher 12 zugeordnet ist, nicht nötig. Wennjedoch die Datenentitätenzu oder von einem Datenspeicher 12 transferiert werden,der eine Menschen genannte Tabelle mit drei Feldern Vname, Nnameund Gdatum enthält,dann kann die Zuweisungs-Datei fürdie Schnittstelle 16, 18, die diesem Datenspeicher 12 zugeordnetist, eine Zuweisung zwischen der logischen Darstellung Person(Vorname,Nachname, Geburtsdatum) und dem physikalischen Datenschema Menschen(Vname,Nname, Gdatum) zur Verfügungstellen. Obwohl in erster Linie eine Zuweisungs-Datei beschriebenist, betrachtet die vorliegende Erfindung jeden geeigneten Mechanismusfür logisch-physikalische Zuweisung,um Massendatentransfers zwischen Datenspeichern 12, dieunterschiedliche Datenbankschemata haben, zu unterstützen.
[0024] Datenintegrationssystem 10 kannSitzungsschnittstellen 20 bereitstellen, um einen breiterenLevel an Kontrolle und Persistenz für bestimmte Informationen zurVerfügungzu stellen, wie Massendatentransfers zugeordnete Verbindungsinformationen.Bei einem Ausführungsbeispielkann fürjeden Massendatentransfer, der eine oder mehrere programmatischeSchnittstellen 16 umfasst, eine Sitzungsschnittstelle 20 amAnfang des Transfers fürdie eine oder mehreren mit dem Datentransfer involvierten programmatischenSchnittstellen 16 instanziiert werden, für die Dauerdes Datentransfers bestehen bleiben und bei Beendigung des Datentransfersfreigegeben werden. Sitzungsschnittstellen 20 können jedochoptional konfiguriert werden, um über die Dauer eines einzelnenDatentransfers hinaus bestehen zu bleiben, um sich über mehrereDatentransfers zu erstrecken. Eine Sitzungsschnittstelle 20 kannz.B. beim Starten von Datenintegrationsserver 10 instanziiert werdenund darf nicht freigegeben werden, bevor Datenintegrationsserver 10 heruntergefahrenwird.
[0025] Sitzungsschnittstellen 20 können einenallgemeinen Mechanismus zur Implementierung von Ressourcen zur Verfügung stellen,die die zu transferierenden Datenentitäten darstellen und Konfigurationsinformationenzur Verfügungstellen, die füreinen einzelnen Massendatentransfer für eine zugeordnete programmatischeSchnittstelle 16, multiple programmatische Schnittstellen 16 odermultiple Datentransfers benötigtwerden. Sitzungsschnittstellen 20 können geeignete Details, wieZustandsinformationen für dieRessourcen, Verbindungsinformationen für die Quell- und Zieldatenspeicher 12 undandere Details, die Export und Import von Ressourcen innerhalb einesDatentransfers zugeordnet sind, kapseln und vor den zugeordnetenprogrammatischen Schnittstellen 16 verbergen. Sitzungsschnittstellen 20 können somiteinen Mechanismus zur Verfügungstellen, der elegantere und intelligentere Implementierungen vonprogrammatischen Schnittstellen 16 fördert. Eine Sitzungsschnittstelle 20 istvorzugsweise grundlegend genug, um einen weiten Grad an Flexibilität und Anpassungzuzulassen. Bei einem Ausführungsbeispielkönneneine oder mehrere Quellschnittstellen 16a, eine oder mehrereZielschnittstellen 16b oder sowohl eine oder mehrere Quellschnittstellen 16a undeine oder mehrere Zielschnittstellen 16b innerhalb einerSitzungsschnittstelle 20 definiert werden, so dass Sitzungsschnittstelle20 beim Start jedes Datentransfers instanziiert wird, der eine odermehrere der definierten programmatischen Schnittstellen 16 einschließt. Jedeprogrammatische Schnittstelle 16, die innerhalb von Sitzungsschnittstelle 20 definiertist, hat durch einen geeigneten JAVA Funktionsaufruf oder anderweitigZugang zu Sitzungsschnittstelle 20.
[0026] Datenintegrationsserver 10 kannein ETL Werkzeug 22 von Dritten unterstützen, das vorzugsweise so gekapseltist, dass die internen Schnittstellen und andere interne Detailsdes ETL Werkzeugs 22 nicht dem Datenintegrationsserver 10 während derAusführungdargestellt werden. Obwohl das Design von Datenintegrationsserver 10 jedesgeeignete ETL Werkzeug 22 unterstützen kann, kann bei einem Ausführungsbeispiel INFORMATICAPOWERCENTER als ETL Werkzeug 22 ausgewählt werden. INFORMATICA POWERCENTERClient-Werkzeuge könnenverwendet werden, um bestimmte Massendatentransfers zu entwerfen,inklusive bestimmter Zwischentransformationen, die in Verbindungmit den Datentransfers benötigtwerden können. EinINFORMATICA POWERCENTER Server kann diese Datentransfers je nachAnweisung des Datenintegrationsservers 10 ausführen, wievollständigerunten beschrieben wird.
[0027] ETLWerkzeug 22 kann die Fähigkeitzur Verfügungstellen, direkt zu bestimmten Anwendungen oder anderen Systemen 14 zuverbinden, die direktes Lesen von oder Schreiben in zugeordneteDatenspeicher 12 zulassen. Als eine Alternative kann ETLWerkzeug 22 ETL Adapter 24 einschließen, dieverwendet werden können,um solche direkte Verbindung zu bestimmten Datenspeichern 12 zuermöglichen.INFORMATICA POWERCENTER kann z.B. POWERCONNECT Adapter 24 zurVerfügungstellen, um direkte Verbindung zu SAP-spezifischen, ORACLE-spezifischenoder anderen kommerziellen Datenspeichern 12 „von derStange" zu ermöglichen.
[0028] Alsweitere, flexiblere Alternative gemäß der vorliegenden Erfindungkönnenbestimmte Anwendungen oder andere Systeme 14 programmatischeSchnittstellen 16 bereitstellen, die innerhalb von Datenintegrationsserver 10 eingesetztsind. In diesem Fall kann ETL Werkzeug 22 unter Verwendungder bereitgestellten Quell- oder Zielschnittstellen 16 Datenjeweils extrahieren oder laden, anstatt direkt mit oder ohne Adapter 24 zuverbinden. INFORMATICA POWERCENTER kann z.B. gemäß einem Ausführungsbeispielder vorliegenden Erfindung als ein ETL Werkzeug 22 verwendetwerden, um durch zugeordnete programmatische Schnittstellen 16 zuDatenspeichern 12 zu verbinden. ETL Werkzeug 22 kannals ein FTP Client agieren, um unter Verwendung von programmatischenSchnittstellen 16 fürDatenspeicher 12, wie oben vollständiger beschrieben ist, Datenvon oder Daten in Datenspeicher 12 zu extrahieren oderzu laden. Wo z.B. INFORMATICA POWERCENTER als ETL Werkzeug 22 verwendetwird, kann ein INFORMATICA POWERCHANNEL API es ETL Werkzeug 22 erlauben,als ein FTP Client zu agieren, um Daten unter Verwendung von programmatischen Schnittstellen 16 zuextrahieren oder zu laden. Verwendung von programmatischen Schnittstellen 16 kannes Datenintegrationsserver 10 erlauben, transparente Kompatibilität zwischenjedem geeigneten ETL Werkzeug 22 und jedem geeigneten Datenspeicher 12 zuunterstützen.Wo z.B. INFORMATICA POWERCENTER als ETL Werkzeug 22 verwendetwird, kann jede Anwendung 14, die über eine geeignete programmatische Schnittstelle 16,innerhalb von Datenintegrationsserver 10 verfügt als Ergebniseinen INFORMATICA POWERCHANNEL API unterstützen.
[0029] Datenintegrationsserver 10 kanneinen Controller 26 unterstützen, um individuelle Massendatentransfersunter Verwendung von programmatischen Schnittstellen 16 auszuführen, woentweder ETL Werkzeug 22 nicht vorhanden ist oder seineKapazitätennicht benötigtwerden. Controller 26 kann z.B. verwendet werden, um Datentransferszwischen Quellen und Zielen auszuführen, die sehr ähnlich oderidentisch hinsichtlich ihrer Ressourcenschemata sind, und keineZwischentransformationen, Validierung oder andere Datenverarbeitung isterforderlich. Füreinen Massendatentransfer, der eine oder mehrere Quellschnittstellen 16a undeine oder mehrere Zielschnittstellen 16b involviert, ziehtController 26 auf Anweisung von Datenintegrationsserver 10 die exportiertenDaten von der einen oder den mehreren Quellschnittstellen 16a undschiebt die Daten zu der einen oder den mehreren Zielschnittstellen 16b.Controller 26 kann Daten von einem Quelldatenspeicher 12a ziehen,der in einen Datentransfer involviert ist, unter Verwendung derzugeordneten Quellschnittstellen 16 auf einer Datenentität für Datenentität Basis(z.B. Reihe fürReihe oder Objekt fürObjekt) und die Daten fürden Datentransfer zu dem geeigneten Zieldatenspeicher 12a schiebenunter Verwendung der zugeordneten Zielschnittstellen 16b aufdieselbe Weise. In diesem besonderen Fall wird jede Datenentität von einemQuelldatenspeicher 12a extrahiert und in einen Zieldatenspeicher 12b geladen,bevor die nächsteDatenentitätextrahiert und geladen wird. JAVA oder anderer geeigneter Code können dieAusführungdes Massendatentransfers handhaben. Bei einem Ausführungsbeispielkann Controller 26 beim Ausführendes Massendatentransfers je nach Anweisung von Datenintegrationsserver 10 eineSitzungsschnittstelle 20 verwenden. Wie unten vollständiger beschriebenist, kann bei einem AusführungsbeispielController 26 anstelle einer oder zusätzlich zu einer Sitzungsschnittstelle 20 beider Ausführungdes Massendatentransfer je nach Anweisung von Datenintegrationsserver 10 eineTransformationsschnittstelle 28 verwenden.
[0030] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 zusätzlich zu Quellschnittstellen 16a, Zielschnittstellen 16b undjeglichen Sitzungsschnittstellen 20 eine oder mehrere Transformationsschnittstellen 28 bereitstellen.Obwohl es nicht erforderlich ist, kann eine Transformationsschnittstelle 28 eseinem Anwendungsentwickler erlauben, benutzerdefinierte oder andereTransformationslogik zu entwerfen, entwickeln und packen, die während einesMassendatentransfers auf Ressourcen, die von Quelldatenspeicher 12a unterVerwendung der zugeordneten Quellschnittstelle 16a extrahiertsind, angewendet wird, bevor diese Ressourcen in Zieldatenspeicher 12b unterVerwendung der zugeordneten Zielschnittstelle 16b geladenwerden. Wenn Controller 26 Daten auf Basis von Datenentität für Datenentität, wie obenbeschrieben, extrahiert und lädtund eine Transformation auf dieser Basis nicht ausgeführt werdenkann (z.B. nicht Reihe fürReihe oder Objekt für Objektausgeführtwerden kann), kann Fluss von Datenentität für Datenentität auf beidenSeite der Transformation erreicht werden (z.B. Reihe für Reiheoder Objekt fürObjekt in die Transformation hinein, dann Reihe für Reiheoder Objekt fürObjekt aus der Transformation heraus). Eine Transformationsschnittstelle 28 kann helfen,Transformationslogik von programmatischen Schnittstellen 16 zuentkoppeln, da sie die Transformationslogik kapselt und vor programmatischenSchnittstellen 16 versteckt, was helfen kann, elegantereund intelligentere Implementierungen von programmatischen Schnittstellen 16 zuerleichtern.
[0031] EineTransformationsschnittstelle 28 kann es einem Anwendungsentwicklererlauben, benutzerdefinierte oder andere Transformationslogik zuentwerfen, entwickeln und packen, die einem Datentransfer zwischeneiner oder mehreren Quellschnittstellen 16a und einer odermehreren Zielschnittstellen 16b ohne Verwendung von ETLWerkzeug 22 zugeordnet ist. Bestimmte Transformationenkönnenz.B. unter Verwendung von ETL Werkzeug 22 schwieriger oderunmöglichzu entwerfen sein, oder könnenunter Leistungsproblemen leiden, wenn sie unter Verwendung von ETLWerkzeug 22 entwickelt sind. Eine Transformationsschnittstelle 28 kannzur Entwicklung von gepackten Datenintegrationslösungen zwischen gemeinsam verwendetenQuellschnittstellen 16a und Zielschnittstellen 16b nützlich sein,die fürdiese programmatischen Schnittstellen 16 optimiert ist,besonders wo diese programmatischen Schnittstellen 16 Datenspeichern 12 zugeordnetsind, die schematisch abweichende Ressourcen enthalten. Einige Datenintegrationslösungen können z.B.zwischen einer Planungsmaschine und einem Betriebsdatenspeicher 12 entworfen,entwickelt und verpackt werden zur Freigabe für verschiedene Kunden, können aberbestimmte Transformationslogik benötigen. Eine Transformationsschnittstelle 28 kannes dieser Transformationslogik erlauben, implementiert zu werden,ohne Einfluss auf programmatische Schnittstellen 16 zuhaben und ohne sich den Overhead, der mit einem Unternehmenslevel- oderanderem ETL Werkzeug 22 verbunden ist, zuzuziehen.
[0032] Beieinem Ausführungsbeispielkönneneine oder mehrere Quellschnittstellen 16a, eine oder mehrere Zielschnittstellen 16b oderbeide innerhalb einer Transformationsschnittstelle 28 definiertwerden, so dass die Transformationsschnittstelle 28 am Anfang vonjedem Datentransfer der eine oder mehrere der programmatischen Schnittstellen 16 involviert,und so dass die zugeordnete Transformationslogik auf die Ressourcenangewendet wird, die in dem Datentransfer bewegt werden. Eine Transformationsschnittstelle 28 für einenDatentransfer kann zur im Wesentlichen selben Zeit wie jede Sitzungsschnittstellefür denDatentransfer instanziiert werden. Die vorliegende Erfindung betrachtetgeeignete Regeln, um festzulegen, ob Transformationslogik, die einerTransformationsschnittstelle 28 zugeordnet ist, auf dieRessourcen in einem Datentransfer angewendet wird, anstelle von überhauptkeiner Transformationslogik oder anstelle von durch ETL Werkzeug 22 verfügbare Transformationslogik.
[0033] Beieinem AusführungsbeispielerfülltDatenintegrationsserver 10 ohne Einschränkung fünf Hauptziele: (1) Beherbergenvon Implementierungen von programmatischen Schnittstellen 16,die Anwendungen oder anderen Systemen 14 zugeordnet sind;(2) Definieren von Massendatenbewegungen als atomische Datentransfers;(3) Bereitstellen von Datentransferoperationen als Dienste für den Restder Systeminfrastruktur; (4) zur Verfügung stellen von Konnektivität für jedesETL Werkzeug 22; und (5) Ausführung von Datentransfers, diekein ETL Werkzeug 22, das Controller 26 verwendet,involvieren. Die ersten vier dieser Ziele werden unten detaillierterbeschrieben. Das fünftedieser Ziele ist oben detaillierter beschrieben.
[0034] Zuerstkann Datenintegrationsserver 10 Implementierungen von programmatischenSchnittstellen 16 beherbergen, die dazu verwendet werden,Massendatenbewegung zwischen Datenspeichern 12 auszuführen. Wieoben angeführtwird, könnenDatenentitäten,die unter Verwendung einer programmatischen Schnittstelle 16 übertragen werden,als Ressourcen bezeichnet werden. Eine Ressource kann z.B. eineDatenbanktabelle oder Datenbankansicht, eine oder mehrere Reiheninnerhalb einer Datenbanktabelle oder Datenbankansicht, ein FlatFile oder jede andere geeignete Ansammlung von einer oder mehrerenDatenentitätensein. Ressourcen könnenunter Verwendung angemessener Metadaten oder anderer Informationenbeschrieben werden. Datenintegrationsserver 10 stellt implementierteQuellschnittstellen 16b bereit, um Export von Ressourcenvon den zugeordneten Quelldatenspeichern 12a zu erlauben,und stellt implementierte Zielschnittstellen 16b bereit,um den Import von Ressourcen in zugeordnete Zieldatenspeicher 12b zuerlauben. Fürjede programmatische Schnittstelle 16 kann Datenintegrationsserver 10 Konfigurationsinformationenbeherbergen, die die bei Verwendung der programmatischen Schnittstelle 16 verfügbaren Ressourcendefinieren, (d.h. die Datenentitäten,die fürExport oder Import unter Verwendung von programmatischer Schnittstelle 16 verfügbar sind).Datenintegrationsserver 10 kann generell als eine Datenentitätsschnittstellezwischen Datenspeichern 12, die Anwendungen oder anderenSystemen 14 zugeordnet sind, gesehen werden.
[0035] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 jeder programmatischenSchnittstelle 16 erlauben, Daten in deren besonderen, gewünschtenFormat zu produzieren und zu verarbeiten, so dass Datenintegrationsserver 10 zwischenFormaten nur konvertiert, insoweit es gemäß der besonderen, in einem Datentransferinvolvietren programmatischen Schnittstellen 16 nötig ist.Wenn Quellschnittstelle 16a z.B. Daten in Form von JAVADocument Object Model (JDOM) XML Elementobjekten produziert undZielschnittstelle 16b Daten in der Form von JDOM XML Elementobjektenverarbeitet, dann kann ein Elementobjekt, das von Quellschnittstelle 16a produziertwird, direkt zu Zielschnittstelle 16b ohne Konvertierung übertragenwerden. Wenn jedoch Zielschnittstelle 16b stattdessen Datenin einer anderen Form verarbeitet, wie z.B. als ein JAVA Objekt,wird Datenintegrationsserver 10 automatisch das gewünschte JAVAObjekt aus dem JDOM Elementobjekt konstruieren und das JAVA Objektzu Zielschnittstelle 16b weiterleiten. Konvertieren derDaten, die in einem Datentransfer übertragen werden, nur wennnötig entsprechendder besonderen programmatischen Schnittstellen 16, diein dem Datentransfer involviert sind, kann ein wichtiges Merkmalsein. Z.B. könnenReihe-für-Reihe oder Objekt-für-ObjektKonvertierung von großenDatenvolumina hinsichtlich Leistung teuer sein, so dass Vermeidendieser Konvertierung, wo sie unnötigist, die Leistung steigern kann.
[0036] Zweitenskann bei einem AusführungsbeispielDatenintegrationsserver 10 Massendatenbewegung von Ressourcenals atomische Datentransfers definieren. In einem besonderen Ausführungsbeispielkann Datenintegrationsserver 10 eine Extensible MarkupLanguage (XML) Konfigurationsdatei verwenden, um die verfügbaren Ressourcenzu beschreiben. Massendatenbewegung von Ressourcen kann dann gemäß dieserXML Konfigurationsdatei definiert werden. Eine Sammlung von XML,JAVA oder anderen geeigneten Komponenten innerhalb von Datenintegrationsserver 10 kanndie Konfiguration und den Status von Datenintegrationsserver 10 beschreibenund modellieren. Jeder atomische Datentransfer, der eine oder mehrereRessourcen involvieren kann, ist vorzugsweise als ein Einzeldatentransferdefiniert.
[0037] Drittensstellt bei einem AusführungsbeispielDatenintegrationsserver 10 Datentransferoperationen als Dienstefür denRest der Systeminfrastruktur bereit. In diesem Fall schließt die Systeminfrastruktureine dienstbasierte Architektur ein und Datenintegrationsserver 10 stelltMassendatentransferdienste zur Verfügung. Datentransfers können vonClients und anderen Prozessen in dem gesamten Integrationsumgebungin derselben Weise, wie jeder Dienst in dem gesamten Integrationsumgebungaufgerufen wird, ausgeführtwerden, einschließlichdurch Verwendung einer geeigneten Infrastruktur-Client-Schnittstelle. EineSammlung von XML, JAVA, oder anderen geeigneten Komponenten kanndie Schnittstellenimplementierung und -funktionalität zur Verfügung stellen,um Datentransfers als Dienste bereitzustellen.
[0038] Viertensstellt bei einem AusführungsbeispielDatenintegrationsserver 10 Konnektivität zu ETL Werkzeug 22 zurVerfügungund erlaubt Exportieren von Ressourcen zu und Importieren von Ressourcenvon ETL Werkzeug 22. Auf diese An können End-zu-End Datenbewegungen, die sich auf ETLWerkzeug 22 verlassen, entworfen und ausgeführt werden.Bei einem besonderen Ausführungsbeispielkann Datenintegrationsserver 10 fünf Hauptkomponenten einschließen, diekooperieren, um solche ETL Werkzeug-Konnektivität zur Verfügung zu stellen: (1) XML undJAVA Konfiguration und Modellierung für das Zuweisen von Ressourcenauf ETL Werkzeug-Entitäten;(2) XML und JAVA Code, um Ausführungvon ETL Prozessen zu konfigurieren und kontrollieren; (3) JAVA Code,um Export von Daten von einer Quellschnittstelle 16a zuETL Werkzeug 22 zu handhaben; (4) JAVA Code, um Importvon Daten von ETL Werkzeug 22 und Kommunikation der importiertenDaten zu einer Zielschnittstelle 16b zu handhaben; und(5) JAVA Code, um bestimmte Abschnitte des FTP Server Protokollsfür Konnektivität zu implementieren.
[0039] Datenintegrationsserver 10 kannAnwendungsintegration am Datenschicht-Level ermöglichen. Bei einem Ausführungsbeispielkann Datenintegrationsserver 10 an den Rest der Systeminfrastruktur,die in diesem Beispiel als Anwendungsintegrationslayer 30 dargestelltist (welcher als „frontbus" Layer bezeichnetwerden kann), in derselben An wie eine herkömmliche Anwendungsschnittstelleanschließen.Bei einem Ausführungsbeispielist Datenintegrationsserver unter Verwendung von JAVA Remote MethodInvocation (RMI) Bindungen zugänglichgemacht. Datenintegrationsserver 10 kann als Dienste Operationenwie z.B. eine "executeDataTransfer" Operation 32 bereitstellen.In diesem Fall könnenAnwendungen oder andere Systeme 14, die Datenspeichern 12 zugeordnetsind, oder andere Anwendungen oder Systeme, die nicht Datenspeichern 12 zugeordnetsind, einfach die "executeDataTransfer" Operation 32 aufrufen,um Datentransfers zwischen Datenspeichern 12 auszuführen. Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 in Verbindung mit Anwendungsintegrationslayer 30 alsTeil eines Infrastruktur-Dienste-Pakets installiert werden, dasauf Gruppen ausgerichtet ist, die einem Unternehmen zugeordnet sind,wie z.B. Produktentwicklungsteams, Lösungs- und Template-Entwicklungsteams,Implementierungsteams und Kunden.
[0040] BeispielhafteDetails, die Ressourcen, Quellschnittstellen 16a, Zielschnittstellen 16b,relationale Schnittstellen 18 und Sitzungsschnittstellen 20 betreffen,werden unten beschrieben.
[0041] Wieoben beschrieben, könnendie Datenentitäten,die in einem Massendatentransfer unter Verwendung von einer odermehreren programmatischen Schnittstellen 16 übertragenwerden, als Ressourcen bezeichnet werden. Jeder Datentransfer kanneine oder mehrere Ressourcen beinhalten, und jede Ressource kanneine oder mehrere Datenentitätenbeinhalten. In einem Ausführungsbeispielwerden Ressourcen innerhalb des Kontextes einer bestimmten programmatischenSchnittstelle 16 definiert. Z.B. können eine oder mehrere Ressourcenfür jedeQuellschnittstelle 16a definiert werden („Quellressourcen") und eine oder mehrere Ressourcenkönnenfür jedeZielschnittstelle 16b definiert werden („Zielressourcen"). Wenn bestimmteDatentransfers immer eine bestimmte Gruppe von Ressourcen exportierenoder importieren, dann wird diese Gruppe vorzugsweise in einer einzelnenQuellschnittstelle 16a bzw. Zielschnittstelle 16b definiert.Alle Datenentitäteninnerhalb eines Datenspeichers 12 müssen nicht unbedingt innerhalbvon Datenintegrationsserver 10 als Ressourcen bereitgestelltwerden. Ein Auftragsmanagementsystem kann z.B. erfordern, dass BenutzerKaufaufträgeunter Verwendung einer Transaktionsschnittstelle kreieren, so dasseine Zielschnittstelle 16b nicht für Datenentitäten innerhalbeines zugeordneten Datenspeichers 12 kreiert wird, dieAufträgedarstellen, und somit werden fürdiese Datenentitätenkeine Zielressourcen definiert. Jedoch können andere Datenentitäten, die historischeKaufauftragsdaten darstellen, innerhalb Datenspeicher als Quellressourcenzum Export unter Verwendung einer Quellschnittstelle 16a bereitgestelltwerden.
[0042] Ineinem Ausführungsbeispielmuss eine Ressourcendefinition füreine Ressource ein oder mehrere Infrastrukturdienstetypen oder anderengeeignete native Typen fürdie Ressource spezifizieren. Definieren einer Ressource kann ohneEinschränkungeinschließen:(1) Entwerfen von geeignetem Export- und Importschema; (2) Kreierendes native Typs fürdie Ressource; und (3) Identifizieren von geeigneter Datenintegrationsserver-Konfigurationsinformationenfür dieRessource. Jeder von diesen ist unten beschrieben.
[0043] Entwerfendes Export- und Importschemas füreine Ressource umfasst Identifizieren der Datenentitäten, dieexportiert bzw. importiert werden unter Verwendung der Quellschnittstelle 16a bzw.Zielschnittstelle 16b, für die die Ressource definiertist. In einfachen Fällenkönnendie Datenentitätenindividuelle Dateien, Tabellen oder andere in sich geschlosseneDatenobjekte sein. In komplexen Fällen können die Datenentitäten programmatischaus einem darunter liegenden Datenspeicher 12 konstruiertwerden. Nachdem die zu exportierenden oder importierenden Datenentitäten identifiziertwurden, könnendiese Datenentitätenschematisch definiert werden. Das Schema kann flach (wie z.B. für Text-Dateienoder relationale Tabellen) oder hierarchisch (wie z.B. für XML-Dateien oder komplexeDatenobjekte) sein, abhängigvon der Datenentität.
[0044] Erzeugendes native Typs füreine Ressource kann Definieren von native Typen umfassen, um das Schemajeder der Ressource zugeordneten Datenentität zu repräsentieren. Jede zu exportierendeoder importierende Datenentitätist einem nativen Typ zugeordnet. Native Typen können wieder verwendet werden,so dass es eine Eine-zu-Vielen Beziehung zwischen native Typen undDatenentitätenund somit auch eine Eine-zu-Vielen Beziehung zwischen native Typenund Ressourcen geben kann. Wenn nativ Typen definiert werden, können Basistypenverwendet werden, um die Dimensionen von Elementen, wo es möglich ist,zu begrenzen oder weiter zu spezifizieren. Basistypen können z.B.verwendet werden, um die maximale Länge von Elementen zu identifizieren.Wenn eine Datenentitätbenutzerdefinierte Felder (UDFs) oder andere Elemente auf einerimplementierungsspezifischen Basis haben kann, kann eine geeigneteDefinition von nativen Typen davon abhängen, ob die Datenentität flachoder hierarchisch ist. Fürflache Datenentitätenkann es sein, dass der native Typ keine Elemente entsprechend denUDFs benötigt.Stattdessen könnenprogrammatische Schnittstellen 16 bei Ausführung UDFsin einem „flexFeld" oder eineranderen geeigneten Stelle platzieren. Für hierarchische Datenentitäten kannder native Typ ein Element einschließen, um UDFs zu enthalten.Sobald Definitionen von nativen Typen komplett sind, können dieseDefinitionen von nativen Typen eingecheckt und versionsgeprüft werden.Ein geeignetes Script kann währenddes Aufbaus verwendet werden, um z.B. zugeordnete JAVA Klassen zugenerieren, die mit anderen programmatischen Schnittstellencodeskompiliert und gepackt werden können.Metadaten fürDefinitionen von nativen Typen könnenauch als Teil einer programmatischen Schnittstelle 16 veröffentlichtwerden.
[0045] Datenintegrationsserver-Konfigurationsinformationenkönnenidentifiziert werden müssen.Ressourcen könnenzusätzlicheInformationen benötigenoder zulassen, wenn sie in der Datenintegrationsserver-Konfigurationdefiniert werden. Die einfachsten Ressourcen können einfach auf den nativenTyp Bezug nehmen, der in ein Datentypattribut exportiert wurde.Zum Beispiel:
[0046] Wenndie Ressource keine Parameter oder Definitionsdaten benötigt, istdie Ressourcendefinition jetzt komplett.
[0047] KomplexereRessourcen könnenParameter beinhalten, um Flexibilität darin zu ermöglichen,wie Datenentitätenexportiert oder importiert werden. Eine beispielhafte Ressourcendefinition,die zwei Parameter einschließt,ist wie folgt:
[0048] Ressourcenkönnenauch Definitionsdaten beinhalten, die einen nativen Typ einschließen, derdie zu exportierende oder importierende Datenentität weiterdefiniert. Wenn eine Ressource solche Definitionsdaten benötigt, kannder benötigtenative Typ in einer <SourceType> oder <TargetType> Definition spezifiziertwerden. An dieser Stelle des Ressourcenentwurfs jedoch sollte eineAnforderung fürsolche Definitionsdaten vorzugsweise identifiziert und der unterstützende nativeTyp erzeugt werden. Eine relationale Quellschnittstelle 16a (diein diesem Beispiel eine Structured Query Language (SQL) Anfragebeinhaltet) kann z.B. den nativen Typ SQLSourceResourceConfig verwenden,um Definitionsdaten zur Verfügungzu stellen:
[0049] Schließlich können Metadatenfür zusätzlichenative Typen, die fürRessourcendefinition erzeugt wurden, mit anderen programmatischenSchnittstellen-Metadatengepackt werden, und JAVA Klassen für Ressourcendefinitions-Nativtypenkönnengeneriert, kompiliert und in das geeignete Packet mit anderen geeignetenprogrammatischen Schnittstellencodes eingebunden werden.
[0050] Beieinem Ausführungsbeispielkann ein einzelner Datentransfer mehrere Quelldatenspeicher 12 involvieren,und eine einzelne Quellschnittstelle 16a wird für jedenQuelldatenspeicher 12 implementiert (d.h. alle Quellressourcenfür denDatentransfer, die innerhalb desselben Quelldatenspeichers 12 sind,werden vorzugsweise unter Verwendung derselben Quellschnittstelle 16a bereitgestellt).So sind bei diesem Ausführungsbeispielmehrere Quellschnittstellen 16a notwendig, wenn der Datentransfermehrere Quelldatenspeicher 12 involviert. Die eine odermehreren Quellschnittstellen 16a für einen Datentransfer sindvorzugsweise als Attribute in einem oder mehreren <Step> Elementen des Datentransfersspezifiziert, wobei jeder solche Schritt Export von einer oder mehrerenRessourcen von einem Datenspeicher 12 beinhaltet, der über einezugeordnete Quellschnittstelle 16a verfügt. Da bei einem Ausführungsbeispieleine Quellschnittstelle 16a für die Dauer eines Datentransfersbestehen bleibt (d.h. überalle Schritte des Datentransfers), kann es wünschenswert sein, Konfigurationsinformationenfür Verbindungsressourcenoder Parameter zu verwenden und einen Konfigurationstyp für Quellschnittstelle 16a entsprechendzu definieren.
[0051] Beieinem Ausführungsbeispielwird eine Quellschnittstelle 16a für jede Ressource, die in einenDatentransfer unter Verwendung von Quellschnittstelle 16a involviertist, einen Iterator an Controller 26 zurückschicken.Für jedeRessource wird der Iterator Datenentitäten zurückschicken, die mit der Ressourcendefinition übereinstimmen.Für FlatFiles oder andere flache Datenobjekte mit UDFs, platziert Quellschnittstelle 16a vorzugsweisezusätzlicheName/Wert Paare in „flexFeldern" oder anderengeeigneten Stellen fürdie Datenobjekte. Fürhierarchische Datenobjekte könnenUDFs explizit definiert werden. Ressourcendefinitionen sind vorzugsweiseauf die Datenentitäten,die unter Verwendung von Quellschnittstelle 16a exportiertwerden, zugeschnitten. Wenn das Schema einer Ressource bekannt ist,aber die Daten zum Besetzen der Ressource von Datentransfer zu Datentransferabweichen können,könneneher Parameter verwendet werden, als verschiedene Ressourcen zudefinieren. Jedoch kann es fürschematisch unterschiedliche Datenentitäten notwendig sein, unterschiedlicheRessourcen zu definieren. Definitionsdaten können verwendet werden, um Ressourcenflexibilität weiterauszudehnen.
[0052] Beieinem AusführungsbeispielkönnenSitzungsschnittstellen 20 verwendet werden, um Verbindungsressourcenoder -zuständezu halten. Quellschnittstellen 16a und Zielschnittstellen 16b können sichSitzungsschnittstellen 20 teilen. Somit können schwereRessourcen, die am Sitzungsschnittstellenlevel geteilt wurden, Vorteilaus dieser Funktionalitätziehen. Wie oben beschrieben ist, können Sitzungsschnittstellen 20 zwischen Datentransfersbestehen bleiben. Somit sollten, besonders wenn eine Quellschnittstelle 16a nurfür dieDauer eines einzelnen Datentransfers bestehen bleibt, Verbindungsressourcenoder -zustände,die zwischen verschiedenen Datentransfers bestehen bleiben sollen,vorzugsweise in einer Sitzungsschnittstelle 20 enthalten sein.
[0053] Beieinem Ausführungsbeispielstellt eine Quellschnittstelle 16a eine einzelne Instanzeiner geeigneten JAVA Quellschnittstelle API dar. Eine Quellschnittstelle 16a kann dafür ausgelegtsein, alle Ressourcen von einem logischen Datenspeicher zu exportieren,wie z.B. ein einzelnes relationales Schema oder eine Sammlung vonverbundenen Flat Files. Eine Quellschnittstelle 16a kannin der Datenintegrationsserver-Konfigurationsdatei durch ihren Namenund die Implementierungsklasse definiert werden.
[0054] ZumBeispiel:
[0055] UmWiederverwendung von gemeinsamen Schnittstellenmechanismen zuzulassen,könnengeeignete Basisquellschnittstellen 16a in der Datenintegrationsserver-Konfigurationsdateiauf Quelltypen definiert werden.
[0056] ZumBeispiel:
[0057] Indiesem Fall implementiert der Quelltyp MySourceType die JAVA QuellschnittstelleAPI, die mehreren Quellschnittstellen 16a erlaubt, sichauf denselben Quelltyp zu beziehen. Obwohl jede dieser Quellschnittstellen 16a über unterschiedlicheRessourcen und unterschiedliche Konfigurationsinformationen verfügen kann,verwenden diese Quellschnittstellen 16a alle den Basisquellschnittstellencodewieder (d.h. den Code in der Klasse corn.i2.myProduct.mySource indiesem Beispiel).
[0058] Beieinem AusführungsbeispielkönnenQuelltypen, die in einem <SourceType> Element in der Datenintegrationsserver-Konfigurationsdateidefiniert sind, einen Konfigurationstyp bestimmen. Dieser Konfigurationstypkann ein nativer Typ sein, der alle passenden Konfigurationsinformationenfür dieQuellschnittstelle 16a einschließt, wie Datenbankverbindungsinformationen.Zum Beispiel:
[0059] Beidiesem Beispiel ist der configurationType von SQLSource SQLSourceConfig,ein definierter nativer Typ. Konfigurationselemente in der Datenintegrationsserver-Konfigurationsdateistimmen mit dieser Typ- Definition überein. Folgendes ist einebeispielhafte Verwendung des SQLSourceConfig Konfigurationstyps.
[0060] Wieoben beschrieben bleibt bei einem Ausführungsbeispiel eine Quellschnittstelle 16a ausschließlich für die Dauereines einzelnen Datentransfers bestehen. Wenn Quellschnittstelle 16a mitdem Datentransfer beginnt, wird eine geeignete Methode aufgerufen,welche zu Quellschnittstelle 16a das geeignete Konfigurationsobjekt,falls es eines gibt, weiterleitet. Da bei einem AusführungsbeispielQuellschnittstelle 16a für die Dauer des Datentransfersbestehen bleibt (d.h. überalle Schritte), wird diese Methode nur einmal aufgerufen. Wenn irgendeineKonfiguration auf einer pro Ressourcen Basis notwendig ist, kannes wünschenswertsein, eine geeignete Methode entsprechend zu implementieren. BeiBeendigung des Datentransfers, kann eine geeignete Methode aufgerufenwerden, um jede Verbindung oder andere Ressourcen, die Quellschnittstelle 16a zugeordnetsind, frei zu geben.
[0061] Quelltypen,die in einem <SourceType> Element in der Datenintegrationsserver-Konfigurationsdatei definiertsein können,könneneinen Ressourcendefinitionstyp bestimmen, der ein nativer Typ ist,welcher dazu verwendet wird, um Ressourcen für Quellschnittstellen 16a zudefinieren. Zum Beispiel:
[0062] Dieskann ein kompletter <SourceType> Element-Tag für SQLSourceTypesein. Er bezieht sich auf den definierten RessourcendefinitionstypSQLSourceResourceConfig.
[0063] Folgendesist eine Beispielsdefinition füreine Instanz der SQLSource relationalen Quellschnittstelle 16a undzugeordneten Ressourcen, die diesen nativen Typ verwenden:
[0064] Beieinem Ausführungsbeispielkann ein einzelner Datentransfer mehrere Zieldatenspeicher 12 involvierenund eine einzelne Zielschnittstelle 16a kann für jedenZieldatenspeicher 12 implementiert werden (d.h. alle Zielressourcenfür denDatentransfer, die innerhalb desselben Zieldatenspeichers 12 liegen,werden vorzugsweise unter Verwendung derselben Zielschnittstelle 16a bereitgestellt).Somit könnenbei diesem Ausführungsbeispielmehrere Zielschnittstellen 16a benötigt werden, wenn der Datentransfermehrere Zieldatenspeicher 12 involviert. Die eine odermehreren Zielschnittstellen 16a für einen Datentransfer sindvorzugsweise in einem oder mehreren <Step> Elementendes Datentransfers als Attribute spezifiziert, wo jeder solche Schritt Importvon einer oder mehreren Ressourcen in einen Datenspeicher 12 miteiner zugeordneten Zielschnittstelle 16a involviert. Dabei einem Ausführungsbeispieleine Zielschnittstelle 16a nur für die Dauer eines einzelnen Schrittseines Datentransfers bestehen bleibt, kann es wünschenswert sein, die Zielschnittstelle 16b imRahmen eines Sitzungsschnittstellentyps und Sitzungsschnittstelle 20 zudefinieren, um Verbindungsressourcen oder Parameter über einengesamten Datentransfer zu konfigurieren. Ein Konfigurationstyp kannbeim Sitzungsschnittstellentyp oder Zieltyplevel für Konfigurationsinformationendefiniert werden.
[0065] Zielschnittstellen 16b können Anfangs-,Verarbeitungs- und Endmethoden fürjede Ressource bereitstellen. Bei einem Ausführungsbeispiel muss die Verarbeitungsmethodefür jedeRessource Datenobjekte verarbeiten, die mit der Ressourcentypdefinitionfür dieRessource übereinstimmen.Für FlatFiles oder andere flache Datenobjekte mit UDFs, kann Zielschnittstelle 16b erwarten,dass jegliche zusätzlichenName/Wert Paare in den „flexFeldern" oder ananderen Stellen fürdie Datenobjekte sind. Fürhierarchische Datenobjekte, könnenUDFs explizit definiert werden. Ressourcendefinitionen sind vorzugsweiseauf die Datenentitätenzugeschnitten, die unter Verwendung von Zielschnittstelle 16b importiertwerden. Wenn das Schema einer Ressource bekannt ist, aber die Datenzum Besetzen der Ressource von Datentransfer zu Datentransfer abweichenkönnen,könneneher Parameter benutzt werden, als unterschiedliche Ressourcen zudefinieren. Für schematischunterschiedliche Datenentitätenjedoch kann es notwendig sein, unterschiedliche Ressourcen zu definieren.Definitionsdaten könnenverwendet werden, um Ressourcenflexibilität weiter auszuweiten.
[0066] Beieinem AusführungsbeispielkönnenSitzungsschnittstellen 20 verwendet werden, um Verbindungsressourcenoder -zuständezu halten. Quellschnittstellen 16a und Zielschnittstellen 16b können Sitzungsschnittstellen 20 teilen.Somit könnenschwere Ressourcen, die am Sitzungsschnittstellenlevel geteilt werden, ausdieser FunktionalitätVorteil ziehen. Wie oben beschrieben ist, können Sitzungsschnittstellen 20 zwischen Datentransfersbestehen bleiben. Somit sollten, besonders wenn eine Zielschnittstelle 16b nurfür eineneinzelnen Schritt eines Datentransfers bestehen bleibt, Verbindungsressourcenoder -zustände,die zwischen mehreren Datentransfers bestehen bleiben sollen, vorzugsweisein einer Sitzungsschnittstelle 20 enthalten sein.
[0067] Beieinem Ausführungsbeispielrepräsentierteine Zielschnittstelle 16b eine einzelne Instanz einergeeigneten JAVA Zielschnittstelle API. Eine Zielschnittstelle 16b kanndafür ausgelegtsein, alle Ressourcen in einen logischen Datenspeicher zu importieren,wie z.B. ein einzelnes relationales Schema oder eine Sammlung vonverbundenen Flat Files. Eine Quellschnittstelle 16a kannin der Datenintegrationsserver-Konfigurationsdatei durch ihren Namenund die Implementierungsklasse definiert werden. Zum Beispiel:
[0068] UmWiederverwenden von gemeinsamen Schnittstellenmechanismen zuzulassen,könnengeeignete Basis-Zielschnittstellen 16b in der Datenintegrationsserver-Konfigurationsdateiauf Zieltypen definiert werden. Zum Beispiel:
[0069] Beieinem AusführungsbeispielkönnenZieltypen, die in einem <TargetType> Element in der Datenintegrationsserver-Konfigurationsdateidefiniert sind, einen Konfigurationstyp bestimmen. Dieser Konfigurationstypkann ein nativer Typ sein, der alle passenden Konfigurationsinformationenfür dieZielschnittstelle 16b beinhalten kann, wie Datenbankverbindungsinformationen.Zum Beispiel:
[0070] DerconfigurationType von FlatFileTarget ist in diesem Beispiel FlatFileTargetConfig,was ein definierter nativer Typ ist. Konfigurationselemente in derDatenintegrationsserver-Konfigurationsdateistimmen mit dieser Typendefinition überein. Folgendes ist einebeispielhafte Verwendung des FlatFileTargetConfig Konfigurationstyps:
[0071] Wieoben beschrieben wurde, bleibt bei einem Ausführungsbeispiel eine Zielschnittstelle 16b nurfür eineneinzelnen Schritt innerhalb eines Datentransfers bestehen. WennZielschnittstelle 16b den Schritt beginnt, wird eine geeigneteMethode aufgerufen, welches das entsprechende Konfigurationsobjekt,falls eines vorhanden ist, an Zielschnittstelle 16b weiterleitet.Wo Zielschnittstelle 16b nur für den aktuellen Schritt bestehenbleibt, kann diese Methode mehrere Male aufgerufen werden (d.h.einmal fürjeden Schritt des Datentransfers). Wenn irgendeine Konfigurationauf einer pro Ressourcen Basis notwendig ist, kann es wünschenswert sein,eine geeignete Methode entsprechend zu implementieren. Bei Abschlussdes Schritts kann eine geeignete Methode aufgerufen werden, um jedeVerbindung oder andere, der Zielschnittstelle 16b zugeordnete Ressourcenfreizugeben.
[0072] Zieltypen,die in einem <TargetType> Element in der Datenintegrationsserver-Konfigurationsdateidefiniert werden können,könneneinen Ressourcen-Definitionstyp bestimmen, der ein nativer Typ ist,der verwendet wird, um Ressourcen für Zielschnittstellen 16b zudefinieren. Zum Beispiel:
[0073] Dieskann ein kompletter <TargetType> Elementen-Tag für SQLTargetTypesein. Er bezieht sich auf den definierten Ressourcen-DefinitionstypSQLTargetResourceConfig. Das Folgende ist eine beispielhafte Definitionfür eineInstanz der SQLTarget relationalen Zielschnittstelle 16b undzugeordneter Ressourcen unter Verwendung dieses nativen Typs:
[0074] Beieinem Ausführungsbeispiel,wenn eine oder mehrere programmatische Schnittstellen 16 für einen Datentransferinnerhalb einer Sitzungsschnittstelle 20 definiert werden,dann wird Sitzungsschnittstelle 20 am Anfang des Datentransfersinstanziiert. Jede programmatische Schnittstelle 16, dieinnerhalb einer Sitzungsschnittstelle 20 definiert ist,wird Zugang zu Konfigurationsinformationen haben, die Sitzungsschnittstelle 20 durcheinen geeigneten JAVA Funktionsaufruf oder anderweitig zugeordnetist. Eine Sitzungsschnittstelle 20 kann konfiguriert werden,nur fürdie Dauer eines einzelnen Datentransfers bestehen zu bleiben, sodass Sitzungsschnittstelle 20 bei Abschluss des Datentransfersfreigegeben wird. Alternativ kann eine Sitzungsschnittstelle 20 konfiguriertwerden, um überdie Dauer des Datentransfers hinaus bestehen zu bleiben, so dassSitzungsschnittstelle 20 nicht frei gegeben wird, bevorDatenintegrationsserver 10 nicht heruntergefahren wurde.
[0075] Beieinem Ausführungsbeispielrepräsentierteine Sitzungsschnittstelle 20 eine einzelne Instanz einer geeignetenJAVA Sitzungsschnittstelle API. Als Beispiel können alle Quellschnittstellen 16a undZielschnittstellen 16b, die Zugang zu Sitzungsschnittstelle 20 innerhalbihres Kontextes benötigen,wie folgt definiert werden.
[0076] UmSitzungsschnittstelle 20 ihre eigene Konfigurationsinformationzur Verfügungzu stellen, die in fast allen Fällennotwendig ist, kann Sitzungsschnittstelle 20 mit einemgeeigneten <SessionObjectType> definiert werden.Dies erlaubt die Verwendung eines configurationType Attributs. ZumBeispiel:
[0077] Indiesem Fall implementiert der Sitzungsschnittstellentyp MySessionObjectTypedie JAVA Sitzungsschnittstelle API, was es mehreren Sitzungsschnittstellen 20 erlaubt,auf denselben Sitzungs-Objekttyp Bezug zu nehmen.
[0078] Beieinem AusführungsbeispielkönnenSitzungs-Objekttypen, die in einem <SessionObjectType> Element in der Datenintegrationsserver-Konfigurationsdateidefiniert sind, einen Konfigurationstyp bestimmen. Dieser Konfigurationstypkann ein nativer Typ sein, der alle passenden Konfigurationsinformationenfür dieSitzungsschnittstelle 20 beinhaltet, wie z.B. Datenbankverbindungsinformationen.Zum Beispiel:
[0079] DerconfigurationType von SQLTargetSession ist in diesem Fall SQLTargetSessionConfig,ein definierter nativer Typ. Die Konfigurationselemente in der Datenintegrationsserver-Konfigurationsdateistimmen mit dieser Typendefinition überein. Das Folgende ist einebeispielhafte Verwendung des SQLTargetSessionConfig Konfigurationstyps:
[0080] Beieinem Ausführungsbeispielkann Datenintegrationsserver 10 jegliche Anzahl von Standard-Quellschnittstellen 16a,-Zielschnittstellen 16b und -Sitzungsschnittstellen 20 unterstützen, umallgemeine Fähigkeit zuDatenexport und -import zur Verfügungzu stellen. Nur als Beispiel und nicht als Limitierung können programmatischeStandard-Schnittstellen 16 für Flat Files,relationale Datenspeicher 12, XML Dateien und alle anderengeeigneten Datenspeicher 12 oder Datenobjekte zur Verfügung gestelltwerden. Standard-Sitzungsschnittstellen 20 können zurVerfügunggestellt werden, um Daten von bestimmten Datenspeichern 12 oder Datenobjektenzu exportieren und importieren. Nur als Beispiel und nicht als Limitierungkann es notwendig sein, eine relationale Standard-Sitzungsschnittstelle 20 inVerbindung mit relationalen programmatischen Standard-Schnittstellen 16 zuverwenden.
[0081] EineStandard-Flat-File-Quellschnittstelle 16a innerhalb vonDatenintegrationsserver 10 kann Exportieren von Daten voneiner Gruppe von Flat Files erlauben. Bei einem Ausführungsbeispielentspricht jeder exportierte Flat File, einer einzelnen Ressource,wenn ein Datentransfer definiert wird. Eine Ressourcendefinition undein nativer Typ werden entsprechend für jeden Flat File definiert.Konfigurationsinformationen füreine Standard-Flat-File-Quellschnittstelle 16a können verwendetwerden, um das Format, den Verzeichnisort und Extension von jedemFlat File anzugeben.
[0082] EineStandard-Flat-File-Zielschnittstelle 16b innerhalb vonDatenintegrationsserver 10 kann Schreiben oder anderweitigesImportieren von Flat Files als Ausgabe von Datentransfers zulassen.Bei einem Ausführungsbeispielentspricht jeder importierte Flat File einer einzelnen Ressource,wenn ein Datentransfer definiert wird. Eine Ressourcendefinitionund ein nativer Typ werden fürjeden Flat File entsprechend definiert. Konfigurationsinformationenfür eineStandard-Flat-File-Zielschnittstelle 16b können verwendetwerden, um das Format, den Verzeichnisort und Extension anzugeben,um Daten in Flat Files zu Schreiben oder anderweitig zu importieren.
[0083] Einerelationale Standard-Quellschnittstelle 16a innerhalb vonDatenintegrationsserver 10 kann einen allgemeinen Weg zurVerfügungstellen, um Daten von einem relationalen Datenspeicher 12 zuexportieren. Relationale Standard-Quellschnittstelle 16a kannmit geeigneten Datenbankverbindungsinformationen konfiguriert werdenund kann auch logisch-zu-physikalische Zuweisungsinformationen für die zuexportierenden Ressourcen beinhalten. Bei einem Ausführungsbeispielentspricht jede fürrelationale Standard-Quellschnittstelle 16a definierteRessource einem Ergebnis-Set,das der darunter liegende Datenspeicher 12 generiert. DieRessourcen-Konfiguration kann ein SQL Statement einschließen, dasnotwendig ist, um das gewünschte Ergebnis-Setzu generieren. Ressourcenkonfigurationen können Werte, die gebunden werden,wenn der Datentransfer ausgeführtwird, einschließen,die als Parameter bezeichnet werden. Verwenden von Parametern kannes einer einzelnen Ressourcenkonfiguration erlauben, eine Vielzahlvon Datentransfers zu unterstützen.
[0084] Einerelationale Standard-Zielschnittstelle 16b innerhalb vonDatenintegrationsserver 10 kann einen allgemeinen Weg zurVerfügungstellen, um Daten in einem relationalen Datenspeicher 12 zuimportieren oder zu löschen. Ähnlich zurelationaler Standard-Quellschnittstelle 16a kann ein SQLStatement, das nötigist, um die Import- oder Löschoperationauszuführen,verwendet werden, um jede Ressource, die für relationale Standard-Zielschnittstellen 16b definiertist, zu konfigurieren. Ressourcenkonfigurationen können Werte,die gebunden werden, wenn der Datentransfer ausgeführt wird,einschließen.Relationale Standard-Zielschnittstelle 16b kann konfiguriertwerden, um diese Werte von Quelldatenentitäten während des Datentransfers zubesetzen oder um diese Werte als Parameter zu definieren, ähnlich denRessourcen fürrelationale Standard-Quellschnittstelle 16a. Wenn einebestimmte relationale Standard-Zielschnittstelle 16b nichtfür Massenimportoperationenhinsichtlich bestimmter Datenspeicher 12 gedacht ist, kanneine andere relationale Standard-Zielschnittstelle 16b implementiertwerden, um eine hoch optimierte Lösung für solche Situationen zur Verfügung zustellen.
[0085] Beieinem Ausführungsbeispielmuss eine relationale Standard-Zielschnittstelle 16b immerin Zusammenhang mit einer standardmäßigen oder anderen relationalenSitzungsschnittstelle 20 verwendet werden und innerhalbdieser Sitzungsschnittstelle 20 definiert werden, die mitgeeigneten Datenbankverbindungs- und logisch-zu-physikalischen Zuweisungsinformationenkonfiguriert werden kann. Dies ist der Fall, da ein Datentransfermehrere Schritte beinhalten kann, von denen sich jeder auf einenanderen Datenspeicher 12 beziehen kann, so dass Verbindungsinformationenam Sitzungsschnittstellen-Level beibehalten werden müssen, umfür dengesamten Datentransfer bestehen zu bleiben. Die Verbindungskonfigurationfür einerelationale Standard-Sitzungsschnittstelle 20 kann ähnlich mitder fürrelationale Standard-Quellschnittstelle 16a sein. Wenn einerelationale Standard-Zielschnittstelle 16b für Massenimportoperationenhinsichtlich bestimmter Datenspeicher 12 hoch optimiertist, kann eine entsprechende relationale Standard-Sitzungsschnittstelle 20 zurVerfügunggestellt werden, um jegliche Abhängigkeitenunter den Schritten von Datentransfers aufzulösen und um die Ziel-Datenspeicher 12 inder optimalen Reihenfolge zu laden.
[0086] EineXML Standard-Quellschnittstelle 16a innerhalb von Datenintegrationsserver 10 kanneine grundlegende Schnittstelle zur Verfügung stellen, um bestimmteXML Daten, die mit Datenintegrationsserveranforderungen konformsind, zu exportieren. Bei einem Ausführungsbeispiel arbeitet eineXML Quellschnittstelle 16a, indem jedes Nachfolgerelementdes Wurzelelements der XML Quelldatei als ein Datenobjekt exportiert wird.XML Standard-Quellschnittstelle 16a muss nicht die Fähigkeitzur Verfügungstellen, von beliebigem XML auf den nativen Typ der Ressource abzubildenoder individuelle exportierte Datenobjekte zu analysieren oder zuvalidieren.
[0087] EineStandard XML Zielschnittstelle 16b innerhalb von Datenintegrationsserver 10 kanneine grundlegende Schnittstelle zum Importieren bestimmter XML Datenzur Verfügungstellen, die mit Datenintegrationsserveranforderungen konform ist.Bei einem Ausführungsbeispielschreibt Standard XML Zielschnittstelle 16b eine XML Dateifür jedeRessource und arbeitet, indem jedes Datenobjekt als ein Nachfolgerelementdes Wurzelelements der XML Datei eingefügt wird. Wie Standard XML Quellschnittstelle 16a mussStandard XML Zielschnittstelle 16b nicht die Fähigkeitzur Verfügungstellen, individuelle importierte Datenobjekte zu analysieren oderzu validieren.
[0088] 2 stellt ein beispielhaftesVerfahren einer Datenintegration unter Verwendung eines Datenintegrationssystemsmit programmatischen Quell- und Zielschnittstellen dar. Das Verfahrenist der Einfachheit halber so beschrieben, dass es einen einzelnenMassendatentransfer involviert, bei dem ein oder mehrere Quellschnittstellen 16a verwendetwerden, die nur fürdie Dauer des Datentransfers bestehen bleiben, ein oder mehrereZielschnittstellen 16b verwendet werden und jede Zielschnittstellenur währendeines einzelnen Schritts des Datentransfers bestehen bleibt, eineSitzungsschnittstelle 28 zur Verfügung gestellt wird, die nurfür die Dauerdes Datentransfers bestehen bleibt und eine Transformationsschnittstellezur Verfügunggestellt wird, die nur fürdie Dauer des Datentransfers bestehen bleibt.
[0089] DasVerfahren beginnt bei Schritt 100, wo eine Anwendung oderanderes System 14 Datenintegrationsserver 10 aufruftund einen Massendatentransfer von einem oder mehreren Quelldatenspeichern 12a zu einemoder mehreren Zieldatenspeichern 12b anfordert. Bei einemAusführungsbeispielinstanziiert Datenintegrationsserver eine Sitzungsschnittstelle 20 für den Datentransferbei Schritt 102, instanziiert eine Transformationsschnittstelle 28 für den Datentransferbei Schritt 104, instanziiert eine oder mehrere Quellschnittstellen 16a für den einenoder die mehreren Quelldatenspeicher 12a für den Datentransferbei Schritt 106 und instanziiert eine oder mehrere Zielschnittstellen 16b für den einenoder die mehreren Zieldatenspeicher 12b für einen erstenSchritt des Datentransfers bei Schritt 110. Während dieseReihenfolge bei einem besonderen Ausführungsbeispiel bevorzugt werdenkann, könnenSchnittstellen 16a, 16b, 20 und 28 injeder geeigneten Reihenfolge instanziiert werden.
[0090] BeiSchritt 110 instruiert Datenintegrationsserver 10 jedeQuellschnittstelle 16a, einen oder mehrere angeforderteRessourcen von ihrem Quelldatenspeicher 12a zu extrahieren.Als Antwort bei Schritt 112 extrahiert jede Quellschnittstelle 16a eineDatenidentität(z.B. eine Reihe, ein Objekt oder andere Datenentität), die dereinen oder den mehreren angeforderten Ressourcen zugeordnet ist,von ihrem Quelldatenspeicher 12a. Die Datenentität wird zuTransformationsschnittstelle 28 bei Schritt 114 weitergeleitet,und bei Schritt 116 wendet Transformationsschnittstelle 28 ihrezugeordnete Transformationslogik zum Transformieren der extrahiertenDatenentitätan. Die transformierte Datenentität wird dann an eine geeigneteZielschnittstelle 16b bei Schritt 118 weitergeleitetund Zielschnittstelle 16b lädt die Datenentität in ihrenZieldatenspeicher 12b bei Schritt 120. Fall einenächsteDatenentitätfür dieeine oder die mehreren angeforderten Ressourcen bei Schritt 122 existiert,dann kehrt das Verfahren zu Schritten 112-118 zum Extrahieren, Transformierenund Laden des nächstenDatenentitätzurück.
[0091] Beieinem Ausführungsbeispielwerden Schritte 112-118 individuell für jede Datenentität, die dereinen oder den mehreren angeforderten Ressourcen innerhalb jedesQuelldatenspeichers 12a zugeordnet ist, ausgeführt, entwederseriell (z.B. Datenentitätfür Datenentität für einenersten Quelldatenspeicher 12a, Datenentität für Datenentität für einenzweiten Quelldatenspeicher 12a, Datenentität für Datenentität für einendritten Quelldatenspeicher 12a, und so weiter), im Wesentlichensimultan (Datenentitätfür Datenentität für jeden Quelldatenspeicher 12a,wobei Datenentitätenfür einenersten Quelldatenspeicher 12a, im Wesentlichen simultanmit Datenentitätenfür einenzweiten Quelldatenspeicher 12a, einen dritten Quelldatenspeicher 12a und soweiter verarbeitet werden) oder in jeder anderen geeigneten Weise.Wenn die Transformationsschnittstelle 28 zugeordnete Transformationnicht auf einer Datenentitätfür Datenentität Basisausgeführtwerden kann, dann kann ein Fluss von Datenentität für Datenentität auf beidenSeiten der Transformation erreicht werden (z.B. Datenentität für Datenentität in dieTransformation, Transformation von allen Datenentitäten, dannDatenentitätfür Datenentität aus derTransformation), um effektiv ein im Wesentlichen ähnlichesResultat zu erlangen.
[0092] Wenneine nächsteDatenentitätfür dieeine oder die mehreren angeforderten Ressourcen bei Schritt 122 nichtexistiert, dann fährtdas Verfahren mit Schritt 124 fort, wo bei diesem besonderenAusführungsbeispielDatenintegrationsserver 10 die eine oder mehreren Zielschnittstellen 16b für den erstenSchritt des Datentransfers freigibt. Wenn es einen nächsten Schrittdes Datentransfers bei Schritt 126 gibt, dann instanziiert Datenintegrationsserver 10 eineoder mehrere Zielschnittstellen 16b für den einen oder die mehrerenZieldatenspeicher 12b fürden nächstenSchritt des Datentransfers bei Schritt 128 und das Verfahrenkehrt zu Schritt 110 zurück. Wenn es keinen nächsten Schrittdes Datentransfers bei Schritt 126 gibt, dann gibt Datenintegrationsserver 10 alleQuell-, Sitzungs- und Transformationsschnittstellen 16a, 20 und 28 für den Datentransfer beiSchritt 130 frei und das Verfahren endet.
[0093] Obwohldie vorliegende Erfindung mit einigen Ausführungsbeispielen beschriebenwurde, kann dem Fachmann eine Vielzahl von Änderungen, Ersetzungen, Variationen,Abänderungenund Modifikationen naheliegen, und es ist beabsichtigt, dass dievorliegende Erfindung sämtlichesolche Änderungen,Ersetzungen, Variationen, Abänderungenund Modifikationen einschließt,die in den Gedanken und Umfang der beigefügten Ansprüche fallen.
权利要求:
Claims (38)
[1] System zum Ausführen von Massendatentransferszwischen persistenten Datenspeichern, aufweisend: eine odermehrere programmatische Quellschnittstellen, wobei jede einem entsprechendenQuelldatenspeicher zugeordnet ist, entsprechend einer gemeinsamenprogrammatischen Quellschnittstellenspezifikation definiert istund währendeines Massendatentransfers bereitgestellt wird, um Extrahieren eineroder mehrerer Datenentitätenvon dem entsprechenden Quelldatenspeicher zum Laden in irgendeinenoder mehrere ausgewählteZieldatenspeicher währenddes Massendatentransfers zu ermöglichen;und eine oder mehrere programmatische Zielschnittstellen, wobeijede einem entsprechenden Zieldatenspeicher zugeordnet ist, entsprechendeiner gemeinsamen programmatischen Zielschnittstellenspezifikationdefiniert ist und währendeines Massendatentransfers bereitgestellt wird, um Laden einer odermehrerer Datenentitäten,die von irgendeinem oder mehreren ausgewählten Quelldatenspeichern während desMassendatentransfers extrahiert wurden, in den entsprechenden Zieldatenspeicherzu ermöglichen; wobeijede programmatische Schnittstelle: dem entsprechenden Datenspeichereine Abstraktion von Massendatentransferoperationen zur Verfügung stellt,so dass eigener Code nicht in Zusammenhang mit dem entsprechendenDatenspeicher entwickelt werden muss, um Massendatentransfers zwischendem entsprechenden Datenspeicher und jedem anderen bestimmten Datenspeicherzu ermöglichen;und spezifische Details, die dem entsprechenden Datenspeicherzugeordnet sind, isoliert, so dass eigener Code nicht in Zusammenhangmit den Massendatentransferoperationen entwickelt werden muss, umMassendatentransfers zwischen dem entsprechenden Datenspeicher undjedem anderen bestimmten Datenspeicher zu ermöglichen.
[2] System nach Anspruch 1, wobei die programmatischenSchnittstellen JAVA Schnittstellen aufweisen.
[3] System nach Anspruch 1, wobei: eine programmatischeSchnittstelle als eine Industriestandardschnittstelle bereitgestelltwerden kann, die Massendatentransfers entsprechend eines Industriestandardprotokollsunterstützt;und das System in der Lage ist, um: eine Anfrage von einemClient zu empfangen, die anzeigt, dass der Client gemäß dem IndustriestandardprotokollDaten von einem Datenspeicher extrahiert oder in einen Datenspeicherlädt; dieentsprechende programmatische Schnittstelle zu erzeugen, um Extraktionder Daten vom oder Laden der Daten in den Datenspeicher zu ermöglichen;und zur Datenextraktion, währenddie programmatische Quellschnittstelle die von dem Datenspeicherextrahierten Daten produziert, die abgehenden Daten gemäß dem Industriestandardprotokollzum Client zu senden; oder zum Datenladen, während dieDaten gemäß dem Industriestandardprotokollvom Client ankommen, die eingehenden Daten zum Laden in den Datenspeicheran die programmatische Zielschnittstelle zu senden.
[4] System nach Anspruch 1, wobei ein bestimmter Datenspeicherein Quelldatenspeicher oder ein Zieldatenspeicher für einenbestimmten Massendatentransfer sein kann, abhängig davon, ob Datenentitäten während desbestimmten Massendatentransfers von dem bestimmten Datenspeicherextrahiert oder in den bestimmten Datenspeicher geladen werden.
[5] System nach Anspruch 1, wobei Laden von Datenentitäten Einfügen, Updatenoder Löschenvon Datenentitätenaufweist.
[6] System nach Anspruch 1, wobei: innerhalb jederprogrammatischen Schnittstelle eine oder mehrere Ressourcen, definiertsind die Datenentitätenrepräsentieren,welche in dem entsprechenden Datenspeicher enthalten sind, und dasSystem in der Lage ist, als Antwort auf eine Anfrage, einen Massendatentransferauszuführen,der eine oder mehrere in einem oder mehreren Datenspeichern enthalteneRessourcen involviert, jede programmatische Schnittstelle zu erzeugen,innerhalb welcher mindestens eine der Ressourcen definiert wird.
[7] System nach Anspruch 6, wobei eine einmal erzeugteprogrammatische Schnittstelle bestehen bleibt: im Falle einerprogrammatischen Quellschnittstelle während der Gesamtheit des Massendatentransfers,bevor sie freigegeben wird; und im Falle einer programmatischenZielschnittstelle währendeines einzelnen Schrittes des Massendatentransfers, bevor sie freigegebenwird.
[8] System nach Anspruch 6, weiter eine oder mehrereSitzungsschnittstellen aufweisend und wobei: eine oder mehrereprogrammatische Schnittstellen innerhalb jeder Sitzungsschnittstelledefiniert sind; jede Sitzungsschnittstelle von ihrer einenoder mehreren definierten programmatischen Schnittstellen Details isoliert,die Expotr und Import von in einen Massendatentransfer involviertenRessourcen zugeordnet sind; und das System weiter in der Lageist, um in Verbindung mit Erzeugung der programmatischen Schnittstellenjede Sitzungsschnittstelle zu erzeugen, innerhalb welcher mindestenseine der programmatischen Schnittstellen definiert ist.
[9] System nach Anspruch 8, wobei eine einmal erzeugteSitzungsschnittstelle entweder währendder Gesamtheit des Massendatentransfers oder während der Gesamtheit von verschiedenenDatentransfers entsprechend ihrer Definition bestehen bleibt.
[10] System nach Anspruch 1, wobei das System in derLage ist: jeder programmatischen Schnittstelle zu erlauben,Datenentitätenin einem gewünschten,der programmatischen Schnittstelle eigenen Format zu produzierenoder zu verarbeiten; Datenentitäten, die in einem ersten, einerprogrammatischen Quellschnittstelle eigenen Format erstellt wurden,in ein zweites, einer programmatischen Zielschnittstelle eigenesFormat nur wenn notwendig, weil das erste und zweite Format unterschiedlichist zu konvertieren.
[11] System nach Anspruch 1, weiter aufweisend eine odermehrere relationale Schnittstellen als Alternativen zu programmatischenSchnittstellen, wobei jede relationale Schnittstelle einem entsprechendenrelationalen Datenspeicher zugeordnet ist und innerhalb des Datenintegrationsserverswährendeines Massendatentransfers bereitgestellt wird, um es dem Datenintegrationsserverzu ermöglichen,Datenentitätenwährenddes Massendatentransfers direkt von dem entsprechenden relationalenDatenspeicher zu lesen und direkt in den entsprechenden relationalenDatenspeicher zu schreiben, ohne eine programmatische Schnittstellezu verwenden.
[12] System nach Anspruch 11, wobei jede relationaleSchnittstelle aufweist: eine Schnittstellen-Schemadatei, dieeine datenbankneutrale Beschreibung eines physikalischen Datenbankschemasdes entsprechenden relationalen Datenspeichers zur Verfügung stellt;und eine Schnittstellen-Zuweisungsdatei, die eine logisch-zu-physikalischeZuweisung füralle Datenentitäten,die fürdie relationale Schnittstelle definiert sind, zur Verfügung stellt,um dem Datenintegrationsserver zu ermöglichen, Massendatentransferszwischen relationalen Datenspeichern, die über unterschiedliches physikalischesDatenbankschema verfügen,auszuführen.
[13] Verfahren zum Ausführen von Massendatentransferszwischen persistenten Datenspeichern, aufweisend: zur Verfügung stellenvon einer oder mehreren programmatischen Quellschnittstellen, wobeijede einem entsprechenden Quelldatenspeicher zugeordnet ist, gemäß einergemeinsamen programmatischen Quellschnittstellenspezifikation definiertist und währendeines Massendatentransfers bereitgestellt wird, um Extraktion voneiner oder mehreren Datenentitätenvon dem entsprechenden Quelldatenspeicher zum Laden in irgendeinenoder mehrere ausgewählteZieldatenspeicher währenddes Massendatentransfers zu ermöglichen;und zur Verfügungstellen von einer oder mehreren programmatischen Zielschnittstellen,wobei jede einem entsprechenden Zieldatenspeicher zugeordnet ist,gemäß einergemeinsamen programmatischen Zielschnittstellenspezifikation definiertist und währendeines Massendatentransfers bereitgestellt wird, um Laden von einer odermehreren Datenentitäten,in den entsprechenden Zieldatenspeicher die während des Massendatentransfersvon irgendeinem oder mehreren ausgewählten Quelldatenspeichern extrahiertwurden, zu ermöglichen; wobeijede programmatische Schnittstelle: dem entsprechenden Datenspeichereine Abstraktion von Massendatentransferoperationen zur Verfügung stellt,so dass eigener Code nicht in Verbindung mit dem entsprechendenDatenspeicher entwickelt werden muss, um Massendatentransfers zwischendem entsprechenden Datenspeicher und jedem anderen bestimmten Datenspeicherzu ermöglichen;und spezifische Details, die dem entsprechenden Datenspeicherzugeordnet sind, isoliert, so dass eigener Code in Verbindung mitden Massendatentransferoperationen nicht entwickelt werden muss,um Massendatentransfers zwischen dem entsprechenden Datenspeicherund jedem anderen bestimmten Datenspeicher zu ermöglichen.
[14] Verfahren nach Anspruch 13, wobei die programmatischenSchnittstellen JAVA-Schnittstellen aufweisen.
[15] Verfahren nach Anspruch 13, wobei: eine programmatischeSchnittstelle als Industriestandardschnittstelle bereitgestelltwird, die Massendatentransfers entsprechend eines Industriestandardprotokollsunterstützt;und das Verfahren aufweist: Empfangen einer Anfrage voneinem Client, die anzeigt, dass der Client gemäß dem IndustriestandardprotokollDaten von einem Datenspeicher extrahiert oder in einen Datenspeicherlädt; Erzeugender entsprechenden programmatischen Schnittstelle, um Extraktionder Daten von oder Laden der Daten in den Datenspeicher zu ermöglichen;und fürDatenextraktion, währenddie programmatische Quellschnittstelle die Daten produziert, dievon dem Datenspeicher extrahiert wurden, Senden der abgehenden Datengemäß dem Industriestandardprotokollan den Client; oder zum Datenladen, während die Daten von dem Clientgemäß dem Industriestandardprotokollankommen, Senden der ankommenden Daten an die programmatische Zielschnittstellezum Laden in den Datenspeicher.
[16] Verfahren nach Anspruch 13, wobei ein bestimmterDatenspeicher ein Quelldatenspeicher oder ein Zieldatenspeichersein kann füreinen bestimmten Massendatentransfer, abhängig davon, ob Datenentitäten während desbestimmten Massendatentransfers von dem bestimmten Datenspeicherextrahiert werden oder in den bestimmten Datenspeicher geladen werden.
[17] Verfahren nach Anspruch 13, wobei Laden von Datenentitäten Einfügen, Updatenoder Löschenvon Datenentitätenaufweist.
[18] Verfahren nach Anspruch 13, wobei: innerhalbjeder programmatischen Schnittstelle eine oder mehrere Ressourcendefiniert sind, die Datenentitätenrepräsentieren,die in dem entsprechenden Datenspeicher enthalten sind; und dasVerfahren aufweist, als Antwort auf eine Anfrage, einen Massendatentransferauszuführen,der eine oder mehrere in einem oder mehreren Datenspeichern enthalteneRessourcen involviert, jede programmatische Schnittstelle zu erzeugen,innerhalb welcher mindestens eine der Ressourcen definiert ist.
[19] Verfahren nach Anspruch 18, wobei eine einmal erzeugteprogrammatische Schnittstelle bestehen bleibt: im Falle einerprogrammatischen Quellschnittstelle während der Gesamtheit des Massendatentransfers,bevor sie freigegeben wird; und im Falle einer programmatischenZielschnittstelle währendeines einzelnen Schrittes des Massendatentransfers, bevor sie freigegebenwird.
[20] Verfahren nach Anspruch 18, weiter aufweisend zurVerfügungstellen von einer oder mehrerer Sitzungsschnittstellen, wobei: eineoder mehrere programmatische Schnittstellen innerhalb jeder Sitzungsschnittstelledefiniert werden; jede Sitzungsschnittstelle von ihrer einenoder mehreren definierten programmatischen Schnittstellen Details isoliert,die Export und Import von in einen Massendatentransfer involviertenRessourcen zugeordnet sind; und in Zusammenhang mit Erzeugungder programmatischen Schnittstellen jede Sitzungsschnittstelle erzeugt wird,innerhalb welcher mindestens eine der programmatischen Schnittstellendefiniert ist.
[21] Verfahren nach Anspruch 20, wobei eine einmal erzeugteSitzungsschnittstelle entweder währendder Gesamtheit des Massendatentransfers oder während der Gesamtheit mehrererDatentransfers entsprechend ihrer Definition bestehen bleibt.
[22] Verfahren nach Anspruch 13, weiter aufweisend: jederprogrammatischen Schnittstelle zu erlauben, Datenentitäten in einemgewünschten,der programmatischen Schnittstelle eigenen Format zu produzierenoder zu verarbeiten; Konvertieren von Datenentitäten, diein einem ersten, einer programmatischen Quellschnittstelle eigenenFormat erstellt wurden, in ein zweites, einer programmatischen Zielschnittstelleeigenes Format, nur wenn notwendig, weil das erste und zweite Formatunterschiedlich ist.
[23] Verfahren nach Anspruch 13, weiter aufweisend zurVerfügungstellen von einer oder mehreren relationalen Schnittstellen alsAlternativen zu programmatischen Schnittstellen, wobei jede relationaleSchnittstelle einem entsprechenden relationalen Datenspeicher zugeordnetist und innerhalb des Datenintegrationsservers während eines Massendatentransfersbereitgestellt wird, um es dem Datenintegrationsserver zu ermöglichen, Datenentitäten während desMassendatentransfers direkt von dem entsprechenden relationalenDatenspeicher zu lesen und direkt in den entsprechenden relationalenDatenspeicher zu schreiben, ohne eine programmatische Schnittstellezu verwenden.
[24] Verfahren nach Anspruch 23, wobei jede relationaleSchnittstelle aufweist: eine Schnittstellen-Schemadatei, dieeine datenbankneutrale Beschreibung eines physikalischen Datenbankschemasdes entsprechenden relationalen Datenspeichers zur Verfügung stellt;und eine Schnittstellen-Zuweisungsdatei, die eine logisch-zu-physikalischeZuweisung füralle Datenentitäten,die fürdie relationale Schnittstelle definiert sind, zur Verfügung stellt,um dem Datenintegrationsserver zu ermöglichen, Massendatentransferszwischen relationalen Datenspeichern ausführt, die über unterschiedliches physikalischesDatenbankschema verfügen,auszuführen.
[25] Software zum Ausführen eines Massendatentransferszwischen persistenten Datenspeichern, wobei die Software in computerlesbarenMedien verkörpertist und bei Ausführungin der Lage ist, eine oder mehrere programmatische Quellschnittstellenzur Verfügungzu stellen, wobei jede einem entsprechenden Quelldatenspeicher zugeordnetist, gemäß einergemeinsamen programmatischen Quellschnittstellenspezifikation definiertist und währendeines Massendatentransfers bereitgestellt wird, um Extraktion einer odermehrerer Datenentitätenvon dem entsprechenden Quelldatenspeicher zum Laden in irgendeinenoder mehrere ausgewählteZieldatenspeicher währenddes Massendatentransfers zu ermöglichen;und eine oder mehrere programmatische Zielschnittstellen zurVerfügungzu stellen, wobei jede einem entsprechenden Zieldatenspeicher zugeordnetist, gemäß einergemeinsamen programmatischen Zielschnittstellenspezifikation definiertist und währendeines Massendatentransfers bereitgestellt wird, um Laden einer oder mehrererDatenentitäten,die währenddes Massendatentransfers von irgendeinem oder mehreren ausgewählten Quelldatenspeichernextrahiert wurden, in den entsprechenden Zieldatenspeicher zu ermöglichen; wobeijede programmatische Schnittstelle: dem entsprechenden Datenspeichereine Abstraktion von Massendatentransferoperationen zur Verfügung stellt,so dass eigener Code nicht in Zusammenhang mit dem entsprechendenDatenspeicher entwickelt werden muss, um Massendatentransfers zwischendem entsprechenden Datenspeicher und jedem anderen bestimmten Datenspeicherzu ermöglichen;und spezifische Details, die dem entsprechenden Datenspeicher zugeordnetsind, isoliert, so dass eigener Code in Verbindung mit den Massendatentransferoperationennicht entwickelt werden muss, um Massendatentransfers zwischen dementsprechenden Datenspeicher und jedem anderen bestimmten Datenspeicherzu ermöglichen.
[26] Software nach Anspruch 25, wobei die programmatischeSchnittstellen JAVA Schnittstellen aufweisen.
[27] Software nach Anspruch 25, wobei: eine programmatischeSchnittstelle als eine Industriestandardschnittstelle bereitgestelltwird, die Massendatentransfers entsprechend eines Industriestandardprotokollsunterstützt;und die Software in der Lage ist: eine Anfrage von einemClient zu empfangen, die anzeigt, dass der Client gemäß dem IndustriestandardprotokollDaten von einem Datenspeicher extrahiert oder in einen Datenspeicherlädt; dieentsprechende programmatische Schnittstelle zu erzeugen, um Extraktionder Daten von oder Laden der Daten in den Datenspeicher zu ermöglichen;und fürDatenextraktion, währenddie programmatische Quellschnittstelle die Daten produziert, dievon dem Datenspeicher extrahiert wurden, die abgehenden Daten gemäß dem Industriestandardprotokollan den Client zu senden; oder zum Datenladen, während dieDaten von dem Client gemäß dem Industriestandardprotokollankommen, die ankommenden Daten an die programmatische Zielschnittstellezum Laden in den Datenspeicher zu senden.
[28] Software nach Anspruch 25, wobei ein bestimmterDatenspeicher ein Quelldatenspeicher oder ein Zieldatenspeicherfür einenbestimmten Massendatentransfer sein kann, abhängig davon, ob Datenentitäten während desbestimmten Massendatentransfers von dem bestimmten Datenspeicherextrahiert werden oder in den bestimmten Datenspeicher geladen werden.
[29] Software nach Anspruch 25, wobei Laden von Datenentitäten Einfügen, Updatenoder Löschenvon Datenentitätenaufweist.
[30] Software nach Anspruch 25, wobei: innerhalbjeder programmatischen Schnittstelle eine oder mehrere Ressourcendefiniert sind, die Datenentitätenrepräsentieren,welche in dem entsprechenden Datenspeicher enthalten sind, und dieSoftware in der Lage ist, als Antwort auf eine Anfrage, einen Massendatentransferauszuführen,der eine oder mehrere in einem oder mehreren Datenspeichern enthalteneRessourcen involviert, jede programmatische Schnittstelle zu erzeugen,innerhalb welcher mindestens eine der Ressourcen definiert wird.
[31] Software nach Anspruch 30, wobei eine einmal erzeugteprogrammatische Schnittstelle bestehen bleibt: im Falle einerprogrammatischen Quellschnittstelle während der Gesamtheit des Massendatentransfersbevor sie freigegeben wird; und im Falle einer programmatischenZielschnittstelle währendeines einzelnen Schrittes des Massendatentransfers bevor sie freigegebenwird
[32] Software nach Anspruch 30, weiter in der Lage, eineoder mehrere Sitzungsschnittstellen zur Verfügung zu stellen, wobei: eineoder mehrere programmatische Schnittstellen innerhalb jeder Sitzungsschnittstelledefiniert werden; jede Sitzungsschnittstelle von ihrer einenoder mehreren definierten programmatischen Schnittstellen Details isoliert,die Export und Import von in einen Massendatentransfer involviertenRessourcen zugeordnet sind; und in Verbindung mit Erzeugungder programmatischen Schnittstellen jede Sitzungsschnittstelle erzeugtwird, innerhalb welcher mindestens eine der programmatischen Schnittstellendefiniert ist.
[33] Software nach Anspruch 32, wobei eine einmal erzeugteSitzungsschnittstelle entweder währendder Gesamtheit des Massendatentransfers oder während der Gesamtheit mehrererDatentransfers entsprechend ihrer Definition bestehen bleibt.
[34] Software nach Anspruch 25, weiter in der Lage: jederprogrammatischen Schnittstelle zu erlauben, Datenentitäten in einemgewünschten,der programmatischen Schnittstelle eigenen Format zu produzierenoder zu verarbeiten; Datenentitäten, die in einem ersten, einerprogrammatischen Quellschnittstelle eigenen Format erstellt wurden,in ein zweites, einer programmatischen Zielschnittstelle eigenesFormat zu konvertieren, nur wenn notwendig, weil das erste und zweiteFormat unterschiedlich sind.
[35] Software nach Anspruch 25, weiter in der Lage, eineoder mehrere relationale Schnittstellen als Alternativen zu programmatischenSchnittstellen zur Verfügungzu stellen, wobei jede relationale Schnittstelle einem entsprechendenrelationalen Datenspeicher zugeordnet ist und innerhalb des Datenintegrationsservers während einesMassendatentransfers bereitgestellt wird, um es dem Datenintegrationsserverzu ermöglichen, Datenentitäten während desMassendatentransfers direkt von dem entsprechenden relationalenDatenspeicher zu lesen und direkt in den entsprechenden relationalenDatenspeicher zu schreiben, ohne eine programmatische Schnittstellezu verwenden.
[36] Software nach Anspruch 35, wobei jede relationaleSchnittstelle aufweist: eine Schnittstellen-Schemadatei, dieeine datenbankneutrale Beschreibung eines physikalischen Datenbankschemasdes entsprechenden relationalen Datenspeichers zur Verfügung stellt;und eine Schnittstellen-Zuweisungsdatei, die eine logisch-zu-physikalischeZuweisung füralle Datenentitäten,die fürdie relationale Schnittstelle definiert sind, zur Verfügung stellt,um dem Datenintegrationsserver zu ermöglichen, Massendatentransferszwischen relationalen Datenspeichern, die über unterschiedliches physikalischesDatenbankschema verfügen,auszuführen.
[37] System zum Ausführenvon Massendatentransfers zwischen persistenten Datenspeichern, aufweisend: Mittelzum zur Verfügungstellen von einer oder mehreren programmatischen Quellschnittstellen,wobei jede einem entsprechenden Quelldatenspeicher zugeordnet ist,entsprechend einer gemeinsamen programmatischen Quellschnittstellenspezifikationdefiniert ist und währendeines Massendatentransfers bereitgestellt wird, um Extrahieren eineroder mehrerer Datenentitätenvon dem entsprechenden Quelldatenspeicher zum Laden in irgendeinenoder mehrere ausgewählteZieldatenspeicher währenddes Massendatentransfers zu ermöglichen;und Mittel zum zur Verfügungstellen von einer oder mehreren programmatischen Zielschnittstellen,wobei jede einem entsprechenden Zieldatenspeicher zugeordnet ist,entsprechend einer gemeinsamen programmatischen Zielschnittstellenspezifikationdefiniert ist und währendeines Massendatentransfers bereitgestellt wird, um Laden einer odermehrerer Datenentitäten,die von irgendeinem oder mehreren ausgewählten Quelldatenspeichern während desMassendatentransfers extrahiert wurden, in den entsprechenden Zieldatenspeicherzu ermöglichen; wobeijede programmatische Schnittstelle: dem entsprechenden Datenspeichereine Abstraktion von Massendatentransferoperationen zur Verfügung stellt,so dass eigener Code nicht in Verbindung mit dem entsprechendenDatenspeicher entwickelt werden muss, um Massendatentransfers zwischendem entsprechenden Datenspeicher und jedem anderen bestimmten Datenspeicherzu ermöglichen;und spezifische Details, die dem entsprechenden Datenspeicherzugeordnet sind, isoliert, so dass eigener Code nicht in Verbindungmit den Massendatentransferoperationen entwickelt werden muss, umMassendatentransfers zwischen dem entsprechenden Datenspeicher undjedem anderen bestimmten Datenspeicher zu ermöglichen.
[38] System zum Ausführenvon Massendatentransfers zwischen persistenten Datenspeichern, aufweisend: eineoder mehrere programmatische Quellschnittstellen, wobei jede einementsprechenden Quelldatenspeicher zugeordnet ist, entsprechend einergemeinsamen programmatischen Quellschnittstellenspezifikation definiertist und währendeines Massendatentransfers bereitgestellt wird, um Extrahieren eineroder mehrerer Datenentitätenvon dem entsprechenden Quelldatenspeicher zum Laden in irgendeinenoder mehrere ausgewählteZieldatenspeicher währenddes Massendatentransfers zu ermöglichen; eineoder mehrere programmatische Zielschnittstellen, wobei jede einementsprechenden Zieldatenspeicher zugeordnet ist, entsprechend einergemeinsamen programmatischen Zielschnittstellenspezifikation definiert istund währendeines Massendatentransfers bereitgestellt wird, um Laden einer odermehrerer Datenentitäten,die von irgendeinem oder mehreren ausgewählten Quelldatenspeichern während desMassendatentransfers extrahiert wurden, in den entsprechenden Zieldatenspeicherzu ermöglichen; wobeijede programmatische Schnittstelle: dem entsprechenden Datenspeichereine Abstraktion von Massendatentransferoperationen zur Verfügung stellt,so dass eigener Code nicht in Verbindung mit dem entsprechendenDatenspeicher entwickelt werden muss, um Massendatentransfers zwischendem entsprechenden Datenspeicher und jedem anderen bestimmten Datenspeicherzu ermöglichen;und spezifische Details, die dem entsprechenden Datenspeicherzugeordnet sind, isoliert, so dass eigener Code nicht in Verbindungmit den Massendatentransferoperationen entwickelt werden muss, umMassendatentransfers zwischen dem entsprechenden Datenspeicher undjedem anderen bestimmten Datenspeicher zu ermöglichen; und eine Definitionvon einer oder mehreren Ressourcen aufweist, die Datenentitäten repräsentieren,die in dem entsprechenden Datenspeicher enthalten sind, so dassdas System in der Lage ist, als Antwort auf eine Anfrage, einenMassendatentransfer auszuführen,der eine oder mehrere in einem oder mehreren Datenspeichern enthalteneRessourcen involviert, jede programmatische Schnittstelle zu erzeugen,innerhalb welcher mindestens eine der Ressourcen definiert ist;und eine oder mehrere Sitzungsschnittstellen, wobei jede Sitzungsschnittstelle: eineDefinition einer oder mehrerer programmatischer Schnittstellen aufweist,so dass das System weiter in der Lage ist, in Verbindung mit Erzeugungder programmatischen Schnittstellen jede Sitzungsschnittstelle zu erzeugen,innerhalb welcher mindestens eine der programmatischen Schnittstellendefiniert ist; und von ihrer einen oder mehreren definiertenprogrammatischen Schnittstellen Details isoliert, die Export undImport von in einen Massendatentransfer involvierten Ressourcenzugeordnet sind.
类似技术:
公开号 | 公开日 | 专利标题
JP6113693B2|2017-04-12|Background format optimization for enhanced SQL-like queries in Hadoop
US10324690B2|2019-06-18|Automated enterprise software development
US9588743B2|2017-03-07|Semantic-based, service-oriented system and method of developing, programming and managing software modules and software solutions
CA2814835C|2019-01-08|Managing data set objects in a dataflow graph that represents a computer program
US5634127A|1997-05-27|Methods and apparatus for implementing a message driven processor in a client-server environment
US6308224B1|2001-10-23|Method of generating an implementation of a workflow process model in an object environment
US6016495A|2000-01-18|Object-oriented framework mechanism for providing persistent storage
US8478789B2|2013-07-02|Adapter architecture for mobile data system
US8639723B2|2014-01-28|Spooling strategies using structured job information
US8375065B2|2013-02-12|Method for cataloging and storing data in a control system
US6907395B1|2005-06-14|System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model
US7624400B2|2009-11-24|Type bridges
US7599948B2|2009-10-06|Object relational mapping layer
JP4583376B2|2010-11-17|ハードウェア/ソフトウェアインタフェースシステムにより管理可能な情報のユニットに対する同期処理サービスを実現するシステムおよび方法
US6976262B1|2005-12-13|Web-based enterprise management with multiple repository capability
US6332130B1|2001-12-18|System and process for inter-domain planning analysis and optimization using model agents as partial replicas of remote domains
US5581755A|1996-12-03|Method for maintaining a history of system data and processes for an enterprise
US20150040103A1|2015-02-05|Data component in a mobile application framework
US6222533B1|2001-04-24|System and process having a universal adapter framework and providing a global user interface and global messaging bus
US8332359B2|2012-12-11|Extended system for accessing electronic documents with revision history in non-compatible repositories
JP4604042B2|2010-12-22|System and method for object maintenance in a database store
US8341120B2|2012-12-25|Apparatus and methods for transferring database objects into and out of database systems
JP5346336B2|2013-11-20|レガシーアプリケーションの移行
US8875306B2|2014-10-28|Customization restrictions for multi-layer XML customization
US5897636A|1999-04-27|Distributed object computer system with hierarchical name space versioning
同族专利:
公开号 | 公开日
TW200506643A|2005-02-16|
US20040225745A1|2004-11-11|
US8117327B2|2012-02-14|
TWI333151B|2010-11-11|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2008-03-13| 8128| New person/name/address of the agent|Representative=s name: DF-MP, 80333 MUENCHEN |
2012-01-19| R082| Change of representative|Representative=s name: DF-MP, DE Representative=s name: DF-MP, 80333 MUENCHEN, DE |
2012-02-02| R012| Request for examination validly filed|Effective date: 20110509 |
2012-03-15| R082| Change of representative|Representative=s name: DF-MP, DE Effective date: 20120119 Representative=s name: DF-MP DOERRIES FRANK-MOLNIA & POHLMAN PATENTAN, DE Effective date: 20120119 |
2012-03-15| R081| Change of applicant/patentee|Owner name: JDA SOFTWARE GROUP, INC., US Free format text: FORMER OWNER: I2 TECHNOLOGIES, INC., DALLAS, US Effective date: 20120119 Owner name: JDA SOFTWARE GROUP, INC., SCOTTSDALE, US Free format text: FORMER OWNER: I2 TECHNOLOGIES, INC., DALLAS, TEX., US Effective date: 20120119 |
2013-05-21| R016| Response to examination communication|
2013-06-26| R016| Response to examination communication|
2014-12-02| R119| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee|
2015-02-26| R119| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee|Effective date: 20141202 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]