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

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA
Advertisements

C Sharp (C#) Martin Saternus Senior Student Partner
E-Commerce Shop System
programmiert April-Juni 2003 von Knut Riechmann
der Universität Oldenburg
Programmieren im Großen von Markus Schmidt und Benno Kröger.
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
DI Christian Donner cd (at) donners.com
Enterprise Services und COM+ 1.5 Die Applikationsserver-Infrastruktur in Windows Server 2003.
Basis-Architekturen für Web-Anwendungen
Datenbankzugriff im WWW (Kommerzielle Systeme)
Objektrelationales Mapping mit JPA
Ausnahmen HS Merseburg (FH) WS 06/07.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Komponentenbasierter Taschenrechner mit CORBA
AP 04/03 Komponentenprogrammierung und Middleware Vorlesung + Projekt 4 SWS mit Praktikum (6 benotete Leistungspunkte) –Studentische Vorträge in der 2-ten.
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zusammenfassung Vorwoche
JAVA RMI.
Introducing the .NET Framework
Projekt Web Engineering
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Remote Methode Invocation (RMI)
Windows Vista Felix Lutz 14. August 2007.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Björn Schmidt, Hoang Truong Nguyen
UML Begleitdokumentation des Projekts
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Distributed Programming in.NET. Inhaltsverzeichnis 1) Einführung 2).NET Remoting 3) Web-Services 4) Vergleich.NET Remoting und Web- Services 5) Fazit.
Netzwerke | Serversysteme | Client-Service | Groupware Darmstadt The Game Changer Microsofts Hyper-V v3 & HPs Insight Online Thorsten Podzimek,
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Integration heterogener verteilter Systeme mit WS-BPEL – ein Praxisbeispiel Dr. Wolf-Dieter Heinrichs.
EJB-Applikationsserver
1 Teil 2 Einblicke in Exchange 2003 (Basis Beta 2)
Mit 3 Schichte zum Erfolg
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
UNIVERSITÄT ZU KÖLN HISTORISCH-KULTURWISSENSCHAFTLICHE INFORMATIONSVERARBEITUNG REUSABLE - CONTENT SS 2013 MARIA WAGNER ReST.
Seminar Internet Technologien
Reiner Ganser Solution Architect 1stQuad Solutions GmbH Presentation Subtitle.
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
MTS Microsoft Transaction Server Martin Basziszta
Einführung in Web Services Web Services in der Praxis
Untersuchungen zur Erstellung eines
Javelin Internet-based parallel computing using Java.
ATLAS2000 Modellintegration in digitalen Atlanten Konzepte und Lösungsvorschläge am Beispiel ATLAS2000.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
EJB Architektur für große Web - Applikationen Gerald Weber
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
1 Persistence Strategies for WebServices Senior Consultant Java Forum Stuttgart, 27. Juni 2002.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
Verteilte Anwendungen: J2EE
Investitionen sichern - wachse mit Forms in die neue Welt
 Präsentation transkript:

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

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

Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 3 MTS (Microsoft Transaction Server)

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

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

Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 6 Roll-based Security (MTS/COM+) Rolle NT-Benutzer NT-GruppeKomponente Rechte

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)

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

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

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)

Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 11 COM+

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

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)

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 (); }

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, ); statt  SendEvent(channel=Teller, name=Athul, credit=100001); Sicherung durch die schon beschriebenen Sicherheitsmöglichkeiten Redirection Als DCOM oder Queued Components

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

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

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

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.”

Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 20 Beispiel für COM+

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

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++)

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

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

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

Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 26 Fazit

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

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

Universität Bonn, Seminar Component and Aspect Engineering, WS2003, Patrick Schriner 29 Fragen?