Komponentenbasierter Taschenrechner mit CORBA

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Software Engeniering II
Forschungszentrum Informatik
Automation and Drives.
C Sharp (C#) Martin Saternus Senior Student Partner
Stefan Kurz und Marius Podwyszynski
Prüfung objektorientierter Programme -1
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Informatik II: Algorithmen und Datenstrukturen SS 2013
C ommon O bject R equest B roker A rchitecture
Harald Köbler Software Design Patterns Prototype.
DI Christian Donner cd (at) donners.com
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Ruby on Rails im Überblick
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
Microsoft Windows 2000 Terminal Services
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
ATHOS Benutzertreffen 12. November Auswerteserver Glashütten, 12. November 2008 HighQSoft GmbH, Andreas Hofmann
AP 04/03 Komponentenprogrammierung und Middleware Vorlesung + Projekt 4 SWS mit Praktikum (6 benotete Leistungspunkte) –Studentische Vorträge in der 2-ten.
MD 4/02 Hello World from CORBA ein erster Überblick.
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
erasm platform Bild- / Galerieverwaltung
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Transaction Script Software Component Technology for Distributed Applications.
JAVA RMI.
Projekt Web Engineering
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Remote Methode Invocation (RMI)
Folie 1 Christian Pfeffer Carsten Walther Fernstudium Informatik Matrikel LABORPRAKTIKUM- SOMMERSEMESTER 2005 Umsetzung von Pattern Muster: DECORATOR.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Common Object Request Broker anhand eines Beispiels Aufgabestellung ( Ein Konto wird von einem Server verwaltet. Der Stand des Kontos wird.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
TENEZ Hallenreservierungssystem Verwaltung von mehreren Vereinen Verwaltung von mehreren Standorten mit Hallen Kundenverwaltung Reports Mobile Version.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Herzlich Willkommen… welcome… soyez la bienvenue….
Delphi II - OOP IFB Fortbildung
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Software Engineering 1 6. Übung
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Mit 3 Schichte zum Erfolg
Architekturen und Techniken für computergestützte Engineering Workbenches.
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Wasserfallmodell und Einzelbegriffe
Testtechniken-Praktikum WS 2005/06 1 Testen mit Mock- Objekten Andreas Höfer Dr. Matthias Müller.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Office in Java 2. Info-Point Urs Frei.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Plugin Design Patterns in
TDD mit MSTest Stefan Lieser
2. Kommunikation und Synchronisation von Prozessen 2
2. April 2015Solveigh Matthies BioRem als FESA3-Klasse BioRem-Ansteuerung mit einer FESA3- Klasse Sinn&Zweck Funktionialit ä t Implementierung.
Seite 1 © 2007 Dr. Schwaiger Roland VP SW-Technologien WS 2007/2008 VP Softwaretechnologien WS2007/2008 SAP GUI Pattern und Componentry Dr.
Ilmenau, den * * Torsten Kunze
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
Software - Testung ETIS SS05.
Design Pattern1 Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwen- dung.
Ressourcenoptimierung von Webapplikationen am Beispiel einer Rich Internet Applikation Sergej Becker Betreuender Prüfer: Prof. Dr. Olaf Zukunft KolloquiumZweitgutachter:Prof.
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
LINUX II Unit 9 Network File Server NFS. NFS Überblick ● Zugriff von lokalen Rechner über Netzwerk auf Dateien oder Ordnern auf entfernten Servern ● Entwickelt.
Verteilte Anwendungen: J2EE
 Präsentation transkript:

Komponentenbasierter Taschenrechner mit CORBA Silke Kugelstadt Torsten Steinert

Inhalt Motivation Demonstration des Taschenrechners Grobarchitektur Implementierung des Clients Implementierung der Komponenten Entwurfsmuster Erweiterungsmöglichkeiten Vergleich mit anderen Komponentenframeworks Live Implementierung einer neuen Komponente

Demonstration Taschenrechner

Motivation Grundfunktionen Hinzufügen / Entfernen von Komponenten Mehrfachfaden (Multi-Threading) Verteilungstransparenz Einfache Bedienbarkeit Einfache Erweiterbarkeit

Anforderungsspezifikation Taschenrechner mit Grundfunktionen Hinzufügen von Funktionseinheiten zur Laufzeit Client / Server Architektur Taschenrechner als Client Jede Komponente als Server

Architektur

Client Arithmetische Ausrücke Eingabe einer Sequenz von Token Umwandlung in einen Ableitungsbaum Auswerten des Ableitungsbaumes

Client : Auswertung lokal

Client : Auswertung remote

Ableitungsbaum Beispiel : ((3 * 4) + (7 / 2))

Entwurfsmuster : Master – Worker 10 Worker Threads 1 Manager Thread Client : Parallelität Entwurfsmuster : Master – Worker 10 Worker Threads Unabhängige Auswertung einer Expression 1 Manager Thread Verteilt die auszuwertenden Expression auf die Worker Threads

Client : Parallelität 2 Master – Worker

Manager und Worker sind als Monitor implementiert Monitor Konzept Manager und Worker sind als Monitor implementiert Gegenseitig ausschließender Zugriff (mutual exclusion) Kapselt Status Zugriff nur über veröffentlichte Methoden

Komponenten stellen neue Funktionen zur Verfügung. 0 – Stellige (Konstanten) 1 – Stellige (z.B. sin) 2 – Stellige (z.B. x ^ y)

Komponenten : IDL module Calculator { interface Component { readonly attribute string description; readonly attribute unsigned long countFun0; readonly attribute unsigned long countFun1; readonly attribute unsigned long countFun2; string getNameFun0(in unsigned long index); string getNameFun1(in unsigned long index); string getNameFun2(in unsigned long index); double getValue0(in unsigned long index); double getValue1(in unsigned long index, in double p1); double getValue2(in unsigned long index, in double p1, in double p2); Component create(); };

Einschränkungen Funktionen mit mehr als 2 Parameter Einstellungen für Komponenten (z.B. rad -> deg bei Trigonometrischen Funktionen) Erweiterungen außerhalb des Funktionsparadigmas

Entwurfsmuster : Singleton

Nicht -Singleton

Verwendete Entwurfsmuster Beobachtermuster Model – View – Controller Singleton Factory Proxy Monitor Manager - Worker

Tests Modultests Integrationstests einzelne Module mit JUnit testen gesamte Anwendung mit einem GUI-Tester testen, z.B. Abbot Pounder Jemmy Module

Modultests mit JUnit Für jede zu testende Java Klasse eine Testklasse schreiben In jeder Testklasse mehrere Testfälle implementieren Tests regelmäßig automatisch ablaufen lassen

Integrationstests Wenn einzelne Module funktionieren, dann die gesamte Anwendung testen Dazu wird ein GUI Testtool benötigt Aus Zeitgründen noch nicht implementiert

Frameworkvergleich Von CORBA verwenden wir lediglich den transparenten, entfernten Objektaufruf und den Nameserver. DCOM, .NET etc bieten diese Funktionalität auch an Eine Entwicklung mit diesen anderen Frameworks ist also auch denkbar.

Parser Einschränkungen : Parameter  2 Erweiterungen Parser Einschränkungen : Parameter  2 Flyweight Muster bei großen Formeln Verwendung von POAs um u.a. folgende Dinge zu erreichen : Persistenz Automatisches starten von Komponenten

Literatur Gerald Brose et al : „Java Programming with CORBA“ Gamma et al „Entwurfsmuster“ Jeff Magee, Jeff Kramer : „Concurrency“ Schmidt et al : „Pattern – Oriented Software Architecture“ www.jacorb.org www.junit.org

Demonstration Programmierung einer Komponente

Grammatik E → E + T E → T T → T * F T → F F → (E) F → i