Bei GRIN registrieren oder einloggen

Your e-mail-address or password is wrong
Jetzt registrieren
Für neue Autoren: kostenlos, einfach und schnell
Dies wird Ihr Benutzername, bitte geben Sie eine gültige E-Mail-Adresse an

Passwort vergessen

Your e-mail-address or password is wrong

Neues Passwort anfordern
Microsoft COM, COM+ und DCOM close

Bitte warten

Bitte installieren Sie den Flash Player, wenn kein E-Book erscheint.

Microsoft COM, COM+ und DCOM

Seminararbeit, 2004, 60 Seiten
Autor: Alexander Aßhauer
Fach: Informatik - Wirtschaftsinformatik

Details

Kategorie: Seminararbeit
Jahr: 2004
Seiten: 60
Note: 2,0
Literaturverzeichnis: ~ 22  Einträge
Sprache: Deutsch
Archivnummer: V44375
ISBN (E-Book): 978-3-638-41990-1

Dateigröße: 309 KB
Anmerkungen :
Enthält zusätzlich eine Präsentation mit 25 Folien



Textauszug (computergeneriert)

Microsoft COM, COM+ und DCOM

von: Alexander Aßhauer

 


Inhaltsverzeichnis

1 Ein Einblick in Microsofts Komponentenwelt  1

2 Software-Komponenten – die Grundlage  2

2.1 Was sind Software-Komponenten?  2
2.2 Welchen Vorteil bieten Software-Komponenten?  3
2.3 Voraussetzungen für Komponenten  4
2.4 Überblick der drei wichtigsten Komponentenmodelle 6

2.4.1 Microsoft – COM, DCOM & COM+  6
2.4.2 OMG – CORBA 6
2.4.3 Sun Microsystems – Enterprise Java Beans 7

3 Entwicklungsgeschichte 8

3.1 Die Anfänge – Das Clipboard  8
3.2 DDE 8
3.3 OLE  8
3.4 COM 9
3.5 DCOM 9
3.6 COM+ 10
3.7 Wie geht es weiter?  10

4 Architektur und Funktionsprinzipien 12

4.1 Aufbau von COM 12

4.1.1 Das Interface  12
4.1.2 Der Referenz-Zähler  15
4.1.3 Die GUID’s 15
4.1.4 Die Registry  16
4.1.5 Erzeugen von Komponenten 16

4.2 COM wird Distributed 17

4.2.1 MIDL und Datentypen  17
4.2.2 Wie kommt „Distributed“ ins Spiel?  18

4.3 COM+ - Noch mehr Erneuerungen 19
4.4 Beispielhafte Umsetzung einer COM-Anwendung mit MS J++  20

4.4.1 Interface definieren:  20
4.4.2 Header-Dateien generieren:  21
4.4.3 Komponente in JAVA implementieren:  21
4.4.4 Komponente registrieren 22

5 Wirtschaftliche Bedeutung und Verbreitung  24

5.1 Microsofts Strategie mit der Entwicklung von COM  24
5.2 Hat sich COM durchgesetzt?  24

6 Weiterentwicklung und Ausblick  25

A Das Interface IClassFactory 26

Literaturverzeichnis 27
 


Verzeichnis der Abkürzungen und Akronyme

COM = Component Object Model
DCOM = Distributed Component Object Model
COM+ = Component Object Model + (Nachfolger von DCOM)
DDE = Dynamic Data Exchange
OLE = Object Linking and Embedding
ORB = Object Request Broker
CORBA = Common Object Request Broker Architecture
OMG = Object Management Group
SOAP = Simple Object Access Protocol
EJB = Enterprise Java Beans
DNA = Distributed Network Architecture
DDE = Dynamic Data Exchange
DCE = Distributed Computing Enviroment
IDL = Interface Definition Language
MIDL = Microsoft Interface Definition Language
RPC = Remote Procedure Call
LRPC = Lightweight RPC
MTS = Microsoft Transaction Server
API = Application Programming Interface
DLL = Dynamic Link Library
EXE = Executable
GUID = Globally Unique Identifier
CLSID = Class Identifier
IID = Interface Identifier
OSF = Open Source Foundation
XML = Extensible Markup Language
CLR = Common Language Runtime

 

1 Ein Einblick in Microsofts Komponentenwelt

Software-Komponenten sind ein Stück Technologie, welche in der heutigen Applikationswelt integraler Bestandteil ist. Sie ermöglichen unter anderem immer kürzere Entwicklungszeiten für Software, bessere Wartbarkeit und das Verlassen von Prozessgrenzen. Das Component Object Model (COM) und seine Erweiterungen sind fester Bestandteil heutiger Microsoft (MS) Windows Versionen und stellen ein Framework zur komponentenbasierten Anwendungsentwicklung dar. Microsoft selbst stützt sich bei seinen Softwareentwicklungen auf COM ab und hat mit seiner jüngsten Entwicklung MS .NET1 die eigene Komponentenwelt auf Grundlage von COM erweitert. COM und seine Weiterentwicklungen sind aus der heutigen Applikationswelt nicht mehr wegzudenken und sollen daher im folgendem näher beleuchtet werden. In dieser Seminararbeit wird zunächst der Begriff der Software-Komponente definiert und erläutert (Abschnitt 2). Es folgt ein Überblick der zwei wichtigsten Komponentenmodelle neben MS COM (Abschnitt 2.4) und die historische Entwicklung von Microsofts Komponentenwelt (Abschnitt 3). Den Hauptteil dieser Arbeit bilden eine ausführliche Beschreibung der Architektur von COM und seinen Nachfolgern (Abschnitt 4) sowie eine beispielhafte Implementierung in J++ (Abschnitt 4.4). Als vorletzten Punkt wird nochmals kurz auf die wirtschaftliche Verbreitung und Bedeutung von COM eingegangen (Abschnitt 5). Den Schluss bildet ein Ausblick auf .NET (Abschnitt 6).

