Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Enterprise Services und COM+ 1.5 Die Applikationsserver-Infrastruktur in Windows Server 2003.

Ähnliche Präsentationen


Präsentation zum Thema: "Enterprise Services und COM+ 1.5 Die Applikationsserver-Infrastruktur in Windows Server 2003."—  Präsentation transkript:

1 Enterprise Services und COM+ 1.5 Die Applikationsserver-Infrastruktur in Windows Server 2003

2 Clemens Vasters Technischer Vorstand newtelligence AG

3 Dieser Vortrag … COM+ 1.5 / Enterprise Services COM+ 1.5 / Enterprise Services Windows Server 2003 Windows Server 2003 Das neue Prozessmodell Das neue Prozessmodell Dienste ohne Komponenten Dienste ohne Komponenten Web Services Web Services System.EnterpriseServices System.EnterpriseServices Ein neues Programmiermodell für Services Ein neues Programmiermodell für Services Mythen und Fakten Mythen und Fakten Anwendungsfälle für Enterprise Services Anwendungsfälle für Enterprise Services

4 COM+ 1.5 Enterprise Services Applikationsservertechnologie in Windows Server 2003

5 COM+ 1.5 Moment mal, das ist doch Technologie aus dem letzten Jahrhundert! Don Box hat gesagt, COM ist tot?! Moment mal, das ist doch Technologie aus dem letzten Jahrhundert! Don Box hat gesagt, COM ist tot?! a)COM+ ist kein besseres COM. COM+ ist ein Satz von Diensten für skalierbare, robuste und sichere Anwendungen. b)COM+ ist eine allgemeine Infrastruktur für komponentenbasierte Serveranwendungen c)COM+ ist der Kern der Applikations- serverdienste der Windows Server 2003 Plattform.

6 COM+ 1.5 / Enterprise Services COM+ 1.5 COM+ 1.5 Name für das COM Programmiermodell Name für das COM Programmiermodell System.EnterpriseServices System.EnterpriseServices Name für das Framework Programmiermodell Name für das Framework Programmiermodell Zwei Programmiermodelle; ein integrierter Satz von Betriebssystemdiensten Zwei Programmiermodelle; ein integrierter Satz von Betriebssystemdiensten Windows Enterprise Services Windows Enterprise Services

7 Server Applikation Das Prozessmodell: Pooling Applikations- Instanz ClientClient Proxy Pooling: Eine Applikation, mehrerer Instanzen Erhöhung der Fehlertoleranz Erhöhung der Fehlertoleranz Automatische Verteilung Automatische Verteilung Applikations- Instanz

8 Server Applikation Das Prozessmodell: Pausieren ClientClient Proxy Pausieren: Temporäres Anhalten von Instanzen Wartung, kurze Konfigurationsänderungen Wartung, kurze Konfigurationsänderungen Unterbindet neue Aktivierungen Unterbindet neue Aktivierungen Aktive Objekte werden weiterhin bedient Aktive Objekte werden weiterhin bedient Applikations- Instanz

9 Server Applikation Das Prozessmodell: Deaktivieren Applikations- Instanz ClientClient Proxy Deaktivieren: Permanentes Anhalten von Applikationen Längere Wartungsarbeiten Längere Wartungsarbeiten Gültig auch nach Systemneustart Gültig auch nach Systemneustart Applikation bedient restliche aktive Objekte Applikation bedient restliche aktive Objekte

10 Server Applikation Das Prozessmodell: Recycling Applikations- Instanz ClientClient Proxy Recycling: Automatischer Neustart/Ersatz von Instanzen Erhöhung der Fehlertoleranz, Stabilität Erhöhung der Fehlertoleranz, Stabilität Kriterien: Zeit, Speicherverbrauch, Aktivierungen, Aufrufe Kriterien: Zeit, Speicherverbrauch, Aktivierungen, Aufrufe Applikations- Instanz

