Modul Software Komponenten 10 Komponentenarchitektur



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

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien

CORBA. Systemprogrammierung WS

Client/Server-Programmierung. CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO)

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

Inhaltsverzeichnis. Zusammenfassung CORBA

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Client/Server-Programmierung

Client/Server-Programmierung

Übungen zu Softwaretechnik

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Step by Step Webserver unter Windows Server von Christian Bartl

Client/Server-Systeme

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

Websites mit Dreamweaver MX und SSH ins Internet bringen

4D Server v12 64-bit Version BETA VERSION

VS Praktikum 03 Konzept

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

Verwendung des IDS Backup Systems unter Windows 2000

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

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

Virtual Desktop Infrasstructure - VDI

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

3.2 Der CORBA-Standard Common Object Request Broker Architecture

Powermanager Server- Client- Installation

Testen mit JUnit. Motivation

Arbeiten mit UMLed und Delphi

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Nutzung von GiS BasePac 8 im Netzwerk

Lizenzen auschecken. Was ist zu tun?

3. Stored Procedures und PL/SQL

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Themen. Web Service - Clients. Kommunikation zw. Web Services

Benachrichtigungsmöglichkeiten in SMC 2.6

Vgl. Oestereich Kap 2.7 Seiten

MSDE 2000 mit Service Pack 3a

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Applet Firewall und Freigabe der Objekte

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Java Enterprise Architekturen Willkommen in der Realität

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

BitDefender Client Security Kurzanleitung

Artikel Schnittstelle über CSV

Print2CAD 2017, 8th Generation. Netzwerkversionen

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

Sybase Central Dokumentation Aktivierung der Monitoringfunktion

Client-Server-Praktikum: Aufgabe 1 CORBA Naming Service

Das Starten von Adami Vista CRM

How-to: HTTP Proxy mit Radius Authentifizierung an einem Windows 2003 Server. Securepoint Security System Version 2007nx

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Internet online Update (Internet Explorer)

Installation und Inbetriebnahme von SolidWorks

OP-LOG

Konfigurationsanleitung Fax over IP (T.38) und CAPI Fax Server (T.30) Graphical User Interface (GUI) Seite - 1 -

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

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

ICS-Addin. Benutzerhandbuch. Version: 1.0

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

Workflow, Business Process Management, 4.Teil

Fernzugriff auf Kundensysteme. Bedienungsanleitung für Kunden

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Mobile und Verteilte Datenbanken

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Lizenzierung von System Center 2012

Mobile Anwendungen Google Cloud Messaging

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Benutzerkonto unter Windows 2000

Web Interface für Anwender

Anleitung über den Umgang mit Schildern

Windows Server 2008 für die RADIUS-Authentisierung einrichten

Lokale Installation von DotNetNuke 4 ohne IIS

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

VPN-Verbindung zur Hochschule Hof Mac OS

Anleitung zur Nutzung des SharePort Utility

Multiuser Client/Server Systeme

Eine Anwendung mit InstantRails 1.7

Installation von horizont 4 bei Verwendung mehrerer Datenbanken

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

Externe Authentifizierung. Externe Authentifizierung IACBOX.COM. Version Deutsch

Verwendung des Terminalservers der MUG

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme

Transkript:

Modul Software Komponenten 10 Komponentenarchitektur Teil 3 Peter Sollberger

Eine erste CORBA Anwendung

Inhalt Dienstag, 4. November Object Request Broker CORBA Architektur und Komponenten (Teil 1) Übung: CORBA Anwendung mit JacORB (Teil 1) Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 3

Unterlagen Folien Komponentenarchitektur (Teil 1 4) Skript "Komponentenarchitektur" von Christina Class Teil 1: Seiten 1 9 Teil 2: Seiten 10 23 Teil 3 und 4: Seiten 24 41 JacORB inkl. Installationsanleitung Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 4

Object Request Broker

Object Request Broker Ein Object Request Broker (ORB) ist die Middleware Technologie, welche die Kommunikation und den Datenaustausch zwischen Objekten ermöglicht. Objekte und deren Funktionalität sind von der Kommunikation der Objekte völlig getrennt. Funktionalität eines ORBs: Definition von Schnittstellen Lokalisierung und Aktivierung von entfernten Objekten Kommunikation von Clients und Objekten Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 6

Idee eines ORB ORB locate Service establish connection activate service Client Application communicate Remote Service ( object) Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 7

