Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 1 COM+ und MTS Patrick Schriner.

Ähnliche Präsentationen


Präsentation zum Thema: "Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 1 COM+ und MTS Patrick Schriner."—  Präsentation transkript:

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?


Herunterladen ppt "Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 1 COM+ und MTS Patrick Schriner."

Ähnliche Präsentationen


Google-Anzeigen