11 Mehr Prozessmodell … Dynamischer Threadpool für MTA Dynamischer Threadpool für MTA Free/Both Threaded C++ Komponenten Free/Both Threaded C++ Komponenten Alle Windows.NET Framework Komponenten Alle Windows.NET Framework Komponenten Threadpool für STA Threadpool für STA 7-10 Threads/Prozessor für STA Komponenten 7-10 Threads/Prozessor für STA Komponenten Visual Basic 6 oder Single Threaded C++ Visual Basic 6 oder Single Threaded C++ Neu dokumentiertes API für Hosting Neu dokumentiertes API für Hosting CoRegisterSurrogateEx() CoRegisterSurrogateEx() Memory Activation Gates Memory Activation Gates Reduziert Risiko für Out of memory Reduziert Risiko für Out of memory

12 Noch mehr Prozessmodell … Neue Katalogfunktionen Neue Katalogfunktionen Starten/Anhalten von Instanzen Starten/Anhalten von Instanzen Pausieren/Deaktivieren von Applikationen Pausieren/Deaktivieren von Applikationen NT Services NT Services Ausführen von Applikationen als Service Ausführen von Applikationen als Service LocalSystem Identität möglich LocalSystem Identität möglich Automatischer Spin-Up bei Systemstart Automatischer Spin-Up bei Systemstart Fazit: Fazit: Robusteres, flexibleres Prozessmodell Robusteres, flexibleres Prozessmodell

13 Der Wert des Prozessmodells ASP.NET: Kontrollierte Panik ASP.NET: Kontrollierte Panik Priorität Nr. 1: Responsiveness Priorität Nr. 1: Responsiveness Threads, AppDomains, Prozesse werden spontan recycled, wenn notwendig Threads, AppDomains, Prozesse werden spontan recycled, wenn notwendig Exzellente Strategie für HTTP Exzellente Strategie für HTTP Nicht so gut für Caching, Hintergrundthreads Nicht so gut für Caching, Hintergrundthreads Enterprise Services: Stabilität Enterprise Services: Stabilität Priorität Nr. 1: Verfügbarkeit Priorität Nr. 1: Verfügbarkeit Prozesse werden kontrolliert recylcled Prozesse werden kontrolliert recylcled Langlebige Prozesse Langlebige Prozesse

14 Prozessgrenzen sind sicherer BrowserBrowser ASP.NETASP.NET Enterprise Services Applikation SQL Server Anonym Network- Service Service Konto RFC2617 Auth Windows SSPI ADO.NET ComponentComponent ComponentComponent ComponentComponent ComponentComponent ComponentComponent ComponentComponent Serviced Component Identität: DOMAENE/Konto ACL PrincipalPermission Rollen Rollen Gruppen Integrated Security=SSPI

15 Dienste ohne Komponenten Service Domains Service Domains Erzeugen von Kontexten inline Erzeugen von Kontexten inline Einfach innerhalb eines Codeblocks Einfach innerhalb eines Codeblocks Keine Komponentenregistrierung Keine Komponentenregistrierung Am Nützlichsten für Transaktionen Am Nützlichsten für Transaktionen Dim ServiceConfig Cfg As New ServiceConfig Cfg.Transaction = TransactionOption.Required ServiceDomain.Enter(Cfg) System.Messaging – Daten aus MSMQ holen System.Data.SqlClient – in SQL speichern System.Messaging – Daten aus MSMQ holen System.Data.SqlClient – in SQL speichernServiceDomain.Leave(Cfg) Dim ServiceConfig Cfg As New ServiceConfig Cfg.Transaction = TransactionOption.Required ServiceDomain.Enter(Cfg) System.Messaging – Daten aus MSMQ holen System.Data.SqlClient – in SQL speichern System.Messaging – Daten aus MSMQ holen System.Data.SqlClient – in SQL speichernServiceDomain.Leave(Cfg)

16 Web Services: Checkbox SOAP Einfachster Weg, ES Anwendungen als Web Services bereitzustellen Einfachster Weg, ES Anwendungen als Web Services bereitzustellen Via NETFX/Remoting Via NETFX/Remoting Erfordert HTTPS in Standardwebsite Erfordert HTTPS in Standardwebsite Pro: Pro: Sehr einfach zu nutzen Sehr einfach zu nutzen Administrator Feature Administrator Feature Integration ohne Code Integration ohne Code Contra: Contra: Kein WS-Security Kein WS-Security Nicht erweiterbar Nicht erweiterbar Nur SOAP RPC Encoding Nur SOAP RPC Encoding

