Konzepte und Programmierung

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

Object Relational Mapping
Was gibt´s neues im Bereich Sicherheit
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Design- und Entwicklungswerkzeuge
Web-Entwicklung mit ASP.NET 2.0 und Visual Studio 2005 Uwe Baumann Marketing Manager Developer Tools Microsoft Deutschland GmbH Oliver Scheer Developer.
COM & Threading „The Basics“
COM-Programmierung mit Visual Basic 6
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Systemverwaltung wie es Ihnen gefällt.
Basis-Architekturen für Web-Anwendungen
Dieter Oppermann und Lena Sazonova, Nutzertagung 2003
Datenbankzugriff im WWW (Kommerzielle Systeme)
Erweiterung B2B Usermanagement / LDAP-Anbindung
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
DOM (Document Object Model)
Universität zu Köln Kurs Dedizierte Systeme
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Modellierung der Zugriffslogik auf Datenbanktabellen Software Component Technology for Distributed Applications Andreas Fink.
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
Access & Assign Methoden in Visual FoxPro Zuweisungs- und Zugriffs-Methoden.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
PHP Pakete und Beispiele Webengineering Robert Lemke.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
PHProjekt – eine open source Projektmanagementsoftware
Distributed Programming in.NET. Inhaltsverzeichnis 1) Einführung 2).NET Remoting 3) Web-Services 4) Vergleich.NET Remoting und Web- Services 5) Fazit.
Agenda Vereinfachte Grundeinrichtung und Dateneingabe
Einstellungen im Web für Outlook
School Community System Einfach in Kontakt bleiben.
© ISY Informationssysteme GmbHSeite: 1 ISY-Connect Connect Client (Konfiguration) Das obige Bild zeigt das Fenster von ISY Connect-Client im Konfigurationsmodus.
Steuerung externer Komponenten über ein USB-Interface.
ProFM Helpdesk Effective Web Based Maintenance Management System.
„Buy and Make“ anstelle von „Make or Buy“
Best Practices in der Datenbank-programmierung
SQL Server 2005 CLR-Integration
Systemaufbau / Komponenten
Mit 3 Schichte zum Erfolg
Präsentation von Sonja Pathe
Tools und Verfahren Steffen Krause Technologieberater Microsoft Deutschland GmbH
Typo 3. INSTALLATION TYPO3 INSTALLTOOL EXTENSIONS UND TEMPLATES INSTALLATION TEMPLAVOILA USERMANAGEMENT Inhalt:
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
1 MEDEA3 / IWC-RLO Medea3 System-Übersicht Haupt-Komponenten von Medea 3 –Medea 3 SERVER SUN/SOLARIS System ORACLE 8i Datenbank Server Medea 3 Kernel Apache.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 2 Folie 2 ASP.NET HTTP-Handler (1)
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
..:: MULTI – ABO – KARTE ::.. Projektstudium Chipkarten SS 2003 Vortragende: Katrin Kampfmann, Alexander Lamprati (PM)
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Meins & Vogel GmbH, Tel. (07153) , Sicher im Internet – Nur eine Illusion? Vortrag im Rahmen eines Info-Abends Meins und Vogel.
Vom Kontext zum Projekt V Carina Berning Sabrina Gursch Pierre Streicher Intelligente Dateisysteme.
ICT – Modul Dokumentenverwaltung
Objectives Verstehen was unterDelegate verstanden wird
AddIn erstellen Herbers Excel-Server - der Workshop Angebote des Excel-Servers: Die Excel/VBA-Beispiele Die Excel/VBA-BeispieleDie Excel/VBA-BeispieleDie.
MTS Microsoft Transaction Server Martin Basziszta
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Zero Administration Kit für Microsoft® Windows® Jörg Kramer University Support Center.
iMAS Schnittstellen - Übersicht
Einführung OpenSTA. Agenda - über OGVIT - Warum Lasttests - Was ist OpenSTA - Wie arbeitet OpenSTA - Skripte für OpenSTA - OpenSTA Collectors - Tests.
Untersuchungen zur Erstellung eines
MSDN TechTalk Anwendungen integrieren in Microsoft Dynamics CRM 4.0.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
CODA - Installation Installation der Binärdateien –Venus: Client-Programm –Vice: Server-Programm –Für Windows existiert eine Alpha-Version (Coda Client.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Webserver, Apache und XAMPP
Dieser Vortrag wird gesponsort von:
Eine komplexe Netzanwendung Webserver und Datenbankserver im Netzwerk in einer Anwendung einrichten.
 Präsentation transkript:

Konzepte und Programmierung Einstieg in COM+ Konzepte und Programmierung Michael Willers mwillers@microsoft.com Microsoft GmbH

Agenda Was ist COM+? Warum COM+? Wie funktioniert‘s? Wo gibt es weitere Info‘s?

Was ist COM+? COM+ ist die Weiterentwicklung von COM und integriert Dienste für die Entwicklung verteilter Anwendungen attributbasierte Programmierung Administrieren statt programmieren

Warum COM+? Geschäftsprozesse abbilden Application Server Windows 2000 Die wichtigsten Dienste werden zu einer Infrastruktur integriert IIS Prozesse mit Modulen abbilden! COM+ Web Queuing Sicherheit Transaktionen Komponenten Object-oriented, 3-tier development Build great services into Windows Transactions Load balancing Component management Support all languages Simplify our APIs for developers Offline client support is critical

Warum COM+? Dienste für verteilte Anwendungen ohne COM+: Synchronisation für Threads implementieren Logik für Zugriffsrechte implementieren Eventservice implementieren Ressourcenverwaltung implementieren Problemlösung implementieren mit COM+: Synchronisation für Threads vorhanden Logik für Zugriffsrechte vorhanden Eventservice vorhanden Ressourcenverwaltung vorhanden

Warum COM+? COM+ ist kein „Entweder oder“ Wer sich mit Threading und Security unter COM auskennt, kann auch ohne COM+ entwickeln! Aber: „Wie erklären Sie Ihrem Chef den zusätzlichen Aufwand?“

Warum COM? Die wichtigsten Merkmale Vereinfachte Programmierung Vergabe von Rechten basiert auf Rollen “single user” components „Automatische“ Transaktionen Skalierung Wiederverwendung von Threads, Objektinstanzen und Datenbankverbindungen Administration und Installation Konfiguration erfolgt grafisch Komponenten werden in “Paketen” gruppiert

Wie funktioniert‘s? Was ist ein Kontext? Unter COM+ kann ein COM-Objekt über Attribute mitteilen, welche Systemdienste es bei seiner Ausführung benutzen möchte Administrieren statt programmieren Beim Aufruf des Objekts wird eine auf dessen Attributen basierende Laufzeitumgebung erstellt, die dem Objekt die angeforderten Systemdienste bereitstellt Diese Laufzeitumgebung heißt Kontext Jedes COM-Objekt besitzt einen Kontext The shared features in Visual Studio 6.0 support each of the areas in the development lifecycle. Design: Visual Studio supports design in both the physical and logical state with the Visual Modeler and the Database Designer. Develop: Rapid application development support is included in all of the Visual Studio 6.0 development tools. The tools share a common look and feel, allowing developers to easily capitalize on their knowledge base from tool to tool. Analyze: The Visual Studio Analyzer allows developers to visualize distributed solutions: understand their structure, locate problems, and isolate performance bottlenecks. Deploy: Visual Studio 6.0 includes enhance build, package and deploy functionality for web based solutions. Manage: The Visual Component Manager manages components written in any language in the suite. Each tool is also integrated with Visual Source Safe for complete version control.

Wie funktioniert‘s? Jedes Objekt besitzt einen Kontext Client Win9x WinNT 4.x Win2000 COM+ Umgebung unter Win2000 Kontext A Interceptor Object Context Kontext B Objekt 1 Client

Wie funktioniert‘s? Rollenbasierte Sicherheit

Wie funktioniert‘s? Beispiel für rollenbasierte Sicherheit

Wie funktioniert‘s? Rollenbasierte Sicherheit, Hinweise Administration vereinfachen Erstellen Sie Benutzergruppen, die den Rollen entsprechen Achtung: Standardmäßig ist die Prüfung der Zugriffsrechte für eine COM+ Anwendung ausgeschaltet Zugriffsrechte können hinunter bis zu einzelnen Methoden festgelegt werden Innerhalb einer COM+ Anwendung erfolgen keine Sicherheitsüberprüfungen – nur bei Aufrufen von „aussen“ in die Anwendung hinein!

Wie funktioniert‘s? Was ist eine Activity? Eine Activity sorgt für die Synchronisation gleichzeitiger Zugriffe Activites werden über das Attribut Concurrency festgelegt Activities sind Transaktionsgrenzen

Wie funktioniert‘s? Das Attribut Concurrency Activity X Supported oder Required B IUser A IHand Not Supported Requires New IFace C Activity Y IFoot D Supported IMouth E

Wie funktioniert‘s? Activities und Synchronisation 1 3 Interceptor Your Object 2 4 5 Client ruft Methode auf 1 Interceptor fordert Lock an 2 Lock erhalten, Aufruf durchführen 3 Aufruf beendet, Interceptor gibt Lock frei 4 Object Context m_pActivity Kontrolle zurück an Client 5 Activity X

Wie funktioniert‘s? Transaktionen unter COM+ Transaktionen werden unter COM+ deklarativ erstellt Transaktionen erfolgen komponentenbasiert Transaktionen werden über das Attribut Transaction festgelegt Deadlocks werden per TimeOut verhindert Gleichzeitige Zugriffe innerhalb einer Transaktion werden durch Activities vermieden Activities sind Transaktionsgrenzen! The shared features in Visual Studio 6.0 support each of the areas in the development lifecycle. Design: Visual Studio supports design in both the physical and logical state with the Visual Modeler and the Database Designer. Develop: Rapid application development support is included in all of the Visual Studio 6.0 development tools. The tools share a common look and feel, allowing developers to easily capitalize on their knowledge base from tool to tool. Analyze: The Visual Studio Analyzer allows developers to visualize distributed solutions: understand their structure, locate problems, and isolate performance bottlenecks. Deploy: Visual Studio 6.0 includes enhance build, package and deploy functionality for web based solutions. Manage: The Visual Component Manager manages components written in any language in the suite. Each tool is also integrated with Visual Source Safe for complete version control.

Wie funktioniert‘s? Das Attribut Transaction

Wie funktioniert‘s? Prozess, Kontext, Activity, Transaktion Prozess M Prozess N Activity X Activity Y Kontext A Kontext B Kontext C Kontext D Transaktion A Transaktion B

Wie funktioniert‘s? Activities sind Transaktionsgrenzen! Die Attribute Concurrency und Transaction sind voneinander abhängig Wenn Sie Anwendungen per Script installieren, müssen Sie darauf achten Transaction Concurrency Requires New Required/ Required Supported

Wie funktioniert‘s? Transaktionen mit einem Objekt Activity Transaktion Doomed FALSE Kontext Wurzel objekt Client Happy TRUE Done FALSE

Wie funktioniert‘s? Das Doomed-Flag Es bestimmt den Ausgang einer Transaktion FALSE: commit TRUE: rollback Es wird zu Beginn einer Transaktion angelegt und hat den Wert FALSE Es wird überprüft, wenn das Wurzelobjekt deaktiviert wird Ein direkter Zugriff ist nicht möglich Setzen erfolgt über das Happy-Flag

Wie funktioniert‘s? Das Happy-Flag Es bestimmt den Inhalt des Doomed-Flags Es wird beim Erstellen eines Objekts angelegt und hat den Wert TRUE IContextState::SetMyTransactionVote setzt und löscht das Flag TRUE: SetMyTransactionVote TxCommit FALSE: SetMyTransactionVote TxAbort Flag wird beim Zerstören oder Deaktivieren eines Objekts überprüft Der allerletzte Aufruf vor dem Zerstören oder Deaktivieren zählt! Der negierte Wert des Flags wird dann in das Doomed-Flag übernommen

Wie funktioniert‘s? Zerstören/Deaktivieren eines Objekts Ein Objekt wird zerstört, wenn der Aufrufer seine Verbindung zum Objekt löst Set ... = Nothing Scope einer Routine wird verlassen Ein Objekt wird deaktivert, wenn das Done-Flag gesetzt ist

Wie funktioniert‘s? Das Done-Flag Es bestimmt, ob ein Objekt deaktiviert wird Es wird beim Erstellen eines Objekts angelegt und hat den Wert FALSE IContextState::SetDeactivateOnReturn setzt und löscht das Flag TRUE: SetDeactivateOnReturn TRUE FALSE: SetDeactivateOnReturn FALSE Flag wird erst am Ende eines Methodenaufrufs überprüft Der letzte Aufruf innerhalb einer Methode zählt Das Objekt wird sofort nach dem Ende des Methodenaufrufs deaktiviert

When I‘m happy and done Part 1

When I‘m happy and done Bestandsaufnahme Objekt wird vom rufenden Client entsorgt Im Objekt gespeicherte Daten bleiben erhalten Dauer einer Transaktion verlängert sich Objekt deaktiviert sich selbst mittels SetDeactivateOnReturn Objekt wird unmittelbar am Ende eines Methodenaufrufs deaktiviert Im Objekt gespeicherte Daten gehen verloren Transaktionen sind so kurz wie möglich

When I‘m happy and done Zustand oder kein Zustand? Zustandsbehaftete Objekte (emissary) : Saubere Modellierung, da mit „echten Objekten“ gearbeitet wird Strukturierung durch ein Objektmodell möglich Skalierung im Hinblick auf Transaktionen nicht optimal, da Objekte nicht deaktiviert werden kann Zustandslose Objekte (executant): Keine „echten“ Objekte Objekte bestehen ausschliesslich aus Methoden, die konkrete Aktionen abbilden (z.B. Aufgeben einer Bestellung) Verbesserte Skalierung im Hinblick auf Transaktionen, da Objekte bei Bedarf aktiviert und deaktiviert werden können

Wie funktioniert‘s? Transaktionen mit mehreren Objekten Activity Transaktion Doomed FALSE Kontext 2nd Objekt Kontext Happy TRUE Done FALSE Wurzel objekt Client Kontext Happy TRUE Done FALSE 2nd Objekt Happy TRUE Done FALSE

When I‘m happy and done Sequenz 1 Client3 Server3 Server31 Server32 DoSomething1 DoSomething1 TxAbort Deactivate TxCommit Deactivate DoSomething5

When I‘m happy and done Sequenz 2 Client3 Server3 Server31 Server32 DoSomething2 DoSomething1 TxAbort Deactivate DoSomething2

When I‘m happy and done Sequenz 3 Client3 Server3 Server31 Server32 DoSomething3 DoSomething1 TxAbort Deactivate DoSomething1

When I‘m happy and done Sequenz 4 Client3 Server3 Server31 Server32 DoSomething4 DoSomething1 TxAbort Deactivate DoSomething5

When I‘m happy and done Part 2

Wie funktioniert‘s? Transaktionen – Fazit Eine Transaktion wird grundsätzlich beendet, wenn das Wurzelobjekt deaktiviert wird Wird ein sekundäres Objekt deaktiviert und dessen Happy-Flag ist FALSE, wird... ...das Doomed-Flag auf TRUE gesetzt ...die Kontrolle an das Wurzelobjekt zurückgegeben In diesem Fall sollte das Wurzelobjekt sofort deaktiviert und somit die Transaktion beendet werden Unteilbarkeit einer Transaktion Weitere Aufrufe liefern Fehler

Wie funktioniert‘s? Erkennen einer ungültigen Transaktion FRAGE: Wie kann man feststellen, ob eine Transaktion ungültig ist, wenn man das Doomed-Flag nicht direkt auslesen kann? ANTWORT: Fehler sollten stets direkt an den Client bzw. das rufende Objekt durchgereicht werden Visual Basic : Err.Raise benutzen Visual C++ : AtlReportError oder Error benutzen

Wie funktioniert‘s? Fallbeispiel Bestellwesen Abbilden des Geschäftsprozesses „Aufgeben einer Bestellung“ Sonderfall: Kunde überschreitet Kreditlimit Sonderfall: Produkt ist ausverkauft Verschiedene Clients Web-Browser Windows-Anwendung

Wie funktioniert‘s? Fallbeispiel Bestellwesen – Übersicht Win32 Web COM+ db_Order.dll Support TX CCustomer CProduct COrder bus_Order.dll Req TX No TX CBroker CQuery SQL7 / Access

Fallbeispiel Bestellwesen

Wie funktioniert‘s? Administrieren von COM+ Anwendungen Anlegen von COM+ Anwendungen sowie Zuordnung von Komponenten und Rollen per UI ist nur bei kleineren Anwendungen praktisch Wenige COM+ Anwendungen mit wenigen Komponenten Nur ein Rechner auf dem die COM+ Anwendung „läuft“ Die COM+ Dienste sind vollständig über COM-Schnittstellen administrierbar Aufsetzen einer Anwendung per VB-Script

Wie funktioniert’s? Allgemeine Tipps – Part 1 „Halten“ Sie Ihre Objektmodelle nur auf dem Client Zustandsbehaftete Objekte „Serverobjekte“ sollten ausschliesslich Aktionen abbilden, um eine optimale Skalierung zu erreichen z.B. Bestellung aufgeben Stoßen Sie Aktionen immer nur aus dem Objektmodell heraus an ein „Serverobjekt“ implementiert im Idealfall genau eine Schnittstelle mit genau einer Methode

Wie funktioniert’s? Allgemeine Tipps – Part 2 Die Dauer einer Transaktion sollte so kurz wie möglich sein Isolationsstufe ISOLATION_SERIALIZABLE Access-Datenbanken können nur über ODBC eingebunden werden Die Schnittstelle ITransactionJoin ist bei den JET-OLEDB-Providern nicht implementiert Connectstrings für Datenbanken sollten nicht „fest verdrahtet“ sein z.B. Constuctstrings von COM+ benutzen

Wo gibt es weitere Info’s? msdn online http://www.microsoft.com/germany/msdn TechTalk www.microsoft.com/germany/msdn/techtalk Bücher Programming Distributed Applications... Ted Pattison ISBN 1-57231-961-5 COM IDL and Interface Design ISBN 1-86100-235-4 Zeitschriften basicpro 1/99 Microsoft System Journal 4/98 und 1/2000

Fragen!? Uff...