ATHOS Benutzertreffen 12.Oktober 2006 - 1 MATLAB-ATHOS Integration Glashütten, 12.Oktober 2006 HighQSoft GmbH, Hans-Joachim Bothe

Slides:



Advertisements
Ähnliche Präsentationen
Designing Software for Ease of Extension and Contraction
Advertisements

Matt Davis Technology Specialist
Systemverwaltung wie es Ihnen gefällt.
Objektorientierte Programmierung
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Testgetriebene Entwicklung
Java: Grundlagen der Sprache
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
DOM (Document Object Model)
ATHOS Benutzertreffen 2007
ATHOS Benutzertreffen 12. November Auswerteserver Glashütten, 12. November 2008 HighQSoft GmbH, Andreas Hofmann
ATHOS Benutzertreffen 12. November Report of the Lab Glashütten, 12. November 2008 HighQSoft GmbH, Karst Schaap
Zugriffschutz in ASAM ODS
ATHOS Benutzertreffen 16.Juni Report of the Lab. Glashütten, 16.Juni 2005 HighQSoft GmbH, Karst Schaap
ATHOS Benutzertreffen 27.September Report of the Lab Glashütten, 27.September 2007 HighQSoft GmbH, Karst Schaap
ASAM ODS Daten standardisiert auswerten
ATHOS Benutzertreffen 12. November Archivierung Glashütten, 12. November 2008 HighQSoft GmbH, Karst Schaap
ATHOS Benutzertreffen 12.November Diplom-Informatiker Christian Wildmoser -Sprachen: C, C++, Java, Assembler,... -Projekte: -MSR allgemein -Medizintechnik.
Treffen mit Siemens Siemens: Werner Ahrens Volkmar Morisse Projektgruppe: Ludger Lecke Christian Platta Florian Pepping Themen:
OC-Pro ermöglicht, ohne Installation zusätzlicher Software, die benutzerfreundliche Kalkulation von Netzhautdicke und Flächen intra-/subretinaler Flüssigkeitsansammlungen.
Access 2000 Datenbanken.
Installationsanleitung 1.02 Hausverwaltung.
Linux-HA-Cluster – Heartbeat mit DRBD
Einführung in Visual C++
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Bidirektionales VFX-XML-Interface für Daten-Import/Export Visual Extend Anwendertreffen 2009 Rainer Becker, Frank Kropp deutschsprachige FoxPro User Group.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
PHP Pakete und Beispiele Webengineering Robert Lemke.
Unattended Installation ITA-Services Projektziele Installation von Win2k Pro/Server über ein lokales Netzwerk Installation von Win2k Pro/Server.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Generelles POVs müssen immer lizenziert werden
Automatische Übersetzungen mit Google
Plattformunabhängige Programmiersprache
Erste Schritte zur Konfiguration
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
Delphi II - OOP IFB Fortbildung
Einführung in die Programmiersprache Java
Warum brauche ich ein CMS – Content Management System?
Aurich – Jonas Jacobi OSGi Tutorial Aurich – Jonas Jacobi Das OSGi Service Framework Dynamisches Modulsystem für Java Dynamische.
Dateien Datei = File (engl.) Mögliche Inhalte einer Datei
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Präsentation von Sonja Pathe
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
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.
Reasoner Semantische Interoperabilität
CGI (Common Gateway Interface)
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
EP Media Group SiteKist CMS Version 6.9. ©2014 EP Media Group Internet:
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
Learning By Doing WebStart Buch S.765 Verfahren, Java-Applikationen über das Internet an die Benützer zu verteilen. Die Java-Applikation wird auf dem.
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
integration beim Drucken
Aufzeichnung von Usability-Daten im www. Client-Side Log : automatisch (maschinell) generiertes Protokoll Client : Rechner mit dem Browser des Users Server:
Eine Entwicklungsumgebung für Free-Pascal Peter G. Poloczek, M5543
Zero Administration Kit für Microsoft® Windows® Jörg Kramer University Support Center.
Kommandozeile und Batch-Dateien Molekulare Phylogenetik – Praktikum
Vortrag: Frames & Javascript.
CMS Content-Management-Systeme (CMS), dienen der Verwaltung und Pflege von Dokumenten und Inhalten in Inter- und Intranetanwendungen. Den Entwickler oder.
Übung 2 - MdMT Methoden der Medizintechnik Übung zur Vorlesung Folge 2 – Basics Vom ersten Befehl zum Plot.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Datenbanken im Web 1.
Windows 2000 Advanced Server
Installationsanleitung Kumpan-electric_Controller Software und Treiber
Technische Universität München Praktikum Mobile Web Teil Kollaboratives Bewerten und Filtern am Touchscreen Robert Eigner
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
WS2016: Container von A bis Z
Eine Präsentation von Sandro Schluep und Leon Wink.
 Präsentation transkript:

