Component Object Model (COM)

ActiveX und HTML

ActiveX ist eine von Microsoft eingeführte Technologie für ausführbaren Programmcode auf Web-Seiten und dem Anspruch nach eine Alternative oder Konkurrenz zu Java. ActiveX ist dabei ein Überbegriff für verschiedene Software-Komponenten. Alle diese Komponenten basieren auf dem so genannten Component Object Model (COM). ActiveX ist jedoch kein Internet-Standard im herkömmlichen Sinn, sondern der Versuch, spezifische Eigenschaften des Microsoft Windows Betriebssystems für Web-Seiten nutzbar zu machen. So ist es mit Hilfe von ActiveX beispielsweise möglich, Eingaben aus HTML-Formularen einer Web-Seite über die OLE-Schnittstelle von Windows direkt in eine Excel-Tabelle oder eine Access-Datenbank einzulesen (oder umgekehrt). ActiveX-Controls benutzen nämlich die OLE-Schnittstelle von Windows, um mit ihrer Umgebung zu kommunizieren. Microsoft bemüht sich zwar um Lösungen, die sich auch auf Macintosh- und Unix-Rechner übertragen lassen. Doch letztendlich ist ActiveX für Microsoft Windows optimiert, und das mit Absicht.

Ein wesentlicher Bestandteil von ActiveX sind die so genannten ActiveX-Controls. Solche Controls sind Programme oder Programm-Module, die sich in HTML-Dateien als Objekt einbinden lassen, ähnlich wie Java-Applets. Der Programmcode wird im Arbeitsspeicher des Client-Rechners (also des Anwenders, der eine Web-Seite aufruft) ausgeführt. Normalerweise wird dabei auch eine so genannte ActiveX-Layoutdatei auf dem Rechner des Anwenders installiert. Mit ActiveX-Controls lassen sich alle Arten von Anwendungen usw. realisieren.

Es gibt keine festen Vorschriften dafür, in welcher Programmiersprache ActiveX-Code geschrieben werden muss. Der Compiler muss jedoch das Component Object Model (COM) unterstützen. Um ActiveX-Controls zu erstellen, brauchen Sie also keine bestimmte Software, aber Sie brauchen einen COM-fähigen Compiler. Das kann Visual Basic sein, Microsoft C++ usw.

Diskutiert wird häufig über das Sicherheitskonzept von ActiveX. Wenn Sie als Anwender erlauben, dass ein ActiveX-Control auf Ihren Rechner geladen wird, kann dieses Programm auf dem Rechner so ziemlich tun und lassen was es will. Es gibt also keine "Sandbox"-Beschränkungen bei ActiveX, sondern nur eine "Vertrauensbarriere" (nämlich die Abfrage des Web-Browsers, ob der Anwender mit der Ausführung des Programms auf seinem Rechner einverstanden ist oder nicht). Dadurch ist mit ActiveX aus Programmierersicht zwar viel mehr realisierbar als mit Java-Applets, doch aus Anwendersicht sind ActiveX-Module tendenziell unsicherer als Java-Applets.