Home

Verteilte Objekte

image

Contents

1. Der Begriff Moniker stammt aus dem englischen Sprachraum und bedeutet bersetzt Spitz name Diese Namensgebung umschreibt treffend die Definition Ein Moniker ist eine eindeutige Bezeichnung f r eine bestimmte Objektinstanz also eine eindeutige Kombination aus CLSID und persistenter Daten CHAP96 Die Abbildung von Moniker auf Objektinstanzen ist eindeutig Aus der Sicht des COM ist ein Moniker selbst eine Komponente welche das Interface IMoniker unterst tzt Dar ber hinaus enth lt jeder Moniker seine eigene persistente Datenmenge die aus reicht um die von ihm benannte Objektinstanz zu starten und zu initialisieren ood Klient s Objekt eo A Server n a Moniker IMoniker Abb 26 Verwendung eines Monikers CHAP96 Die Verwendung eines Monikers wird in der obigen Abbildung dargestellt Zun chst wird die BindToOb ject Methode der IMoniker Schnittstelle durch den Klienten ausgef hrt und als Parameter eine IID bergeben die auf das Zielobjekt des Klienten verweist s 1 Anschlie end instantiiert der Moniker das angeforderte Objekt und fordert es auf die persistenten Daten zu 60 Verarbeitung mit verteilten Objekten laden s 2 Der Zeiger auf das angeforderte Interface wird nun direkt von der Serverkomponente an den Klienten zuriickgegeben s 3 Danach kann der Aufruf der Methode erfolgen s 4 Damit nicht jeder Klient eine neue Instanz einer Komponente instantiier
2. JDBC ODBC ODBC LAN Ethernet Tab 26 Performanzvergleich von RDO und JDBC ODBC Br cke XVIII Auswertung und Ausblick auf weitere Entwicklungen Anhang D Funktionsreferenz fur DCE und MS RPC API Funktionen MS RPC V2 0 unterstiitzt nahezu alle OSF DCE RPC API und bietet selbst einige Erweiterungen Die Beziehungen zwischen den beiden Bezeichnungsschemata werden in der folgenden Tabelle dargestellt Besonders bemerkenswert sind die Ver nderungen seit der Ver ffentlichung der MS RPC V1 0 ROS932 Inkompatibilit ten zwischen den Implementierungen werden hervorgehoben DCE Funktionsname dce_error_ing_text nicht unterst tzt rpc_binding_copy rpc_binding_free rpc_bindin_from_string_binding nicht unterst tzt nicht unterst tzt nicht unterst tzt nicht unterst tzt nicht unterst tzt rpc_binding_ing auth_dient rpc_binding_ing_auth_info rpc_binding_ing_object rpc_binding_reset rpc_binding_server_from_client rpc_binding_set_auth_info rpc_binding_set_object rpc_binding_to_string_binding rpc_binding_vector_free rpc_ep_register rpc_ep_register_no_replace rpq_ep_resolve_binding rpc_ep_unregister rpc_if_id_vector_free rpc_if_inq_id rpc_if_register_auth_info nicht unterst tzt nicht unterst tzt rpc_mgmt_ep_elt_ing_begin rpc_mgmt_ep_elt_inq_done rpc_mgmt_ep_elt_inq_next rpc_mgmt_ep_unregister rpc_mgmt_inq_com_timeout rpc_mgmt_inq_dflt_authn_level rpc_mgmt_ing_dflt_protect_level rpc_mgmt_inq_if_ids rpc
3. 44 Verarbeitung mit verteilten Objekten eine Berechtigung die als Ticket Granting Ticket TGT bezeichnet wird zur Verf gung Damit berpr ft dieser Dienst die Identit t eines Objektes beim ersten Kontakt mit dem System 2 Privilegierung Dieser Dienst f gt sogenannte Extended Privilege Attribute Certificates EPAC also zu s tzliche Sicherheitsattribute an die Berechtigung an 3 Registrierung Der Registrierungsdienst ist eine Sammlung von Informationen ber die Principals Gruppen und Konten innerhalb der DCE Zelle Jede Ressource Person Datei Ger t usw innerhalb einer Zelle hat einen Bezeichner der im Raum der verbundenen Zellen eindeutig ist Der DCE Directory Service speichert die Bezeichner von Ressourcen in DCE Dabei wird ein Bezeichner auf die eindeutige Netzwerkadresse der Ressource abgebildet Die Komponente die dabei die Namen innerhalb einer Zelle verwaltet wird als Cell Directory Service CDS bezeichnet Demgegen ber werden die Namen au erhalb einer Zelle durch den Global Directory Service GDS verwaltet GDS ist eine Implemen tierung des Verzeichnisdienst Standards X 500 HAL96 der sowohl in der CCITT X 500 Reihe als auch in dem ISO 9594 Standard der Intentional Standards Organisation ISO spezifiziert ist ROS931 DCE Klienten und Serveranwendungen interagieren mit dem DCE Directory Service ber einen Vermittler der als CDS Clerk bezeichnet wird Dieser bernim
4. 76 Beispielentwicklung und implementierung Eigenschaft Ver ffentlichte Schnittstelle JAVA Packages C Funktion Prototypen Interne Architektur JAVA Objekte C Strukturen C Klassen Objekt Manipulation JAVA Objekte Handles Plattformabh ngigkeit unabh ngig abh ngig Plattformabh ngigkeit der unabh ngig abh ngig Kommunikationsschicht Abh ngigkeit von der Datenquelle der unabh ngig abh ngig Kommunikationsschicht Klientencode JAVA C C 4 VB etc Tab 14 Unterschiede von JDBC und ODBC Da die gro e Mehrheit der kommerziellen Datenbanken ber eine ODBC API kaum aber ber eine JDBC Schnittstelle verf gt stellt die JDBC ODBC Br cke einen wichtigen Schritt in der F rderung der Akzeptanz der neuen Programmiersprache JAVA dar Zudem w re der Zugriff auf das C basierte ODBC nur ber DLLs m glich was gro e Schwierigkeiten bei der Realisierung in JAVA zur Folge h tte Durch diese Br cke ffnet sich der sehr ausgedehnte Markt der ODBC f higen Datenbanken auch f r JAVA Anwendungen LIN96 Die folgende Darstellung verdeutlicht die Position der JOBC ODBC Br cke in einer Datenbank anwendung unter JAVA JAVA Anwendung JAVA Anwendung JDBC API JDBC Driver Manager JDBC Driver Manager JDBC ODBC Br cke ODBC Driver Manager Treiber Treiber DBMS DBMS DBMS DBMS Abb 32 Integration von ODBC Treibern in die JDBC API Schichten JDBC besteht aus zwei Hauptschichten das JDB
5. Im folgenden wird der Inhalt der beigefiigten Disketten kurz aufgefiihrt und die Funktionen der wichtigsten Dateien erl utert Diskette 1 JavaIDL Implementierung und Benchmarks 777 Browser E Makefile 777 Classes 777 Dokumentation B jdbe RemoteRecordSet html 777 Images 77 IDL 77 IDL 777 Benchmark Benchmark idl Browser Browser idl Ping idl 77 JAVA 77 IDL 777 Benchmark BenchClient java BenchImpl java BenchServer java Browser BrowserClient java Browserlmpl java BrowserServer java PingImpl java 77 JDBC 777 Pages browser html benchmark html 77 Stubs 77 IDL 777 Benchmark 777 Browser Im mg H IP Il m mp mp H ud Jup Im II Jup Verzeichnis der Bytecode Klassen Dokumentation der RemoteRecordSet Klasse IDL Spezifikationsdateien IDL der JDBC Benchmark Anwendung IDL des Datenbankservers IDL des Datenbankklienten JAVA Benchmark Klient JAVA Serverobjektimplementierung JAVA Benchmark Server JAVA Datenbankklient mit GUI JAVA Serverobjektimplementierung JAVA Datenbankserver JAVA Implementierung der Trigger Methode HTML Seite des Datenbankklienten HTML Seite des Klienten fiir den Benchmarkversuch Stubs des Benchmarkversuches Stubs des Datenbankbeispiels XXIII Auswertung und Ausblick auf weitere Entwicklungen Diskette 2 DCOM Benchmarks 777 DCOM Bench 777 Client modDCOMBenchClient bas DCOMBenchClient vbp DCOMBenchClie
6. e Sie unterst tzt Verschl sselung fiir Benutzerkennw rter und Daten e Im Gegensatz zu Named Pipes NWLink Banyan Vines und TCP IP Sockets unterliegt sie keinen Verbindungsbeschr nkungen e Sie bietet eine Leistung die f r die meisten Anwendungen mit systemeigenen IPC Netz bibliotheken vergleichbar ist Als 3 Tier Beispielimplementierung fallen der mittleren Schicht lediglich zwei Aufgaben zu Zum einen ver ffentlicht der Server die beiden Methoden Public Function CreateRDO sSQOL As String As RDO rdoResultset Public Function CreateDAO sSQL As String As DAO Recordset Diese dienen lediglich der Initialisierung der Datenkomponenten die wiederum durch den Server ver ffentlicht werden Mit dem folgendem Codesegment instantiiert der Klient das Serverobjekt welches unter dem Namen DCOMDataServer mit der Klassenbezeichnung DataServer in der Registry eingetragen ist und initialisiert anschlie end das Datenbankobjekt Dim mobj As Object Set mobj CreateObject DCOMDataServer DataServer Dim mrdo As RDO rdoResultset Set mrdo mobj CreateRDO select from gtz 3 Dim mdao As DAO Recordset Set mrdo mobj CreateDAO select from gtz F r diesen Versuch wurde auf der Serverseite sowohl das DAO als auch das RDO implementiert Aus den bereits erl uterten Gr nden ist der Einsatz des RDO allerdings vorzuziehen Hier soll nur dargestellt werden da sich die Datenbankobjekte f r den Klienten identisch verha
7. DOB97 Auswertung und Ausblick auf weitere Entwicklungen Literaturverzeichnis Beigl M Segor C COMe together Microsofts Distributed interNet Applications Architecture erschienen in iX Jg 12 1997 S 136 140 Berger J Die Kryptographie in der B rokommunikation Siemens Nixdorf White Paper intern 1996 Simpson B Mitchell J Christeson B u a m Making Sense of Java A Guide for Managers and the Rest of Us Manning Publications Co Greenwich 1996 Bruce G Dempsey R Security in Distributed Computing Prentice Hall Saddle River 1997 Campione M Integrating Native Methods into JAVA Programs Sun Microsystems Inc 8 Juli 1997 http java sun com docs books tutorial native Chappel D Understanding ActiveX and OLE Microsoft Press Redmond 1996 Chen H W James B Tsai C T u a m Cyber Battle Netscape Versus Microsoft A Dynamic Analysis Juni 1997 http www leland stanford edu johntsai dypro html Cheswick W R Bellovin S M Firewalls and Internet Security Addison Wesley 1994 Chorus Cool ORB 3 1 News Release Chorus Systems 1996 http www chorus com News coolorb html Check Point Check Point FireWall I White Paper Check Point White Paper 1997 http www checkpoint com Chung P E Huang Y Yajink S DCOM and CORBA Side by Side Step by Step and Layer by Layer 3 Sept 1997 http www research att com ymwang papers HTML DCOMnCORBA S html Bus
8. Die C Programmiersprache 2 Aufl Addison Wesley Bonn Paris Reading u a 1992 Sun Microsystems Inc The JAVA Door ORB Sun Microsystems Inc 1997 http splash javasoft com JavaIDL pages door orb html Sun Microsystems Inc Frequently Asked Questions Applet Security Sun Microsystems Inc 7 Juni 1997 Sun Microsystems Inc JAVA Development Kit 1 1 API Documentation Sun Microsystems Inc 6 Dezember 1996 http www javasoft com products JDK 1 1 Sun Microsystems Inc IDL JAVA Language Mapping Sun Microsystems Inc 1997 http splash javasoft com products jdk idl docs idl java html Hamilton G JavaBeans V1 01 Sun Microsystems Inc 24 Juli 1997 ftp ftp javasoft com docs beans beans 101 pdf Back S u a m Workshop JAVA Einfiihrung in die Programmierung von JAVA Applets International Thomson Publ VVA 1996 Tannenbaum A S Verteilte Betriebssysteme Prentice Hall Miinchen New York London u a 1995 Tannenbaum A S Computernetzwerke 3 Aufl Prentice Hall Miinchen New York London u a 1997 Vincent J Das Internet im Unternehmen erschienen in PC Professionell Juli 1996 Withopf M Microsoft DCOM fiir UNIX erschienen in iX Jg 8 1997 S 52 57 XXIX
9. 161 10 165 40 158 05 163 37 45 88 44 89 45 14 44 4 44 83 44 4 45 27 45 15 44 76 45 58 45 03 345 90 361 20 370 90 373 00 352 80 359 50 372 20 365 30 358 60 364 40 362 38 239 90 249 70 238 50 237 50 233 10 234 20 232 60 244 80 240 50 236 30 238 71 157 70 163 90 158 78 160 30 171 00 157 06 171 60 158 60 165 60 158 06 162 26 44 31 45 32 45 57 44 94 45 26 45 49 45 7 45 58 45 08 45 96 45 32 Auswertung und Ausblick auf weitere Entwicklungen 363 90 370 80 351 10 361 00 361 40 366 40 360 70 372 70 367 10 371 90 364 70 253 20 232 70 250 00 259 00 245 10 225 20 244 10 236 80 233 10 240 00 241 92 174 10 161 90 155 58 176 70 165 70 165 26 176 90 174 40 174 10 156 59 168 12 44 68 45 64 45 94 45 32 45 53 44 52 46 02 45 9 45 29 45 28 45 41 24010 24170 23230 23290 24010 24830 24880 25050 24230 24380 24208 23940 23840 24000 23240 23230 23950 23400 23450 24450 23780 23728 24220 23680 24280 23120 23010 23120 23400 23730 23290 22950 23480 22570 22680 23340 23180 22570 23400 23290 23290 23570 23230 23112 Tab 25 Performanzvergleich zwischen COM und JavalDL XVII 200 64 200 53 200 48 200 42 200 47 200 64 200 47 200 64 200 53 200 48 200 53 143 19 143 24 143 19 143 57 143 25 143 85 143 41 143 52 143 52 143 30 143 40 120 50 120 56 120 56 121 05 120 94 120 39 120 83 120 81 120 84
10. 2 3 Aktuelle Technologien verteilter Anwendungen im Internet 2 3 1 Grundlagen aktueller Technologien 2 3 2 Hypertext Mark up Language HTML 2 3 3 Sockets 2 3 4 HTTP und CGI ISAPI 2 3 5 Remote Method Invocation RMI 2 3 6 Moglichkeiten und Grenzen aktueller Technologien 2 4 Sicherheit 2 4 1 Sicherheit in verteilten Systemen 2 4 2 Ein Bedrohungsmodell 2 4 2 1 Die Bedrohung 2 4 2 2 Angriffsarten 2 4 2 3 Sicherheitsstrategien 2 4 2 4 Vermeidende Schutzmechanismen 2 4 2 5 Vertrauen 2 4 3 Methoden zum Schutz eines Intranet 2 4 3 1 Host Sicherheit 2 4 3 2 Firewall Gateways 2 4 3 3 Virtual Private Network VPN 3 2 1 CORBA 3 2 1 1 Allgemein 3 2 1 2 Object Management Architecture OMA 3 2 1 3 Common Object Request Broker Architecture CORBA 2 0 3 2 1 4 OMG Interface Description Language IDL 3 2 1 5 CORBA Services 3 2 1 6 Internet Inter ORB Protocol IIOP 3 2 2 Distributed Computing Environment DCE 3 2 2 1 Einf hrung 3 2 2 2 Zellen 3 2 2 3 DCE Interface Definition Language IDL 3 2 2 4 Remote Procedure Call RPC 3 2 2 5 DCE Services 3 2 2 6 Threads Pree ore rrr rere rere rrr reer rrr rrr rrr rer Verteilte Objekte im Intranet und Internet 3 2 3 COM und MS Windows NT 3 2 3 1 WinNT als Plattform fiir COM 3 2 3 1 1 WinNT Dom nen 3 2 3 1 2 Microsoft Interface Definition Language MIDL 3 2 3 1 3 MS Remote Procedure Call MS RPC 3 2 3 1 4 WinNT Dienste 3 2 3 1 5 Threads 3 2 3 2 COM als Middlewa
11. Ein Applet oder eine Anwendung mu f r die Verwendung dieses Dienstes den Namen und den Port des Hosts auf dem der Server l uft wissen JavalDL Namensobjekte sind nicht persistent Der Server mu vor der ersten zu greifenden Anwendung manuell gestartet werden Als Standardvorgabe operiert der JavalDL Name Server auf Port 900 Die folgende Beispielimplementierung basiert auf JavalDL 1 0 In dieser Version stand noch kein Namensdienst zur Verf gung so da die URL und der Port des Serverobjektes explizit im Klienten angegeben werden m ssen Die Verwendung dieser einfachen Variante hat den positiven Nebeneffekt da diese ohne Modifikationen durch ein Application Level Gateway geschleust werden kann Der Server publiziert seine Objektreferenz direkt im ORB die dann vom Klienten nachgefragt werden kann Die beiden zugeh rigen Funktionen sind Orb publish String RemoteObjectRef Orb resove String RemoteObjectRef Diese Einschr nkung hat im Kontext von JAVA allerdings keine gro e Bedeutung da JAVA Applets ohnehin nur eine Verbindung zu ihrem origin ren WWW Server aufbauen k nnen Auf diesem mu also auch der verwendete Namensdienst laufen oder ein Verfahren zur Simulation eines Stellvertreters zum Beispiel durch ein CGI Skript implementiert werden vgl Kapitel 2 3 5 Zur Zeit existiert noch kein verabschiedeter Standard zur Abbildung von IDL Spezifikationen auf JAVA JavaSoft Inc und IONA haben bisher ihre eigenen s
12. Implementierung Native API Socket Anwendung JDBC Cc Schnittstelle Implementierun DBMS p g DBMS JDBC JDBC JDBC SE Erweiterung Anwendung Erweiterung Implementierung DBMS EE Abb 31 JDBC Architekturen MOR97 JDBC H S Abh ngig von den Anforderungen kann jede dieser Architekturen f r eine JDBC Implemen tierung geeignet sein Dabei ist die Erweiterung nicht als echte Eigenentwicklung zu bewerten da hier kein Code im Sinne der OOP wiederverwendet wird Mit jeder der drei Formen ist die Anwendung vom tats chlichen Kommunikationsmechanismus isoliert Beachtenswert ist noch da die Verwendung von nativen C APIs die Plattformunabh ngigkeit einschr nkt und nicht f r den direkten Einsatz unter JAVA geeignet ist Die VM des Browsers unterbindet native Aufrufe durch Applets JDBC basiert wie auch ODBC auf dem X Open SQL Call Level Interface CLD Damit basiert JDBC nicht nur auf den blichen APIs auf SQL Ebene sondern auch auf ODBC Damit werden Datenbanken die ODBC unterst tzen ohne Modifikationen auch von JDBC unterst tzt Im Gegensatz zu ODBC welches eine Unterst tzung von asynchroner Verarbeitung anbietet stellt JDBC Threads zur Verf gung Dieses Vorgehen f hrt zum selben Ziel indem die F higkeit von JAVA f r asynchrone Verarbeitung durch Threads auf das JDBC ausgedehnt wird F r jede Abfrage wird ein eigener Proze gestartet LIN96
13. Jepson B JAVA Database Programming John Wiley amp Sons Inc 1997 Gartner H A Konrad P So sehen DV Anwender ihre Sicherheit erschienen in KES Jg 10 1994 Heft 3 Kindel C Designing COM Interfaces Ver ffentlicht im Microsoft Developers Network Microsoft Corporation 1995 Kirk D van Diamond in the Rough erschienen in Information Week 31 Juli 1995 Linthicum D S The JDBC Connection erschienen in Internet Systems Oktober 1996 Merkle B In die Ferne schweifen RMI Verteilte Java Objekte erschienen in iX Jg 12 1997 S 130 135 Moazzam A Gilroy J Perry D u a m DNS and Microsoft Windows NT 4 0 PDC Conference White Paper 1996 XXVI MOR97 MOV95 MS941 MS942 MS951 MS952 MS961 MS962 MS963 MS964 MS965 MS966 MS971 MS972 MSDBLIB MSDN997 MSKB971 MSKB972 MSKB973 MSRPC92 MSRPC97 Auswertung und Ausblick auf weitere Entwicklungen Morrison M JAVA Unleashed 2 Aufl Sams net Publishing 1997 Mowbray T J Zahavi R The Essential CORBA Systems Integration Using Distributed Objects John Wiley amp Sons Inc New York Chichester Brisbane u a 1995 Mircosoft COM Programmer s Reference Ver ffentlicht im Microsoft Developer Network Microsoft Corporation 1994 Microsoft Microsoft Press Computer Dictionary Microsoft Corporation 1994 Mircosoft Buildin
14. NFS und RPC auf Basis von Sockets ein 1986 erweiterte die UNIX Version 4 3 BSD die Sockets Schnittstelle f r den Einsatz ber TCP IP und XNS Protokolle Seitdem definiert man einen Socket als Kombination aus IP Adresse und einem Port Dieses Konstrukt erm glicht die Kommunikation auch von Prozessen auf verteilten Systemen ber das Internet Breite Akzeptanz machten diese Schnittstelle zu einem Standard bei Netzwerken in der UNIX Umgebung Da es bis heute keine standardisierte Schnittstelle f r Sockets unter MS Windows Betriebs systemen gibt entwickelte ein Konsortium von Firmen unter der Leitung von MS das WinSock Application Programming Interface APD Diese Programmierschnittstelle definiert die Bibliotheksaufrufe und die damit verbundene Semantik f r die Programmierung von Sockets auf MS Windows Plattformen Dabei wird eine Schnittstelle zwischen Programmen und dem verwendeten Transportprotokoll angeboten die als bidirektionaler Nachrichtenkanal Pipe f r ein und ausgehende Daten fungiert Die WinSock Implementierungen k nnen wiederum verschiedene Netzwerkprotokolle wie TCP IP IPX SPW AppleTalk NetBIOS DecNet und i Dies ist z B durch Werkzeuge wie MOCHA von Hanpeter van Vliet bei JAVA Bytecode m glich http www oriondevel com robraud classinfo mocha html Internet und Intranet andere unterst tzen SIN97 Die WinSock API 1 1 ist konsistent zur BSD 4 3 Socket Schnittstelle und bietet weiter MS Windows spe
15. RemoteData ist mit dem Daten Steuerelement Data vergleichbar Interessant ist die F higkeit einer Zwischenspeicherung von Daten auf dem Klienten und die M glichkeit des Prefetching also dem vorzeitigen Laden von Daten bevor diese tats chlich angefordert werden Mit geringen nderungen k nnen vorhandene Anwendungen die DAO und das Daten Steuerelement verwenden f r die Verwen dung von RDO und RemoteData umgewandelt werden Es gibt einige Unterschiede insofern als RDO f r den Gebrauch in streng relationalen Datenbanken implementiert und ausgelegt ist RDO unterst tzt selbst keine Abfrageverarbeitung f r die Bearbeitung aller Abfragen und die Erzeugung der Ergebnismengen ist die Datenquelle zust ndig Die Datenobjekte selbst werden aus den Ergebnismengen und Cursorn erstellt die vom ODBC Treiber zur ckgegeben werden Die Umwandlung einer vorhandenen DAO Jet Anwendung nach RDO kann sich aufgrund der ODBCDirect Schnittstelle er brigen weil diese DAO Referenzen ber RDO statt Jet leitet Wenn die Anwendung jedoch keine DAO ISAM Objekte und Methoden wie das Recordset Objekt vom Typ Tabelle und die Seek Methode oder andere ISAM Programmiermethoden verwendet sollte eine Umwandlung in Richtung ODBCDirect mit nur wenigen nderungen m glich sein weniger noch als bei einer Umwandlung nach RDO 92 Beispielentwicklung und implementierung Eigenschaften des RDO RDO ist ein universelles Programmierungsmodell mit dem au
16. Sicherheit bieten in diesen Szenerien die Ma nahmen zur Zugriffsbeschr nkung und vermeidung und Verschl sselung die im Gate realisiert werden Hier wird auch versucht das passive Abh ren von Informationen zu verhindern Eine Beschreibung der verschiedenen Realisierungsm glichkeiten erfolgt im Kapitel 2 4 3 2 4 2 3 Sicherheitsstrategien Die erste Gruppe von Gegenma nahmen besteht aus Zutritts Zugangs und Zugriffsschutz des EDV Systems Diese Ma nahmen haben in der Umgebung von Gro rechnern eine lange Tradition werden aber nur langsam auf den Bereich der Personalcomputer bertragen Die zweite f r diese Arbeit interessantere Gruppe besteht aus bertragungs und Transportschutz Es gibt vier Grundg ter der Sicherheit 1 Vertraulichkeit kein Unbefugter soll Kenntnis ber Daten erhalten 2 Integrit t kein Unbefugter soll Daten ver ndern k nnen 3 Verf gbarkeit kein Unbefugter soll Daten vernichten k nnen 4 Verbindlichkeit der Urheber von Daten soll immer erkennbar sein Die Strategie besteht darin e Sch den m glichst zu vermeiden e nicht vermeidbare Sch den m glichst schnell zu erkennen e nicht vermeidbare Sch den m glichst zu begrenzen e Besch digungen beweiskr ftig zu dokumentieren In der folgenden Matrix k nnen die zur Verf gung stehenden Gegenma nahmen der entsprechenden Strategie zugeordnet werden 23 Internet und Intranet Verf gbarkeits Backup verlust Restore Vertrau
17. da es weder instantiiert werden kann noch eine Implementierung besitzt Im Gegensatz zu zum Beispiel C erfolgt der Zugriff auf die Dienste einer COM Komponente ausschlie lich ber die Interfaces die Objektdaten k nnen nie direkt adressiert werden Dies ist ein fundamentaler Baustein der COM Architektur Dadurch wird eine vollst ndige Kapselung der Daten und deren Verarbeitung erreicht Dies ist eine Basisanforderung f r einen echten Standard f r Komponentensoftware Dadurch wird auch Ortstransparenz erreicht proze oder netzwerk bergreifende Aufrufe da der gesamte Datenzugriff ber Interfaces realisiert ist die auch in einem lokalen Stellvertreterobjekt zur Verf gung gestellt werden k nnten Dieses leitet die Aufrufe lediglich weiter und schickt die Antworten zur ck Ist COM objektorientiert Im Umfeld der OOP besteht ein Objekt aus zwei Elementen eine definierte Menge von Daten Zustand oder Attributen und einer Gruppe von Methoden Dies trifft auf Komponentenobjekte zu obwohl diese im allgemeinen mehrere Interfaces unterst tzen Wie auch im allgemeinen Verst ndnis ist in COM eine Klasse wie folgt zu definieren Eine COM Klasse identifiziert eine bestimmte Implementierung einer Menge von Interfaces Um objektorientiert zu sein sollte ein Modell folgende Eigenschaften unterst tzen Kapselung Polymorphismus und Vererbung HER93 Die Daten eines Komponentenobjekts sind durch die Interfaces verkapselt Weiter w
18. glich Ausf hrungs performanz ist Bin rcode der Verwendung von Bytecode vorzuziehen der die Performanz von Quellcode wiederum bertrifft Generell kann Bin rcode 10 100 mal schneller ausgef hrt werden als Bytecode Viele JAVA VM Virtual Machine Entwickler arbeiten zum Beispiel an der Entwicklung von JIT Just in Time Compilern um die Vorteile von Gr e von Bytecode und Geschwindigkeit des Bin rcodes zu kombinieren Auf diesbez gliche Einzelheiten wird im Kapitel 4 2 1 eingegangen Es ist klar da jede Kombination dieser Strategien f r die Implementierung einer Internet programmiersprache potentiell geeignet ist und es gibt tats chlich eine breite Streuung unter den aktuell implementierten Systemen Betrachtet man die Vielzahl an unterschiedlichen Betriebs systemen und Hardwareplattformen birgt die M glichkeit der plattformunabh ngigen Programmierung gro e Vorteile da nur eine Realisierung einer Anwendung betrachtet werden mu Die weite Verbreitung von HTML und jetzt auch von JAVA unterst tzen diese These Obwohl Plattformunabh ngigkeit schon lange ein Ziel der Entwickler von Programmiersprachen war war stets die Nachfrage nach h chstm glicher Performanz ein Entwicklungshemmnis vor allem auf der Ebene des ausf hrbaren Codes Im Internet tritt dieses Ziel aufgrund von ohnehin beschr nkter Bandbreite in den Hintergrund da hier die Transferzeit die prim re Komponente der Performanz einer Applikation ist und die Ausf h
19. 2 0 Juli 1995 Aktualisiert Juli 1996 OMG Comparing ActiveX and CORBA IIOP OMG 1996 http www omg org activex htm OMG JAVA Language Mapping RFP ORBOS RFP3 OMG 1997 http www omg org library schedule ORBOS_RFP3 htm Robert O Dan H Client Server Programming with JAVA and CORBA Wiley Computer Publishing New York Chichester Weinheim u a 1997 Ford S Wells D Wells N Internet Tool Survey Object Services and Consulting Inc 1997 http www objs com survey survey htm Redlich J P CORBA 2 0 Praktische Einf hrung f r C und JAVA Addison Wesley Bonn Reading Menlo Park u a 1996 Mockapetris P Domain Names Concepts and Facilities November 1987 Mockapetris P Domain Names Implementation and Specification November 1987 Linn J Generic Security Service Application Program Interface September 1993 Kohl J Neuman C The Kerberos Network Authentication Service V5 September 1993 Borenstein N Freed F MIME Multipurpose Internet Mail Extensions Part One Mechanisms for Specifying and Describing the Format of Internet Message Bodies September 1993 Moore K MIME Multipurpose Internet Mail Extensions Part Two Message Header Extensions for Non ASCI Text September 1993 Hares S Wittbrodt C Essential Tools for the OSI Internet Februar 1994 Simpson W The Point to Point Protocol PPP Juli 1994 Hanks S Farinacci D Traina P Generic
20. 341 33 170 67 85 33 56 89 28 44 12 80 0 0819 200 682 67 341 33 170 67 113 78 56 89 25 60 0 16 500 1706 67 853 33 426 67 284 44 142 22 64 00 0 41 Tab 20 Ladezeiten tiber verschiedene Medien SVE96 Diese Werte entsprechen nicht dem effektiven Durchsatz des jeweiligen Ubertragungsmediums Dieser unterliegt f r eine zuverl ssige Aussage aber zu vielen Einfl ssen wie zum Beispiel Komprimierungsverfahren Komprimierbarkeit der Daten Last und Hardware Ein 28800 Baud Modem liefert zum Beispiel in der Praxis je nach Leitungsqualit t bis zu etwa 3 5KByte s HAL96 Weiter m te bei dieser vollst ndigen Betrachtung auch der Overhead des Transportprotokolls TCP IP mit ca 30 der bertragungskapazit t ber cksichtigt werden SVE96 Als Vergleichswert bietet das Intranet der GTZ auf den internationalen Verbindungen eine hohe durchschnittliche bertragungsrate von 6 KBytes s Dieser gute Wert wird durch Kanalb ndelung hohe Paketgr en und starke Komprimierung erreicht Durch Verwendung des theoretischen Durchsatzes kann aber in jedem Fall eine obere Absch tzung der bertragungszeit vorgenommen werden Diese vorgestellte einfache und nicht aufwendige Implementierung des Datenbankklienten umfa t bereits ca 60KByte Dazu addieren sich bis zu 200KByte an Klassen des JavaIDL Solange diese Klassen nicht in die VM der Klienten integriert sind verl ngert sich die Ladezeit entsprechend Im relevanten Umfeld von 9600bps erreicht
21. 59 Network Data Reptesentaton eeesecceessceeceesneeeecessseeeceesaeeceesaaecesessaeeeeees 59 Network el e EE 13 Netscape Internet Service Broke AA 110 Name Service Independents E 52 Name Service Interface Daemon 52 Olole h LE e AAAA A A AAA AAE 62 IR EE 87 Open Database Connectivity ati EK EN 16 Object Description Language 47 Open Data Service stents Een an 84 Object Management Architecture 2uuussssnnnesssnnneesesnnnnensennnnansennnnnnnennnnnnnnenen 33 Object Management Group 35 2201 Eege eieiei 33 Object oriented Drogerammng se eeeeeeeessseeeesesneeeceesseeecesssaeeceesaeeeeesseeeeeesaes 8 Object Request o C AAAA AAAA AAA AAAA AARAA AAA ARATE 33 Object Remote Procedure Call ur en eu ee r r e peet e ee 61 Open Software Foundaton 40 Object Exporter Identifier eiie ee e i e 62 Public Switched Telephone Network AAA 30 Primary Domain Controller 2 2250 edegrdegedeg eege deed den 46 Remote D taObject 0 20 90 Request for Comments 44 Remote Method Invocation ccceceessenececececeeeeeeaneeeeeeeeeseeeenaaeeeeeeeeeeeeeenaeeeeeees 17 Running Object Fables ees a ed ee ann anaes 61 Remot Procedure Call ic aaa a es ae a 9 Round Traps Tue eeler 98 Service Control Manager 62 Software Development Kit Rss gesessen 19 Standard Generalised Mark up Language 11 Structured Query Language eee eeesseeeeesseeceeessneeecsessaeeceesseeeeesneaeesesssaeeeeees 37 Secure socket Layer foie adidas 16 Tr
22. DAO Programmiermodell bietet folgende Funktionsmerkmale e Ein universelles Programmiermodell mit dem auf jede ODBC Datenbank zugegriffen werden kann unabh ngig vom Grad der ODBC Konformit t W hrend RDO den Einsatz von Ebene 2 ODBC Treibern oder entsprechend erweiterten Ebene 1 Treiber erfordert besteht eine solche Voraussetzung f r DAO Jet nicht e Die M glichkeit zum Abrufen und Verkn pfen von heterogenen Daten aus ODBC oder ISAM Quellen 91 Beispielentwicklung und implementierung e Die F higkeit zum Erzeugen von aktualisierbaren Cursorn aus komplexen als Verkn pfungs produkt erzeugten Ergebnismengen e Ein objektorientiertes Programmiermodell das keine direkten API Funktionsaufrufe ben tigt e Einen Mechanismus zur Weiterleitung Pass Through der die Umgehung der langsamen Jet Abfrageverarbeitung erlaubt e Implementierung von Cursorn des Typs Schliisselgruppe Dynaset Statisch Snapshot und Vorw rts Read Ahead Letztere bieten besonders bei langsamen Netzwerken die M glichkeit der Steigerung der Performanz e Leistungsf hige Verwaltung der Ergebnismengen e Universelle Fehlerverwaltung Das DAO selbst erh lt seine Funktionalit t durch das DAO COM Interface DAO vereinfacht die Verwaltung dieser COM Interfaces indem es sie in eine dbDAO Klasse wie zum Beispiel CdbRecordset CdbWorkspace usw integriert Diese Vorgehensweise verbirgt das Interface und dessen aufwendige Implementier
23. DCOM FTE DCOM for the Enterprise f r die Betriebssysteme SOLARIS LINUX und Digital UNIX vorgestellt Wenn DCOM FTE das COM auf diesen Plattformen unterst tzt ist das allerdings nicht gleichbedeutend damit da bin re COM Komponenten auf UNIX lauff hig sind da keine INTEL Emulation f r bin re Komponenten realisiert wurde Vielmehr leistet DCOM FTE Kompatibilit t auf Quelltextniveau Die Laufzeitumgebung besteht aus einigen Shared Libraries die einen Teil der NT Basis funktionen emulieren Dazu geh ren Dateifunktionen Threads Semaphore und Funktionen f r die Registry Datenbank Zwei Daemons ntd und rpcss bilden eine Untermenge des Win32 Teilsystems und den Service Control Manager SCM nach WIT97 Somit ist f r die Por tierung von Komponenten keine Modifikation an der Middleware erforderlich Die Portierung der Threads f r das ffentliche Betriebssystem LINUX ist noch nicht realisiert da die Unterst tzung von Threads unter LINUX noch nicht abgeschlossen ist Wichtige Werkzeuge von WinNT wurden nachgebildet So steht zum Beispiel der Registry Editor RegEdit als Motif Anwendung zur Verf gung Unter LINUX fehlt RegEdit als GUI Anwen dung da die n tigen X11 Bilbliotheken nicht threadsicher programmiert sind Wichtige Werk zeuge wie der MIDL Compiler sind auf allen Plattformen vorhanden Einige MS Windows Spezifika wie zum Beispiel das Apartment Threading Model wurden nicht implementiert Schwierigkeiten tr
24. Der objekt orientierte Ansatz und ein Gro teil der JAVA Syntax sind an C angelehnt Zwangsl ufig ist JAVA f r Entwickler von C und C Programmen leicht zu erlernen Bei der Entwicklung von JAVA wurde bewu t auf die Einbeziehung von komplizierten Aspekten aus C wie Zeiger und Speicherverwaltung verzichtet Die Speicherverwaltung und Garbage Collection werden auto matisch von JAVA ausgef hrt Abschlie end ist JAVA in bezug auf Basistypen sehr einfach und streng strukturiert Zur Manipulation von Variablen ist fast immer ein expliziter Cast notwendig was Fehler im Umgang mit Variablen vermindert MOR97 JAVA ist objektorientiert Objetkorientierung ist bei Programmiersprachen mittlerweile zum Standard geworden Dabei wird nicht auf Prozeduren und Daten sondern auf Zust nde Aktivit ten und Kommunikation von Objekten aufgebaut Diese Objekte verhalten sind nach au en hin einheitlich und sind gleichberechtigt besitzen Zust nde f hren Methoden aus und k nnen Nachrichten empfangen und verschicken HER93 JAVA hat gegen ber anderen objekt orientierte Programmiersprachen besonders bez glich Internetprogrammierung und Entwicklung verteilter Anwendungen Vorteile Die JAVA Klassenbibliotheken k nnen zur Laufzeit entweder lokal oder ber das Internet verteilt angesprochen werden Umfangreiche Klassenbibliotheken erm glichen die Kommunikation ber Sockets was JAVA f r den Einsatz im Internet pr destiniert JAVA ist in
25. Die Serveranwendung nimmt die Identit t der Klientenanwendung nur auf dem Computer an auf dem die Serveranwendung ausgef hrt wird 64 Verarbeitung mit verteilten Objekten Delegate Die Serveranwendung kann Tasks auf einem anderen Computer als Klientenanwendung bearbeiten Die Serveranwendung kann die Identit t der Klientenanwendung auf dem Computer auf dem die Serveranwendung ausgef hrt wird oder auf einem beliebigen anderen Computer annehmen Der Echtheitsbest tigungsdienst von WinNT Servern unterst tzt nicht Delegate e Zus tzliche Sicherheit f r Referenz Protokollierung Diese Option legt fest da die Serveranwendung die Anzahl der verbundenen Klienten anwendungen verfolgt Dadurch wird sichergestellt da ein Serverproze nicht durch eine Klientenanwendung unterbrochen wird indem die Referenznummer k nstlich auf Null gesetzt wird F r Modifikationen an dieser Konfiguration sind administrative Rechte auf der Workstation des jeweiligen Servers erforderlich Ein Konfiguration aus Anwendungen heraus insbesondere durch ActiveX Komponenten ist aus Sicherheitsgr nden nicht m glich Da DCOM ein inh rent sichereres Modell ist kann es ohne die Kapselung eines VPN eingesetzt werden DCOM kann damit einfache TCP IP Netzwerke verwenden F r den Einsatz durch Firewalls bieten sich folgende M glichkeiten MS965 e DCOM verwendet einen einzelnen Port f r die Initialisierung von Verbindungen und weist eine konfigurierbar
26. Durch ein besonderes Augen merk auf die plattform bergreifende Interoperabilit t zwischen den Systemen kann dann auf eine weiter Differenzierung zu OSF DCE verzichtet werden Nachdem die Plattformen f r Middle ware behandelt sind kann anschlie end ausf hrlich auf die technischen Details des COM Modells eingegangen werden das als neues System in der ffentlichkeit noch weitgehend unbekannt ist WinNT ist ein Betriebssystem welches sowohl auf high end Personalcomputer als auch auf Workstation Architekturen auf Basis von INTEL PPC Alpha und DEC lauff hig ist Dabei deckt WinNT alle Bereiche des Betriebssystems ber die grafische Benutzerschnittstelle bis hin zur Netzwerkkommunikation ab Teil von WinNT ist ein RPC Mechanismus der auf Protokoll ebene mit OSF DCE kompatibel ist Dieser kleine Verbindungspunkt hat eine gro e Bedeutung da er die Unterschiede der Architekturen transparent macht Damit erm glicht er ROS932 e Die Kommunikation von DCE Servern mit WinNT Klienten es Die Kommunikation von WinNT Servern mit DCE Klienten es Die Kommunikation von DCE Servern mit Klienten auf Basis von MS DOS 3 2 3 1 1 WinNT Dom nen Im Gegensatz zum Internet ist im Umfeld von WinNT eine Dom ne eine Menge von Computern die eine gemeinsame zentralisierte Sicherheitsdatenbank verwenden Diese administriert den Zugriff auf die Dom ne und implementiert Sicherheitsregeln Auf dieser Ebene entsprechen die Dom nen den OSF DCE Zellen
27. Fehlen einer bergeordneten und konsistenten Architektur vgl Kapitel 3 2 3 2 1 Im Rahmen dieser Entwicklung wurden Pseudostandards verworfen de facto Standards erschaffen und abschlie end zu offenen Standards erkl rt Dagegen verfolgen die Mitglieder der OMG eine gemeinsame Vision einer verteilten plattform bergreifenden und komponentenbasierten Middleware seit 1989 Diese Architektur ist im Object Management Architecture Guide der 1990 zum ersten Mal ver ffentlicht wurde begr ndet und wurde schrittweise zur CORBA Spezifikation erweitert OMG96 Dem gegen ber stehen Bef rchtungen da Microsoft seine Offenheit nach erfolgreicher Einf hrung und ausreichender Verbreitung seiner neuen Plattform einschr nkt Gegen die CORBA Spezifikation spricht vor allem dessen mangelnde praktische Bedeutung Implementierungen der einzelnen Dienste sind rar zum Beispiel ist die vollst ndige Implementierung des Sicherheitsdienstes durch den Marktf hrer IONA erst ab diesem Jahr verf gbar vgl Kapitel 3 2 1 5 Microsoft bietet eine nahezu vollst ndige Sammlung von Diensten zum Preis des Betriebssystems WinNT 4 0 von ca 1000 DM 107 Auswertung und Ausblick auf weitere Entwicklungen Ein weiterer wichtiger Diskussionspunkt ist die plattformiibergreifende Unterst tzung u erun gen wie Microsoft wird ohne Entschuldigung sicherstellen da ActiveX am besten unter MS Windows arbeiten wird OMG96 von Bob Muglia Microsoft st rk
28. Kommunikation implementiert Beachtenswert ist da das bergebene Handle hCurrent des JAVA Objektes nach der bergabe nicht gel scht werden darf In diesem Fall w rde die JAVA Garbage Collection die Referenz l schen und die MS Windows DLL w rde auf einer Referenz operieren die auf NIL zeigt ROD97 Um die vorliegende Implementierung nachvollziehen zu k nnen ist die Datei SRV H Open Data Services Header Datei aus dem Microsoft Backoffice SDK oder dem Microsoft Plattform SDK f r MS Windows MSSDK97 notwendig Sie enth lt weitere Header Dateien die im folgenden aufgef hrt werden 83 Beispielentwicklung und implementierung Header Datei Inhalt SRV H Alle folgenden Header Dateien Diese Datei mu als einzige eingebunden include werden SRVAPIH Definitionen von Funktionsprototypen f r alle Open Data Services Funktionen SRVCONST H Open Data Services Konstantendefinitionen SRVDBTYP H DB Library Definitionen SRVMISC H Open Data Services verschiedene Definitionen SRVSTRUC H Open Data Services Strukturdefinitionen SRVTOK H Open Data Services Token Definitionen SRVTYPES H Open Data Services Definitionen der Datentypen Tab 17 Inhalte der Open Data Services Header Datei Diese Dateien sind Teil des MS Plattform SDK und k nnen nicht frei weitergegeben werden sie sind damit auch nicht im Anhang enthalten Die Open Data Services ODS fungieren als Verwalter der Netzwerkverbindungen des MS
29. Letztere k nnen in der Praxis allerdings weit gr ere Ausma e annehmen als ihre WinNT Pendants Die Dom ne wird durch einen eindeutigen Bezeichner identifiziert und die Menge der enthaltenen Computer bildet eine verteilte Verzeichnisstruktur Die Zusammenstellung dieser Menge folgt lediglich administrativen berlegungen und dient vor allem der Vereinfachung Der Dom nen Controller verwaltet dabei alle Aspekte der Anwender Dom nen Interaktion und verwendet die Informationen in der Sicherheitsdatenbank um sich anmeldende Benutzer an Dom nenkonten zu authentifizieren Um dabei alle Konten einer Dom ne zu verwalten wird eine zentrale Verzeichnisdatenbank verwendet Diese ist auf dem Primary Domain Controller PDC abgelegt die auf mehrere Backup Domain Controller BDC repliziert werden kann MS963 Die Gruppierung einer oder mehrerer Dom nen mit gemeinsamer Administration und Kommunikationsverbindungen untereinander ist f r die Benutzer und Ressourcenverwaltung in einem sogenannten Domain Model zusammengefa t MS963 F r das Internet bezieht sich der Begriff der Dom ne auf der auf dem DNS basierenden Art der Adressierung die mnemonische Bezeichner f r Netzwerkkomponenten im Internet auf deren IP Adresse abbildet Gerade weil ein Computer genauer seine Netzwerkadapter im Internet mehrere kryptische IP Adressen besitzen kann ist diese anwenderfreundliche Namensgebung f r die Lokalisierung von Netzwerkkomponente
30. Methoden ResolveOxid SimplePing und ComplexPing anbietet F r eine ausf hrliche Darstellung dieser Methoden die nicht zuletzt auch f r die berwachung der Lebenszeit von entfernten Komponenten verwendet werden siehe CHAP96 Die Antwort auf die Frage warum hier anstelle von OXID keine Moniker zum Einsatz kommen liegt im NDR Die NDR bietet eine standardisierte Abbildungsvorschrift um MIDL Datentypen zwischen Maschinen mit unterschiedlicher Datendarstellung zu tibertragen Interfacezeiger die h ufig in ORPC Aufrufen bergeben werden sind aber nicht durch die NDR abgedeckt Wenn ein Interfacezeiger auf eine entfernte Komponente verweist mu eine sogenannte Object Reference OBJREF bergeben werden DCOM definiert die OBJREF mit folgenden Elemen ten e OXID e Ein eindeutiger Interfacebezeichner f r entfernte Interfaces Interface Pointer Identifier IPID e Ein eindeutiger Komponentenbezeichner Object Identifier OID e Verbindungsinformationen als Zeichenkette f r den OXID Resolver der Maschine der Server komponente Dieses Konstrukt kann durch die NDR bertragen werden und enth lt ausreichend Informa tionen um durch den OXID Resolver die Verbindungsinformation des entfernten Interfacezeigers aufzul sen Dadurch kann auch ein Resolver einen zweiten nach Verbindungsinformationen anfragen Abschlie end erfolgt das Instantiieren einer lokalen Komponente bei COM durch den Service Control Manage
31. Middlewaremodelle TBRUO IT 10 5 ISAPI Filter als weitere Stcherungsschcht ss nnnnenesnnnnannennennn 17 6 RMI Modell MER97 ET AAAA AAAA 18 7 Eim Bedrohungsmodell 2 eae arar r hn en i a en aan 21 8 Die Verantwortung eines Objektes eeesssseeeesseesssreesesreerssreerssrierssrrersssreessrrresseres 24 9 Vertrayensmode EE 26 10 Schematischer Aufbau einer Firewall TCHPSOATL 27 11 Einbettung von Firewalls in das OS Modell 28 12 Konzeptionelles Modell eines VPN AA 31 13 Verwendung von GRE im DPI 31 14 CORBA Modell mit ORB Schnittstellen RED96 ss nnneeennenne 35 15 Kommunikationsmodelle zwischen ORBs RED96 nennen 39 16 DCE Konzeptmodell IROSO3Il cece eessnneceeceeeeeeesnaeeeeeeeeeeeeseaeeeeeeeeeeeeeeaaees 41 17ZRPC Modellr Eeer 43 18 Modell des WinNT Security Support Provider Interface A 51 19 berblick ber das Kerberos Authentifizierungsprotokoll unter WinNT 51 20 Dom nen bergreifender DCE CDS Namensdienst 0 0 0 0 eeseeeesseeeeeeseeeeeeeeseeeeeenaes 52 21 Entwicklung von OLE zu COM DCOMISTbOol 54 22 Interfaces eines Komponentenobjekts innerhalb eines Servers CHAP96 56 23 VTable in COM Komponenten CHAP96 22244000sssnssnnsnnnnnennesssennnnnnnnn 57 24 COM Versionskontrolle durch Interfaces 0 0 0 0 cceeesseeceeesseeeeeesseeeeeesnaeeecesseeeseesaes 58 25 Ortstransparenz im DCOM CHAP96
32. Produkte wie Novell NetWare und Microsoft LAN Manager integrierten Datei Druck und Nachrichtendienste Obwohl diese Modelle f r ihre Aufgabe spezialisiert und damit effizient sind liegt der Nachteil dieser vertikalen Ans tze in ihrer mangelnden F higkeit f r andere Zwecke adaptiert zu werden Im folgenden werden drei horizontale Modelle CORBA OSF DCE und MS DCE vorgestellt und besonders der Begriff der Sicherheit auf diese Ans tze der verteilten heterogenen Systeme ausgedehnt Dabei werden die verschiedenen Modelle zur Interaktion von verteilten Objekten vorgestellt und verglichen 3 2 Plattformen 3 2 1 CORBA 3 2 1 1 Allgemein Die Object Management Group OMG wurde im Mai 1989 als Interessenverband f r Entwickler Netzwerkbetreiber Hardwareproduzenten und kommerzielle Anwender gegr ndet Die Gr ndungsmitglieder sind 3Com American Airlines Canon Data General Hewlett Packard Philips Telecommunications SUN Microsystems und UniSys Mit der Object Management Architecture OMA wurde durch diesen Verbund eine Softwarearchitektur spezifiziert welche die Kooperation von verschiedenen Anwendungen auf Basis verschiedener Computersysteme Hard und Software erm glicht und standardisiert Ziel ist die Unabh ngigkeit des Standards von Programmiersprachen Betriebssystemen Standorten und Hardware Im Fr hjahr 1996 z hlte die OMG 600 Mitglieder Kern dieses Architekturmodells ist die Spezifik
33. ROS931 1 Da das Konzept der Zellen auf geteilte Ressourcen und DCE Dienste basiert ist es sinnvoll die Grenze einer Zelle durch den Anwenderkreis zu bestimmen der ein gemeinsames Ziel 41 Verarbeitung mit verteilten Objekten unter Verwendung der gleichen Ressourcen verfolgt Geographische Uberlegungen k nnen m ssen aber keinen Einflu auf diese Grenzen haben 2 Eine Zelle sollte mindestens aus einem Verzeichnisserver einem Sicherheitsserver und drei Zeitservern bestehen Die Verf gbarkeit von qualifiziertem Personal zur Administration dieses Systems gibt Aufschlu auf die m gliche Gr e einer Zelle 3 Alle Objekte in einer Zelle m ssen sich vor Durchf hrung einer Aufgabe authentifizieren Mitglieder einer Zelle sollten sich gegenseitig und der Zelle selbst vertrauen k nnen Sch den an der Zelle sind mit wachsender Gr e schwerer zu beheben Abschlie end m ssen kooperierende Zellen sich ebenfalls gegenseitig authentifizieren was bei n kooperierenden Zellen zu zus tzlichen n n 1 Pa w rtern f hrt Zellen m ssen also klein genug sein um wartbar und vertrauensw rdig zu bleiben m ssen aber ausreichend gro sein um f r die Kooperation keinen zu gro en Overhead zu verursachen 4 Daraus resultierend verursachen Namenaufl sung und Authentifizierung mehr Last auf dem Netzwerk bei zellen bergreifenden bertragungen als bei zelleninterner Kommunikation Die Zellengrenze wird damit auch von den Ressourcentypen
34. Schnittstellen durch die Interface Description Language IDL Durch diese Sprache werden die ffentlichen Objekteigenschaften Attribute Operationen Programmausnahmen und f r die Kommunikation ben tigte Datentypen einheitlich spezifiziert Um ein Objekt zu implementieren werden g ngige objektorientierte Programmiersprachen wie C JAVA C usw verwendet f r die jeweils eine Abbildungs vorschrift Language Mapping die Umsetzung von durch IDL beschriebene Schnittstellen in Konstrukte der Programmiersprache definiert Beachtenswert ist das die IDL nicht die Implementierung des Objektes selbst beschreibt ein kontr rer Ansatz wird im Kapitel 3 2 3 2 vorgestellt So k nnen je nach M chtigkeit der eingesetzten Programmiersprache Objekte Systemzugriffe durchf hren auf Datenbanken zugreifen oder Dienste unabh ngig von der CORBA Spezifikation anbieten RED96 Die OMA unterteilt im Unterschied zu COM vgl Kapitel 3 2 3 2 die Bestandteile einer Anwen dungen in Komponenten eine Menge von Objekten die gemeinsam eine Aufgabe erf llen Diese Aufgabe wird als Dienst bezeichnet 3 2 1 3 Common Object Request Broker Architecture CORBA 2 0 Der aktuelle CORBA Standard 2 0 liegt seit 1995 vor und besitzt folgende Eigenschaften RED96 e Objektorientierung e Verteilungstransparenz e Effizienz e Unabh ngigkeit von Hardware Betriebssystem und Programmiersprache e Offenheit 34 Verarbeitung mit verteilten Objekten
35. Semaphoren wurde hier aus Gr nden der Einfachheit und Portabilit t der Named Pipes Mechanismus von WinNT ausgew hlt ROD97 Zus tzlich unterst tzt der MS SQL Server bei der IPC ber das Named Pipes Protokoll eine sichere Kommunikation Realisiert wird dieser IPC durch eine FIFO Datei pipe ssnpl im Systemverzeichnis des MS SQL Servers Die TriggerHelper DLL implementiert beide Seiten dieser Named Pipe Die eine die durch das Trigger Ereignis auf dem MS SQL Server mittels der gespeicherten Prozedur triggerhelper aufgerufen wird und die andere derer sich der JAVA Server als native Methode wie folgt bedient siehe auch CAM97 zu nativen Methoden unter JAVA System loadLibrary TriggerHelper Dieser Code ist Teil der statischen NativeMethodShell Klasse welche die DLL l dt und deren Methoden anderen JAVA Klassen ffentlich zur Verf gung stellt Die MS Windows DLL kann ihrerseits JAV A Methoden aufrufen execute_java_dynamic_method 0 HObject hCurrent displayTrigger Ljava lang String V hIDString Dabei ist hCurrent das Handle des JAVA Objektes dessen Methode ausgef hrt werden soll Diese wird bei der Instantiierung der NativeMethodShell der DLL bergeben Der vierte Parameter Ljava lang String V gibt an da ein JAVA String Objekt bergeben und keine Void Parameter erhalten werden Abschlie end wird die Ubergabevariable angegeben Somit sind beide Seiten der IPC und deren unidirektionale
36. Steuerung der Verarbeitung seitens des Servers ist nicht praktikabel So wurde eine Sammlung von Internetprotokollen erstellt die Adressierung Pr sentationsformate und Verarbeitung fremder Formate ber cksichtigt um so Interoperabilit t zu erm glichen HTML ist die Basissprache die von allen WWW Browsern verstanden wird Nicht modifiziertes und zum Standard konformes HTML ist damit plattformunabh ngig und sehr einfach in der Implementierung Diese Sprache wurde als Teil des WWW bei CERN von Tim Berners Lee entwickelt Sie entstand aus der Standard Generalised Mark up Language SGML der ISO Standardsprache f r Text Dabei f hrt HTML die Prinzipien von SGML f r das Internet fort indem eine Untermenge der Semantik von SGML mit hnlicher Syntax implementiert wird HAL96 HTML ist eine Mark up Sprache nicht eine vollst ndige Programmiersprache Ein HTML Dokument Programm ist ein ASCII Text mit eingef gten Anweisungen Mark ups welche die Darstellung des Textinhaltes beeinflussen Das Grundmodell f r die Ausf hrung von HTML besteht aus der Anforderung eines Dokumentes mittels des Namens z B URL Interpretation der enthaltenen HTML Sprache und Darstellung der Information Das HTML quivalent einer Anwendungen besteht somit aus einer Sammlung von verwandten WWW Seiten die durch einen einzigen HTTP Server HTTP ist das TCP IP Protokoll das f r die Interaktion von WWW Browsern und Servern verwendet wird Vergleiche dazu
37. TCP Stream abgebaut worden Dabei berwacht der Door ORB weiterhin den Zustand der Verbindung unter anderem die Zugriffsberechtigungen der Klienten Eine passivierte Verbindung wird automatisch bei Bedarf reaktiviert Dieses Verhalten kann auch durch den API Aufruf sunw door Orb enableRecyling erzwungen werden Alle offenen Verbindungen werden jede halbe Stunde auf Lebendigkeit hin berpr ft HOP war von SUN f r die JDK 1 1 angek ndigt ist aber noch nicht implementiert Somit steht zur Zeit lediglich der Door Transportdienst zur Verf gung Als separate Klassenbibliothek steht in der Early Access Release JavaIDL 1 1 EA eine Implementierung des CORBA Naming Lifecycle und Event Notification Service und die Unterst tzung f r HOP V1 0 zur Verf gung Das HOP Protokoll ist neben der Kapselung von IDL Aufrufen durch HTTP die einzige M glichkeit Firewalls zu berwinden Zur Zeit wird JavalDL 1 1 EA auf folgenden Plattformen mit entsprechender Software unter st tzt e Microsoft Win32 Plattform WinNT 3 5 1 WinNT 4 0 Win95 JDK 1 0 2 oder h her Visual C 4 0 oder hoher e SPARC Solaris Plattform Solaris 2 3 oder h her JDK 1 0 2 oder h her In dieser Testversion wird jetzt der COSS Namensdienst unterst tzt um Objektreferenzen zu speichern und unter ihrem Namen durch Context Objekte wiederzufinden Die sehr einfache 80 Beispielentwicklung und implementierung Implementierung realisiert einen JavalDL Name Server
38. Trennung der Begriffe wird gesondert auf den Sachverhalt hingewiesen Beachtenswert ist weiter da der Begriff Internet weder eine Internet und Intranet Aussage tiber die Topologie noch tiber die Ausdehnung eines Computernetzes trifft So dehnt sich zum Beispiel das Intranet der GTZ als WAN weltweit aus Inhaltlich vom Begriff des Internets ist der des WWW klar zu trennen Das WWW ist eine Anwendungsumgebung auf Basis des Klient Server Modells die sich aus mehreren Komponenten zusammensetzt Das Hypertext Transfer Protokoll HTTP definiert die Kommunikation zwischen dem WWW Browser Klient und dem WWW Server Dieses verbindungslose Protokoll definiert den Aus tausch von HTML Dokumenten Hierbei bernimmt der Klient eine aktive Rolle sobald ein Dokument angefordert wird baut der Klient eine Verbindung zum Server auf der Server sendet das Dokument und die Verbindung wird anschlie end abgebaut BRU96 Es ist dabei nicht m glich vom Server aus Zustandsinformationen ber den Klienten zu erlangen Die Hypertext Mark up Language HTML ist eine Sprache um American Standards Committee for Information Interchange ASCII HAL96 Dokumente mit Strukturierungsanweisungen zu versehen damit Informationen plattformunabh ngig dargestellt werden k nnen Dokumente werden dabei mit sogenannten Hyperlinks verbunden Diese Hyperlinks erm glichen den ein fachen bergang zu neuen Informationsquellen im HTML Standard die durch einen Unifo
39. Umgebung MS RPC Klient Anwendungs quellcode Anwendungs server Stubcode ZS A Verkn pfung RPC exportieren Laufzeitbibliothek x t RPC at X A Weg ru CDS Abb 20 Dom nen bergreifender DCE CDS Namensdienst 52 Verarbeitung mit verteilten Objekten Erfahrungswerte zeigen da der NSDI hier leicht einen Flaschenhals darstellen kann Je nach Verkehrsaufkommen K nnen nur ca 100 Klienten performant bedient werden Insbesondere bei Zugriffen aus dem Internet kann es hier zu berl ufen kommen ROS932 Microsoft bietet ein einheitliches Dateisystem in WinNT das auch MS DOS abdeckt Dieses Dateisystem ist nicht mit dem DCE DFS kompatibel Damit wird die M glichkeit der Verwaltung gro er Namenr ume stark eingeschr nkt 3 2 3 1 5 Threads Threads stehen unter WinNT als Bestandteil des Betriebssystems zur Verf gung Die WinNT Implementierung setzt nicht auf den POSIX 1003 4 Standard auf vgl Kapitel 3 2 2 6 was bei Portierung auf OSF DCE Server eine nderung am Server Betriebssystem erforderlich macht Weiter werden Threads nicht auf den Betriebssystemen MS DOS Win3x und Win95 angeboten was den Einsatz von MS DCE Servern auf diesen Systemen aus Leistungs berlegungen praktisch ausschlie t Diese berlegung deckt sich mit der allgemeinen Strategie des Unter nehmens die nicht WinNT Systeme als dedizierte Klientensysteme betrachtet Die Portierung von Threads auf die Win32
40. VM bereitstellt Damit ist eine nicht persistente Softwareverteilung implementiert Ein wichtiges Merkmale ist die Speicherbereinigung JAVA besitzt eine automatische Speicher und Heap Verwaltung durch eine automatic garbage collection die als separater Thread realisiert sind Jedes Objekt auf das keine Referenz mehr existiert wird automatisch gel scht Der Programmierer braucht sich also nicht wie zum Beispiel bei C mit der Freigabe von Speicherbereichen zu besch ftigen Zu den wichtigsten Nachteilen z hlt die verringerte Performanz da JAVA Quellcode vom Inter preter der die Plattformunabh ngigkeit erst m glich macht zur Laufzeit interpretiert wird Momentan sind JAVA Applikationen ca 20 mal langsamer als vergleichbare Anwendungen die in C geschrieben wurden MOR97 Weiter beinhaltet JAVA keine M glichkeit f r template classes wie zum Beispiel C Damit kann ein Objekt keine Daten eines Datentyps speichern Letztlich ist JAVA zum Beispiel im Vergleich zu Visual Basic eine sehr Komplizierte Sprache die nicht unbedingt zum Rapid Prototyping geeignet ist Dieser Unterschied wird noch in den Beispielimplementierungen deutlich 4 2 2 JAVA Sicherheitskonzept 4 2 2 1 Einf hrung Es stellt sich die Frage warum gerade die Ausf hrung von Applets in Browsern solch starken Einschr nkungen unterliegt Zun chst ist die Konfiguration von flexibler Sicherheit also einer Abstufung der Berechtigungen die einem a
41. abgek rzt 48 Verarbeitung mit verteilten Objekten Objekt im Funktionsnamen Binding handleBinding Endpoint Ep Interface If Management Memt Name service group entry NsGroup Name service management NsMegmt Name service profile entry NsProfile Name service server entry NsBinding Network Network Object type UUID mapping Object Protocol sequence vector Protseq Vector Server Server String String String binding StringBinding UUID Uuid Tab 10 Namenskonvention fiir MS RPC API Funktionen Funktionen die auf UUID Objekten operieren werden nicht mit dem Pr fix Rpc sondern mit Uuid bezeichnet W hrend fr here Versionen des MS RPC auf die integrierte Sicherheit des Named Pipe Transportprotokolls aufsetzten implementiert die vorliegende Version eine transportunabh ngige Sicherungsfunktion von OSF DCE RPC Dabei wird der WinNT Sicherheitsdienst als Standard Sicherheitsanbieter verwendet Dieser Schutz auf hoher Ebene erm glicht es Servern Klienten anforderungen auf Basis von authentifizierten Identit ten die mit jeder einzelnen Anforderung assoziiert sind zu filtern Dieser Mechanismus wird als authentifizierter RPC bezeichnet Um authentifizierte RPCs verwenden zu k nnen bergibt der Klient Sicherheitsinformationen seines Benutzers an die Laufzeitbibliothek Diese Informationen werden als Credential bezeichnet Die Laufzeitbibliothek des Klienten bergibt diese Credentials an die Laufzeit bibl
42. bertragungskapazit ten zu erm glichen ist eigentlich der Einsatz eines Taktgenerators erforderlich Hierbei werden zwei Router ber einen synchron getakteten Kanal verbunden Dadurch ist eine stufenlose Regelung der bertragungskapazit t m glich Da diese L sung f r die vorliegende Arbeit zu kostenintensiv ist ca 3500 DM f r den gesamten Aufbau wird hier ein vereinfachter Aufbau ber eine Modem Modem Kopplung gew hlt Der Klient w hlt sich mit einem Modem an den auf dem WinNT Server laufenden RAS Server ein Durch Konfiguration des Modems auf der Seite des Klienten k nnen so Kan le mit verschiedenen bps Raten aufgebaut werden Um die physikalischen bertragungskapazit ten der einzelnen Verbindungen vergleichbar und klassifizierbar zu machen wurde die effektive Antwortgeschwindigkeit der Daten bertragung mit einem Ping gemessen Eine FTP bertragung h tte zwar die reale bertragungskapazit t widergespiegelt diese ist aber von zu vielen Faktoren wie zum Beispiel Art und Qualit t des Modems Maschinenauslastung und Hardware abh ngig Ping ist ein Instrument zur Analyse von TCP IP Netzwerken Wie im RFC 1574 spezifiziert m ssen Ping Werkzeuge die RTT f r jedes bertragene Paket und die durchschnittliche minimale und maximale RTT ber mehrere Pakete hinweg liefern Ping Pakete selbst sind dabei sehr klein und m ssen somit auch bei der bertragung ber mehrere Router nicht aufgeteilt werden Mit der RTT k nnen
43. clsid B16553C0 06DB 101B 85B2 0000C009BE81 CODEBASE http www someserver com ExampleComponentID oxc ID ExampleComponentID gt lt BODY gt lt HTML gt Nach dem Laden der HTML Seite wird diese vom Browser interpretiert Das CLASSID Attribut wird ausgelesen und in der Registry nachgeschlagen Ist die angeforderte Komponente auf dem lokalen System vorhanden kann direkt CoCreateInstance mit der CLSID als Parameter aufgerufen werden Falls nicht wird die Komponente automatisch von der unter CODEBASE angegebenen URL auf das lokale System geladen Dieser Vorgang wird durch den Internet Komponenten Download Dienst durchgef hrt der drei Verpackungsschemata f r Bin rcode vorsieht e Ein ausf hrbares Programm das eine einzelne Datei mit der Endung OCX DLL oder EXE enth lt e Ein sogenanntes Kabinett von Dateien mit der Endung CAB Dies ist eine Sammlung von mehreren ausf hrbaren und nicht ausf hrbaren Dateien und einer NIF Datei welche Installationsvorschriften f r die anderen Dateien beinhaltet Dieses Schema findet sehr h ufig Anwendung da viele Komponenten DLLs ben tigen die zur der modularen Menge von APIs des Betriebssystems geh ren die nicht zwingend erforderlich sind e Eine NIF Datei mit einer Referenz auf eine Datei die selbst wiederum geladen werden soll Dieser Vorgang ist g nzlich transparent sowohl f r den Anwender als auch dem Entwickler Lediglich der Aufruf
44. da das Laden von Quellcode einer sicheren Sprache und dessen Ausf hrung mit einem vertrauensw rdigen Interpreter sicher ist Es ist nicht m glich einen Klienten mit einem Virus zu infizieren indem ein HTML Dokument geladen und angezeigt wird das Laden von virulenten Bin rdateien birgt diese Gefahr nat rlich wird von HTML aber nicht unterst tzt HTML ist nicht m chtig genug die grundlegende Idee ist aber von vielen Internet programmiersprachen bernommen worden die im Vergleich m chtiger aber nicht so weit verbreitet sind HTML ist f r die Entwicklung von potenten verteilten Anwendungen im Internet nicht geeignet und auch nicht f r diesen Zweck entwickelt worden Schon gar nicht kann auf dieser Basis ein Modell verteilter Objekte aufgebaut werden Die M glichkeit der einfachen Entwicklung von Anwendungen auf Basis des Internets mit optimaler Segmentierung zwischen Klienten und Server im Kontext des heterogenen und dynamischen Umfeldes des Internets ist Ziel der aktuellen Entwicklungsversuche OSC97 Dabei d rfen die Aspekte der Sicherheit Performanz und der Schutz von intellektuellem Eigentum aber nicht au er acht gelassen werden 2 3 3 Sockets 1982 wurden sogenannte Sockets Fassung als Schnittstelle f r die lokale Interproze kommunikation in dem 4 1c BSD System von Berkley Software Distribution als generische Programmierschnittstelle eingef hrt 1985 f hrte SUN Microsystems sein Network File System
45. dem jeweils adressierten Problem abh ngig ist Die vorliegende Arbeit wird folgende Definition verfolgen Ein Klient ist ein Proze der einen Dienst eines Servers anfordert Ein Server ist ein Proze der entsprechende Anforderungen des Klienten nach einem Dienst beantwortet Das Klient Server Modell beschreibt den Ansatz Rechensysteme in Kliententeile und Serverteile zu segmentieren Die Mehrheit der offenen verteilten Anwendungen basieren auf diesem Klient Server Modell Zum Beispiel verwendet ein Anwendungsprogramm Proze ein entferntes Dateisystem Anwen dungsproze Das Dateisystem ist damit der Server da es ausschlie lich auf Dienst anforderungen an das Dateisystems reagiert und das Anwendungsprogramm ist der Klient da es Internet und Intranet st ndig solche Anforderungen generiert HAL96 Es ist zu beachten da ein einzelner Server proze normalerweise mehrere Anforderungen von einer verteilten Gemeinschaft von Klienten gleichzeitig beantworten mu Ein wichtiges Konzept in verteilten Systemen ist daher die logische Arbeitseinheit die local unit of work LUW Diese LUW ist eine Menge von Prozessen die Koordiniert und zu einem Ergeb nis hin ausgef hrt werden m ssen Auch nur ein Fehler in einem einzelnen Teil Proze f hrt dazu da das gesamte VS auf einen Zustand vor der Ausf hrung des LUW zur ckgesetzt wird BRU97 2 2 4 Objekte und Objektorientierung Bei jeder Art der Entwicklung von Sof
46. der Zeigeroperationen verbirgt Dieses IDispatch Interface ist ein normales COM Interface Wie jedes andere auch verwendet es eine V Table welche Zeiger auf die Methoden enth lt Der Unterschied zu normalen Interfaces besteht in der Methode IDispatch Invoke Mittels dieser Methode kann ein Klient direkt eine Gruppe von Methoden aufrufen und die erforderlichen Parameter bergeben Daf r mu der Entwickler einer Komponente mit IDispatch Unterst tzung einzeln festlegen welche Methode f r diese direkten Aufrufe zur Verf gung stehen Dies wird durch die Definition eines Dispatch Interfaces realisiert welches allgemein auch als Dispinterface bezeichnet wird Ein Dispinterface ersetzt also die VTable und macht die damit verbundene Zeigerarithmetik f r den Entwickler transparent Der Aufruf einer Methode erfolgt lediglich durch Aufruf von Invoke und bergabe des Dispatch Identifier DISPID welcher jede Methode identifiziert die durch das Dispinterface aufgerufen werden kann Dieser Mechanismus erlaubt es auch Sprachen wie MS Visual Basic ber die COM Bibliothek Methoden aufzurufen die damit nur Code f r die Navigation durch das standardisierte Dispinterface zur Verf gung stellen m ssen Diese Aufgabe wird blicherweise von der Laufzeitumgebung bernommen Das folgende Beispiel verdeutlicht diese Transparenz f r den Entwickler Es ist die Realisierung einer Rechtschreib berpr fung Die Funktion SpellCheck erh lt einen Suchbeg
47. der digitalen Signatur einer jeden Komponente ist auch der Schutz des Urheberrechts gekoppelt Sowohl Schutz von Urheberrecht als auch Versions kontrolle beides Grundbausteine einer kommerziellen Softwareverteilung werden vom JAVA Modell nicht unterst tzt Nachteilig ist auch da es zur Zeit keine M glichkeit unter JAVA gibt die einzelnen Klassen zu einer einzelnen Datei zu verschmelzen um so die Ladezeiten zu reduzieren ActiveX bietet daf r die Cabinet Dateien an Der letzte und wichtigste Vergleichspunkt resultiert aus den unterschiedlichen Sicherheits modellen der beiden Konkurrenten Die ActiveX Technologie setzt ausschlie lich auf Vertrauen Innerhalb eines nicht hochsensitiven Intranets stellt dieses Vorgehen keine Probleme dar sobald aber ActiveX Komponenten aus dem ffentlichen Internet durch eine Firewall in das Intranet eines Unternehmens geladen und dort auf einem Klienten ausgef hrt werden unterliegen sie keinerlei berwachung und Kontrolle Der Klient als inbound Computer hat freien potentiellen Zugriff auf alle Netzwerkressourcen Obwohl der Autor einer ActiveX Komponente eindeutig identifiziert werden kann und obwohl Ver nderungen am Bin rcode der Komponente zuverl ssig entdeckt werden k nnen ist die potentielle Gefahr durch einen mutwilligen Angriff auf das Intranet zu gro Ein Schaden kann zu einfach verursacht werden und ein Testlauf auf einem abgeschlossenem System ist nicht m glich da zur Zeit ei
48. dessen Referenz gel scht Dadurch ist eine verteilte Garbage Collection unter DCOM implementiert CHAP96 5 Diese Bezeichnung ist ungl cklich da IObjectExporter durch den OXID Resolver nicht aber durch den Exporteur selbst implementiert wird Weiter ist die Namensgebung irref hrend da hier kein COM Interface realisiert ist sondern eine RPC Schnittstelle die direkt durch RPC Aufrufe angesprochen wird 62 Verarbeitung mit verteilten Objekten Im DCOM gibt es zwei Kategorien von Sicherheit Die erste wird als Aktivierungssicherheit bezeichnet und behandelt wie neue Komponenten instantiiert neue und bestehende Komponenten verbunden und wie bestimmte Dienste wie zum Beispiel die ROT gesichert werden Die zweite wird als Aufrufsicherheit bezeichnet und stellt Sicherheit auf Aufrufebene zwischen Komponenten zur Verf gung und etabliert sichere Verbindungen zwischen Klienten und Komponentenserver Aspekte der Sicherungs API sind inh rent plattformabh ngig Die MS Windows Versionen werden als Referenz angegeben DRAFT961 Komponenten werden durch Klienten entweder durch statische persistente Eintr ge in der Regis try mit Verweis auf den Servercode f r den SCM oder durch dynamische Ver ffentlichung via CoRegisterClassObject beziehungsweise Registrierung in der ROT adressiert Aktivierungssicherheit hat damit also einen statischen und einen dynamischen Aspekt Sie wird automatisch auf dem SCM einer Maschine angewende
49. einzelnen Methoden in der Reihenfolge ihre Eintr ge in die V Table e QuerylInterface Gibt einen Zeiger auf das unterst tzte Interface zur ck HRESULT QueryInterface REFIID iid Bezeichner des angeforderten Interface void ppvObject Adresse der Ausgabevariablen die den Interfac iger enth lt Parameters iid in Bezeichner des angeforderten Interfaces ppvObject out Zeiger auf den angeforderten Interfacezeiger oder NIL Return Value S_OK falls das Interface unterst tzt wird E NOINTERFACE sonst e AddRef Inkrementiert den Referenzz hler zur berwachung der Lebenszeit ULONG AddRef void Return Value Gibt den aktuellen Wert des Referenzz hlers als Integer von 1 n zur ck e Release Dekrementiert den Referenzz hler ULONG Release void Return Value Gibt den aktuellen Wert des Referenzz hlers als Integer von 1 n zur ck Gerade mit der Aufgabe der berwachung der Lebenszeit von COM Komponenten ist dieses Interface wohl eines der wichtigsten im COM Modell insgesamt XIII Auswertung und Ausblick auf weitere Entwicklungen Anhang B Secure Socket Layer und Private Communication Technology Secure Socket Layer SSL und Private Communication Technology PCT sind Sicherungs protokolle die basierend auf einen ffentlichen Schl ssel sichere Kan le anbieten Beide Protokolle werden heute bei Internet Browsern und Servern f r die gegenseitige Authe
50. folgenden Abschnitt verdeutlicht vgl auch Anhang A 3 2 3 2 2 2 COM Interfaces Um das Interface eines Komponentenobjekts identifizieren zu K nnen hat jedes Interface zwei Bezeichner Der erste nicht zwingend eindeutige Bezeichner bildet einen mnemonischen Namen auf ein Interface ab Die Notwendigkeit f r eine weltweit eindeutige daf r aber sehr unleserliche Bezeichnung wird durch einen globally unique identifier GUID erf llt der aus dem OSF DCE bernommen wurde Diese wird durch den Entwickler einem Interface zugewiesen und besteht aus einem 16 byte Wert der aus Medium Access Control MAC Adresse HAL96 und einem Zeitstempel generiert wird GUID f r Interfaces werden als interface identifier IID bezeichnet Die Gefahr einer Entschl sselung des IID um auf die Netzadresse des Objektservers schlie en zu k nnen besteht nicht das System auf dem ein Komponentenobjekt aktiv ist stimmt nur in den seltensten F llen mit dem System seiner Erstellung berein Damit ist die erbeutete Information ohne jede Bedeutung CHAP96 Per Konvention beginnen Interfacebezeichnungen mit einem T Das wichtigste Interface ist Unknown das von jedem Komponentenobjekt zur Verf gung gestellt wird Durch diese Schnittstelle kann die Lebenszeit der Komponente berwacht und die Namen der Interfaces mit deren Zeiger erfragt werden s Anhang A Im Gegensatz zu CORBA unterst tzt ein Komponentenobjekt selbst keine Ide
51. fr heren Kommunikationsversuchen zu lernen und damit zuk nftige Kommunikation besser zu bewerten Obwohl Firewall 1 im 1 Quartal 97 ver ffentlicht wurde ist die Lernkurve des Produktes noch sehr flach und die Rate der Wiedererkennung noch nicht ausreichend um einen wirklichen Schutz vor JAVA oder ActiveX Komponenten zu bieten In der Betrachtung der Sicherheit der beiden Komponentenmodelle mu also von einer klassischen Firewall als Trennung zwischen dem Intra und Internet ausgegangen werden 2 4 3 3 Virtual Private Network VPN Im Gegensatz zum topologisch fest gebundenen Einsatz der Firewalls besteht eine M glichkeit der Ausdehnung des Intranets ber die rtlichen Grenzen des Unternehmens hinaus in der Verwendung von sogenannten virtuellen privaten Netzwerken Besonders bei der Verbindung von Au enstellen ber das offene und damit unsichere Internet sind VPN in der heutigen Phase der Globalisierung des Marktes ein aktuelles Thema das nicht allein durch mit Firewalls gesch tzten LANs gel st werden kann VPN bieten auch eine L sung f r mobile Anwender und das sogenannte mobile computing Die Verwendung von Verschl sselung f r den Datenverkehr zwischen Firewalls also ber unsichere Transportwege hat das Konzept der VPNs wieder aktuell werden lassen Wenn zwei Intranets also durch Firewalls gesch tzte TCP IP Netzwerke miteinander kommunizieren mu deren Kommunikation gesch tzt werden Gleiches gilt bei d
52. k nnen e berwachung der Lebenszeit Beantwortet die Frage wann eine Serverkomponente deaktiviert werden kann ohne da ein aktiver Klient unterbrochen wird Am 1 8 1997 hat SUN Microsystems Abteilung JavaSoft angek ndigt das RMI Protokoll in die CORBA Spezifikationen der OMG zu integrieren Die Firma Microsoft unterst tzt die Ausf hrung von RMI Anwendungen weder im JAVA Software Development Kit SDK 2 0 noch im InternetExplorer 4 0 F r den Netscape Navigator ab V3 01 liegt dagegen ein Plug In vor Der Netscape Communicator verf gt ber einen entsprechenden Patch MER97 Internet und Intranet 2 3 6 M glichkeiten und Grenzen aktueller Technologien In der Diskussion um verteilte Objekte m ssen die vorhandenen Technologien f r eine Standort bestimmung angesprochen werden auch wenn diese nicht direkt zu einer klassischen verteilten Middleware gez hlt werden wie sie im folgenden Kapitel 3 vorgestellt wird Die Entwicklung von Klient Server Systemen auf Basis von Sockets ist ein sehr aufwendiger Vorgang Eine Unterst tzung f r objektorientierte Programmierung wird nicht geboten und der Entwickler wird voll in die Protokollimplementierung auf den niederen Schichten des TCP IP einbezogen Dies hat zur Folge da komplexe auf Sockets implementierte VS automatisch propriet r sind ORF97 Die Kombination aus HTTP CGI oder HTTP ISAPI die prinzipiell auf Sockets basiert ist umst ndlich zustandslos und sehr langsam Vo
53. man dabei eine abgesch tzte Ladezeit von ca 3 5 Minuten im Intranet der GTZ sinkt der Wert auf eine knappe Minute Erschwerend kommt noch hinzu da die Vielzahl von kleinen Dateien einen wesentlich h heren Protokolloverhead verursachen als dies bei einer einzelnen entsprechend gr eren Datei der Fall w re Die Ladezeit der HTML Seite mu nicht ber cksichtigt werden da diese f r beide Technologien eine hnliche Gr e hat Im Vergleich dazu hat ActiveX eine integrierte Versionskontrolle die sowohl f r die VM selbst als auch f r die erstellten Komponenten greift Die einzelnen Dateigr en sind zwar betr chtlich so hat die VM ein Gr e von 1 3MB die RDO Bibliothek eine Gr e von 400KB und der realisierte sehr schmale Datenbankklient umfa t 20KB was in einer erheblichen initialen Lade zeit resultiert Ist eine ActiveX Komponente aber einmal geladen worden mu diese vorhandene Version nicht wieder ber das Netzwerk bertragen werden Als Ergebnis kann also besonders f r langsame Verbindungen festgehalten werden da der Vor teil von JavaIDL leider durch die Ladezeiten in den Hintergrund gedr ngt wird Zwar wird an der Kombination von Klassen in einer einzelnen Datei gearbeitet und ein Zwischenspeichern des JAVA Bytecodes auf dem Klienten durch Zusatzprodukte ist m glich die Antwortzeit des Modells selbst ist aber nicht zu akzeptieren 4 4 2 Beurteilung und Performanzanalyse des Datenzugriffes Im Vergleich d
54. sind Das Intranet wird auf diese virtuellen Knoten seien es Einzel oder Mehrplatzsysteme ausgedehnt 30 Internet und Intranet S rs r IL ol L PPPUP pprp UPPPPOE Ka f Bars barn fn Ba d erbindung zum PSTN P IPIPPFIPXIN Intranet Internet ISDN X A 7 ll N o Ka y i TCP IP IPX Abb 12 Konzeptionelles Modell eines VPN Das konzeptionelle Modell eines VPN zeigt wie IP IPX oder NetBEUI basierte Intranets ber das Internet verbunden werden k nnen Das PPTP Protokoll selbst basiert auf Point to Point Protocol PPP TAN97 und TCP IP Dabei bietet PPTP Authentifizierung und Methoden zur Datensicherheit und komprimierung Dar ber hinaus erm glicht PPTP eine Sitzung ber eine bestehende IP Verbindung zu bertragen unabh ngig davon wie diese Sitzung aufgebaut wurde Eine berbr ckung von Firewalls ist dadurch kein Problem Medium IP GRE Pep PPPNutzlast Abb 13 Verwendung von GRE im PPTP PPTP verwendet die Generic Routing Encapsulation GRE bei dem Transport von PPP Paketen Verschl sselung wird auf die Nutzlast angewendet ein Authentifizierungsprotokoll wird verwendet um Objekte vor dem Zugriff zu authentifizieren RFC 1701 PPTP verwendet zwei Pakettypen 1 Datenpakete enthalten die Benutzerdaten Es sind PPP Pakete die durch das GRE Protokoll V2 verkapselt sind 2 Kontrollpakete werden f r Statusabfragen und Signalisie
55. soll mu ein neue Schnittstelle geschrieben werden welche von der existierenden abgeleitet werden Kann Es bleibt aber mit einer neuen Interfacebezeichnung ein deutig Auf diesem Wege erh lt MS DCE eine persistente Schnittstellendefinition Da wie noch zu zeigen ist eine Vererbung von Objekten selbst nicht m glich ist kann auf diesem Weg der Aggregation von Schnittstellen eine Abw rtskompatibilit t von Objekten im COM erreicht werden 3 2 3 1 3 MS Remote Procedure Call MS RPC Da MS RPC in das umgebende Betriebssystem integriert ist werden alle Dienste die unter OSF DCE separat definiert sind hier vom Betriebssystem erfragt So ist zum Beispiel auch verteilte Sicherheit f r MS RPC verf gbar da unter WinNT sowohl die Netzwerkkommunikation als auch das Dateisystem als Teile des Betriebssystems mit entsprechenden Sicherungsmechanismen ausgestattet sind Ein grundlegender Unterschied zwischen OSF DCE und MS DCE liegt in der Namensgebung der RPC API Funktionen RPC Funktionsnamen bestehen aus dem Pr fix Rpc einem Objekt namen und einem Verb das eine Operation auf dem Objekt beschreibt siehe MSRPC97 f r Ausnahmen RpcObjectOperation Objekt Ein Bezeichner der ein RPC Objekt spezifiziert eine Datenstruktur die durch eine RPC Funktion definiert ist Operation Bezeichnet eine Operation auf dem Objekt welches durch Object bezeichnet wird Dabei werden die Bezeichner f r Objekte entsprechend der folgenden Tabelle
56. tsklassen von SQL Anweisungen uuuessssnneesssnnneessnnnnennennnnenernnnnene 78 16 Mapping der IDL Basistypen nach JAVA o oo eeeesseceessneeeeeesseeeceesnaeeeeessaeeeseeaaes 81 17 Inhalte der Open Data Services Header Daten 84 18 Marktanteile verschiedener Programmiersprachen KIR95 u ee 90 19 Unterschiede zwischen RDO und DAO 2uu0022222n0sessnsnerssnnnnensnnnnneneennnneneennn nn 95 20 Ladezeiten ber verschiedene Medien SVE96 nennneeenennnn 102 21 Vergleich von JDBC ODBC Br cke und RIDO 103 22 Verf gbarkeit von MS DCON 105 23 Verf gbarkeit des JDK 22 rare Rank eau dane ee 106 24 Vergleich von JAVA und ActiveX seeeeeeeeeerreessrreersrreesssrrerssrresssreerssreesrereesseree 108 25 Performanzvergleich zwischen COM und Java XVII 26 Performanzvergleich von RDO und JDBC ODBC Br cke XVII 27 Funktionsreferenz f r DCE und MS RPC API V2 0 Funktionen XXI 28 Unterschiede in der IDL bei OSF DCE und MS DCK A XXII x Verteilte Objekte im Intranet und Internet XII Einf hrung und Motivation 1 Einf hrung und Motivation 1 1 Aufgabenstellung Im Rahmen der wachsenden Popularit t des Internets in der ffentlichkeit sehen Firmen in diesem Wide Area Network WAN zunehmend auch eine Basis f r firmeneigene verteilte Anwendungen Zus tzlich werden Technologien die im Internet erprobt wurden in das Netzwerk der Firmen bern
57. ufig Overhead verursacht vgl Kapitel 3 2 3 2 2 2 Nicht zuletzt erfolgt die bertragung von COM verschl sselt Der Data Encryption Standard DES generiert zwar aus 64 Bit Klartext Paketen auch 64 Bit Chiffretext verursacht also f r den Transport der Daten keinen erh hten Datenverkehr der Algorithmus mu aber zweimal durchgef hrt werden TAN97 Bei 9600bps Leitungsgeschwindigkeit liegen die Zeiten f r einen Methodenaufruf bei ca 350ms f r COM und bei ca 200ms f r JavaIDL 1600 00 1400 00 1200 00 1000 00 Inkrementierung DCOM T lt Inkrementierung E 800 00 CORBA 600 00 400 00 200 00 0 100 200 300 400 ain 600 700 800 900 1000 ping ms Abb 41 Vergleich der Ausfiihrungsgeschwindigkeit von COM und JavaIDL Durch diese gegens tzlichen Ergebnisse im Vergleich der Aufbau und Ausf hrungs geschwindigkeit stellt sich die Frage bei welcher Kombination von Anzahl von Operationen und physikalischer bertragungskapazit t das jeweilige Modell vorzuziehen ist Um eine Vergleichbarkeit der Messungen von COM und JavalDL zu erreichen wurde in dem folgenden Diagramm eine Break Even Analyse durchgef hrt Darin wurden sowohl die Zeit f r den Verbindungsaufbau als auch die Verarbeitungsgeschwindigkeit f r die Ausf hrung einer Operation zur Inkrementierung eines Integers einbezogen Innerhalb des Versuches wurden auch andere mathematische Operationen durchgef hrt f r die si
58. von Bedrohungen werden in der folgenden Tabelle kurz zusammengefa t F r eine detaillierte Beschreibung siehe BRU97 Art der Bedrohung Beschreibung Diebstahl von Aneignung von nicht ffentlichen Daten Informationen Zerst rung von Zerst rung von wertvollen Daten Diese k nnen entweder selbst einen Informationen Wert haben z B Kundenlisten oder kostenintensiv in der Beschaffung sein z B Umfrageergebnisse Diebstahl von Benutzung von fremden Systemressourcen f r eigene Zwecke zum Ressourcen Beispiel Durchf hrung von komplexen Berechnungen Behinderung von Dienste z B Mail oder WWW Server durch berm igen Gebrauch Diensten f r andere unbrauchbar machen Maskierung Durch Vorgaukeln einer falschen Herkunft oder eines falschen Namens kann ein Programm einen Anwender auffordern nicht ffentliche Daten einzugeben Tarnung Zwischen Anwendungsprogramm und Datenbestand kann ein getarntes Programm den Datenflu verf lschen ohne da dies von dem Anwender bemerkt wird Dadurch k nnen zum Beispiel Fehlentscheidungen durch den Anwender verursacht werden Tab 5 Bedrohungsarten 2 4 2 2 Angriffsarten Von den dargestellten Bedrohungsarten k nnen wiederum eine Vielzahl von verschiedenen Angriffsarten ausgef hrt werden Diese Angriffsarten werden in passive und aktive Angriffe unterteilt Passive Angriffe dienen lediglich dem unerlaubten Informationsgewinn Dazu geh ren 1 Abh ren von Informationen 2 Abh re
59. von CoGetClassObjectFromURL st t den gesamten Mecha nismus an ActiveX verbindet dabei Skriptsprachen und Komponentenmodelle wie OLE und JAVA MS Visual Basic wurde als erste Containersprache f r ActiveX Komponenten angeboten MS C und MS Visual JAVA folgten Der MS InternetExplorer V3 0 war der erste Browser der dann diese ActiveX Komponenten unterst tzte Ein weitverbreiteter Kritikpunkt ist die mangelnde Offenheit des ActiveX und damit des COM Standards Auf Initiative von Microsoft wurde die ActiveX Group http www activex org als Vereinigung von Herstellern wie DEC HP SAP SNI und der Software AG im Rahmen der Open Group gegr ndet Wie ernst es Microsoft mit der ffnung seines Standard meint bleibt abzuwarten In den ActiveX Strategiepapieren hei t es deutlich da das ActiveX Konsortium sowohl von der Finanzierung als auch von der Verwaltung und dem Betrieb her von Microsoft abh ngig sein wird CT1209 Sp testens seit der Publikation des DCOM Protokolls als Internet Draft DRAFT961 mu auch ActiveX zur Zeit als offener Standard klassifiziert werden auch wenn er gro e Teile der Win32 API verwendet dessen Spezifikation nur teilweise ver ffentlicht ist Eine vollst ndige Liste der Mitglieder findet man unter http www activex org people index htm 88 Beispielentwicklung und implementierung 4 3 2 ActiveX Sicherheitskonzept Gerade das Laden von Bin rcode ber ein potentiell unsi
60. zu da sich die Anwender in den Au enstellen der GTZ erst seit kurzem mit der Problematik der EDV befassen meist kaum nachtr glich geschult werden k nnen Einf hrung und Motivation 4 Die M glichkeit der Zugriffsbeschleunigung durch Prefetching dem fr hzeitigen Abfra gen von Daten soll gepriift werden Um eine umfassende Bearbeitung der Aufgabenstellung durchzuf hren wird abschlie end ein Ausblick auf zu erwartende Technologien in diesem Bereich erfolgen Die Middlewaremodelle werden ausf hrlich verglichen und die M glichkeit des Einsatzes im Internet und Intranet evaluiert Dadurch wird auch dem Einsteiger in diese Materie eine fachlich fundierte Auswahl eines der Systeme erm glicht 1 2 Einschr nkungen Neben den allgemeinen Betrachtungen in der vorliegenden Arbeit unterliegen die praktischen Aus f hrungen Einschr nkungen die sich durch die Soft und Hardware Infrastruktur der GTZ ergeben Diese wird in der folgenden Abbildung schematisch verdeutlicht F d cl te vw Server ae Host SINIX be a BS2000 INFORMIX os 1 SAPIRS sou lll Server Internet int PC 7 Wings 9 6 Kbit Anwahlleitung e ieee U e j 64 Kbit ISON se HH SCITOR Standieitung X25 j E 3 Netz j a JE Le A i IM EI SE 36 kbit j Standleitung EE NT 4 0 X25 Server Router _ d F Pa Gateway 1 El Abb 1 Hard und Software Inf
61. zu verlieren MS951 Grunds tzlich ist zun chst klarzustellen da eine Realisierung eines Active View unter ActiveX nicht den starken Restriktionen einer JAVA VM unterliegt Somit ist es m glich da eine ActiveX Komponente direkt mit dem MS SQL Server kommuniziert Auch die Konfiguration der Datenquelle f r den ODBC Zugriff kann wie beschrieben dynamisch vorgenommen werden sofern die ODBC Treiber selbst auf dem Klientensystem installiert sind davon kann zumindest bei MS Windows Betriebssystemen ausgegangen werden Dar ber hinaus besteht durch Verwendung des RDO die M glichkeit eine direkte und sichere Verbindung zu MS SQL Server ber Sockets Standardwert des Ports 1433 ist die offizielle Socketnummer des Internet Assigned Number Authority TANA f r MS SQL Server oder das sogenannte MultiProtokoll MSSQL96 zu realisieren Letzteres findet in der vorgestellten 3 Tier Realisierung Verwendung da das Multi Protocol Net Library MPNL die Vorteile des abgesetzten RPC von WinNT nutzt Im Gegensatz zu anderen Netzbibliotheken mu die MPNL lediglich als Option bei der Konfiguration des MS SQL Servers gew hlt und nicht weiter konfiguriert werden Sie erf llt folgende Funktionen MSSQL96 e Sie erm glicht die Kommunikation ber die meisten von WinNT unterst tzen IPC Mechanismen e Sie erm glicht die Verwendungen der integrierten Sicherheitsfunktionen die RPC unterst tzt 95 Beispielentwicklung und implementierung
62. 120 95 120 74 40 05 40 10 40 10 40 04 40 04 40 10 40 04 40 10 40 04 40 04 40 07 200 59 200 59 200 48 200 37 200 43 200 42 200 54 200 37 200 48 200 54 200 48 143 08 143 08 143 03 143 03 142 86 142 97 143 19 143 09 143 13 143 08 143 05 120 57 120 67 120 61 120 95 120 32 120 97 120 95 120 31 120 89 121 00 120 72 40 07 40 04 40 04 40 04 40 04 40 09 40 04 40 04 40 04 40 10 40 05 213 11 213 33 213 17 213 94 212 56 213 17 213 44 213 61 212 94 212 94 213 22 152 03 152 20 152 80 151 81 152 30 153 08 152 25 152 97 152 42 152 53 152 44 126 93 126 82 126 55 127 48 126 32 124 70 125 80 124 73 127 26 127 37 126 40 40 15 40 09 40 04 40 04 40 10 40 09 40 10 40 04 40 09 40 08 40 08 Auswertung und Ausblick auf weitere Entwicklungen Fiir die Messung der Leistungsfahigkeit der Komponenten bei der Datenanbindung wurde ein analoger Versuchsaufbau gew hlt 802 3 10BASE T Abb 46 Versuchsaufbau f r Performanzvergleich von RDO und JDBC ODBC F r beide Systeme wurde sowohl die Zeit die f r die Instantiierung der eigentlichen Verbindung ben tigt wurde als auch die Zeit f r die Erstellung des lokalen Recordsets gemessen Ein Ver gleich der Transaktionszeiten selbst ist nicht erforderlich da hier die zugrundeliegenden Mechanismen der ODBC API von beiden Systemen gleich verwendet werden ohne das ein weiterer Overhead von einem der Br implementiert wird
63. 13990 1560 00 1555 10 1591 90 26640 617 30 617 90 688 80 15030 1579 60 1568 70 1534 90 25430 617 90 613 50 882 80 16150 1574 20 1564 40 1548 70 27020 628 90 626 70 682 70 Modem 2400 1 9 928 15341 1574 38 1571 02 1552 62 25925 617 58 623 26 701 85 8430 778 80 777 50 752 60 25050 351 00 351 50 377 40 8400 767 40 772 40 731 10 24940 352 10 350 50 378 40 8090 762 60 764 80 742 80 24160 351 60 351 50 378 40 8130 764 10 765 80 743 30 24990 352 10 350 90 377 90 8340 765 60 766 60 742 00 24500 351 00 350 90 376 80 7400 753 40 752 30 727 20 24720 352 00 351 00 379 50 8470 774 70 773 40 749 50 24660 351 50 351 00 379 00 8300 765 20 767 90 747 00 24880 351 60 350 90 377 40 8160 762 70 762 10 738 50 24770 351 50 351 50 377 90 7370 752 70 752 20 728 60 25600 351 50 350 40 376 80 Modem 4800 0 5 457 8109 764 72 765 50 740 26 24827 351 59 351 01 377 95 XVI Modem 9600 Modem 19200 Modem 33600 ISDN 64000 1 0 1 9 3 4 7 9 264 189 122 27 5460 4320 5130 4960 5320 5880 4820 4620 5790 6160 5246 8540 3550 3820 3650 2890 3010 4670 3950 3250 3050 4038 2400 2520 2990 2110 3400 3260 3400 2090 2410 3590 2817 2670 1630 1930 1140 1520 1200 2010 1890 1560 2270 1782 340 10 354 30 362 30 365 00 367 60 252 70 365 90 360 60 373 30 357 60 349 94 234 50 246 50 226 50 245 50 238 80 242 20 240 50 232 70 227 90 243 10 237 82 169 70 163 10 158 05 161 20 164 10 158 94 174 10
64. 2 Firewalls werden in der Regel von dedizierten Administratoren gewartet Dieser Personenkreis ist zumeist stark f r potentielle Gefahren sensibilisiert 3 Firewalls m ssen da sie dedizierte Systeme sind nur ein u erst geringen und bekannten Anwenderkreis bedienen nur zur Wartung Dadurch ist auch die Gefahr von einfachen Pa w rtern leichter zur reduzieren Durch den dedizierten Einsatz kann weiter darauf verzichtet werden da andere Maschinen einer Firewall vertrauen Sie ist damit per Definition kein Netzwerkcomputer Wird die Firewall von einem Eindringling bernommen kann dieser nicht weitere angeschlossene Systeme manipu lieren da diese der Firewall kein Vertrauen schenken Dies ist die eigentliche Grundidee die den Einsatz von Firewall so effizient und erfolgreich macht H ufig werden Firewalls auch als Bastion Hosts bezeichnet die das inbound innerhalb der Firewall von dem outbound Netzwerk jenseits der Firewall trennen CHES94 Diese Namens gebung verdeutlicht die Funktion der Firewall als sicheres Tor einer Festung Die verschiedenen Funktionen einer Firewall liegen in den Schichten 2 bis 7 Die folgende Abbildung veranschaulicht die Eingliederung von Firewalls in das OSI Modell BRU97 E E 2 D o 7 Anwendung EEN Anwendung 6 Darstellung Darstellung 5 Kommunikations Kommunikations steuerung S steuerung a 4 Transport Transport 3 Vermittlung Ver
65. 961 Brown N Kindel C Distributed Component Object Model Protocol DCOM 1 0 Internet Draft 2 Mai 1996 http ds internic net internet drafts draft brown dcom v1 spec 00 txt DRAFT962 Hamzeh K Singh P G Verthein W u a m FRA96 HAL96 HER93 HM95 INT96 IONA 197 IONA297 JEP97 KES94 KIN95 KIR95 LIN96 MER97 MOA96 Point to Point Tunnelling Protocol PPTP Internet Draft Juni 1996 http ds internic net internet drafts draft ietf pppext pptp 00 txt Franklin C Visual Basic 4 0 Internet Programming John Wiley amp Sons Inc Toronto 1996 Halsall F Data Communications Computer Networks and Open Systems 4 Aufl Wokingham u a 1996 Engesser H Duden Informatik 2 Aufl Duden Verlag Mannheim Leipzig Wien u a 1993 Heller M Tips and Tricks on Developing Killer Server Applications for Windows NT erschienen in Microsoft Systems Journal No 8 1995 Intersolv Intersolv and Sun Partnership Bridges the JDBC ODBC Gap Sweet JAVA White Paper 1996 http www intersolv com programs sweet_white htm IONA Technologies HOP on the Internet Firewall Navigation and Wonder Wall IONA Technologies White Paper 1997 IONA Technologies JONA Technologies Announces Integrated Suite to Provide Full Enterprise Service Infrastructure IONA Technologies Press Release 5 Marz 1997 Http www iona com press pr otm html
66. A Database Connectivity JDBC entwickelt JDBC definiert eine Menge von Schnitt stellen die den datenbankunabh ngigen Zugriff auf Daten erm glichen Theoretisch kann eine Anwendung unter Verwendung der JDBC API und SQL 2 Anweisung jede SQL 2 kompatible Datenbank ansprechen sofern diese einen JDBC Treiber anbietet Die Daten k nnen in unterschiedlichsten Formaten und unter Verwendung unterschiedlicher Technologien gespeichert werden Die meisten Systeme verwenden zur Zeit eines der drei folgenden Datenbank Management Systeme DBMS MOR97 e Relationale Datenbanken RDBMS e Objekt Relationale Datenbanken OORDBMS e Objektorientierte Datenbanken OODBMS Dabei sind die relationalen Datenbanken am h ufigsten zu finden Unabh ngig von diesen Systemen sind weitere Unterschiede wie hierarchische Datenbanken und Dateisysteme zu differenzieren Jede API welche die Unterst tzung aller m glichen Kombinationen anstrebt wird zwangsl ufig mit einer unzureichenden Funktionalit t enden JDBC stellt jedoch keine besonderen Anforderung an das zugrundeliegende DBMS sondern spezifiziert lediglich die JDBC Implemen tierung selbst Hauptvorgabe ist dabei die Unterst tzung von ANSI SQL 2 RIC90 Diese Sprache ist in DBMS sehr weit verbreitet Die schwierige Aufgabe diesen Mantel des JDBC um das bestehende DBMS zu implementieren liegt bei dem jeweiligen Datenbankhersteller MOR97 Das java sql DriverManager Objekt berwacht dabei die Verb
67. API bietet allerdings Ausweichm glichkeiten ROS932 Der urspr ngliche Ansatz der die Erstellung von multithreaded Komponenten erlaubt wird in MS DCE als apartment model bezeichnet Hintergrund ist da obwohl ein Proze multithreaded implementiert sein kann dies f r einzelne Komponenten nicht m glich ist Jeder Thread arbeitet innerhalb eines Appartements und jede Komponente existiert in nur einem solchen abgegrenzten Adre raum SIN97 In MS DCE V2 steht free threading zur Verf gung was die thread bergreifende Referen zierung von Komponenten erlaubt Dadurch wir die Anzahl von aktiven Komponenten drastisch reduziert und das gesamte System entlastet CHAP96 3 2 3 2 COM als Middleware f r verteilte Objekte 3 2 3 2 1 Entwicklung von OLE zu COM DCOM Die an Objekten orientierte Sichtweise von Interprogrammkommunikation hat bei der Firma Microsoft eine lange und wechselhafte Geschichte Die Wurzel der Entwicklung wurde 1991 unter dem Begriff Object Linking and Embedding 1 OLE bekannt und stellte eine Basistechnologie f r Komponentendokumente dar Der Gedanke der dieser Entwicklung zu Grunde lag war der Versuch dem Anwender eine dokumenten orientierte Sicht auf die EDV zu geben Nachdem man zu der Erkenntnis gekommen war da das Problem der Komponentendokumente ein Teilproblem der Kommunikation von Softwarekomponenten allgemein war wurde 1993 Object Linking and Embedding 2 OLE 2 eingef hrt D
68. ActiveX zusammengefa t Seit 1996 steht auch die Erweiterung DCOM zur Verf gung die eine Implementierung von COM Komponenten auf VS erm glicht Im folgenden wird COM mit DCOM synonym verwendet da eine inhaltliche Trennung nicht sinnvoll und nur historisch bedingt ist Die noch zu erl uternde Ortstransparenz von Komponentenobjekten beruht lediglich auf der M chtigkeit der verwendeten COM Bibliothek nicht aber auf dem Modell selbst Die Erweiterungen der COM Bibliothek die das DCOM ausmachen werden in dem separaten Kapitel 3 2 3 2 3 behandelt Der Begriff DCOM wird nur dann verwendet werden wenn ausdr cklich die Erweiterung zu COM gemeint ist Distributed COM ActiveX DirectX Industry Solutions OLE Controls Industry Solutions OLE 2 0 amp OLE Automation Breite der Technologien Zeit Abb 21 Entwicklung von OLE zu COM DCOM STE96 Diese Abbildung verdeutlicht die technologische Entwicklung der Komponentenmodelle der Firma Microsoft Als letzter Glied dieser Kette ist f r das kommende Jahr COM als Rahmen werk angek ndigt mit dessen Hilfe die Grenzen zwischen lokalem und entfernten Rechnern verwischt werden sollen BEI97 vgl Kapitel 5 4 Ein Ende dieser Entwicklung ist nicht abzusehen Allein die feste Basis der oben genannten Technologien ist COM Dadurch wird eine n here Betrachtung in dieser Arbeit sinnvoll 3 2 3 2 2 Das Component Object Model COM 3 2 3 2 2 1 Allgemeines Um die g
69. BA 2 0 zum Standard Die Firma Netscape wird dieses Protokoll voraussichtlich schon in der n chsten Version des Browsers namens Netscape Communicator V4 0 und in den Serverprodukten des Suitespot Pakets unterst tzen Zus tzlich will die Firma den ORB von Visigenic in ihre n chste Produktgeneration einbauen die Anfang 1998 auf den Markt kommen soll Sie wird damit auch anderen Herstellern objektbasierte Schnittstellen anbieten Hewlett Packard will diese nutzen und Netscape Server ber IIOP an das System Management Produkt OpenView anbinden CW96 Aufgabe des IIOP ist vollst ndige Transparenz der Lokalit t von Objekten bei Verteilung Es gibt zwei verschiedene M glichkeiten der Kooperation zwischen ORBs 1 Alle ORBs unterst tzen ein einheitliches Protokoll zwischen dem ORB auf Seite des Klienten und dem des Servers Die Spezifikation eines solchen Protokolls wurde von der OMG im General Inter ORB Protocol GIOP festgelegt 2 ORBs unterst tzen oft propriet re Protokolle die aber ber Br cken f r die Protokoll umwandlung verbunden werden k nnen Das IIOP ist eine Spezialform des GIOP welches auf der Protokollfamilie TCP IP basiert und im CORBA 2 0 Standard detailliert beschrieben ist F r spezielle Dienste sind angepa te Protokolle sogenannte Environment Specific Inter ORB Protocols ESIOP vorgesehen Ein Beispiel f r ein ESIOP ist das auf OSF DCE vgl Kapitel 3 2 2 basierende DCE Common Inter ORB P
70. C API unterst tzt die Kommunikation zwischen der Anwendung und dem JDBC Treibermanager die JDBC Treiber API im JDBC Treiber manager unterst tzt die Kommunikation zu unterschiedlichen JAVA Schnittstellen zum Netz werk und zu ODBC basierten Treibern Durch Austausch der JDBC Treiber k nnen unter schiedliche Back end Datenquellen adressiert werden ohne den Anwendungscode zu ndern Die JDBC ODBC Br cke konvertiert dabei JDBC Aufrufe in ODBC kompatible Aufrufe auf C Ebene Aufgrund der gleichen Herkunft von JDBC und ODBC ist die Br cke sehr klein da nur wenige Umsetzungen notwendig sind Um so mehr ist es bedauerlich da sich Microsoft und SUN Microsystems nicht auf eine einheitliche Spezifikation einigen konnten In dieser fr hen Testphase der JDBC ODBC Br cke alpha2 bildet sie noch nicht die volle Funktionalit t von ODBC ab Bookmarks und Scrollable Cursors werden nicht unterst tzt 20 Die Intersolv JDBC ODBC Br cke ist ODBC 2 0 kompatibel und auf Win95 WinNT und Solaris ab Version 2 4 verf gbar 77 Beispielentwicklung und implementierung MSSQL96 was besonders bei Anwendungen einen erh hten Realisierungsaufwand verursacht die einen Active View auf Daten zur Verf gung stellen m ssen Genau dies ist aber der Ansatz der die Nachteile der konventionellen HTML CGI Realisierung eines Datenbankklienten aus gleicht Dagegen werden Metadata Klassen als Pendant zur SQLGetInfo Funktion von ODBC un
71. CORBA ist der OMG Standard der den Aufbau des ORB seine Bestandteile sowie deren Verhalten und Schnittstellen beschreibt OMG95 Ein Klient kann unter Verwendung des ORB einem Objekt einen Request Anfrage zuschicken und von diesem ebenfalls tiber den ORB eine Response Anwort zur ckerhalten Ein Request wird von einem Objekt bearbeitet indem das Objekt eine Operation ausf hrt und die bergebenen Argumente Parameter verarbeitet Ein spezielles Ergebnis ist die Exception ein sogenannter Ausnahmefehler der den Klienten auf einen aufgetretenen Fehler bei der Bearbeitung seines Requests hinweist Ein Klient im Sinne des Klient Server Modells ist eine Softwareeinheit die von einem Objekt eine Operation anfordert Die Objektimplementierung ist eine Menge von Programmcode die das Verhalten eines Objektes beschreibt Aus der Sicht des Betriebssystems werden mehrere Objekt implementierungen zu einem Server zusammengefa t Ein Server kann dabei mehrere Klienten besitzen Klient Objektimplementierung E ek oe A Re A d a a wi IDL ORB Stubs Interface Skeletons DI ORB Kern standardisierte Schnitstelle identisch f r alle ORBs es kan mahrere Object Adapter geben mehrere jewells auf eran Objekttyp spezialistanes Schnittstellen ORB spezifische Schnittstellen Abb 14 CORBA Modell mit ORB Schnittstellen RED96 Der ORB besteht aus DII DSI Objekt Adapter und ORB Kern Die Stubs und Skeletons werde
72. Die Grafik zeigt die drei verwendeten Kommunikationsmechanismen lokaler Klienten proze lokales Objekt DLL IPG Server lokaler ServerprozeR Klient S 2 tfernte entiernies COM zl STUB Objekt DCOM Server oO entfernter Serverproze BCOM entfernte Maschine Abb 25 Ortstransparenz im DCOM CHAP96 Damit gibt es drei m gliche Realisierungen f r COM Komponenten e In Process Server werden als DLL realisiert und zur Laufzeit in den Speicherbereich des Prozesses geladen Beachtenswert ist da eine DLL nur einmal pro Sitzung des Betriebssystems geladen wird Obwohl sie in den exklusiven Speicherbereich des Prozesses geladen wird kann das Betriebssystem bei Bedarf Kopien f r andere Prozesse zur Verf gung stellen e Lokale Server werden ber Interproze kommunikation Inter process Communication IPC angesprochen die durch einen sogenannten Lightweight RPC realisiert wird e Entfernte Server werden ber den MS RPC angesprochen MS RPC ist ein Paket von API Funktionen Bibliotheken und Programmen die es Entwicklern erm glichen Klienten Serveranwendungen unter Vermeidung von Low Level Code zu gene rieren MS RPC bietet dabei eine nahtlose Unterst tzung der Netzwerkprotokolle Named Pipes NetBIOS TCP IP IPX SPX und Lightweight RPC HAL96 Das Marshalling zur berbr ckun
73. Diese Anwendung bietet eine IDL Schnittstelle die drei verschiedene Objekte spezifiziert Anbieter Konsumenten und Ereigniskan le OrbixEvent ist IIOP f hig unterst tzt als Orbix 2 x Multi Thread basierte Anwendung sowohl Single als auch Multi Threaded Klienten und ist auf den Betriebssystemen Solaris und WinNT verf gbar Der Naming Service von IONA wird durch OrbixNames vollst ndig implementiert OrbixNames V1 0 3 ist Kompatibel zu Orbix 2 1c Orbix 2 2 und OrbixWeb und auf den Betriebssystemen Solaris 2 x WinNT 4 0 HP 10 10 und AIX S Einen aktuellen Stand der implementierten Dienste findet sich unter http www iona com Products Services index html 37 Verarbeitung mit verteilten Objekten 4 1 verfiigbar Mehrfache und verschachtelte Kontexte werden unterstiitzt OrbixTrader ist die Implementierung des OMG Trading Object Services durch IONA welcher eine verbesserte Ressourcenlokalisierung bei Klienten Server Interaktionen in VS bietet Der OrbixTrader ist auf Solaris verfiigbar Versionen fiir HP und WinNT waren fiir den Oktober 1997 angekiindigt Weiter wird der Object Transaction Service OTS durch OrbixOTS realisiert Dadurch wird die einfache Entwicklung von Anwendungen erm glicht die Transaktionen und verteilte Datenintegrit t erfordern OTS unterst tzt dabei eine verteilte 2 Phasen Commit ACID Transaktion RIC90 Die Transaktionsanforderung durch den Klienten z B auch JAVA Anwendungen wird vom OTS Transak
74. HEAD Zur ckgeben des HTTP Server Antwortkopfes POST Informationen zum HTTP Server senden um weitere Aktionen zu veranlassen PUT Senden von Daten um diese auf dem Server zu speichern DELETE L schen der durch eine URL spezifizierten Daten LINK Aufbau einer oder mehrerer Verbindungen zwischen spezifizierten URLs UNLINK L st eine Verbindung zwischen zwei Ressourcen Tab 2 HTTP Methoden f r Klienten COO96 HTTP 1 0 erweiterte das Protokoll durch Einf hrung von selbstbeschreibenden Nachrichten unter Verwendung einer Variation des Multipurpose Mail Extension MIME Protokolls BRU97 Dadurch kann der Klient den Server ber die von dem Klienten verstandenen Datenformate informieren Im November 1995 wurde die vorl ufige Version HTTP 1 1 ver ffentlicht Diese Version ist abw rtskompatibel zu HTTP 1 0 f hrt aber st rkere Reglementierungen ein um sicherzustellen da die Eigenschaften des Protokolls zuverl ssig implementiert werden Das HTTP Protokoll basiert auf einem Request Response Paradigma Der anfordernde Klient etabliert eine Verbindung mit einem Server und sendet einen Request bestehend aus Request Methode URL Protokollversion und MIME hnlicher Nachricht zum Server Der Server antwortet mit einer Statusmeldung Protokollversion und Erfolgs Fehlermeldung gefolgt von einer MIME hnlichen Nachricht Serverinformationen und m glichem Inhalt Unter TCP IP ist der vorgegebene TCP Port 80 andere k nnen aber konfig
75. I Article ID Q103738 Microsoft Corporation 1997 Microsoft Knowledge Base RegisterDatabase Method does not modify ODBC INI File Article ID Q132329 Microsoft Corporation 1997 Microsoft Knowledge Base BUG Win32 SDK Version 4 0 Bug List MIDL Article ID Q165280 Microsoft Corporation 1997 Microsoft Microsoft RPC Programmer s Guide and Reference Online Dokumentation Microsoft Press 1992 Microsoft Microsoft RPC Programmer s Guide and Reference Online Dokumentation Microsoft Press 1997 XXVII Auswertung und Ausblick auf weitere Entwicklungen MSSDK97 Microsoft Microsoft Platform SDK for Microsoft Windows MSSQL96 NET97 NOR96 OMG95 OMG96 OMG97 ORF97 OSC97 RED96 RFC 1034 RFC 1035 RFC 1508 RFC 1510 RFC 1521 RFC 1522 RFC 1574 RFC 1661 RFC 1701 RIC90 Online Dokumentation Microsoft Corporation 1997 Microsoft Microsoft SQL Server Setup Online Dokumentation Microsoft Press 1996 Netscape IBM Netscape Oracle and SUN unite to bring CORBA and JavaBeans together Netscape Communications Corporation 10 Juni 1997 http search netscape com de newsref pr newsrelease422 html Northon K Sun s JDBC spec turns up database heat under JAVA erschienen in PC Woche Mai 1996 http www pcweek com archieve 960506 pcwk0060 htm OMG The Common Object Request Broker Architecture and Specification Revision
76. L Server ber den JAVA Servern an den JAVA Klienten bermittelt werden mu Das RDO bietet hierf r einen fertigen Mechanismus der keinen zus tz lichen Aufwand f r die Implementierung erforderlich macht Die RDO Implementierung macht die Verwendung von Triggern auf der Seite des MS SQL Servers berfl ssig siehe dazu auch Abb 35 Eigenschaft JDBC ODBC Bridge RDO Ver ffentlichte Schnittstelle JAVA Packages C Funktion Prototypen Interne Architektur JAVA Objekte auf C C Strukturen C Klassen Klassen Objekt Manipulation JAVA Objekte Handles Klientencode JAVA C C 4 VB etc Transaktionskontrolle Ja Ja Transaktionskontrolle tiber Nein Ja mehrere Verbindungen Passiver Offline Cache Nein Ja Aktiver Offline Cache Nein Ja Recordset Typen Statisch Snapshot Statisch Dynamisch Stored Procedures Ja Ja Cursor Unterstiitzung Tabelle Tabelle Stored Procedure Scrollable Cursors Nein Ja Abfragen als Methoden Nein Ja ODBC Bookmarks Nein Ja Asynchrone Abfragen Durch JAVA Threads mit Ja erheblichem Aufwand Tab 21 Vergleich von JOBC ODBC Briicke und RDO Diese Tabelle spiegelt auch den Entwicklungsaufwand der Implementierung wieder Dadurch da das RDO f r die Verteilung von Datenbankanwendungen wichtige Merkmale wie dyna mischen Zwischenspeicher Cursor Unterst tzung auf Ebene von gespeicherten Prozeduren und Abfragen als Methoden unterst tzt ist in diesen Punkten keine Implementierung erforderlich Die Entwick
77. Modells empfiehlt Dieser Grenzwert kann leicht in der Beispielimplementierung durch einen dynamischen Daten bestand erreicht werden da in diesem Fall schon die Aktualisierungshinweise siehe Trigger Event Abb 35 die vom JAVA Server an den Klienten zur ckgegeben werden eine gr ere Transaktionszahl ergeben k nnen Bei dieser Bewertung die gerade bei niedrigen bertragungskapazit ten den Einsatz von JavalDL stark favorisiert ist aber noch ein letzter Aspekt zu beachten Im Gegensatz zu ActiveX mu in dem JavalDL Modell der Bytecode zur Laufzeit auf den Klienten bertragen werden Im folgenden mu also zun chst untersucht werden wie gro eine derartige objektorientierte ver teilte modulare Anwendung ist Aufgrund der Gr e der Objekte k nnen Aussagen ber die erforderliche Zeit f r die bertragung der Objekte bei verschiedenen g ngigen Netztechnologien getroffen werden Die folgende Tabelle zeigt die bertragungszeiten in Sekunden von Daten unterschiedlicher Gr e ber unterschiedliche Medien Um die Medien vergleichbar zu machen wurde hier die maximale Datenrate in Bits pro Sekunde als Rechengrundlage verwendet 101 Beispielentwicklung und implementierung KB 2400bps 4800bps 9600bps 14 4Kbps 28 8Kbps 64Kbps IOMbps 1 3 41 1 71 0 85 0 57 0 28 0 13 0 0008 2 17 07 8 53 4 27 2 84 1 42 0 64 0 0041 10 34 13 17 07 8 53 5 69 2 84 1 28 0 0082 50 170 67 85 33 42 67 28 44 14 22 6 40 0 0410 100
78. OM Versionskontrolle durch Interfaces Die obige Grafik veranschaulicht diesen Sachverhalt Abschlie end mu noch gesondert auf den Begriff der Klasse im Rahmen des COM eingegangen werden Jede Komponente ist die Instanz einer Klasse und jeder Klasse kann eine eigene GUID zugewiesen werden die als Class Identifier CLSID bezeichnet wird Ein CLSID ist somit ein universell eindeutiger Bezeichner GUID der den Typ eines Objektes identifiziert Allerdings hat nicht jede Klasse zwingenderweise eine CLISID da Komponenten einiger Klassen nicht durch die COM Bibliothek erstellt werden und damit keine CLISD ben tigen Im COM bezeichnen CLSID eine bestimmte Implementierung einer Gruppe von Interfaces nicht die Gruppe selbst So ist es zum Beispiel unter COM nicht untersagt da einer Komponente Interfaces hinzugef gt werden ohne die CLSID zu ndern Die CLSID wird demnach lediglich dazu verwendet einen bestimmten Code zu identifizieren der durch die COM Bibliothek geladen und f r Objekte dieser Klasse ausgef hrt wird Jeder normale Objekttyp hat seinen eigenen CLSID in der Registry Datenbank von MS Windows so da das entsprechende Objekt durch andere Programme geladen und programmiert werden kann 58 Verarbeitung mit verteilten Objekten 3 2 3 2 2 3 COM Ortstransparenz Dadurch da Objekte nur durch Zeiger auf Interfaces adressiert werden verbirgt sich die eigentliche Lokation der Zielkomponente vor dem Klienten
79. Routing Encapsulation GRE Oktober 1994 Ricardo C Database Systems Principles Design and Implementation Maxwell Macmillan New York 1990 XXVIII ROD97 ROM97 ROS931 ROS932 SHA96 SIN97 SPE96 STE96 STR92 SUN196 SUN197 SUN296 SUN297 SUN397 SVE96 TAN95 TAN97 VIN96 WIT97 Auswertung und Ausblick auf weitere Entwicklungen Rodley J Developing Databases for the Web amp Intranets The Coriolis Group Inc Scottsdale 1997 Roman S Concepts of Object Oriented Programming with Visual Basic Microsoft Corporation 1997 http www microsoft com vbasic feature object objwebdoc htm Rosenberrry W Kenney D Fischer G Understanding DCE 2 Aufl O Reilly amp Associates Inc Sebastopol 1993 Rosenberrry W Teague J Distributing Applications Across DCE and Windows NT 2 Aufl O Reilly amp Associates Inc Sebastopol 1993 Shah R Integrating Databases JDBC erschienen in JAVA World Mai 1996 Sinha A K Netzwerkprogrammierung unter Windows NT 4 0 Addison Wesley Bonn Reading Melo Park u a 1997 Spencer K L Miller K Client Server Programming with MS Visual Basic Microsoft Press Redmond 1996 Stearns D Migrating Existing Information Systems to Component Architectures Visual Basic Group April 1996 http www microsoft com vbasic techinfo mig3tier htm Stroustrup B
80. S exportieren und sie damit den RPC Klienten zur Verf gung stellen die umgekehrte Richtung aber also der Import von Verkn pfungsdaten vom CDS in den RPC Locator ist allerdings nicht vorgesehen Die Entscheidung welcher Namens dienst einzusetzen ist wird auf Administrationsebene getroffen ROS932 Der Quellcode der Anwendung selbst bleibt von dieser Entscheidung unbeeinflu t da die Unterschiede in den NSI Routinen implementiert sind die den Klientenaufruf an den Server ausf hren Bei der Ver wendung von verteilten Objekten auf Basis des COM empfiehlt sich aber die Auswahl des einfacheren Namensdienstes von WinNT da auch abseits des DCE CDS Konfigurationen f r die COM Komponenten auf Seiten von WinNT vorgenommen werden m ssen DEC94 F r die Verwendung des DCE CDS anstelle des Locators m ssen folgende Eintr ge in die Registry der Konfigurationsdatenbank Registry von WinNT eingef gt werden HKEY_LOCAL_MACHINE Software MS Rpc Name Service NetworkAddress HKEY_LOCAL_MACHINE Software MS Rpc Name Service Endpoint Da eine MS RPC Anwendung keine vermittelnde Instanz wie den DCE Clerk zur Verf gung stellt wird dessen Funktion in einem Stellvertreteragenten realisiert der als Name Service Interface Daemon NSID bezeichnet wird Der NSDI l uft auf einem DCE System und verarbeitet NSI Aufrufe von MS RPC Systemen Dieser Zusammenhang wird in der folgenden Abbildung deutlich ROS932 Microsoft Umgebung DCE
81. SQL Server In der Vergangenheit wurden ODS und SYBASE Open Server konzeptionell als Front end des MS SQL Server angesehen Es waren allerdings lediglich verschiedene Implemen tierungen derselben Aufgabe Per Definition ist der MS SQL Server dagegen selbst eine ODS Anwendung Er verwendet die gleichen ODS Bibliotheken OPENDS DLL wie jede ODS Anwendung ODS bernimmt die Aufgabe der Netzwerkadministration wartet auf neue Ver bindungen bereinigt abgebrochene Verbindungen quittiert Artentions erzwungene Befehls abbr che und gibt ResultSets Nachrichten und Statusmeldungen zur ck an den Klienten MSSDK97 MS SQL Server Klienten kommunizieren mit dem Server ber das propriet re Protokoll Tabular Data Stream TDS TDS ist ein selbstbeschreibender Datenstrom Dieser enth lt sogenannte Tokens die Namen der Spalten Datentypen Ereignisse Events und R ckgabestati beschreiben Auf der Serverseite schreibt der MS SQL Server ber den ODS direkt in TDS Auf der Klientenseite verpacken offene Schnittstellen der DB Library und des ODBC Paketes SQL Aufrufe in das TDS Format Sowohl DB Library und ODBC verwenden daf r eine Implementierung der NET Bibliothek f r den Klienten MSSDK97 Durch dieses Vorgehen erm glicht die TriggerHelper DLL eine Kommunikation zwischen Klienten und MS SQL Server Um dieses aufwendige Vorgehen und die Notwendigkeit der Verwendung nativer Schnittstellen besonders vor dem JAV A Server als Klienten d
82. Type Library Interface Repository Typeninformation fiir Methoden SCM ORB Lokalisierung SCM OA Klientensockel proxy stub proxy Serversockel stub Skeleton Ubertragungsprotokoll Objektendpunkt Aufl sung OXID resolver ORB Erstellung von Objektreferenzen object exporter OA Objektendpunkt object exporter OA Objektreferenz OBJREF IRO o Objetctref Marshalling Format NDR CDR Bezeichner f r Schnittstelleninstanz IPID object_key Tab 12 Zusammenfassung von Bezeichnungen und Entit ten in COM u CORBA CHU97 68 Beispielentwicklung und implementierung 4 Beispielentwicklung und implementierung 4 1 berblick Die in dieser Arbeit vorgestellten Beispiele sollen die Vor und Nachteile des Einsatzes von COM und CORBA als Middleware auf Basis eines langsamen Intranets und des Internets aufzeigen Dabei wird jeweils eine Anwendung implementiert die einen Active View auf einen Daten bestand liefert Ein Klient mit GUI soll dem Anwender einen Ausschnitt aus einem Datenbestand grafisch und ergonomisch darstellen Die Darstellung der einzelnen Datens tze soll nach M glichkeit den aktuellen Datenbestand widerspiegeln und nderungen sofort dem Klienten anzeigen Transaktionssicherheit soll bei allen Operationen gew hrleistet sein Nachdem die Middlewareplattformen im vorherigen Kapitel ausf hrlich diskutiert wurden wird hier ein Augenmerk auf die Internetprogrammiersprachen selbst gerichtet Auf der einen Seite hat sich JAVA k
83. Verteilte Objekte im Internet und Intranet Diplomarbeit Peter Wolter Studienrichtung Informatik Matrikel Nr 922230 Fachbereich Informatik Verteilte Systeme und Betriebssysteme Johann Wolfgang Goethe Universitat Frankfurt am Main betreut durch Professor Dr Kurt Geihs Verteilte Objekte im Intranet und Internet Verteilte Objekte im Intranet und Internet Ehrenwortliche Erklarung Ich versichere hiermit ehrenw rtlich da ich die vorliegende Arbeit selbst ndig und nur unter Benutzung der angegebenen Literatur und Hilfsmittel angefertigt habe W rtlich bernommene S tze und Satzteile sind als Zitate belegt andere Anlehnungen hinsichtlich Aussage und Umfang unter Quellenangabe kenntlich gemacht Die Arbeit hat in gleicher oder hnlicher Form noch keiner Pr fungsbeh rde vorgelegen Frankfurt den 28 November 1997 Verteilte Objekte im Intranet und Internet Ehrenw rtliche Erkl rung Inhaltsverzeichnis Abk rzungsverzeichnis Abbildungsverzeichnis Tabellenverzeichnis 1 Einf hrung und Motivation 1 1 Aufgabenstellung 1 2 Einschr nkungen 2 Internet und Intranet 3 Verarbeitung mit verteilten Objekten 3 1 Einf hrung 3 2 Plattformen Verteilte Objekte im Intranet und Internet Inhaltsverzeichnis 2 1 Definitionen 2 2 Systemmodelle 2 2 1 Das Grundmodell f r zentrale Systeme 2 2 2 Verteilte Systeme 2 2 3 Das Klient Server Modell 2 2 4 Objekte und Objektorientierung 2 2 5 Middleware
84. WW Server residieren Diese Einschr nkung mu dazu f hren da ein dedizierter WWW Server f r JavalDL Server zur Verf gung gestellt werden mu um die Last auf mehrere Systeme zu ver teilten Bei der Anbindung eines Intranets an das Internet kann dieser Server auch auf dem outbound WWW Server des Unternehmens laufen Der Server wiederum kann dann durch ein 108 Auswertung und Ausblick auf weitere Entwicklungen Application Level Gateway zum Beispiel mit einer Datenbank ber ein propriet res Protokoll kommunizieren In dem implementierten Beispiel w rde zwischen JAVA Server und MS SQL Server die Firewall positioniert werden da der Datenbankserver nicht dem outbound Netzwerk ge ffnet werden sollte Dieser Restriktion unterliegt ActiveX nicht Hier kann ein Klient zu jedem beliebigen Server einschlie lich dem Datenbankserver selbst eine sichere Verbindung aufbauen Dadurch ist innerhalb dieser Architektur auch eine 2 Tier L sung m glich Eine Kommunikation zwischen ActiveX Komponenten ber eine Firewall ist in D COM vorgesehen Wichtig f r den Einsatz in engbandigen Netzen ist die Tatsache das ActiveX Komponenten als Bin rcode auf den Klienten geladen werden und dort einer Versionskontrolle unterliegen Die Verwendung von Bin rcode hat zwangsl ufig Geschwindigkeitsvorteile gegen ber der Ver wendung von Bytecode da der Code direkt ausgef hrt werden kann Dadurch geht allerdings die Plattformunabh ngigkeit verloren Mit
85. _mgmt_ing_server_princ_name rpc_mgmt_ing_stats rpc_mgmt_is_server_listening XIX MS RPC Funktionsname DceErrorInqTest RpcAbnormalTermination RpcBindingCopy RpcBindingFree RpcBindingFromStringBinding RpcEndExcept RpcEndFinally RpcExcept RpcExceptionCode RpcFinally RpcBindingIngAuthClient RpcBindingIngAuthinfo RpeBindingIngObject RpcBindingReset RpcBindingServerFromClient RpcBindingSetAuthInfo RpeBindingSetObject RpcBindingToStringBinding RpcBindingVectorFree RpcEpRegister RpcEpRegisterNoReplace RpcEpResolveBinding RpcEpUnregister RpclfIdVectorFree RpclfIngId nicht unterst tzt RpelmpersonateClient RpcMgmtEnableldleCleanup RpcMgmgEpEltIngBegin RpcMgmgEpEltIngDone RpcMgmgEpEltIngNext RpcMgmgEpEltIngBegin RpcMgmtIngComTimeout nicht unterst tzt RpcMemtInqDefaultProtectLevel RpcMemtInqIflds RpcMgmtIngServerPrincName RpcMgmtIngStats RpcMgmtlsServerListening 1 3 Auswertung und Ausblick auf weitere Entwicklungen DCE Funktionsname rpc_mgmt_set_authorization_fn rpc_mgmt_set_cancel_timeout rpc_mgmt_set_com_timeout rpc_mgmt_set_server_stack_size rpc_mgmt_stats_vector_free rpc_mgmt_stop_server_listening nicht unterstiitzt rpc_network_inq_protseqs rpc_network_is_protseq_valid rpc_ns_binding_export rpc_ns_binding_import_begin rpc_ns_binding_import_done rpc_ns_binding_import_next rpc_ns_binding_ing_ent
86. ab 11 Eigenschaften von DCOM ORF97 Bemerkenswert ist dabei vor allem da persistente Objektreferenzen nicht explizit von dem Modell unterst tzt werden Implizite Unterst tzung bietet aber die Verwendung von Moniker f r die Speicherung der Objektreferenzen F r die Konfiguration von DCOM auf den einzelnen beteiligten Maschinen stellt Microsoft keine standardisierten Werkzeuge zur Verf gung Die GUID der Serverkomponente ist auto matisch in die Tabelle der Moniker sowohl auf Klienten als auch auf Serverseite eingetragen 63 Verarbeitung mit verteilten Objekten worden Beispielhaft wird hier die Konfiguration des in Kapitel 4 3 implementierten Servers fiir den Benchmarkversuch vorgestellt Application Name DCOMServer clsDCOMServer Application Type Local Server Local Path C WINNT system32 DCOMServer exe Auf der Klientenseite kann nun der Ausf hrungsort entsprechend dem Standort des Servers ge ndert und die Sicherheitseinstellungen nach Bedarf vorgenommen werden M gliche Sicherheitseinstellungen sind e Zugriffsberechtigung e Startberechtigung e Konfigurationsberechtigung Standardeigenschaften der DCOM Konfiguration werden immer auf dem Server eingestellt Dabei sind folgende Konfigurationen m glich e Standard Authentifizierungsebene nach Sicherheitsebene aufsteigend Legt die Sicherheit f r Pakete bei der Kommunikation zwischen Anwendungen fest Kein Keine Sicherheits berpr fung bei der Kommunikatio
87. alb gele gentlich nicht nur als Programmiersprache sondern als neue Plattform bezeichnet JAVA VM sind derzeit f r viele Betriebssysteme und Prozessorplattformen verf gbar und weitere befinden sich in der Entwicklung vgl http java sun com products index html Bei JAVA Programmen unterscheidet man zwischen Applets und Applikationen JAVA Applets sind JAVA Programme die in eine HIML Seite eingebunden sind und ber dieses konfiguriert werden k nnen MOR97 Der Browser bernimmt dabei die Funktion der VM Wenn ein Benutzer auf diese Seiten zugreift werden die darin verkn pften Klassen des Applets auf den eigenen Computer geladen und ber die VM ausgef hrt Im Gegensatz zu der CGI Programmierung bei der die Verarbeitung auf dem Server stattfindet erfolgt die Verarbeitung auf der Seite des Klienten in einem JAVA kompatiblen Browser DOS96 Hier kommt vor allem der Sicherheitsaspekt zum tragen Um nicht unerw nschte Aktionen auf dem Klientensystem ausf hren zu k nnen unterliegen Applets starken Einschr nkungen auf die im weiteren noch eingegangen wird Im Unterschied zu den Applets k nnen JAVA Applikationen in der VM des JDK direkt damit ohne Browser ausgef hrt werden Sicherheitsrestriktionen k nnen somit hier entfallen MOR97 1990 begann James Gosling mit der Entwurfsphase dieser neuen Programmiersprache die auf die Bed rfnisse der Konsumelektronik besser zugeschnitten sein sollte als die traditionellen Programmierspra
88. also auch topologisch stark unterschiedliche Netzwerke verglichen werden Als Hardwareplattformen wurden auf der Klientenseite ein Personalcomputer mit CYRIX 166 Prozessor und 64MB RAM und auf der Serverseite ein INTEL Pentium 100 mit ebenfalls 64MB RAM eingesetzt Diese Konfiguration stellte sicher da die Ausf hrungen der Testanwendung ohne Verwendung von Auslagerungsdateien erfolgen konnte was die Ergebnisse verf lscht h tte Server Modem Modem Kopplung NT4 0 Less e 2 M onsi SOL ISDN Keates 6 Kanal I I Server Lone e gt 7 os 802 3 10Base T ER Abb 45 Versuchsaufbau f r Performanzvergleich der Middleware Dieser Versuchsaufbau hat gegen ber dem Taktgenerator den Nachteil das keine stufenlose Variation des Kanals m glich ist Nach der Hayes Spezifikation von Modems stehen nur vor gegebene bertragungskapazit ten zu Verf gung f r die jeweils im folgenden Messungen durchgef hrt wurden Zus tzlich wurden Werte f r die Interproze kommunikation also die Kommunikation von Klienten und Serverproze auf einer Maschine ber 10Mbit s Ethernet LAN und einem ISDN Basiskanal ermittelt Das Serverobjekt wurde in diesem Versuch m glichst schmal implementiert Es stellt nur drei Operationen Inkrementierung Zuweisung und eine einfache mathematische Berechnung mit allen Grundrechenarten zur Verf gung Die Auswahl dieser drei Grundoperationen vermeidet das m gliche St rken einer Programmiersprac
89. anismus zwischen Intra und Internet wird die globale Wiederverwendbarkeit von Objekten in absehbarer Zeit nicht erreichbar sein Mit dieser Entwicklung einher geht die Entwicklung der VPN So ver ffentlichte die Firma Microsoft im 3 Quartal 97 einen kostenlosen VPN Zusatz f r den RAS Klienten auf dem Win95 Betriebssystem Ohne Konfigurationsaufwand auf dem Klienten ist damit eine sichere Kommunikation mit dem RAS Server von WinNT ab Version 4 0 m glich Die ver ffentlichte Version die sich nicht mehr in der Betaphase befindet mu zwar noch auf Funktionsf higkeit und Performanz untersucht werden zeigt aber eine einfache Softwarel sung f r das Intranet auf Eine weitere interessante zuk nftige Entwicklung ist von der Firma Netscape mit ihrem Internet Service Broker angek ndigt Der Netscape Internet Service Broker NISB ist ein CORBA basierter ORB der im Netscape Enterprise Server 3 0 und auch in Netscape Communicator 4 0 enthalten sein soll Anwendungsprogramme die auf dem Server oder dem Desktop ausgef hrt werden k nnen sich selbst mit NISB registrieren und sp ter von anfragenden Klienten aufgerufen werden Internetanwendungen k nnen in JAVA C oder C geschrieben werden und ihre Dienste ber Internet Service Broker anbieten Diese Erweiterungen k nnen innerhalb des Serverprozesses oder als separater Proze laufen Netscape hat eine Lizenz f r die VisiBroker ORB Technologie von Visigenics erworben u
90. ansmission Control Protocol erc rear lan nest et 11 Tabular D t Stream a ra Ea Te i as 84 Ticket Grantin Tickets 323424022 28 0 Een 45 User Datagram Drotocol ariete telnie eeehe rhor t kA arh e a eeta oE rie ite 11 Uniform Resource L tater 2 2 era Rensrenararen ern 6 KADETTEN 87 Vartuals Machines u Gish eel in NENNEN 17 Virtual Private Networks ccccccccceeseesseneeeeeceeeeeeeenaaeeeceeeeeeeesaaeeeeceeeeeeeennaaeeeeees 30 Verteiltes System sr Harrer Ann aR N 7 World Wide Web Consorum ernennen 89 Wide Area NetWork arion ana n han ek ENEE 1 Microsoft Windows Ver 3 0 und h ber eee eeeseeceeeseceeecesneeeseesaeeceessaeeeseas 3 Microsoft Windows 95 rss engeren 1 Microsoft Windows NT Ver 3 5 und b ber 1 World Me Web eege ee 5 VIII Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Abb Verteilte Objekte im Intranet und Internet Abbildungsverzeichnis 1 Hard und Software Infrastruktur der GTZ ec eeesecceessseeeccennneeecesseeeeeesnaeeeeesaeeees 3 2 Ein zentrales Systemmodell ROS93 eeeecesesccecccceeeeeeenneeeeeeeeeeeeesnnaeeeeeceeeeneeeaaees 6 3 Ein einfaches verteiltes System ROS93 2220000ssssssnnnnnnnnennssssnnnnnnnnnnnenen 7 4
91. aschine als Anwender stellvertretend auf dem Datenbankserver authentifizieren mu kann hier wenigstens ein Minimum an Sicherheit erreicht werden Server Maschine Klient SQL Server JAVA Server Datenbank ODBC API Datenbankserver Server Maschine SQL Server JAVA Server HTML Seite ididiin ARE LU Java Abb 33 3 Tier Anwendung unter JAVA Die JDBC API ist zur Zeit in der Testversion ffentlich verf gbar und war endg ltig f r Juni 1997 angek ndigt 4 2 4 CORBA als Softwarebasis f r JAVA In der vorgestellten Anwendung f hrt ein mit JAVA als Applet realisierter Klient einen Request auf einem vom IDL Compiler f r eine IDL Schnittstellendefinition generierten Stub aus Dieser Stub ist mit Hilfe des JavalDL Compilers erstellt worden der zur Zeit in einer fr hzeitigen Testversion alpha2 verf gbar ist Diese JAVA IDL bildet CORBA Objekte in JAVA Klassen ab Die so erstellten Stubs rufen den ORB Kern auf der festlegt welcher Transportmechanismus verwendet werden soll und welche Marshallingparameter Anwendung finden 79 Beispielentwicklung und implementierung JAVA Applets IDL Stub portabler ORB Kern DOOR NEO IIOP Transport Transport Transport CH gt d Java Server NEO Server andere ORB Abb 34 Der portable ORB Kern Der von SUN Microsystems vorgestellte portable ORB Kern Door ORB auf JAVA Basis unterst tzt verschiedene ORB Protokolle Das MarshalBuffer Objekt verwendet Date
92. ation des Object Request Brokers ORB in der CORBA Version 1 1 von 1991 Er ist die von der OMA vorgesehene universelle Middleware f r beliebige Objekte auf heterogenen verteilten Systemen Der entsprechende Standard wird als Common ORB Architecture CORBA bezeichnet CORBA isoliert den Klienten und damit den Entwickler von den verteilten heterogenen Eigenschaften von Informationssystemen Konzeptionell ist CORBA auf der Anwendungsschicht des OSI Modells angesiedelt MOV95 Folgende Vorteile bietet CORBA e Der Standard spezifiziert eine Schnittstelle f r Objekte die vom Betriebssystem und Program miersprachen unabh ngig ist e Aufgrund des hohen Abstraktionsgrades mu der Entwickler sich nicht mit den niederen Schichten des OSI Modells befassen wie dies zum Beispiel bei der Socket Programmierung erforderlich ist vgl Kapitel 2 3 3 33 Verarbeitung mit verteilten Objekten e Der Entwickler mu sich nicht mit der Lokation des Servers oder dessen Zustand der Aktivierung befassen e Der Entwickler mu sich nicht mit der Hardware oder dem Betriebssystem befassen auf dem der Server aktiv ist e Integrationsprobleme werden vereinfacht So mu zum Beispiel bei der bertragung von Informationen zwischen verschiedenen Systemen nicht auf die unterschiedlichen Darstellungen geachtet werden Im Rahmen dieser Arbeit sind ORBs als Basis f r JAVA von besonderem Interesse SUN Micro systems bietet ein solches Produkt un
93. auch Kapitel 2 3 4 ver ffentlicht werden Dies ist zwar eine starke Vereinfachung des Modells entspricht aber der Einfachheit der Sprache selbst und stellt damit gleichzeitig einen ihrer gr ten Vorz ge dar Im Rahmen der Internet und Intranet Weiterentwicklung von HTML wird die Sprache zwar von einigen Herstellern z B Mircosoft und Netscape propriet r erweitert und verliert dabei Teile ihrer Einfachheit bleibt aber eine brauchbare und praktikable Sprache Defizite stellt ein Entwickler zumeist nur in zwei Gebieten fest die Performanz in bestimmten Anwendungstypen und die F higkeit bestimmte h ufig verwendete Aufgaben zu programmieren HTML ist in seiner M chtigkeit eingeschr nkt Dies ist ein Entwurfsziel der Sprache welches die Ausf hrung von gef hrlichen Anwendungen auf Klientenmaschinen verhindert Leider werden die M glichkeiten von Internetanwendungen auf HTML Basis damit auch stark limitiert Aufgaben die nicht in HTML implementiert werden k nnen m ssen in einer anderen Sprache realisiert und auf dem Server ausgef hrt oder von dem Server geladen und auf dem Klientensystem ausgef hrt werden Diese erzwungene Segmentierung ist in den meisten F llen nicht optimal bez glich Performanz und Modellintegrit t und f hrt ihrerseits wieder zu einer Sicherheitsl cke Die eingeschr nkte Funktionalit t von HTML und der sich daraus ergebenden Verlagerung von Rechenleistung zum Server hat negative Auswirkungen auf die Perf
94. aus wurden so langsamere Mehrplatzsysteme oder Netzwerke direkt bei den einzelnen Anwendern installiert die in ihrer Summe sogar die Rechenleistung des Gro rechners bertrafen Grunds tzlich sind VS von ihrem Netzwerk unabh ngig zu betrachten da dieses lediglich als Basis f r die Kommunikation der einzelnen Komponenten des VS dient Ein solche Grundlage bietet zum Beispiel das Internet auf Basis des TCP IP Protokolls welches in dieser Arbeit Verwendung findet Dieses Protokoll entstand im Rahmen der Forschung am ARPANET Das Internet und Intranet Internet Protocol IP arbeitet auf der dritten Schicht des OSI Modells TAN97 mittels Datagrammen welche in jedem Paket eine vollst ndige Adressierung sowohl des Empf ngers als auch des Absenders beinhalten F r eine bersicht der Protokollschichten des IP Modells siehe auch HAL96 Dadurch entfallen komplexe Verbindungsoperationen wie zum Beispiel bei X 25 allerdings w chst die Gr e der Datenpakete aufgrund der Paketk pfe stark an Das Transmission Control Protocol TCP wird auf der vierten Schicht zur verbindungsorientierten Kommunikation im Internet verwendet und benutzt dazu den verbindungslosen IP Dienst Durch diese Kombination wird eine gesicherte Verbindung angeboten Als Alternative bietet das User Datagram Protocol UDP ein unsicheres und verbindungsloses Datagrammprotokoll an HER93 Eine IP Adresse ist eine 32bit Nummer die innerhalb einer admin
95. bei wird bewu t auf die bertragung von zus tzlichen Informationen wie die ID des ge nderten Datensatzes oder des ge nderten Datensatzes selbst verzichtet Bei der Operation auf engbandigen Netzen und bei hoher Dynamik der Datenbank ist die Gefahr von berh hter Netz last zu gro Bei einem blo en Ping mit der minimalen semantischen Bedeutung da ein Daten satz ver ndert wurde kann der Klient entscheiden ob und wie er als Reaktion auf diese Information aktiv werden mu M gliche Reaktionen sind Benachrichtigung des Anwenders oder Aktualisierung der lokal zwischengespeicherten Daten mit einem oder beliebig vielen Datens tzen an diese Stelle w rde ein Prefetching Algorithmus ansetzen Grunds tzlich ist noch zu kl ren warum auf der zweiten Schicht ein JAV A Server implementiert wird Das vorgestellte Modell w re erheblich einfacher ausgefallen wenn die Funktionalit t des JAVA Servers direkt in der MS Windows DLL implementiert worden w re Dar ber hinaus l uft 85 Beispielentwicklung und implementierung die DLL ohnehin nur auf WinNT Systemen da die unterst tzten Named Pipes zur IPC propriet r sind Eine Implementierung zum Beispiel in C oder Visual Basic w re also m glich Folgende Gr nde sprechen jedoch f r die gew hlte Vorgehensweise ROD97 Die Implementierung in JAVA ist schneller und einfacher Der JAVA Server ist portabel Die MS Windows spezifischen Teile der Implementierung k nnen dadur
96. bertragung von Methodenparametern e Schnittstellenbeschreibung ffentlich verf gbare Beschreibung der Schnittstellendefinition 14 Internet und Intranet e Dynamic Discovery Das dynamische Auffinden von Methodenservern e Dynamic Invocation Das dynamische Aufrufen von Methoden zur Laufzeit e Garbage Collection M glichkeit der automatischen und verteilten Speicherbereinigung e Zugangskontrolle Authentifizierung und Autorisation des Anwenders e Sicherheit Schutz der bertragenen Information vor Dritten 2 3 4 HTTP und CGI ISAPI In der Hierarchie des OSI Modells TAN97 operiert das Hypertext Transfer Protokoll HTTP ber Sockets Vor der Einf hrung neuer Middleware Technologien war die Kombina tion des HTTP und des Common Gateway Interface CGI das vorherrschende Modell f r die Konstruktion von 3 Tier Anwendungen im Internet HTTP T Berners Lee R T Fielding H Frystyk Nielsen wird seit 1990 im Internet verwendet Es spezifiziert wie statische Informationen zwischen einem Server und einem Klienten bergeben werden Dadurch wird also ein Format von Klientenanforderungen und Serverantworten definiert und eine RPC hnliche Semantik auf Basis von Sockets und TCP IP zur Verf gung gestellt Die erste ver ffentlichte Version 0 9 war ein einfaches Protokoll f r einen einfachen Datenzugriff mit einem sehr beschr nkten Befehlssatz Befehl Beschreibung GET Anfordern der durch eine URL spezifizierten Daten
97. biete von InterNIC verwaltet und unterteilt werden MOA96 e Organisatorische Dom nen sind durch einen 3 Zeichen Code bezeichnet der die Haupt funktion des Unternehmens darstellt COM EDU GOV INT MIL NET und ORG e Geographische Dom nen werden mit einem 2 Zeichen Code auf Basis des ISO 3166 Stan dards bezeichnet siehe z B http www eexpert com _gp_dng htm e Reverse Domain ist eine besondere Dom ne mit Bezeichnung in addr arpa die f r die Abbildung von IP Adressen auf Namen verwendet wird reverse name lookup WinNT Dom nen k nnen direkt auf DNS Server aufgesetzt und durch diese verwaltet werden Dadurch schafft man eine homogene Struktur f r Bezeichner sowohl auf Basis des Betriebs systems als auch auf der des Netzwerkes Diese Bezeichner k nnen unmittelbar durch den Namensdienst eines lightweight TCP IP ORB verwendet werden 3 2 3 1 2 Microsoft Interface Definition Language MIDL Das Gegenst ck zum DCE IDL ist die Microsoft Interface Definition Language MIDL In der Entwicklungsumgebung von MS RPC V2 0 wurde MIDL um die Attribute Anweisungen und Direktiven der Object Description Language ODL erweitert so da man mit Hilfe des MIDL Compilers auch Typenbibliotheken f r OLE Anwendungen erstellen Kann Grunds tzlich unter scheiden sich die beiden Sprachen zun chst im Namen ihrer Stub Compiler MIDL bietet dar ber hinaus eine marginal erweiterte Spezifikation Kann aber in eine
98. ch aber sehr hnliche Me werte ergaben Im folgenden Diagramm wird demnach dargestellt bei wievielen Operationen Transaktionen die Auswahl der Modelle zu einem gleichen Ergebnis f hrt Diese Break Even Analyse gibt also die Anzahl von sofort aufeinanderfolgenden Methodenaufrufen an f r welche die Verwendung der beiden Modelle indifferent ist F r sehr langsame Verbindungen empfiehlt sich der Einsatz von JavaIDL schon bei wenigen Aufrufen bei schnellen Verbindungen hat COM 100 Beispielentwicklung und implementierung deutliche Vorteile Bei der Ubertragungsgeschwindigkeit von 9600bps liegt der Break Even Wert bei ca 100 Aufrufen Die berechneten Werte ergeben sich aus folgender Vorschrift vgl dazu COL89 RIT Au Ota RTT Aufbaucom RTT XBreak Even T Transaktioncom RTT Transaktiony ap RTT Daraus ergibt sich die folgende Darstellung 4500 4000 Break Even 3500 3000 M a Q CH Transaktionen N oO Q CH 1500 1000 500 0 100 200 300 400 500 600 700 800 900 1000 ms Abb 42 Break Even Analyse der Transaktionszahlen Fiir COM ergibt sich dadurch bei 9600bps ein errechneter Grenzwert von 2 9 Transaktionen s bzw 120 aufeinanderfolgenden Transaktionen nach dem Verbindungsaufbau ab der diese Middlewareplattform nicht mehr eingesetzt werden sollte F r das JavalDL Modell betr gt der entsprechende Wert 1 8 Transaktionen s ab dem sich der Einsatz dieses
99. ch ist Aber auch in diesem Fall sind gute Entwurfsprinzipien wie Modularit t genaue Schnittstellenspezifikation und universelle Verwendbarkeit wichtig um eine sp tere Modifikation an der Anwendung leichter durchf hren zu k nnen und um die Fehlersuche zu vereinfachen Weiter f hrt die klare Definition der Komponentenschnittstellen zur Wiederverwendbarkeit der Bausteine und so zu schnellerer Amortisierung und besserer Sicherung des Entwicklungs aufwandes Berechnungs Informations einheit speicher Abb 2 Ein zentrales Systemmodell ROS93 Internet und Intranet 2 2 2 Verteilte Systeme Die einfachste M glichkeit ein System zu verteilen ist das System an den Schnittstellen seiner Komponenten aufzutrennen und damit den Aufgaben gem zu partitionieren So kann jede Kom ponente in der fiir sie optimalen Umgebung entwickelt und auch in einer solchen ausgefiihrt werden Zum Beispiel k nnen starke Inanspruchnahme durch Anwender oder hoher Rechenauf wand innerhalb einer Komponente zur der Entscheidung f hren eine bestimmte Komponente auf einem dedizierten System zu aktivieren Durch Verteilung k nnen also Flaschenh lse im System vermieden oder reduziert werden Informations Berechnungs speicher einheit GUI Berechnungs Informations ou einheit speicher Abb 3 Ein einfaches verteiltes System ROS93 Ein System hei t verteilt wenn sich seine Kompon
100. ch reduziert werden Auch kann bei der Implementierung von standardisierten IPCs oder von Sockets diese zweite Schicht auf einer separaten Maschine laufen und so die Verarbeitungslast von dem Datenbankserver nehmen Hier entf llt die Bindung an das MS Windows Betriebssystem Die Entscheidung f r die JavalDL f hrte automatisch zu einer Implementierung des Servers in JAVA da ein IOP Protokoll noch nicht implementiert ist 4 2 6 Bewertung der Implementierung Das hier vorgestellte Beispiel hat sich als sehr aufwendig in der Entwicklung herausgestellt Neben den Unzul nglichkeiten des hier verwendeten Door ORB wie sehr einfacher Namens dienst und fehlender Sicherungsdienst sind besonders folgende Schwachpunkte aufzuzeigen Durch den Einsatz von JAVA ist auch unter Verwendung von JavaIDL nur ein Verbindungsaufbau zum urspr nglichen WWW Server m glich Damit bietet diese L sung keine echte Plattform f r verteilte Objekte Der Standort des Servers ist durch das Sicherungskonzept von JAVA fest vorgegeben Die Vermittlung der CORBA Methodenaufrufe durch eine application level Firewall ist zwar durch die von SUN vorgeschlagene CGI L sung prinzipiell m glich an dieser Verbindungs stelle droht aber das Entstehen eines Flaschenhalses Jegliche Klienten Server Kommuni kation mu ber diesen sehr langsamen Stellvertretermechanismus abgewickelt werden Die dadurch entstehende potentielle Sicherheitsl cke in der Firewall mu analy
101. ch sind Es mu nur eine kleine Menge von Anwendungen administriert und auf ihre Sicherheit hin berwacht werden Dar ber hinaus k nnen bei diesen Gateways alle ein und ausgehenden Daten protokolliert werden Diesen Vorteil bieten paketfilternde Systeme nicht da hier schon vor einer m glichen Protokollierung Daten abgelehnt werden m ssen Eine Protokollierung auch dieser Daten w rde eine neue Sicherheitsl cke er ffnen und ist in der strikten Definition einer paket filternden Firewall auch nicht m glich H ufig werden zum Beispiel Mail Gateways als Application Level Gateways unabh ngig von anderen eingesetzten Technologien realisiert da dieses Vorgehen keine Manipulation am vorhandenen Mail System erfordert CHES94 Eine Konfiguration einer Middleware plattform wie z B CORBA und COM als Klient f r ein solches Gateway ist in einigen F llen m glich auf die im weiteren noch eingegangen wird 3 Circuit Level Gateways Diese Gateways basieren direkt auf TCP Verbindungen Ein Anrufender verbindet sich mit einem TCP Port auf dem Gateway dieses stellt wiederum eine Verbindung zu einem anderen TCP Port auf der anderen Seite der Firewall her und vermittelt den Datenstrom so durch die Firewall die wie ein Verbindungskabel circuit agiert In diesem Vermittlungsverfahren wird in der Regel der Datenstrom selbst nicht observiert CHES94 Gerade Middlewareplatt formen auf Basis von TCP IP wie in der Beispielimplementierung vorg
102. chen wie COBOL C und C Das Ergebnis war JAVA eine sehr schnelle kleine verl liche Sprache die auf einer Vielzahl von Maschinenplattformen lauff hig ist Um 1993 wurde das Internet als textbasiertes Informationssystem durch das WWW um eine GUI erweitert Das mittlerweile vergr erte JAVA Team entdeckte da eine plattformunabh ngige Programmiersprache wie JAVA die ideale Sprache w re um Anwendungen f r das Internet zu 70 Beispielentwicklung und implementierung programmieren Das Ergebnis war der erste WWW Browser namens WebRunner der vollst ndig in JAVA geschrieben war und sp ter aus Gr nden des Urheberrechts in HotJava umbenannt wurde vgl http java sun com products hotjava 1 1 index htm Die ffentliche Bekanntgabe der JAVA Technologie fand auf der SUN Microsystems World Konferenz in San Francisco im Mai 1995 statt Dort gab Netscape bekannt da auch Navigator 2 0 der am meisten verbreitete Browser JAVA unterst tzen wird Das JAVA Entwickler Team umfa t mittlerweile Knapp 20 Personen und arbeitet weiter an der Verbesserung der Sprache 4 2 1 1 Eigenschaften Die Eigenschaften von JAVA und die damit verbundenen Vorteile gegen ber anderen objekt orientierten Programmiersprachen wie z B C und Visual Basic auf die Objektorientierung von Visual Basic wird im folgenden noch eingegangen lassen sich wie folgt zusammenfassen JAVA ist einfach und klein JAVA stammt in seinen Urspr ngen von C und C ab
103. cheres Netzwerk wie das Internet bringt die Frage nach der Sicherheit solcher Komponenten auf W hrend JAVA den Ansatz der inh renten Sicherheit der Sprache selbst durch das Sandbox Verfahren verfolgt geht ActiveX den Weg ber Vertrauen Hier ist nicht das blinde Vertrauen gemeint sondern das durch das vorgestellte Sicherheitsmodell definierte Vertrauen vgl Kapitel 2 4 2 4 als Grundlage von Sicherheit und Akzeptanz Das Erlangen von Vertrauen ist das Ziel des Windows Trust Verification Dienstes Mittels einer einzigen Methode WinVeryTrust kann ein Anwender durch diesen Dienst einen oder mehrere Trust Provider befragen ein Trust Provider kann die Antwort auf die Frage geben ob einer Komponente unter vorgegebenen Kriterien vertraut werden kann Genauer wird Auskunft dar ber gegeben wer diese Komponente erstellt hat und ob diese Person oder Institution vertrauensw rdig ist Zus tzlich wird sichergestellt da die Komponente nach der Erstellung nicht ver ndert worden ist Eine Komponente die durch einen Komponentencontainer hier einen Browser geladen wird kann digital signiert werden Diese digitale Signatur ist ein Byte String der verwendet werden kann um die Herkunft der Komponente zu bestimmen Der Windows Software Publishing Trust Provider also die Instanz welche die Signaturen verwaltet verwendet daf r PKCS 7 und X 509 V3 Zertifikate BRU97 Der zugrundeliegende Vorgang verl uft wie folgt Das System extrahier
104. ctIngNext RpcNsGroupDelete RpcNsGroupMbrAdd RpcNsGroupMbrInqBegin RpcNsGroupMbrIngDone RpcNsGroupMbrIngNext RpcNsGroupMbrRemove RpcNsMgmtBindingUnexport RpcNsMgmtEntryCreate RpcNsMgmtEntryDelete RpcNsMgmtEntryIngIflds RpcNsMgmtHandleSetExpAge RpcNsMgmtIngExpAge RpcNsMgmtSetExpAge RpcNsProfileDelete RpeNsProfileEltAdd RpcNsProfileEltIngBegin RpcNsProfileEltIngDone RpcNsProfileEltIngNext RpcNsProfileEltRemove RpcObjectIngType RpcObjectsetIngFn RpcObjectSetType RpcProtseqVectorFree 2 3 DCE Funktionsname nicht unterstiitzt nicht unterstiitzt rpc_server_ing_bindings rpc_server_inq_if rpc_server_listen rpc_server_register_auth_info rpc_server_register_if rpc_server_unregister_if rpc_server_use_all_protseqs rpc_server_use_all_protseqs_if rpc_server_use_protseq rpc_server_use_protseq_ep rpc_server_use_protseq_if rpc_ss_allocate rpc_ss_destroy_client_context rpc_ss_disable_allocate nicht unterstiitzt rpc_ss_enable_allocate rpc_ss_free rpc_ss_get_thread_handle rpc_ss_register_auth_info rpc_ss_set_client_alloc_free rpc_ss_set_thread_handle rpc_ss_swap_client_alloc_free rpc_string_ binding compose rpc_string_binding_parse rpc_string_ free nicht unterstiitzt nicht unterstiitzt nicht unterstiitzt nicht unterstiitzt nicth unterstiitzt uuid_compare uuid_create uuid_crate_nil uuid_equal uuid_from_string uuid_hash uuid_is_n
105. dabei auf die technischen Voraussetzungen der Infrastruktur des Auftraggebers der Arbeit gelegt Weiter werden die unterschiedlichen Anforderungen durch die Verteilung von Objekten in Internet und Intranetarchitekturen untersucht eine Differenzierung vorgenommen und die Leistungsf higkeit der Systeme auf den engbandigen bertragungskan len des Internets eruiert Die exemplarisch zu erstellende Klienten Serveranwendung auf Basis von verteilten Objekten soll in einem verteilten offenem System Informationszugriff und verarbeitung erlauben um so die M glichkeiten des Einsatzes im allgemeinen und f r die GTZ im besonderen bewerten zu k nnen Eine solche Aufgabenstellung wird auch eine analytische Betrachtung von verteilten Objekten auf TCP IP basierten Netzen unabh ngig von deren Einsatz in Datenbankanwendungen erm glichen Im Rahmen dieser Betrachtung stehen vor allem Verf gbarkeit Leistungsf higkeit und Sicherheit der Modelle im Vordergrund Diese zu realisierende Anwendung besteht grunds tzlich aus zwei Komponenten 1 Eine Serveranwendung greift ber eine Schnittstelle auf beliebige Datenbanken zu und stellt die enthaltenen Informationen ber eine definierte Schnittstelle zur Verf gung Hierbei soll die Struktur der Datenbank nicht vorgegeben sondern von der Anwendung erkannt und weiterverarbeitet werden k nnen Auf diesem Weg sollen Datenbanken auf verschiedenen Systemen als unternehmensweite Datenbasis zur Verf gung gestellt
106. den Unterschieden einzelner Sicherungsprotokolle isoliert Anwendungsschnittstellen h herer Ebene die durch authentifizierte RPC und COM angeboten werden bieten einen hohen Abstraktionsgrad so da Sicherungsdienste auf Basis von Schnittstellenparameter verwendet werden k nnen Die WinNT Sicherheitsinfrastruktur unterst tzt die drei wichtigsten Sicherheitsprotokolle SIN97 e Das WinNT LAN Manager NTLM Authentifizierungsprotokoll wird von WinNT 4 0 und fr heren Versionen verwendet NTLM wird auch weiterhin von Microsoft unterst tzt werden und wird f r eine pass through Netzwerkauthentifizierung entfernten Dateizugriffen und f r authentifizierte RPCs unter fr heren Version von WinNT verwendet e Das Kerberos V5 Authentifizierungsprotokoll ersetzt NTLM als das vorrangige Sicherungs protokoll f r den Zugriff auf Ressourcen innerhalb und zwischen WinNT Dom nen Dieses Protokoll ist ein gereifter Industriestandard Einige Vorteile sind wechselseitige Authenti fizierung von sowohl Klienten als auch Server reduzierte Serverlast w hrend des Ver bindungsaufbaus und die Unterst tzung von Delegation und Autorisation von Klienten an Server unter Verwendung von Stellvertretermechanismen e Die Distributed Password Authentication DPA ist das gemeinsame Authentifizierungs protokoll welches von den gr ten Internet Mitgliederorganisationen wie MSN und CompuServe verwendet wird Es hat insbesondere den Vorteil da Anwender
107. den kann Importierter Code kann nicht ausf hrt werden Nach der berpr fung sind folgende wichtige Eigenschaften des Codes bekannt BRU96 e Der Code erzeugt keinen Operanden ber oder unterlauf e Die Typen der Parameter aller Anweisungen im Bytecode sind immer korrekt e Keine illegalen Datenkonvertierungen haben stattgefunden e Zugriffe auf die Objektfelder sind legal privat ffentlich oder gesch tzt Nachdem der Verifier den Bytecode berpr ft und freigegeben hat bergibt er diesen in der dritten Schicht an den Class Loader Dieser unterteilt alle Klassen in lokale und externe Klassen Erstere wie zum Beispiel die VM selbst residieren auf dem lokalen Dateisystem des Klienten letztere m ssen ber das Netzwerk geladen werden Alle lokale Klassen erhalten dabei einen gemeinsamen Namensraum w hrend alle externen Klassen einen getrennten Namensraum zugewiesen bekommen Dadurch wird verhindert da beide Klassentypen im Namensraum Schnittmengen bilden und sich so gegenseitig manipulieren Durch diese Bevorzugung der lokalen Klassen wird verhindert da eine externe Klasse eine eingebaute Klasse berschreibt Abschlie end wird in der vierten Sicherungsschicht durch den Security Manager das Dateisystem des Klienten vor Zugriff durch das Applet gesch tzt ortsabh ngige Behandlung von Klassen unterbunden und die Kommunikation ber Socket Verbindungen berwacht Die Methoden der Klasse java lang SecurityManager implementi
108. denden Schutzmechanismen also eine vorrangige Bedeutung Die vermeidenden Schutzmechanismen haben die Aufgabe ein bedrohliches Ereignis nicht entstehen zu lassen d h der Angriffsversuch selbst kann zwar nicht unterbunden sein Scheitern aber mit hoher Wahrscheinlichkeit herbeigefiihrt werden Folgende Mechanismen finden besonders bei der Anwendung im Internet Einsatz e Zutrittsschutz kein Unbefugter soll sich einem System ann hern k nnen e Zugangsschutz kein Unbefugter soll ein System benutzen k nnen e Zugriffsschutz sch tzt Daten in einem System vor Manipulationen durch ein Programm e bertragungsschutz Vermeidung der bertragung manipulierter Daten Die Subjekt Objekt Beziehung wird in der folgenden Tabelle verdeutlicht 24 Internet und Intranet Ma nahme Anforderung Zutrittsschutz Raum Person Betreten Zugangsschutz System Person Anmelden Zugriffsschutz Datei Programm ffnen bertragungsschutz Empf nger Sender Daten bertragung Tab 7 Vermeidende Schutzmechanismen Es ist klar da die Verantwortung f r die Durchf hrung der Schutzmechanismen sinnvollerweise bei dem Objekt liegt Aktionen des Subjektes lassen sich unabh ngig von der Motivation nicht beeinflussen Im Rahmen des verwendeten Grundmodells lassen sich leicht die folgende Aufgaben f r das Objekt identifizieren 1 Identifizierung Ist der Subjektname ein korrekter Identifikator des Subjektes 2 Authentifizierung Beweis der Identit t des Subjek
109. ders ein Aspekt hervorzuheben Im Gegensatz zu einer Inkorporation der JOBC API im Klienten die eine Installation einer ODBC Schnittstelle voraussetzen w rde stellt dieser Ansatz keine Bedingungen an das Klientensystem Es mu lokal also auf dem System auf welchem der Browser mit dem JAN A Applet l uft kein ODBC Treiber installiert sein Eine solche Forderung w rde ohnehin den gro en Vorteil der Plattformunabh ngigkeit zunichte machen Die Bereit stellung der ODBC Schnittstellendefinition ber Microsoft propriet re Win32 APls ist mit den beschr nkten Mitteln eines JAV A Applets ohnehin nicht m glich Das eingegebene Pa wort wird bei Verwendung des Door ORBs in Klartext bertragen Eine Alternative w rde zum Beispiel eine Kombination der Produkte OrbixWeb und OrbixSecurity bieten Diese kommerzielle L sung w rde die Datenkommunikation zwischen dem JAV A Klienten und dem Server sch tzen Zum anderen mu der Klient Informationen ber Ver nderungen am Datenbestand vom JAVA Server weitergereicht bekommen Da der Door ORB wie auch die ORBIX Produktserie keinen Ereignisdienst zur Verf gung stellt wird hier ein Trick angewandt Der JAVA Klient fungiert seinerseits als CORBA Server und ver ffentlicht dabei eine einzelne Ping Methode Diese Methode kann vom JAVA Server der jetzt die Rolle des Klienten bernimmt aufgerufen werden In der obigen Abbildung Abb 35 ist dieser Aufruf als TriggerEvent abgebildet Da
110. dung aufgebaut Diese Verbindung kann auch f r die Kommunikation mit anderen Objekten auf demselben Host benutzt werden Das IIOP Modell basiert dabei auf zwei Nachrichtentypen Der Klient sendet einen Request auf den der Server mit einem Reply reagiert Weitere Nachrichten behandeln Time outs Zeit berschreitungen und unerwartete Fehler Exceptions Um dieses Protokoll durch eine Firewall zur f hren sind zus tzliche Produkte wie zum Beispiel ORBIX WonderWall der Firma IONA notwendig Analog zu paketfilternden Gateways analy sieren und filtern solche Produkte eingehende Requests auf Basis folgender Informationen aus dem Nachrichtenkopf IONA197 e Nachrichtentyp e IP Adresse des Klienten e Objektschl ssel des angeforderten Objekts e Name der aufgerufenen Methode e Dem Principal der den Klienten aufgerufen hat e Beliebigen IOP Service Kontexten Der K rper der Nachricht selbst kann ohne Kenntnis der IDL nicht gefiltert werden 3 2 2 Distributed Computing Environment DCE 3 2 2 1 Einf hrung Wie bereits verdeutlicht wurde bildet das Komponentenmodell COM der Firma Microsoft die einzige Konkurrenz zum CORBA Modell beim Einsatz ber das Internet Microsoft hat sein Modell stark an das Distributed Computing Environment DCE angelehnt Eine genaue Untersuchung dieses Modells bietet sich also an und stellt die Grundlage f r die sich anschlie enden Besprechung von WinNT als Plattform f r COM dar Dabei m ssen dann nur
111. e Menge von Ports der tats chlich auf einer Maschine laufenden Komponente zu ein Port pro Proze e Application level Proxies k nnen einfach erstellt werden Diese M glichkeit kann entweder generisch durch Weiterleitung konfigurierbarer DCOM Aktivierungen und Methodenaufrufe oder anwendungsspezifisch entwickelt werden e DCOM kann wenn unbedingt n tig auch durch HTTP getunnelt werden Dadurch k nnen alle Einschr nkungen von Firewalls umgangen werden wenn nicht aktive Filter verwendet werden Diese Optionen bieten die sichere Verbindung von DCOM Komponenten ber die Grenzen eines Intranets hinaus an Sowohl protocol level als auch application level Gateways k nnen ber br ckt werden Durch den Verzicht auf die Verwendung von VPN eignet sich das Modell ausgesprochen gut f r den kombinierten Einsatz im Intra und Internet 3 2 4 Vergleich von COM und CORBA 3 2 4 1 bersicht COM und CORBA bieten Kommunikation im Klient Server Modell an Um einen Dienst eines Servers in Anspruch zu nehmen wird vom Klienten eine Methode auf dem entfernten Objekt aufgerufen das als Server im Klient Server Modell agiert Der Dienst des Servers ist in einem Objekt ber eine Schnittstelle bzw ein Interface implementiert das konform zu einer M IDL ist Die IDL ist also in beiden Systemen der grundlegende Vertrag zwischen Klient und Server CORBA unterst tzt dabei im Gegensatz zu COM neben Verschachtelung Polymorphismus und einfacher V
112. echen nicht aber die offizielle berpr fung unterzogen wurden Die einzelnen Klassen bauen von den Anforderungen jeweils aufeinander auf Klasse Beschreibung keine Die Anforderungen der Klassen A B oder C werden nicht erf llt Cl Discretionary Security Protection C2 Controlled Access Protection Bl Labeled Security Protection B2 Structured Protection B3 Security Domains Al Verified Design A 2 Verified Implementation Tab 8 Klassen des Orange Book C2 wird hier als Minimalanforderung fiir einen sicheren Host eingestuft Ein genaue Beschrei bung der einzelnen Klassen findet sich in BRU97 und DOD85 Trotz dieser hohen Anforderungen werden in der Realit t auch auf die Al kompatiblen Systeme keine hoch sensitiven Daten abgelegt wenn unbekannte Anwender potentiellen Zugriff haben CHES94 Weiter ist nach Definition ein Netzwerkcomputer nicht isoliert Damit vertrauen ihm zwangs laufig auch andere verbundene Systeme Hat ein Anwender eine Kennung mit ausreichenden Berechtigungen erlangt kann er auf andere Systeme tibergreifen Allein die Sicherung des Host ist also nicht ausreichend da ein Einbruch hier ein untragbares Risiko mit erheblichen Folgerisiken birgt Aufgrund des gegenseitigen Vertrauens der Computer mu ein Unternehmensnetz als Ganzes gesch tzt werden 2 4 3 2 Firewall Gateways Der Schutz eines Teilnetzes vor unbekannten fremden Anwendern ist also ratsam Eine M glichkeit hierf r bietet eine Fire
113. eich der Middleware uuu essen XV 46 Versuchsaufbau f r Performanzvergleich von RDO und JDBC ODEC XVII Verteilte Objekte im Intranet und Internet Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Verteilte Objekte im Intranet und Internet Tabellenverzeichnis 1 Eigenschaften von Sockets ORF97 0 0 0 eceeeesssecccceeeeeeeenneeeeeeeeeeeeeenaaeeeeeeeeeeeeeeaaees 14 2 HTTP Methoden f r Klienten COO96 200 00 cecccccccccccsssseeseeeceeeeeaaeseeeeceseeeeaaaaens 15 3 Eigenschaften von CGI HTTP ORF97 und HTTBIS ADR 17 4 Eigenschaften von RMI IORPOTL cece cceeneceeeeeeeeeeeennaeeeeeeeeeeeeeenaaeeeeenseeeeeeeaaaes 19 3 Bedrohungsartens pno a ee ee ed ges 22 6 Sicherheitsstrategien und ma nahmen c ee eeeseeeceesseceeeeeneeecessaeeeceesnaeesesseaeees 24 7 Vermeidende Schutzmechanismen 0 ascent eo tant ann Paves nets 25 8 Klassen des Orange Book 27 9 Implementierungen der CORBA 2 0 Spezifikation durch IONA nun 38 10 Namenskonvention f r MS RPC API Funktionen sssssnenesnnnnnnnnene 49 11 Eigenschaften von DCOM ORF97 nennen 63 12 Zusammenfassung von Bezeichnungen und Entit ten in COM u CORBA CHU97 68 13 Sind JAVA und ActiveX vergleichbar 69 14 Unterschiede von JDBC und ODBC nennen 77 15 Konformit
114. einer Zelle und von der H ufigkeit des Zugriffs auf diese Ressourcen durch die Anwender einer Zelle determiniert Die Abbildung eines LAN Segmentes auf eine Zelle ist nicht erforderlich aber m glich Die Segmentierung erfolgt eher durch gemeinsame Ziele und aus berlegungen der Lastverteilung In der praktischen Anwendung werden DCE Zellen aber oft durch LAN Segmente charakterisiert 3 2 2 3 DCE Interface Definition Language IDL In monolithischen Anwendungen k nnen direkte Prozeduraufrufe auf vordefinierte und statische Prozeduren innerhalb der Anwendung erfolgen Die Prozeduren interpretieren die bergebenen Daten korrekt da durch den gemeinsamen Adre raum alle Definitionen zur Verf gung stehen In verteilten Systemen liegt diese homogene Umgebung nicht vor und Klienten und Server m ssen sich ber die Definition von Datentypen und Deklarationen von Prozeduren verst ndigen Weiter wird eine Methode ben tigt um systembedingte Unterschiede z B in der L nge von Variablen zu maskieren Diese bereinkunft wird wie auch in der CORBA Spezifikation ber IDL erm glicht Beide Seiten verwenden diesen Schnittstellenvertrag um gegenseitig Daten vern nftig interpretieren zu k nnen Um eine Schnittstellendefinition eindeutig zu gestalten erm glicht das Werkzeug uuidgen die Generierung von global eindeutigen Bezeichnern Obwohl der Sprachumfang und die Syntax hier nicht n her besprochen werden siehe dazu ROS932 soll a
115. ellt eine Vielzahl von Mechanismen zur Datenanbindung fiir den Entwickler zur Verf gung F r den direkten Zugriff auf ODBC Datenquellen kommen Data Access Object DAO und Remote Data Object RDO in Frage Der direkte und komplizierte Zugriff auf die ODBC API kann dadurch umgangen werden Die folgende Abbildung verdeutlicht diesen Zusammenhang Auf die Implementierung einer VBSQL Schnittstelle wird verzichtet da diese eine Abh ngigkeit zum MS SQL Server schaffen w rde Ein Einsatz von anderen ODBC Datenbanken w re so nicht m glich Informationen zu diesem Thema finden sich unter http www microsoft com vbasic und http www microsoft com odbc 90 Beispielentwicklung und implementierung Visual Basic 5 0 Enterprise RermoteData Control f Data Access Objects JET i ODBC VBSQL r e ISAM Dateanbanken Paradox FoxPro ODBC Datenquellen DBase usw z B Oracle usw Remote Data Object Bound Data Controls DAO RDO ODBC API MS Access Datenbanken SQL Server Abb 36 Optionen des VB5 0 Datenzugriffmodells Die Verwendung der ODBC API hat einen erheblichen Aufwand f r die Implementierung zur Folge der nicht mit einem direkten Gewinn an Performanz verbunden ist Aus diesem Grund ist eine solche Implementierung f r Standardaufgaben nicht sinnvoll Die beiden verbleibenden Alternativen werden im folgenden vorgestell
116. en Class Factories von CORBA und dem Unknown Interface von COM Im COM kann f r die Instantiierung eines Objektes zun chst entweder ein Moniker oder die ROT verwendet werden Optional k nnen dar ber hinaus Class Factories verwendet werden Ein Serverobjekt kann CoRegisterClassObjekt aufrufen um einen Interface zeiger zu ver ffentlichen der wiederum durch den Aufruf von CoGetClassObject vom Klienten abgerufen werden kann Wichtig dabei ist da der Aufruf von CoCreatelnstance nicht zwangsl ufig ein neues Objekt instantiiert In der Methode IClassFactory CreateInstance kann ein Server festlegen da immer der gleiche Interfacezeiger zur ckgegeben wird So k nnen unterschiedliche Klienten auf die gleiche Objektinstanz in einem bestimmten Zustand zugreifen CHU97 In CORBA wird ein Objekt durch Aufruf einer Methode auf einer bestehenden Objektreferenz aktiviert Einige Implementierungen bieten wie auch zum Beispiel JavalDL eine explizite bind org omg CosNaming Binding Operation an um ein Serverobjekt zu aktivieren und dessen Referenz zu erhalten Der Klient kann eine bestehende Instanz eines Objektes oder ein neues Objekt referenzieren Zu jeder Zeit kann der Klient eine Objektreferenz durch 66 Verarbeitung mit verteilten Objekten objekt_to_string speichern und sp ter wieder durch string_to_objekt zur ckkonvertieren Ein weiterer interessanter Unterschied liegt in der Fehlerbehandlung CORBA biet
117. en Einflu faktoren k nnen vor allem die pers nliche Einsch tzung des potentiellen Risikos und der damit verbunden Folgen aber auch die Bewertung der Vorteile die durch Akzeptanz des Risikos resultieren sein COL89 28 Gi a IBM Netscape Communications Corporation Oracle und Sun Microsystems 110 Auswertung und Ausblick auf weitere Entwicklungen InternetExplorer am Ende des n chsten Jahres als Monopolist etabliert hat zumindest zu bezweifeln Zuletzt wird die Entwicklung der Datenbankschnittstellen ein interessanter Aspekt bleiben Auf der Seite von JAVA mu sich die JDBC Schnittstelle noch durchsetzten Obwohl einige Daten bankbetreiber unter der F hrung von ORACLE entsprechende Treiber angek ndigt haben steht und f llt der Erfolg von JAVA mit deren Realisierung Im Umfeld von MS Visual Basic und COM verspricht die Einf hrung von ODBCDirect DOB97 die Vorteile des RDO zu realisieren ohne da eine nderung an bestehenden auf DAO basierenden Anwendungen erforderlich wird Dies wird ein entscheidender Vorteil gegen ber dem RDO sein Ohne Einbu en bei der Leistungsf higkeit in der Schnittstelle zwischen Anwendung und Datenbank bekommt so der Ruf nach Wiederverwendbarkeit auch f r bestehende OLE Komponenten eine neue Bedeutung Auf der Professional Developers Conference 1997 in San Diego hat Microsoft die Erweiterung COM angek ndigt COM basiert auf den integrierten Diensten und Merkmalen von COM und erleic
118. en nicht das Vertrauen in ActiveX als offenen Standard Schon allein die Tatsache da COM auf Teilen der Win32 API basiert wird die Portierung auf andere Plattformen erheblich erschweren Dagegen ist CORBA auf 32 bit MS Windows Systemen nahezu allen UNIX Versionen OS 2 OS 400 MacOS VME MVS VMS und einer Zahl von Echtzeit Betriebssystemen verf gbar Der Standard f r DCOM selbst steht erst seit dem 4 Quartal 1996 der ffentlichkeit zur Verf gung und die ActiveX Unterst tzung von C wurde erst in der Version 5 0 von MS C komplettiert Der CORBA 2 0 Standard besteht dagegen abschlie end seit Dezember 1994 OMG96 Beide Middlewareplattformen zeigen im Methodenaufruf eine hnliche Performanz was auch in anderen Me reihen ORF97 ermittelt wurde Konzeptionell ist das CORBA Modell sauberer da es direkt von der klassischen Objektdefinition hergeleitet ist CORBA Objekte haben eine ein deutige und persistente Referenz und einen Zustand Dagegen kann auf eine COM Komponente in einem bestimmten Zustand nach einem Verbindungsabbruch nicht wieder aufgesetzt werden Die im Zustand enthaltene Information geht verloren ORF97 Kritik ist auch am System der Zeiger auf zustandslose Interfaces zu ben die selbst wieder ber persistente COM Komponenten Moniker vgl Kapitel 3 2 3 2 2 4 realisiert werden Letztlich hat Mircosoft selbst kaum ein Interesse an einer plattform bergreifenden Kommunikation zwischen Middleware plattformen Das HOP i
119. en und Server pro Zelle e sichere Authentifizierung von Klienten und Server e Nachrichtensicherheit integrit t und geheimhaltung ber nicht vertrauensw rdige Netzwerke e ACLs die es Servern erm glichen autorisierten Zugriff auf ihre Ressourcen zu gestatten e Sicherheitsdienste und Administration sind von denen anderer Zellen isoliert Der Authentifizierungsmechanismus von DCE basiert auf dem Kerberos Authentifizierungs modell BRU97 welches im Massachusetts Institute of Technology MIT in den sp ten 80er Jahren entwickelt wurde und 1993 als Request for Comment RFC 1510 RFC 1510 spezi fiziert wurde Die Grundannahme des Modells besteht darin da dem zugrundeliegenden Netz werk nicht vertraut werden kann Es verwendet eine Kombination von geheimen Schl sseln um wechselseitige Authentifizierung von Klienten und Server zu erm glichen Die DCE Authentifizierung basiert auf folgenden Einzelannahmen BRU97 e Ubertragene Informationspakete werden falls nicht verschl sselt abgeh rt Im Klartext ber tragene Pa w rter k nnen erkannt und geheime Pa w rter entdeckt werden e Informationspakete die Authentifizierungsinformationen tragen k nnen abgefangen unter sucht und zu einem sp teren Zeitpunkt wiederholt werden e Netzwerkadressen kann nicht vertraut werden weder IP noch MAC Adressen e Sowohl Klienten als auch Server m ssen authentifiziert werden Der Proze der Authentifizierung verwend
120. enden Tabelle werden die einzelnen Typen erl utert und Unterschiede dargestellt ROS932 IDL Typen MIDL Typen Erl uterung Datentypen boolean boolean byte byte void void void void handle_t oder handle_t oder Beide Bezeichner sind jeweils rpc_binding_handle RPC_HANDLE quivalent Die handle_t Bezeichner werden nur wegen Abw rtskompatibilit t gehalten error_status_t error_status_t DCE konvertiert error_status_t zu dem host eigenen Fehler statusformat WinNT konvertiert error_status_t Argumente anhand von winerror h Integer small small short short long long int hyper hyper wird nach MIDL V1 0 unterst tzt unsigned small unsigned small unsigned short unsigned short unsigned long unsigned long unsigned hyper Keine Unterstiitzung unter MIDL wchar_t Keine Unterst tzung unter IDL Floating Point float float double double Internation Charachters ISO_LATIN_1 Obwohl MIDL diese ISO_UCS Charachtersets nicht unterstiitzt ISO_MULTI_LINGUAL kann man ber wchar_t UNICODE emulieren Tab 28 Unterschiede in der IDL bei OSF DCE und MS DCE Die aktuelle Version 4 0 Win32 SDK von Microsoft hat an dieser Stelle einen Fehler Die Typendefinition des TCHAR_T sollte aus der Datei WT YPES IDL entfernt werden um nicht mit WCHAR_T verwechselt zu werden auch wenn UNICODE nicht verwendet wird MSKB973 XXII Auswertung und Ausblick auf weitere Entwicklungen Anhang F Inhalt der Disketten im Anhang
121. ente Namensgebung und Objektreferenzen Sicherheit auf Transportebene und die Transaktionsunterst tzung Vor allem ist RMI aber propriet r hat somit auch kein sprachneutrales bertragungsprotokoll und ist in der Implementierung auf JAVA fixiert Weiter ist es neu nicht etabliert und selbst nicht standardisiert Als Basis f r eine Plattform f r verteilte Objekte in einem Unternehmen sind die vorgestellten Technologien damit unzul nglich 2 4 Sicherheit 2 4 1 Sicherheit in verteilten Systemen Vor dem Aufkommen verteilter Systeme waren Daten und Programme auf einem System konzentriert Dieses konnte leicht gegen verschiedenste Gefahren gesch tzt werden indem die unmittelbare Umgebung gesichert wurde VS lassen sich dagegen nicht derartig sch tzen Ver gleicht man jedes Teilsystem innerhalb eines VS mit einer Insel mu sowohl die Insel selbst also auch die Kommunikation zwischen den Inseln gesichert werden Weiter m ssen sich die Inseln gegenseitig vertrauen um miteinander kommunizieren zu k nnen Bevor man sich aber Gedanken ber die Sicherung eines VS macht mu man sich die Frage nach dem Sinn und Aufwand der Sicherung stellen Die Industrie ist dabei die Vorteile von VS wie Kostenreduktion Distribution von Angriffspunkten Kommunikation etc zu erkennen und damit diese Systeme auch einzuf hren Damit ist die Sicherheit von VS weniger eine technische als eine 20 Internet und Intranet wirtschaftliche Frage die sich v
122. enten an r umlich getrennten Stellen befinden k nnen hierdurch aber die Funktionalit t des Gesamtsystems nicht beein tr chtigt wird HER93 Solche verteilten Systeme VS sind gegen ber monolithischen Systemen stabiler gegen Ausf lle leichter zu skalieren und flexibler fordern aber Verantwortung und Kompetenz am Arbeitsplatz da sie schwerer zu administrieren sind F r die Informatik stellen VS vielf ltige Herausforderungen in Bereichen der parallelen Verarbeitung Beschreibung Synchronisation Sicherung und Gew hrleistung der Zuverl ssigkeit dar HER93 Unter Umst nden kann es auch sinnvoll sein eine Komponente selbst auf verschiedene Systeme zu verteilen Dieser Ansatz erm glicht eine besondere Form des Zusammenwirkens zwischen den einzelnen Teilsystemen die in zentralen also nicht verteilten Umgebungen nicht erreichbar w re Es ist klarzustellen da die Verteilung eines Systems immer einen erh hten Kommunikationsauf wand zwischen den Komponenten nach sich zieht der in einem zentralen System so nicht auf treten w rde Die strategische Entscheidung f r oder gegen den Einsatz eines VS kann also nur gekoppelt an eine berlegung zur Kommunikationsstruktur in diesem System erfolgen Das Kom munikationssystem kann schnell zum Flaschenhals werden und damit Vorteile der Verteilung egalisieren 2 2 3 Das Klient Server Modell Verteilte Systeme folgen zumeist dem Klient Server Modell dessen Definition stark von
123. eq ls boolean r_updateCurrentRecord inout stringSeq 1s boolean r_login in string iurl in string iusr in string iwd boolean r_createRecordSet in string iurl in string iusr in string iwd in string isql boolean r_destroyRecordSet string r_getNextRecord boolean r_next unsigned long r_md_getColumnCount unsigned long r_md_getColumnDisplaySize in unsigned long icol string r_md_getColumnName in unsigned long icol Dabei werden die Datens tze als Sequenzen von Strings bergeben Die Datenstruktur selbst wird dabei nicht ber cksichtigt eine entsprechende Implementierung w re aber ohne gro en Aufwand m glich Problematisch ist die bergabe von deutschen Umlauten ber den ORB Transportdienst im Gegensatz zu JAVA BRU96 Dieser kann nur ASCII Zeichen bertragen eine entsprechende Umwandlung und Fehlerpr fung findet in der Simple Jdbc Klasse statt Bei der Implementierung der RemoteRecordSet Klasse wurde insbesondere darauf geachtet da die Eigenheiten der Programmierung der JOBC ODBC Br cke transparent werden Weiter bieten die implementierten Methoden eine hnliche Basisfunktionalit t wie die Komponenten f r den Datenzugriff unter Visual Basic Damit ist ein direkter Vergleich in dieser Arbeit m glich auch wenn auf die Implementierung komplexer Routinen z B Offline Cache verzichtet wurde Bei diesem Vorgehen ist neben den bekannten Vorteilen einer verteilten Implementierung beson
124. er Anbindung von Klienten in einem Public Switched Telephone Network PSTN an einen Einwahl oder Remote Access Server RAS Die Basis des VPN bildet der offene Standard des Point To Point Tunnelling Protocol PPTP PPTP ist eine neue Netzwerktechnologie die Multiprotokoll VPN unterst tzt Im Juni 1996 wurde auf der Internet Engineering Task Force IETF Versammlung in Montreal das PPTP als Internet Draft Standard vorgestellt Die technische Spezifikation von PPTP ist jetzt aktualisiert und als IETF Internet Draft ffentlich verf gbar DRAFT962 Ein VPN kann als die F higkeit einen Tunnel durch das Internet und andere ffentliche Netz werke zu ffnen beschrieben werden so da die Sicherheitsumgebung des Intranets durch diesen Tunnel auf andere Teilnetze ausgedehnt werden Kann Die Verbindung von Au enstellen eines Unternehmens ber eine sichere PPTP Verbindung ist damit m glich Aus Anwendersicht ist das zugrundeliegende physikalische Netzwerk irrelevant da sich die Verbindung f r ihn als dediziertes privates Netzwerk darstellt Ein VPN Tunnel verpackt auch Informationspakete die nicht dem Internet Standard f r Adressierung entsprechen in IP Pakete siehe dazu Abb 12 Nach dem Erhalt wird diese Verpackungsinformation wieder f r die h heren Schichten des OSI Modells transparent entfernt Damit werden entfernte Anwendersysteme zu virtuellen Knoten des Netzwerkes mit dem sie ber das VPN verbunden
125. er Performanz der Datenobjekte wurde auf die Messung ber verschiedene ber tragungskan le verzichtet da hier die Last durch den Datenverkehr erzeugt wird und f r den Datenaustausch in beiden F llen die ODBC Bibliothek verwendet wird Als repr sentative Messung kann so exemplarisch ein 1OBASE T Ethernet als Kommunikationsplattform gew hlt werden Das Netzsegment wurde isoliert betrieben um etwaige St rungen durch parallelen Zugriff auf das Medium zu vermeiden Die Me werte die im Anhang C ermittelt wurden zeigen da das RDO eine marginal h here Zeit f r den Verbindungsaufbau ben tigt Der zweite 102 Beispielentwicklung und implementierung interessante Wert ist die Erstellung des eigentlichen RecordSets als die lokale virtuelle Repr sentation der Datenbasis auf dem Klienten Hier wird f r das RDO eine doppelt so hohe gemittelte Aufbauzeit gemessen Grunds tzlich sind die beiden Systeme bei der Performanzanalyse in der Gr enordnung der gemessenen Werte vergleichbar vgl Tab 21 Die etwas schlechteren Werte im Einsatz von RDO resultieren aus der h heren Leistungsf higkeit des Datenobjektes Die markanten Merkmale der beiden Mechanismen werden in der folgenden Tabelle dargestellt Ein f r die vorgestellte Implementierung sehr wichtiges Merkmal ist das Fehlen des aktiven RecordSets in der JDBC ODBC Umgebung Dies hat zur Folge da die Benachrichtigung ber die Ver nderung des Datenbestandes aufwendig vom MS SQ
126. er keine Erkenntnisse zu erwarten sind Das Datenobjekt RDO oder DAO wird ohne Verlust der M chtigkeit dem Klienten zur Verf gung gestellt Dies geht sogar so weit da Komponenten f r die Visualisierung wie z B ein Listenelement direkt an das Datenobjekt gebunden werden k nnen Damit entf llt jeglicher Programmieraufwand f r die Manipulation der Daten lediglich die GUI mu erstellt werden Auf der Seite des Klienten wird ein sogenanntes ActiveX Executable realisiert Ein OCX f r die Darstellung in einem WWW Browser kann analog generiert werden In einem solchen Projekt m ssen folgende Konfigurationen beachtet werden Im Klassenmodul wird die Instantiierungseigenschaft auf MultiUse gesetzt In einem Klassenmodul werden die Servermethoden implementiert Folgende Projekteigenschaften m ssen zus tzlich gesetzt werden Project Type ActiveX EXE Create out of process ActiveX component Project Name DCOMServer Identifiziert COM Objekt in der Registry Die Option Nativen Code Kompilieren sollte deaktiviert werden um Portabilit t zu gew hr leisten Weiter sollte die Versionskompatibilit t aktiviert werden um die GUI jederzeit aktuell zu halten Nachdem eine ausf hrbare Datei erstellt wurde kann durch die Versionskompatibilit t auf eben diese verwiesen werden Der Server kann mit Hilfe der Installationsroutinen zur Verteilung vorbereitet werden Dabei sind keine Angaben mehr n tig Weitere ActiveX Ko
127. erblick ber das Kerberos Authentifizierungsprotokoll unter WinNT MS DCE bietet einen eigenen propriet ren und sehr einfachen Namensdienst den Locator Im Unterschied zum DCE Verzeichnisdienst ist der Namensraum des Locator flach anstatt hierarchisch Der WinNT 3 1 RPC Locator unterst tzt so keine Gruppen und damit auch nicht 51 Verarbeitung mit verteilten Objekten die entsprechenden API gekennzeichnet durch das Pr fix RpcNsGroup vgl Anhang E Er erm glicht verteilten Anwendungen den RPC Namensdienst zu benutzen und verwaltet die Datenbank des RPC Namensdienstes Dabei f hrt er eine verz gert konsistente Datenbank die strikt zwischengespeichert wird und fl chtig ist MSKB971 Die MS RPC Laufzeitbibliothek bietet ein Menge von Namensdienst APIs gekennzeichnet durch das Pr fix RpcNs an die Anwendungen auf RPC Basis den Zugriff auf Bezeichnungs informationen erm glichen RPC Server k nnen Namen und die damit assoziierte Verkn pfungs informationen an einen Namensdienst weitergeben und abfragen Die RPC Bibliothek implementiert diese API indem sie mittels des RPC Runtime Interface Name Service Independent NSD auf die Datenbank des Namensdienstes zugreift Diese Schnittstelle Kann durch verschiedene Name Service Anbieter wie zum Beispiel RPC Locator und DCE CDS verwendet werden ROS932 Wenn DCE CDS als RPC Namensdienst konfiguriert wird k nnen zwar WinNT Server ihre Verkn pfungsinformationen an den CD
128. eren dabei ein Berechtigungsprofil Dieses ist in den aktuellen Versionen des JDK ausgesprochen restriktiv um Klienten vor m glichen Defiziten im Sicherungsmodell auf jeden Fall zu sch tzen Zuk nftig soll der Security 73 Beispielentwicklung und implementierung Manager auch in kommerziellen Browsern individuell angepa t werden k nnen Diese Ent wicklung ist aber noch nicht abzusehen Compile Time Run Time Interpreter Quellcode gt Compiler ByteCodeT gt Verifier ClassLoader Code Generator Abb 29 Verarbeitungsweg von JAVA Quellcode bis zur Ausf hrung Konfigurationsalternativen f r den URL Zugriff bestehen aus 1 No Access Ein Applet darf nicht auf Objekte ber eine URL zugreifen 2 Applet Host Ein Applet darf nur Objekte von dem Server laden von dem es selbst geladen wurde 3 Firewall Ein Applet das innerhalb einer Firewall also im Intranet geladen wurde darf auf alle URLs zugreifen w hrend alle anderen Applets nur auf URLs au erhalb der Firewall zugreifen d rfen 4 Unrestricted Keine Zugriffsbeschr nkungen Analog k nnen auch die URLs beschr nkt werden von denen JAVA Applets geladen und aus gef hrt werden d rfen Vertrauensw rdige Systeme k nnen so logisch in das inbound Netzwerk integriert werden ohne da sie zum Intranet geh ren m ssen 4 2 3 Datenbankanbindung in JAVA Um eine gemeinsame Basis API f r die Datenbankanbindung zu bieten hat SUN Microsystems die JAV
129. ererbung auch mehrfache Vererbungen von Interfacedefinitionen und Objekten An dieser Stelle wird im COM ein Objekt mit mehrfachen Schnittstellen spezifiziert um ein analoges Verhalten zur Mehrfachvererbung sowohl auf der IDL als auch auf der Implementierungsebene zu erm glichen Auf die Mehrfachvererbung in COM mu verzichtet werden um eine Kompatibilit t im Bin rcode zu gew hrleisten Diese erm glicht eine Versionskontrolle von Bin rkomponenten CORBA ist ein zu COM konkurrierender Standard f r verteilte Objekte Er definiert ein abstraktes Objektmodell das Komponenten und deren Schnittstellen beschreibt Weiter liefert er eine standardisierte Abbildung von abstrakten Objektdefinitionen auf konkrete Programmier sprachen Ein bin rer Standard wird dabei nicht definiert Verschiedene ORB Implementierungen 65 Verarbeitung mit verteilten Objekten die sich an den CORBA Standard halten k nnen Kompatibilit t auf Quellcodeebene nicht aber Austauschbarkeit von bin ren Objekten erreichen Dies ist einer der Hauptgr nde warum es keinen Markt f r wiederverwendbare CORBA Objekte gibt Hersteller von Komponenten m ssen den Quellcode ver ffentlichen und diesen auf allen Zielplattformen und ORB Implementierungen testen Ein Schutz des intellektuellen Eigentums kann so nicht geboten werden CORBA definiert weiter einen Standard f r Inter ORB Kommunikation der zwei kompatiblen ORB Implementierungen erlaubt gegenseitig Objektmethoden auf
130. ert dagegen auf dem Komponentenmodell COM da mit seiner DCOM Erweiterung die Basis f r Verteilung bietet Bin re ActiveX Komponenten werden durch Hochsprachen realisiert Die Frage nach der Plattformunabh ngiskeit von ActiveX ist nicht trivial Zum einen bietet ActiveX einen offenen Bin rstandard f r Komponenten die auf unterschiedlichen Plattformen lauff hig sind Zum anderen fu en ActiveX Komponenten auf der Win32 API die Microsoft propriet r ist In der aktuellen Entwicklung finden allerdings Portierungen auf eine Vielzahl von Microsoft fremden Systemen statt so da im folgenden auch ActiveX als eingeschr nkt plattformunabh ngig bezeichnet wird Es soll an dieser Stelle nochmals klargestellt werden da eine Implementierung der ActiveX Komponenten auch in JAVA genauer MS J m glich w re dies w rde aber der Diskussion 69 Beispielentwicklung und implementierung keinen Beitrag leisten Dagegen kann die Wahl der Programmiersprache MS Visual Basic die Einfachheit der Implementierung verdeutlichen und Vorurteile gegen diese Programmiersprache entkr ften Nicht zuletzt spricht die weite Verbreitung der Sprache f r diese Wahl So ist es zum Beispiel m glich mit MS J entwickelten ActiveX Komponenten direkt auf ActiveX Data Objects ADO zuzugreifen ADO ist ein ActiveX Mantel der die Datenzugriffstechnologien Remote Data Object RDO und Data Access Object DAO umschlie t die im weiteren noc
131. erteilten Objektmodellen dient im RMI ein Stub RED96 als lokales Stellvertreterobjekt Proxy f r ein entferntes Objekt vgl Abb 6 Dabei bietet RMI einen gegen ber JAVA erweiterten Sicherheitsmechanismus der das Wohlverhalten der Stubs berwacht Abschlie end erweitert RMI die Fehlerbehandlung von JAVA mit der java rmi RemoteException Klasse um auch entfernte Fehler behandeln zu k nnen Der Lebenszyklus entfernter Objekte wird durch einen Referenzz hler sog Live Reference MER97 realisiert der die aktiven Verbindungen zwischen Objekten z hlt Aktive Verbindungen sind im Fall von JAVA Klient Server Verbindungen auf TCP IP Basis Sobald der Referenzz hler eines Objektes auf Null gefallen ist wird dieses durch die verteilte Garbage Collection von RMI gel scht Dieser Mechanismus ist zwar einfach zu implementieren und entwickelt zur Laufzeit kaum Overhead Unterbrechungen aktiver Verbindungen aufgrund von Ausf llen auf unteren Protokollebenen f hren aber leicht zu Inkonsistenzen Automatisches Rebinding das erneute Anbinden an entfernte Objekte nachdem eine Verbindung unterbrochen wurde wird von RMI nicht angeboten ORF97 Die folgende Abbildung verdeutlicht das RMI Modell Klient Server Stubs Skeletons Remote Reference Layer Transport mehrere jawalls auf oinen Objek ZN speziaksierte Schnittstellen Abb 6 RMI Modell MER97 RMI erlaubt es entfernte Objekte mit Hilfe von n
132. es MS SQL Servers zu verbergen stellt die DLL folgende Methoden zur Kommunikation zur Verf gung int CreateServerPipe int DestroyServerPipe int ListenServerPipe int CreateClientPipe int DestroyClientPipe int WriteClientPipe char id Die Methode WriteClientPipe wird von der gespeicherten Prozedur aufgerufen und die ID des ge nderten Datensatzes bergeben Nachdem durch diesen Aufbau der MS SQL Server den JAVA Server ber die Ver nderung von Datens tzen in Kenntnis setzen kann bleiben noch zwei Aufgaben die in den folgenden Abschnitten erl utert werden Zum einen mu der Datenbankzugriff mit M glichkeiten der Modifikation durch den Klienten bereitgestellt werden Daf r implementiert der JAVA Server ein Datenzugriffsobjekt Remote RecordSet in Form einer Klasse Mit Hilfe der JOBC API und der JOBC ODBC Br cke stellt das so zur Verf gung gestellte Objekt Echolmpl eine Repr sentation einer Tabelle dar Diese al Eine vollst ndige HTML Dokumentation der RemoteRecordSet Klasse findet sich im Anhang oder unter http www informatik uni frankfurt de wolter jdbc RemoteRecordSet html 84 Beispielentwicklung und implementierung Tabelle selbst ruht auf einem MS SQL 6 0 Server Folgende Methoden wurden fiir diesen Test implementiert boolean r_getClientInfo inout Info i boolean r_getManagementInfo inout Management Info mi boolean r_getCurrentRecord inout stringS
133. estehen ShutDown Nachrichten durch den DCE Server werden bei MS DCE ignoriert Eine Microsoft Erweiterung im MIDL die RpcMgmtEnableIdleCleanup Funktion gibt unbenutzte Ressourcen wie Netzwerk verbindungen auf der Klientenseite frei Verbindungsorientierte Protokolle setzen dabei ein f nf Minuten Timeout als vorgegebene Wartezeit ein um festzustellen ob eine Ressource noch ben tigt wird Dieses Verfahren verfolgt zwar dieselbe Grundidee ist aber in der Implemen tierung dynamischer ROS932 Ein Gro teil der Unterschiede in den RPC Implementierungen kann durch Header Dateien abgedeckt werden ROS932 3 2 3 1 4 WinNT Dienste Da wir in diesem Umfeld WinNT als VS MS DCE betrachten wollen k nnen wir auch dessen Dienste in die bereits gewohnten Schemata einordnen Obwohl die im folgenden aufgef hrten Dienste zum Teil weniger zum VS selbst geh ren als mehr durch das Betriebssystem immanent angeboten werden erm glicht diese Art der Gegen berstellung einen besseren Vergleich besonders zwischen OSF DCE und MS DCE WinNT unterst tzt verschiedene Sicherheitsprotokolle da jedes einzelne Protokoll entweder Kompatibilit t mit bestehenden Klienten Sicherheitsvorteile gegen ber seinen Konkurrenten oder Interoperabilit t f r heterogene Netzwerke wie dem Internet bietet Damit beschr nkt die WinNT Architektur nicht die Verwendung von Sicherheitsprotokollen Unter Verwendung der Win32 Sicherheits API werden die Anwendungen von
134. estellt sind f r Circuit Level Gateways geeignet Diese Grundtypen k nnen zu sehr wirkungsvollen Sicherungsmechanismen kombiniert werden und ein Intranet effektiv gegen nicht autorisierte Zugriffe aus dem Internet sichern Die Sicherung erfolgt dabei auf einer sehr niedrigen nicht inhaltlichen Ebene So kann zum Beispiel ein unbekannter Virus der in einer Mail enthalten ist nicht von einer klassischen Firewall erkannt werden Firewalls sind ein starkes Werkzeug zum Schutz von Datennetzen Dennoch bieten sie nur Schutz mit beschr nkten M glichkeiten Es ist also auch wichtig zu wissen was Firewalls nicht leisten respektive wo ihre Grenzen liegen Ausgehend von den blichen Schichten eines Netzwerks Schichten 2 4 des OSI Modells stellt die Firewall einen guten Schutz dar Spoofing oder verbotene Dienste k nnen relativ problemlos erkannt werden Falls eine Attacke jedoch auf h herer Ebene ansetzt mu die Firewall deren Paketinhalt durchsuchen Die berlegung kritische Dienste von vornherein zu sperren ist also angebracht Ein bekanntes Beispiel ist SendMail Beim Interpretieren des Inhalts von bestimmten Mail Headern l t sich dieser Mail Klient in einer bestimmten Version zu unerw nschten Aktionen mi brauchen Dies verdeutlicht da in F llen bei denen der Programmcode einer Anwendung schon fehlerhaft und unsicher ist auch die beste Firewall nutzlos wird CHES94 Eine gro e resultierende Einschr nkung ist da sow
135. et eine Kombination von Paketverschl sselung zeit basierten Beglaubigungen und einem vertrauensw rdigem Dritten einem Dienst der sichere Authentifizierung bietet In der DCE Terminologie wird synonym zum Objekt der Terminus des Principals verwendet Dieser Begriff bezeichnet jedes Objekt Person Anwendung Computer Dienst oder Zelle dessen Identit t berpr ft werden mu Die Beglaubigung Credential ist ein elektronisches Zertifikat das bei Darlegung die Identit t des Principals belegt In dem in dieser Arbeit vorgestellten Sicherungsmodell entsprechen Objekt und Subjekt dieser Aufteilung Pa w rter und Konversationsschl ssel werden verschl sselt nicht aber die eigentlichen Transport daten Ein Konversationsschl ssel ist eine vom System generierte Zufallszahl die zum Schutz der kommunizierenden Parteien eingesetzt wird Wenn authentifiziert werden Objekten zeitsensitive Beglaubigungen zugeteilt die der zerst rende Wiederholung von Informationen widerstehen k nnen Der DCE Sicherheitsdienst unterteilt sich in drei Komponentendienste BRU97 1 Authentifizierung Der Authentifizierungsdienst stellt einem Principal nach Erhalt eines g ltigen Kennwortes 13 Im weiteren wird dargestellt werden da dies ins besondere bei MS WinNT der Fall ist und sich COM auch auf diese Tatsache in gro em Ma e st tzt Se Kerberos ist eine Gestalt der griechischen Mythologie welche die schwerste Pr fung an Herkules verk rperte
136. et eine Unter st tzung f r C Ausnahmen die um einige CORBA spezifischen Ausnahmen erweitert sind Dar ber hinaus k nnen benutzerdefinierte Ausnahmen in der IDL eingef hrt werden COM verlangt auf dieser Ebene von jeder Methode einen 32 bit Fehlercode HRESULT Auf Sprachenebene bietet das System einen Dienst das lErrorInfo Objekt um Fehler im HRESULT abzufangen Das D COM bertragungsprotokoll bietet den Mechanismus body extensions der die bertragung einer breiten Fehlerinformation zum Teil auch im Klartext erm glicht Unterschiede ergeben sich auch im zeitlichen Ablauf der Operationen die in CHU97 pr zise abgebildet sind und verglichen werden 3 2 4 3 Sockelschicht Die Sockelschicht ist f r die Zeiger auf Interfaces und Objektreferenzen auf verschiedene Pro zesse verteilt Sie bietet also Klienten und Server die Illusion eines gemeinsamen Adre raums Hier liegt der Unterschied in den Mechanismen mit denen Serverobjekte registriert und dem Zeitpunkt zu dem Sockel instantiiert werden Das hier behandelte Verfahren des Marshalling unter D COM wird als standard marshalling bezeichnet Ein custom marshalling wird alternativ angeboten Durch die Implementierung des IMarshal Interfaces bernimmt der Server die Kontrolle ber das verwendete Marshalling Verfahren und die Art wie der Klient mit dem Server kommuniziert Diese alternative Option ist sehr ausbauf hig CHU97 CORBA definiert den OA f r die Anbindung der Objekti
137. eten auch bei der Konvertierung von ASCII ANSI Codes in UNICODE auf Auch hat die SAG die Authentifizierung von Komponenten noch nicht fertiggestellt was eine gro e Sicherheitsl cke im COM ffnet Der gesamte Sicherheitsmechanismus unter WinNT kann unter den neuen Systemen nicht verwendet werden WIT97 Ob COM sich durchsetzen kann h ngt unter anderem von der Anzahl der unterst tzen Plattformen ab da eine heterogene Umgebung im allgemeinen nicht ausschlie lich aus MS Windows Systemen besteht Mittlerweile sind Implementierungen f r alle Versionen von WinNT erh ltlich F r Win95 ist DCOM als Modul frei verf gbar und f r MS Windows 98 als Bestandteil angek ndigt DCOM soll f r den Apple Macintosh der bereits COM teilweise unterst tzt siehe Anhang D noch in 1997 folgen WIT97 Schwierigkeiten bei dieser Um setzung ergeben sich vor allem durch die Integration der Win32 API im COM was eine Abbil dung auf andere Plattformen erheblich erschwert nicht zuletzt auch weil die API nicht vollst ndig durch MS dokumentiert ist Zur Zeit unterst tzen folgende Betriebssysteme DCOM Anwendungen MS965 Betriebssystem DCOM MS Windows NT Server ja MS Windows NT Workstation ja MS Windows 95 ja LINUX Betaversion SOLRAIS Betaversion Digital UNIX Betaversion Apple Macintosh angek ndigt Tab 22 Verf gbarkeit von MS DCOM SS Zusatz DCOM f r Win95 mu installiert sein Auswertung und Ausblick auf weitere Entwicklu
138. ext Transfer Protocol with Drtvacx 16 Internet Assigned Number Authority uu02222240022ssnneensnnnnenssnnnneneennnnnnennennen en 95 Interface Description Language 34 Interface Identifier euer Seeerei ai en i er 56 Internet Protocol a ee NENIE ESTEE EIEEE TEENE ET 11 Inter process Communication 59 Interface Pointer Identfter A 62 Indexed Sequential Access Method 91 Internet Server Application Programming Interface 16 Intentional Standards Organisation nenn 45 Java Database Connectivity eeesseeccessseeeceesnceeceessaeeecessaeeseessaecesessaeeeeeesaes 74 Java Development Kat ue eier ge 2 Aran Anan ann Avia SE a es 18 Key Distnbutisn Centre SER aa aie 51 Local Area Network ENEE SEAN e ia 1 VII Verteilte Objekte im Intranet und Internet LUW MIDL MIME MIT MPNL MS MSRPC NDR NFS NISB NSI NSID OBJREF OCX ODBC ODL ODS OMA OMG OOP ORB ORPC OSF OXID PSTN PDC RDO RFC RMI ROT RPC RTT SCM SDK SGML SQL SSL TCP TDS TGT UDP URL VBX VM VPN VS W3C WAN Win3x Win95 WinNT WWW Local Wnivor Works fale ie Tete ele i ide ade Te de Ts ae Tt ie Ta rte Ta 8 Microsoft Interface Definition Language 0 0 eeeeeecccccceeeeeeeenneeeeeeeeeeeeesnnaeeeeeees 47 Multipurpose Mail Extension 15 Massachusetts Institute of Technology u 0000022220sssnssnnesssnnnnnnnnnnnnnnennn 44 Multi Protocol Net Library AAAA AAAA AAAA 95 Kee GE 2 Microsoft Remote Procedure Call
139. ezielle Form einer gespeicherten Prozedur ist Ein Trigger wird aktiviert sobald die daran gebundenen Tabellen modifiziert werden Sie werden h ufig eingesetzt um referentielle Integrit t und Konsistenz zwischen logisch verkn pften Daten in verschieden Tabellen zu implementieren F r die Implementierung des Active View also einer stets aktuellen Sicht auf die pr sentierten Daten kann der Klient die Datenbank in regelm igen Abst nden nach Daten nderungen befragen Dieses Polling f hrt allerdings zu unn tiger Netzlast die besonders bei selten modifizierten Daten berfl ssig und besonders bei der Arbeit auf engbandigen Netzen zu vermeiden ist Eine alternative L sung kann durch Ver wendung von Triggern erfolgen welche den Klienten auf Daten nderungen hinweisen An dieser Stelle ist eine Form von Interproze kommunikation zwischen Datenbank und JAVA Server erforderlich die wiederum als nativer Aufruf nur von einer JAVA Anwendung durchgef hrt werden kann ROD97 Aus diesen drei Folge berlegungen ergibt sich folgendes Blockmodell f r die Implementierung Server Maschine SQL Server Windows DLL Datenbank Erweiterte gespeicherte Tabellen L____Prozedur Lef Trigger JAVA Server 4 Datenanforderung _ Trigger Event Interproze kommuniktion ber Named Pipes Abb 35 Anwendungsrealisierung unter JAVA C und CORBA Um die Implementierung im Einzelnen zu erl utern wird die 3 Tier Arch
140. f beliebige ODBC Datenquellen zugegriffen werden kann Mit Hilfe von RDO k nnen einfache Ergebnismengen ohne Cursor oder komplexe Cursor erstellt werden Weiter k nnen auch Abfragen ausgef hrt werden die eine beliebige Anzahl von Ergebnis mengen zur ckgeben oder gespeicherte Prozeduren ausf hren die Ergebnismengen mit oder ohne Ausgabeparameter und R ckgabewerte zur ckgeben werden RDO erlaubt synchrone oder asynchrone Operationen so da eine Anwendung nicht blockiert sein mu wenn eine l ngere Abfrage durchgef hrt wird RDO ist ein objektorientiertes Modell das keine Verwendung von APIs erzwingt Es bietet universelle Fehlerbehandlung RDO erlaubt dynamische Sperrung von Tabellen Datens tzen und Feldern RDO erlaubt die Konfiguration eines lokalen Zwischenspeichers Dabei kann die Gr e dieses Speichers der bei Bedarf automatisch aktualisiert werden kann dynamisch konfiguriert werden Je nach Anforderung durch den Klienten werden Daten automatisch nachgeladen Die Gr e des Zwischenspeichers k nnte zum Beispiel durch die Netzlast variiert werden Ein Prefetching ist ebenfalls konfigurierbar RDO S Visual Basic gt Code GUI Remote Data Control I Remote Data Objekt ODBC Driver Manager I ODBC Driver EE E lt Netzwerk gt Abb 37 Entfernter Datenzugriff ber RDO Durch die Umgehung der lokalen Verarbeitung von Abfragen sind kaum Modifikationen erforder
141. fachen Interproze kommunikation Einsatz findet Letzteres wird noch in den Beispielimplementierungen vorgestellt Als Beispiel soll eine Schnittstellenspezifikation f r ein SpellChecker Objekt erl utert werden object uuid E7CDOD0O0 1827 11CF 9946 44553540000 interface ISpellChecker IUnknown import unknwn idl HRESULT LookUpWord in OLECHAR word 31 out boolean found HRESULT AddToDictionalry in OLECHAR word 31 HRESULT RemoveFromDictionary in OLECHAR word 31 Die Schnittstellenspezifikation beginnt mit dem Schl sselwort object welches anzeigt da die MIDL Erweiterungen zur DCE IDL also der Microsoft Extensions Mode verwendet wird Es folgt die Schnittstellenbezeichnung ein weltweit eindeutiger Universal Unique Identifier UUID Diese Bezeichnung wurde im MS DCE aus OSF DCE bernommen Weiter wird der Schnittstellenname ISpellChecker aufgef hrt der vom Interface IUnknown abgeleitet wird Schon in diesem einfachen Beispiel sieht man gut wie jede Schnittstelle auf das Unknown Interface aufbaut siehe dazu auch Anhang A und Abb 22 Abschlie end f llt noch auf da jede Funktion den Fehlerr ckgabewert HRESULT zur ck geben mu Sobald die Implementierung einer so spezifizierten Schnittstelle ver ffentlicht ist d rfen keine nderungen am Objekt also am Bin rcode mehr vorgenommen werden Falls eine neue Methode ver ffentlicht werden
142. folgenden kurz fiir das allgemeine Verst ndnis und nicht zuletzt auch wegen dem allgemein schlechten Ruf in der ffentlichkeit auf die Eigenschaften von Visual Basic eingegangen Zun chst mu erl utert werden warum eine Programmiersprache wie MS Visual Basic in einer Diskussion um verteilte Objekte aufgef hrt werden kann Eine objektorientierte Programmier sprache unterst tzt Kapselung Abstraktion Polymorphismus und Vererbung Man kann MS Visual Basic aber als objektzentriert bezeichnen SPE96 da es sowohl den Begriff des Objektes als auch den der Klassen unterst tzt Allerdings wird Vererbung nicht von MS Visual Basic unterst tzt ROM97 Der entscheidende Grund f r die Verwendung von MS Visual Basic ist aber seine weite Verbreitung IS Abteilungen steigen zunehmend auf Visual Basic um und machen es damit zu der am h ufigsten verwendeten Programmiersprache seit COBOL KIR95 Die folgende Tabelle zeigt die Anzahl der installierten Entwicklungsumgebungen im Vergleich Installierte Basis COBOL 2 5 Millionen Visual Basic 2 0 Millionen C 1 2 Millionen Smalltalk 0 1 Millionen Tab 18 Marktanteile verschiedener Programmiersprachen KIR95 Weiter hat Microsoft durch die Ver ffentlichung von Visual Basic Control Creation Edition CCE diese Programmiersprache zur firmenstrategischen Plattform f r ActiveX erkl rt MS951 4 3 4 Datenbankanbindung in Visual Basic 4 3 4 1 Zusammenfassung Visual Basic st
143. form abh ngigen Interpreter der den Bytecode zur Laufzeit in f r die Maschine spezifischen Code umwandelt 71 Beispielentwicklung und implementierung JAVA ist multithread f hig Zur Laufzeit k nnen verschiedene Programmsegmente gleichzeitig also nebenl ufig ausgef hrt werden Die daf r ben tigten Hilfsmittel zum Beispiel zur Synchronisation der Threads werden von JAVA zur Verf gung gestellt Programmcode 1 Compiler vv h JAVA VM JAVA VM JAVA VM Mac UNIX Windows Browser Browser Abb 28 JAVA Ausfiihrungsmodel Viele der Eigenschaften von JAVA sind nicht neu sondern wurden fiir andere Sprachen wie Lisp Smalltalk Pascal Objective C Self und Beta entwickelt Weitere vorteilhafte Eigen schaften sind die Unterstiitzung von multithreading die in einer eignen Klasse realisiert und damit nur bei Bedarf geladen wird ein einzelnes JAVA Programm kann verschiedene Dinge unabh ngig voneinander und fortlaufend durchf hren und dadurch hohe Performanz zum Beispiel f r interaktive grafische Applikationen erm glichen JAVA ist sicher da es Applets keine direkten I O Zugriffe auf dem Klientensystem erlaubt das JAV A Laufzeitsystem beinhaltet Mechanismen zur Abwehr von Viren Dabei verwaltet das JAV A Laufzeitsystem den Speicher selbst ndig Klassen werden dann verbunden wenn sie ben tigt werden Sie k nnen ber das Netzwerk geladen werden d h sie m ssen nicht auf dem Rechner vorhanden sein der die
144. g Client Server Applications with Visual Basic Microsoft Corporation 1995 Microsoft The Component Object Model Specification Microsoft Corporation und Digital Equipment Corporation Draft Version 0 9 24 Oktober 1995 www microsoft com oledev olecom title htm Microsoft Remote Server Connectivity Mircosoft Corporation 1996 Microsoft Microsoft Visual Basic 4 0 Benutzerhandbuch Online Dokumentation Mircosoft Corporation 1996 Microsoft Microsoft Windows NT Server Resource Kit Supplement 1 book Online Dokumentation Mircosoft Corporation 1996 Microsoft What Is the Exploder Control and How Does It Relate to Authenticode Mircosoft Corporation 3 September 1996 Microsoft DCOM Technical Overview Microsoft Corporation PDC Conference White Paper 1996 Microsoft Microsoft Windows NT Distributed Security Services Microsoft Corporation PDC Conference White Paper 1996 Microsoft Microsoft Visual Basic 5 0 Benutzerhandbuch Online Dokumentation Mircosoft Corporation 1997 Microsoft Microsoft Announces COM Microsoft Corporation Press Release 23 September 1997 http www microsoft com corpinfo press 1997 Setp97 COMplspr htm Microsoft Programming DB Library for Visual Basic Online Dokumentation Microsoft Press 1997 Data Access with Visual J and ADO for JAVA erschienen in Microsoft Developer Network News Nr 5 1997 S 1 8 Microsoft Knowledge Base Discussion of DCE CDS and RPC NS
145. g systemabh ngiger Datenformate erfolgt durch Konvertierung aller bertragenen Daten in eine propriet re Network Data Representation NDR SIN97 Abschlie end soll kurz die Erstellung einer Objektinstanz unter COM demonstriert werden F r eine weiterf hrende Betrachtung vergleiche CHAP96 Dieses Bootstrap Problem also die Frage wie ein Klient den Zeiger auf eine angeforderte Komponente initial erh lt wird von der COM Bibliothek gel st Diese Bibliothek mu von jedem System das COM unterst tzt implementiert werden Wichtigster Bestandteil dieser API ist die M glichkeit eines Klienten einen Server zu starten Die Gruppe von Funktionsaufrufen tr gt das Pr fix Co zum Beispiel CoCreatelnstance Fordert ein Klient die Instantiierung einer Komponente an so bergibt er die entsprechende CLSID an die COM Bibliothek Anhand dieser eindeutigen Bezeichnung wird nun die sogenannte Registry verwendet um die CLSID auf den tats chlichen bin ren Servercode abzubilden Die Klassen aller Objekte die durch die COM Bibliothek instantiierbar sein sollen m ssen in dieser einfachen Datenbank vorhanden sein Das exakte Format der Registry wird durch COM nicht vorgegeben Win95 und WinNT verwenden eine einfache Systemtabelle 59 Verarbeitung mit verteilten Objekten Diese Zuweisungstabelle mu auf allen Systemen mindestens folgende Elemente beinhalten CHAP96 e Die CLSID die als Schl sselwert fungiert e Eine Indi
146. ge Dieses Objekt erm glicht einer An wendung Datenreihen sequentiell auszulesen und zu verarbeiten e MetaData Schnittstelle Diese Schnittstelle unterteilt sich in java sql ResultSetMetaData und java sql DatabaseMetaData Sie bietet Informationen nicht ber die Daten selbst aber ber deren Struktur Dabei wird zwischen einzelnen Ergebnismengen und der Datenbank selbst unterschieden Datenbankverbindung anfordern java sq DriverManager Datenbankverbindung SQL Anweisung erzeugen java sq DriverManager SQL Anweisung Prepared Statement Gespeicherte Prozedur ausf hren ausf hren ausf hren Free Anfrageergebnisse auswerten java sql ResultSet Abb 30 Die Klassenarchitektur von JDBC DIC97 JDBC unterstiitzt gespeicherte Prozeduren durch Vererbung der Statement Klasse Weiter werden Transaktionsmanagement Cursor Unterstiitzung RIC90 und mehrfache Ergebnismengen unterst tzt Es ist zu beachten da JDBC Treiber abh ngig von der Datenbank lediglich eine Untermenge dieser Funktionalit t anbieten k nnen Informationen ber diese F higkeit kann durch die Abfrage von Metadaten der Datenbank erlangt werden Datenbankoperationen lassen sich mit Hilfe von Methoden einer der Klassen Statement PreparedStatement oder CallableStatement aufrufen und deren Ergebnisse mit Hilfe der JDBC Klasse ResultSet aus werten CallableStatements bieten dabei die Besonderheit da der Umweg ber das ResultSet nicht notwe
147. geh rigem Compiler und seinem Speicherverwaltungs modell BRU96 Dabei bezieht sich die Sicherheit nicht auf den Schutz vor unseri sen Program mieren sondern dem Schutz vor fehlerhaften Programmen Zur Laufzeit wird berpr ft ob Referenzen auf Elemente innerhalb der Feldgrenzen liegen um zu vermeiden da auf fremde Speicherbereiche zugegriffen wird Weiter werden alle Casts auf Sprachenkonformit t berpr ft JAVA unterst tzt im Gegensatz zu zum Beispiel C keine Zeiger auf bestimmte Speicher bereiche Der durch JAVA kompilierte Code referenziert Speicher ber symbolische Links die erst bei der Ausf hrung vom JAVA Interpreter in echte Speicheradressen umgewandelt werden Der Programmierer kann also nicht mit dem Speicher arbeiten da dessen Verwaltung ganz vom darunterliegenden Laufzeitsystem kontrolliert wird In der zweiten Schicht analysiert der Verifier den Bytecode bevor dieser ausgef hrt wird Er stellt insbesondere sicher da Zugriffsbeschr nkungen nicht verletzt werden Methodenaufrufe nur mit der korrekten Anzahl von Argumenten ausgef hrt werden die Parameter f r den Aufruf den korrekten Typ haben und da ausschlie lich korrekte Typenumwandlungen durchgef hrt werden Der Bytecode Verifier macht dabei keine Annahmen ber die urspr ngliche Quelle des Codes und fungiert als eine Art W chter der sicherstellt da Code der zur Ausf hrung an den JAVA Interpreter weitergegeben wird ohne Bedenken ausgef hrt wer
148. gen und diese Beziehungen repr sentieren die logische Struktur des verwendeten Datenbanksystems Das rdoEngine Objekt repr sentiert die entfernte Datenquelle und wird automatisch erstellt wenn ein beliebiger Verweis auf RDO oder das Remote Daten Steuerelement erstellt wird Wenn RDO beim ersten Zugriff initialisiert wird erstellt RDO automatisch eine Instanz von rdoEngine und der Standardumgebung rdoEnvironments 0 MS962 Eine exemplarische Realisierung einer einfachen Oberfl che f hrt den Anwender nach Best tigung der Sicherheitsabfrage des MS InternetExplorers zur Eingabemaske des MS SQL Server Logins Pa w rter werden in diesem System zentral vergeben Bemerkenswert ist da die bermittlung der kritischen Anmeldeinformation nicht ber das unsichere TCP IP sondern ber Sichere RPC verschl sselt durchgef hrt wird SQL Server Login ES Datenquelle IS Login ID wolter Abbrechen Kennwort l Optionen Datenbank InfoSystem v Sprache v Anwendungsname M icrosoft Access LptoNeN gt Arbeitsstations ID PIPIN Abb 38 ODBC Anmeldungsdialog 94 Beispielentwicklung und implementierung Nach der Authentifizierung durch den Datenbankserver wird die ActiveX Komponente OCX Datei im Beispiel 13KB auf das System des Klienten bei Bedarf kopiert beziehungsweise aktualisiert und ausgef hrt RDO wurden entworfen um auf externe Datenbanken anstatt auf lokale ISAM Datenbanken
149. gen Entwicklungen in der JAVA Technologie sind erforderlich um JAVA als Alternative zu ActiveX zu etablieren und um damit die zuk nftige Verf gbarkeit von JAVA zu gew hrleisten 1 Die Einf hrung von Internet Foundation Classes MOR97 welche die Wiederverwendung von vorgefertigten Objekten erm glichen die in JAVA geschrieben und damit ebenfalls plattformunabh ngig sind Diese werden eine Basis f r kommerziell vermarktbare Kompo nenten bieten 2 Wachsende JAVA Unterst tzung auf Serverseite Dadurch wird eine Verteilung von netz werkzentrierten Anwendungen auf Klienten vereinfacht indem eine einheitliche Entwicklungs umgebung f r die gesamte Systementwicklung zur Verf gung gestellt wird 3 Die vollst ndige Integration des IIOP in JAVA wird sowohl der Sprache als auch der Plattform neue Einsatzm glichkeiten er ffnen Die zur Zeit zur Verf gung stehenden CORBA Implementierungen sind entweder zu langsam oder im Vergleich zu COM noch zu teuer um sich schnell und weit zu verbreiten 4 Eine flexibleres Sicherheitsmodell wird die rigorosen Einschr nkungen aufweichen und damit die M chtigkeit der Sprache stark erweitern Nur durch die M glichkeit des kontrollierten Zugriffs auf das Betriebssystem des Klienten ist JAVA berhaupt als Programmiersprache f r Desktop Anwendungen geeignet 5 2 Vergleich der Middlewareplattformen Die historische Entwicklung von COM ber OLE und OLE 2 0 hin zu ActiveX verdeutlicht das
150. gewicht zwischen Freiheit und Restriktionen das ein offenes produktives und liberales Arbeitsklima schafft und gleichzeitig den notwendigen Schutz f r das Unternehmen garantiert Die Definition von notwendigem Schutz ist dabei stark von den individuellen Sicherheitsbed rfnissen des Unternehmens abh ngig mu aber unabh ngig davon als Unternehmensstrategie formuliert sein Dies ist unter anderem auch eine Forderung des Orange Book das im folgenden Kapitel noch vorgestellt wird 2 4 3 Methoden zum Schutz eines Intranet 2 4 3 1 Host Sicherheit Ausgehend von der Erkenntnis da eine Sicherung beim Objekt zu beginnen hat ist die Sicherung des Hosts selbst die letzte und gleichzeitig auch eine sehr schwache Bastion im Schutzmechanismus Die Sicherheitsanforderungen werden im Trusted Computer System Evaluation Criteria definiert Dies ist eine Beschreibung der Anforderungen von Sicherheits klassen die durch das U S National Computer Security Center in einem Dokument dem sogenannten Orange Book DOD85 festgehalten sind 26 Internet und Intranet Die Klassen des Orange Book beziehen sich mehr auf milit rische und beh rdliche Anforderun gen f r Sicherheit von geheimen Daten bieten aber einen Leitfaden auch f r allgemeing ltige Technologien Viele kommerzielle Produkte wie zum Beispiel das Betriebssystem WinNT werden als C2 Kompatibel bezeichnet Dies bedeutet da sie dem geforderten Standard entspr
151. gkeit von HTTP durch CGI kommt f r den Einsatz im offenen Internet der Sicherheit des Gesamtmodells eine besondere Bedeutung zu An der Schnittstelle zwischen Klienten und Server bietet das Secure Socket Layer SSL eine M glichkeit der sicheren Kommunikation vgl Anhang B SSL ist ein low level Protokoll das sichere Kommunikation zwischen WWW Servern und Browser gestattet DRAFT95 In diesem Zusammenhang f llt auch der Begriff des Hypertext Transfer Protocol with privacy HTTPS Eine HTTPS Verbindung ist eine HTTP Verbindung unter Verwendung der SSL Verschl s selung Eine Beschreibung des Verbindungsaufbaus wird im Anhang B exemplarisch dargestellt Damit sind die Grundlagen f r den aktuellen elektronischen Markt geschaffen Klar wird aber da die vorgestellte Architektur die Einfachheit weit ber die Effizienz legt Die Kombination von HTTP und CGI ist sehr langsam und durch die Zustandslosigkeit als Middleware ungeeignet Weiter bietet es ohne Kombination mit HTTPS keine inh rente Sicherheit und unterst tzt damit auch keine Transaktionen Trotz dessen ist diese Kombination das zur Zeit meist verwendete Modell f r 3 Tier Anwendungen im Internet ORF97 Aufgrund der weiten Verbreitung ist diese detaillierte Betrachtung von CGI sinnvoll CGI ist eine M glichkeit die es einem Browser erm glicht eine Anwendung auf dem WWW Server auszuf hren Entweder werden CGI Anwen dungen in einer Skriptsprache formuliert
152. gramm kann ein entferntes Objekt aufrufen sobald es eine Referenz auf das Objekt entweder durch Verwendung des RMI bootstrap Naming Service angefordert oder als Argument oder R ckgabewert erhalten hat Dabei kann ein Server der ein solches Objekt ver ffentlicht auch selbst Klient sein RMI verwendet die Methode f r Objekt Serialisierung des JDK V1 1 um ein lokales JAVA Objekt in einen seriellen Datenstrom Marshalling Stream zu wandeln marshal innerhalb einer Nachricht ber das Remote Reference Layer vgl Abb 6 an einen Klienten zu bertragen und dort wieder zur ck zu wandeln unmarshal Der empfangende Server Skeleton entpackt den Marshalling Stream und bergibt die Argument an die aktuelle Implementierung der aufgerufenen Operation MER97 F r das eigentliche Verbindungsmanagement ist das Transport Layer verantwortlich welches auf JAVA Sockets und TCP realisiert ist Im Unterschied zu JAVA und C bergibt RMI lokale Objekte als Wert by value weil eine Referenz auf ein lokales Objekt nur innerhalb einer einzigen VM sinnvoll ist Typen werden nicht gek rzt so da RMI echten objektorientierten Polymorphismus unterst tzt ORF97 Der Namensdienst von RMI ist zur Zeit noch sehr primitiv nicht persistent und dient lediglich zum Auffinden von aktiven Objekten rmi hostname port name Er stellt weiter einen Mechanismus zur Verf gung mit dem ein Klient Stubs vom Server laden kann Wie auch bei anderen v
153. h rent sicher JAVA bietet Sicherheit auf verschiedenen Ebenen Erstens ist es mit der Sprache an sich sehr schwierig gef hrliche Anwendungen zu entwickeln Die Vermeidung von Zeigern tr gt einen wichtigen Teil zu dieser Eigenschaft bei da Eingriffe in den Speicherbereich anderer Anwendungen nicht erm glicht werden Ein weiterer Sicherheitsaspekt ist der Bytecode Verifier JAVA Quellcode wird zun chst in Bytecode umgewandelt Vor der Laufzeit wird dieser Bytecode von dem Verifier auf unzul ssiges Verhalten hin berpr ft Weiter sind besonders Applets also JAVA Anwendungen die ber das Internet innerhalb von Browsern aus gef hrt werden eingeschr nkt Applets k nnen nicht auf das Dateisystem des Klienten zugreifen neue Fenster die von JAVA ge ffnet werden tragen ein entsprechendes Logo um sie z B als Trojanisches Pferd BRU96 identifizieren zu k nnen und Socket Verbindungen k nnen nur zum WWW Server also zu dem Ursprungssystem des Applets aufgebaut werden Der Verzicht auf Zeiger verhindert weiter Manipulationen am Speicherbereich au erhalb der VM JAVA ist plattformunabh ngig Plattformunabh ngigkeit ist die F higkeit eines Programmes auf unterschiedlichen Betriebssystemen ausf hrbar zu sein Insbesondere ist es daf r notwendig da Variablentypen auf allen Systemen gleich vereinbart werden und die gleiche Gr e besitzen Erm glicht wird diese Plattformunabh ngigkeit der Programmiersprache durch den von der Platt
154. h vorgestellt werden Zus tzlich gibt es eine ADO Implemen tierung in MS J die auf JAVA Beans SUN397 basiert Dadurch stehen dem Entwickler f r Win32 Plattformen zwei m chtige Werkzeuge f r die Implementierung von vielschichtigen Datenzugriffsanwendungen zur Verf gung MSDN997 4 2 JAVA und JavalDL 4 2 1 JAVA im Internet und Intranet Die objektorientierte Programmiersprache JAVA bietet die M glichkeit sogenannte Applets ber dynamische Browser von einem WWW Server herunterzuladen und dann lokal d h system unabh ngig auszuf hren JAVA ist dabei einfach multithreaded garbage collected sicher robust architekturneutral bertragbar und dynamisch Die Programmiersprache ist weitgehend an C angelehnt JAVA Programme werden in Bytecode transformiert der ohne weitere Kompilation auf vielen verschiedenen Computern ausgef hrt werden kann sofern es jeweils eine JAVA VM f r das entsprechende Betriebssystem gibt Das einzigartige an JAVA ist dabei vor allem die resultierende Mobilit t und Flexibilit t im Ein satz Es mu lediglich eine JAVA Virtual Machine entwickelt werden die in einem relativ begrenzten Code ca 200 KByte implementiert werden kann Bytecode ist eine Liste von Instruktionen der optische hnlichkeiten mit Maschinencode hat aber unabh ngig vom ausf hrenden Prozessor ist Dieser maschinenunabh ngige Bytecode wird bei der Ausf hrung von einem Interpreter der JAVA VM abgearbeitet JAVA wird desh
155. he auf einem Teilbereich das Ergebnis verf lschen XV Auswertung und Ausblick auf weitere Entwicklungen com Ubertragungs technik 1710 2 73 3 40 4 07 710 7 58 7 31 8 79 1010 3 87 2 54 3 26 770 7 14 7 58 8 40 590 3 23 3 79 2 40 770 7 15 7 47 8 62 950 3 95 4 48 3 48 770 7 63 7 25 8 41 1620 2 37 2 99 3 55 660 7 64 7 52 8 41 2130 2 77 3 33 3 94 710 7 69 7 42 8 46 1540 3 17 2 73 3 46 720 7 69 7 96 8 52 1640 2 27 2 83 3 50 710 8 13 7 42 8 73 780 3 41 2 97 2 64 550 7 96 8 13 8 89 1630 2 33 2 89 3 50 770 7 80 7 41 8 68 Interproze 1360 3 01 3 20 3 38 714 7 76 7 55 8 59 990 7 25 6 07 7 22 22910 6 97 6 81 7 80 1380 5 58 6 45 5 66 23340 7 03 6 87 7 80 1290 5 50 6 32 7 03 23130 7 03 6 92 7 86 1280 6 04 6 80 5 52 23230 6 97 6 87 7 91 2190 6 83 6 25 7 07 23180 7 08 6 87 7 80 2680 6 83 5 60 6 31 23950 7 03 6 81 7 85 1500 5 65 6 47 7 23 23780 7 03 6 87 7 79 2530 7 12 6 44 7 21 22850 7 03 6 86 7 80 1360 5 45 6 22 6 99 22690 7 03 6 92 7 80 1350 5 50 6 32 7 09 22690 7 03 6 86 7 86 LAN Ethernet 546 8 1 1655 6 18 6 29 6 73 23175 7 02 6 87 7 83 14690 1585 50 1586 40 1588 80 26200 617 40 617 40 638 20 15620 1573 20 1547 50 1587 30 25160 617 40 625 60 686 50 14800 1592 90 1586 70 1570 60 25430 612 40 622 30 680 50 14720 1558 90 1589 60 1540 50 24770 611 30 621 20 690 40 14280 1575 10 1590 30 1442 80 26580 614 70 617 90 689 30 18390 1571 10 1543 70 1556 00 26090 623 40 617 90 689 90 15740 1573 30 1577 80 1564 70 25930 615 10 652 20 689 40
156. hen bertragungskapazit t von 9600bps liegt die Zeit f r den Verbindungsaufbau im COM bei ca 5s Die St rke von COM gegen ber JavalDL liegt aber klar in dem Bereich der schnelleren Verbindungen In dem folgenden Diagramm wird die Zeit dargestellt die f r den Verbindungs aufbau ben tigt wird Auf der Abszisse wird die Kapazit t der Kommunikationsverbindung aufgetragen die sich aus den gemittelten Ergebnissen der Ping Operation ergeben 30000 25000 Verbindungsaufbau DCOM 20000 Verbindungsaufbau CORBA E 15000 10000 5000 0 100 200 300 400 Ze 600 700 800 900 1000 ping ms Abb 40 Vergleich der Verbindungsaufbaugeschwindigkeit von COM und JavaIDL 99 Beispielentwicklung und implementierung Der zweite Aspekt in der Betrachtung der Leistungsf higkeit der Modelle ist die Zeit die f r den Aufruf und die Ausf hrung einer einzelnen Methode ben tigt wird Hier bieten beide Modelle in der Darstellung eine stetige lineare Funktion in Abh ngigkeit von der Leistungsf higkeit der Verbindung Mit abfallender physikalischer bertragungskapazit t wachsen dabei die Vorteile der JavalDL Implementierung Dies Kann nur auf ein gr eres Datenvolumen zur ckzuf hren sein da bei COM f r die Ausf hrung bertragen werden mu Dies ist auch nicht weiter verwunderlich da die Kombination von ActiveX und MS Visual Basic auf einer sehr viel h heren Abstraktionsebene erfolgt die zwangsl
157. hone Consultative Commttee eee 41 DCE Cell Direct ry Service a 45 Common Gateway Interface 15 Call Leyel Interf ee eebe GENEE dee to tied ete 76 Class I Centers EE 58 Component Object Model 53 Common Object Request Broker Architecture ssseeseeeeeeeereesereresesrrerssrrerssrrens 33 Common Object Services Specification uuuuesssaneessssnnneessnnnnenesnnnneneennnnnnennnnnenen 36 Data Access Eet weak ASA ANB at 90 US Defence Advanced Research Projects Agency uu essunsesssnnnneesssnnnenesnnnneneennen 5 Database Management Svstem eessecceessneeceeesseeeceesnaeeesessaeeesessaeceseesaeees 74 Distributed Computing Environment 40 Distributed Component Object Model 61 Data Encryption Standard 100 Dynamic Invocation Interface 35 Dispatch Identifiers ere een en Ren an en RR RAR RR 57 Dynamic Link Eibr ry u a i a Oe A 55 Dorain Name Service ati ini RE 45 Dynamic Skeleton Interface 35 DEE Gl bal Directory Service 2 sR 20 20H 20H Rense 45 Distributed EE 45 Distributed Time Service 45 Extended Privilege Attribute Certificates eee eeesscccceesseceeeesseeeseesneeeeeenaeees 45 Deutsche Gesellschaft f r Technische Zusammenarbeit GmbH 1 Graphical User Interface AE EE Aa ane 6 Globally Unique Identfer AA 56 Hypertext Mark up Language 2000 ee eeeeccceesneeceeesnaeeeeessaeeecessaeeeseesaeeeeeessaeeeeees 6 Hypertext Transfer Protocol 22 4 4484 ren 6 Hypert
158. htert Entwicklern die Erstellung und Verwendung von Softwarekomponenten unterschied licher Programmiersprachen und mit unterschiedlichen Werkzeugen COM wird mit den MS Windows Betriebssystemen vertrieben werden und zu COM abw rtskompatibel sein ent sprechend der in COM festgelegten Unver nderlichkeit von Bin robjekten vgl Abb 24 Zus tzlich werden Dienste angeboten werden die zum Beispiel die Anbindung und Programmierung von Datenbankklienten vereinfachen werden MS972 und sich in zwei zentrale Konzepte Datenintegration f r den direkten und einfachen Datenbankzugriff und Interception um die Bindungen von Komponenten an Dienste zur Laufzeit dynamisch zu ndern einteilen lassen BEI97 Diese Ank ndigung zeigt das Dilemma in der Auswahl der Middleware deutlich auf Microsoft prescht in der Entwicklung seines Komponentenmodells voran bietet eine Vielzahl von ver lockenden und anwendbaren M glichkeiten und Diensten und er ffnet mit der Integration der Middleware in Hochsprachen einen sehr einfachen Einstieg in die Verteilung von Objekten Ein fader Beigeschmack von Plattform und Herstellerabh ngigkeit bleibt BRU96 zumal in der Entwicklung von OLE zu COM schon der Nachfolger DNA angek ndigt ist BEI97 Die OMG bietet mit ihrem CORBA 2 0 Standard eine Alternative Der Standard ist erprobt offen und von vielen Herstellern anerkannt Die praktische Anwendbarkeit besonders in kleinen Projekten ist aber noch unbefriedigend Trot
159. ider werden ein deutige Zeiger von vielen DCE Implementierungen nicht unterstiitzt 3 Full Pointer Volle Zeiger decken den Bedarf fiir Referenzen auf komplexen Datenstrukturen mit Schleifen z B doppelt verkettete Listen und Alias Zeigern Sie werden auch dann verwendet wenn ein Zeiger auf NIL erforderlich ist und von der DCE Umgebung keine eindeutigen Zeiger unter st tzt werden Hierbei mu der Stub Code auch Endlosschleifen in Zeigerfolgen abdecken Dies wird dadurch gel st da jedem vollem Zeiger eine eindeutige Knotennummer zugeteilt wird 3 2 2 4 Remote Procedure Call RPC Der RPC ist eine verteilte Programmiermethode bei der eine Anwendung auf einem System Klient eine Prozedur auf einem anderen entfernteren System Server aufrufen kann Dabei werden die Unterschiede zwischen heterogenen Systemen f r den Entwickler transparent da die Datenkonvertierung vom RPC System bernommen wird Klient z RPC RPC Ausf hrung Anwendungs Anwendungs Quellcode Quellcode Stubcode Stubcode RPC RPC Laufzeitbibliothek Laufzeitbibliothek Netzwerk Sn input J gt Abb 17 RPC Modell Bei verteilten Adre r umen stellt sich das Problem der Speicherfreigabe DCE Klienten ver wenden daf r die standardisierten C Funktionen malloc und free Auf der Serverseite stellt OSF DCE eine spezielle Stub Unterst tzungsroutine zur Verf gung um Speicher zu allokieren und freizugeben S
160. ie stellen selbstverwaltende intelligente und autarke Einheiten dar die sich ndernden Anforderungen angepa t werden k nnen Zudem ist dieses gesamte System offen f r Anpassungen und Erweiterungen Module einzelne verteilte Komponenten k nnen durch andere ersetzt werden ohne die brigen Module zu beeinflussen Die berlegungen der vergangenen Abschnitte f hren abschlie end zu der Integration von OOP und Middleware Der Ansatz Objekte ber eine solche Middleware auf ein System zu verteilen f hrt zu der in dieser Arbeit verwendeten Definition von verteilten Objekten Verteilte Objekte sind Objekte im Sinne der objektorientierten Programmierung die proze bergreifend ber eine Middleware kooperieren Mehrere verteilte Objekte k nnen damit ein VS oder eine LUW bilden Weitere Details zum Thema Middleware wird in den Kapiteln zur Verarbeitung mit verteilten Objekten behandelt 2 3 Aktuelle Technologien verteilter Anwendungen im Internet 2 3 1 Grundlagen aktueller Technologien In den 50er und 60er Jahren wurden im Rahmen der Entwicklung von Gro rechnern Mainframes fast nur zentrale Systeme eingesetzt bei denen die Kontrolle und Verarbeitung ausschlie lich bei dem zentralen Rechensystem lag Aus Gr nden der Effizienz mu ten sich Unternehmen immer mehr den Anforderungen der EDV unterordnen Gleichzeitig erforderten zentrale Programme immer gr ere Computer Nicht zuletzt aus betriebswirtschaftlichen Betrachtungen her
161. iese zun chst als BugFix f r OLE 1 gedachte Erweiterung basierte schon auf dem Component Object Model COM Es war schnell klar da OLE 2 mehr als nur Dokumente von verschiedenen Programmen kombinieren konnte COM stellt ein allgemeines Paradigma f r die Kommunikation von Softwarekomponenten wie zum Beispiel Programmbibliotheken Anwendungen und Systemsoftware dar Losgel st von der dokumentenorientierten Sichtweise wurde schnell der neue Terminus OLE der keine Abk rzung ist benannt der fast alle COM basierten Technologien zusammenfa te CHAP96 Die zur Zeit letzte Etappe dieser Entwicklung bildet seit Anfang 1996 der Begriff ActiveX Zun chst wurde der neue Terminus mit Technologien von Microsoft assoziiert die mit dem Internet in Verbindung oder in diesem angewandt werden konnten Diese Auffassung ist noch heute weit verbreitet und f hrt damit oft zu Mi verst ndnissen bei der Diskussion um den Begriff und dessen Technologie Da auch ActiveX auf COM basiert stand der Terminus in direkter Ver 16 Unter WinNT 4 0 53 Verarbeitung mit verteilten Objekten bindung zu OLE Die dadurch entstandene Unklarheit seitens der Anwender begegnete Microsoft schnell mit der Neudefinition der Begriffe Zur Zeit bedeutet OLE wieder eine Technologie zur Erzeugung von Komponentendokumenten unter Verwendung von Object Linking and Embedding Die Sammlung von COM basierten Technologien der Firma wurde unter dem Sammelbegriff
162. il uuid_to_string nicht unterstiitzt Auswertung und Ausblick auf weitere Entwicklungen MS RPC Funktionsname RpcRaiseException RpcRevertToself RpcServerIngBindings RpcServerIngIf RpcServerListen RpcServerRegisterAuthInfo no DLL RpcServerRegisterIf RpcServerUnregisterIf RpcServerUseAllProtseqs RpcServerUseAllProtsegsIf RpcServerUseProtseq RpcServerUseProtseqEp RpcServerUseProtseqIf RpcSsAllocate RpcSsDestroyClientContext RpcSsDisableAllocate RpcSsDontSerializeContext RpcSsEnableAllocate RpcSsFree RpcSsGetThreadHandle nicht unterst tzt RpcSsSetClientAllocFree RpcSsSetThreadHandle RpcSsS wapClientAllocFree RpcStringBindingCompose RpcStringBindingParse RpcStringFree RpcTestCancel RpcTryExcept RpcTryFinally RpcWinSetYieldInfo RpcWinSetYieldTimeout uidCompare uidCreate uidCreateNil uidEqual uidFromString uidHash uidIsNil uidToString YieldFunctionName qaaaaqacqcqcg Tab 27 Funktionsreferenz fiir DCE und MS RPC API V2 0 Funktionen DMS Makro f r Behandlung von Ausnahmefehlern d Wird nur durch CDS unterst tzt Wird nicht unter Macintosh unterst tzt zum Teil weil DCOM noch nicht auf Macintosh Betriebssystemen MacOS verf gbar ist XXI Auswertung und Ausblick auf weitere Entwicklungen Anhang E Unterschiede in den IDL von OSF DCE und MS DCE Die beiden IDL verwenden hnliche Datenbasistypen In der folg
163. immer mit demselben Pa wort auf alle Server einer Mitgliederorganisation zugreifen K nnen Protokolle auf Basis von ffentlichen Schl sseln bieten Schutz der Privatsph re und Zuverl ssigkeit im Internet SSL siehe auch Anhang B ist zur Zeit der de facto Standard f r Verbindungen zwischen Internet Browsern und Servern im Internet Eine IETF Protokoll definition auf Basis von SSL3 ist unter der Bezeichnung Transport Layer Security Protocol TLS angek ndigt WinNT 4 0 bietet Sicherungsmechanismen die das SSL PCT Protokoll als sicheren Kanal implementieren 50 Verarbeitung mit verteilten Objekten DCOM Anwendung l RPC Runtime DPA NTLM Kerberos Channel SSL PCT Abb 18 Modell des WinNT Security Support Provider Interface Das Kerberos Authentifizierungsprotokoll definiert die Interaktion zwischen einem Klienten und einem Netzwerk Authentifizierungsdienst der als Key Distribution Centre KDC bezeichnet wird WinNT implementiert einen KDC als Authentifizierungsdienst auf jedem Dom nen Controller Diese Dom ne ist das quivalent zur einer Kerberos oder OSF DCE Zelle Die WinNT Implementierung basiert auf der Definition des Kerberos Protokolls im Internet RFC 1510 Die Laufzeitumgebung des Kerberos Klienten ist als WinNT Sicherheitsanbieter imple mentiert der auf dem Security Support Provider Interface SSPD basiert Initiale Kerberos Authentifizier
164. ind die Grundentit t auf deren Basis das Betriebssystem Rechenzeit verteilt wird Ein Thread kann jeden Teil des Anwendungscodes einschlie lich dem der zur Zeit durch einen anderen Thread ausgef hrt wird ausf hren Alle Threads eines Prozesses teilen sich den gleichen virtuellen Adre raum und die Ressourcen des Betriebssystems f r diesen Proze MS942 Diese Technologie wird zunehmend eingesetzt da sie die Performanz eines Anwendungssystems erheblich steigern kann Programmierer k nnen Bibliotheken von Threads ineinander ver schachteln um so ausgesetzte mit aktiven Operationen zu verflechten und damit die Auslastung des Prozessors auf einem relativ konstanten Niveau zu halten Die Implementierung von DCE Threads basiert auf den POSIX 1003 5a Draft 4 Standard Ihr Einsatz im DCE Umfeld liegt 45 Verarbeitung mit verteilten Objekten vor allem bei Servern die damit mehrfache simultane Anforderungen von verschiedenen Klienten abarbeiten k nnen 3 2 3 COM und MS Windows NT 3 2 3 1 WinNT als Plattform f r COM Nach einer ausf hrlichen Behandlung der DCE Spezifikation sollen im folgenden vor allem die Unterschiede zwischen OSF DCE und dessen Pendant in der Implementierung des Betriebs systems WinNT der Firma Microsoft aufgezeigt werden Letzteres soll im weiteren als MS DCE bezeichnet werden da eine einheitliche Namensgebung auch durch die Firma Microsoft nicht vorliegt und die vielen hnlichkeiten diese Benennung unterst tzen
165. indung zur Datenbank die mit einer Datenbank URL jdbc msql hostname port database angegeben wird Dieser Manager ist abgesehen von Ausnahmebehandlung und Unterklassen wie java Util Date die einzige instantiierbare Klasse des JDBC 74 Beispielentwicklung und implementierung Jede JOBC Implementierung mu folgende Schnittstellen anbieten MOR97 e java sql Driver Der DriverManager verwendet einen Treiber um die Datenbank URL zu verarbeiten Kann ein Treiber in der angegebenen Liste die Verbindung zur Datenbank aufbauen wird dieser verwendet ROD97 Da Anwendungen Treiber nur indirekt referenzieren findet diese Schnittstelle kaum direkte Anwendung e java sql Connection Eine Connection ist eine einzelne Datenbanksitzung Sie speichert Informationen zu dieser Sitzung und stellt die Objekte Statement PreparedStatement und CallableStatement zur Ver f gung e java sql Statement Ein Statement ist eine SQL Anweisung f r eine Datenbank Als Ergebnis wird entweder ein ResultSet oder die Anzahl der ver nderten Datens tze zur ckgegeben Unterklassen sind java sql PreparedStatementund java sql CallableStatement Ersteres ist ein vorkompilierter Datenbankaufruf der in einer Stored Procedure ohne OUT und INOUT Parameter gespeichert wird F r gespeicherte Prozeduren Stored Procedures mit OUT oder INOUT Parametern wird die CallableStatement Klasse verwendet e java sql ResultSet Das ResultSet ist die Ergebnismenge einer SQL Abfra
166. ionellen Niveau da keine der bekannten Programmiersprachen direkt die IDL Definitionen umsetzen kann Die in der IDL Syntax beschriebenen Schnittstellen m ssen zun chst in quivalente Konstrukte der betreffenden Programmiersprache bersetzt werden so da diese mit ihren Mitteln Methodenaufrufe Funktionsaufrufe usw den Zugriff auf eine Schnittstelle realisieren und durchf hren kann MOV95 Die Vorschriften f r die Zuordnung sind in sogenannten Language Mappings festgelegt die f r jede Programmiersprache spezifisch sind F r C C und Smalltalk sind die Language Mappings heute standardisiert F r JAVA OMG97 Ada Fortran und Objective C sind entsprechende Standards der OMG vorgeschlagen Die Realisierung der im Language Mapping beschriebenen Schnittstellen ist vom ORB abh ngig Sie kann neben den durch CORBA standardisierten auch propriet re Schnittstellen zum ORB Kern bereitstellen Dabei wird versucht die Details der Implementierung dem Entwickler transparent zu gestalten RED96 3 2 1 5 CORBA Services Die CORBA Services sind Dienste der Systemebene die IDL spezifizierte Schnittstellen anbieten Sie bereichern und vervollst ndigen die Funktionalit t des ORB und werden verwendet um Objekte zu erstellen zu benennen und in die CORBA Umgebung zu integrieren Die OMG Object Services bestehen aus der Common Object Service Spezifikation COSS einer Serie aus mehreren B nden die jeweils aus einem Object Ser
167. iothek des Servers der diese dann an den Sicherheitsdienst bergibt Dieser berpr ft an schlie end die G ltigkeit Sind die Credentials g ltig f hrt der Server den Aufruf aus ansonsten wird der Klient abgelehnt Folgende Aufgaben werden vom Server ausgef hrt wenn der Klient eine Anbindung unternimmt 1 Verkn pfungsinformationen ber den Klienten werden erfragt 2 ber die erhaltene Verkn pfung werden Authentifizierungsinformationen erfragt und mit Hilfe des Sicherungsdienstes berpr ft 3 Die Credentials des Klienten werden mir der ACL auf der Datenbank des Sicherheitsservers verglichen Mit der Version 2 0 des MS RPC werden jetzt auch IPX und UDP mit Sicherungsmechanismen unterst tzt Die Laufzeitbibliothek unterst tzt weiter das Banyan Vines SSP Transportprotokoll SIN97 DCE Pipes werden auf allen Transportprotokollen unterst tzt Abschlie end soll noch darauf hingewiesen werden da sich in der aktuellen Version des MS RPC die Stubs nicht mehr auf die Existenz der Betriebssystem API Methoden MIDL_User_Allocate und MIDL_User_Free st tzen m ssen um Speicher auf Seite des Servers zu allokieren und freizugeben Die Version 2 0 des MS RPC ist in diesem vormals wichtigstem Unterschied ROS931 der Systeme konform zum OSF DCE geworden vgl Anhang E 1 Banyan Enterprise Klient f r WinNT V5 56 erforderlich 49 Verarbeitung mit verteilten Objekten Ein wesentlicher Unterschied bleibt jedoch b
168. ird Polymorphismus unterst tzt da zwei verschiedene Kompo nentenobjekte das gleiche Interface bezeichnung oder nur eine gleiche Methode anbieten k nnen Der einzige Unterschied ist da COM lediglich die Interfacevererbung nicht aber die Komponentenvererbung unterst tzt Diese Einschr nkung ist ein Tribut an die strenge Kapselung der Objektimplementierung im COM da durch Vererbung der Implementierung dem Erben unter Umst nden geheime Eigenschaften des Ursprungsobjekts offenbart werden k nnen Die Unterst tzung der Interfacevererbung birgt diese Gefahr nicht Um trotzdem den Code von Komponenten wiederverwenden zu k nnen simuliert COM Codevererbung durch Kapselung und Aggregation Durch Kapselung kann ein Komponentenobjekt die Methoden eines zweiten Komponentenobjektes aufrufen um eine Aufgabe zu erf llen Durch Aggregation kann ein Komponentenobjekt Methoden eines zweiten Komponentenobjekts als seine eigenen offenlegen Im Vergleich zu den traditionellen Programmiersprachen wie zum Beispiel C ist COM nicht objektorientiert adressiert aber auch andere Probleme als die der Programmiersprachen Als Modell bietet COM alle Vorteile der Objektorientierung Ein COM Objekt wird immer innerhalb eines Servers implementiert der entweder als eigen st ndiger Proze oder als Dynamic Link Library DLL realisiert werden kann Eine DLL ist eine ausf hrbare Routine die gew hnlich eine bestimmte Funktion oder eine Reihe von Funktionen a
169. ist weltweit eines der gr ten Dienstleistungsunternehmen im Bereich der Entwicklungszusammenarbeit In 135 L n dern des S dens und Ostens arbeiten mehr als 8 000 Mitarbeiter Um eine effiziente Kooperation von diesen verteilten Unternehmenseinheiten zu gew hrleisten werden die Au enstellen an das TCP IP Local Area Network LAN der Zentrale in Eschborn ber Wahl und Standleitung mit unterschiedlicher bertragungskapazit t angebunden Diese Anbindung stellt zur Zeit nur Dienste l grafisches Front end zur Navigation im WWW wie zum Beispiel ISAPI und das Server Plug in API von Netscape Einf hrung und Motivation f r die Telekommunikation zur Verf gung soll aber in Zukunft f r Informationszugriff und verarbeitung ausgebaut werden Dabei sind besonders Microsoft ACCESS Datenbanken von Bedeutung Dar ber hinaus werden auch auf INFORMIX und ADABAS NATURAL Daten banken Datenbest nde von allgemeinem Interesse wie zum Beispiel Telefonlisten Personaldaten Adressenverzeichnisse und Informationen zur Kostenverrechnung bereitgestellt Zunehmend nimmt auch der SQL Server der Firma Microsoft an Bedeutung zu In der vorliegenden Arbeit sollen sowohl Sprachen als auch die verf gbaren Komponentenmodelle verglichen werden Exemplarisch wird ein Active View auf ODBC Datenquellen in einer 3 Schicht Architektur implementiert um so Defizite der Technologien im praktischen Einsatz aufdecken zu k nnen Besonderes Augenmerk wird
170. istrierten Dom ne z B eines Intranet eindeutig ist Eine Netzwerkkomponente kann dabei f r jeden ihrer Netzwerkadapter jeweils eine IP Adresse zugewiesen bekommen Ein Port ist der Dienst bergang einer Anwendung auf einem Computer die durch eine 16bit Nummer identifiziert wird Im Gegensatz zur IP Adresse ist die Port Nummer nur innerhalb der Netzwerkkomponente eindeutig Damit identifiziert die Kombination von IP Adresse und Port eindeutig einen Dienst einer Netzwerk komponente Das Hauptargument f r den Einsatz des Internets in Unternehmen Intranet ist eine einheitliche Plattform die weltweite Kompatibilit t garantiert und zudem u erst flexibel den unternehmens weiten Arbeitsabl ufen angepa t werden kann Hinzu kommt die ausgezeichnete Eignung als Basis f r verteilte Anwendungen Betrachtet man ein Netzwerk auf Basis von TCP IP sei es nun eine Intranet oder Internettopologie gibt es verschiedene aktuelle Middleware Technologien Zum einen wurden die bekannten Technologien f r TCP IP basierte LANs auf das Internet portiert zum anderen sehen wir neue Entwicklungen von echten Middlewareplattformen f r das Intranet 2 3 2 Hypertext Mark up Language HTML Die breite Palette von Computern Darstellungsformaten und Softwareplattformen bei heterogenen Netzwerken erfordert eine Strategie in welcher der Klient die Hauptrolle in der Entscheidung spielt wie erhaltene Informationen verarbeitet und oder angezeigt werden Eine
171. it zwei unterschiedlichen Typen von ISAPI DLLs 1 ISAPI Anwendungen sind Erweiterungen welche die dynamische Inhaltserstellung und bei Anforderung auch die explizite Inhaltserstellung erm glichen Explizite Seiten sind dabei auf dem WWW Server abgelegt dynamische Seiten werden erst bei Anfrage durch den Klienten erstellt s Vergleiche auch http home netscape com newsref std SSL html Internet und Intranet 2 ISAPI Filter fiigen sich in den Kommunikationspfad zwischen Klient und Server ein Sie modifizieren oder observieren alle Ein und Ausgaben und k nnen das Verhalten des Servers daraufhin anpassen Der Einsatz von ISAPI wird in der folgenden Abbildung deutlich Abb 5 ISAPI Filter als weitere Sicherungsschicht Wie die Abbildung zeigt k nnen insbesondere die ISAPI Filter auch einen Sicherheitsbeitrag bieten Trotz der Vorteile welche die ISAPI Technologie gegen ber dem weitaus st rker ver breiteten CGI bietet ist die ISAPI Technik propriet r und bietet auch nur eine statische Dar stellung von Informationen F r Einzelheiten ber Technologie und Anwendung von ISAPI siehe auch MS963 Eigenschaft HTTP ISAPI Sichere Verbindung ja ja Parameter Marshalling ja ja Schnittstellenbeschreibung nein nein dynamic discovery dynamic invocation nein nein Garbage Collection nein nein Zugangskontrolle nein ja Sicherheit ja SSL SHTTP ja SSL SHTTP NT Sicherheit Einsatz durch Firewalls ja ja pro
172. itektur von unten schrittweise aufsteigend durchgegangen Auf dem MS SQL Server der die angeforderten Datenbanken GTZ h lt mu zun chst der Trigger mit der folgenden vereinfachten SQL Anweisung erstellt werden CREATE TRIGGER tr_triggerhelper ON GTZ FOR UPDATE AS DECLARE ID int SELECT ID i ID FROM inserted i EXECUTE master triggerhelper ID GO 82 Beispielentwicklung und implementierung Der Trigger tr_triggerhelper wird immer dann ausgefiihrt wenn eine Modifikation an der Beispieltabelle GTZ erfolgt ist In einem solchen Fall wird die Variable ID deklariert ihr die ID des modifizierten Datensatzes zugewiesen und die gespeicherte Prozedur triggerhelper mit dem Parameter ID aufgerufen Diese gespeicherte Prozedur ihrerseits wird mit der Anweisung exec sp_addextendedproc triggerhelper TriggerHelper dll erstellt und verweist lediglich auf die C TriggerHelper DLL Der Code dieser MS Windows DLL ist in der Anlage zu finden und dort dokumentiert Beachtenswert an dieser L sung ist da sie der zugrundeliegenden Tabelle keinerlei Vorgaben oktroyiert Damit kann eine einheitliche L sung f r verschiedene Datenbest nde eingesetzt werden Da die DLL innerhalb des Proze raumes des MS SQL Servers l uft mu f r die Kommunikation mit dem JAVA Server eine Interproze kommunikation aufgebaut werden Unter den m glichen Vorgehensweisen wie Shared Memory und
173. itung zur Verf gung Datagramme werden vor allem f r schnelle Informationsverbreitung verwandt ORF97 Diese unter schiedlichen Voraussetzungen f hren dazu da Stream Sockets ca 150 mal langsamer als Datagram Sockets sind ORF97 Die Verwendung von Sockets f r die Implementierung verteilter Objekte ist da das Socket Konzept auf einer sehr tiefen Schicht operiert sehr aufwendig Insbesondere die Verwaltung von vielen Klienten und Verbindungen f hrt zu erheblichem Programmieraufwand Da f r eine sichere Kommunikation auf Stream Sockets zur ckgegriffen werden mu ist dieses Modell auch sehr langsam Die folgende Tabelle fa t die Eigenschaften von Sockets zusammen und dient am Ende dieses Abschnittes f r den Vergleich der vorgestellten Technologien Eigenschaft Sichere Verbindung nein ja Parameter Marshalling nein nein Schnittstellenbeschreibung nein nein dynamic discovery dynamic invocation nein nein Garbage Collection nein nein Zugangskontrolle nein nein Sicherheit ja SSL ja SSL Einsatz durch Firewalls ja ja propriet r nein nein Tab 1 Eigenschaften von Sockets ORF97 Diese Tabellenstruktur wird in den folgenden Kapiteln wiederholt um dem Leser eine vergleichende und bersichtliche Darstellung der pr sentierten Technologien zu erm glichen Bei Bedarf werden einzelne Punkte zugef gt oder ausgelassen Im besonderen bedeuten die aufgef hrten Eigenschaften e Parameter Marshalling Plattformunabh ngige
174. kation des Servertyps In Process lokal entfernt e F r In Process und lokale Server wird der vollst ndige Pfadname der Datei DLL oder ausf hrbare Datei f r entfernte Server ein Suchkriterium z B IP Adresse oder NetBEUI Bezeichner f r das Auffinden des Hosts aufgef hrt Normalerweise f gt eine Klasse ihre eigene CLSID automatisch an die Registry an sobald sie zum ersten Mal instantiiert wird COM Server besitzen per Konvention die F higkeit zur eigenen Registrierung Bei Bedarf mu der Eintrag auch durch ein Installationsprogramm vorgenommen werden ActiveX Komponenten haben dar ber hinaus immer die M glichkeit der Eigen registrierung 3 2 3 2 2 4 Moniker In objektorientierten Systemen ist es sinnvoll eine Objektinstanz eindeutig identifizieren zu k nnen COM selbst bietet keine M glichkeit eine Objektinstanz zu bezeichnen Ein Klient kann eine generische Instanz einer Komponente durch den Aufruf von CoCreatelInsance und bergabe der CLIDS erzeugen Wenn dieses Objekt persistente Daten tr gt kann der Klient durch Verwendung der Persist Interfaces das Objekt dazu veranlassen diese Daten zu laden f r eine detaillierte Beschreibung des Persistent Services von COM mittels des Persist Interfaces siehe CHAP96 Daf r mu dem Klienten aber sowohl die CLSID als auch das Verfahren zum Laden der persistenten Daten bekannt sein Die Kombination dieser Informationen wird deshalb in einer separaten Komponente gespeichert
175. komplexere DML Ausdr cke als ANSI SQL Datentypen zus tzlich long varchar und long varbinary Batch SQL Ausdr cke und Prozeduraufrufe Eine vollst ndige Unterst tzung wird zum Beispiel durch den MS SQL Server V6 0 angeboten der in den Implementierungen dieser Arbeit Anwendung findet Die folgende Tabelle zeigt exemplarisch die grundlegenden SQL Anweisungen mir ihren jeweiligen Klassifizierungen der Konformit t SOL Anweisung Konformit t Alter Table Kern Create Index Kern Create Table Minimum Delete Minimum Drop Index Kern Drop Table Minimum Insert ein Zeile Minimum Insert mehrere Zeilen Kern Select eine Tabelle Minimum Select mehrere Tabellen Kern Update Minimum Tab 15 Konformit tsklassen von SQL Anweisungen JDBC eignet sich f r die Anbindung von Applikationen und Applets an Datenbanken ber das Internet oder Intranet da hier die Klassen in JAVA zur Verf gung stehen Im Gegensatz dazu 78 Beispielentwicklung und implementierung f hrt die Anwendung der JDBC ODBC Br cke durch die Einschr nkungen der VM hier zu Behinderungen da ein Zugriff auf lokale native Treiber nicht m glich ist Dar ber hinaus ist es Applets nicht m glich Datenbankserver im Internet zu finden Damit kann nicht gew hrleistet werden da ein ben tigter Treiber tats chlich zur Verf gung steht Letztlich scheitert der Versuch eine ODBC Datenquelle durch ein Applet anzusteuern g nzlich Da die ODBC API Software als nati
176. lar als Internetprogrammiersprache besonders f r kleinere Anwendungen etabliert Diese objektorientierte Programmiersprache der Firma SUN ist gerade aufgrund ihrer Plattform unabh ngigkeit f r den Einsatz im Internet pr destiniert Als Middlewarebasis bietet sich hier CORBA gegen ber COM an Im Vergleich zwischen den verschiedenen Middlewareplattformen wird auf der anderen Seite COM als Konkurrenzmodell f r CORBA betrachtet Als Modell f r bin re Komponenten ist bei COM die verwendete Programmiersprache im Grunde unerheblich ActiveX Komponenten k nnen als reduzierte COM Spezifikation zur Zeit in MS C MS Visual JAVA und MS Visual Basic realisiert werden Exemplarisch wird in dieser Implementierung auf Visual Basic der Firma Microsoft zur ckgegriffen Visual Basic ist eine der am meisten verwendeten Programmiersprachen und ist aufgrund des hohen Abstraktionsgrades leicht zu implementieren Attribut Programmiersprache Ja Nein Sprachneutrale Komponentenarchitektur Nein Ja Virtual Machine Ja Nein Einfach Ja Ja Robust Ja Ja Objektorientiert Ja Ja Plattformunabh ngig Ja Ja 9 Multi Threaded Ja Ja Verteilt Nein Ja Tab 13 Sind JAVA und ActiveX vergleichbar In der obigen Tabelle werden die Unterschiede und Gemeinsamkeiten von JAVA und ActiveX zum besseren Verst ndnis dargestellt Es wird deutlich da JAVA als Programmiersprache nur in Verbindung mit einer Middleware eine Basis f r verteilte Objekte bieten kann ActiveX basi
177. lentwicklung und implementierung erlegten Sicherheitsrestriktionen nicht direkt durchf hren Der Zugriff auf die JDBC ODBC Br cke kann nur durch eine JAVA Anwendung erfolgen Dadurch ist eine 3 Tier Struktur der Implementierung vorgegeben Diese JAVA Anwendung soll im weiteren als JAVA Server bezeichnet werden Die Kommunikation erfolgt ber den Door ORB Da an dieser Stelle auf die Verwendung von speziellen CORBA Diensten verzichtet werden kann reicht dieser sehr einfache ORB aus um die Vor und Nachteile der Implementierung zu verdeutlichen ROD97 In der Weiterf hrung dieser berlegung mu der JAVA Server auf dem WWW Server laufen da ein Applet nur eine Socket Verbindung zu dem WWW Server aufbauen kann von dem es initial geladen wurde Die M glichkeit des Einsatzes eines Stellvertreterprogramms z B als CGI Skript realisiert welches die Weitergabe von Socket Aufrufen an eine weitere Maschine durchf hrt ist auch hier gegeben Da die f r die Kommunikation verwendeten Ports bekannt sind kann die Kommunikation zwischen JAVA Klient und Server auch durch ein Application Level Gateway geschleust werden bevor sie an den JAV A Server weitergegeben wird Dadurch ist eine minimale Sicherung des Servers m glich Um den letzen Schritt der Entwurfs berlegungen durchf hren zu k nnen mu zun chst der Begriff des Triggers dargestellt werden Der MS SQL Server ab Version 6 0 implementiert diesen Mechanismus der im Grunde nur eine sp
178. lexibilit t und erleichtert die Wartung Eine auf Objekten basierende Denkweise erm glicht ein durchg ngiges Konzept von der Analyse bis zur Implementierung Neben der besseren Verst ndlichkeit sind gute Erweiterbarkeit Wiederverwendbarkeit und einfache Wartung weitere Vorteile der objekt Internet und Intranet orientierten Technologie die zur Kostensenkung beitragen Der Einsatz des Paradigmas der Objektorientierung ist also im allgemeinen anzustreben Die allgemeine Definition von Objekten wird in den folgenden Kapiteln bei Bedarf erg nzt und erweitert Auf Unterschiede zu dieser grunds tzlichen Definition wird gesondert hingewiesen 2 2 5 Middleware Middleware ist eine Sammlung von Softwarediensten welche die Implementierung von Klient Server Modellen unterst tzen Sie Kann zum Beispiel eine gemeinsame Schnittstelle und eine Auswahl von Diensten anbieten wenn verschiedene Systemplattformen Anwendung finden Fortgeschrittene Middleware kann weiter die Lokation der Dienste und anderer Anwendungen vor dem Benutzer verbergen Middleware ist eine Softwareschicht welche eine gemeinsame Schnittstelle und bersetzung zwischen den Anwendungen den Daten und dem Betriebssystem bietet BRU97 Es gibt verschiedene Dienste die Middleware anbieten kann Die folgende exemplarische Auf z hlung der wichtigsten Dienste ist nicht ausschlie lich e Verzeichnis Verwaltet Standort und Eigenschaft von Netzwerkressourcen e Sicherhei
179. lich um einen Datenbankklienten auf einer entfernten Maschine zu implementieren ODBC Schnittstellendefinition mu in die Registry eingetragen werden dieser Vorgang ist aber gegebenenfalls zu automatisieren Dadurch eignet sich dieser Ansatz besonders f r den Einsatz im Internet innerhalb einer ActiveX Komponente Die folgende Funktion dient der ODBC Treiber Initialisierung zur Laufzeit MSKB972 Er ist f r die ODBC V 3 0 getestet Das in dieser Arbeit implementierte Beispiel basiert auf dem ODBC Treiber V3 0 32 1 Die ODBCINST DLL ist ein Bestandteil des Treibers Declare Function SQLConfigDatasource Lib odbcinst dAll _ ByVal Hwnd ByVal fRequest ByVal lpszDriver _ ByVal lpszAttributes As Integer Global Const SQL_Add_DataSource 1 Function New_DataSource DataSourceType DataSourceName ServerName DatabaseName As Variant Dim DName DSNamen Server DDatabase As String DName DataSourceType amp Chr 0 DSName DSN amp DataSourceName amp Chr 0 Server Server amp ServerName amp Chr 0 DDatabase Database amp DatabaseName amp Chr 0 23 ODBC Treiber f r verschiedene BS finden sich auf http www microsoft com data odbc download htm 93 Beispielentwicklung und implementierung New_DataSource SQLConfigDatasource 0 amp SQL _Add_DataSource _ DName _ DSName amp Server amp DDatabase End Function Die Funktion SQLConfigDataSource wi
180. lickeits Verschl s i its Ala verlust selung mierung Zugriffs Integrit tsverlust schutz eles tronische Verbindlichkeit nn Signatur verlust bertragungssicherheit Tab 6 Sicherheitsstrategien und ma nahmen Vor allem die Strategien der Erkennung Begrenzung und Dokumentation m ssen in einem DV System vorausgesetzt werden k nnen Durch den Anschlu eines Unternehmenssystems an ein ffentliches Netz wie dem Internet kommt der Vermeidung eine besondere Bedeutung mit einer neuen Qualit t zu siehe Kapitel 2 4 2 4 Abgesehen von den Sch den durch Fahrl ssigkeit und Mutwillen der eigenen Mitarbeiter Kommen in diesem Szenario Gefahren durch mutwillig operierende Hacker und konkurrierende Unternehmen hinzu F r eine begriffliche Pr zisierung wird in der weiteren Diskussion ein Grundmodell verwendet das sich wie folgt aufbaut Ein Objekt Subjekt genannt stellt an ein Objekt eine Anforderung und das Objekt liefert an das Subjekt ein auch negatives Ergebnis Das Objekt ist f r seinen Schutz verantwortlich Anforderung Subjektname Objektname Operation Ergebnis Abb 8 Die Verantwortung eines Objektes Je nach Grad des Vertrauens zwischen Subjekt und Objekt k nnen st rkere oder schw chere Schutzmechanismen angewandt werden um den Break Even Point COL89 bei der Kosten Nutzen Funktion anzun hern BER96 2 4 2 4 Vermeidende Schutzmechanismen F r Anwendungen im Internet haben die vermei
181. lten Nur der vorbereitende Code im Server unterscheidet sich leicht siehe dazu den Quellcode auf den Datentr gern der Anlage F Schematisch stellt sich der einfache Aufbau des Servers wie folgt dar Klient Datenbank Maschine Maschine i optional ActiveX Server MS SQL Server Activex Klient ODBC Abb 39 Anwendungsrealisierung unter Visual Basic und COM Wenn der Server also nur die Aufgabe der Objektinitialisierung hat dr ngt sich die Frage nach dessen Notwendigkeit auf Da aufgrund der Ortstransparenz von COM das RDO Objekt nicht auf dem Klientensystem installiert sein mu k nnte der ActiveX Klient das Objekt direkt selbst instantiieren initialisieren und dessen Methoden aufrufen Diese Annahme ist aus zwei Gr nden jedoch nicht korrekt Zum einen ist das Datenobjekt sei es nun RDO oder DAO selbst nicht als eigenst ndiger Server also weder lokal noch entfernt sondern als In Process Server imple mentiert Zum anderen und dieser Grund stellt auch gleichzeitig die zweite Aufgabe des Servers dar kann nicht davon ausgegangen werden da die ODBC API auf dem Klientensystem installiert ist Der realisierte Server stellt die ausf hrbare H lle f r das In Process Serverdaten objekt zur Verf gung und greift dabei auch auf den ODBC Klienten auf seinem System zu In der vorliegenden Implementierung bernimmt der Server direkt die Authentifizierung des Anwender
182. lungszeit und die damit verbundenen Kosten sind minimal Demgegen ber steht die sehr aufwendige Implementierung der RecordSet Klasse in der Beispielimplementierung auf Basis von JavalDL Die Kombination von dieser Klasse mit der separaten C Implementierung des TriggerEvents stellt die Voraussetzungen f r einen aktiven in JAVA realisierten Zwischenspeicher auf der Seite des Datenbankklienten dar Dabei ist die Verwendung von gespeicherten Prozeduren f r die Realisierung des TriggerEvents ein entscheidender Optimierungsschritt im Modelldesign der vorgestellten Implementierung Aufgrund der sehr unzureichende Performanz der heute verf gbaren VMs kann nur durch Verlagerung der Rechenleistung auf den Datenbankserver eine Beschleunigung bei der Verarbeitung von Abfragen erreicht werden DIC97 Dieser Schritt ist im RDO Modell nicht erforderlich Inwiefern sich diese Situation mit zuk nftigen Compilergenerationen Interpreter 103 Beispielentwicklung und implementierung mit JIT Compiler oder der angek ndigte schnelle Host Spot Compiler ndert bleibt abzuwarten DIC97 Diese neuen Technologien werden im folgenden Kapitel vorgestellt 104 Auswertung und Ausblick auf weitere Entwicklungen 5 Auswertung und Ausblick auf weitere Entwicklungen 5 1 Verf gbarkeit Die Entwicklungen im Bereich der Middlewareplattform COM sind vielschichtig In Kooperation mit Microsoft hat die Software AG im Sp tsommer 1997 die erste Betaversion von
183. m DCE Kompatibilit tsmodus konfiguriert werden Syntaxtische Unterschiede in den Datentypen der einzelnen Sprachen werden im Anhang E aufgef hrt Abschlie end ruft der DCE IDL Compiler den C Compiler automatisch auf was bei dem MIDL Compiler nicht der Fall ist Diesem Unterschied ist in Skripten f r die Kompilation z B MakeFile Rechnung zu tragen Ein besonderes Augenmerk f llt bei IDL auf die bergabe von Zeigern da sich die einzelnen Prozesse in unterschiedlichen Adre r umen befinden MS RPC V2 0 unterst tzt alle drei OSF DCE Zeigertypen vgl Kapitel 3 2 2 3 Im Microsoft Modul des MIDL k nnen im Gegensatz zu OSF DCE IDL auch Zeiger in importierten IDL Dateien deklariert werden Die folgende Reihen folge von Zust nden wird dabei im sogenannten Microsoft Extensions Mode angewandt MSRPC97 1 Ein explizites Pointer Attribut ist auf Verwendungsseite deklariert Das REF Attribut falls ein nicht attributierter Zeiger ein top level Zeigerparameter ist Falls ein pointer_default Attribut in der definierenden Schnittstelle spezifiziert ist Falls ein pointer_default Attribut in der Basisschnittstelle spezifiziert ist Falls das UNIQUE Attribut vorhanden ist a A U N 47 Verarbeitung mit verteilten Objekten Abschlie end unterst tzt MIDL das Microsoft propriet re Transportprotokoll Named Pipes welches besonders bei der Kommunikation von Microsoft Serverdiensten untereinander aber auch in der ein
184. mittlung 2 Sicherung k ee Sicherung 1 Bit bertragung Abb 11 Einbettung von Firewalls in das OSI Modell Dadurch wird ersichtlich da eine Firewall ab Schicht 2 jeglichen Protokollverkehr zweier kommunizierender Schichten kontrolliert siehe dazu und zum TCP IP Modell TAN97 Es gibt drei Grundtypen von Firewalls 1 Paket Filtering Gateways Diese Gateways bieten eine einfache und billige M glichkeit der Sicherung Die F higkeit der Filterung resultiert aus dem Einsatz eines Routers der zur Verbindung eines Intranet zum Internet ohnehin ben tigt wird Paketfilternde Gateways selektieren Pakete aufgrund von x Verbindungssysteme zwischen TCP IP Netzen die auch Vermittlungsfunktion erf llen HER93 28 Internet und Intranet Quell oder Zieladresse und Port Unerwiinschte also potentiell unsichere Pakete werden nicht bertragen Die Konfiguration der Routen ist allerdings ein f r Fehler sehr anf lliger Vorgang was den ausschlie lichen Einsatz dieser Gateways nicht empfehlenswert macht CHES94 Zudem k nnen Manipulationen nur schwer erkannt werden 2 Application Level Gateways Die Gateways auf Anwendungsschicht sind das Gegenst ck zu den Paketfiltern Anstelle einer Regelung auf sehr niedriger Ebene die unabh ngig vom Inhalt des Datenstroms operiert werden hier nur sehr dedizierte Anwendungen freigegeben Dies ist schon allein deswegen sinnvoll da hier kaum Fehler durch falsche Konfiguration m gli
185. mplementierung an den ORB Dabei werden f r unterschiedliche Objekttypen entsprechende OA zur Verf gung gestellt F r Standard implementierungen steht der BOA zur Verf gung Auch hier finden sich Unterschiede im zeitlichen Ablauf der Operationen die in CHU97 aufgef hrt sind Beide Methoden f hren aber zum gleichen Ziel 3 2 4 4 bertragungsschicht Die bertragungsschicht erweitert die Sockelschicht auf eine Verteilung auf verschiedene Maschinen Der Unterschied auf dieser Ebene zeigt sich vor allem in der Methode wie entfernte Interfacezeiger oder Objektreferenzen dargestellt werden um die Server Endpointinformation zum Klienten zu bertragen und in den Darstellungsformaten in denen Daten ber heterogene Systeme bertragen werden CORBA spezifiziert kein Protokoll f r die Kommunikation zwischen Klienten und Objektserver ber einen ORB des gleichen Herstellers Das Protokoll f r ORB bergreifende Kommunikation ist vom Hersteller der ORB abh ngig F r die Interoperabilit t zwischen verschiedenen ORB Produkten ist ein General Inter ORB Protocol GIOP spezifiziert Eine gesonderte Spezifikation ist f r die Abbildung von GIOP auf TCP IP Verbindungen im Internet Inter ORB Protocol IOP festgelegt Die D COM bertragungsschicht basiert auf MS RPC Es bietet im Unterschied zu CORBA eine verteilte Garbage Collection durch ein pinging protocol 3 2 4 5 Zusammenfassung COM und CORBA bieten auf einer h
186. mponenten werden nicht verwandt Bei den Abh ngigkeiten der Installationsumgebung ist darauf zu achten da die Datei STDOLE2 TBL eingebunden ist Die Installation mu nicht ist als Shared Component durchgef hrt werden da die Kommunikation von D COM gehandhabt wird Der Klient wird als Standard EXE erstellt Als Projektreferenz wird der oben generierte Server angegeben Durch die F higkeit des ActiveX Servers sich selbst zu registrieren erscheint er unmittelbar nach Erstellung in der Auswahl der aktiven Komponenten bei Remote OLE Automation in VB4 0 w re eine manuelle Registrierung durch Starten des Servers n tig 97 Beispielentwicklung und implementierung Der Kern der Objektreferenzierung im Klienten stellt sich wie folgt dar Option Explicit Public oServer As New DCOMServer clsDCOMServer Die Methoden des Serverobjektes k nnen wie bereits in der einf hrenden Darstellung des Code segments des Klienten erl utert sofort ausgef hrt werden Beim Beenden des Klienten durch den Anwender mu das Objekt wieder freigegeben werden Private Sub Form_QueryUnload Cancel As Integer _ UnloadMode As Integer Set oServer Nothing End Sub Das Objekt Nothing ist dabei das MS Visual Basic Pendant zum NIL Zeiger in C 4 3 6 Bewertung der Implementierung Die hier vorgestellte Implementierung zeichnet sich insbesondere durch ihre Einfachheit und der damit verbundenen sehr kurzen Entwicklungszeit aus Nachdem die K
187. mt die Aufgabe der direkten Kommunikation der einzelnen Anwendungen mit dem Directory Service und erleichtert so die Implementierung erheblich Der Domain Name Service DNS ist ein weitverbreiteter globaler Namensdienst der heute in vielen Netzwerken als Namensdienst f r Internet Hostnamen verwendet wird Dieses Konzept wird auch unter WinNT und NIF von SUN Microsystems aufgegriffen Die Spezifikationen des DNS sind in den RFC 1034 und RFC 1035 festgelegt Der verteilte Dateidienst Distributed File Service DFS ver ffentlicht eine einzelne Ver zeichnisstruktur ber alle Dateisysteme einer Zelle DFS findet dann seine Bedeutung f r Anwender wenn diese immer einen eindeutigen Bezeichner f r eine Datei angeben m chten unabh ngig davon von welcher Lokation sich der Anwender an das System angemeldet hat F r die Programmierung selbst ist dieser Dienst kaum von Bedeutung da in VS auf Basis von Klient Server Modellen die Daten fast immer auf eindeutigen Servern innerhalb des Systems abgelegt sind ROS931 Der Distributed Time Service DTS synchronisiert alle Systeme einer Zelle Prozesse auf unterschiedlichen Systemen k nnen die aktuelle Zeit vom DTS abfragen und eine homogene Antwort erwarten Dieser Dienst wird vor allem bei spezialisierten Anwendungen mit Echtzeit Beschr nkung aber auch bei paralleler Verarbeitung und konkurrierendem Zugriff auf Informationen in VS verwendet 3 2 2 6 Threads Threads s
188. n je nach Bedarf vom Anwendungsprogrammierer aus den Schnittstellenbeschreibungen der verwendeten Objekte generiert und dem System hinzugef gt Die Aufgaben von Stub und Skeleton verteilen sich analog zum RMI Modell vgl Kapitel 2 3 5 Um einen Request zu initiieren kann ein Klient entweder das Dynamic Invocation Interface DID oder einen vom IDL Compiler f r eine IDL Schnittstellendefinition generierten Stub benutzen Im DII mu zur Laufzeit spezifiziert werden 1 welches Objekt angesprochen wird 2 welche Operationen ausgef hrt werden und 3 welche Argumente die Operation hat Anzahl Typ Modus Wert Die Verwendung von Stubs vereinfacht die Programmierung da die Schnittstelle des auf gerufenen Objektes bereits in der Entwicklungsphase bekannt ist dieses Verfahren wurde bei der Beispielimplementierung verwendet RED96 Die Objektimplementierung empf ngt einen Request indem der ORB ber ein Skeleton eine Methode aufruft Das Skeleton ist speziell f r einen Schnittstellentyp spezifiziert und wird vom IDL Compiler aus der Beschreibung der Schnittstelle generiert Als Alternative steht das Dynamic Skeleton Interface DSD zur Verf gung das beliebige Requests entgegennehmen und dem entsprechenden Skeleton zuweisen kann Der Object Adapter OA setzt auf den ORB auf und ist f r die Verbindung von Objekt implementierung an den ORB zust ndig MOV95 OAs bieten Dienste wie Generation und Interpretation von Objek
189. n Hosts gesichert Diese Replikation sichert die Verf gbarkeit von kritischen Informationen auch bei Teilausf llen des 40 Verarbeitung mit verteilten Objekten Systems Trotz starker Interdependenzen zwischen DCE Komponenten erlaubt eine dezentrale Kontrolle jede Komponente unabh ngig von anderen zu administrieren Dadurch kann DCE ber LAN und WAN ausgedehnt werden und so bei Bedarf mehrere tausend Systeme bedienen Anwendung DCE File Service A8 H Lu Q Thread RPC sicher Directory Zeit CDS IX Betriebssystem Netzwerk Transport Abb 16 DCE Konzeptmodell ROS931 Das DCE Konzeptmodell verdeutlicht da die DCE API eine Softwareschicht zwischen Anwendung und Betriebssystem schiebt welche die Unterschiede der einzelnen Hostsysteme verbirgt RPC und Thread Dienste sind dabei Grunddienste auf welche die anderen DCE Dienste aufbauen Es wird weiter deutlich wie Anwendungen die DCE API verwenden k nnen Dabei werden nur die Dienste in Anspruch genommen die auch tats chlich ben tigt werden In der obigen Darstellung werden beispielhaft die Dienste RPC Sicherheit Verzeichnis und nat rlich das Betriebssystem selbst verwendet ROS931 und dies durch Pfeile zur Anwendungsebene dargestellt DCE bietet keine direkte Unterst tzung f r OOP RPCs bieten aber einige unterst tzende Merk male f r objektorientierte Systeme Zum Beispiel Kann ein RPC direkt an ein Objekt
190. n diesem Fall w re einfaches HTTP Tunneling m glich MER97 mu ein CGI Programm auf dem HTTP Server installiert werden Dieses Programm stellt Port 80 stellvertretend f r den normalen WWW Server zur Verf gung und leitet HTTP Anforderungen an den RMI Server auf der Intranetseite weiter Das CGI Programm fungiert also als Stellvertreter f r den WWW Server Das entsprechende Skript ist auf den Internetseiten von JavaSoft zu erhalten Alternativ kann die Firewall auch als Application Level Gateway auf dem RMI Port 1099 betrieben werden Eigenschaft RMI Parameter Marshalling ja Parameter bergabe in out in out in Laden von dynamischen Stubs Klassen ja Garbage Collection ja Schnittstellenbeschreibung ja JAVA dynamic discovery dynamic invocation nein Sicherheit auf Transportebene nein Sicherheit auf Transaktionsebene nein Persistente Namensgebung nein Persistente Objektreferenzen nein Sprachneutrales Transportprotokoll nein Zugangskontrolle nein Einsatz durch Firewalls ja propriet r ja berwachung der Lebenszeit Referenzz hler Tab 4 Eigenschaften von RMI ORF97 Nachdem sich RMI gegen ber Sockets und HTTP CGI als erste echte Middleware erweist kann die vergleichende bersicht um typische Merkmale erweitert werden F r den Vergleich zu anderen Plattformen sind dabei folgende Eigenschaften von besonderer Bedeutung e Parameter bergabe Richtung in der Parameter ber eine Schnittstelle bergeben werden
191. n innerhalb der Dom ne und damit auch im Internet unumg nglich DNS ist auf die Gr e des Internets ausgelegt und erlaubt die Verwaltung von Host Bezeichnern die sowohl im Internet als auch in privaten Intranet eindeutig sind 46 Verarbeitung mit verteilten Objekten Nicht zuletzt auch weil die meisten leichten ORB auf JAVA Basis als Konsequenz aus denen noch zu erl uternden Sicherheitsrestriktionen der VM auf einen vollst ndigen Naming Service verzichten und statt dessen direkt auf DNS aufsetzen soll kurz auf dessen Struktur eingegangen werden Das konzeptionelle Benennungssystem des DNS basiert auf einer hierarchischen und logischen Baumstruktur die als Domain Name Space bezeichnet wird Die Wurzel Root des Domain Name Space wird durch das Internet Network Information Center InterNIC verwaltet InterNIC http www internic com hat die Aufgabe administrative Verantwortung in Teilen des Domain Name Space an Organisationen und Unternehmen die an das Internet angeschlossen sind zu delegieren MOA96 Diese Subadministratoren verwenden DNS Server um die Abbildung von Namen auf IP Adressen f r Computer und Netzwerkkomponenten innerhalb ihrer Dom ne zu verwalten Server die auf den oberen Ebenen und an den privaten unteren Dom nenknoten der DNS Hierarchie eingesetzt werden werden als Authoritative Name Server bezeichnet Der Aufbau dieser Hierarchie ist eine top down Struktur in der die obersten drei Hauptge
192. n von Teilnehmeridentit ten 3 Analyse des Verkehrsflusses Beim direkten Abh ren von Informationen kann jede Art von Information wie zum Beispiel Pa w rter gewonnen werden Das Abh ren von Teilnehmeridentit ten l t zumindest R ckschl sse auf das Verhalten von Teilnehmern und unter Umst nden auch auf die Art der ausgetauschten Informationen zu Die Analyse des Verkehrsflusses leistet dagegen keine semantische Untersuchung des Datenstroms kann aber Informationen wie H ufigkeit Zeitpunkte oder Gr enordnungen von Kommunikationsverbindungen ermitteln was zum Beispiel bei B rsentransaktionen einen gro en Schaden verursachen kann Eine besondere Gef hrdung durch passive Angriffe besteht aufgrund des verwendeten bertragungsprotokolls auch latent in Intranetumgebungen Passive Angriffe erfordern in der Regel einen physischen Zugang zum bertragungskanal Diese k nnen durch bauliche Ma nahmen unterbunden werden Dabei ist allerdings zu beachten da auch die Analyse kompromittierender Strahlung zum Informationsgewinn des Angreifers beitragen kann Dazu geh ren unter anderem elektromagnetische Strahlung der EDV Ger te z B Monitore oder die induktive Kapazit t der bertragungswege Abhilfe k nnen Ma nahmen zur Abschirmung und alternative bertragungskan le zum Beispiel aus Glasfaser bieten Diese Abwehrmechanismen sind generell f r alle DV Systeme zu treffen auch wenn diese nicht verteilt sind Das Vorhandensein vor allem de
193. n zwischen Anwendungen Standard Die Sicherheitsebene wird f r den installierten Echtheitsbest tigungsdienst auf die Standardeinstellung gesetzt Die Standardeinstellung von WinNT ist Verbinden Verbinden Die Sicherheits berpr fung wird nur f r die Erstverbindung durchgef hrt Anrufen Die Sicherheits berpr fung wird bei jedem Anruf w hrend der gesamten Verbindung durchgef hrt Paket Die Identit t des Senders wird verschl sselt um die Echtheit des Senders zu gew hrleisten Paketintegrit t Die Identit t und Unterschrift des Senders werden verschl sselt um die Echtheit des Senders zu gew hrleisten und um sicherzustellen da die Pakete w hrend der bertragung nicht ver ndert werden Packet Privacy Das gesamte Paket einschlie lich der Daten sowie die Identit t und die Unterschrift des Senders werden in der h chsten Sicherheitsebene verschl sselt e Standard Verk rperung nach Sicherheitsebene aufsteigend Die Ebene der Berechtigung die eine Klientenanwendung einer Serveranwendung f r die Bearbeitung von Tasks f r die Klientenanwendung zuweist Anonym Die Serveranwendung bearbeitet Tasks f r den Klienten ohne die Identit t der Klientenanwendung zu kennen Identit t Die Serveranwendung kann die Identit t der Klientenanwendung ber pr fen Impersonate Die Serveranwendung kann die Identit t der Klientenanwendung nur an nehmen indem sie die Tasks als Klientenanwendung bearbeitet
194. nd wird sie in ihre Produkte integrieren Ein Konsortium von Firmen hat weiter eine Kooperation bei der Integration von CORBA und JAVA Beans SUN397 vereinbart Die Firmen haben ein gemeinsames Positionspapier ver ffentlicht welches spezifische Erweiterungen zum CORBA Standard vorschl gt und ein Komponentenmodell etabliert welches auch andere Modelle wie JAVA Beans unterst tzt Dadurch soll mittels grafischen Entwicklungswerkzeugen die automatische Erstellung von JAVA Beans f r CORBA Objekte erm glicht werden NET97 Zum Januar 1997 wurden 12 1 Millionen Anwender des Netscape Navigator gegen ber 5 9 Millionen Anwender des MS InternetExplorer gez hlt Obwohl in Prognosen wie CHEN97 davon ausgegangen wird da im Zeitraum von acht Monaten ein Gleichstand in der Anwenderzahl erreicht sein wird bieten die Aktivit ten der Firma Netscape im Bereich des NISB eine echte Konkurrenz zu dem auf COM basierenden ActiveX f higen Browser Entscheidend dabei ist da die CORBA Plattform durch die Implementierung des NISB in dem am h ufigsten verwendete WWW Browser eine ganz neue Bedeutung erhalten wird Ein Kritikpunkt n mlich die mangelnde praktische Verf gbarkeit der Plattform k nnte hierdurch in der Zukunft entkr ftet werden Damit sind auch Prognosen CHEN97 in denen sich Microsoft mit seinem 4 Pr ferenzverhalten von Personen kann die Nutzenindifferenzkurve f r Gegen berstellung von Risiko und Flexibilit t stark verschieb
195. nde eingef hrt und am Anfang entfernt werden k nnen Jeder Proze observiert seine Queue auf eingegangene Nachrichten um diese dann zu verarbeiten Dieses Modell erlaubt die Implemen tierung von nachrichtenorientierter anstelle von transaktionsorientierter Verarbeitung Damit kann es als asynchron angesehen werden da die Ausf hrung von Klienten und Server unabh ngig voneinander erfolgt In einigen Definitionen von Netzwerkprotokollen wird dieses Modell auch als verbindungslos bezeichnet Internet und Intranet Die einzelnen Middleware Modelle sind in der folgenden Abbildung zusammengefa t Conversational Anforderung erhalten ke Gian den Anforderung verarbeiten Antwort senden Remote Procedure Call RPC erhalten RPC senden bearbeiten und Ergebnis zur ckgeben Messaging Queue A ffnen und Nachricht einlesen Queue B ffnen und Nachricht einstellen Queue A ffnen und Nachricht einstellen Queue B ffnen und Nachricht einlesen Abb 4 Middlewaremodelle BRU97 Die Middleware Technologie ist ein gro er Schritt in Richtung modularer und flexibler Anwendungen die ber einen Softwarebus oder Kommunikationsmechanismus miteinander kommunizieren So wandelt sich das klassische Klienten Server Modell zu einem Modell bei dem jeder Computer Klient und Server zugleich sein kann Auf jedem Computer arbeiten verteilte Komponenten die auch von anderen Systemen benutzt werden S
196. ndig ist vgl Abb 30 DIC97 Dieses Vorgehen w rde aber die Vergleichbarkeit zu den Datenobjekten von Mircosoft erschweren und Vergleichsmessungen ergeben ohnehin keinen Vorteil f r die direkte Verwendung von Callable Statements DIC97 75 Beispielentwicklung und implementierung Vorsicht ist bei der Arbeit mit ResultSets geboten Einige Treiber unter anderem auch die in dieser Arbeit eingesetzte JDBC ODBC Br cke haben Schwierigkeiten bei der Verarbeitung von Daten in einer anderen Reihenfolge als durch eine Abfrage vorgegeben Die Abfrage SELECT name id FROM test die in dem ResultSet rs ausgewertet wird sollte also nur in der Reihenfolge int id rs getInt id String name rs getString name abgearbeitet werden eine bersicht der SQL Syntax findet sich z B in JEP97 oder MSSQL96 Weiter sollte in der praktischen Anwendung jede Spalte nur einmal pro Zeile gelesen werden bis durch Aufruf der Methode next der n chste Datensatz gelesen wird sollte nicht wiederholt auf ein Feld des aktuellen Datensatzes zugegriffen werden Statt dessen sollte jeder gelesene Datensatz sofort einer Variable zugewiesen werden um dann sp ter ver arbeitet zu werden JEP97 Ein zweiter wichtiger Aspekt ist die M chtigkeit des verwendeten Treibers die sich aus der Architektur der JDBC Implementierung ergibt M gliche Architekturen f r eine JDBC Implementierung sind Native Aufrufe Anwendung
197. ne selektive Abschottung von ActiveX Komponenten nicht vorgesehen ist 5 4 Zuk nftige Entwicklungen Wie auch im Umfeld der traditionellen Programmiersprachen haben sich eine Vielzahl von Pro grammiersprachen f r das Internet entwickelt Zur Zeit gibt es keinen Grund f r die Annahme da eine dieser Sprachen in Zukunft eine Monopolstellung innehaben wird obwohl Verf gbarkeit und Ad quanz f r die wechselnden Anforderungen der Internetprogrammierung einige Sprachen bevorzugen Zum Beispiel ist JAVA sowohl verf gbar als auch generell geeignet aber neu Programmierer werden aber offensichtlich zun chst immer den Versuch unternehmen in ihrer gewohnten und eventuell f r das Internet modifizierten Programmiersprache weiterzuarbeiten Auch Programmieranf nger werden vermutlich eine Programmiersprache h herer Ebenen bevor zugen ein Verhalten das sich auch in den traditionellen Programmiersprachen darstellt Abgesehen von den unbestreitbaren Vorteilen einer globalen Programmiersprache gibt es zur Zeit keinen Grund sich auf eine einzige Programmiersprache zu fixieren Die Spezialisierungen der einzelnen Sprachen erf llen Sonderaufgaben mehr oder weniger erfolgreich die Ergonomie der Programmierung ist stark unterschiedlich wie auch die Anforderungen der Anwender an das Resultat Das Internet selbst erhebt Mindestanforderungen an Programmiersprachen die F higkeit unterschiedliche Formate zu verarbeiten z B Grafiken Performanz so
198. nformate entsprechend des Ziel ORBs und das Repr sentationsobjekt sendet die zugeh rige Anforderung unter Verwendung des ORB Protokolls dies ist eine vereinfachte Darstellung die zeitgleiche Ausf hrung von verschiedenen Operationen durch unterschiedliche ORBs und unterschiedliche Ausnahmebehandlung mu zus tzlich ber cksichtigt werden Door ORB ist ein RPC Call Reply Protokoll f r verteilte Objekte das auf Basis des TCP IP implementiert ist Unter Verwendung von sogenannten Door Handles werden Serverobjekte identifiziert wobei der ORB die Vergabe von diesen Handles an Klienten protokolliert und nur diesen Klienten den Zugriff auf assoziierte Serverobjekte erlaubt Klienten k nnen Handles untereinander weitergeben Die Laufzeitumgebung des ORB verst ndigt dabei automatisch den Zielserver um die Autorisation des Zugriffs durch die Klienten im Anschlu zu verifizieren Durch Z hlen der aktiven Verbindungen ist eine verteilte Garbage Collection implementiert bei welcher der ORB Kern den entsprechenden Server informiert SUN96 Um die Last auf stark frequentierten Servern zu reduzieren wird zwischen aktiven und passiven Verbindungen unterschieden Eine aktive Verbindung ist eine Verbindung die zur Zeit f r ver teilte Aufrufe verwendet wird jede dieser Verbindungen hat einen offenen TCP Stream assoziiert Dagegen ist eine passive Verbindung seit einer gewissen Zeit vorgegeben sind 60s nicht ver wendet und der zugeh rige
199. ng wie m glich sein aus der Sicht des Vertrauens m ssen aber die Beschr nkungen nicht die Leistungsf higkeit und Verf gbarkeit des VS beeintr chtigen ohne inakzeptabel hohe Risiken einzuf hren performans et ten ZEN Abb 9 Vertrauensmodell Aus der Diskussion um Vertrauen in Verbindung mit den genannten Sicherungsstrategien ergibt sich das Vertrauensmodell Eine Hinzunahme von einem Sicherheitsmerkmal Zugriffskontrolle wie z B in BRU97 erscheint nicht sinnvoll da die Zugriffskontrolle eine Methode zum Erreichen von Sicherheit und Vertrauen weniger aber ein Merkmal oder eine Eigenschaft ist Dieses Vertrauensmodell umfa t nicht alle aufgef hrten Sicherheitsstrategien Zum Beispiel ist der Zutrittsschutz eine unerl liche Aufgabe in jedem Unternehmen soll aber in der Diskussion hier nicht abgedeckt werden weil es bei diesem Thema nicht um verteilte Objekte selbst sondern um EDV Sicherheit allgemein geht hnliches gilt auch f r Backup und Restore Dokumentation Archivierung etc Das Augenmerk liegt also vorrangig auf den vermeidenden Schutzmechanis men Es ist klar da alle Komponenten des Vertrauens aufeinander aufbauen Das Fehlen auch nur einer Komponente l t die Vertrauensw rdigkeit eines Objektes sofort verschwinden und das Ziel eines VS obsolet werden Die einzelnen Komponenten m ssen aufeinander und mit der Firmenstrategie bez glich Sicherheit abgestimmt werden Nur so entsteht ein Gleich
200. ngen Obwohl ActiveX eine sehr neue Technologie ist bedeutet die Adaption von OLE 2 0 in das Komponentenmodell da schon jetzt eine nicht einzuholende Verbreitung dieser Technologie aus der Verbreitung von Personalcomputern mit MS Windows Betriebssystem resultiert Dem gegen ber steht die Frage nach der Verf gbarkeit und Unterst tzung von JAVA Das JDK ist offiziell auf den folgenden Plattformen verf gbar Betriebssystem JDK Version Microsoft Windows 95 NT 4 0 1 1 4 Final SUN Solaris 2 4 2 5 SPARC 1 1 4 Final SUN Solaris 2 5 x86 1 1 4 Early access Portierungen von Drittanbietern e AIX e AmigaOS Verschiedene e BeOS Browser VMs und e diverse UNIX und Derivate JDKs zum Teil e HP UX noch als Betaver e MacOS s onen e OS 2 Tab 23 Verfiigbarkeit des JDK Einen bedeutenden Vorteil hat jedoch JAVA gegen ber ActiveX Dadurch da die JAVA VM plattformunabh ngig ist und nicht wie ActiveX Teile des Betriebssystems des Klienten ver wendet ist eine Implementierung und Portierung dieser VM wesentlich einfacher Als Kon sequenz daraus unterst tzen heute bereits eine Vielzahl von WWW Browsern wie Netscape Navigator SUN HotJava MS InternetExplorer und IBM WebExplorer JAVA von denen aber nur der MS InternetExplorer ActiveX Komponenten ausf hren kann Dar ber hinaus hat SUN f r das 3 Quartal 98 seinen JAVA Mikroprozessor angek ndigt Das Herz des sogenannten mircoJava 701 ist ein verbesserter picoJa
201. nlichen Grundarchitektur eine Infrastruktur f r verteilte Objekte Die Hauptunterschiede liegen darin da erstens COM Objekte mit mehreren Interfaces unterst tzt die mit QueryInterface traversiert werden k nnen Dadurch ergibt sich die M glichkeit da ein Objektsockel mehrere Interface Sockel im entfernten Adre raum dynamisch laden kann Dieses Konzept besteht unter CORBA nicht Zweitens unterst tzt CORBA Implementierungsvererbung COM verzichtet f r die Erhaltung seiner Standards auf 67 Verarbeitung mit verteilten Objekten Bin rcodeebene auf dieses Merkmal Jede CORBA Schnittstelle wird vom CORBA Object abgeleitet Dies ist der Basiskonstruktor der grundlegende Aufgaben wie Objektregistrierung Referenzengenerierung Skeleton Instantiierung usw bereitstellt In COM werden diese Aufgaben entweder explizit durch den Server oder dynamisch von der COM Laufzeitumgebung ber nommen Drittens ist das Ubertragungsprotokoll von D COM auf MS RPC ausgelegt CHU97 Die folgenden Tabelle fa t die begrifflichen Unterschiede der Modelle vergleichend zusammen COM CORBA Operationsschicht Allgemeine Basisklasse TUnknown CORBA Object Objektreferenz CLSID interface name Schnittstellenreferenz IID interface name Objektaktivierung durch Klient CoCreateInstance bindQ Object handle Interfacezeiger Objektreferenz Sockelschicht Name der Implementierungsabbildung Registry Implementation Rep Implementierungsabbildung
202. nnsnnneessssssesseesssssssserrssssssssssrreessssessee 59 26 Verwendung eines Monikers ICH Abol 60 27 Basismodell eines RPC Systems 2 css canna ctaties Eed Renee 66 28 JAVA Aust hrungsmedel 2 33 232 er See 72 29 Verarbeitungsweg von JAVA Quellcode bis zur Ausf hrung 74 30 Die Klassenarchitektur von JDBCTDICO L 75 31 JDBC Architekt ren MOR97 inn canes HR RR ar an ae EEN 76 32 Integration von ODBC Treibern in die JOBC API Schichten 77 33 3 Tier Anwendung unter JAVA 0 eesecccceesneeeceeaeeeceessaeecsessaeeecessaaeecessaeeseesaaeees 79 34 Der portable ORB Kern 200 0 eeesccecceesneeecneseeecesssaeeccessaeeecsesaeeesesaeeecessaeeseesaaeees 80 35 Anwendungsrealisierung unter JAVA C und CORBA ssesscsssssseeesssssssssesresessssssee 82 36 Optionen des VB5 0 Datenzugriffmodells A 91 37 Entfernter Datenzugriff ber RIDO 93 38 ODBC Anmeldungsdialog AA 94 39 Anwendungsrealisierung unter Visual Basic und COM eseeeeeeeereeerrrereerrereerre 96 40 Vergleich der Verbindungsaufbaugeschwindigkeit von COM und JavalDL 99 41 Vergleich der Ausf hrungsgeschwindigkeit von COM und JavalDL 100 42 Break Even Analyse der Transaktionszahlen 0222000 nnnnneeennenne 101 43 JIT Compiler unterst tzen die VM von JAVA MOR97 ssssseennnenneen 106 445 581 V3 0 H ndsh ke EE XIV 45 Versuchsaufbau f r Performanzvergl
203. noch die Unterschiede zu DCE detailliert erl utert werden In der Strukturierung der Kapitel und Abs tze wurde darauf geachtet da inhaltlich auch Parallelen zur Diskussion des CORBA Standards aufgezeigt werden k nnen Die Open Software Foundation OSF ist ein Konsortium von Firmen die in Zusammenarbeit Software f r den Markt der offenen Systeme entwickeln Die OSF entscheidet welche Technologien zu implementieren sind und l dt dann Mitglieder des Konsortiums ein um diese Software unter Leitung der OSF zu entwickeln Innerhalb der OSF wird der Quellcode dieser Entwicklung dann wiederum an alle Mitglieder weitergegeben und so dessen Entwicklung gef rdert Die OSF DCE Software wurde so durch Beitr ge von Digital Equipment Corporation DEC CDS DTS Teile des RPC und Threads Hewlett Packard Company Teile des RPC und Sicherheit International Business Machines Corporation IBM Softwareintegration Siemens Nixdorf Informationssysteme AG GDS XDS und Transarc Corporation FDS und LFS entwickelt ROS931 DCE bietet eine Menge von integrierten Diensten Bibliotheken Werkzeugen und Laufzeit diensten an um ein VS zur Verf gung zu stellen und die Unterschiede zwischen verschiedenen Hosts transparent zu gestalten Die Dienste arbeiten ber mehrere Systeme und bleiben von einzelnen Systemen unabh ngig DCE Dienste sind vor einem single point of failure durch Replikation der Dienste und wichtiger Komponenten auf entsprechende
204. nstelle von wenigen Mainframe Computern findet man heute eine Vielzahl von Workstations Weiter bedeutete die Einf hrung von LANs das Entstehen von einigen Tausend Teilnetzen Das heutige Internet als Nachfolger des ARPANET ist mit einer Vielzahl von anderen Netzwerken verbunden Dieser Verbund von Netzwerken wird in der ffentlichkeit etwas ungenau als das Internet bezeichnet HAL96 Sch tzungsweise 50 Millionen Menschen sind mit dem Internet vertraut k nnen elektronische Nachrichten E Mails versenden Informationen suchen und finden und unterschiedlichste Dienste in Anspruch nehmen F r diese weite Verbreitung ist die Einf hrung des World Wide Web WWW als grafische Benutzeroberfl che graphical user Interface GUI verant wortlich mit welcher der eigentlichen Durchbruch des Internets in der ffentlichkeit gelungen ist Mittels diesem ergonomischen und intuitiv zu bedienenden Dienstes ist es m glich Informationen jederzeit und an jedem Ort zu recherchieren Der Gedanke liegt nun nahe die im Internet erprob ten Techniken innerhalb eines Unternehmens einzusetzen VIN96 und als Plattform f r verteilte Anwendungen auf Objektbasis zu verwenden Es wird deutlich da diese semantische Interpretation des Begriffes Internet keine Abgrenzung zu dem des Intranets zul t Um eine solche Trennung definieren zu k nnen mu auf den entschei denden Unterschied des Internets zu herk mmlichen LANs zur ckgegriffen werden Es be
205. nt exe erver clsDCOMBenchServer cls DCOMBenchServer exe DCOMBenchServer vbp m mp mg nN Te mp mg 777 RDO Data Bench 777 Client DCOMDataClient exe DCOMDataClient vbp MainFrame frm MainModule bas erver DataServer cls DCOMDataServer exe DCOMDataServer vbp ud Jup i Lei II Jup mp ug Diskette 3 TriggerHelper Hello mak NativeMethodShell C NativeMethodShellIMP C TriggerHelper dll XP C me mp Tu Jup i Benchmarkversuch f r die COM Middleware Implementierung des Klienten Visual Basic Projektdatei Ausf hrbarer Klient f r den Benchmarkversuch Implementierung der ffentlichen Serverklasse Ausf hrbarer Server f r den Benchmarkversuch MS Visual Basic Projektdatei Benchmarkversuch f r den Vergleich von DAO und RDO Ausf hrbarer Klient f r den Benchmarkversuch MS Visual Basic Projektdatei GUI des Klienten Unterst tzendes Modul f r die GUI ffentliche Serverklasse f r den Benchmarkversuch Ausf hrbarer Server f r Benchmarkversuch Visual Basic Projektdatei MS C Projektdatei f r TriggerHelper Generierter Serverstub fiir native JAVA Aufrufe Implementierung des Stubs Kompilierte MS Windows DLL Implementierung der IPC Kommunikation XXIV BEI97 BER96 BRU96 BRU97 CAM97 CHAP96 CHEN97 CHES94 CHO96 CHP97 CHU97 COL89 CO096 CT1209 CW96 DEC94 DIC97
206. nterfaces einer COM Komponente Da ActiveX Komponenten im allgemeinen keine COM Komponentenserver sind beinhaltet die ActiveX Spezifikation zus tzliche Regeln f r die Erstellung von Komponentencontainern Dies sind Klienten die ActiveX Komponenten verwenden k nnen z B MS InternetExplorer ab V3 0 Die Frage nach der tats chlichen Bedeutung von ActiveX Komponenten l t sich besser in deren zeitlichen Entwicklung erkennen Die Idee von wiederverwendbaren bin ren Komponenten begann bei Microsoft mit der Implementierung von Visual Basic Extensions VBX Diese fr hen Komponenten boten sehr viele Merkmale von ActiveX Komponenten waren aber nur f r den Einsatz innerhalb der Entwicklungsumgebung von MS Visual Basic 3 0 konzipiert VBX unterliegen allerdings Einschr nkungen nicht zuletzt dem des beschr nkten Einsatzfeldes Gerade dieses Problem wurde bei den sogenannten OLE Controls OCX aufgegriffen Dieser Standard verlangte von einer COM Komponente die Implementierung einer Vielzahl von Inter faces z B Darstellung einer eigenen GUI Ereignissteuerung f r den Komponentencontainer etc Diese Vorgaben f hrten zur Uberladung der meisten Komponenten zur Vergr erung des Bin rcodes und damit zur Nichteignung f r den Einsatz im Internet OLE Komponenten werden jetzt als ActiveX Komponenten bezeichnet Diese Neubenennung geht mit der Reduzierung der Anforderungen an eine solche Komponente einher Damit ist Eine ActiveX Kom
207. ntifi zierung Nachrichtenintegrit t und Datensicherheit eingesetzt Authentifizierung von Internetservern erfolgt durch den Klienten wenn das Zertifikat des Servers als Teil des initialen SSL PCT Handshake pr sentiert wird Der Klient akzeptiert das Zertifikat des Servers durch berpr fung der verschl sselten Signatur im Zertifikat durch ein intermedi res Zertifikat das von einer Certification Authority CA ausgestellt wurde oder durch einige wenige Wurzel CAs Authentifizierung des Klienten wird durch SSL V3 0 und PCT V1 0 unterst tzt Die folgende Darstellung verdeutlicht exemplarisch die SSL V3 0 Handshake Nachrichten zwischen Klienten und Server Klient Server ClientHello gt ServerHello Certificate CertificateRequest ClientKeyExchange 4 SeverKeyExchange Certificate CertificateVerify Changecipherspec Finished _ Changecipherspec Finished Anwendungsdaten A gt Anwendungsdaten Situationsabh ngige Nachrichten die nicht immer verschickt werden Abb 44 SSL V3 0 Handshake XIV Auswertung und Ausblick auf weitere Entwicklungen Anhang C MeBreihen F r den Vergleich der Implementierungen von JAVA und ActiveX wurden zwei Versuchs aufbauten vorgenommen Entwurfsvorgabe war vor allem die Simulation von engbandigen bertragungskan len zwischen Klient und Server Um eine TCP IP Strecke zwischen zwei Maschinen mit variablen
208. ntifikation im CORBA Terminus Object Reference Nur die Interfaces selbst werden durch die ID referenziert Die Interface Implementierung unterliegt in COM einem vorgegeben Standard Durch standardisierte Bin rformate von Komponenten k nnen Klienten die Methoden einer Komponente unabh ngig von der verwendetet Programmiersprache verwenden 56 Verarbeitung mit verteilten Objekten Interner Zeiger Objekt VTable Zeiger auf Methode 1 amp QueryInferface Klient e 1 Interfacezeiger Zeiger auf Methode 2027 gt AddRef Zeiger auf Methode 50 Release Zeiger auf Methode 44 gt MyMethod1 VTable Abb 23 VTable in COM Komponenten CHAP96 Die Realisierung erfolgt indem der Interfacezeiger des Klienten auf einen Zeiger innerhalb der Komponente verweist Dieser zeigt wiederum auf die VTable einer Liste von Zeigern auf die Methoden der Komponente vgl Abb 23 Die ersten drei Methoden QueryInterface AddRef und Release sind durch Unknown definiert und durch die Vererbung Teil der Komponente Diese Bin rstruktur existiert f r jedes Interface welches von einer Komponente unterst tzt wird CHAP96 Solche Aufrufe sind nat rlich f r Entwicklungsumgebungen wie MS Visual Basic nicht geeignet da keine Zeiger unterst tzt werden Hier wird auf das Dispatch Interface zur ckgegriffen welches die Komplexit t
209. oden realisiert und die Charakteristiken werden zu seinen Variablen Der objektorientierte Ansatz zur Erstellung von Software Systemen hat weit mehr Vorteile als nur Flexibilit t bez glich der Aufgabenerf llung Weil die Struktur der Software die reale Welt reflektiert kann diese leichter verstanden und nachvollzogen werden Das bedeutet da eine auf unternehmensweiten Modellen basierende Software eine weit l ngere Lebensdauer hat als Programme die nur zur L sung von spezifischen unmittelbar anstehenden Problemen geschrie ben werden Objekte und deren Kombination k nnen im Unterschied zum klassischen Programmiermodell verh ltnism ig leicht neuen Vorgaben der Firmenstruktur oder neuen Proze abl ufen nachgebildet werden Im Gegensatz zur prozeduralen Programmierung sind Objekte allgemeing ltige Bausteine die dadurch leicht unter anderen Aufgabenstellungen wieder verwendet werden k nnen Die Ausrichtung des Entwicklungsprozesses auf die Erstellung allgemein verwendbarer Modelle hat damit zur Folge da diese sich viel einfacher an neue Anforderungen anpassen lassen Schlie lich f hrt die umfassende Wiederverwendung von bereits existierenden gepr ften Komponenten nicht nur zu k rzeren Entwicklungszeiten sondern auch zu viel robusteren fehlerfreien Systemen Der konsequente Einsatz objektorientierter Techniken in allen Phasen des Software Lebenszyklus verk rzt also die Entwicklungszeit der Systeme erh ht deren Qualit t und F
210. ohl JAVA als auch ActiveX Programme nicht von einer einfachen Firewall analysiert werden k nnen Das sogenannte Exploder Objekt siehe dazu auch Kapitel 4 3 2 kann nicht als unerw nscht identifiziert und ein JAVA Applet das eine L cke in der VM gefunden hat MOR97 nicht abgelehnt werden Eine klassische Firewall die ein Intranet definiert kann heute nur so konfiguriert werden da JAVA und oder ActiveX Komponenten durchgelassen werden oder nicht 29 Internet und Intranet Eine sehr neue Entwicklung sind die sogenannten intelligenten Firewalls Viele Entwickler von Firewalls glauben da eine berwachung der komplexer werdenden Datenstr me nur durch verbesserte Technologien der Analyse erfolgen kann Ein Vorreiter mit einem Marktanteil von ca 44 ist die Firma Checkpoint Software die der Frage nach JAVA ActiveX Sicherheit mit ihrem Produkt Firewall 1 beantwortet CHP97 Dabei wird der Versuch unternommen das Verhalten von verteilten Objekten bzw Anwendungen auf Basis von Kontrollentscheidungen zu analysieren Das sogenannte Inspection Module liegt zwischen den Schichten 2 und 3 des OSI Modells und kann so alle bertragenen Pakete analysieren bevor diese das Betriebssystem erreichen Entscheidungsgrundlage sind der Kommunikationsstatus der von vorherigen Ver bindungen herr hrt und der Anwendungszustand der von anderen Anwendungen abgeleitet wird Die Inspektion auf Basis des Status erlaubt der Firewall von
211. ommen Diese Architektur bietet ein Modell f r dreistufige Anwendungen an bei dem ein WWW Browser stets als Front end dient der firmeneigene Internetserver inklusive Erweiterungsprogrammen die Applikationslogik repr sentiert und schlie lich ein Datenserver als Back end fungiert Diese Konfiguration die sich bereits in klassischen Klient Server Umgebungen bew hrt hat verlagert die Anwendungs und Datenlast weg von den Klienten und hin zu den Servern Als Hauptvorteil dieser Ausrichtung versprechen Bef rworter eine erhebliche Reduktion der hohen Unterhalts und Supportkosten f r Personalcomputer Diese dreigeteilte Architektur bei der World Wide Web WWW Browser via Hypertext Transfer Protocol HTTP Daten mit WWW Servern austauschen und bei der WWW Server ihrerseits ber das Common Gateway Interface CGI oder propriet re Schnittstellen mit Applikationen kommunizieren wird allerdings schon obsolet bevor sie sich richtig etablieren konnte Die Nachteile von HTTP als zustandsloses Protokoll das nach jeder Daten bertragung die Verbindung trennt und die Beschr nkungen des CGI f hren zu der Suche nach alternativen Ans tzen die auf die Lastverschiebung zur ck zum Klienten bauen Bei Anwendungen die auf Seite des Klienten ausgef hrt werden hat sich JAVA zweifellos bereits einen festen Platz gesichert Microsoft versucht daf r seine ActiveX Technologie als Nachfolger von OLE zu etablieren Neben der zu verwendenden S
212. on mit der erstellten Komponente Sowohl MS RPC als auch dessen Verwendung in DCOM die als Object RPC ORPC bezeichnet wird unterst tzen verbindungsorientierte Transportprotokolle zum Beispiel f r TCP Verbindungen und verbindungslose Transportprotokolle zum Beispiel f r UDP Unabh ngig davon welches Transportprotokoll im ORPC zum Einsatz kommt mu der Klient Verbindungsinformationen binding information f r die Zielkomponente besitzen um einen ORPC Aufruf durchf hren zu k nnen Bootstrap Verbindungsinformationen k nnen durch CoCreatelnstanceEx oder durch Weitergabe zwischen Komponenten erhalten werden CHAP96 Ein Server der eine oder mehrere Komponenten implementiert exportiert Komponenten auf andere Systeme Als Single Threaded Proze agiert der gesamte Server als Exporteur Bei Multi Threaded Servern deren Komponenten durch Appartements getrennt sind exportiert 61 Verarbeitung mit verteilten Objekten jedes Appartement eine eigene Komponente Jedem dieser Komponenten Exporteure wird ein 8 Byte Wert zugewiesen der als Object Exporter Identifier OXID bezeichnet wird Um eine entfernte Komponente ansprechen zu k nnen mu ein Klient also zun chst die OXID der Komponente erfragen Auf jeder DCOM Maschine l uft ein sogenannter OXID Resolver der die OXID auf die Verbindungsinformation der Komponente abbildet Dieser ver ffentlicht das Interface IObjectExporter welches die
213. onfiguration von COM selbst aufwendig und durch Microsoft noch unzureichend dokumentiert ist ist die anschlieBende Verwendung dieser Middleware gerade durch eine Hochsprache wie Visual Basic auch durch Einsatz des Dispinterfaces vgl Kapitel 3 2 3 2 2 2 denkbar einfach Aufgaben wie IDL Spezifikation werden vollst ndige transparent Im Gegensatz zu der vorgestellten JAVA CORBA Implementierung bietet dieser Aufbau die M glichkeit der Gestaltung eines 2 Tier Modells STE96 in dem die vermittelnde Schicht entf llt Dies hat zwei Gr nde zum einen Kann eine ActiveX Komponente direkt mit dem nativen ODBC Klienten auf dem Klientensystem kommunizieren Zum anderen unterliegt das ActiveX Modell keinen Sicherheitsrestriktionen in der Form da nur eine Kommunikationsverbindung zum urspr nglichen WWW Server aufgebaut werden Kann Damit ist ber den lokalen ODBC Klienten eine direkte Kommunikation mit der Datenbank m glich Dieses Vorgehen wurde hier jedoch nicht gew hlt um nicht die Installation einer ODBC Schnittstelle auf dem Klienten zu erzwingen Dadurch da im 3 Tier Aufbau die Datenbankschnittstelle als mittlere Schicht auf einem Server liegt ist die resultierende ActiveX Komponente auf dem Klienten sehr klein STE96 Ein weiteres bemerkenswertes Detail und starker Vorteil gegen ber dem CORBA Modell ist da die Authentifizierungsmechanismen des MS SQL Servers ohne Modifikationen zur sichern Authentifizierung des Klienten im Inte
214. or allem auf die Relation von Kosten und Risiko konzentriert BRU97 Sicherheit eines DV Systems l t sich als dessen Zustand definieren in dem Informationen vor nicht autorisiertem Zugriff hinreichend dadurch geschiitzt werden da die relevanten Bedrohungen auf ein akzeptables Ma reduziert werden Die Sicherung eines VS mu also ein Kompromi zwischen dem wirtschaftlichen Aufwand f r die Sicherungsma nahmen und der Gefahr durch das verbleibende Restrisiko sein Absolute Sicherheit wird nie erreicht werden k nnen BRU97 Im folgenden Kapitel wird ein Bedrohungs modell vorgestellt mit dessen Hilfe die Notwendigkeit f r Sicherheit in VS dargestellt werden kann Weiter dient es als Differenzierungsinstrument f r die noch vorzustellenden Middleware plattformen Nur durch das Verst ndnis der Bedrohung kann sp ter die Qualit t und Praktikabilit t der verwendeten Sicherungsmechanismen der Plattformen f r verteilte Objekte beurteilt werden 2 4 2 Ein Bedrohungsmodell 2 4 2 1 Die Bedrohung Bei der Darstellung der Bedrohung gilt es zwischen den klassischen Bedrohungen und den neuen Bedrohungen zu unterscheiden die sich aus der ffnung und Vernetzung von EDV Systemen ergeben Bei der klassischen Bedrohung steht ein argloser Benutzer eines EDV Systems einer Bedrohung gegen ber Diese kann aus einem zumeist technisch versierten Mitarbeiter der sich Arbeitserfolge aneignen will einem Saboteur einem Industrie Spion oder
215. ormalen JAV A Schnittstellen zu erstellen Wie in CORBA oder DCOM sind also Vermittlungsschichten an der Kommunikation beteiligt die der RMI Compiler rmic aus der Schnittstellenbeschreibung automatisch generiert MER97 Dieses Umgehen einer eigenen Schnittstellenbeschreibungssprache f hrt automatisch dazu da RMI nicht Objekte adressieren kann die in anderen Sprachen erstellt worden sind Da RMI auf der bertragungsschicht keine Unterst tzung f r Sicherheit und Transaktionen bietet mu man dieses Kommunikationsprotokoll als propriet r und lightweight bezeichnen Internet und Intranet Zur Zeit stehen zwei ver ffentlichte Versionen zur Verf gung SUN296 1 JDK 1 1 http java sun com products JDK 1 1 Kernunterstiitzung fiir RMI RMI Anwendungen genaugenommen Applets siehe Kapitel 4 2 k nnen lediglich im JDK ausgef hrt werden solange Lizenznehmer nicht die VM des JDK 1 1 in ihren Browser Produkten implementiert haben Dies ist zur Zeit noch nicht erfolgt 2 RMI auf Basis des JDK 1 0 2 http chatsubo javasoft com current rmi index html Diese Zwischenversion l st Betaversionen von RMI ab Sie ist sowohl in der VM des JDK 1 0 2 als auch in besonderen Versionen von HotJava und Netscape 3 01 lauff hig Bei der Anwendung von RMI auf Servern die jenseits einer Circuit Level Firewall siehe Kapitel 2 4 3 2 liegen durch die also keine HTTP Anforderungen direkt in das Intranet weitergegeben werden i
216. ormanz der Sprache Einerseits hat die hohe resultierende Kommunikation der Komponenten besonders auf langsamen Internetverbindungen eine negative Auswirkung auf die unmittelbare Antwortzeit anderseits f hrt die Umlegung der Rechenlast auf den Server zu einer Erh hung der Serverlast selbst Vorhandene Rechenleistung auf der Klientenseite bleibt unbenutzt Durch die Umstellung in Unternehmen von Einzelplatzsystemen auf vernetze Systeme ist diese Ressource auch als wirtschaftlicher Faktor nicht zu vernachl ssigen Diese berlegung f hrt zu der folgenden begrifflichen Differenzierung und Diskussion um die Distribution von Programmen im allgemeinen die ebenfalls Grundlage f r die Er rterung von verteilten Objekten ist Wenn Anwendungen auf einem Klientensystem ausgef hrt werden sollen gibt es zwei Haupt aspekte was wird verschickt und was wird ausgef hrt Dabei gibt es jeweils drei Alternativen Quellcode ein teilweise kompiliertes Zwischenformat z B Bytecode und Bin rcode Da die Kompilation auf dem Klienten vorgenommen werden kann stimmen bertragene und ausgef hrte Information nicht zwingend berein Bytecode nach Messungen die auf der JavaOne Konferenz vorgestellt wurden kann 2 3 mal kleiner als vergleichbarer Bin rcode sein Damit ist der Transfer der Information erheblich schneller was sich besonders auf langsamen Verbindungen bemerkbar macht Quellcode wie er auch bei HTML Verwendung findet ist ebenfalls sehr kompakt Bez
217. peicher der auf der Serverseite durch den Aufruf von rpc_ss_allocate allokiert wurde wird nach R ckgabe der Parameter an den aufrufenden Klienten automatisch freigegeben Besonders in der potentiell instabilen Umgebung des Internets ist die Freigabe von stillstehenden Klientenressourcen ein abschlie end wichtiger Punkt OSF DCE Server ver ffentlichen eine asynchrone ShutDown Nachricht an einen Klienten von dem seit 20 Sekunden keine Anforderung erfolgt ist Damit wird der Klient aufgefordert die durch den RPC belegten Ressourcen frei zugeben 43 Verarbeitung mit verteilten Objekten 3 2 2 5 DCE Services Der Sicherheitsdienst von DCE erm glicht die berpr fung der Identit t eines Prozesses auf einem anderem System und der darauf basierenden selektiven Zuweisung von Ressourcen DCE bietet diesen Dienst an da von dem unterliegenden Betriebssystem im allgemeinen keine Unter st tzung bei verteilter Sicherheit erwartet werden kann Der Sicherheitsdienst von OSF DCE beantwortet viele Fragen wie zum Beispiel Schutz von Pa w rtern und Spoofing die mit der Anwendung von TCP IP entstehen DCE setzt im Gegensatz zu CORBA explizit voraus da das Netzwerk unsicher ist und das jede bertragene Information potentiell abgeh rt und modifiziert werden kann Vertrauen wird in ein nicht authentifiziertes Objekt auf Klienten oder Serverseite nicht gesetzt Der DCE Sicherheitsdienst bietet BRU97 e einen Registry Service f r Klient
218. ponente eine COM Komponente die das IUnknown Interface unterst tzt und sich selbst registrieren kann CHAP96 Durch die F higkeit der eigenen Registrierung in der Registry des Betriebssystems kann die Komponente ohne separaten Installationsvorgang vom Klienten verwendet werden Eine begriffliche Trennung zur COM Komponente wird in der Literatur weiterhin gepflegt CHAP96 soll auch hier zum besseren Verst ndnis beibehalten werden ist aber aus Sicht der Technologie in keiner Weise sinnvoll Hervorzuheben bleibt noch da ActiveX Komponenten sich in der Registry unter verschiedenen Kategorien eintragen k nnen um ihre M chtigkeit anzugeben Anders als die blichen mnemonischen String Eintr ge werden hier GUID verwendet die als Category Identifier CATID bezeichnet werden Im Unterschied zur CLSID definiert also eine CATID die F higkeit einer Komponente eine bestimmte Anforderung nicht Methode erf llen zu k nnen CHAP96 87 Beispielentwicklung und implementierung F r den Endanwender bilden Komponentencontainer und ActiveX Komponente eine Einheit die sich als homogene Anwendung darstellt Dies ist besonders f r die Verwendung im Internet interessant wo ein ActiveX f higer Browser als Komponentencontainer eingesetzt wird Eine ActiveX Komponente kann durch Verwendung des OBJECT Tags in HTML geladen und verwendet werden lt HTML gt lt TITLE gt CONTROL EXAMPLE lt TITLE gt lt BODY gt lt OBJECT CLASSID
219. prache ist aber auch die Frage nach dem zugrundeliegenden Komponentenmodell zu kl ren Gesucht wird eine Infrastruktur die es erlaubt ber das Netzwerk geladene Anwendungen zu Applikationen zu kombinieren ohne einen gro en Aufwand in die Implementierung der Kommunikation selbst zu investieren Gleichzeitig soll diese Form der Interaktion die Kommunikation von lokal ausgef hrtem Code mit Objekten erlauben die potentiell weltweit verteilt sind Die Frage nach einer L sung kann in Ermangelung einer Alternative auf die Entscheidung zwischen der Common Object Request Broker Architecture CORBA der Object Management Group OMG und dem Component Object Model COM der Firma Microsoft reduziert werden F r verteilte Objekte sieht Microsoft MS Distributed COM DCOM vor welches der Softwarehersteller in einer ersten Implementierung mit MS Windows NT WinNT V4 0 ausliefert und als Zusatz zu MS Windows 95 Win95 frei verf gbar ist Weiter fort geschritten ist die Entwicklung auf Seiten des offenen CORBA Standards wobei mehrere Hersteller schon Produkte vorzuweisen haben Einige von ihnen k nnen mit Object Request Brokern ORB aufwarten die in JAVA geschrieben wurden und damit innerhalb von WWW Browsern ablaufen k nnen Sie sind beispielsweise in der Lage JAV A Applets mit zu CORBA kompatiblen Objekten zu verbinden CW96 Die Deutsche Gesellschaft f r Technische Zusammenarbeit GTZ GmbH
220. priet r nein ja Tab 3 Eigenschaften von CGI HTTP ORF97 und HTTP ISAPI Messungen der Performanz in ORF97 haben ergeben da die Kombination CGI HTTP ca doppelt so langsam wie Sockets sind Im TCP IP Modell HAL97 baut TCP in der Transport schicht auf IP in der sogenannten Internetschicht auf Diese Kombination wird wiederum vom HTTP in der Anwendungsschicht verwendet eine schlechtere Performanz ist dabei zwangs l ufig Der Einsatz von ISAPI kann diese Me werte besonders bei wiederholten Zugriffen verbessern das Gesamtverhalten des Modells bleibt aber unzureichend 2 3 5 Remote Method Invocation RMI Am 3 Dezember 1996 k ndigte JavaSoft seine JAVA Development Kit JDK 1 1 an Teil dieser Entwicklungsumgebung ist die Remote Method Invocation RMI welche ein verteiltes Objektmodell in die JAVA Sprache einf hrt Obwohl die objektorientierte Programmiersprache JAVA noch in den folgenden Kapiteln zu diskutieren ist soll hier RMI separat betrachtet werden RMI erm glicht Programmierern von JAVA die Erstellung von verteilten JAVA Applikationen in denen Methoden entfernter JAVA Objekte von JAVA Virtual Machines aufgerufen werden k nnen Die Virtual Machine VM interpretiert JAVA Bytecode und f hrt diesen dann auf dem Klientensystem aus Die VM kann also in diesem Kapitel als Laufzeitumgebung von JAVA betrachtet werden Eine n here Diskussion erfolgt im Kapitel 4 2 Internet und Intranet Ein JAVA Pro
221. r SCM Bei entfernten Komponenten gibt der SCM der lokalen Maschine eine entsprechende Anforderung an den SCM des entfernten Systems Dieser Mechanismus wird in DCOM durch das Interface IActivation realisiert welches lediglich die Methode IActivation RemoteActivationimplementiert Nachdem jetzt die Instantiierung von DCOM Komponenten behandelt wurde ist die ber wachung der Lebenszeit zu betrachten Der hier verwendete Ansatz baut auf das Reference Counting des IUnknown Interfaces auf siehe Anhang Bei verteilten Objekten tritt dabei das Problem auf da ein Klient unbeabsichtigt terminiert ohne seine Referenz auf das Interface zu dekrementieren Dieses Problem wird durch ein periodisches Ping gel st indem ein ORPC auf die Serverkomponente ausgel st wird Der einfache Ansatz bei dem jeder Klient jedes verwendete Interface regelm ig kontaktiert ist allerdings bez glich der verbrauchten Ressourcen zu teuer Als Optimierungsansatz werden unter DCOM diese Pings geb ndelt und als OXID Resolver bertragen Dadurch kann festgestellt werden welche Interfaces zu einer Komponente geh ren und welche Komponenten auf einer Maschine laufen Dieser Ping wird durch den Aufruf von IObjectExporter ComplexPing ausgef hrt Danach kann ein einfacher Ping von einem Resolver zum anderen mit I1ObjectExporter SimplePing bertragen wer den Werden von einem Klienten innerhalb eines vorgegebenen Intervalls keine weiteren Pings erhalten wird
222. r allem die Zustandslosigkeit l t dieses Modell f r gro e verteilte Anwendung ungeeignet erscheinen Nichtsdestotrotz ist dieses Modell die am h ufigsten verwendete Plattform f r 3 Tier Systeme im Internet ORF97 Zusammenfassend kann ber diese beiden Modelle gesagt werden da sie nicht zuletzt auch aufgrund ihrer mangel haften Performanz nur f r einen Passiv Dataview in einer klassischen Terminal Server Konfiguration geeignet sind Daten k nnen lediglich von einem Anbieter angefordert empfangen und dann offline dargestellt werden Auch wird die notwendige Sicherheit auf Transportebene nur ber zus tzliche Protokolle wie SSL und SHTTP erreicht die sich zum heutigen Zeitpunkt noch nicht als Standard gefestigt haben RMI kann dagegen schon als Middleware f r verteilte Objekte aufgefa t werden Es unterst tzt eine Schnittstellenbeschreibungssprache durch seine Implementierung in JAVA hat eine verteilte Garbage Collection und eine gute Performanz RMI kann als Objekt BUS auf Basis von JAVA bezeichnet werden der folgende positiven Eigenschaften einf hrt e Code kann mit Daten bertragen werden e Durch die Implementierungssprache JAVA wird sowohl ein Sicherheitskonzept f r Code als auch eine Schnittstellenbeschreibungssprache eingef hrt e Objekte k nnen By Value bergeben werden was unter CORBA und COM nicht m glich ist vgl entsprechende Kapitel 3 2 1 und 3 2 3 Vermi t werden allerdings persist
223. r baulichen Ma nahmen und der Mechanismen zur Abschirmung wird in dieser Arbeit vorausgesetzt 22 Internet und Intranet Im Unterschied zu passiven Angriffen versuchen aktive Angriffe Informationen zu vernichten oder zu modifizieren Es handelt sich dabei um vors tzliche Angriffe die Informationen oder Kommunikationsverbindungen verf lschen oder den Benutzer zu einem falschen Verhalten veranlassen M gliche Angriffsarten sind Wiederholung oder Verz gerung einer Information Modifizierung von Information Vort uschung einer falschen Identit t Nutzung fremder Betriebsmittel 1 2 3 4 Boykott eines Kommunikationsnetzes 5 6 Leugnen der Teilnahme einer Kommunikation und 7 Schadprogramme Zu den bekanntesten Vertretern der aktiven Angriffe geh ren die Viren die erst durch die Verbreitung des Internets aufgekommen sind F r diese Form von Angriffen ist ein Zugang zum Netzwerk auf Protokollebene erforderlich was zum Beispiel bei der Verbindung des Intranets eines Unternehmens an das ffentliche Internet der Fall ist Einige dieser Strategien werden als Netzwerksniffing Spoofing und Vulnerability Scan bezeichnet Beim Netzwerksniffing werden Nachrichten die in einem Broadcast Netzwerk verschickt werden abgeh rt und analysiert Unter Spoofing versteht man die Vort uschung einer falschen Identit t und der Vulnerability Scan bezeichnet das Suchen und Ausnutzen von system immanenten Sicherheitsl cken
224. rastruktur der GTZ Das Intranet der GTZ besteht aus zwei Regionen die sich in der maximalen bertragungsge schwindigkeit unterscheiden In der Diskussion ber verteilte Objekte im Intranet ist die 9 6KBit Verbindung der internationalen Au enstellen besonders zu beachten Das Verhalten der Middle ware Technologien COM und CORBA auf langsamen Verbindungen mu also separat betrachtet werden gerade weil eine Aufr stung auf schnellere Kan le aus Kosten berlegungen in absehbarer Zeit nicht geplant ist Die Zieltechnologie mu in beiden Regionen performant sein um Akzeptanz bei dem Auftraggeber zu finden Da der kommerzielle Netzwerkanbieter SITA die Sicherheit seines SCITOR X 25 Netzes garan tiert k nnen diese Au enstellen der GTZ aus Sicherheits berlegungen ohne Einschr nkungen zum Intranet gez hlt werden Die Aspekte der Sicherheit von Middleware m ssen also vor allem jenseits der sogenannten Firewall und damit im Internet betrachtet werden Die Eignung f r den Einsatz im Internet h ngt vor allem von Performanz berlegungen im Lichte hoher Anwender zahlen und Aspekten der Softwareverteilung ab Seitens der eingesetzten Software werden auf Seite der Klienten ausschlie lich Betriebssysteme der Firma Microsoft also Win3x Win95 und WinNT eingesetzt In der Beurteilung der Einf hrung und Motivation praktischen Anwendbarkeit von Middlewaretechnologien kann hier ein homogenes Software system angenommen werden obwohl der Einsa
225. rd hier verwendet um eine Datenquelle dynamisch hinzuzuf gen zu bearbeiten oder zu l schen Diese Funktion verwendet Schliissel worter mit denen Verbindungsoptionen festlegen werden die beim Verbinden mittels der Systemsteuerung tiber das Dialogfeld ODBC Setup vgl Abb 38 durch den Anwender auch interaktiv eingestellt werden K nnen e DName Name des ODBC Treibers e DSName Name der Datenquelle selbst e Server Name des Servers hier auf dem MS SQL 6 0 l uft e DDatabase Bezeichner der Datenbank e Bei Bedarf k nnen noch Anwendername USR und pa wort PWD bergeben werden Die dynamische Erstellung hat den wiinschenswerten Nebeneffekt da nach Terminierung der Anwendung die ODBC Konfiguration gel scht und damit dem einfachen Zugriff durch Dritte entzogen wird Bei diesem Systemmodell ist es unerheblich ob WWW Server und MS SQL Server auf separaten Maschinen oder auf einem einzelnen Server laufen Das RDO macht diesen Unterschied f r den Entwickler absolut transparent Remote Data Objekte und Auflistungen stellen einen Rahmen f r Code zur Verf gung um Komponenten eines Remote ODBC Datenbanksystems zu erstellen und zu ver ndern Objekte und Auflistungen haben Eigenschaften welche die Merkmale der Komponenten von Datenbanken beschreiben und Methoden mit denen diese Komponenten ver ndert werden k nnen Mit dem aus hierarchischen Strukturen bestehenden Rahmen erstellen sie Beziehungen zwischen Objekten und Auflistun
226. re fiir verteilte Objekte 3 2 3 2 1 Entwicklung von OLE zu COM DCOM 3 2 3 2 2 Das Component Object Model COM 3 2 3 2 3 Distributed Component Object Model DCOM 3 2 4 Vergleich von COM und CORBA 3 2 4 1 Ubersicht 3 2 4 2 Operationsschicht 3 2 4 3 Sockelschicht 3 2 4 4 Ubertragungsschicht 3 2 4 5 Zusammenfassung 4 Beispielentwicklung und implementierung scscssssssonsssesnssnsnnonssssnsonsnsensnssnsenene 4 1 Uberblick 4 2 JAVA und JavaIDL 4 2 1 JAVA im Internet und Intranet 4 2 1 1 Eigenschaften 4 2 2 JAVA Sicherheitskonzept 4 2 2 1 Einf hrung 4 2 2 2 Die vier Schichten des JAVA Sicherheitsmodells 4 2 3 Datenbankanbindung in JAVA 4 2 4 CORBA als Softwarebasis f r JAVA 4 2 5 Implementierung 4 2 6 Bewertung der Implementierung 4 3 Visual Basic und ActiveX 4 3 1 ActiveX im Intranet und Internet 4 3 2 ActiveX Sicherheitskonzept 4 3 3 Visual Basic als Softwarebasis f r ActiveX 4 3 4 Datenbankanbindung in Visual Basic 4 3 4 1 Zusammenfassung 4 3 4 2 Das Data Access Object 4 3 4 3 Das Remote Data Object 4 3 5 Implementierung 4 3 6 Bewertung der Implementierung 4 4 Vergleich von ActiveX und JAVA 4 4 1 Durchsatzanalyse 4 4 2 Beurteilung und Performanzanalyse des Datenzugriffes 5 Auswertung und Ausblick auf weitere Entwicklungen cssosssssssossssenonsnssnsonsnsene 5 1 Verf gbarkeit 5 2 Vergleich der Middlewareplattformen 5 3 Eignung der Implementierungen f r den Einsatz im Intra und Internet 5 4 Zuk nftige Ent
227. renzen auf der Serverseite die Laufzeit der Komponente berwacht Dies ist ein bedeutender Unterschied zum CORBA Modell in dem der ORB die Lebenszeit der angeschlossenen Objekte berwacht Release Nachdem ein Klient die Serverkomponente nicht mehr ben tigt ruft er Release auf um den Referenzz hler zu dekrementieren H ufig wird das QueryInterface als wichtigstes Interface in COM betitelt Dies liegt daran da dieser sehr einfache Mechanismus ein sehr wichtiges und komplexes Problem l st die Versions kontrolle Exemplarisch verwendet eine bestehende Anwendung eine COM Komponente Wird diese Komponente um eine Funktion erweitert kann die Anwendung wie gewohnt die V Table durch die QueryInterface Methode abfragen Da das Interface einer Komponente nicht ver ndert werden darf m ssen keine Modifikationen an der Anwendung vorgenommen werden sie kennt die neuen Methoden der Komponente nicht Die neue Funktionalit t wird in einem neuen Interface spezifiziert das wiederum von einer neuen Version der Anwendung parallel verwendet werden kann Das QueryInterface und die Unver nderlichkeit von COM Interfaces erlauben da zwei Komponenten separat entwickelt und aktualisiert werden k nnen die Interaktion aber gew hrleistet bleibt CHAP96 Klient Interface 1 Server Version 1 Version 1 Klient Version 2 Klient Version 1 Klient Version 2 Interface 1 o Server gt Version 2 Interface 2 Abb 24 C
228. rgehen wie bei den JDK scheint zwar auf WinNT 3 51 lauff hig zu sein ist aber nicht offiziell freigegeben e F r eine vollst ndige Liste der Drittanbieter siehe http java sun com cgi bin java ports cgi 106 Auswertung und Ausblick auf weitere Entwicklungen VTables der COM Komponenten Bei Verwendung eines JIT Compilers wird jede Adresse innerhalb der VTable die ja auf Bytecode verweist durch die Adresse des JIT Compilers selbst ausgetauscht Bei einem Methodenaufruf der VM ber die VTable generiert nun der JIT Compiler just in Time nativen Bin rcode Das Verfahren basiert also auf der Verarbeitung der einzelnen Methoden so da nur die Methoden kompiliert werden die auch tats chlich aufgerufen werden Dadurch da JIT Compiler nach der vierten Schicht des JAVA Sicherheitsmodells ausgef hrt werden verursachen sie kein weiteres Sicherheitsrisiko sie operieren auf Bytecode der schon auf Sicherheit berpr ft ist MOR97 Hier n hern sich beide Technologien in zwei Punkten an Zum einen unterst tzt JAVA wie auch ActiveX mit dem JIT Compiler eine Form von ausf hrbarem Bin rcode der klare Vorteile in der Ausf hrungsgeschwindigkeit bietet Zum anderen erzielt die Verwendung dieses Compilers durch das selektive Laden von bin ren Methodenkomponenten einen Performanzgewinn vgl Kapitel 2 3 2 Auch dieses Verfahren ist in der ActiveX Umgebung durch In Process Server oder DLLs bekannt Die folgenden wichti
229. riff als bergabewert und gibt TRUE zur ck wenn das Wort gefunden wurde FALSE sonst Function SpellCheck strTestWord As String As Boolean DIM Obj As Object Set OBJ CreateObject Word Application SpellCheck Obj CheckSpelling strTestWord End Function Die COM Komponente WORD mit der Methode CheckSpelling kann ohne Angabe einer Identifizierung der Klasse und durch Verwendung des WinNT Locator unabh ngig von der Lokalit t der Komponente instantiiert werden Nach dem transparenten Aufruf des Dispinterfaces kann die ffentliche Methode der Komponente sofort aufgerufen werden Wie in der Abb 23 demonstriert besteht das Unknown Interface nur aus drei Grundoperationen QueryInterface Nachdem ein Klient nach der Instantiierung des Objekts den ersten Interfacezeiger erhalten hat k nnen durch den Aufruf von IUnknown QueryInteface die Zeiger auf die anderen Interfaces der Komponente angefordert werden Die IID des angeforderten Interfaces wird von 57 Verarbeitung mit verteilten Objekten dem Klienten als Parameter bergeben Wenn die Methode unterst tzt wird wird der entsprechende Interfacezeiger sonst NIL zur ckgegeben AddRef Diese Methode implementiert den Mechanismus der in COM als reference Counting bezeichnet wird Da kein Klient der Referenzen auf eine Komponente h lt nicht wissen kann ob noch andere Klienten diese Komponente weiterhin verwenden wird durch das Z hlen von aktiven Refe
230. rm Resource Locator URL eindeutig identifiziert werden URLs identifizieren HTML Seiten dergestalt da Fragen nach dem Namen der Seite deren Lokation und der Methode wie auf die Seite zugegriffen werden kann durch Zuweisung eines einzigen global eindeutigen Bezeichners gemeinsam beantwortet werden URLs bestehen demnach aus drei Teilen dem Protokoll dem DNS Namen der Maschine vgl Kapitel 3 2 2 5 und einem lokal eindeutigen Namen der spezifischen Seite blicherweise der Dateiname TAN97 Das WWW besteht also aus Software Protokollen Konventionen und Informationen welche die Ver ffentlichung von Hypertext Dokumenten und Multimedia Ressourcen auf verschiedenen Computern weltweit erm glichen Damit bildet es ein Netz von Informationsquellen 2 2 Systemmodelle 2 2 1 Das Grundmodell f r zentrale Systeme In der Diskussion um verteilte Objekte m ssen zun chst die grundlegenden Begriffe gekl rt werden In der Informatik versteht man unter einem System die Zusammenfassung mehrerer Komponenten zu einer als ganzes aufzufassenden Einheit vgl HER93 f r Erkennungsmerk male von Systemen und weitere Unterscheidungen Die meisten Anwendungen oder Anwen dungssysteme bestehen aus drei Grundelementen einer heute meist grafischen Benutzerschnitt stelle GUI einer berechnenden Einheit und einem Informationsspeicher Im allgemeinen Rechnermodell sind die einzelnen Komponenten integriert so da eine Differenzierung kaum m gli
231. rnet verwendet werden k nnen Da unter WinNT eine Integration der ACL des Betriebssystems selbst und der des MS SQL Servers m glich ist kann ber diesen Mechanismus eine homogene Benutzerverwaltung sowohl f r den Zugriff auf den WWW Server als auch auf den MS SQL Server realisiert werden Zus tzliche und unterst tzende Protokolle und Mechanismen wie SHTTP und SSL sind dabei unn tig Nicht zuletzt die einfache Integration des RDO und die damit verbundene M glichkeit von Prefetching und Offline Cache machen dieses Modell f r einen Einsatz in Intranet variabler Bandbreite geeignet und dem implementierten JavalDL Modell berlegen 4 4 Vergleich von ActiveX und JAVA 4 4 1 Durchsatzanalyse Die Bewertung der Leistungsf higkeit der beiden realisierten Modelle basiert auf der Betrachtung von vier Teilaspekten die zusammen ein Gesamtbild zur Bewertung liefern Um die Kapazit t der verschiedenen Verbindungsarten klassifizieren zu k nnen wird hier neben der theoretischen bertragungsrate der Verbindung die Round Trip Time RTT eines Ping Paketes f r die Bewertung herangezogen vgl Anhang C Diese vereinfachende Einschr nkung wird in Kauf 98 Beispielentwicklung und implementierung genommen da eine effektive Rate der Datentibertragung der Medien von zu vielen Aspekten beeinfluBt wird siehe dazu auch den Anhang C Gerade weil in dem implementierten Beispiel sehr viele Methodenaufrufe keine oder nur wenige Da
232. rotocol DCE CIOP RED96 Bei Br cken zwischen ORBs werden Vollbr cken die direkt das Protokoll des einen ORB in das des anderen umsetzen und Halbbr cken die das Protokoll des einen ORB zun chst in ein all gemeines Protokoll z B HOP und dann wieder in das spezifische Protokoll des zweiten ORB berf hren unterschieden Hardware Br cken wie zum Beispiel eine Firewall oder ein Bastion Host BRU97 von Netzwerksegmenten sind ein naheliegender Ort f r die Implementierung von ORB Br cken IIOP ESIOP oder propriet res Protokoll E ORB2 one Halb Halb LD SS ORB1 SE e IX Backbone 2 ale K 9 ORB2 EE briicke br cke SEN Abb 15 Kommunikationsmodelle zwischen ORBs RED96 Die grundlegende Kommunikation ber das IIOP stellt sich wie folgt dar Wenn ein IIOP Klient eine Nachricht an ein entferntes Objekt sendet ist daf r eine Interoperable Object Reference IOR erforderlich welche die Adressierungsinformation f r das Objekt speichert IORs sind die ORB iibergreifende giiltige Form der Objektreferenz 39 Verarbeitung mit verteilten Objekten Eine IOR besteht typischerweise mindestens aus IONA197 e dem Namen des Servers auf dem das Objekt vorhanden ist e dem Port auf dem das Objekt erreichbar ist e dem Objektschl ssel ein Bytestring der das Objekt identifiziert Sobald ein IIOP Klient die IOR des entfernten Objektes erhalten hat wird eine bidirektionale TCP Verbin
233. ruht auf offenen Standards zu denen prim r das Netzwerkprotokoll TCP IP geh rt F r eine detaillierte bersicht ber die Internet Protocol IP Standards siehe HAL96 und TAN97 Ubernimmt man TCP IP aus dem Internet in das eigene lokale Netzwerk und installiert zugeh rige Dienstserver z B WWW GOPHER FTP Telnet etc gewinnt das Unternehmen automatisch Data sharing und Information Retrieval Kapazit ten Zun chst ergeben diese berlegungen eine Definition f r den Begriff des Internets BRU96 Das Internet ist ein ffentliches WAN auf Basis des TCP IP Die bernahme dieser Technologien in lokale Netze tangiert allerdings immer das Problem der Daten und Netzwerksicherheit Um das Unternehmensnetzwerk vor dem Zugriff Au enstehender zu sch tzen werden sogenannte Firewalls zur Trennung der Netzwerke verwendet Die Funktions weise Bedeutung und Definition von Firewalls werden im Kapitel 2 4 3 2 n her erl utert Schon jetzt kann mit Hilfe dieser berlegung der Begriff selbst definiert werden Ein Intranet ist entweder ein durch eine Firewall vom Internet getrenntes Teilnetz oder ein v llig autarkes Computernetzwerk auf Basis des TCP IP ohne Verbindung zum Internet Der Unterschied zwischen den beiden Begriffen liegt also lediglich im Sicherheitsaspekt Solange dieser Punkt nicht f r eine Diskussion in Betracht gezogen werden mu sollen die Begriffe Internet und Intranet synonym gebraucht werden Bei einer
234. runds tzliche Anforderung der Kommunikation zwischen Teil Anwendungen zu vereinfachen wurde von Microsoft 1993 das Component Object Model als Plattform f r OLE 2 eingef hrt COM wurde zu diesem Zeitpunkt wie folgt definiert COM definiert eine einheitliche Schnittstelle um Software Dienste anzusprechen Im COM ist ein Objekt kompilierter Code der dem Rest des Systems einen Dienst zur Verf gung stellt Um Verwechslungen mit der Namensgebung in der objektorientierten Programmierung zu X DirectX ist eine Schnittstelle zwischen Hard und Software die Programmen auf Basis von MS Windows Echtzeitzugriffe auf die unterliegende Hardware erm glicht 54 Verarbeitung mit verteilten Objekten vermeiden wird ein COM Objekt als Komponentenobjekt oder als Komponente bezeichnet KIN95 Jedes COM Objekt unterstiitzt mindestens ein Interface Schnittstelle im weiteren wird aber der von Microsoft eingef hrte Terminus verwandt um eine Differenzierung zu anderen Middle ware Technologien wie CORBA zu erm glichen das wiederum mindestens eine Methode realisiert Ein Interface ist die Definition des erwarteten Verhaltens und der erwarteten Zust ndigkeiten eines Komponentenobjekts Eine Methode besteht aus einer Funktion oder Prozedur die eine bestimmte Aktion ausf hrt Methoden innerhalb eines Interfaces sind in der Regel inhaltlich verwandt Wichtig ist da ein Interface weder eine Klasse noch ein Komponentenobjekt ist
235. rung verwendet Sie werden ber TCP Verbindungen bertragen und verwenden eine einzige TCP Verbindung als Kontroll kanal Vor der bertragung wird von den beiden Teilnehmern gegenseitig um die Erlaubnis f r die bermittlung der Pakete gebeten und sowohl Kompressionsverfahren als auch Verschachtelungs methode in einem Handshake ausgehandelt Bei der bertragung stellt das PPP Protokoll Serialisierung zur Verf gung 8 Die Protokollgruppe PPP ist im RFC 1661 definiert und wird f r W hlleitungen und Router Router Mietleitungen verwendet 31 Internet und Intranet 32 Verarbeitung mit verteilten Objekten 3 Verarbeitung mit verteilten Objekten 3 1 Einf hrung Verteilte Verarbeitung ist ein Schlagwort der EDV in den 90er Jahren Dieser Terminus wird stark mit dem Begriff downsizing assoziiert der selbst als Schlagwort die Migration von gro en EDV Systemen vom zentralen Mainframe zu Netzwerken von Workstations Minicomputer und Personalcomputer beschreibt Im Rahmen dieser Entwicklung wird den Internetcomputern eine gro e Zukunft einger umt vgl Kapitel 5 1 Die ersten Versuche von verteilten Anwendungen beinhalteten Dateiserver die es Anwendern erm glichten gegenseitig auf ihre Dateien zuzugreifen Die Lokation der Datei war dabei bereits transparent Als n chster Schritt wurden Datenbankanwendungen auf Netzwerken eingef hrt die ein zentrales Datenmanagement anboten und auf das Klient Server Modell basierten LAN
236. rungsgeschwindigkeit in den Hintergrund dr ngt Dieser Faktor wurde in dem noch folgenden Performanzvergleich ber cksichtigt vgl Kapitel 4 4 1 Der Vorteil den das Versenden von Bytecode siehe JAVA gegen ber Quellcode siehe 12 Internet und Intranet HTML mit sich bringt ist da eine Vielzahl von Programmiersprachen mit unterschiedlichem Quellcode eine entsprechend hohe Zahl von Compilern Interpretern f r den Quellcode ben tigen w rde Einheitliche Codeformate dagegen w rden die Zahl der ben tigten Virtuellen Maschinen reduzieren Die F higkeit sichere und portable Applikationen in einem vor kompilierten Format zu laden bringt gleichzeitig den Schutz des intellektuellen Eigentums des Autors mit sich Das einfache Abschreiben von kleinen Quellcodesegmenten kommt mehr einem Mogeln nahe wobei der Aufwand der Dekompilation schon den Eindruck von tats chlichem Diebstahl vermittelt Das Laden von Bin rcode siehe ActiveX aus ungesicherten Quellen und ber unsichere Netzwerke ist gef hrlich Der Anwendung sollte nicht erlaubt werden direkt auf das Klientensystem zuzugreifen und dort unter Umst nden Schaden anzurichten Auch wenn die Sprache auf eine sichere Untermenge eingeschr nkt wird gibt es keine Garantie da ausschlie lich diese Untermenge auch tats chlich vor der Kompilation verwendet wurde Nachdem die M glichkeiten der Distribution von Programmen aufgezeigt wurden zeigt das Beispiel HTML
237. ry_name rpc_ns_binding_lookup_begin rpc_ns_binding_lookup_done rpc_ns_binding_lookup_next rpc_ns_binding_select rpc_ns_binding_unexport rpc_ns_entry_expand_name rpc_ns_entry_object_ing_begin rpc_ns_entry_object_ing_done rpc_ns_entry_object_ing_next rpc_ns_group_delete rpc_ns_group_mbr_add rpc_ns_group_mbr_ing_begin rpc_ns_group_mbr_inq_done rpc_ns_group_mbr_inq_next rpc_ns_group_mbr_remove ipc_ns_mgmt_binding_unexport rpc_ns_mgmt_entry_create rpc_ns_mgmt_entry_delete rpc_ns_mgmt_entry_inq_if_ids rpc_ns_mgmt_handle_set_exp_age rpc_ns_mgmt_inq_exp_age rpc_ns_mgmt_set_exp_age rpc_ns_profile_delete rpc_ns_profile_elt_add rpc_ns_profile_elt_ing_begin rpc_ns_profile_elt_ing_done rpc_ns_profile_elt_inq_next rpc_ns_profile_elt_remove rpc_object_inq_type rpc_object_set_ing_fn rpc_object_set_type rpc_protseq_vector_free XX MS RPC Funktionsname RpcMgmtSetAuthorizationFn RpcMgmtSetCancelTimeout RpcMgmtSetComTimeout RpcMgmtSetServerStackSize RpcMgmtStatsVectorFree RpcMgmtStopServerListening RpcMgmtWaitServerListen RpcNetworkIngProtsegs RpcNetworkIsProtseq Valid RpcNsBindingExport RpcNsBindinglmportBegin RpcNsBindinglmportDone RpcNsBindinglmportNext RpcNsBindinglnqEntryName RpcNsBindingLookupBegin RpcNsBindingLookupDone RpcNsBindingLookupNext RpcNsBindingSelect RpcNsBindingUnexport RpcNsEntryExpandName RpcNsEntryObjectInqBegin RpcNsEntryObjectInqDone RpcNsEntryObje
238. s indem die Konteninformationen direkt in den Code implementiert sind Dieses Vor 96 Beispielentwicklung und implementierung gehen mu te gew hlt werden um den Server als Dienst implementieren zu K nnen Dies w re bei der Verwendung eines interaktiven Authentifizierungsdialoges nicht m glich Ein Dienst ist das WinNT Gegenst ck zu einem Daemon Er ist auch dann aktiv wenn kein Anwender an dem WinNT Betriebssystem angemeldet ist und kann einen vorgegebenen Anwender impersonifizieren um so vorgegebene Rechte auf dem System zugewiesen zu bekommen Eine Implementierung des Servers als eigenst ndiges Programm wie sie auch bei dem JAVA Server erfolgt ist kann nat rlich einen Authentifizierungsdialog hervorbringen Um eine Anwendung als WinNT Dienst zu registrieren ist wie folgt vorzugehen MS396 1 lt Drive gt lt ResKitDir gt INSTSRV EXE lt ServiceName gt lt Drive gt lt TargetDir gt DCOMServer EXE 2 In dem Registry Zweig SYSTEM CurrentControlSet Services ist der folgende Eintrag einzu f gen Value Name Application Data Type REG_SZ String lt Drive gt lt Target Dir gt DCOMServer EXE Die Konfiguration als Dienst hat den Vorteil da auf dem Server kein Anwender angemeldet sein mu und er damit ohne Interaktion durch einen Anwender betrieben werden kann Dies ist bei der Implementierung des JAV A Servers zur Zeit noch nicht m glich Auf die vollst ndige Implementierung des Klienten wurde verzichtet da hi
239. se von Colbe W Hammann P La mann G Betriebswirtschaftstheorie II 3 Aufl Springer Heidelberg New York London u a 1989 Cook D Write a Simple HTTP based Server Using MFC and Windows Sockets erschienen in Microsoft Systems Journal Vol 11 1996 No 2 Schmitt Dr H J Bewegliche Ziele ActiveX Microsofts Antwort auf JAVA erschienen in C T Nr 12 1996 S 258 264 Computerwoche Konkurrenz zwischen CORBA und DCOM Das Intranet wandelt sich zur Plattform fiir Verteilte Objekte erschienen in Computerwoche Nr 45 1996 S 27 28 Digital Equipment Corporation Digital Distributed Computing Environment DCE for Windows NT Digital Equipment Corporation 1994 Dicken H Formel SQL Performance von Datenbankabfragen aus Java erschienen in iX Jg 12 1997 S 124 129 Dobson R Go Directly to ODBC with ODBCDirect erschienen in MS Interactive Developer Nr 11 1997 S 66 75 XXV Auswertung und Ausblick auf weitere Entwicklungen DOD85 DOS96 DRAFT95 Department of Defence The Orange Book Department of Defence Standard DoD 5200 28 STD Dezember 1985 http www disa mil MLS info orange Doster M JAVA im und Internet 17 Juni 1996 http www informatik mu luebeck de oster studium java html Hickman K Elgamal T The SSL Protocol Internet Draft Juni 1995 http ds internic net internet drafts draft hickman netscape ssl 01 txt DRAFT
240. sich selbst bestehen F r eine Darstellung von Angriffsmethoden vergleiche BRU97 Nach einer Umfrage betrachten 80 aller Befragten Fahrl ssigkeit und Irrtum als prim re Gefahrenquelle KES94 Die neuen Bedrohungen ergeben sich durch das Aufkommen vernetzter und verteilter Systeme Die heutigen Netze in denen Rechner wie intelligente Inseln gro e Menge von Daten und Programmen speichern und diese ber das offene Internet austauschen sind besonders durch ihre Transportstrecken gef hrdet Im Kontext dieser Arbeit ist das Internet als Transportstrecke ein hochgradig gef hrdeter bertragungsweg Computer k nnen unbefugt betreten deren Speicher ausgesp ht Inhalte gestohlen ver ndert oder vernichtet werden Der Nachrichtenverkehr wird beobachtet Nachrichten werden abgefangen ver ndert oder sp ter wiederverwendet unsicheres Netz Angreifer lesen beobachten ver ndern Sender wiederholen Empf nger Klient Server sicherer Speicher sicherer Speicher Programme Daten Programme Daten Abb 7 Ein Bedrohungsmodell Nachdem die Systeme von Sender und Empf nger selbst gesch tzt wurden mu auch der Kommunikationskanal zwischen diesen Inseln gesichert werden Die Verbindungspunkte der 21 Internet und Intranet Systeme zum unsicheren Netz die sogenannten Gates miissen die einzige Offnung im Sicherungsnetz der Systeme sein Die verschiedenen Klassen
241. siert werden Da die ODBC Schnittstelle als API auch mit der dar ber liegenden JDBC ODBC Br cke Teil des Betriebssystems ist wird eine direkte Kommunikation zwischen JAVA Applet und ODBC Klienten auf der Klientenseite nicht m glich sein Eine 3 Tier L sung ist unumg nglich auch wenn auf der mittleren Schicht keine verarbeitenden Aufgaben n tig w ren wie es in diesem Beispiel der Fall ist Abhilfe kann nur eine abgestufte Konfiguration des Sicherheitsmanagers schaffen Mit die Verwendung der RemoteRecordSet Klasse ist latent ein Datenbestand auf dem Klienten vorhanden Durch die Implementierung eines Benachrichtigungssystems welches den Klienten auf ver nderte Daten auf dem Server hinweist erf hrt das Gesamtsystem eine Verz gerung W hrend der Zeit in dem der Trigger vom Server zum Klienten l uft werden die Daten auf dem Klienten veraltet dargestellt Dieses Problem kommt vor allem bei sehr dynamische Datenbest nden und langsamen Netzwerkverbindungen zum Tragen Dieser mangelnde Funktionsumfang ist nicht zuletzt in den beschr nkten M glichkeiten der JDBC ODBC Br cke verankert Einschr nkungen wie die vorgegebene Verarbeitungs richtung der Daten von links nach rechts und von oben nach unten und die Unf higkeit Datens tze wiederholt zu lesen sind in einem produktiven Umfeld nicht vertretbar An dieser Stelle mu die zuk nftige Entwicklung ansetzten um das vorgestellte Modell f r den Einsatz in der Praxis zu modifi
242. soll Diese Kann durch Nachschlagen in der Registry anhand der CLISD gefunden werden Wenn die entfernte Komponente als DLL realisiert ist wird vom Betriebssystem bei WinNT also von der Middleware ein Ersatzproze gestartet der die DLL l dt und ausf hrt DCOM Server werden einfach ausgef hrt Als Bezeichner f r Maschine sind unter DCOM der DNS unter TCP IP direkte IP Adressen NetBIOS Namen und NetWare IPX SPX Bezeichner zugelassen Um die wiederholten Abfragen des QuerylInterface zu vermeiden wird unter DCOM die CoCreateInstaceEx Methode angeboten Im Gegensatz zu dem COM Aquivalent k n nen bei dieser Funktion eine Liste von ID mit einer Parameter bergabe bergeben werden Alle angeforderten Interfacezeiger werden wiederum als Liste zur ckgegeben Dar ber hinaus kann ber CoCreateInstanceEx auch der Ort der Ausf hrung spezifiziert werden Anstatt auf die lokale Registry zu bauen um das entfernte System zu lokalisieren kann eine Maschine f r die Ausf hrung der Komponente vom Klienten dynamisch bestimmt werden Beide Mechanismen tragen erheblich zur Leistungssteigerung durch Lastverteilung bei verteilten Systemen bei Die Verwendung von Moniker zur Instantiierung und persistenten Bezeichnung von Komponenten unter DCOM ist ebenfalls m glich CHAP96 Nachdem eine Komponente durch DCOM auf entfernten Systemen erstellt worden ist liegt der zweite Teil der Aufgabe in der f r das System transparenten Kommunikati
243. st nur f r CORBA Plattformen verf gbar 5 3 Eignung der Implementierungen f r den Einsatz im Intra und Inter net Die folgende Gegen berstellung von JAVA und ActiveX mu inhaltlich auch JavalDL einbeziehen Dies ist erforderlich da ActiveX auf COM als Middleware aufsetzt und dessen Eigenschaften erbt In dem Vergleich wurden weiter die oben genannten Entwicklungen in JAVA bereits als gegeben angenommen Dies ist m glich da sowohl SUN als auch Netscape bereits entsprechende Erweiterungen zum JAVA Standard angek ndigt oder bereits in einer Betaversion ver ffentlicht haben Der Vergleich erstreckt sich nicht ber die Middlewareplattformen an sich sondern auf die in dieser Arbeit vorgestellten Implementierungen und deren Resultate Gesichtspunkt Verf gbarkeit in der Zukunft Sicherheit Sandbox Vertrauen Verteilte Komponente Klasse Objekt Offener Standard Ja Ja Signatur Nein Ja Versionskontrolle Nein Ja Plattformunabh ngigkeit Ja Ja erfordert Win32 APD Objektcode Byte Bin r Objektgr e zur Zeit noch gro sehr gro Tab 24 Vergleich von JAVA und ActiveX In den beiden implementierten Modellen zeigt sich zun chst da die Kombination von JAVA und JavaIDL keine echte Verteilung von Objekten zul t Aufgrund der Einschr nkungen der VM durch die ein JAVA Applet nur eine Verbindung zu seinem urspr nglichen WWW Server aufbauen kann mu der Server oder ein geeigneter Vertreter auf eben diesem W
244. t 4 3 4 2 Das Data Access Object Das DAO stellt ein einfaches Objektmodell f r die von der Datenquelle unabh ngigen Datenanbindung zur Verf gung Diese mu lediglich eine DAO Schnittstelle unterst tzen was bei ODBC Datenquellen der Fall ist Einige DAO Objekte Methoden und Eigenschaften sind explizit f r die Implementierung und Unterst tzung der Indexed Sequential Access Method ISAM Struktur von Jet und installierbaren ISAM Datenbanken konzipiert ISAM ist ein Schema das die Zeit f r das Finden von Datens tzen in gro en Datenbanken durch Verwendung eines eindeutigen Schl ssels reduzieren soll RIC90 Der Zugriff ber DAO auf ODBC Datenquellen ist damit m glich aber nicht performant weil auch bei dem direkten Zugriff auf ODBC Datenquellen die veraltete und langsame Jet Bibliothek Verwendung findet MS971 siehe dazu auch Abb 36 DAO ist eine Sammlung von Methoden die den Rahmen f r Code zur Datenanbindung und Datenmanipulation bereitstellen Die entsprechenden Objekte und Collections haben Eigen schaften welche die Charakteristika von Datenbankkomponenten und Methoden zur deren Manipulation beschreiben Zusammen bauen diese Objekte und Collections ein hierarchisches Modell der zugrundeliegenden Datenbankstruktur auf das sehr pragmatisch aus der Entwicklungsumgebung heraus kontrolliert werden kann Eine Auflistung der Methoden ist im MS DAO SDK 3 5 als Teil des MS Developer Network nachzulesen MSSDK97 Das
245. t Sicherheitsmechanismen sowohl f r Benutzer und schutzbed rftige Netzwerk ressourcen e Management Administrative Aufgaben der Middleware e API Eine konsistente Schnittstelle fiir Anwendungs und Dienstimplementierung e Zeit Einheitliches Zeitsystem um Dienste zeitlich koordinieren zu k nnen Es gibt viele Ans tze f r Middleware um die Interaktion zwischen Klienten und Server zu unter st tzen Grunds tzlich fallen diese in drei verschiedene Middlewaremodelle BRU97 Das Conversational Model bietet Dienste f r eine einfache Kommunikation Der Klient befragt den Server und wartet dann auf eine Antwort In einigen Definitionen von Netzwerkprotokollen wird dieses Verfahren auch als verbindungsorientiert bezeichnet Dies impliziert da eine Verbindung zwischen Klient und Server bestehen mu damit Kommunikation stattfinden kann Das Remote Procedure Call RPC Model bietet den Mechanismus des Prozeduraufrufes auch f r entfernte Server an Ein Prozeduraufruf ist eine Anweisung welche die Ausf hrung des Rumpfes einer vereinbarten Prozedur bewirkt Bei Funktionsprozeduren wird nach Verarbeitung des Rumpfes ein Ergebniswert zur ckgegeben HER93 Dieses Modell ist synchron da es von der koordinierten Ausf hrung von Klient und Server abh ngig ist Das Messaging Model verwendet Nachrichtenschlangen Queues um die Anforderungen zwischen Klient und Server zu bertragen Eine Folge hei t Schlange wenn Elemente nur am E
246. t stellt MS DCE die Running Object Table ROT zur Geschwindigkeitssteigerung zur Verf gung Hier k nnen sich Komponenten registrieren und damit als aktiv f r die Umgebung kennzeichnen Ein direkter Aufruf der aktiven Komponente ber die Methode TRunningObjectTable GetObjekt ist nun m glich ohne da eine neue Komponente langwierig von der COM Bibliothek generiert werden mu Diese Komponenten werden als MultiUse Connector Object bezeichnet Als Alternative k nnen Server ihr Stammobjekt als PublicNotCreatable kennzeichnen so da Klienteninstanzen nicht direkt erstellen werden k nnen CHAP96 3 2 3 2 3 Distributed Component Object Model DCOM Von Anfang an war COM f r verteilte Systeme ausgelegt Dieser Abschnitt in der Architektur wurde mit dem Distributed COM DCOM 1996 technisch realisiert DCOM f gt lediglich drei neue Elemente zur Basis von COM hinzu Techniken f r die Instantiierung entfernter Komponenten ein Protokoll f r deren Methodenaufruf und ein Mechanismus zur Sicherung des Zugriffs auf diese Komponenten Damit ist eine Trennung im Sprachgebrauch unn tig Die Instantiierung einer Komponente erfolgt in COM durch Aufrufe der CoCreateInstance Methode und anschlie endem Abfragen der ID durch die QueryInterface Methode Dieser Mechanismus funktioniert auch f r entfernte Kompo nenten im DCOM allerdings mu zus tzlich auch die Maschine spezifiziert werden auf der die Komponente ausgef hrt werden
247. t die Signatur stellt die zertifizierende Autorit t die das Zertifikat des Herstellers ausgestellt hat fest und erfragt den ffentlichen Schl ssel des Herstellers Der ffentliche Schl ssel wird f r die Entschl sselung des verschl sselten Hash verwandt Dieser wird mit der Ausgabe desselben Einweg Hash Algorithmus verglichen welcher auf dem Code ausgef hrt wird Wenn der Code nach der Signatur nicht ver ndert wurde sind der alte und neue Schl ssel identisch Falls die Schl ssel nicht bereinstimmen erh lt der Anwender einen Warnhinweis und kann dann entscheiden ob der Code ausgef hrt werden soll Wenn der Anwender sich f r die Ausf hrung entscheidet treten keine weiteren dynamischen berwachungen in Kraft Ein Versehen des Codes mit einer Spezifikation des Ressourcenbedarfs durch den Hersteller ist nicht vorgesehen CHAP96 K rzliche Pressemeldungen haben das Produkt Authenticode der Firma Microsoft mit ActiveX Sicherheit gleichgesetzt Dies ist inkorrekt Authenticode arbeitet mit JAVA Applets Browser Plug Ins und ActiveX Komponenten um f r diese Softwarekomponenten eine Herstelleriden tifikation und damit auch Herstellerrechenschaft zu erm glichen Authenticode ist eine Implemen tierung des Vorschlages f r Signatur von Quellcode der Firma Microsoft an das World Wide Web Consortium W3C Authenticode verwendet ausschlie lich dokumentierte Win32 APIs Wenn eine Komponente durch einen Browser geladen
248. t eines Objektes BRU97 Vertrauen bezieht sich in der EDV auf die F higkeit von Anwendungen Anforderungen integer durchzuf hren Informationen geheim zu behandeln und diese Aufgaben kontinuierlich durchzuf hren Im Gegensatz zu diesem allgemeinen Verst ndnis von Vertrauen besteht das zweite Merkmal in der Verf gbarkeit des angeforderten Objektes So mu ein Anwender grunds tzlich davon ausgehen k nnen da zum Beispiel eine Transaktion tats chlich in akzeptabler Zeit ausgef hrt wird Ist diese Pr misse nicht erf llt wird der Anwender die Benutzung des VS ablehnen Verf gbarkeit impliziert bei einem VS dabei e Best ndigkeit Die F higkeit vollst ndige auch physikalische Dienstunter brechungen zu berstehen e Widerstandsf higkeit Die F higkeit schleichenden oder teilweise auftretenden Dienst ausf llen zu begegnen e Rettung Die F higkeit ohne Eingriff von au en nach einer vollst ndigen Dienstunterbrechung den normalen Dienstbetrieb wieder aufnehmen zu k nnen e Konsistenz Die F higkeit zu jeder Zeit die selben Ergebnisse auf eine Anfrage zu liefern Der verteilte Proze mu jederzeit konsistent sein 25 Internet und intranet Das letzte Merkmal ist die Performanz eines vertrauenswiirdigen VS Damit ein VS benutzt und akzeptiert wird mu es seine Aufgaben in einer der Anforderung entsprechenden Zeit also so schnell wie n tig erf llen Vom Standpunkt der Sicherheit m ssen Beschr nkungen so e
249. t und berpr ft Sicherheitsinformationen anhand der eigenen Registry oder dynamisch gesammelter Komponenten in internen Tabellen Die Berechtigung eines Objektes s Abb 8 Die Verantwortung eines Objektes wird durch ACL geregelt Aufrufsicherheit tritt als zweite Instanz nach der Aktivierung der Komponente in Kraft Ver schiedene Sicherungsdienste k nnen Anwendung finden zu den wichtigsten geh ren e Authentifizierung e Autorisation e Datenintegrit t e Datensicherheit Unabh ngig von den zugrundeliegenden Mechanismen ist die Aufrufsicherheit von DCOM durch zwei Grundoptionen definiert Automatische Sicherheit und Interface Sicherheit Bei der ersten kann eine Komponente eine Sicherheitsstufe vorgeben die f r alle Methodenaufrufe g ltig ist Bei der Interface Sicherheit k nnen verschiedene Sicherheitsstufen f r die einzelnen Interfaces vorgegeben werden Eine gleichzeitige Anwendung beider Mechanismen ist m glich CHAP96 Die folgende Tabelle fa t die Merkmale des DCOM zusammen Eigenschaft DCOM Parameter Marshalling ja Parameter bergabe in out in out Laden von dynamischen Stubs Klassen nein Garbage Collection ja dynamic discovery dynamic invocation ja Sicherheit auf Transportebene ja Sicherheit auf Transaktionsebene ja explizit Persistente Namensgebung ja Moniker Persistente Objektreferenzen ja Sprachneutrales Transportprotokoll ja Zugangskontrolle ja Einsatz durch Firewalls ja propriet r nein T
250. tark bereinstimmenden Mappings ver ffentlicht Die folgende Tabelle gibt einen Auszug der Spezifikation von JavaSoft die voraussichtlich den Standard vorgeben werden SUN297 boolean boolean char char octet byte string java lang String short short long int unsigned long int long long long unsigned long long long Tab 16 Mapping der IDL Basistypen nach JAVA IDL Basistypen werden auf die entsprechenden JAVA Typen abgebildet Dieses Language Mapping ist in der OMG IDL JAVA mapping submission orbos 97 02 01 definiert und liegt der OMG vor 4 2 5 Implementierung Die exemplarisch implementierte Anwendung hat zum Ziel Anwendern des Intra oder Internets einen Active View auf einen Datenbestand zu erm glichen Da innerhalb der Restriktionen dieser Arbeit nur eine 3 Tier Realisierung m glich ist werden die einzelnen Komponenten als CORBA Objekte realisiert Im Unterschied zu ROD97 Kann damit in dieser Implementierung die Komponentenkommunikation nicht durch Sockets sondern unter Verwendung von verteilten Objekttechnologien realisiert werden Die exemplarische Implementierung des Active View durch verteilte JAVA Objekte unterliegt besonderen Einschr nkungen die sich in drei Schritten verdeutlichen lassen Da der Datenzugriff auf den MS SQL Server ber die lokale ODBC Schnittstelle erfolgen soll kann ein JAVA Applet diesen nativen Aufruf auf dem lokalen Dateisystem aufgrund der auf 81 Beispie
251. ten bertragen vergleiche z B IriggerEvent Abb 35 ist hier die Klassifizierung durch die Verz gerungszeit des sehr kleinen Ping Paketes ein guter Kompromi Die im folgenden dargestellten Ergebnisse basieren auf den Messungen im Anhang C Zun chst ist die Zeit von Interesse die ein Klient f r das Anbinden an ein Serverobjekt ben tigt Darunter fallen das Suchen und Finden der Serverkomponente und die Etablierung der Kom munikationsverbindung selbst Die Messung ergibt f r die JAVA Implementierung eine verh ltnism ig konstante Zeit f r den Verbindungsaufbau die damit unabh ngig von der Qualit t des Transportmediums ist Ein durchgef hrter Scan Sniffing der bertragenen Daten auf Paketebene best tigt die Vermutung da die gemessenen Zeiten von ca 25s nicht von Daten bertragungen herriihrt Die verwendete Version von JavalDL unterst tzt nur einen sehr einfachen Namensdienst bei dem der Server seine Objektreferenz dem ORB publiziert die dann vom Klienten angefragt werden kann Die gemessene Zeit wird also f r die Instantiierung des Skeleton ben tigt Dem gegen ber ergeben sich f r den Verbindungsaufbau bei COM fallende Werte f r schnellere Verbindungen Der Scan der bertragenen Pakete zeigt hier da w hrend der gesamten Aufbauphase Verbindungsdaten ausgetauscht werden was bei schnelleren Verbindungen zu k rzeren Etablierungszeiten f hrt Bei dem f r das Intranet der GTZ relevanten Wert der physikalisc
252. ten einer Anwendung Er besteht aus einer Vielzahl von Einzelkomponenten wie GUI Systemwerkzeugen und verschiedenen Monitoren Die folgende Tabelle stellt den Stand der Realisierung dieser Produktlinie dar CORBA 2 0 ORBIX Service Plattform realisiert AIX Live Cycle EEE e S y Persistence LL Naming x Event x Concurrency Transaction 3 0 97 Relationship EE Externalisation Query ee ee HE S y Licensing RENE GE We Properties CH Time ha Security Hennes 3 9 97 Trader OrbixTrader__ 3 Q 97 3 0 97 x Collection aaa Sn CARS ee Start up Tab 9 Implementierungen der CORBA 2 0 Spezifikation durch IONA SS Atomicity Consistency Isolation and Durability ACID MSSQL96 Nach Auskunft von Geoff Swain Unix A C Manager IONA mailto gswaine iona com 38 Verarbeitung mit verteilten Objekten Es wird deutlich da selbst der Marktf hrer nur einen Bruchteil der CORBA 2 0 Spezifikation realisiert hat Genau hier greift aber ein Kritikpunkt an der den CORBA Standard als blo e Theorie bezeichnet MS952 Eine Vielzahl von Implementierungen und Anwendungen auf Basis von CORBA entkr ften diesen Vorwurf zum Teil ein Markt f r wiederverwendbare CORBA Objekte existiert aber nicht 3 2 1 6 Internet Inter ORB Protocol IIOP F r die schnelle bidirektionale Verbindung von CORBA kompatiblen Objekten erhob die Object Management Group OMG das Internet Inter ORB Protocol IOP in COR
253. ter der Bezeichnung JAVA Objects Everywhere JOE an das die Kommunikation mit Applikationen erm glicht die auf Grundlage der eigenen CORBA Implementierung Network Enterprise Objects NEO entwickelt wurde Konkurrenz erh lt der Hersteller von Workstations von der Firma Visigenic die mit Black Widow ebenso einen vollst ndig in JAVA programmierten ORB vorweisen kann wie auch IONA mit OrbixWeb Letzteres ist in der Version 2 0 zudem in der Lage jedes Endger t mit Serverfunktionen zu versehen Klientendaten k nnen so von einer zentralen Applikation aus abgerufen werden CW96 3 2 1 2 Object Management Architecture OMA Im Sinne der OMA werden Objekte als die grundlegenden Bausteine fiir verteilte Anwendungen definiert F r ein Objekt k nnen Operationen aufgerufen und Eigenschaften erfragt werden Ein Schnittstelle Interface gibt Aufschlu ber die Art der zur Verf gung gestellten Operationen und deren bergabeparameter Der Hauptvorteil eines solchen aus der objektorientierten Programmierung abgeleiteten Ansatzes ist die Modularit t das hei t die F higkeit durch Integration weiterer Objekte und durch Erwei terung vererbter Objekte die Funktionsf higkeit eines Objektes zu vergr ern Diese Wieder verwendung von Objekten verspricht verk rzte Entwicklungszeiten reduzierte Fehleranf lligkeit und bessere Amortisation von Entwicklungskosten STR92 Zentraler Aspekt der OMA ist die Beschreibung von
254. terst tzt NOR96 Asynchrone Operationen sind inh rent durch die Thread Unter st tzung von JAVA vorgesehen die Multithread Sicherheit mu aber durch den Programmierer gesichert werden Transaktionen und Rollback werden in Abh ngigkeit von dem jeweiligen JDBC Treiber unterst tzt Da JDBC praktisch auf ODBC basiert ist es nicht verwunderlich da ein JDBC Treiber Teile oder die ganze ODBC SQL Grammatik unterst tzt Dabei wird zwischen drei Graden der Konformit t unterschieden die durch Aufruf der folgenden Methoden differenziert werden supportsMinumSQLGrammar supportsCoreSQLGrammar supportsExtendedSQLGrammar Die hier verwendete Klassifizierung ist analog zu der Definition im Anhang C des Programmer s Reference for the Microsoft ODBC Software Development Kit der mit dem ODBC SDK von MS V2 10 ver ffentlicht wird e Minimum Die Grammatik die als Minimalanforderung fiir die Qualifikation eines DBMS als SQL DBMS nicht aber als relationale Datenbank erforderlich ist e Kern Vereinigt Minimum Klassifizierung mit einfachen Data Definition Language DDL und Data Control Language DCL Befehlen Zus tzliche Data Manipulation Language DML Funktionen Datentypen zus tzlich zu CHAR SQL Aggregatfunktionen wie SUM und AVG und eine gr ere Menge an Ausdr cken f r die Selektion von Datens tzen werden hinzugef gt e Erweitert Beinhaltet Minimum und Kern Grammatik DML outer joins
255. tes 3 Autorisation Darf das Subjekt die T tigkeit Operation am Objekt ausf hren Problem einer globalen Signatur Diese drei Teilschritte werden nur bei besonders kritischen Systemen bei jeder einzelnen Anforderung durchgef hrt Zwischenergebnisse dieser Teilschritte k nnen auch gespeichert oder Teilschritte zu einer Gruppe zusammengefa t werden um den Overhead des Verfahrens zu reduzieren Die Realisierung dieser Schutzmechanismen erfolgt in der Regel durch einen Monitor der jede Anforderung berwacht Identit t und Authentizit t werden aufgrund von Datenbasen berpr ft die je nach Organisationsmethode als Zugriffsmatrix Subjekt Objekt und T tigkeit als Dimensionen Capability List subjektorientiert oder Access Control List ACL objektorientiert bezeichnet werden BER96 2 4 2 5 Vertrauen Wie sich sp ter im Vergleich der Middlewareplattformen noch zeigen wird kommt bei der Frage nach der Sicherheit von verteilten Objekten dem Begriff des Vertrauens eine zentrale Bedeutung zu Warum sollte man sich seine Aufgaben oder Wirtschaftsprozesse einem System anvertrauen welches man selbst nicht berschauen eventuell nicht einmal rtlich bestimmen kann Wenn nicht die einzelnen Komponenten des VS den pers nlichen Anspr chen gen gen wird man den Komponenten und damit dem Gesamtsystem nicht vertrauen Vertrauen ist das zuversichtliche Hoffen auf Integrit t Ehrlichkeit Gerechtigkeit und Verf gbarkei
256. tionsmanager transparent verarbeitet Es werden zwei OTS L sungen angeboten OrbixOTS der Firma TRANSARC auf Basis des ENCINA TP Subsystems bietet eine in der Industrie erprobte L sung f r verteilte OTS Transaktionen und OrbTP von Groupe Bull eine neue Implementierung der OTS Spezifikation Beide L sungen stehen als Betaversion zur Verf gung und waren f r Mitte 1997 angek ndigt Der CORBA Sicherheitsdienst bietet zwei Ebenen von Informationssicherheit Die erste behandelt die fundamentalen Strukturen f r die Konstruktion von sicheren VS Die zweite stellt eine Menge von Schnittstellen f r die Administration von Sicherheitsregeln und dom nen zur Verf gung Nachdem die OMG die Wichtigkeit von SSL Sicherheit vgl Kapitel 2 3 4 erkannt hat wird an einer standardisierten Einbindung in ORBs gearbeitet IONA bietet zur Zeit eine Implementierung der ersten Ebene als Betaversion auf Solaris 2 x und WinNT V3 51 an Diese f r das 3 Quartal 97 angek ndigten Versionen verwenden die DCE Kerberos Sicherungskomponente vgl Kapitel 3 2 2 5 um die Generic Security Service GSS API Funktionalit t zu bieten RFC 1508 Die Integration von SSL wird als Teil des ORBIX Object Transaction Monitor OTM I ONA297 als Betaversion ab dem 3 Quartal 1997 angeboten Abschlie end bietet der OrbixManager Konfigurationsm glichkeiten und Performanzmanagement f r Orbix und OrbixTalk Der Orbix Manager verwaltet die CORBA basierten Middlewarekomponen
257. treferenzen Methodenaufrufe Objektaktivierung und deaktivierung und die Abbildung von Objektreferenzen auf Implementierungen an Verschiedene Typen von Objekt implementierungen haben unterschiedliche Anforderungen und m ssen von unterschiedlichen OA 35 Verarbeitung mit verteilten Objekten zum Beispiel einem objektorientierten Datenbankadapter fiir Objekte innerhalb einer Datenbank angebunden werden Der Basic Object Adapter BOA definiert einen OA der f r konventio nelle Objektimplementierungen verwendet werden kann CORBA spezifiziert dabei die Implemen tierung der ORB BOA Funktionalit t nicht RED96 CORBA verlangt zudem nicht daB der ORB als eine einzige Komponente realisiert wird was zum Beispiel beim Einsatz unter JAVA nicht m glich w re Statt dessen werden nur die Schnittstellen zum ORB definiert Die von dem ORB angebotenen Operationen k nnen damit in drei Gruppen unterteilt werden RED96 e Operationen die f r alle ORBs identisch sind allgemeine Schnittstellen zum ORB DII und DSD e Operationen die speziell f r den Umgang bestimmter Objekte verwendet werden Stubs und Skeletons e Operationen die f r einen bestimmten Stil von Objektimplementierungen typisch sind OA Die entsprechenden Schnittstellen werden in Abb 14 dargestellt 3 2 1 4 OMG Interface Description Language IDL IDL stellt ein Mittel zur Beschreibung von Objektschnittstellen bereit Diese Beschreibung erfolgt auf einem konzept
258. tware ist der Ausgangspunkt eine mehr oder weniger pr zise beschriebene Aufgabenstellung Bei der berf hrung dieser Beschreibung in ein Soft waresystem m ssen die so spezifizierten inhaltlichen Anforderungen vollst ndig erf llt werden Der prozedurale Ansatz geht davon aus da ein Programm aus Daten besteht welche von Pro zeduren bearbeitet werden Aus der deklarativen Perspektive besteht ein Programm aus einer Menge von Regeln die auf Fakten angewendet werden Beim Grundgedanken der Objekt orientierung wird ein Programm als eine Menge eigenst ndiger Objekte betrachtet die der realen Welt nachgebildet werden In dieser Arbeit findet grunds tzlich die aus der objektorientierten Programmierung Object Oriented Programming OOP STR92 bekannte Definition von Objekten Anwendung Ein Objekt ist ein Informationstr ger der einen zeitlich ver nderbaren Zustand be sitzt und f r den definiert ist wie er auf eingehende Nachrichten reagiert die Defini tionen der Nachrichten k nnen sich im zeitlichen Ablauf ver ndern so da ein Objekt auf eine Nachricht zu unterschiedlichen Zeitpunkten unterschiedlich reagieren kann HER93 Die objektorientierte Programmierung erfolgt also durch Senden von Nachrichten an Objekte wodurch Objekte in ihrem Zustand ver ndert werden oder Informationen ber ihren Zustand erhalten werden k nnen Ein Objekt der realen Welt legt eine Vielzahl von Verhaltensweisen an den Tag Diese werden als Meth
259. tz auf anderen Systemen nicht aus den Augen verloren werden darf Die Heterogenit t der eingesetzten Datenbanken grenzt die praktische Betrachtung auf eine standardisierte Datenbankschnittstelle ein die alle eingesetzten Datenbanken unterst tzt Hier Kommt die noch vorzustellende JDBC Schnittstelle nicht direkt in Frage da Treiber zur Zeit noch nicht von allen Datenbankherstellern zur Verf gung gestellt werden Als einzige gangbare Alternative die sowohl von JAVA als auch von ActiveX unterst tzt wird wird in dieser Arbeit auf die weitverbreitete und standardisierte ODBC Schnittstelle aufgesetzt Internet und Intranet 2 Internet und Intranet 2 1 Definitionen Seine Wurzeln findet das Internet in einem ffentlichen und heterogenen WAN das 1969 in den USA entwickelt wurde Dieses friihe DARPA Internet ARPANET wurde zur Verbindung von Computernetzen der amerikanischen Universit ten mit denen der DARPA errichtet Der Name stammt von der f rdernden Abteilung Advanced Research Project Agency der US Defence Advanced Research Projects Agency DARPA des Verteidigungsministeriums der USA Zun chst diente es lange Zeit experimentellen und theoretischen Untersuchungen auf dem Gebiet der Rechnernetze Im Laufe der Zeit verband es eine Vielzahl von Universit ten und Forschungs einrichtungen und konnte auch von anderen L ndern und Erdteilen erreicht werden Seit der Gr ndungszeit w chst dieser Verbund von Netzwerken st ndig A
260. uf den wichtigen Punkt der Zeiger bergabe eingegangen werden da sich hier ein Hauptunterschied zu WinNT und damit zu COM aufzeigen wird Bei RPCs liegen auf rufender Proze und die aufgerufene Prozedur in unterschiedlichen Adre r umen Dadurch m ssen Zeiger mit den durch sie referenzierten Daten Ziel an den Aufgerufenen bergeben werden Dieser Vorgang wird f r den Entwickler transparent da ein Zeiger auf eine komplexe Datenstruktur als Parameter in einem RPC bergeben wird Der Vorgang des Marshalling ist transparent Um dies zu erm glichen mu die referenzierte Datenstruktur in der IDL Datei definiert werden Hierf r stell die OSF DCE Architektur drei verschiedene Zeigertypen zur Auswahl ROS931 1 Reference Pointer Referenzzeiger werden bei einfachen Verweisen verwendet Dabei mu sichergestellt sein da diese nie auf NIL verweisen Diese einfachste Form eines Zeiger adressiert lediglich Daten Der Stub Code bleibt klein und gestaltet diese Konfiguration sehr performant Der Verweis auf einen Zeiger ist nicht m glich 42 Verarbeitung mit verteilten Objekten 2 Unique Pointer Wenn ein Zeiger auch auf NIL verweisen mu mu ein eindeutiger Zeiger verwendet werden Der Verweis auf Zeiger und kaskadierende Zeiger ist auch hier nicht vorgesehen Eindeutige Zeiger miissen ebenfalls vor dem Gebrauch initialisiert werden Der Stub Code wird in diesem Fall um eine Fehlerbehandlung fiir Speicherschutzverletzungen erweitert Le
261. und zum Beispiel durch einen Perl Interpreter ausgef hrt oder in C C geschrieben und in eine Anwendung kompiliert Letzteres hat unter WinNT erhebliche Vorteile in der Performanz da die bin re DLL nur einmal in den Adre raum geladen werden mu Im Unterschied zu diesem Ansatz verwendet der NT Server von Microsoft nicht CGI sondern das Internet Server Application Programming Interface ISAPD ISAPI Anwendungen sind DLLs anstelle von ausf hrbaren Programmen Die ISAPI DLL ist ein Kommunikationskanal zwischen dem Internet Information Server und dem Internetdienst Dieser WWW Dienst l dt die ISAPI DLL bei Bedarf in den eigenen Adre raum Eine ISAPI Anwendung kann weiter die Vorteile der Win32 API und dar ber auch die des Open Database Connectivity ODBC Standards ausnutzen Dar ber hinaus bieten diese Anwendungen bessere Performanz da sie die Vorteile von Speicherzeiger ausnutzen k nnen und nicht f r die Beantwortung wiederholter Anforderungen neu gestartet werden m ssen Die DLL wird erst wieder aus dem Arbeitsspeicher entfernt wenn sie lange nicht angefordert wurde Dadurch entf llt auch der Proze wechsel auf der WWW Serverseite da die DLL in den Adre raum des anfordernden Prozesses also des WWW Servers geladen wird Wenn die ISAPI DLL geladen ist ist der Code Teil des WWW Dienstes und die ISAPI Anwendung dient lediglich als Erweiterung MS963 Der Internet Information Server der Firma Microsoft arbeitet m
262. ung f r den Entwickler Diese Transparenz ist aber zum Beispiel bei der Verwendung des DAO in einer Multi Threaded apartment model Anwendung nicht w nschenswert da hier der direkte Zugriff auf das Interface ber die einzelnen Appartements Threads hinaus erforderlich ist Normalerweise w rde die Anforderung eines Interfaces durch den Aufruf von CoCreateInstance erfolgen DAO akquiriert aber bereits dieses Interfaces f r eigene Operationen und bietet es wiederum durch die GetInterface Methode und den LPUNKNOWN Operator an 4 3 4 3 Das Remote Data Object Das RDO ist eine MS API welche Datenbankoperationen auf entfernten Datenbanken f r den Entwickler transparent gestaltet RDO legt eine d nne Codeschicht ber das ODBC API und den ODBC Treibermanager der die Verbindungen einrichtet Ergebnismengen und Cursor erstellt und komplexe Prozeduren ausf hrt Dabei werden die Ressourcen der Arbeitsstation nur minimal belastet Mit RDO und dem Remote Daten Steuerelement k nnen Anwendungen auf ODBC Datenquellen zugreifen ohne eine lokale Abfrageverarbeitung zu verwenden Das bedeutet ein deutlich besseres Leistungsverhalten und mehr Flexibilit t beim Zugriff auf entfernte Datenbank module MS961 Vergleichbare Leistungswerte werden nur durch Verwendung der ODBC API direkt erreicht Im Prinzip werden RDO auf hnliche Weise wie die Datenzugriffsobjekte DAO des MS Jet Datenbankmoduls verwendet und das Remote Daten Steuerelement
263. ung ist in die WinNT Anmeldung integriert Der Kerberos Server KDC ist im WinNT Sicherheitsdienst integriert der auf dem Dom nen Controller l uft und den WinNT Verzeichnisdienst als Datenbank f r die Kontenverwaltung von Principals und gruppen ver wendet MS966 Das Kerberos Authentifizierungsprotokoll erweitert die unterliegenden Sicherheitsmechanismen von WinNT und stellt folgende Eigenschaften zur Verf gung MS966 e Schnelle Authentifizierung w hrend der Initialverbindung da der Dom nen Controller die Anwendungsserver entlastet e Delegation der Authentifizierung in vielschichtigen Klienten Serveranwendungen Der Server verk rpert den Klienten nach dessen Authentifizierung Dadurch kann sich der Server seinerseits bei Bedarf am n chsten Server authentifizieren der wiederum den Klienten verk rpert e Transitive Vertrauensbeziehungen f r dom nen bergreifende Authentifizierung Jeder Klient kann sich bei beliebigen Dom nen in der Dom nenstruktur authentifizieren da der KDC Bescheinigungen anderer KDC innerhalb der Struktur akzeptiert Dadurch wird die Adminis tration von gro en Netzwerken vereinfacht 3 Pr sentation des 4 Verifikation Tickets f r den des Ticktes Server Verbindungsaufbau gt D Klient 4 Initiale Authentifizierung WinNT Dom nen Controller des Klienten an KDC WinNT Verzeichnis 2 Anforderung eines Server Tickets TE A Key Distribution Center i Abb 19 b
264. ur Verfiigung gestellt e Object Time Service Der Time Service stellt eine synchronisierte Zeit in einer verteilten Umgebung zur Verf gung RFP4 Services e Object Licensing Service Lizenzierungsmechanismus f r Verwendungsverg tung e Object Properties Service Dieser Service erlaubt das dynamische Verkniipfen von Eigenschaften zu Objekten unab h ngig von ihrer Schnittstellendefinition e Object Query Service Abfrageoperationen f r Objekte auf Basis der Structured Query Language SQL ROD97 also Operationen auf Objektmengen die eine pr dikatenbasierte und deklarative Spezifikation besitzen Abfragen k nnen Objektmengen als Ergebnis zur ckliefern RFPS5 Services e Trader Service Dieser Makler ist eine Suchmaschine f r IOP Objekte die komplexes Suchen f r verteilte Objektdienste erm glicht e Collection Service Unterst tzung f r die Gruppierung von Objekten und deren Manipulation als Gruppe e Start up Service Damit greift COSS nahezu alle Aspekte der verteilten Verarbeitung auf Im Unterschied zu der COM Spezifikation von Microsoft unterscheidet sich aber der Umfang des Standards CORBA 2 0 stark von seiner tats chlichen Realisierung Um den aktuellen Stand der verf gbaren CORBA Services darstellen zu k nnen wird hier exemplarisch die Produktlinie des Marktf hrers f r ORBs die Firma IONA vorgestellt OrbixEvent ist die Implementierung des Ereignisdienstes als OrbixEvent Serveranwendung
265. uriert werden um zum Beispiel von einer Firewall verarbeitet zu werden HTTP ist zustandslos f r jede neue Anforderung des Klienten wird eine neue Verbindung zum Server aufgebaut Diese Eigenschaften resultieren zwar in eine einfache Implementierung machen das Protokoll selbst aber nicht effizient Dazu tr gt weiter der Overhead der selbstbeschreibenden Nachrichten bei Abschlie end ist das Protokoll 4 Eine dreischichtige Softwarearchitektur die Datenbanksysteme in externe Sicht logisches Modell und internes Modell aufteilt RIC90 2 Der Internet Standard MIME fiir Nachrichteninhalte ist in den RFC 1521 und RFC 1522 spezifiziert 15 Internet und Intranet durch seine Zustandslosigkeit f r Eins tze in gro en Klient Server Architekturen und als Plattform f r verteilte Objekte ungeeignet CGI ist die Schnittstelle zwischen einem HTTP Server und einer Anwendung Dadurch k nnen Methoden z B Datenverarbeitung und suche jenseits der M glichkeiten von HTML und HTTP auf Serverseite ausgef hrt werden So kann zum Beispiel ber CGI eine Anmeldung an eine Datenbank erfolgen ein Datensatz gesucht und als HTML Seite aufbereitet ber HTTP an den anfordernden Klienten zur ckgegeben werden CGI ist auf unterschiedlichen Plattformen implementiert und wird oft als Skript bezeichnet da es zumeist in Skript oder Batchsprachen wie Perl TCI und MS DOS Batch realisiert ist ORF97 Neben der Erweiterung der M chti
266. usf hrbaren Programm zugeteilt werden und die Konfiguration dieser Stufen durch den Anwender schwierig zu realisieren und durchzuf hren Gerade diese Forderung kann nicht f r alle Betriebssysteme z B Win3x oder Win95 gelten auf St Siehe auch Frequently Asked Questions Applet Security SUN197 72 Beispielentwicklung und implementierung denen die VM implementiert werden soll Jedes Applet wird in einer eigenen gesicherten Umgebung ausgef hrt die man als Sandkasten bezeichnen kann Die W nde des Sandkastens sind die Sicherheitsregeln die dem Applet durch die VM auferlegt werden Dieses Sicherungsmodell wird als Sandboxing bezeichnet CHAP96 Nur ein kleines Schlupfloch in der Wand des Sandkastens w rde das gesamte Sicherungsmodell der Virtual Machine VM zusammenbrechen lassen Das zweite Problem ist da ein Anwender ein Kriterium braucht um ein bestimmtes Applet einer ad quaten Sicherungsstufe zuzuordnen Eine und wohl auch die beste L sung ist die Sicherstellung der Herkunft des Programmes oder seines Autors JavaSoft hat ein entsprechendes propriet res Modell f r digitale Unterschriften entwickelt dessen Auslieferung sich aber aufgrund von amerikanischen Exportbestimmungen verz gert BRU96 4 2 2 2 Die vier Schichten des JAVA Sicherheitsmodells Die erste Schicht des Sicherheitsmodells besteht in der inh renten Sicherheit von JAVA und resultiert aus der Sprache selbst dem dazu
267. usf hrt Sie wird in separaten Dateien mit der Dateinamenserweiterung DLL gespeichert und kann bei Bedarf von dem Programm geladen werden das sie aufruft Einmal geladen verbleibt die DLL im Arbeitsspeicher 55 Verarbeitung mit verteilten Objekten IUnknown Interface Interface COM InterfaceO Objekt Abb 22 Interfaces eines Komponentenobjekts innerhalb eines Servers CHAP96 Jede COM Komponente ist die Instanz einer Klasse Um eine Methode einer COM Komponente aufzurufen mu der Klient einen Zeiger auf dieses Interface generieren Daf r kann der COM Bibliothek eine Anfrage mit dem Klassennamen und der Interfacebezeichnung tibergeben werden Daraufhin initiiert die COM Bibliothek bei Bedarf den entsprechenden Server der COM Komponente und gibt einen Zeiger auf das angeforderte Interface zur ck Die COM Bibliothek ist die Basis einer jeden COM Implementierung und Teil des Betriebssystems Die Dienste der COM Bibliothek werden nicht als COM Interface sondern als API angeboten CHAP96 Aufgrund dieser Anforderung l t sich abschlie end auch eine Definition f r COM Komponenten formulieren die Bezeichnung ActiveX Komponente wird in der Literatur oft synonym verwandt ist aber aufgrund der Definition nicht sinnvoll Ein Komponentenobjekt ist eine Softwarekomponente die das Interface IUnknown unterst tzt und die zur Laufzeit die Instantiierung einer Klasse bildet ORF97 Die Bedeutung des IUnknown Interfaces wird im
268. va 2 0 Kern ein Hochleistungskern der f r die Ausf hrung von nativem JAVA Code optimiert ist aber auch die Ausf hrung von C Code unterst tzt Diese Entwicklung ist Teil der Tendenz hin zum Internetcomputer ein Personal computer der vor allem durch seine spartanische Hardwareausstattung und dem damit verbun denen niedrigen Preis auff llt plattformunabh ngigen JAVA Code verarbeiten soll und f r den Endverbraucher eine Alternative zur teureren Workstation bietet Die Etablierung dieser Net work Computer NC wird nicht zuletzt auch von der Einf hrung der sogenannten Just in Time JIT Compiler abh ngen Diese Compiler ver ndern die Rolle der VM leicht indem sie Byte code direkt in nativen plattformabh ngigen Code umwandeln Dadurch wird die VM von nativen Aufrufen entlastet Durch diesen Vorgang kann die Ausf hrungsgeschwindigkeit stark gesteigert werden MOR97 Compile Time Run Time Java Virual JIT Compiler Nate y Betriebsystem Quellcode Compiler gt ByteCode Machine Abb 43 JIT Compiler unterst tzen die VM von JAVA MOR97 Eine JAVA Klasse wird dabei durch die VM in den Arbeitsspeicher geladen indem eine sogenannte VTable Virtual Table die Bezeichnung entspricht dem C Pendant inhaltlich besteht aber nur geringe bereinstimmung vergleiche dazu auch MOR97 ausgelesen wird die Zeiger auf alle Methoden der Klasse enth lt Dies ist ein hnliches Vo
269. ver Dienst implementiert ist besteht keine M glichkeit einer direkten Adres sierung LIN96 Hier kann nur ein 3 Tier Modell mit einem Datenbankserver realisiert werden Durch diese Architektur k nnen Applets zum Beispiel ber ein ORB auf eine Dienstschicht zugreifen Diese Dienstschicht kann dann wiederum Aufrufe an den Datenbankserver weitergeben Diese starke Einschr nkung lie e sich durch direkte Kommunikation mit dem MS SQL Server ber Sockets umgehen Dieses Vorgehen ist allerdings nicht Gegenstand dieser Arbeit und ist mit hohem Aufwand bei der Implementierung verbunden Als Alternative kann an dieser Stelle auch das Produkt jdbcKona T3 von WebLogic eingesetzt werden das einen Proxy f r JDBC Ver bindungen erstellt Ahnliche Produkte sind JetConnect von XDB Systems JDesignerPro von Bulletproof und DataRamp von DataRamp JEP97 An dieser Stelle lassen sich wie in der folgenden Abbildung verdeutlicht auch die Maschinen trennen Dies ist f r einen Einsatz im Internet ohnehin sinnvoll da die Dienstschicht auf dem WWW Server liegen mu um eine Kommunikation mit dem Applet auf der Seite des Klienten zu erm glichen Vom Standpunkt der Firewall ist diese Lokation outbound potentiell unsicher und f r einen Datenbankserver g nzlich ungeeignet Die Kommunikation zwischen Dienstschicht also der Servermaschine und dem Datenbankserver kann durch eine Firewall gefiltert und gegebenen falls auch protokolliert werden Da sich nur die Serverm
270. versandt werden Die in DCE verwendeten RPCs sind inh rent synchron Daher unterst tzt DCE Mes sage Queuing vgl Kapitel 2 2 5 um eine asynchrone Verarbeitung zu erm glichen Auch Transaktionskontrolle wird semantisch nicht direkt von RPCs unterst tzt da eine individuelle Verwaltung einer Gruppe von Nachrichten nicht vorgesehen ist eine Transaktionssemantik Kann aber in DCE Anwendungen kodiert werden DCE 1 0 folgt verschiedenen offenen Standards wie dem Berkeley Internet Name Domain BIND und dem International Telegraph and Telephone Consultative Committee CCITT X 500 Verzeichnisdienst ROS931 3 2 2 2 Zellen Um die Administration von gro en DCE Umgebungen zu vereinfachen teilt DCE das Gesamt system und Teilsysteme in sogenannte Zellen auf Jede dieser Zellen stellt die DCE Dienste die f r ein VS ben tigt werden zur Verf gung Diese Dezentralisation minimiert bottlenecks Engp sse ROS931 Die Last wird auf mehrere Hosts verteilt anstatt sie auf einen einzelnen zentralen Server zu konzentrieren Dadurch wird auch eine st rkere Flexibilit t des Systems erreicht Eine Zelle ist das Grundelement f r Operation und Administration in DCE Eine Zelle ist also eine Gruppe von Anwendern Systemen und Ressourcen die normalerweise einen gemeinsamen Zweck haben und gleiche DCE Dienste verwenden Die Grenzen einer Zelle in Bezug auf Anzahl von Anwendern und Systemen werden durch vier Punkte beeinflu t
271. vices Request for Proposal RFP bestehen MOV95 Insgesamt sind 16 Services im CORBA 2 0 Standard spezifiziert ORF97 RFP1 Services e Object Event Notification Service Dynamische De Registrierung der Schnittstellen aufgrund von Ereignissen e Object Lifecycle Service Methoden um Objekte auf dem Bus zu erstellen Kopieren verschieben und zu l schen e Object Naming Service Erlaubt Objekte anhand ihres Namens zu finden Objekte k nnen beim Naming Service Namensdienst angemeldet werden so da sie anhand ihres Namens lokalisiert werden k nnen Der Naming Service ermittelt die zu den Objekten geh rigen Objektreferenzen i Die CORBA Spezifikation mit Language Mappings ist unter http www omg org corba cichpter htm zu recherchieren 36 Verarbeitung mit verteilten Objekten e Object Persistence Service Eine Schnittstelle um Objekte persistent auf verschiedenen Speicherservern zu sichern RFP2 Services e Object Concurrency Control Service Sperrungsmanager zur Verwaltung von konkurrierenden Zugriffen auf Objekte e Object Externalization Service Datenstr me aus Objekten ein und auslesen e Object Relationships Service Dynamische Verbindung zwischen Komponenten ohne da diese die Spezifikation des Partnerobjekts kennen e Object Transaction Service Zweiphasen Commit Transaktionskontrolle RFP3 Services e Object Security Service Autorisations und Uberwachungsfunktionen werden auf Objektebene z
272. wall die per Definition die Abgrenzung eines Intranet leistet An ihr werden Eindringlinge abgehalten die eine potentielle Gefahr f r das Intranet bieten Eine Firewall ist eine Menge von Komponenten zwischen zwei Netzwerken die insgesamt die folgenden Eigenschaften hat jeder Datenverkehr von einem Netz in das andere verl uft durch die Firewall nur autorisierter Datenverkehr durch Sicherungsregeln definiert kann die Firewall passieren eine Firewall selbst kann nicht penetriert werden CHES94 Diese Menge von Komponenten setzt sich wie folgt zusammen Filter Filter Inbound Outbound Abb 10 Schematischer Aufbau einer Firewall CHES94 Die Komponenten einer Firewall sind in der Regel Filter Screens welche die bertragung bestimmter Klassen von Datenverkehr unterbinden und Gateways welche die Auswirkungen der Filter kompensieren Die praktische Realisierung von Firewalls erfolgt meist durch den Einsatz 27 Internet und Intranet von kommerziellen Routern deren Routingtabellen als Filter programmiert werden Diese Systeme werden zumeist auf dedizierten Computern betrieben Der Einsatz von Firewalls birgt folgende Vorteile 1 Hosts im allgemeinen k nnen sich nicht zuletzt aufgrund ihrer Komplexit t nicht ausreichend sch tzen Eine Firewall als dedizierter Host ist weniger anf llig f r Angriffe da sie kaum potentiell gef hrliche Dienste wie z B RLOGIN TELNET und FTP anbieten mu
273. werden 2 Die Klientenanwendung soll dem Anwender sowohl im LAN als auch im WAN eine ergonomische und von der Datenstruktur unabh ngige Oberfl che zur Informationsver arbeitung zur Verf gung stellen Dabei soll ein Benchmark Vergleich die M glichkeit der Objektimplementierung auf dem WWW unter JAVA und der Entwicklung einer verteilten ActiveX Komponente unter MS Visual Basic gegen berstellen Besonders die Einwirkungen von unterschiedlichen bertragungszeiten sind zu untersuchen und mit denen in klassischen LANs zu vergleichen Folgende Aspekte die zumeist aus der Verteilung der Objekte und der variablen Bandbreite der Netzwerke resultieren treten in diesem Zusammenhang bei der Entwicklung auf und m ssen als Vorbereitung betrachtet werden 1 Sicherheitsaspekte eines Intranet und des Internets Hierbei soll besonders die Authentifizierung der Anwender als auch die Sicherheit der ber tragung selbst diskutiert und eine geeignete L sung mit R cksicht auf geringe Bandbreiten erarbeitet werden Die Anforderungen an die Sicherheit in einem Intranet und dem Internet werden gegen bergestellt und die beiden Topologien gegeneinander abgegrenzt 2 Besonders das Transaktionsmanagement bei variablen bertragungszeiten mu realisiert werden Hier soll die M glichkeit eines dynamischen Ansatzes verfolgt und durchgef hrt werden 3 Der Erstellung einer ergonomischen aber dennoch flexiblen Oberfl che kommt eine beson dere Bedeutung
274. wicklungen Anhang A Interface TUnknown cssscsoossssssonsssensonsnsensnssssnnonsssnnsonsnsnnsnsnnsansnssnsnsensnsene Anhang B Secure Socket Layer und Private Communication Technology Anhang C MEBreihen vsccssccscscsscivevsessisovsaassvesesossonsessesensscessenssoassunsscassnessocdenassocsaeseses Anhang D Funktionsreferenz fiir DCE und MS RPC API Funktionen Anhang E Unterschiede in den IDL von OSF DCE und MS DCE zursssossssossssosnenes Anhang F Inhalt der Disketten im Anhang eesssesesssesessoessssoeossoeesssoessssoesssoessssoesesss Literatur verZei Chis wisisicccsscasesctevsssosscavserssecssoocsonvseecssossoasveusescssccseestansiessscostessoeessooeseass Vi ACL ADO API ASCII BDC BIND CATID CCITT CDS CGI CLI CLSID COM CORBA COSS DAO DARPA DBMS DCE DCOM DES DII DISPID DLL DNS DSI GDS DFS DTS EPAC GTZ GUI GUID HTML HTTP HTTPS IANA IDL IID IP IPC IPID ISAM ISAPI ISO JDBC JDK KDC LAN Verteilte Objekte im Intranet und Internet Abkurzungsverzeichnis Access Control List ek EEN 25 ActiveX Data ODJects tee eee eaten Hs es eli ea 70 Application Programming Interface 13 American Standards Committee for Information Interchange A 6 Backup Domain Controller A 46 Berkeley Internet Name Domain u402222440rsnnnneessnnneneennnnansennnnennennnnanen 41 Category Identifier ee ann hen en eure at ea a en ee es 87 International Telegraph and Telep
275. wird erh lt der Anwender einen Nachweis ber die Identit t des Autors und eine URL die auf weitere Informationen verweist Durch Authenticode k nnen Endanwender also den Autoren R ckmeldungen geben und bei Bedarf zur Rechenschaft ziehen Aufregung in der ffentlichkeit verursachte am 17 Juni 1996 Fred McLain mit seiner Exploder Komponente http www halcyon com mclain ActiveX Wenn diese ActiveX Komponente ber das Internet auf einem Personalcomputer mit Power Conservation BIOS geladen wird beendet es Win95 und schaltet den Personalcomputer ab Dieses Verhalten wurde als Beweis f r die Unzul nglichkeit der COM Sicherungsmechanismen und von Authenticode bewertet Diese Schlu folgerung ist aber nicht korrekt Am 23 August hat McLain seine Komponente mit seiner individuellen Software Publisher Digital ID von dem Trust Provider VeriSign signiert und anschlie end ver ffentlicht MS964 Dadurch hat er sich als Herausgeber identifiziert und ist f r die Resultate der Ausf hrung seiner Komponente verantwortlich 89 Beispielentwicklung und implementierung 4 3 3 Visual Basic als Softwarebasis f r ActiveX Im Unterschied zu JAVA als objektorientierte Programmiersprache ist COM ein Objektmodell In der Diskussion tiber verteilte Objekte ist ein Vergleich zwischen dem durch JAVA implementierten Modell und COM nicht aber zwischen JAVA und der Programmiersprache die das COM implementiert zu ziehen Trotzdem wird im
276. wohl Geschwindigkeit als auch Gr e Sicherheit Plattformunabh ngigkeit Schutz von intellektu ellem Eigentum und die grundlegende F higkeit mit anderen Internetanwendungen zu inter agieren Gerade die Frage nach dem Vertrauen im Internet wird heute viel diskutiert Diese 109 Auswertung und Ausblick auf weitere Entwicklungen Punkte sind offensichtlich interdependent und unterstiitzen unterschiedliche Zielanspriiche was die Bestimmung einer optimalen Kombination ohne Ber cksichtigung des pers nlichen Pr ferenz musters unm glich macht Wichtig in der Beurteilung der zuktinftigen Entwicklung im Bereich der verteilten Objekte auf Basis des Internets ist die Entwicklung der intelligenten Firewalls Solange das ActiveX Modell lediglich auf Vertrauensbasis operiert K nnen solche Komponenten nicht ohne Kontrolle in sensitiven Bereichen eines Unternehmens eingesetzt werden vgl Kapitel 2 4 2 5 Selbst wenn der Autor ein Mitarbeiter des Unternehmens selbst ist ist ein unkontrollierter Einsatz einer ActiveX Komponente nicht zu verantworten Der kontr re Sicherheitsansatz von JAVA hat zwar nicht das Problem der immanenten Unsicherheit Applets k nnen aber aufgrund der auferlegten Sicherheitsrestriktionen zur Zeit praktisch nicht effektiv eingesetzt werden Hier k nnen sichere und erprobte intelligente Firewalls eine sichere Integration von solchen verteilten Objekten in eine Intranettopologie leisten Ohne einen solchen filternden Mech
277. zdem scheint die Implementierung von verteilten Objekten auf der Basis eines echten offenen Standards die richtige Wahl f r zukunftssichere Entwicklungen ber dem Internet als Kommunikationsplattform f r Verteilte Objekte zu sein 2 ODBCDirect wird mit MS Office97 MS Visual Basic 5 0 und MS Visual C 4 2 ab Q3 97 vertrieben DOB97 111 Auswertung und Ausblick auf weitere Entwicklungen 112 Auswertung und Ausblick auf weitere Entwicklungen Anhang A Interface Unknown Uber das Unknown Interface k nnen Klienten durch die QueryInterface Methode Zeiger auf andere Interfaces eines Objektes erhalten und die Lebenszeit des Objektes durch die Interfaces TUnknown AddRef und IUnkonwn Release steuern Alle anderen COM Interfaces sind entweder direkt oder indirekt von Unknown abgeleitet Damit sind die drei Methoden von IUnknown die ersten Eintr ge der V Table jedes Interfaces MS941 IUnknown mu als Teil jedes Interface implementiert werden Wenn die verwendete Programmiersprache z B C Mehrfachvererbung unterst tzt k nnen verschiedene Interfaces eine Implementierung von IUnknown teilen Falls verschachtelte Klassen verwendet werden mu IUnknown f r jedes Interface separat implementiert werden Die Methoden von IUnknown werden zum Wechseln zwischen den einzelnen Interfaces innerhalb eines Komponentenobjekts und zum Hinzuf gen von Referenzen und zum Freigeben eines Komponentenobjektes verwendet Die
278. zieren Neben diesen Schw chen des Modells selbst ist die Implementierung an verschiedenen Stellen noch zu verbessern Die vorgestellte Implementierung der RemoteRecordSet Klasse bietet nur rudiment re Methoden f r die Administration und Modifikation von Daten Es werden nur Zeichenketten unterst tzt Eine Unterst tzung von Transaktionen ist zwar hart durch Exceptions kodiert gespeicherte Prozeduren und Cursors werden allerdings nicht behandelt 86 Beispielentwicklung und implementierung Insgesamt mu diese Klasse noch erheblich erweitert werden um produktiv eingesetzt werden zu k nnen Weiter mu untersucht werden inwieweit die Interproze kommunikation die durch die Trigger Helper DLL aufgebaut wird einen Flaschenhals in dem Modell bildet ber sie werden alle Trigger Benachrichtigungen an alle Klienten geleitet In diesem Zusammenhang ist auch die Leistungsf higkeit des JAV A Servers auf der zweiten Schicht im Lastfall zu analysieren 4 3 Visual Basic und ActiveX 4 3 1 ActiveX im Intranet und Internet Unabh ngig von dem Begriff von ActiveX als Technologie der nach Microsoft die Interoperabilit t zwischen Komponenten unter Verwendung von COM erm glicht ist der Begriff von ActiveX Komponenten Controls zu definieren Eine ActiveX Komponente ist eine Software die eine allgemeine Aufgabe auf standardisierte Art erf llt CHAP96 Genauer definiert eine ActiveX Komponente eine standardisierten Menge von I
279. zifische Methoden zur Anwendungspro grammierung auf Basis von Sockets an Es gibt also zwei Definitionen f r den Begriff Socket die wie folgt differenziert werden sollen Ein Socket ist eine Kombination aus IP Adresse und Port mit entsprechendem API WinSock ist ein Industriestandard f r die Socket Programmierung unter MS Windows Im weiteren soll unter dem Begriff Socket sowohl die Definition selbst als auch eine WinSock Verbindung auf Basis von Sockets verstanden werden Eine Trennung ist so nicht notwendig Aus der Sicht eines Programmierers vereinfachen Sockets die Netzwerkkommunikation stark Dabei gibt es drei Arten von Sockets 1 Datagram Sockets auf Basis des verbindungslosen UDP 2 Stream Sockets auf Basis des verbindungsorientierten TCP 3 Raw Sockets auf einer sehr niedrigen Schicht eignen sich vor allem zum Testen Verbindungsorientierte Protokolle erlauben eine zuverl ssige bidirektionale Kommunikations verbindung innerhalb einer Sitzung Jedes ausgetauschte Informationspaket erh lt eine eindeutige Sequenznummer und wird individuell quittiert Diese Sicherheit in der Kommunikation erfordert allerdings einen erheblichen Overhead f r den Aufbau und f r die Verwaltung der Sitzung Verbindungslose Protokolle wie Datagram Sockets bieten eine einfache aber unsichere Form der Kommunikation M chtigere Protokolle wie NetBIOS stellen erweiterte Broadcast F higkeiten Multicast und Broadcast zur Informationsverbre
280. zugreifen zu k nnen Datenzugriffsobjekte DAO stellen die beste Wahl f r die Arbeit mit ISAM Daten dar da sie mit der gleichen Semantik wie ISAM Daten erstellt wurden Suchmethoden ffnen von Tabellen anstatt ausf hren von Abfragen Die Verwendung von RDO bei der Kommunikation mit ISAM Daten bringt dagegen keine Vorteile da der ODBC Treiber das Jet Modul dennoch l dt Die Unterschiede die bei verteilten Anwendungen f r das RDO sprechen sind in der folgenden Tabelle zusammengefa t MS971 Leistungsmerkmal Verbindungsaufbau 5 88 3 68 erste Verbindung Schnellverbindung 3 6s Schnellverbindung 2 5s Asynchrone offene Nein Ja Verbindungen Asynchrone Abfragen Nein Ja Stored Procedure Result Codes Nein Ja Benachrichtigung per Ereignis Nein Ja Unterst tzung von Cursorn Nein Ja unter MS SQL 6 0 Wiederholung nach Nein Ja Zeit berschreitung Dynamischer Statischer Nein Nein Ja Nein Zwischenspeicher Tab 19 Unterschiede zwischen RDO und DAO Gerade diese Leistungsmerkmale sind bei dem Zugriff auf entfernte Datenbanken unverzichtbar Die Vorteile die das RDO dem klassischen DAO voraus hat wiegen den m glichen Aufwand f r die Neuimplementierung von Anwendungen auf MSDBLIB 4 3 5 Implementierung Die Enterprise Version von Visual Basic 5 0 erm glicht die Verwendung des COM auf Komponentenebene Somit wird die zeitaufwendige Implementierung auf API Ebene vermieden ohne dabei Funktionalit t
281. zurufen ORB Implemen tierungen wie DSOM von IBM oder ORBIX von IONA stellen propriet re Erweiterungen zum Objektmodell zur Sprachenbindung und zum Inter ORB Protokoll zur Verf gung Um die volle Leistungsf higkeit einer Plattform aussch pfen zu k nnen mu man die ORB bergreifende Interoperabilit t opfern Ein Ausweg bildet das durch CORBA definiert IIOP das auf die Verwendung im Internet zielt Es bildet quasi eine Schnittmenge der Inter ORB Protokolle MS965 Die Objektinteraktion beruht bei beiden Systemen auf einem objektorientiertem RPC Mechanis mus In COM wird der Klienten Sockel als proxy und der Server Sockel als stub bezeichnet Bei CORBA wird der Klienten Sockel als stub und der Server Sockel als Skeleton bezeichnet Hier bezieht sich der Terminus proxy auf ein instantiiertes Skeleton Eine Darstellung der Unterschiede soll anhand von Middleware Schichten in der die RPC Struktur beider Systeme unterteilt werden kann erfolgen Methode gt Klient rie S 8 Operationsschicht SURA Klienten Sockel Sockelschicht Server Sockel bertragungs bertragungsschicht Ubertragungs protokoll protokoll Netzwerk Abb 27 Basismodell eines RPC Systems 3 2 4 2 Operationsschicht Die Operationsschicht ist die Programmarchitektur die als einzige fiir den Entwickler sichtbar ist Der Hauptunterschied zwischen COM und CORBA liegt hier in der Form wie ein Klient eine Schnittstelle spezifiziert also d

Download Pdf Manuals

image

Related Search

Related Contents

GE GME04GLHLB Use and Care Manual  TMW-160F  Bedienungsanleitung Hyundai Mobile MBD125  OBD II - µFIX  BabyGym 1  Complément à la notice d`utilisation  Dude Manual  Dump load DL-35K / DL-57K  3-Heights™ PDF Optimization Shell, User Manual  U-CONTROL UMX250  

Copyright © All rights reserved.
Failed to retrieve file