1 / 13

ATHOS Benutzertreffen

ATHOS Benutzertreffen. MATLAB-ATHOS Integration Glashütten, 12.Oktober 2006 HighQSoft GmbH, Hans-Joachim Bothe hans.bothe@highqsoft.de www.highqsoft.de / www.highqsoft.com. 12.Oktober 2006 - 1. MATLAB.

ilandere
Télécharger la présentation

ATHOS Benutzertreffen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ATHOS Benutzertreffen MATLAB-ATHOS Integration Glashütten, 12.Oktober 2006 HighQSoft GmbH, Hans-Joachim Bothe hans.bothe@highqsoft.de www.highqsoft.de / www.highqsoft.com 12.Oktober 2006 - 1

  2. MATLAB • 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. 12.Oktober 2006 - 2

  3. MATLAB • 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. 12.Oktober 2006 - 3

  4. ATHOS • 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). 12.Oktober 2006 - 4

  5. Integrationsszenarien • 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ß. 12.Oktober 2006 - 5

  6. MATLAB-ATHOS Integration • 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. 12.Oktober 2006 - 6

  7. Getestete Software Versionen • Windows XP Home Edition 2002, Service Pack 1 und 2. • MatLab 7.1.0.246 (R14) Service Pack 3, August 02, 2005. • MatLab 7.2.0.232 (R2006a), Januar 27, 2006. • 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) 12.Oktober 2006 - 7

  8. MATLAB Programmbeispiel 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(); 12.Oktober 2006 - 8

  9. Technische Durchführung • 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. 12.Oktober 2006 - 9

  10. Classpath setzen • 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 12.Oktober 2006 - 10

  11. Librarypath setzen • 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.Oktober 2006 - 11

  12. MATLAB starten • 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. 12.Oktober 2006 - 12

  13. Startdatei Beispiel 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 12.Oktober 2006 - 13

More Related