Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "ATHOS Benutzertreffen 12.Oktober 2006 - 1 MATLAB-ATHOS Integration Glashütten, 12.Oktober 2006 HighQSoft GmbH, Hans-Joachim Bothe"—  Präsentation transkript:

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

2 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.

3 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.

4 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).

5 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ß.

6 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.

7 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)

8 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();

9 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.

10 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

11 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.

12 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.

13 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


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

Ähnliche Präsentationen


Google-Anzeigen