Die Integration von Geschäftspartnern in die eigenen Geschäftprozesse und somit die Unternehmensübergreifende Zusammenarbeit ermöglicht eine effizientere Gestaltung des Unternehmens und Kostensenkung durch die Optimierung der eigenen Geschäftsprozesse. Dies ist notwendig um im globalen Konkurrenzdruck durch das EBusiness im B2B Bereich und der Erschließung neuer Kunden und Geschäftsfelder zu bestehen. Problematisch sind hierbei vielfältige, disparate (evtl. besser: heterogene/ ungleiche) Systeme und die Verteilung der Geschäftsdaten über mehrere Systeme hinweg. Anwendungen sind meist auf ihre bestimmte Abteilung begrenzt und es werden auch längst nicht alle Endgeräte unterstützt.
Für einen reibungslosen Ablauf müssen Daten über diese Grenzen hinaus ausgetauscht werden. Für dieses Problem bestehen heute bereits Lösungen. Der Nachteil dieser ist aber deren Komplexität und Spezialisierung Wichtig ist eine einfache und unkomplizierte Technologie, die die Zusammenarbeit der Systeme ermöglicht. Zum einen wird hierfür eine geeignete Infrastruktur benötigt auf der das Framework betrieben werden kann und zum anderen ein einheitliches Programmiermodell, was die Programmierung verteilter Anwendungen erleichtert. Es sollten im Rahmen der gegenwärtigen Entwicklung des M-Commerce auch mobile Endgeräte unterstützt werden. Im Bemühen um die Anforderungen der neuen Generation des Internet sind zwei große Frameworks entstanden: Microsoft .NET und SunONE.
Ziel dieser Arbeit ist es der Vergleich der beiden Frameworks Microsoft .NET und SunONE unter Betrachtung ihrer Vor- und Nachteile. Dabei wird insbesondere die Thematik der Webservices im Zusammenhang mit den Frameworks näher betrachtet.
Inhaltsverzeichnis
1 Einleitung
1.1 Problemstellung
1.2 Zielsetzung
1.3 Vorgehensweise
2 Webservices
2.1 Was sind Webservices ?
2.2 Architektur
2.2.1 SOAP
2.2.2 WSDL
2.2.3 UDDI
2.2.4 Zugriff auf das UDDI
3 Einführung zu Microsoft .NET
3.1 Überblick
3.2 .NET Framework
3.2.1 Windows und COM+ Dienste
3.2.2 Common Language Runtime (CLR)
3.2.3 Base Class Library (BCL)
3.2.4 Extended Class Library (ECL)
3.2.5 Common Language Specification (CLS)
3.2.6 Programmiersprachen
3.2.7 Visual Studio .NET
3.3 .NET Enterprise Servers
3.4 .NET Building Block Services
3.5 Visual Studio .NET
3.6 Architektur
3.7 Webservices und .NET
4 Einführung zu SunONE
4.1 Überblick
4.2 J2EE
4.3 J2EE Infrastruktur
4.4 J2EE Referenzimplementation
4.5 Webservices und J2EE
5 Vergleich
5.1 Kriterien
5.2 Systemdesign
5.2.1 Unterstützte Hardware
5.2.2 Sicherheit
5.2.3 Datenzugriff
5.2.4 Performance
5.2.5 Abhängigkeit
5.2.6 Kosten
5.2.7 Wartung
5.3 Object Design
5.3.1 Klassenbibliothek
5.3.2 Komponentenarchitektur
5.3.3 GUI Unterstützung
5.4 Implementation
5.4.1 Entwicklungswerkzeuge
5.4.2 Laufzeitumgebung
5.4.3 Programmiersprachen
5.4.4 Gemeinsame Bibliotheken
5.4.5 Dokumentation
5.5 Ökonomische Kriterien
5.5.1 Marktstellung
5.5.2 Reife
5.5.3 Verfügbarkeit
5.5.4 Hersteller
5.6 Integration
5.6.1 Legacy Integration
5.6.2 CORBA Unterstützung
5.7 Webservice
5.7.1 Webservice Werkzeuge
5.7.2 Standardunterstützung
5.7.3 Webservice Entwicklung
5.7.4 Webservice Deployment
5.7.5 Gemeinsamer Kontext
6 Zusammenfassung
7 Ausblick
8 Literaturverzeichnis
9 Anhang A
Abbildungsverzeichnis
Abbildung 1 - Webservice Architektur
Abbildung 2 – UDDI Struktur
Abbildung 3 - Webservice Interaktion
Abbildung 4 - .NET Framework
Abbildung 5 - Überblick über die .NET Entwicklerprodukte
Abbildung 6 – Arbeitsweise der .NET-Compiler
Abbildung 7 - SunONE Überblick
Abbildung 8 - J2EE Architektur
Abbildung 9 - Vergleichskriterien
Abbildung 10 – C#, Java und C++ Quellcodebeispiel
Tabellenverzeichnis
Tabelle 1 - UDDI Pages
Tabelle 2 - J2EE APIs
Tabelle 3 -.NET und SunONE
Tabelle 4 - C#, Java und C++ Vergleich
Tabelle 5 - Gegenüberstellung .NET und SunONE
1 Einleitung
1.1 Problemstellung
Die Integration von Geschäftspartnern in die eigenen Geschäftprozesse und somit die Unternehmensübergreifende Zusammenarbeit ermöglicht eine effizientere Gestaltung des Unternehmens und Kostensenkung durch die Optimierung der eigenen Geschäftsprozesse. Dies ist notwendig um im globalen Konkurrenzdruck durch das E- Business im B2B Bereich und der Erschließung neuer Kunden und Geschäftsfelder zu bestehen. Problematisch sind hierbei vielfältige, disparate (evtl. besser: heterogene/ ungleiche) Systeme und die Verteilung der Geschäftsdaten über mehrere Systeme hinweg. Anwendungen sind meist auf ihre bestimmte Abteilung begrenzt und es werden auch längst nicht alle Endgeräte unterstützt.
Für einen reibungslosen Ablauf müssen Daten über diese Grenzen hinaus ausgetauscht werden. Für dieses Problem bestehen heute bereits Lösungen. Der Nachteil dieser ist aber deren Komplexität und Spezialisierung Wichtig ist eine einfache und unkomplizierte Technologie, die die Zusammenarbeit der Systeme ermöglicht. Zum einen wird hierfür eine geeignete Infrastruktur benötigt auf der das Framework betrieben werden kann und zum anderen ein einheitliches Programmiermodell, was die Programmierung verteilter Anwendungen erleichtert. Es sollten im Rahmen der gegenwärtigen Entwicklung des M-Commerce auch mobile Endgeräte unterstützt werden. Im Bemühen um die Anforderungen der neuen Generation des Internet sind zwei große Frameworks entstanden: Microsoft .NET und SunONE.
1.2 Zielsetzung
Ziel dieser Arbeit ist es der Vergleich der beiden Frameworks Microsoft .NET und SunONE unter Betrachtung ihrer Vor- und Nachteile. Dabei wird insbesondere die Thematik der Webservices im Zusammenhang mit den Frameworks näher betrachtet.
1.3 Vorgehensweise
Im ersten Teil der Arbeit wird ein kurzer Überblick über Ziel und Architektur der Webservices gegeben. Im zweiten Teil werden die Frameworks Microsoft .NET und SunONE kurz einführend betrachtet.
Im dritten Teil der Arbeit werden beide Frameworks anhand eines Kriterienkatalogs verglichen.
Im vierten Teil wird eine Zusammenfassung beider Architekturen mit Vorteil- und Nachteilen dargestellt und abschließend versucht einen Ausblick auf die zukünftige Entwicklung in diesem Umfeld zu geben.
2 Webservices
2.1 Was sind Webservices ?
Grob können Webservices als maschinenlesbare Webseiten beschrieben werden. Ein Programm kann an diese Webseite herantreten und diejenigen Daten bekommen die es weiterverarbeiten möchte.[1]
Diese Idee ist nicht neu. Bisher serviceorientierte Implementierungen wie RPC, CORBA, DCE, COM und RMI sind aber an ein bestimmtes Protokoll oder eine Programmiersprache gebunden. So kann beispielsweise COM nur mit COM interagieren. Zudem sind im Internet die notwendigen Ports für die Kommunikation oft durch Firewalls gesperrt. Eine echte und breite Eignung für das Web ergibt sich aufgrund des hohen COM/RMI Kommunikationsoverheads gegenüber SOAP und der Firewallproblematik nicht. Webservices sind webbasierte, plattformunabhängige modulare Applikationen, die in einem Verzeichnis veröffentlicht, lokalisiert und über ein Netzwerk, im allgemeinen das Internet, aufgerufen werden können. Langfristig bilden Webservices eine Integrationsplattform. Die Idee hierbei ist, die verschiedenen Webservices als Komponenten zu sehen und sie in neuen Applikationen zu verwenden. Die Applikationen können hierbei aus einer beliebigen Kombination von Webservices zusammengestellt werden.
2.2 Architektur
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1 - Webservice Architektur[2]
Die Komponenten der Webservicearchitektur können in verschiedene Schichten unterteilt werden. Diese sind in Abbildung 1 dargestellt und werden nachfolgend beschrieben. Die Basis der Webservice Architektur ist die Netzwerkschicht. Sie bildet die Grundvorrausetzung für die Erreichbarkeit eines Webservice. Das Standardprotokoll hierfür ist HTTP. Es können aber auch weitere Protokolle wie SMTP und FTP verwendet werden. SOAP ist das meist verwendete Kommunikationsprotokoll der Webservices und basiert auf HTTP, SMTP und XML. Über SOAP werden Nachrichten zwischen Webservices gesendet und empfangen. Die Beschreibung der Fähigkeiten eines Webservice erfolgt mit WSDL. WSDL ist der de facto Standard für die XML basierte Servicebeschreibung. Für die Publikation der Webservices gibt es verschiedene Mechanismen. Dazu gehören Direct Publish, DISCO (Discovery of Webservices), ADS (Active Directory Service) und Verzeichnisdienste wie UDDI (Universal Description, Discovery and Integration).
2.2.1 SOAP
Ein RPC (Remote Procedure Call) ist der Aufruf einer Funktion über Programm-
,Prozess- oder Rechnergrenzen hinweg. SOAP (Simple Object Access Protocol) ist im Grunde die Umsetzung dieses RPC-Mechanismus im Internet. Hierbei werden die notwendigen Informationen für den Aufruf einer Funktion (Methode, Input-, Outputparameter,...) als XML Struktur von Sender A nach Empfänger B transportiert. Dort wird die richtige Methode gefunden und die entsprechende Implementierung mit den Inputparametern belegt. Nach der Verarbeitung werden die Ergebnisse zum Aufrufenden zurückgeschickt. Als Transportprotokoll wird HTTP verwendet.
2.2.2 WSDL
WSDL (Web Service Description Language) dient der Beschreibung von SOAP basierten Webservices. Mehrere Abschnitte in einer WSDL Datei beschreiben unterschiedliche Ebenen möglicher Webservice-Aufrufe. Der Aufbau ist sehr modular, beginnend mit der Definition wie Parameter und ganze Signaturen in XML zu codieren sind und endet mit der Zuordnung von XML Strukturen zu Kanälen, über die SOAP Aufrufe an den Webservice abgesetzt werden dürfen (SOAP, HTTP POST, SMTP)[3].
2.2.3 UDDI
Universal Description, Discovery and Integration (UDDI) ist eine Spezifikation für verteilte webbasierte Verzeichnisse von Webservices. Webservices werden dort von ihren Betreibern registriert und von den Nutzern gesucht. Die Webservicebeschreibung ist in einem XML Format implementiert (WSDL) und wird in der Registrierung
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2 – UDDI Struktur
gespeichert. Das Verzeichnis besteht aus drei Bereichen wie Abbildung 2 dargestellt. Einen weiteren Überblick gibt Tabelle 1. Die jeweiligen Bereiche stehen für Beschreibungen der Dienste auf verschiedenen Ebenen. Allgemeine Informationen über den Anbieter (White Pages), Einordnung der Dienste in einen größeren Zusammenhang mithilfe von Taxonomien (Yellow Pages) und technische Informationen (Green Pages).
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 1 - UDDI Pages
2.2.4 Zugriff auf das UDDI
Ein Nutzer interagiert via SOAP mit einem Verzeichnisdienst für Webservices (UDDI). Ein Anbieter eines Webservices veröffentlicht die Informationen über den Webservice in diesem Verzeichnis. Das Verzeichnis enthält alle Informationen über das Webserviceangebot der eingetragenen Webserviceanbieter.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 3 - Webservice Interaktion
Der einfachste Fall der Webservice Interaktion wird in Abbildung 3 beschrieben. Ein potentieller Nutzer sendet eine Anfrage zum Verzeichnisdienst (UDDI). Der Verzeichnisdienst liefert eine kategorisierte Sammlung über die gemäss der Anfrage verfügbaren Webservices. Nachdem der passende Webservice gefunden wurde (Find), kann der Nutzer Details wie Nachrichtenformat und benutzte Protokolle des betreffenden Service über den Verzeichnisdienst abfragen. Basierend auf der Servicebeschreibung (WSDL) wird eine Protokollbindung generiert und die Webservices können kommunizieren[4].
3 Einführung zu Microsoft .NET
3.1 Überblick
Microsoft .NET ist eine völlig neue Entwicklung und stellt den Nachfolger von Windows DNA dar. Microsoft verwendet sehr starke Marketingaktivitäten auf .NET womit der Begriff teilweise nebulös erscheint. Im Kern ist .NET eine Entwicklungsplattform für Internet- und verteilte Applikationen sowie Webservices und soll die Entwicklung und Verteilung von Software vereinfachen. Die Interoperabilität zwischen Systemen und Applikationen soll verbessert und der interaktive und universelle Zugriff auf Applikationen von allen Geräten möglich sein. .NET besteht aus den Hauptbestandteilen .NET Framework, .NET Enterprise Server, .NET Building Block Services (HailStorm, myServices) und Visual Studio.NET die nachfolgend kurz beschrieben werden.
3.2 .NET Framework
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 4 - .NET Framework[5]
Das .NET Framework stellt die Infrastruktur, Funktionalität und Dienste zur Entwicklung von Desktop-Anwendungen und Weblösungen bereit. Die Architektur kann in verschiedene Schichten aufgeteilt werden, wobei die oberen Schichten auf den unteren aufbauen. Nachfolgend werden die einzelnen Bestandteile des .NET Frameworks vorgestellt.
3.2.1 Windows und COM+ Dienste
Diese Komponenten sind nicht Bestandteil des .NET Framework, aber sie sind notwendig für die Arbeit mit dem .NET Framework SDK.
3.2.2 Common Language Runtime (CLR)
Die CLR ist eine umfangreiche Laufzeitumgebung und behandelt wichtige Laufzeitaufgaben für den Entwickler. Die Hauptaufgaben der CLR sind die Übersetzung von Zwischensprachencode (IL) in Maschinencode, die Speicherverwaltung, Verwaltung von Prozessen und Threads, die Durchsetzung der Sicherheitsmechanismen und das Laden von Komponenten. Die CLR ist um die Common Language Specification (CLS) aufbaut, welche eine allgemeine Menge von Datentypen für alle .NET konformen Sprachen definiert.
3.2.3 Base Class Library (BCL)
Die BCL stellt umfangreiche funktionale Basisklassen bereit und bietet eine objektorientierte Sicht über nahezu alle Betriebssystemleistungen. Der Zugriff auf das Dateisystem, die Anzeige von Fenstern, Druckfunktionen, Reflection, Serialisierung, Remoting, Grafikfunktionen, Datenzugriff usw. sind in hierarchischen Namensräumen organisiert. Die Klassen können in Benutzerklassen erweitert oder aber direkt benutzt werden.
3.2.4 Extended Class Library (ECL)
Die ECL umfasst abstrakte Klassen, die auf einen Aspekt der Entwicklung fokussiert sind. So wird ASP.NET für die Entwicklung Webservices, ADO.NET für den Datenzugriff, XML um Dokumente zu parsen und zu manipulieren und Windows Forms für die Entwicklung von Windows-basierten Anwendungen verwendet.
3.2.5 Common Language Specification (CLS)
Die CLS definiert Anforderungen an .NET konforme Sprachen.
3.2.6 Programmiersprachen
VB.NET, C++ und C# sind nur einige von den ca. 25 verfügbaren (zur Zeit 25?? Oder geplant?) Sprachen. .NET bietet eine Plattform für viele Programmiersprachen. Dabei werden auch nicht-Microsoft Sprachen wie COBOL und Perl unterstützt.[6] Auch Borland hat .NET Unterstützung für Delphi angekündigt.[7]
3.2.7 Visual Studio .NET
Visual Studio .NET ist die integrierte Entwicklungsumgebung (IDE) für das Programmieren mit dem .NET Framework und dient der Erhöhung der Entwicklerproduktivität.
3.3 .NET Enterprise Servers
Microsoft richtet im Rahmen der .NET Initiative viele seiner Serverprodukte auf .NET aus. Sie dienen dem Geschäftsprozessmanagement und der Integration verschiedenster IT-Infrastrukturen.
- Windows 2000 Server – Betriebssystemplattform für die .NET Server und Applikationen insofern das .NET Framework installiert ist. Windows 2000 Advanced Server ist die von Microsoft empfohlene Plattform für die Entwicklung von Unternehmensanwendungen. Aber auch Windows 2000 Professional und Windows XP sind nutzbar.
- Application Center 2000 – bietet Management-Unterstützung für Applikationen um ihre Skalierbarkeit und Verfügbarkeit zu erhöhen
- SQL Server 2000 – relationales Datenbanksystem (RDBMS) mit XML Unterstützung zur Datenspeicherung, Analyse und Indizierung.
- Exchange Server 2000 – Unterstützung für HTTP und XML bei der Unternehmenskommunikation.
- Host Integration Server 2000 – Integration mit Legacy-Hostsystemen
- Internet Security and Acceleration Server (ISA) – Internetverbindungs- und Firewallmanagement
- Commerce Server 2000 – Entwicklung von e-Commerce Websites
- Biztalk Server 2000 – Plattform für die Integration unterschiedlicher Plattformen, Applikationen und Diensten. Basiert auf XML Standards wie X12 und EDIFACT und unterstützt die Protokolle HTTP, SMTP, FTP und SOAP.
- Mobile Information Server 2001
Plattform für den mobilen Zugriff auf bereits verfügbare Applikationen in der .NET Umgebung
- Sharepoint Portal Server 2001
Aufbau von Portallösungen. Suchmechanismen und Dokumentenmanagement- Funktionen werden unterstützt.
3.4 .NET Building Block Services
Microsoft und dessen Partner erstellen einen Kern von Building Block Services die routinemäßige Aufgaben ausführen und die eine Basis darstellen, auf den Entwickler und IT-Geschäfte aufbauen können. Die Building Block Services setzen direkt auf der Plattform auf. Es werden Funktionalitäten für die Authentifikation, Notifikation, Messaging, Verzeichnis, Suche und Kalender bereitgestellt. Die Dienste nutzen XML und stehen sowohl im Intranet als auch Offline oder über das Internet zur Verfügung. Bei den ersten dieser Dienste handelt es sich um .NET myServices (früher HailStorm), die auf Building-blöcken wie Passport und .NET Alerts aufbauen. Die Daten sollen dabei auf Microsoft eigenen Servern gespeichert werden. Dies hat heftigen Protest der Datenschützer ausgelöst, woraufhin Microsoft sich bereit erklärt hat die Datenspeicherung an Partner abzugeben. Microsoft hat nach eigener Aussage die Entwicklung dieser Dienst aber zunächst gestoppt.
3.5 Visual Studio .NET
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 5 - Überblick über die .NET Entwicklerprodukte[8]
Die Integrierte Entwicklungsumgebung (IDE) Visual Studio NET ist vollständig in das
.NET Framework integriert. Es bietet eine gemischte Sprachenumgebung und Cross- Language Debugging sowie RAD (Rapid Application Prototyping) Features für die Anwendungsentwicklung. Es gibt visuelle Designer für XML, HTML und Daten und erweitertes Debugging zwischen Projekten, inklusive Stored Procedures. Abbildung 5 gibt einen Überblick über die verschiedenen Versionen von Visual Studio .NET.
[...]
[1] Siering /Microsoft Internet/
[2] Technet /.NET für IT Experten/ S.4
[3] Vgl. Knuth /Webservices/ S.95
[4] Vgl. Hoffman, Gabriel, Gosnell, Hasan, Holm, Musters, Narkiewickz, Schenken,Thangarathinam, Wylie, Ortiz /.NET Framework/ S.10 ff.
[5] Hoffman, Gabriel, Gosnell, Hasan, Holm, Musters, Narkiewickz, Schenken,Thangarathinam, Wylie, Ortiz /.NET Framework/ S.15
[6] Microsoft /.NET Resources/
[7] Heise /Borland .NET/
[8] Lelic, Schwichtenberg /Visual Studio .NET/ S.80
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.