Transparenz ORB vermittelt die Illusion, als wären alle Objekte am selben Ort wie der Client verschiedene Arten von Transparenz: Programmiersprache Betriebssystem Host Hardware Lokalität Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 8

Realisierung des ORB Konzeptes Einbindung von ORB Funktionalität in Clients Implementation in separaten Prozessen Implementation als Teil des Betriebssystemkernels Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 9

CORBA Common Object Request Broker Architecture

CORBA Common Object Request Broker Architecture OMG (Object Management Group: www.omg.org): über 700 Vertreter aus Industrie und Forschung offener Bus Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 11

CORBA Facilites Anwendungsobjekte Vertical common facilities Horizontal common facilities Object Request Broker (ORB) Naming Persistence Life Cycle Properties Concurrency Collections Security Trader Externalization Events Transactions Query Relationships Time Licensing CORBA Services Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 12

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 13

Eigenschaften eines CORBA ORBs statische und dynamische Methodenaufrufe (strenge Typüberprüfung maximale Flexibilität) Verknüpfungen auf Hochsprachenebene (auch über Sprachgrenzen hinweg) selbstbeschreibendes System Ortstransparenz eingebaute Sicherheit und Transaktionen polymorphe Nachrichten (derselbe Funktionsaufruf kann je nach Objekt verschiedene Effekte haben) Koexistenz mit existierenden Systemen Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 14

Ablauf eines CORBA Methodenaufrufs

Was muss in der verteilten Anwendung geschehen? Der Client muss wissen, wie das Objekt aussieht und welche Methoden es hat. Interface Repository Der Client muss das Objekt mit Hilfe des ORB finden können. Namensdienst Der Client muss einen Methodenaufruf generieren. Der Methodenaufruf muss vom Client zum CORBA Objekt weitergeleitet werden. CORBA ORB Core Der Server muss dafür sorgen, dass das CORBA Objekt aktiv ist und Anfragen entgegen nehmen kann. Object Adapter Das CORBA Objekt muss die Methode ausführen und allfällige Werte zurückgeben. Der Client muss davon in Kenntnis gesetzt werden, dass die Methode beendet wird, er erhält aufgetretene Ausnahmen, Rückgabeparameterwerte und Rückgabewerte. Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 16

Der eigentliche ORB Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 17

Der Client erhält eine Objektreferenz Mit Hilfe verschiedener Dienste (insbesondere Namensdienst) und des ORB erhält der Client eine Referenz auf das CORBA Objekt. Mit Hilfe dieser Referenz ruft der Client eine Methode im CORBA Objekt auf. Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 18

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 19

Der Client Stub verpackt den Methodenaufruf in eine Nachricht Marshalling Methodenname Parameterinformationen (Typ, Wert, Richtung) Kontextinformation Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 20

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 21

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 22

Der Object Adapter aktiviert und deaktiviert die Objektimplementation Server ist der Ausführungsort des Objektes die Implementation wird gegebenenfalls auf dem Implementation Repository geholt Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 23

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 24

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 25

Der Server Skeleton der Skeleton entpackt die Nachricht vom Client und ruft die Methode auf nach Methodenaufruf generiert der Skeleton eine Nachricht mit Rückgabewerten und Ausnahmen an den Client Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 26

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 27

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 28

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 29

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 30

Interface Repository Client Dynamic Invocation Client Client IDL IDL Stubs Stubs ORB Interface Static Static Skeletons Skeletons Dynamic Skeleton Invocation Object Request Broker Core (IIOP) Object Implementation Object Adapter Implementation Repository Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 31

Erstellung einer CORBA Anwendung

Erstellung einer CORBA C/S Anwendung erzeuge das Objekt Interface mit IDL übersetze die IDL Datei implementiere das Objekt implementiere den Server trage Objekt in Implementation Repository ein implementiere den Client Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 33

Object Adapter, Servants und CORBA Objekte

Einleitung es gibt möglicherweise 1000-de von CORBA Objekten zu einem bestimmten Zeitpunkt wird nur ein Bruchteil der CORBA Objekte benötigt es wäre Ressourcenverschwendung, alle Objekte die ganze Zeit am Laufen zu haben andererseits soll es auch nach einem längeren Zeitraum möglich sein, wieder auf das gleiche Objekt zuzugreifen Lösung: Trennung zwischen Objekt und laufendem Code Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 35

