Computervermittelte Kommunikation

cmclogo.gif

Kapitel 15: Datenbanken im Internet


von Margarete Payer

mailto: payer@hbi-stuttgart.de


Zitierweise / cite as:

Payer, Margarete <1942 -- >: Computervermittelte Kommunikation. -- Kapitel 15:  Datenbanken im Internet. -- Fassung vom 19. Juli 1999. -- URL: http://www.payer.de/cmc/cmcs15.htm. -- [Stichwort].

Erstmals publiziert: 19. Juli 1999

Überarbeitungen

Anlass: Lehrveranstaltung HBI Stuttgart, SS 1998

Unterrichtsmaterialien (gemäß § 46 (1) UrhG)

Copyright: Dieser Text steht der Allgemeinheit zur Verfügung. Eine Verwertung in Publikationen, die über übliche Zitate hinausgeht, bedarf der ausdrücklichen Genehmigung der Verfasserin.


Zur Inhaltsübersicht von Margarete Payer: Computervermittelte Kommunikation.


15.0. Übersicht



Vorbemerkung: Dieses Kapitel setzt voraus:

Kapitel 13,2,2,3: Web-Programmierung und Suchmaschinen


15.1. Datenbanken im WWW


In der Zeit vor dem WWW waren die 60er-Jahre die Zeit der Mainframe-Datenbanken. Das ANSI Committee on Data Systems Languages (CODASYL) entwickelte  als Standard die Network Model Database. Als proprietäre Lösung setzte IBM das hierarchische Datenbankmodell IMS (Information Management System) entgegen. CODASYL und IMS sind auch heute noch von großer Bedeutung, da große Datenbestände sich auf solchen Systemen bilden und damit ein Erbe (legacy) oder auch eine Erblast darstellen.

Die Grundeinstellung in den ersten Jahrzehnten von Computerdatenbanken war zentralistisch: eine zentrale Datenverwaltung ermöglicht bzw. erleichtert hohe Qualität im Unterhalt der Datenbank. Aus solchen Qualitätsüberlegungen heraus gibt es auch heute noch starke Befürworter zentraler Lösungen.

Das ursprüngliche Modell des WWW war statisch:

  1. schaffe statische HTML-Dokumente (d.h. Dokumente auf die der Nutzer keinen Einfluss nehmen kann)
  2. speichere diese Dokumente auf einem einzelnen Web-Server
  3. gib anderen Zugang zu diesen Dokumenten via HTTP

Nach diesem Modell erhielt jeder Nutzer dasselbe Dokument.

In einem zweiten Schritt kam CGI (Common Gateway Interface) hinzu. Es erlaubte Nutzern, dynamische Dokumente anzufordern, indem sie ein Formular ausfüllten mit ihrer spezifischen Anfrage. Diese Anfrage geht an den Daten-Server, der u.U. überlastet werden kann.

In einem dritten Schritt entwickelte man die Konzepte der dreistufigen WWW-Datenbank-Verbindung (Web database connectivity) und von webgestützter Middleware.

Das WWW-Datenbank-Verbindungs-Modell hat drei Schichten:

Schicht Technische Verwirklichung
Darstellungsschicht (Presentation tier) Web Browser
Verarbeitungsschicht (Business logic tier) Web Server
Transaktionsüberwacher
Anwendungsserver
Datenschicht (Data tier) Back-end Datenbanken und Mainframes

In diesem Modell ist der Web-Browser der universale Client für Datenbankanwendungen: der Web-Browser ist die Benutzeroberfläche, die so bekannt ist, dass das Ideal "Datenbankzugang für jede Oma und jeden Opa" in Griffnähe gekommen ist.

Die mittlere Schicht (Verarbeitungsschicht) erfüllt u.a. folgende Aufgaben:


15.2. Datenbankzugriff: Native Calls, API, Standardschnittstellen


Datenbankzugriff kann geschehen:


15.2.1. Native Calls


Man sagt, dass eine Anwendung Native Calls benutzt, wenn sie direkt die Libraries (unter Windows: DL -- Dynamik Linke Libraries) aufruft, mit denen der Datenbankserver Zugang zu den Daten schafft. Native Calls sind produktspezifisch und darum auf das bestimmte Produkt (z.B. Oracle, Informix, SQL Server) beschränkt.

Abb.: Native Calls über CGI-Scripts

Im in der Abbildung gegebenen Beispiel von drei über einen Webserver mit dem WWW verbundenen Datenbanken  muss der Programmierer für jedes Datenbankprodukt ein eigenes CGI-Script schreiben.


15.2.2. API -- Application Programming Interface


Im Unterschied zu Native Calls ist ein API (Application Programming Interface) eine (zumindest teilweise) produktunabhängige Schnittstelle. Der Programmierer muss sich nicht um die spezifischen Eigenheiten der Anwendungen (Datenbanken) kümmern, die dieses API unterstützen. Die Verbindung zwischen API und Anwendung (Datenbank) stellen produktspezifische Treiber her.