ATHOS Benutzertreffen 12.Oktober MATLAB-ATHOS Integration Glashütten, 12.Oktober 2006 HighQSoft GmbH, Hans-Joachim Bothe /

MATLAB 12.Oktober MATLAB ist eine kommerzielle mathematische Software der Firma The MathWorks, Inc. zur Lösung diverser mathematischer Probleme und zur grafischen Darstellung der Ergebnisse. MATLAB ist für Berechnungen mit Matrizen ausgelegt, woher sich auch der Name ableitet: MATrix LABoratory. Programmiert wird MATLAB in einer proprietären, plattformunabhängigen Programmiersprache, die auf der jeweiligen Maschine (Computer) interpretiert wird. Kleinere Programme können als so genannte Scripts oder Funktionen zu atomaren Einheiten verpackt werden, was das Erstellen von anwendungsorientierten Werkzeugkisten (Toolboxes) erlaubt. Viele solcher Pakete sind auch kommerziell erhältlich.

MATLAB 12.Oktober Durch die vereinfachte, mathematisch orientierte Syntax der MATLAB- Skriptsprache und die umfangreichen Funktionsbibliotheken für Statistik, Signalverarbeitung, Bildverarbeitung u.v.m. ist die Erstellung entsprechender Programme wesentlich einfacher möglich als z.B. unter C. Es gibt Schnittstellen um C-Code einzubinden, sowie einen Übersetzer, mit dem aus einem Skript unabhängig von MATLAB lauffähiger C-Code erstellt werden kann. Damit können mathematisch aufwendige Module für C-Projekte in der MATLAB-Umgebung entwickelt und getestet werden. Aktuelle MATLAB Versionen werden außerdem mit einer Java Integration ausgeliefert. Eine Java Virtual Machine wird automatisch mit installiert. Java ist vollständig in die MATLAB Scriptsprache integriert.

ATHOS 12.Oktober ATHOS ist eine Implementierung des ASAM ODS Standards der HighQSoft GmbH. Der Kern des ATHOS Systems ist in der Programmiersprache C geschrieben. Das ATHOS System bietet das ASAM ODS API in verschiedenen Programmiersprachen an, wobei Java, C++, C und Tcl die am häufigsten benutzten Schnittstellen sind. Die CORBA Implementierung des ATHOS Server (Avalon) ist in der Programmiersprache Java geschrieben und nutzt den Kern des ATHOS Systems über das Java Native Interface (JNI).

Integrationsszenarien 12.Oktober Für eine Integration von MATLAB und ATHOS bieten sich sowohl die C Schnittstelle (odsapi.dll, odsapi.so) als auch die Java Schnittstelle (odsapijava.dll, odsapijava.so) an. Prinzipiell können beide Schnittstellen des ATHOS Systems ohne Änderungen verwendet werden. Bei der Verwendung der C Schnittstelle wird die Fähigkeit von MATLAB genutzt, beliebige Programmbibliotheken anzusprechen. Da das ASAM ODS API objektorientiert ausgelegt ist, führt jedoch die Benutzung einer nicht-objektorientierten Sprache wie C dazu, daß die Objektreferenzen und damit der Speicher selbst verwaltet werden muß.

MATLAB-ATHOS Integration 12.Oktober Java ist eine objektorientierte Programmiersprache, die vollständig in MATLAB integriert ist. Die ATHOS-Java Integration wird vom Avalon Server als Grundlage genutzt und ist daher eine der am Besten getesteten Komponenten des ATHOS Systems. Die Freigabe des verwendeten Speichers wird von der Garbage Collection der JAVA VM durchgeführt. Nicht mehr referenzierte Objekte werden dabei automatisch gelöscht. Vor diesem Löschvorgang wird ATHOS automatisch angewiesen, den Speicher dieser Objekte freizugeben. Aus den oben genannten Gründen erfolgt die MATLAB-ATHOS Integration über die Java Schnittstelle.

Getestete Software Versionen 12.Oktober Windows XP Home Edition 2002, Service Pack 1 und 2. MatLab (R14) Service Pack 3, August 02, MatLab (R2006a), Januar 27, ATHOS ab Version 3.3d, aktuelle Version 3.4e. Java JDK ab 1.4.2, aktuelle Version 1.5.0_06. Oracle ab 9.2, aktuelle Version 10g. ASAM ODS Spezifikation ab 5.0, aktuelle Version 5.1(.1)