Servants Ein Servant enthält den Code, der ein CORBA Interface implementiert. Er ist in einer bestimmten Programmiersprache geschrieben. Er ist Teil eines CORBA Objektes. Er kommuniziert nach aussen. Seine Methoden können in unterschiedlicher Weise aufgerufen werden, häufig durch Skeletons. Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 36

Objektreferenz Objektidentität wird vom Client verwendet eine Objektreferenz verweist immer auf dasselbe Objekt mehrere Objektreferenzen können auf dasselbe Objekt verweisen Objektreferenzen: Weitergabe als Parameter, Rückgabewert oder String Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 37

Aufgabe des Portable Object Adapters (POA) verbindet den Servant mit dem ORB verwaltet die Laufzeitumgebung für Objekte leitet Methodenaufrufe an den richtigen Servant weiter Abbildung einer Objektreferenz auf den zuständigen Servant transparente Aktivierung von Objekten Verbindung von Policy-Informationen mit Objekten Ermöglichung von persistenten Objekten (über mehrere Serverprozesslebenszeiten hinweg) Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 38

Lebenszyklen eines CORBA-Objekts Ein CORBA-Objekt wird erzeugt. Es kann aktiviert (mit einem Servant assoziiert) werden, z.b. sobald ein Request vorliegt. Ein Objekt kann während seiner Lebenszeit Requests durch mehrehe Sertvants bearbeiten lassen, die nacheinander das CORBA-Objekt verköpern (incarnate) und es wieder verlassen (etherealize). CORBA-Objekte können innerhalb ihrer Lebenszeit aktiv sein, bis sie schliesslich zerstört werden. Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 39

POA instanzieren und Objekt kreieren ORB orb; POA poa; org.omg.corba.object poaobject, mybasicoperationsimpl; orb = ORB.init(args, props); // Get POA poaobject = orb.resolve_initial_references("rootpoa"); POA poa = org.omg.portableserver.poahelper.narrow(poaobject); // Aktivieren des POA poa.the_poamanager().activate(); // Kreiere neues Servant der entsprechenden Klassen mybasicoperationsimpl = poa.servant_to_reference(new BasicOperationsImpl()); // starte den ORB orb.run(); Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 40

Lokale Transparenz: Der CORBA Namensdienst

CORBA Namensdienst wichtigster CORBA Dienst wird von jeder CORBA Implementation angeboten Namensdienst bildet einen für Menschen verständlichen Namen auf eine Objektreferenz ab vgl. Directory Dienst Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 42

Servant beim Namensdienst registrieren org.omg.corba.object nso, mybasicoperationsimpl; NamingContextExt nameservice; // Kreiere neues Servant der entsprechenden Klassen mybasicoperationsimpl = poa.servant_to_reference(new BasicOperationsImpl()); // Naming service referenz auflösen nso = orb.resolve_initial_references("nameservice"); nameservice = NamingContextExtHelper.narrow(nso); // Objektreferenz beim Naming service anmelden nameservice.bind(nameservice.to_name("basicoperationssrv"), mybasicoperationsimpl); Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 43

Client Objekt via Namensdienst erzeugen ORB orb; org.omg.corba.object nso, clientobj; NamingContextExt nameservice; orb = ORB.init(args, props); // Naming service referenz auflösen nso = orb.resolve_initial_references("nameservice"); nameservice = NamingContextExtHelper.narrow(nso); clientobj = namenservice.resolve( namenservice.to_name("basicoperationssrv")); mbasiccalculator = _BasicOperationsHelper.narrow(clientObj); Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 44

Aufgabe Rechner

Demo Rechner als verteilte Anwendung: 1 Server mit 2 Interfaces 2 Clients Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 46

Aufgabe: Rechner (I) Implementieren Sie einen Rechner als verteilte Anwendung: 1. Ein Server implementiert ein Basic-Operations Interface (add, diff, multiply, divide (inkl. Exception)). 2. Ein zweiter Server implementiert ein Advanced-Operations Interface (square, factorial, squareroot, mit INOUT Attributen). 3. Eine einfache GUI Applikation benutzt diese zwei Interfaces. Verteilen Sie Ihre Anwendung auf verschiedene Rechner! Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 47

Aufgabe: Rechner (II) Verwenden Sie für die Aufgabe den vorgegebenen Rahmen. Damit können Sie die drei Applikationen in NetBeans entwickeln und laufen lassen. Vergessen Sie aber nicht, zuerst den Name Service zu starten (ausführen von start_ns.cmd). Hochschule Luzern, V2.0 Modul SWK - Komponentenarchitektur 3 - P. Sollberger 48