Abb.: Zugriff über API bzw. standardisierte Schnittstelle (hier Common DB-Interface - CDI genannt)

Im in der Abbildung gegebenen Beispiel von drei über einen Webserver mit dem WWW verbundenen Datenbanken  muss der Programmierer im Unterschied zu Native Calls nur noch ein einziges CGI-Script schreiben, die anderen Module sind schon vorhanden


15.2.3. Standardschnittstellen


Es wurde eine Anzahl standardisierter Schnittstellen zum Zugriff auf heterogene Datenbanken entwickelt:

Die wichtigsten sind:

Standardschnittstellen ermöglichen es dem Programmierer in der Theorie, die Datenbanksysteme als Black Boxes zu betrachten, d.h. sich nicht um ihre Innereien kümmern zu müssen. Die Praxis sieht leider etwas anders aus:

"In a perfect world, the black box technique operates like an electrical outlet: You plug into a receptacle and your program works without requiring any additional intelligence. If you need solutions for writing interoperable SQL [Standard Query Language] programs, you will find that ODBC and JDBC are useful technologies. They do not deliver 100 percent of the promise of the black box and they don't produce a black box effect that is comparable to the Java APIs and the Java VM [Virtual Machine]. You will find however, that ODBC and JDBC include functions and methods, respectively, that are useful for writing portable database code."