MATLAB Programmbeispiel 12.Oktober function AsamOdsSimpleExample import com.highqsoft.ods.*; import com.highqsoft.ods.athos.*; aoService = aoServiceFactory.newService ('com.highqsoft.ods.athos.AoService', 'NameServiceHost=localhost,NameServicePort=900'); aoFactory = aoService.newFactory('ATF/DEMO','DEBUGLEVEL=0'); aoSession = aoFactory.newSession('USER=test, PASSWORD=test'); applStruct = aoSession.getApplicationStructure(); disp('Application Elements:'); applElems = applStruct.getElements('*'); for n = 1:size(applElems) disp([' ' char(applElems(n).getName())]); end aoSession.close();

Technische Durchführung 12.Oktober MATLAB installieren. ATHOS installieren. Java wird automatisch mit MATLAB installiert, wahlweise kann aber auch eine andere Java Installation verwendet werden. Installationsort der ATHOS Bibliotheken MATLAB bekannt geben. MATLAB starten. ASAM ODS API nutzen.

Classpath setzen 12.Oktober MatLab benötigt den Zugriff auf die Athos Implementierung sowie andere Bibliotheken, die verwendet werden sollen. Dazu sind die nachfolgend aufgeführten Eintragungen am Ende der MATLAB Datei toolbox\local\classpath.txt vorzunehmen. Wichtig sind die vollständigen und korrekten Pfadnamen. Eine dynamische Erweiterung der Suchpfade ist auch über die MatLab Funktion javaclasspath möglich, ist jedoch zur Laufzeit etwas langsamer. c:\Programme\HighQSoft\MatLabDemo\jar\HQAthosJava.jar c:\Programme\HighQSoft\MatLabDemo\jar\HQFramework.jar c:\Programme\HighQSoft\MatLabDemo\jar\AsamCommander.jar c:\Programme\HighQSoft\MatLabDemo\jar\HQAsamCommander.jar c:\Programme\HighQSoft\MatLabDemo\jar\HQP2D.jar c:\Programme\HighQSoft\MatLabDemo\jar\HQOdsx.jar c:\Programme\HighQSoft\MatLabDemo\jar\infobus.jar c:\Programme\HighQSoft\MatLabDemo\jar\jhall.jar

Librarypath setzen 12.Oktober Die folgende Zeile muss mit dem korrekten Pfadnamen am Ende der MATLAB Datei toolbox\local\librarypath.txt hinzugefügt werden, damit die MatLab-Java Integration die Athos Native Libraries findet: c:\Programme\HighQSoft\MatLabDemo\athos\bin\win32 Eine dynamische Erweiterung des Pfadnamens mittels "System.loadLibrary(libname) unter MatLab ist nicht möglich. Diese Funktion kommt einfach zu spät. Die Java VM macht beim Start eine Kopie der Pfade und kümmert sich um spätere Änderungen dieser Property nicht mehr.

MATLAB starten 12.Oktober Die Startdatei auf der nächsten Seite zeigt, welche Umgebungsvariable gesetzt sein müssen, damit die Schnittstelle funktioniert. Je nach Geschmack kann entweder diese Batchdatei an die aktuelle Installation angepaßt werden, oder die entsprechenden Umgebungsvariablen werden permanent gesetzt (Start -> Systemsteuerung -> System -> Erweitert -> Umgebungsvariable). Für den Betrieb der Schnittstelle ist es belanglos, ob die Variablen als Systemvariable oder als Benutzervariable eingetragen werden. Die PATH Variable muss den Pfad %ATHOS_ROOT%\bin\win32 enthalten, sonst findet die MatLab-Java Schnittstelle zwar über den Eintrag in librarypath.txt die Schnittstellen-DLL zu Athos (odsapijava.dll), nicht aber die Folgebibliotheken athos.dll, err.dll, usw. sowie sämtliche Treiber.

Startdatei Beispiel 12.Oktober REM ***** ATHOS Varaible setzen. set ATHOS_ROOT=C:\Programme\HighQSoft\MatLabDemo\athos set ATHOS_INI=%ATHOS_ROOT%\etc\athos.ini REM ***** Andere Java VM benutzen. set MATLAB_JAVA=c:\Programme\Java\jdk1.5.0_06\jre REM ***** Pfad auf DLLs setzen die odsapijava.dll nachlädt. set PATH=%ATHOS_ROOT%\bin\win32;%PATH% REM ***** MATLAB im Arbeitsverzeichnis starten. cd c:\Programme\MATLAB\R2006a\work MATLAB