Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Alf Bogenschutz Geändert vor über 9 Jahren
1
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 1 COM+ und MTS Patrick Schriner
2
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 2 Motivation von COM+ Three-Tier Applikationen Presentation, Business Logic, Data Layer COM+ möchte die Programmierung des „Business Logic Layer“ vereinfachen Vereinheitlichung der Konzepte von DCOM, MTS, MSMQ Höhere Skalierbarkeit Bessere Tools Enterprise Anwendungen Visual Basic Programmierern den Zugang zur Enterprise Programmierung ermöglichen
3
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 3 MTS (Microsoft Transaction Server)
4
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 4 MTS (Microsoft Transaction Server) Erste Version: Als Zusatz zu Windows NT 4.0 Zweck: Abbildung von Datenbanken auf COM Komponenten Features JITA (Just In Time Activation) MTS Komponenten werden erst auf Anfrage erzeugt –resourcenschonend
5
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 5 MTS (Microsoft Transaction Server) Features (2) Sicherheit Rollen-basiertes Sicherheitssystem Skalierbarkeit Durch Thread-Pools Durch Automatisches Activate / Deactivate Transaktionsmanagment MTS Komponenten können verschiedene Transaktionsmodi wählen Not Supported / Requires New / Required / Supported
6
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 6 Roll-based Security (MTS/COM+) Rolle NT-Benutzer NT-GruppeKomponente Rechte
7
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 7 JITA Lebenszyklus in MTS/COM+ Raw Memory Initialized Constructor Activated Activate() Deactivated Deactivate() doSomething() Destructor Deactivate() Destructor Ohne canBePooled Mit canBePooled (recycling)
8
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 8 MS Message Queue Server (MSMQ) Soll den Austausch von Daten zwischen Applikationen auf verschiedenen System und Netzwerken vereinfachen Features Store and Forward Communication Applikationen können Nachrichten an Applikationen verschicken, die nicht die ganze Zeit online sind. Concurrent Execution Gleichzeitiges Verschicken von Anfragen, ohne auf Antworten warten zu müssen Journalled communication Ermöglicht das Erstellen von Kopien von Anfragen, zur weiteren Verarbeitung
9
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 9 MSMQ (2) Features Guaranteed Message Delivery (so physikalisch erreichbar) Asynchronous communication Transaction support (besonders mit MTS) Einmalige Absendung, in-order Integration mit dem Windows NT Sicherheitssystem In.NET: Abgebildet im System.Messaging Namespace
10
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 10 MSMQ Ablauf MSMQ Send Queue Receive Queue ClientServer Proxy (Recorder) Component Stub (Player)
11
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 11 COM+
12
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 12 COM+ Features DCOM Integration des MTS in COM+ Transaktionsmanagment Rollenbasiertes Sicherheitssystem Integration des MSMQ Servers in COM+ Queued Components „Component Services“: In-Memory Database (IMDB) Datenbank Cache
13
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 13 COM+ Features (2) „Component Services“ (2) Load Balancing Ein (oder mehrere) Server nehmen die Anfragen entgegen, und reichen diese weiter an einen Server Cluster („Shortest Response Time“) Object Pooling Komponenten müssen selber erkennen, ob sie sich gerade in einer Transaktion befinden oder nicht COM+ fragt über CanBePooled, ob die Komponente freigegeben ist Bessere Administration Sicherheit, Transaktionsmodus, Threading,Objektpooling sind über den Komponentenmanager administrierbar (bis runter auf Methodenebene)
14
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 14 Security Rollen-basiert, wie im MTS in COM+ Beschränkung auf NT-Benutzer Deklarativ (GUI) Zuweisung von Rechten nach Rollen Zuweisung von Benutzern bzw. Benutzergruppen zu Rollen Imperativ (im Programm) Möglichkeit, im Programmkontext den Benutzer abzufragen // C# Beispiel if (ContextUtil.IsSecurityEnabled) { if (ContextUtil.IsCallerInRole("DistrictManagers")) GetDistrictManagerSalesData (); else if(ContextUtil.IsCallerInRole("RegionalManagers")) GetRegionalManagerSalesData (); }
15
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 15 Events „loosely coupled events“ Events werden nicht direkt verschickt Publisher / Subscriber benutzen COM+ Catalog Auf Methodenebene Bessere Semantik (?): Teller.credit(Athul, 100001); statt SendEvent(channel=Teller, name=Athul, credit=100001); Sicherung durch die schon beschriebenen Sicherheitsmöglichkeiten Redirection Als DCOM oder Queued Components
16
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 16 COM+ 1.5 (Windows XP / 2003) Volle Unterstützung erst in Windows 2003 Server Features: Application Pooling "process-level" load balancing –Erlaubt es, nicht nur Objekte in einem Pool zu verwalten (COM+ 1.0), sondern Prozesse. Pause/Disable Applications Public/Private Components COM+ Partitions Ermöglicht die gleichzeitige Ausführung verschiedener Revisionen einer COM+ Komponente COM+ SOAP Service Bereitstellen der Funktionalität einer COM+ Komponente als WebService
17
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 17 COM+ 1.5 (2) Applications as NT Services Bessere Konfigurierbarkeit Ausführender Account Automatischer Restart Logging Application Recycling Erlaubt es, in regelmäßigen Intervallen Komponenten neu zu starten Startet Duplikat des dllhost Prozesses, der mit einer Anwendung verbunden ist Gut gegen Speicherlöcher, „hängende“ Prozesse, Triggers: Lifetime, Memory, Call, Activation Expiration Timeout
18
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 18 COM+ State COM+ Komponenten sind nie persistent Bei „ Deactivate “ kann man den State sichern (oder verwerfen) Recycling wird ausgelöst durch setComplete/setAbort Falls es „billig“ ist, sich den State wieder zu holen, sollte man diesen nicht sichern, und statt dessen die Komponente möglichst oft freigeben Eine Transaktion dauert so lange, wie das Objekt existiert Mit EnableCommit und DisableCommit (am Ende einer Methode) kann man den Transaktionskontext über die Methode hinaus verlängern => Aus Performance Gründen wird stateless bevorzugt
19
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 19 Nach COM+: Indigo? Neue Architektur, das erste mal in Longhorn (2006?) „Service oriented Architecture“ (SOA) „Indigo is a set of.NET Framework-based technologies for building and running connected systems. Indigo is the next step in the evolutionary path that started with COM, COM+, and MSMQ, and continues through.NET Remoting, ASMX, System.Messaging, and.NET Enterprise Services. Indigo subsumes these technologies and offers a single unified programming experience for developing services using any CLR-compliant language.”
20
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 20 Beispiel für COM+
21
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 21 COM+ in C++ Problem Keine direkte Sprachunterstützung für Interfaces Lösung IDL (Interface Description Language) Ähnlich wie die IDL für CORBA, aber inkompatibel Sehr wenig abstrahiert… Beispiel
22
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 22 COM+ und.NET (C#) Klasse muß (nur) von System.EnterpriseServices.ServicedComponent abgeleitet werden Das richtige „Transaction“ Attribut muß gesetzt werden z.B. TransactionOption.Required Vorgehensweise: Programmieren der Server COM+ Komponente Optional: Überschreiben von Methoden von ServicedComponent Generierung eines „Strong Keys“ (GUID) Registrierung im COM+ Catalog (Registry bzw. COM+ Registration Database) mit regsvcs.exe (C#) oder regsvr32.exe (C++)
23
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 23 COM+ und.NET (C#) Methoden von ServicedComponent, die man überschreiben kann: Activate CanBePooled Gibt an, ob die Komponente freigegeben werden kann Construct Deactivate Dispose Passen zum Lebenszyklus einer COM+ Komponente
24
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 24 COM+ Beispiel Server (C#) … // Supply the COM+ application name. [assembly: ApplicationName("BankComponent")] // Supply a strong-named assembly. [assembly: AssemblyKeyFileAttribute("BankComponent.snk")] namespace BankComponent { [Transaction(TransactionOption.Required)] public class Account : ServicedComponent{ [AutoComplete] public bool Post(int accountNum, double amount){ … } … override protected void Construct (string constructionString) { MessageBox.Show ("BankComponent::Construct() invoked..."); MessageBox.Show (constructionString, "Construction String"); } … } Attribute bestimmen Verhalten
25
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 25 COM+ Beispiel Client (C#) using BankComponent; namespace BankComponentConsoleClient { class Client { public static int Main() { try { Account act = new Account(); // Post money into the account. act.Post(5, 100); return(0); } catch { return(1); } Demo Client Grafischer Client VNC
26
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 26 Fazit
27
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 27 Vorteile/Probleme von COM+ Pro Leichter zu administrieren als COM/DCOM Integration verschiedener Produkte Contra Fast nur unter Windows Windows 2000 aufwärts Nur wenige Anwendungen werden mit Windows 2000 mitgeliefert Wichtige Features erst in Windows XP Starke Integration mit der Registry GUID
28
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 28 Vergleich COM+ / EJB COM+ Asynchrones Messaging Queued Components Bestandteil von Windows 2000 (oder höher) Integration mit NT5 Security Mehrere Programmiersprachen Ein Anbieter EJB Messaging mit JMS Persistenz möglich Offenes Protokoll (IIOP) Deklarative Sicherheit Kooperation mit CORBA „Nur“ Java Mehrere Anbieter
29
Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 29 Fragen?
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.