Thema: Komponenten-Architektur und Komponenten-Frameworks



Ähnliche Dokumente
Java Enterprise Architekturen Willkommen in der Realität

SDD System Design Document

Übungen zur Softwaretechnik

Internetanbindung von Datenbanken

Rapide An Event-Based Architecture Definition Language

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Eine Anwendung mit InstantRails 1.7

Kurzanleitung ejax Online-Demo

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

EIDAMO Webshop-Lösung - White Paper

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Zustandsgebundene Webservices

Windows Server 2012 R2 Essentials & Hyper-V

Ökonomik der Agrar und Ernährungswirtschaft in ILIAS

Einführung in IP, ARP, Routing. Wap WS02/03 Ploner, Zaunbauer

Erfassung von Umgebungskontext und Kontextmanagement

Komponentenbasierte Softwareentwicklung

Konzept zur Push Notification/GCM für das LP System (vormals BDS System)

16 Architekturentwurf Einführung und Überblick

Man liest sich: POP3/IMAP

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Brownbag Session Grundlagen Virtualisierung Von VM s und Containern

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Look Inside: desite. modellorientiertes Arbeiten im Bauwesen. B.I.M.

ArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung

SAP NetWeaver Gateway. 2013

Neue Funktionen in Innovator 11 R5

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Kurzfassung der Studienarbeit

Inbetriebnahme Profinet mit Engineer. Inhaltsverzeichnis. Verwendete Komponenten im Beispiel:

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015


Java und XML 2. Java und XML

SharePoint Demonstration

Erstellung eines Banderole-Ads Stand 06/10

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Jürgen Schwab, debis Systemhaus

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Verwalten Sie Ihre Homepage von überall zu jeder Zeit! Angebote und Informationen auf

Wiederholung: Beginn

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Lasersteuerung. Themengruppen FTDI - Interface ILDA Format Ausgabensteuerung Figurenerstellung Lasershowerstellung Lasershowarten Software / Community

SEP 114. Design by Contract

Ad-hoc Chatsystem für mobile Netze

8 Design Patterns. Events

Workflow, Business Process Management, 4.Teil

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Durchgängiger System-/Software- Entwicklungsprozess in der Luftfahrt

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Entwicklung des Dentalmarktes in 2010 und Papier versus Plastik.

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Seminar C16 - Datenmodellierung für SAP BW

Persistenzschicht in Collaborative Workspace