[North, Ken: Database magic with Kan North. -- Upper Saddle River, NJ : Prentice Hall, ©1999. -- ISBN 0136471994. -- S. 328. -- {Wenn Sie HIER klicken, können Sie dieses Buch bei amazon.de bestellen}.


15.2.3.1. ODBC -- Open Database Connectivity


ODBC wurde 1992 von Microsoft entwickelt. Es ist eine von Microsoft entwickelte Schnittstelle für heterogene Datenbanken, die SQL unterstützen. Es gibt aber auch ODBC-Treiber für Nicht-SQL-Datenbanken, für Spredsheet Programme, Lotus Notes usw.

ODBC ist sehr verbreitet, weswegen Grundkenntnisse von ODBC für jede mit Datenbankentwicklung Beschäftigte unerlässlich sind.

Von ODBC existieren mehrere Versionen, was zu Problemen führen kann.

ODBC hat folgende Eigenschaften:

Abb.: Struktur von ODBC (Beispiel)


Weiterführende Ressourcen zu ODBC:

Yahoo Categories:


15.2.3.2. Microsoft OLE DB und Active Server Pages (ASP)


OLE DB ist eine von Microsoft entwickelte Schnittstelle (offener Standard) für verschiedene Datenbanken, auch solche, die SQL nicht unterstützen. OLE DB beruht auf Komponenten.

Active Server Pages (ASP) wurde von Microsoft für den Microsoft Information Server (IIS) 3.0 (Bestandteil von Windows NT 4.0) entwickelt, um die Schwierigkeiten für Programmierer mit ISAPI zu erleichtern, indem auf Seiten des Servers Scripts in VBScript ermöglicht wurden (solche Files haben die Erweiterung .ASP statt .HTML). ASP enthält eine Datenquellenzugriffskomponente (Database Access Component). Diese verwendet für den Zugriff auf Datenquellen (Datenbanken, Tabellenkalkulationen, strukturierte Textdateien) ActiveX Data Objects (ADO). ADO arbeitet mit OLE DB, einer einheitlichen objektorientierten Schnittstelle für beliebige Datenquellen. Man kann bei Verwendung von OLE DB also die verwendete Datenbank austauschen, ohne den Programmcode in ASP modifizieren zu müssen. OLE DB hat auch eine Schnittstelle zu ODBC, so dass über OLE DB auch alle Datenbanken zugänglich sind, die über ODBC zugänglich sind.

Advanced Data Connector (ADC) ist ein Server- und Client-gestütztes Werkzeug, das erlaubt, dass Daten aus einer Datenquelle in einer Ladung auf den Client übertragen und auf dem Client bearbeitet und verändert (z.B. upgedated) werden und dann wieder in einer Ladung  zur Datenquelle geschickt werden.

Abb.: Architektur einer Datenbankanbindung mit ASP/ADO/OLE DB


Weiterführende Ressourcen zu OLE DB:


15.2.3.3. JDBC -- Java Database Connectivity


JDBC ist eine von JavaSoft (Tochterfirma von Sun) entwickelte Schnittstelle (API)  für Java-Programme. JDBC ermöglicht Java Programmen, über SQL-Befehle auf Datenbanken zuzugreifen. Im Gegensatz zu ODBC ist JDBC auf eine einzige Programmiersprache beschränkt.


Weiterführende Ressourcen zu JDBC:


15.3. Architekturformen datenbankbasierter Internet-Anwendungen


Assfalg, Rolf ; Goebels, Udo ; Welter, Heinrich: Internet-Datenbanken. -- Bonn : Addison-Wesley-Longman, 1998. -- ISBN 3-8273-1230-2. -- S. 17 - 25 unterscheiden folgende Architekturen datenbankbasierter Internet-Anwendungen:


15.3.1. Reportgenerator-Schnittstellen


Man verwendet spezielle Reportgenerator-Schnittstellen für die Datenbank, die Ausgaben in HTML erzeugen. Diese Seiten kann dann jede Art von Webserver verwenden. Auf Seiten des Webservers sind dabei keinerlei speziellen Erweiterungen erforderlich. Diese Lösung ist sinnvoll, um tabellarische Standardausgaben (z.B. Börsenkurse, Wettermeldungen, Abfahrtszeiten und Verspätungen und dergleichen) zu erstellen. Der Benutzer hat keine Möglichkeit, die erzeugten Dokumente zu beeinflussen.

Abb.: Reportgenerator-Architektur


15.3.2. Webserver mit Datenbankzugriff


Der Webserver erhält mittels Native Calls, einer standardisierten Schnittstelle (ODBC, JDBC) oder einer proprietären Datenbank-API Datenbankzugriffsfunktionen (diese werden mittels Skripts gesteuert):

Abb.: Webserver mit Datenbankzugriff

Schema eines Datenbankzugriffs auf Web mittels CGI oder eines API (Application Programming Interface

Browser (Formular) --> HTTP --> Webserver --> CGI/FastCGI/ISAPI/NSAPI (usw.) --> Database Client (Web Service) --> Database Server --> Physikalisches Speichermedium der Datenbank -->retour

CGI -- Common Gateway Interface offener Standard (nicht von bestimmten Produkten oder Betriebssystemen abhängig)
ISAPI -- Internet Server Application Programming Interface Von Process Software und Microsoft als Alternative zu CGI für den Internet Information Server (IIS) entwickelt (auch von einigen Servern anderer Hersteller unterstützt)
NSAPI -- Netscape Server Application Programming Interface Von Netscape Communications Corp, als Alternative zu CGI entwickelt. Läuft nur auf Netscape Servern

15.3.3. Datenbanksystem mit integriertem Webserver


Das Datenbanksystem wird um die Funktion des Webservers erweitert. Bei diesem Ansatz sind Webserver und Datenbanksystem integriert, so dass man sich nicht um die Konfiguration von Schnittstellen und die Datenübergabe usw. kümmern muss.

Abb.: Erweiterung eines vorhandenen Datenbanksystems als Webserver


15.3.4. Webserver mit Komponentenschnittstelle


Dies ist ein modularer Ansatz. Der Umgang mit Komponenten ist für Entwickler im Allgemeinen einfacher als durchgehende Programmierung.

Abb.: Webserver mit Komponentenschnittstelle


15.3.5. Standard-Gateways


Man verwendet Standard-Schnittstellen wie CGI (Common Gateway Interface).

Abb.: Standardgateways


15.3.6. Middleware


Problem:

Um diese Probleme zu lösen, bedarf es einer gemeinsamen, universellen Schnittstelle. Diese Schnittstelle bildet den Middleware Layer.

Der Middleware Layer muss eine Anzahl von Problemen lösen:

Abb.: Middleware


15.4. Einstufige versus mehrstufige Architektur


Bei einer einstufigen (Single-Tier) ODBC-Architektur benötigt der Client datenbankspezifische Software (deshalb ist diese Architektur einstufig: der Client arbeitet in der datenbankspezifischen Stufe)

Single-Tier-Architektur
SERVER A CLIENT SERVER B

DATENBANK System A

Anwendung

DATENBANK System B

ODBC-Treiber-Manager

Spezifischer
Treiber für
Datenbank A

Spezifischer
Treiber für
Datenbank B

Kommunikations-
Treiber für Datenbank A

Kommunikations-
treiber für Datenbank A

Kommunikations-
treiber für Datenbank B

Kommunikations-
treiber für Datenbank B

NETZWERK

Bei einer mehrstufigen (multi-tier) ODBC-Architektur liegt alle datenbankspezifische Software nur auf den Servern.

Multi-Tier-Architektur
SERVER A CLIENT SERVER B

DATENBANK System A

Anwendunng

DATENBANK System B

Datenbank A - Agent

Request Broker

Datenbank-unabhängige ODBC Treiber- / Kommunikations-Schicht

Request Broker

Datenbank A - Agent

NETZWERK

Beim Server gibt es einen Request Broker, der zuständig ist für die Datenverbindung, Sicherheit und Berechtigungsüberprüfung. Danach übergibt der Broker die Kommunikation an den Datenbank Agenten.

Eine zweistufige Architektur verlegt meist sehr viel in den Client. Das kann den Nachteil haben, dass jede Änderung im Datenbanksystem zu einer Änderung der Client-Software führt mit allen Problemen der Verteilung dieser Software, der rechten Installation und Wartung.

Die häufigste mehrstufige Architektur ist die dreistufige:

Benutzerschnittstellenschicht (User Interface Layer)
Transaktionsschicht (Business Rules Layer)
Datenbankzugangsschicht (Database Access Layer)

Eine solche Architektur hat den Vorteil, dass sie die Benutzerschnittstelle durch den Business Rules Layer von der eigentlichen Datenbank isoliert und so Änderungen des Datenbanksystems erlaubt, ohne dass die Benutzerschnittstelle geändert werden muss.


15.5. Verteilte Systeme -- Distributed Systems


Verteilte Systeme sind eine Überwindung klassischer Client-Server-Systeme, insofern als jeder Teilnehmer am System anderen Teilnehmern Dienste anbieten kann. Die Dienste werden als Objekte (Komponenten) definiert. Schnittstellen zu den einzelnen Komponenten teilen anderen Komponenten mit, welche Dienste von dieser Komponente angeboten werden und wie diese Dienste genutzt werden können. Solange die Schnittstelle nicht verändert wird, kann die Implementierung der Komponente grundlegend verändert werden (z.B. Änderung des Datenbanksystems von relational zu objektorientiert), ohne dass dies andere Komponenten beeinflusst. Die Schnittstelle definiert das Protokoll des Verkehrs zwischen der Komponente und anderen Komponenten.

Das WWW ist eine Form eines verteilten Systems.

Abb.: Komponenten in einem verteilten System

Anforderungen an ein verteiltes Datnbanksystem sind:

Verteilte Systeme kann man als mehrstufige Client-Server-Systeme ansehen, die zusätzlich noch über Directory Services die Lokalisierung und Adressierung der Anbieter einzelner Dienste ermöglichen.

Außerdem ist, um die Konsistenz des Systems zu erhalten ein Transaction Monitor nötig, d.h. ein Programm, das gewährleistet, dass Systeminhalte verändernde Transaktionen an allen relevanten Stellen durchgeführt werden und dass sie nur durchgeführt werden, wenn an allen relevanten Stellen die Transaktion gelungen ist (Beispiel: eine bibliographische Änderung wird entweder an allen lokalen Stellen durchgeführt oder gar nicht: wenn also die Änderung an einer lokalen Stelle nicht gelingt, weil z.B. der Server down ist, dann wird die Änderung nirgends durchgeführt, sondern die Änderungstransaktion wird so lange versucht bis sie überall gelingt.)

Werkzeuge zur Entwicklung verteilter Systeme sind u.a. (alle komplexeren sind noch in der Entwicklung):

Socket Pragramming über Application Programming Interface (API) für weniger komplexe Datentypen geeignet
Remote Procedure Call (RPC) RFC 1831. -- URL: http://www.cis.ohio-state.edu/htbin/rfc/rfc1831.html. -- Zugriff am 17.7.1999

RPC ermöglicht den Aufruf von Programmen, Subprogrammen und Programmkomponenten auf einem anderen Computer

Open Group [früher: Open Software Foundation (OSF] Distributed Computing Environment (DCE) OSF DCE ist ein herstellerneutraler Industriestandard für verteilte Systeme mit den dafür notwendigen Teilkomponenten. 

Näheres siehe: http://www.opengroup.org/dce/ -- Zugriff am 17.7.1999

CORBA -- Common Object Request Broker Architecture s. unten
Microsoft's Distributed interNet Application Architecture (DNA) mit DCOM s. unten
JPE -- Java Platform for the Enterprise s. unten

Weiterführende Ressourcen zu verteilten Systemen:

Ressourcen in Printform:

Weber, Michael: Verteilte Systeme: Heidelberg [u.a.] : Spektrum, ©1998. -- 376 S. : Ill. -- ISBN 3827402212. -- [Brauchbare Übersicht]. -- {Wenn Sie HIER klicken, können Sie dieses Buch bei amazon.de bestellen}


15.5.1. Objekt-Orientiertheit und Komponenten-Orientiertheit


Verteilte Systeme sind "Objekt-Orientiert". Der Begriff stammt aus der objekt-orientierten Softwareentwicklung (object-oriented programming, OOP). OOP beruht auf sieben Grundkonzepten:

  1. Objekt (Exemplar, Instanz) (object, instance): individuelles Exemplar von Dingen, Personen, Begriffen und dergleichen. Ein Objekt besitzt eine Objekt-Identität.
  2. Attribute (attribute): beschreiben die Eigenschaften eines Objekts. Attributwerte: die aktuellen Werte der Attribute
  3. Operationen (Methoden) (service, operation): Dienstleistungen, die ein Objekt zur Verfügung stellt. Operationen kommunizieren mit der Umwelt über Ein- und Ausgabeparameter. Operationen werden in Spezifikationen definiert.

    Als (nicht ganz exakte) Analogie kann man verwenden:


    Beispiel für Objekt,  Attribute, Operationen (Methoden):

    Obiges Auswahlkästchen kann man als Objekt so darstellen:

    Objekt "Auswahlkästchen"
    Attribute Operationen (Methoden)
    Größe Drop-Down-Menü öffnen
    Auswahlmethode eine Option auswählen
    Liste der Optionen Drop-Down-Menü schließen

     

  4. Klassen (class, object-class): fassen Objekte mit den gleichen Attributen und Operationen zu einer Einheit zusammen. Klassenattribute beschreiben die Eigenschaften von Klassen. Klassenoperationen sind Klassen zugeordnet. Durch die Verkapselung (encapsulation) kann auf Attributwerte nur über Operationen zugegriffen werden
  5. Vererbung (generalisation, inheritance): gibt Attribute und Operationen an alle Unterklassen einer Oberklasse weiter. Dadurch entsteht eine Klassenhierarchie.
  6. Botschaften (message): sind das Mittel der Kommunikation zwischen Objekten bzw. Klassen
  7. Polymorphismus (polymorphism): erlaubt es gleiche Botschaften an Objekte unterschiedlicher Klassen zu schicken, die dann auch unterschiedlich reagieren

Am wichtigsten für den Benutzer ist Verkapselung (encapsulation): man stelle sich vor, dass man z.B. bei jedem Modell jedes Personenaufzugs jedes Herstellers zur Benutzung wissen müsste, wie das System funktioniert. Statt dessen hat der Aufzug eine allgemeinverständliche öffentliche Schnittstelle (public interface): die Knöpfe mit den Beschriftungen bzw. Symbolen für "Hinauf", "Hinunter", Stockwerksnummern, "Tür öffnen" usw. So sind Nutzer einer Computerdienstleistung im Allgemeinen nur daran interessiert, welche Dienstleistungen angeboten werden und wie man diese Dienstleistungen in Anspruch nehmen kann.

Objekt-orientierte Softwareentwicklung strebte zunächst die drei R's an:

  1. Reduce: verkleinere die Programmierzeit, die Komplexität des Programms, die Belastung von Netzwerk und Server
  2. Reuse: verwende die Objekte, Komponenten und Anwendungsrahmen in verschiedenen Kontexten wieder. Die Hoffnungen in diesem Gebiet wurden ziemlich enttäuscht
  3. Recycle: durch die Verkapselung können alte Komponenten (z.B. Datenbanksysteme) weiter verwendet werden: man verkapselt ihre Funktionen hinter einer OOP-Schnittstelle und kann sie so im neuen Kontext weiterverwenden.

Da sich die Erwartungen an Objekte nicht erfüllt haben, tritt allmählich an die Stelle der objektorientierten Softwareentwicklung (OOP) die Komponentenorientierte Softwareentwicklung (Component-Oriented Programming, COP). Eine Komponente ist in diesem Sinne eine Gruppe von Objekten, die hinter einer gemeinsamen Schnittstelle verborgen (Verkapselt) sind. Komponenten sind Einheiten für Wiederverwertung, Plug-in Software-Module. Komponenten sind nicht Objekte im strengen Sinn: es fehlt ihnen z.B. das Merkmal der Vererbung.


Weiterführende Ressourcen zu Objektorientiertheit und Komponenten:

Yahoo Categories:

News:

Organisationen:

Virtual libraries:


15.5.2. CORBA -- Common Object Request Broker Architecture


"Ich glaube, Corba selbst ist nicht so schwer, aber verteilte Systeme zu entwickeln ist hart."

Richard Soley, Chief Engineering Officer der OMG. -- In: Computerwoche. -- 28/1999. -- S. 16.

CORBA ist eine Spezifikation, die die Definition der Schnittstellen in verteilten Systemen sowie die Kommunikation zwischen diesen Schnittstellen ermöglicht. CORBA ist systemunabhängig und auch nicht an eine bestimmte Programmiersprache gebunden.

CORBA wurde 1991 von der OMG (Object Management Group) [URL: http://www.omg.org/. -- Zugriff am 13.7.1999]  als Spezifikation ihrer Object Management Architecture (OMA) vorgestellt. 

Die OMG wurde im April 1989 gegründet, Gründungsmitglieder waren u.a. 3Com Corporation, American Airlines, Canon, Inc., Data General, Hewlett-Packard, Philips Telecommunications N.V., Sun Microsystems,Unisys Corporation.

Jedes Mitglied der OMG kann Vorschläge zur Erweiterung von CORBA einbringen: Spezifikationen, die nicht innerhalb eines Jahres implementiert sind, werden gestrichen. Normalerweise werden neue Spezifikationen gleichzeitig mit Implementierungen eingebracht.

Die von OMG entwickelte Object Management Architecture hat folgende Struktur:

Abb.: Object Management Architecture (OMA)

[Vorlage der Abb.: http://www.omg.org/oma/. -- Zugriff am 13.7.1999]


Man kann diese Object Management Architektur auch als Schichtenmodell darstellen:

Application Layer -- Anwendungsschicht

Common Facilities Layer (CORBAFacilities)

Anwendungsschnittstelle für Anwendungen, die von mehreren anderen Anwendungen gemeinsam genutzt werden

Vertical Frameworks

Gemeinsame Ressourcen für spezielle Anwendungstypen und spezielle Anwendergruppen: z.B. Rechnungswesen, Graphik, Kraftstoffindustrie ...

Horizontal Frameworks

Gemeinsame Ressourcen, die nicht so grundlegend sind wie CORBA-Services, z.B. Benutzeroberfläche für zusammengesetzte Dokumente, Informationsverwaltung (Speicherung und Interaktion der Komponenten zusammengesetzter Dokumente), Task Management, Systemverwaltung (Einloggen, Sicherheit, Transaktionsmanagement), e-mail, ,

Object Services Layer (CORBAServices)

Grundlegende Dienste für alle Objekte wie z.B. Adressierung, Lebenszyklus (Mitteilung an die von einer Anwendung genutzten Objekte, dass die aktuelle Nutzung beendet ist), Event Service (Erstellung eines Kommunikationskanals, durch den ein Objekt auf Vorgänge wie z.B. Tastatureingabe, Mausklick wartet)

Object Request Broker (ORB) Layer

regelt die Kommunikation zwischen den Objekten. Ermöglicht das Auffinden von Diensten. Bereitet das Zielobjekt vor, damit es Anfrage akzeptiert


Das Schichtenmodell von CORBA:

Schicht (Layer) Erklärung
Application  
Skeletons /Stubs Skeleton=vorgegebene Grundstruktur zur Implementierung von Objektschnittstellen, deren Eigenschaften erst während des Vorganges bekannt werden
Stub=Lokale Funktion zur Weiterleitung eines Aufrufes
GIOP
(General Inter-ORB Protocol)
ESIOP
(Environment-Specific Inter-ORB Protocol)
GIOP: Hierher gehört das IIOP (Internet Inter-ORB Protocol) das direkt mit TCP verbindet (und in den meisten Fällen eine weitaus bessere Alternative zu HTTP bietet) ESIOP: bisher existiert z.B. ein ESIOP für Open Groups DCE (Distributed Computing Environment): DCE-CIOP, welches DCE mit TCP verbindet.
Internet IOP DCE-CIOP    
TCP  
IP  
LANs/WANs  

CORBA-Schnittstellen und Objektinteraktion:

Abb.: CORBA-Schnittstellen und Objektinteraktion

Kurzerklärungen:


Bisherige Anwender von CORBA:

"Computerwoche: Wie verwenden Unternehmen Corba in der Praxis?

Richard Soley, Chief Engineering Officer der OMG: Zur Zeit setzen viele Unternehmen Corba in einem oder zwei kleinen Projekten ein. Wenn dann das Know-how aufgebaut ist und entsprechende Tools verfügbar sind, wird auch systemweit entwickelt. Vor allem in Japan und den USA sehen wir diesen Trend. Ein Beispiel ist etwa der US-Sender CNN, der Corba mittlerweile unternehmensweit einsetzt und alle möglichen Nachrichten in Text und Bild integriert. Die haben dort 350 000 Hits am Tag. [http://www.cnn.com/. -- Zugriff am 16.7.1999]

Computerwoche: Welches sind die Einsatzgebiete?

Soley: Normalerweise finden Sie Corba nur in großen heterogenen Umgebungen. Anwenderbeispiele sind 

....

Computerwoche: Wie ist die  Akzeptanz von Corba in Deutschland?

Soley: Ich glaube, der deutsche Markt ist reservierter als andere. Die Anwender gehen vorsichtiger und organisierter an neue Techniken heran und möchten selbst bei Erfolg noch nicht über ihre Projekte sprechen.  Dies war anfangs in den USA genauso, weil die Unternehmen den Einsatz von Corba als strategisch ansehen."

[Corba 3.0 verspricht eine stabile Standardarchitektur : [Interview mit Richard Soley]. -- In: Computerwoche. -- 28/1999. -- S. 16.]


Beispiel einer CORBA Anwendung: LUIS BB -- Landesumweltinformationssystem Brandenburg

"Condat [http://www.condat.de/. -- Zugriff am 16.7.1999] recently saw the deployment of its new LUIS application in the federal state of Brandenburg, Germany, in a total of five locations. LUIS is an interactive system that was designed for the Ministry of the Environment, Nature Conservation and Spatial Planning of Brandenburg. As an integration platform, LUIS makes the current environmental information from Brandenburg available to all of the internal administrative system users, as well as to the general public, by means of the Internet. The information itself is stored in various locations and then updated locally within the various domain-specific applications. LUIS, as a distributed program system based on a broker architecture, is the foundation for the strategic development of the entire information technology system at the Ministry of the Environment.

When implementation of the LUIS project began in 1995, IONA's Orbix [http://www.iona.com/products/index.html. -- Zugriff am 16.7.1999] was the only available middleware product which provided the scalability, flexibility and robustness required to begin product development. Condat realised early on that CORBA marked the way forward for its new application. It saw that a CORBA-based architecture would provide the freedom necessary for developers building object oriented implementations. Using Orbix meant that there was only one communication protocol which alleviated Condat's need to install several drivers (ODBC for example) to construct a system which would eventually have to integrate heterogeneous information sources and systems. Orbix for HP-UX, Windows 3.1, Windows NT/95 and OrbixWeb provide the CORBA layer in Condat's LUIS application.

As an infrastructural system, LUIS delivers environmental information from a variety of existing systems which are connected using so-called „adapters". Current adapters include popular relational database systems such as Oracle, Informix and Access. It transports „presentations" with the data that are based on standard desktop products like WordPerfect, Access, Excel and GIS-Systems (ESRIArcView). The system itself contains only metadata that is used to transparently determine some technical information to gain access to the underlying systems and, on the other hand, contains information which allows the user of the system to navigate and search in the services offered. The system uses IONA's Orbix, C++, OLE-Bridge and Java, and operates on several platforms including HP-UX and Windows 3.1, and Windows NT/95."

Quelle: http://www.omg.org/omg/organization.html. -- Zugriff am 13.7.1999


Die Entwicklung des CORBA-Standards:

Die folgende Übersicht soll einen Eindruck von der Komplexität von CORBA geben, ohne dass die Einzelheiten erklärt werden:

Jahr Version Features, die normiert werden
1992 Version 1.1.
  • Basic ORB
  • IR, BOA
  • C Bindings
  • Naming
  • Events
  • Life Cycle
  • Persistenz
1995 Version 2.0
  • BO
  • Federated IR
  • C+ Bindings
  • Transaktionen
  • Concurrency
  • Externalization
  • Relationships
  • Query
  • Lizenzierung
  • Verbunddokumente
  • Trader
  • Sicherheit
  • Collections
  • Zeit
1999 Version 3.0
  • Messaging (MOM)
  • Server Portability (POA)
  • Multiple Interfaces
  • Business Objects / Javabeans
  • Java Bindings
  • Objects-by-Value
  • Mobile Agents
  • Corba / DCOM
  • Automatische Persistenz
  • IIOP Firewall Support
  • Workflow
  • Domain-Level Frameworks

Vorlage der Tabelle: Corba 3.0 verspricht eine stabile Standardarchitektur. -- In: Computerwoche. -- 28/1999. -- S. 15.


Weiterführende Ressourcen zu CORBA:

Yahoo Categories:

Organisationen:

Ressourcen in Printform:

Sayegh, Andreas <1964 - >: CORBA : Standard, Spezifikationen, Entwicklung. -- 2., aktualisierte und erweiterte Aufl. -- Beijing [u.a.] : O'Reilly, 1999. -- 153 S. : Ill. -- ISBN 3897211564. -- [Knapp und verständlich]. -- {Wenn Sie HIER klicken, können Sie dieses Buch bei amazon.de bestellen}


15.5.3. DNA -- Microsoft's Distributed interNet Application Architecture


Microsoft's Distributed interNet Application Architecture (DNA) umfasst sechs Grundtechnologien der Microsoft Component Services:

Weiterführende Ressourcen zu DNA:


15.5.4. JPE -- Java Platform for the Enterprise


JPE wird von Sun's JavaSoft propagiert als Grundtechnologie für mehrstufige verteilte Systeme. JPE enthält sechs Grundtechnologien:


15.6. Eingabe von Datenbankanfragen


Die geläufigste Methode für Anfrage und Eingabe an Datenbanken ist das HTML-Element <FORM>

Syntax

Darstellung im Browser

<FORM>...</FORM>

 mit den Unterelementen: 

<INPUT>
<SELECT>

<OPTION>...</OPTION>

</SELECT>
<TEXTAREA>...</TEXTAREA>

<FORM METHOD="POST" ACTION="--WEBBOT-SELF--">Eingabe 1<INPUT TYPE="submit" VALUE="Abschicken" NAME="B1"><INPUT TYPE="reset" VALUE="Zurücksetzen" NAME="B2"></FORM>

Erscheint in Ihrem Browser so: 

Eingabe 1

 


Wichtigste Attribute von <FORM>:

Attribute Beispiel
ACTION="URL des Programms, das die Daten weitervearbeitet" <FORM ACTION="http://www.bigcompany.com/cgi-bin/post-query" METHOD="POST">

bzw. mit relativer URL:

<FORM ACTION="../cgi-bin/get-query" METHOD="GET">

METHOD="GET"

bzw.

METHOD="POST"

s. oben

Wichtigste Form Controls (Unterelemente von <FORM>):

 

Element mit Attributen Beispiel
<INPUT "TYPE="TEXT" NAME="Name des INPUT-Elements" SIZE="Größe des Eingabefelds"> (für einzeilige Eingaben) <FORM METHOD="POST" ACTION="...">
<P>Vorname:<INPUT TYPE="TEXT" NAME="Vorname" SIZE="20"></P>
<P>Name: <INPUT TYPE="TEXT" NAME="Name" SIZE="20"></P>
</FORM>

Erscheint in Ihrem Browser so:

 Vorname:

Name:

 

<INPUT "TYPE="PASSWORD" NAME="Name des INPUT-Elements" SIZE="Größe des Eingabefelds"> (für Eingabe des Passworts)  <FORM METHOD="POST" ACTION="...">
<p>Passwort: <INPUT TYPE="PASSWORD" NAME="Passwort" SIZE="20"></p>
</FORM>

Erscheint in Ihrem Browser so:

Passwort:

<INPUT "TYPE="CHECKBOX" NAME="Name des INPUT-Elements" VALUE="Bedeutung des Ankreuzens">

(Zur Auswahl mit Ankreuzen)

<FORM METHOD="POST" ACTION="..." NAME="Suche"><p>
<INPUT TYPE="CHECKBOX" NAME="Monographien" VALUE="Monographien">Monographien<br>
<INPUT TYPE="CHECKBOX" NAME="Zeitschriftenartikel" VALUE="Zeitschriftenartikel">Zeitschriftenartikel<br>
<INPUT TYPE="CHECKBOX" NAME="Karten" VALUE="Karten">Karten<br>
<INPUT TYPE="CHECKBOX" NAME="Filme" VALUE="Filme">Filme</p>
</form>

Erscheint in Ihrem Browser so:

Monographien
Zeitschriftenartikel
Karten
Filme

 <INPUT TYPE="RADIO" NAME="Name des Buttons" VALUE="Bedeutung der Auswahl">

(zur Auswahl mit Radio Button)

<FORM METHOD="POST" ACTION="..." NAME="Anzeigeformat"><P>
<INPUT TYPE="RADIO" VALUE="Kurzanzeige" CHECKED NAME="Anzeige">Kurzanzeige<br>
<INPUT TYPE="RADIO" VALUE="Vollanzeige" NAME="Anzeige">Vollanzeige<br>
<INPUT TYPE="RADIO" VALUE="Formatanzeige" NAME="Anzeige">Formatanzeige</p>
</FORM>

Erscheint in Ihrem Browser so:

Kurzanzeige
Vollanzeige
Formatanzeige

 <INPUT TYPE="SUBMIT" VALUE="Bedeutung der Eingabe" NAME="Name des >INPUT>-Elements">

(zum Abschicken einer Eingabe) 

<FORM METHOD="POST" ACTION="...">
<p><INPUT TYPE="SUBMIT" VALUE="Abschicken" NAME="Eingabe"></p>
</FORM>

Erscheint in Ihrem Browser so:

<INPUT TYPE="RESET" VALUE="Reset Form" NAME="Name des <INPUT>-Elements"> 

(zum Löschen der Eingabe)

<FORM METHOD="POST" ACTION="...">
<P><INPUT TYPE="TEXT" NAME="T1" SIZE="20">
<INPUT TYPE="RESET" value="Zurücksetzen" NAME="B2"></P>
</FORM>

Erscheint in Ihrem Browser so:

<TEXTAREA ROWS="Anzahl der Zeilen" COLS="Anzahl der Zeichen pro Zeile" NAME="Name des TEXTAREA-Elements">Vorgabe</TEXTAREA>

(für mehrzeilige Eingaben)

<FORM METHOD="POST" ACTION="...">
<p><TEXTAREA ROWS="5" NAME="Anfrage" COLS="20"></TEXTAREA></p>
</FORM>

Erscheint in Ihrem Browser so:

<SELECT NAME="Name des SELECT-Elements">

<OPTION>Option1
<OPTION>Option2
....
<OPTION>OptionN

</SELECT>

(zur Auswahl aus einem Pull-Down-Menü)

<FORM METHOD="POST" ACTION="...">
<p><SELECT SIZE="1" NAME="Suchstrategie">
<OPTION SELECTED>Alles</OPTION>
<OPTION>Titel</OPTION>
<OPTION>Autor</OPTION>
<OPTION>Schlagwort</OPTION>
</SELECT></p>
</FORM>

Erscheint in Ihrem Browser so:


15.7. Weiterführende Ressourcen


Online-Volltexte:

Yahoo Categories:

Virtual libraries:

Ressourcen in Printform:

Assfalg, Rolf ; Goebels, Udo ; Welter, Heinrich: Internet-Datenbanken : Konzepte, Modelle, Werkzeuge. -- Bonn : Addison-Wesley-Longman, 1998. -- ISBN 3827312302. -- [Gute Übersicht]. --{Wenn Sie HIER klicken, können Sie dieses Buch bei amazon.de bestellen}.

Sheldon, Tom: Encyclopedia of networking. -- Berkeley [u.a.] : McGraw-Hill, ©1998. -- 1164 S. : Ill. + 1 CD-ROM. -- ISBN 0078823331. -- [Unentbehrlich!]. -- {Wenn Sie HIER klicken, können Sie dieses Buch bei amazon.de bestellen}


Zum Nächsten Kapitel:

Kapitel 16: Anhang : UNIX