17 Enterprise Services System.EnterpriseServices

18 System.EnterpriseServices Neues Programmiermodell für Services Neues Programmiermodell für Services Nicht nur ein Wrapper für COM Prog. Modell Nicht nur ein Wrapper für COM Prog. Modell Optimierungen besonders bei Transport Optimierungen besonders bei Transport Integraler Bestandteil des Frameworks Integraler Bestandteil des Frameworks Die Zukunft: Die Zukunft: COM+ XML Enterprise Services (GXA) COM+ XML Enterprise Services (GXA) Ziel: Programmiermodell bleibt stabil Ziel: Programmiermodell bleibt stabil

19 Mythen und Fakten EnterpriseServices benötigt COM/Interop EnterpriseServices benötigt COM/Interop So nicht richtig. EnterpriseServices marshallt Aufrufe durch binäres Remoting via DCOM Tunnel. So nicht richtig. EnterpriseServices marshallt Aufrufe durch binäres Remoting via DCOM Tunnel. Ausnahmen: Ausnahmen: Fkt.-Signaturen mit isomorphen Typen Fkt.-Signaturen mit isomorphen Typen Interop ist hier deutlich schneller Interop ist hier deutlich schneller Aufrufe von Queued Components Aufrufe von Queued Components Das COM+ Modell ist überholt Das COM+ Modell ist überholt … sagen Sie das mal IBM, BEA oder Sun … sagen Sie das mal IBM, BEA oder Sun

20 Aktivierung Server Applikation ClientClient Proxy Dim comp As New SampleComp comp.MakeCall() comp.MakeCall() Erstellen von Proxy, Client- Kontext, RPC Channel, Server- Kontext, Objekt Methodenaufruf

21 [JustInTimeActivation] Server Applikation ClientClient Proxy Dim comp As New SampleComp comp.MakeCall()comp.MakeCall() comp.MakeCall()comp.MakeCall() Erstellen von Proxy, Client- Kontext, RPC Channel, Server- Kontext, Objekt Methodenaufruf [AutoComplete] Activate() Deactivate() Anwendungsszenarien Transaktionen (autom. verwendet) Transaktionen (autom. verwendet) Sicherstellung von Isolation (ACID) Sicherstellung von Isolation (ACID) Deterministische Freigabe von Ressourcen Deterministische Freigabe von Ressourcen Reduzierung des Aktivierungsaufwands Reduzierung des AktivierungsaufwandsAnwendungsszenarien Transaktionen (autom. verwendet) Transaktionen (autom. verwendet) Sicherstellung von Isolation (ACID) Sicherstellung von Isolation (ACID) Deterministische Freigabe von Ressourcen Deterministische Freigabe von Ressourcen Reduzierung des Aktivierungsaufwands Reduzierung des Aktivierungsaufwands

22 Server Applikation [ObjectPooling] ClientClient Proxy Dim comp As New SampleComp comp.MakeCall()comp.MakeCall() comp.MakeCall()comp.MakeCall() Erstellen von Proxy, Client- Kontext, RPC Channel, Server- Kontext, Objekt Methodenaufruf [AutoComplete] Activate() Deactivate() Anwendungsszenarien Optimierung für teure Aktivierungen Optimierung für teure Aktivierungen Caches, externe Ressourcen Caches, externe Ressourcen Optimierung zusammen mit JITA Optimierung zusammen mit JITA Limitierung für beschränkte Ressourcen Limitierung für beschränkte Ressourcen Obergrenzen erlauben Serialisierung von Zugriffen Obergrenzen erlauben Serialisierung von ZugriffenAnwendungsszenarien Optimierung für teure Aktivierungen Optimierung für teure Aktivierungen Caches, externe Ressourcen Caches, externe Ressourcen Optimierung zusammen mit JITA Optimierung zusammen mit JITA Limitierung für beschränkte Ressourcen Limitierung für beschränkte Ressourcen Obergrenzen erlauben Serialisierung von Zugriffen Obergrenzen erlauben Serialisierung von Zugriffen CanBePooled()