Der konsequente Verzicht auf alles Unnötige verhindert Komplexität, den wohl größten Kostentreiber im Unternehmen. (Peter May, Lernen von den

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Übungen zu Softwaretechnik

Akonadi. Der PIM-Service für den freien Desktop. Tobias König. 30. März 2010

Fragment Identifiers, Template Handles

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Einleitung: Frontend Backend

PAUL App. Anleitung für Studierende und Lehrende

Handbuch PCI Treiber-Installation

Übung - Festplattenwartung in Windows Vista

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Netzsicherheit I, WS 2008/2009 Übung 12. Prof. Dr. Jörg Schwenk

BitDefender Client Security Kurzanleitung

Multicast Security Group Key Management Architecture (MSEC GKMArch)

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

IAWWeb PDFManager. - Kurzanleitung -

Windows Small Business Server (SBS) 2008

Was ist LDAP. Aufbau einer LDAP-Injection. Sicherheitsmaßnahmen. Agenda. LDAP-Injection. ITSB2006 WS 09/10 Netzwerkkonfiguration und Security

Algorithmische Kryptographie

BANKETTprofi Telefonschnittstelle

Archiv - Berechtigungen

Fragen und Antworten

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

XMPP: Extensible Messaging and Presence Protocol

Was ist Software-Architektur?

Java Einführung Collections

Robot Karol für Delphi

windream für Microsoft Office SharePoint Server

Komponentenbasierter Taschenrechner mit CORBA

Lync Erstunterweisung nach KBV. Gütersloh,

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Transkript:

Seminar Softwaretechnik WS00/01 Softwareentwicklung mit Komponenten Veranstalter: M.Bittner, W.Koch, S. Jähnichen Thema: Komponenten-Architektur und Komponenten-Frameworks Vorträger: Dinh-Loc Hoang 1

Gliederung des Vortrags! Begriffe - Komponenten-System-Architektur -Komponenten-Frameworks! Eine Multilayer-Architektur mit drei Stufen! Freie vermittelte Wirkung in einer gestuften Architektur! Ein Beispiel für Komponenten-Frameworks "OpenDoc 2

Begriffe(1) A component system architecture consists of! a set of platform decisions,! a set of component frameworks,! an interoperation design for the component frameworks. 3

A component framework is An interoperation!a dedicated and design focused for architecture, component frameworks comprises the rules of interoperation among all the!usually around a few key mechanisms, frameworks joined by the system architecture. Abbildung für Komponente System Architektur!and a fixed set of policies for mechanisms at the component level. Bsp.: Architektur von OpenDoc platform WindowsNT platform Linux platform MacOS platform platform decisions (Schnittstelle) Component framework1 (second-order component framework) Interoperation design Component framework2... Component framework n (first-order component frameworks) 4

Begriffe(2) A component is a set of normally simultanceously deployed atomic components An atomic component is a module and a set of resources. A module is a set of classes and possibly non-object-oriented contructs,such as procedures or functions A resource is a collection of typed items 5

Hierarchie von Komponenten-Frameworks hasa component framework Bsp.: OpenDoc component component... component atomic component... atomic component module Resources 6

Eine gestufte Komponenten-Architektur! Komponentensysteme können hierarchisch in Schichten ( Layers ) zerlegt werden.! Jeder Teil eines Komponentensystems, auch die Komponenten selbst, können ihrerseits in Schichten zerlegt sein.! Um die Komplexität des Komponentensystem zu beherrschen, wird eine Meta- Architektur eingeführt, die die Systemarchitektur in Stufen (tiers) zerlegt, wobei die Layer-Struktur des Komponentensystems erhalten bleibt.! Komponentensysteme enthalten eine Reihe von Komponentenframeworks (second-tier architecture)! Jedes beteiligte Framework kann seinerseits aus mehren Stufen bestehen, deren unterste Stufe aus Komponenten besteht (first-tier architecture) 7

Eine Multilayer-Architektur mit drei Stufen Component framework Component Component system (Component framework framework) 8

Freie vermittelte Wirkung in einer gestuften Architektur CI CFI CFFI CI stands for component instance CFI for component framework instance CFFI for component system instance (or for component framework framework instance) Direkte Kommunikation (blau-blau) -COM connectable objects -Com messaging service messages -CORBA events JavaBeans evens Indirekte Kommunikation (grün-gelb-blau und gelb-gelb) -Komponentenframework als Mediator 9

Ein Beispiel für Komponenten- Framework! OpenDoc - Einführung - Architektur - Realisierung - Kommunikation zwischen Part-Editoren - Persistenz von Parts - Verbunddokumente 10

OpenDoc Kurze Einführung! OpenDoc ist ein Framework zur Verwaltung von Verbunddokumenten (compound documents).! Verbunddokumente haben verschiedene Darstellungsarten wie Text, Graphik, Bilder, Videos, Klänge! Zugriff auf Verbunddokumente direkt ohne den Umweg über ein weiteres, ausserhalb von OpenDoc liegendes Programm 11

OpenDoc Architektur(1) Von der Document Shell erzeugte Objekte: Document Shell erzeugt Session Object erzeugt OpenDoc Services Root Part für jedes Dokument 12

OpenDoc Architektur(2) Aufgaben der Document Shell:! Erzeugen eines Session-Objekts,! Öffnen bzw. Erzeugen von Dokumenten, d.h. eines Root Parts, i. allg. als Container, der weitere Parts enthalten kann.! Laden der Part-Editoren und deren Integration in das OpenDoc-System,! Entgegennehmen und Weiterleiten von Ereignissen! Verwaltung globaler Variablen. 13

OpenDoc Architektur(3) Struktur je Dokument: Compound Document Management Strutured Storage (Bento) Uniform Data Transfer Automation & Scripting Part Editor... Part Editor Session Dokument Shell 14

OpenDoc Realisierung! SOM (System Object Model) als Basis von OpenDoc -SOM ist ein CORBA-konformer ORB (Object Request Broker) -Beschreibung der Schnittstelle zu SOM in SOMs IDL -Alle OpenDoc-Services, Part-Editoren etc. sind als shared libraries realisiert! Der Aufbau von Part-Editoren -Methoden und ihre Funktionalität für die Realisierung: Drag&Drop, Embedding, Frames, Facet, Containing Parts, Binding, UserInteraction-Events,... -5 Methoden reichen aus, um die Zusammenarbeit eines Part-Editors mit OpenDoc zu realisieren.! Erweiterung bestehender Parts durch Vererbung -Für den Einsatz von Parts genügt es, über die IDLs und die shared libralies der Parts zu verfügen. -SOMs IDL unterstützt Mehrfachvererbung, was die Entwicklung neuer Parts oftmals erleichtert 15

OpenDoc Kommunikation zwischen Part-Editoren(1) Event-Verarbeitung in OpenDoc Part Editor1 Part Editor1... Part Editor1 Dokument Shell Dispatcher Arbitrator Interne Verarbeitung Ereignis Betriebssystem 16

OpenDoc Kommunikation zwischen Part-Editoren(2)! Extensionen -Erweitern von Part-Editoren um zusätzliche Funktionalität -Extensionen zum programmgesteuerten Datenaustausch zwischen Part- Editoren. -Kennzeichnung jeder Extension durch einen category name. -Private Extensionen und öffentliche Extensionen. -Nutzung von Extensionen eines anderen Part-Editors! Nachrichtenaustausch-Semantic Events -Verwendung von Semantic Events für die Kommunikation zwischen Parts. -für Kommunikation zwischen verschiedenen Dokumenten auf verschiedenen Rechnern. 17

OpenDoc Kommunikation zwischen Part-Editoren(3)! Empfang und Verarbeitung von Semantic Events -Erzeugung folgender Objekten durch Verarbeitung bestimmten Semantic Events:. Semantic Interface,. Helper-Objekt -Initialisierung der Event Handler- und Accessor-Funktionen! Senden von Semantic Events -Message Interface -OpenDoc stellt Methoden zum Erzeugen und Senden von Nachrichten und zur Adressierung der Ziel-Objekte zur Verfügung. 18

OpenDoc Persistenz von Parts(1) Ein Storage DraftUnits sind die Objekte, in denen die Ein Objekt der Storage System Daten spiegelt der den einzelnen Entwicklungsstand Parts-Editoren des abgelegt sind Dokuments ist die zu zentrale einem Instanz bestimmten zur Steuerung Zeitpunkt dokumentiert von Speichersystem somit die Bento Entstehungsgeschichte des Dokuments verwaltet eine Liste von Container- realisiert Objekten eine Versionsverwaltung OpenDocs Speichersystem ( Bento) : Struktur von Bento Storage System Container Container Container Container Container Dokument Dokument Draft Draft Draft Storage Unit Storage Unit Storage Unit 19

OpenDoc Persistenz von Parts(2)! Aufbau von Storage Units -Identifizieren jeder Storage Unit über eine 32 Bit Nummer und -Innerhalb des Dokuments eindeutig. -Ablegung der Daten in Storage Units in Properties (Property-Liste) -Properties : Daten, Meta-Daten oder Verweise auf andere Storage Units! Nutzung von Storage Units zur Speicherung von Objekt-Daten -Keine Einschränkungen über Art, Anzahl und Wertebereich von Properties 20

OpenDoc Verbunddokumente Realisierung von Verbunddokumenten Part Frame Facet Canvas Shape Dokumentbezogene Sicht... Fensterbezogene Sicht 21

BlackBox versus OpenDoc (1) Ähnlichkeit:! Beides sind Komponenten-Frameworks meistens für visuelle Komponenten.! Beide haben Konzept des containers und recursive embedding.! Beide haben Konzept des compound documents.! Ähnlich bei der Modellierung des Compound-documents: BlackBox: views, contexts, frames, port riders and ports OpenDoc: parts, frames, facets, shapes and canvases Aber Einschränkung:! BackBox weniger komplex als OpenDoc " nur Unterstützung eines restriktiven Dokumenten-Modells. (z. B.: Es gibt keine allgemeine Unterstützung für die Versionierung des Dokuments, keine allg. Objektreferenzierung) 22

BlackBox versus OpenDoc (2)! BlackBox ist umfassender als OpenDoc: es hat eine vollständig integrierte Entwicklungsumgebung! Bei BlackBox ist eine auf Component Pascal basierte Umgebung, Nutzung umfasst: -performmance-critical low-level programming, -interfacing to external platform-specific dynamic link libraries, -implementation of new components, -scripting 23