2 Software-Komponenten – die Grundlage

2.1 Was sind Software-Komponenten?

Eine Suche bei www.webopedia.com nach dem Begriff ‚component’ ergibt: „A small binary object or program that performs a specific function and is designed in such a way to easily operate with other components and applications. […]”. C. SZYPERSKI definiert Komponente wie folgt: „A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to compositions by third parties. “ Eine Komponente ist also entweder ein binäres Programm oder Objekt, das eine spezielle Funktion erfüllt und derart geschrieben wurde, dass es auf sehr einfache Art und Weise mit anderen Komponenten oder Anwendungen zusammen arbeiten kann. Eine Komponente bildet einen Block von zusammengehörigen, spezifizierten Schnittstellen und ist explizit kontextabhängig. Eine Software-Komponente kann unabhängig entwickelt und von einem Drittanbieter weiter verwendet werden (im Sinne von in eigene Anwendungen integrieren). Eine Komponente ist sozusagen eine Mini-Applikation: Ein kleines binäres Paket, dessen Code übersetzt, verlinkt und dessen Funktion nutzbar ist. Komponenten bieten Dienste für Betriebssysteme, Anwendungen, Spiele oder andere Komponenten an. Sie können zur Laufzeit einer Applikation entfernt oder ausgetauscht werden, ohne dass ein Programm neu gelinkt und compiliert werden muss. Sie vereinen meist logisch zusammengehörige Funktionen zu einem Gesamtpaket. Eine Komponente kann von mehreren Clients zeitgleich genutzt werden, sie selbst kennt aber den Zusammenhang nicht. Dadurch sind Programme keine monolithischen Konstrukte mehr, die aus einem Guss erstellt werden, sondern werden nach einem Baukastensystem zusammengesetzt.

Abb. 2.1: Aufteilung einer monolithischen Anwendung in Komponenten [Abbildung in der Downloaddatei vorhanden]

• Kapselung
• Vererbung, Aggregation, Delegation
• Polymorphismus

Kapselung heißt im Falle einer Komponente, dass sie sowohl Name, Zustand und Verhalten zusammenfasst. Daten können nur über Funktionen gelesen und geschrieben werden. Durch Vererbung wird die Wiederverwendung von bereits geschrieben Code erreicht und somit eine Hierarchie zwischen den Komponenten erzeugt. Man bezeichnet diese Beziehungen auch als Generalisierung/Spezialisierung. Aggregation bedeutet, dass eine Komponente wieder aus beliebig vielen anderen Komponenten bestehen kann und Delegation, dass eine Komponente Befehle bzw. Aufträge an andere Komponenten weitergeben kann. Polymorphismus2 wird jene Technik genannt, die es ermöglicht in einer Komponentenhierarchie mehrere Methoden mit demselben Namen, aber unterschiedlicher Implementierung zu verwenden. Dadurch können Komponenten auf dieselbe Nachricht unterschiedlich reagieren. Dies erfordert jedoch ein dynamisches Binden der Komponenten zur Laufzeit, dazu mehr in Abschnitt 2.3 (vgl. Karcher, Kap. Darüber hinaus sind Komponenten in Abgrenzung zu Klassen von anderen Applikationen unabhängig, in sich abgeschlossen und außerhalb eines speziellen Klassenkontexts wieder verwendbar. Eine Komponente enthält des Weiteren Metainformationen, welche durch eine sog. Interface Definition Language (IDL) beschrieben sind, die Auskunft über ihre Schnittstelle und ihren Identifikationscode gibt. Durch den Identifikationscode ist jede Komponente eindeutig identifizierbar. Details der Implementierung werden aber verborgen. Die IDL umfasst somit eine Nennung der angebotenen Dienste, der öffentlichen Attribute, Bekanntgabe spezieller Datentypen, Festlegung von Signaturen und die Deklaration von Fehlermeldungen und Ausnahmezuständen. (vgl. Karcher, Kap. 8, Folien 11 ff.)

2.2 Welchen Vorteil bieten Software-Komponenten?

Einige Vorteile, wie das Entfernen und Tauschen von Komponenten in einer Anwendung zur Laufzeit oder den hohen Grad der Wiederverwendung von bereits geschriebenen Komponenten wurden bereits genannt. Weitere Vorteile sind der hohe Grad an Stabilität und Flexibilität, der durch Verwendung der Komponententechnologie erreicht wird und die daraus resultierende Skalierbarkeit, wie in Abb. 2.1 dargestellt. Skalierbarkeit entsteht durch das Konstruieren von Anwendungen nach einem Baukastenprinzip. Somit baut ein Entwickler seine Applikation nach der Methode „Kombinieren und Konfigurieren“ statt (selber) Programmieren. Zu diesem Zweck sind viele Standard-Komponenten in so genannten Bibliotheken organisiert. (vgl. Rogerson, S. 3 f.)

[...]


1 Gesprochen: „dot Net“

2 Vielgestaltigkeit


Kommentare

Bisher keine Kommentare

Kommentar hinzufügen
Ihr Kommentar wird redaktionell geprüft und dann freigeschaltet

Andere Nutzer haben sich auch für folgende Titel interessiert:


Dieser Text kann über folgende URL aufgerufen und zitiert werden:

http://www.grin.com/e-book/44375/microsoft-com-com-und-dcom
please wait Bitte warten