23 [InterfaceQueuing] Server Applikation ClientClient Proxy Dim comp As SampleComp comp = Marshal.BindToMoniker(queue:new:progid) comp.MakeCall() Dim comp As SampleComp comp = Marshal.BindToMoniker(queue:new:progid) comp.MakeCall() RPC Msg Anwendungsszenarien Asynchrone Entkopplung Asynchrone Entkopplung Skalierbarkeit! Skalierbarkeit! Skalierbarkeit!! Skalierbarkeit!! Skalierbarkeit!!! Skalierbarkeit!!!Einschränkungen Keine Rückgabewerte Keine Rückgabewerte Keine Ausgabewerte Keine AusgabewerteAnwendungsszenarien Asynchrone Entkopplung Asynchrone Entkopplung Skalierbarkeit! Skalierbarkeit! Skalierbarkeit!! Skalierbarkeit!! Skalierbarkeit!!! Skalierbarkeit!!!Einschränkungen Keine Rückgabewerte Keine Rückgabewerte Keine Ausgabewerte Keine Ausgabewerte

24 [EventClass] Server Applikation ClientClient Proxy Dim comp As New SampleComp comp.MakeCall() comp.MakeCall() ApplikationApplikation Publisher ApplikationApplikation Anwendungsszenarien Benachrichtigungen Benachrichtigungen Erweiterungspunkte Erweiterungspunkte Subsystemkopplung SubsystemkopplungKombinationsmöglichkeiten Transaktionen Transaktionen Queuing QueuingAnwendungsszenarien Benachrichtigungen Benachrichtigungen Erweiterungspunkte Erweiterungspunkte Subsystemkopplung SubsystemkopplungKombinationsmöglichkeiten Transaktionen Transaktionen Queuing Queuing Subscriber

25 [Transaction] Server Applikation ClientClient Proxy Dim comp As New SampleComp comp.MakeCall() comp.MakeCall() ApplikationApplikation SQL MQ DB2 DTCDTC Enlist bei DTC Data Providers entnehmen Tx aus Kontext Tx-Kontext wird propagiert Anwendungsszenario Verteiltes Fehlermanagement Verteiltes FehlermanagementAnwendungsszenario

26 Zusammenfassung Enterprise Services Enterprise Services Dienste zur Implementierung häufig benötigter Lösungspatterns in Softwaresystemen Dienste zur Implementierung häufig benötigter Lösungspatterns in Softwaresystemen Dienste zur Optimierung des Laufzeitverhaltens und zur Erhöhung der Skalierbarkeit Dienste zur Optimierung des Laufzeitverhaltens und zur Erhöhung der Skalierbarkeit Ein eigenständiges Prozessmodell für Komponenten Ein eigenständiges Prozessmodell für Komponenten Kein altes Eisen, sondern ein strategisches Programmiermodell für Dienste in der Windows Plattform Kein altes Eisen, sondern ein strategisches Programmiermodell für Dienste in der Windows Plattform

27 Fragen und Antworten

28 Weitere Informationen TimEwald, Transactional COM+, Addison Wesley, ISBN TimEwald, Transactional COM+, Addison Wesley, ISBN Philip A. Bernstein, Eric Newcomer, Principles of Transaction Processing, Morgan Kaufman, ISBN Philip A. Bernstein, Eric Newcomer, Principles of Transaction Processing, Morgan Kaufman, ISBN Clemens Vasters,.NET Enterprise Services, Hanser, ISBN Clemens Vasters,.NET Enterprise Services, Hanser, ISBN Don Box, Chris Sells, Essential.NET, Addison Wesley, ISBN Don Box, Chris Sells, Essential.NET, Addison Wesley, ISBN Juval Löwy, COM and.NET Component Services, OReilly, ISBN Juval Löwy, COM and.NET Component Services, OReilly, ISBN

29 Ihr Potenzial. Unser Antrieb.


Herunterladen ppt "Enterprise Services und COM+ 1.5 Die Applikationsserver-Infrastruktur in Windows Server 2003."

Ähnliche Präsentationen


Google-Anzeigen