Universität Bern, Institut für Wirtschaftsinformatik Universität Leipzig, Institut für Wirtschaftsinformatik Universität Erlangen-Nürnberg, Bereich Wirtschaftsinformatik I Wolfgang Faisst und Stefan Will Konzeption und prototypische Realisierung eines Tools zur Visualisierung von Schnittstellen betriebswirtschaftlicher Anwendungssysteme Arbeitspapier der Reihe „Informations- und Kommunikationssysteme als Gestaltungselement Virtueller Unternehmen“ Nr. 18/1997 Herausgeber Prof. Dr. Dieter Ehrenberg Prof. Dr. Joachim Griese Prof. Dr. Dr. h.c. mult. Peter Mertens Engehaldenstraße 8, CH-3012 Bern, Tel. +41/31/631-4785, FAX +41/31/631-4682 Marschnerstraße 31, D-04109 Leipzig, Tel. +49/341/4941-281, FAX +49/341/476633 Lange Gasse 20, D-90403 Nürnberg, Tel. +49/911/5302-284, FAX +49/911/536634 Wolfgang Faisst und Stefan Will: Konzeption und prototypische Realisierung eines Tools zur Visualisierung von Schnittstellen betriebswirtschaftlicher Anwendungssysteme.*) Arbeitspapier der Reihe „Informations- und Kommunikationssysteme als Gestaltungselement Virtueller Unternehmen“ Nr. 18/1997. Institut für Wirtschaftsinformatik der Universität Bern, Institut für Wirtschaftsinformatik der Universität Leipzig, Bereich Wirtschaftsinformatik I der Universität Erlangen-Nürnberg, Bern Leipzig Nürnberg 1997. Zusammenfassung Dieser Bericht dokumentiert das System „VUWizard“, Version 1.0. Das Tool dient zur Darstellung eines VU mit seinen Partnern, Anwendungssystemen, Kopplungsbeziehungen und Datenkonvertierungsvorschriften. Zunächst motiviert die Arbeit die Notwendigkeit und Einsatzumgebung des Prototypen. Dann werden verschiedene Lösungsmöglichkeiten für mehr Transparenz bei der flexiblen Kopplung von verschiedenen Systemwelten vorgeschlagen, die der Punkt „Systembeschreibung“ wieder aufgreift. Es folgen die Beschreibung des IV-Konzepts sowie schließlich Aspekte der Realisierung des Systems. Schlüsselbegriffe: Schnittstellen, Konverter, Visualiserung, flexible Kopplung Abstract This report includes the documentation of the system „VUWizard“, version 1.0. The Tool is useful for visualization of a Virtual Enterprise (VE) with its partners, application systems, interfaces, and data converting rules. First, we motivate why and where prototype is needed. Then, we suggest some possible solutions for more transparent flexible coupling of heterogeneous system worlds. A description of the IT concept as well as aspects of the system realization follows. Key Words: Interfaces, Converter, Visualization, Flexible Coupling *) Der vorliegende Beitrag basiert auf Erkenntnissen aus dem Forschungsprojekt „Informations- und Kommunikationssysteme als Gestaltungselement Virtueller Unternehmen“, welches von der DFG unter Me 241/16-1 und Eh 127/3-1 gefördert wird. Beteiligte Partner sind der Bereich Wirtschaftsinformatik I der Universität Erlangen-Nürnberg (Prof. Dr. P. Mertens), das Institut für Wirtschaftsinformatik der Universität Leipzig (Prof. Dr. D. Ehrenberg) und assoziiert das Institut für Wirtschaftsinformatik der Universität Bern in der Schweiz (Prof. Dr. J. Griese). INHALTSVERZEICHNIS 1 Einige Überlegungen zum Datenaustausch bei Virtuellen Unternehmen 1.1 Motivation 1.2 Lösungsmöglichkeiten 1.2.1 Konvertierung 1.2.2 Kernfunktionalitäten 1.2.3 Zusatzfunktionalitäten 1.2.4 Nutzen für VU 1.2.5 Nutzen von Schnittstellen-Standards 2 Systembeschreibung 2.1 Verwaltung mehrerer VU 2.2 Definition der VU-Struktur 2.3 Verwaltung von Anwendungssystemen unter Berücksichtigung verschiedener Versionen 2.4 Zuordnung von VU-Partnern und Anwendungssystemen (n:m) 2.5 Verwaltung von Schnittstellen unter Berücksichtigung verschiedener Versionen 2.6 Zuordnung von Anwendungssystemen und Schnittstellen (n:m) 2.7 Konvertierregel 2.8 Kopplung 3 IV-Konzept 3.1 Objektorientiertes Design 3.2 Logisches Datenbankdesign 4 Realisierung 4.1 Objektorientierte Programmierung 4.2 Physisches Datenbankdesign 5 Literatur: 4 4 5 5 5 6 6 6 7 7 7 8 8 10 10 12 13 14 14 15 20 20 20 20 1 Einige Überlegungen zum Datenaustausch bei Virtuellen Unternehmen 1.1 Motivation Mit der zunehmenden Virtualisierung von Unternehmen kommt insbesonders der schnellen und effizienten Kopplung der betrieblichen Anwendungssoftware eine große Bedeutung bei der Erfüllung des Missionszwecks zu. Unternehmen können sich in stabilen und dynamischen Netzwerken zusammenschließen (vgl. Tabelle 1). Tabelle 1: Vergleich von stabilen und dynamischen Netzwerken stabiles Netzwerk dynamisches Netzwerk (VU) geringe Anzahl von unterschiedlichen Partnern hohe Anzahl von unterschiedlichen Partnern Partner wechseln seltener Partner wechseln häufiger Schnittstelle in der Regel zwischen Vertrieb/Versand und Einkauf Schnittstellen zwischen und innerhalb von beliebigen Sektoren (z.B. zwischen Vertrieb und Produktion oder innerhalb der Produktion) Die zunehmende Zahl dynamischer Netzwerke hat auch Folgen für den Datenaustausch: 1. Die zahlreichen Schnittstellen sind ständigen Änderungen unterworfen. Neue kommen hinzu, andere fallen weg. 2. Sehr unterschiedliche Informationen (z.B. Daten über Kunden, Produkte, Aufträge, Arbeitszeiten etc.) müssen ausgetauscht werden. 3. Der Datenaustausch ist teilweise regelmäßig, teilweise sporadisch. 4. Online-Verbindungen sind weniger interessant. Ein Austausch von Dateien, etwa auf Basis von X.400 oder E-Mail, scheint geeigneter. 5. Eine vollständige Automatisierung ist nur schwer zu erreichen. 1.2 Lösungsmöglichkeiten 1.2.1 Konvertierung Für bereits existierende Anwendungen kann die IV zur Lösung dieser Problemstellungen beitragen, indem sie 1. Hilfsmittel zur Erfassung, Pflege und Darstellung der Struktur des VU bereitstellt, 2. die komfortable Definition und Verwaltung der zwischen den Anwendungssystemen auszutauschenden Datenformate inklusive deren Konvertiervorschriften ermöglicht und 3. die parametergesteuerte Konvertierung durchführt. Die Punkte 1. und 2. sind im folgenden näher erläutert, Teil 3. ist weniger innovativ. 1.2.2 Kernfunktionalitäten a) Verwaltung der Partner des VU (interne und externe VU-Partner, Rolle im VU, Zuordnung der Anwendungssysteme) b) Verwaltung der Anwendungssysteme (Betriebssystem, Zuordnung der Schnittstellen) c) Schnittstellenverwaltung (Format und ggf. Beschreibung der Semantik, Versionierung, Selektionsmöglichkeiten nach unterschiedlichen Kriterien wie VU-Partner, Anwendungssystem oder Version, Zuordnung der Konvertiervorschriften) d) Verwaltung der Konvertiervorschriften (Abbildungsregeln für Datensätze und -elemente sowie Syntaxkonvertierungen, Export der Konvertiervorschriften als Steuerinformation für einen Konverter) e) Visualisierung: externe Sicht (alle Schnittstellen von/zu externen Partnern), interne Sicht (alle Schnittstellen der internen VU-Partner untereinander), Partner-Sicht (alle Schnittstellen von/zu den Anwendungssystemen eines einzigen VU-Partners), Schnittstellen-Sicht (alle Datentransformationen einer einzigen Schnittstelle) 1.2.3 Zusatzfunktionalitäten a) Import der Beschreibung der Schnittstellen (Relationen aus Data Dictionary, EDIFACT aus der Normdatenbank, SAP-IDOCs aus selbst gepflegter Datenbank o.ä.) b) Konsistenzprüfungen für Konvertiervorschriften mit zugehörigen Reports (Alle Quell-Datenelemente verarbeitet? Alle Muß-Datenelemente der Ziel-Anwendung belegt? Längen und Formate kompatibel?) c) automatische Generierung von Vorschlägen für Konvertiervorschriften auf Basis ihrer textuellen Beschreibung (z.B. im Data dictionary) d) manuelle Ergänzungen könnten vom Programm aufgezeichnet werden, um die Konvertierregeln automatisch zu aktualisieren (→ lernendes System) e) Verwaltung der Datenaustauschverfahren (Name und Lokation der Dateien, evtl. periodischer Austausch) 1.2.4 Nutzen für VU a) Beschleunigung der Kopplung b) Vermeiden von Fehlern bei der Kopplung durch Konsistenzprüfungen c) Nutzbarmachen von Erfahrungen aus früheren Kopplungen d) mögliche Basis für die Auswahl von VU-Partnern e) Dokumentation 1.2.5 Nutzen von Schnittstellen-Standards In diesem Zusammenhang ist zu untersuchen, welche Schnittstellenstandards für VU-Kopplungen geeignet sind. Man muß herausfinden, wie diese von neuen Anwendungen genutzt, bzw. wie bereits bestehende Anwendungen erweitert werden können, damit sie die Standards unterstützen. Interessant sind ferner aktuelle Entwicklungen, die Standards untereinander zu verbinden (z.B. die geplante Integration von JDBC in das CORBA-Konzept). Siehe auch [FaSt97]. 2 Systembeschreibung Das System zum Management der Kopplungen in Virtuellen Unternehmen, VUWizard Version 1.0, leistet folgendes: a) Verwaltung mehrerer VU b) Definition der Struktur virtueller Unternehmen, d.h. von internen und externen Partnern, und Darstellung der internen und der Partner-Sicht (ohne Schnittstellen-Sicht) c) Verwaltung von Anwendungssystemen unter Berücksichtigung verschiedener Versionen d) Zuordnung von Anwendungssystemen zu VU-Partnern (n:m) e) Verwaltung von Schnittstellen unter Berücksichtigung verschiedener Versionen (ohne Satz- und Feldebene) f) Zuordnung von Schnittstellen zu Anwendungssystemen (n:m) 2.1 Verwaltung mehrerer VU Mit Datei Öffnen gelangt man zu den gespeicherten VU-Konstellationen, wie etwa „Beispiel VU“ in Abbildung 1. Abbildung 1 2.2 Definition der VU-Struktur Das Tool ermöglicht es, die Struktur eines VU mit seinen Teilnehmern graphisch anzuzeigen (interne Sicht). Im Beispiel in der Abbildung 2 besteht das VU aus drei Einheiten (interne und externe Partner): Fertigung 1, Fertigung 2 und Vertriebs-GmbH. Die Pfeile symbolisieren den Informationsfluß. Hier wird „Test“ von Fertigung 2 zur Fertigung 1 geschickt und „Test2“ zur Vertriebs-GmbH. Abbildung 2 2.3 Verwaltung von Anwendungssystemen unter Berücksichtigung verschiedener Versionen Um die Anwendungssysteme verwalten zu können, stellt das System eine entsprechende Funktionalität zur Verfügung. Abbildung 3 zeigt das System „PPS-Muster“ in der Version 1.0a mit seinem Ausgangsdatensatz „Kundenauftr. Muster“. Abbildung 3 2.4 Zuordnung von VU-Partnern und Anwendungssystemen Nachdem man die einzelnen Anwendungssysteme mit ihren Datenschnittstellen angelegt hat, kann man sie den jeweiligen Partnern (hier: Partner „Fertigung 1“) zuweisen („PPS-Muster 1.0a). Bei der Zuordnung besteht die Auswahl zwischen allen im VU angelegten Anwendungssystemen. Der zugehörige Partner läßt sich im Feld „Beschreibung“ noch näher erläutern (vgl. Abbildung 4). Abbildung 4 In Abbildung 5 ist das graphische Ergebnis der Zuordnung eines Anwendungssystems zu einem Partnerunternehmen dargestellt. Im Beispiel hat die „Vertriebs-GmbH“ das Modul SD des Systems R/3 von SAP. Abbildung 5 2.5 Verwaltung von Schnittstellen unter Berücksichtigung verschiedener Versionen Abbildung 6 Die obige Abbildung zeigt die Eingabemaske zur Verwaltung von Schnittstellen. Im Beispiel hat der „Kundenauftr. Muster“ in der Version 1.0a die angeführte hierarchische Struktur. Die Abbildung 7 gibt die Darstellung einer Schnittstelle durch den VU Wizard wieder. Abbildung 7 2.6 Zuordnung von Anwendungssystemen und Schnittstellen (n:m) Anwendungen können mehrere unterschiedliche Schnittstellen haben, und verschiedene Anwendungen können auf die gleiche Schnittstelle zurückgreifen. Abbildung 8 Die obige Eingabemaske (vgl. Abbildung 8) dient dazu, einem Anwendungssystem Schnittstellen zuzuordnen. Eine Beschreibung der Anwendung ist über das gleichnamige Feld möglich. Abbildung 9 2.7 Konvertierregel Will man zwei Anwendungssysteme miteinander koppeln, so bedient man sich jeweils der zugeordneten Schnittstellen. Abbildung 10 zeigt die Eingabe der Konvertierregel von IDOC zu Muster. Mit den Feldern „von“, „bis“ und „ab“ kann angegeben werden, welcher Bereich aus dem zugehörigen Feld der Quelldaten an welcher Position in den Zieldaten abgelegt wird. Abbildung 10 Die folgende Abbildung zeigt die Darstellung der Konvertierregel durch den VUWizard. Abbildung 11 2.8 Kopplung Durch eine Kopplung werden Anwendungssysteme zweier Partner einer Konvertierregel zugeordnet. Im unten gezeigten Fall ist jedoch eine konkrete Regel nicht notwendig, da die Schnittstellen gleich sind (vgl. Abbildung 12). Abbildung 12 Die Abbildung 13 zeigt das Ergebnis der Kopplung. Im Beispiel erhält der Partner „Fertigung 2“, der die Anwendung PPS-R/3 Version 3.0 hat, über die Schnittstelle IDOC-Kundenauftrag 3.0 Daten von der Schnittstelle IDOC-Kundenauftrag 3.0 der Anwendung R/3 SD Version 3.0 des Partners „Vertriebs-GmbH“. Abbildung 13 3 IV-Konzept 3.1 Objektorientiertes Design Um den Prototypen in ein Produktionssystem überführen zu können, wurde großer Wert auf ein klares Design der Klassen, insbesondere auf eine Trennung von Darstellungs-, Anwendungs- und Zugriffsschicht, gelegt. Die resultierende Architektur mit der durch Pfeile angedeuteten Aufrufhierarchie zeigt die folgende Darstellung (vgl. Abbildung 14). Jeder Relation aus der zugrundeliegenden Datenbank ist dabei genau eine Klasse der Zugriffsschicht zugeordnet. Die Klassen der Anwendungsschicht entsprechen (folgerichtig) den bereits während der Analysephase gefundenen Klassen. In ihnen sind die Kernfunktionalitäten der Anwendung realisiert. Klassen der Darstellungsschicht Win32-API Klassen der Anwendungsschicht Klassen der Zugriffsschicht ODBC-API Abbildung 14 Die Darstellungsschicht setzt sich aus den Klassen zur Steuerung der Dialoge zusammen. Für jede Klasse der Anwendungsschicht existiert ein Dialog, der gleichzeitig zur Neuanlage und zur Änderung eines Anwendungsobjekts dient (vgl. Abbildung 15). VU Name Beschreibung : Anwendung : VU-Partner : Schnittstelle : Konvertierregel 1 1 1 1 0..n 0..n 0..n 0..n VU-Partner Anwendung Schnittstelle Name Beschreibung Name Version Beschreibung 2 Name Version Beschreibung Elemente 0..4 0..4 2 2 Kopplung Name Beschreibung Abbildung 15 Konvertierregel 2 Name Beschreibung Zuordnungen 0..1 3.2 Logisches Datenbankdesign Um die in den Klassen der Anwendungsschicht enthaltenen Daten in einer relationalen Datenbank in 3. Normalform zu speichern, sind folgende Tabellen notwendig: Tabelle Feld Feldgröße Beschreibung Anwend_Schnittst VU_Anwend_Nr Long Integer Schlüssel der Anwendung, die die Schnittstelle unterstützt Schnittst_Nr Long Integer Schlüssel der Schnittstelle Tabelle Feld Feldgröße Beschreibung Element Element_Nr Long Integer generischer Schlüssel des Elements Art Long Integer gibt an, ob es sich um ein Struktur- oder Datenelement handelt Vater Long Integer Schlüssel des Vaterelements Pos Long Integer Position innerhalb aller Elemente mit demselben Vater Stufe Long Integer Stufe, auf der sich das Element innerhalb der hierarchischen Struktur befindet Name Char 20 Name des Elements Inhalt Char 255 Beschreibung des Inhalts des Elements Anz_Min Long Integer nur bei Strukturelementen: minimale Anzahl des Vorkommens Anz_Max Long Integer nur bei Strukturelementen: maximale Anzahl des Vorkommens Typ Long Integer nur bei Datenelementen: Datentyp Länge Long Integer nur bei Datenelementen: Länge in Bytes Schnittst_Nr Long Integer Angabe, zu welcher Schnittstelle das Element gehört Tabelle Feld Feldgröße Beschreibung Konv Konv_Nr Long Integer generischer Schlüssel der Konvertierregel Name Char 20 Bezeichnung der Konvertierregel Beschr Char 255 Beschreibung der Konvertierregel VU_Schnittst_Nr_Q Long Integer Schlüssel der Schnittstelle, von der die Daten ausgehen VU_Schnittst_Nr_Z Long Integer Schlüssel der Schnittstelle, über die die Daten empfangen werden VU_Nr Long Integer Schlüssel des VU, dem diese Konvertierregel zugeordnet ist Tabelle Feld Feldgröße Beschreibung Partner_Anwend VU_Anwend_Nr Long Integer Schlüssel der Anwendung VU_Partner_Nr Long Integer Schlüssel des VU-Partners, der die Anwendung nutzt Tabelle Feld Feldgröße Beschreibung Schnittst Schnittst_Nr Long Integer generischer Schlüssel der Schnittstelle Name Char 20 Name der Schnittstelle Ver Char 10 Version der Schnittstelle Beschr Char 255 Beschreibung der Schnittstelle VU_Nr Long Integer Angabe, in welchem VU die Schnittstelle definiert wurde Tabelle Feld Feldgröße Beschreibung VU VU_Nr Long Integer generischer Schlüssel des VU Name Char 20 Name des VU Beschr Char 255 Beschreibung des VU Tabelle Feld Feldgröße Beschreibung VU_Anwend VU_Anwend_Nr Long Integer generischer Schlüssel der Anwendung Name Char 20 Name der Anwendung Ver Char 10 Version der Anwendung Beschr Char 255 Beschreibung der Anwendung VU_Nr Long Integer Angabe, in welchem VU die Anwendung definiert wurde Tabelle Feld Feldgröße Beschreibung VU_Koppl VU_Koppl_Nr Long Integer generischer Schlüssel der Kopplung Name Char 20 Bezeichnung der auszutauschenden Daten Beschr Char 255 Beschreibung der auszutauschenden Daten VU_Partner_Nr_Q Long Integer Schlüssel des VU-Partners, der die Datenquelle darstellt VU_Anwend_Nr_Q Long Integer Schlüssel der Anwendung, die die Datenquelle darstellt VU_Schnittst_Nr_Q Long Integer Schlüssel der Schnittstelle, von der die Daten ausgehen VU_Partner_Nr_Z Long Integer Schlüssel des VU-Partners, der die Daten empfängt VU_Anwend_Nr_Z Long Integer Schlüssel der Anwendung, die die Daten empfängt VU_Schnittst_Nr_Z Long Integer Schlüssel der Schnittstelle, über die die Daten empfangen werden VU_Konv_Nr Long Integer Schlüssel der Konvertiervorschrift für die auszutauschenden Daten Tabelle Feld Feldgröße Beschreibung VU_Partner VU_Partner_Nr Long Integer generischer Schlüssel des VU-Partners Name Char 20 Name des VU-Partners Beschr Char 255 Beschreibung des VU-Partners VU_Nr Long Integer Angabe, welchem VU der VU-Partner zugeordnet ist Tabelle Feld Feldgröße Beschreibung Zuordnung Zuordnung_Nr Long Integer generischer Schlüssel der Zuordung Element_Nr_Q Long Integer Quell-Element der Zuordnung Element_Nr_Z Long Integer Ziel-Element der Zuordnung Von Long Integer Position des Quell-Elements, ab der die Daten gelesen werden sollen Bis Long Integer Position des Quell-Elements, bis zu der die Daten gelesen werden sollen Ab Long Integer Position des Ziel-Elements, ab der die Daten geschrieben werden sollen Konv_Nr Long Integer gibt an, zu welcher Konvertierregel die Zuordnung gehört 4 Realisierung 4.1 Objektorientierte Programmierung Entwicklungs- und Zielsystem ist Windows95. Der Prototyp „VUWizard“ ist mit Microsoft Visual C++ V. 4.1 auf Basis der Microsoft Foundation Classes (MFC) realisiert. Da die integrierte Entwicklungsumgebung gute Möglichkeiten zur Darstellung von Programm- bzw. Headerdateien, Klassen inkl. deren Elementfunktionen, Windows-Ressourcen etc. bereitstellt, soll hier auf eine explizite Beschreibung der verschiedenen Ergebnisse der Realisierungsphase verzichtet werden 1. 4.2 Physisches Datenbankdesign Die anzulegenden Tabellen können direkt dem logischen Datenbankdesign entnommen werden, d.h., es sind keine Denormalisierungen notwendig. Des weiteren erscheint die Einführung von zusätzlichen Indizes aufgrund der hohen Rate an Änderungsoperationen nicht sinnvoll. Im ODBC-Manager ist die Datenbank mit „VUWizard-Datenbank“ zu referenzieren (vgl. Abbildung 16). Abbildung 16 5 Literatur [FaSt97] 1 Faisst, W. und Stürken, M.: Daten-, Funktions- und Prozeß-Standards für Virtuelle Unternehmen - strategische Überlegungen. Institut für Wirtschaftsinformatik der Universität Bern, Institut für Wirtschaftsinformatik der Universität Leipzig, Bereich Wirtschaftsinformatik I der Universität Erlangen-Nürnberg, Arbeitspapier der Reihe „Informations- und Kommunikationssysteme als Gestaltungselement Virtueller Unternehmen“ Nr. 12/1997, Bern Leipzig Nürnberg 1997. Die entsprechende Projektdatei für Microsoft Visual C++ ist VUWizard.mdp.