Zugriff auf Prozessdaten unter Java

Größe: px
Ab Seite anzeigen:

Download "Zugriff auf Prozessdaten unter Java"

Transkript

1 Zugriff auf Prozessdaten unter Java N. JAZDI Institut für Automatisierungs- und Softwaretechnik (IAS), Universität Stuttgart SUMMARY Java has gained increasing importance in the field of industrial automation for many different reasons. Compared to other programming languages, Java is easier to use and strictly object-oriented. It is also platform independent, meaning that this programming language can create programs that execute on various platforms. Due to this special feature, it is not possible to access direct process control within a java application, which, unfortunately, is a very important need in industrial automation. This paper descripes potential solutions to overcome this lack within Communications API (Application Programming Interface ) and JNI (Java Native Interface) technologies. 1 EINLEITUNG Der enorme Wettbewerbs- und Kostendruck in der gesamten Automatisierungstechnik fordert nachdrücklich neue Technologien, die der Welt der Globalisierung und des Internets gewachsen sind. Web-Technologien sind hierbei die richtige Lösung. Sie bieten viele Vorteile, die in der Welt der Automatisierungstechnik unbedingt gebraucht werden, um mit den ständig wachsenden Anforderungen Schritt halten zu können. Der weltweite Zugriff auf Prozessdaten, die Ferndiagnosen und die Fernwartung über das Internet und die Beibehaltung bestehender Software sind einige dieser Vorteile. Sie bieten einen effektiveren Informationsaustausch und tragen zur Senkung der Kosten bei. und die Fernbedienung bzw. Fernsteuerung der Automatisierungssysteme soll dabei über eine Internet- Architektur geschehen. Die verschiedenen Komponenten, die zur Realisierung dieses Konzeptes notwendig sind, wie z.b. die Kommunikations- oder die Prozessvisualisierungskomponente, würden in individuell gestaltete Web-Seiten integriert. Bild 1 zeigt die Architektur des Konzeptes. Browser Mit Hilfe der Web-Technologien ist es möglich, verschiedene Haushaltsgeräte zu vernetzen und sie über einen PC zu bedienen bzw. zu überwachen. Sollte ein Gerät, wie z.b. die Waschmaschine defekt sein, reicht es aus, dass die Reparaturfirma über ein Netz die Verbindung zu dem defekten Gerät aufnimmt, um eine Ferndiagnose zu stellen. Grundsätzlich wäre es denkbar, dass sogar Teile der möglichen Softwarefehler über das Netz zu beheben sind (Fernwartung) bzw. dass nach der Feststellung der Hardwarefehler die Wartungskosten enorm sinken könnten. Prozessautomatisierungssystem Datenbankanbindung Internet/Intranet Das Institut für Automatisierungs- und Softwaretechnik der Universität Stuttgart hat eine Forschungsinitiative mit den Firmen Adstec [1] und aims GmbH [2] begonnen, um diesem Ziel einen Schritt näher zu kommen. Das Ziel des Forschungsvorhabens ist eine plattformübergreifende und herstellerunabhängige Lösung zur Überwachung und Steuerung komplexer technischer Prozesse über das Internet bzw. Intranet zu realisieren. Die Prozessüberwachung räumlich getrennter Anlagen Technischer Prozess Bild 1: Überwachung und Steuerung komplexer technischer Prozesse über das Internet bzw. Intranet Der Bediener (Client-Seite) baut eine Verbindung zum technischen Prozess über ein Netz (z.b. Internet/Intranet) via Browser auf. Auf der Server-Seite übernimmt die Systemverwaltungskomponente die zentrale Aufgabe der Steuerung und Koordinierung aller

2 Abläufe, wie die Datenbankanbindungen, die Erstellung statischer bzw. dynamischer HTML-Anteile oder die Prozessankopplung. Die Prozessankopplung ist eine sehr komplexe Aufgabe, da die Prozessdaten zum Teil unter Echtzeitanforderungen gelesen bzw. geschrieben werden müssen. Zur Prozessankopplung sollen in der Forschungsinitiative unter anderem die Einsatzmöglichkeiten von Java untersucht und falls möglich eingesetzt werden. Java repräsentiert derzeit die wohl attraktivste Möglichkeit für den plattformunabhängigen Austausch von Applikationen im Internet. Java bietet die Möglichkeit, dass der Benutzer auf der Client-Seite interaktiv mit der Java- Applikation kommuniziert. In diesem Beitrag soll versucht werden, den Zugriff auf Prozessdaten unter Java zu erläutern. Nach einer allgemeinen Beschreibung der Sprache Java werden zwei zentrale Möglichkeiten eines Zugriffs auf Prozessdaten unter Java durch den Einsatz von Communications API und JNI-Technologien, beschrieben. 2 JAVA Sun Microsystems hat Java wie folgt definiert: Java ist eine einfache, objektorientierte, verteilte, interpretierte, robuste, sichere, portable, multithread-fähige und dynamische Sprache [3]. Java ist eine objektorientierte Programmiersprache, die an C++ angelehnt ist und einige Elemente von Smalltalk übernommen hat. Dazu zählen beispielsweise Bytecode oder Garbage collection (automatische Speicherverwaltung) [4]. Java ist nicht nur eine Sprache, sondern bildet mit dem Objektformat Java-Bytecode und der Java virtuellen Maschine (JVM) eine vollständige Systemplattform. Damit werden komplette Entwicklungssysteme bis hin zum inkrementellen Fern -Laden von Modulen als Ganzes direkt nutzbar bzw. austauschbar. Portierungsprobleme, wie sie allein schon durch den Übergang von einem Compiler auf einen anderen entstehen, tauchen nicht mehr auf. Um dies zu gewährleisten, wurde auf ein bewährtes Prinzip zurückgegriffen: Es wird eine virtuelle Maschine definiert, für die auf den heute üblichen Hardwareplattformen effiziente Interpreter implementiert werden können. Java-Programme werden mit einem Compiler in den sog. Bytecode für die Java virtuelle Maschine übersetzt. Java ist vollständig objektorientiert aufgebaut. Es ähnelt in weiten Zügen C++, verzichtet jedoch auf dessen prozeduralen Hintergrund. Java ermöglicht, die Vorteile der objektorientierten Methodologie und ihre Fähigkeiten des Entwickelns flexibler modularer Programme sowie die Mehrfachverwendung des Codes voll auszuschöpfen. Java- Quellcode Java Compiler Java- Bytecode Bild 2: Java Entwicklungsumgebung Ein Java Bytecode besteht aus Anweisungen für die JVM. Dies bedeutet, dass diese Anweisungen nicht für ein spezifisches System ausgelegt sind, sondern auf jeder Plattform unter jedem Betriebssystem lauffähig sind, so lange ein Java-Interpreter verfügbar ist. Diese Möglichkeit der Verfügbarkeit einer einzelnen Binärdatei, die auf beliebigen Plattformen ausführbar ist, spielt im Zusammenhang mit Applets (Java Anwendungen, die in einer Web-Seite ausgeführt werden können) die entscheidende Rolle, weil das World Wide Web selbst plattformunabhängig ist. Ebenso wie HTML- Dateien auf jeder Plattform gelesen werden können, lassen sich Applets auf jeder javafähigen Browser-Plattform ausführen. Während jede zugrundeliegende Plattform ihre eigene Implementierung der JVM hat, gilt jeweils dieselbe Spezifikation. Aufgrund dieses Umstandes kann die Java-Plattform eine Standard- und eine konstante Programmierungsschnittstelle zu den Applets und den Anwendungen auf jeder möglichen Hardware zur Verfügung stellen. Folglich ist die Java-Plattform für das Internet ideal, da ein Programm auf jedem Computer in der Welt lauffähig sein soll. Java Interpreter Java Bytecode lokal oder via Netz Class Loader Laufzeitsystem Betriebssystem Hardware Just-In-Time Compiler Bild 3: Java Laufzeitumgebung Java Klassen- Bibliothek JVM Ein weiteres Merkmal von Java ist das Multithreading. Es erlaubt einem Programm, mehrere Programmteile gleichzeitig ablaufen zu lassen. Die Standardbibliothek von Java bietet bereits Klassen, mit denen verteilte Anwendungen auf der Basis von

3 TCP/IP einfach realisiert werden können. Die Java Remote Method Invocation (RMI) ermöglicht es auf sehr einfache Weise, Client-Server-Applikationen zu erstellen [5]. RMI ist eine Schnittstelle für verteilte Java Objekte. Sie ist in drei Schichten aufgeteilt. Die oberste, die Stub- Skeleton Schicht, ist für die Verwaltung der verteilten Objekte zuständig, die Remote Reference Schicht für die Kommunikation zwischen Client/Server und der JVM und schließlich die Transportschicht für die eigentliche Netzwerkfunktionalität. Die Netzwerkanbindung basiert auf dem TCP/IP Protokoll. RMI Client Stubs Remote Reference Transport Virtuelle Verbindung Netzwerkverbindung Bild 4: Die RMI Architektur RMI Server Skeleton Remote Reference Transport Der Verzicht auf Pointer leistet den größten Beitrag zur Vereinfachung der Programmiersprache, ohne dass dafür die Leistung gemindert wurde. Statistiken haben aufgezeigt, dass ein großer Teil von Fehlern in C/C++- Programmen auf Fehler bei der Pointer-Verarbeitung zurückzuführen sind. Der Verzicht der Java-Entwickler auf Operator-Overloading, multiple Vererbung und die Einschränkung der automatischen Typumwandlung tragen ebenfalls zu einer höheren Verlässlichkeit der Java-Programme bei. 3 ZUGRIFF AUF HARDWARE UNTER JAVA Java bietet keine Möglichkeit zum direkten Zugriff auf Systemressourcen. Solch ein Zugriff würde das Plattformunabhängigkeitsprinzip von Java verletzen, da z.b. die Schnittstellen plattformabhängig sind. Der Zugriff auf Netzwerkdaten ist dagegen möglich, falls der Webserver und die Applikation auf dem gleichen Rechner laufen. Hierzu ist jedoch ein Zugriff auf Prozessdaten explizit zu erlauben. Java bietet zwei Möglichkeiten, um auf die Systemressourcen zuzugreifen: Das Java Communications API (Application Programming Interface) und das Java Native Interface (JNI). Im Folgenden sollen beide Methoden kurz beschrieben werden. 3.1 Java Communications API Das Java Communications API, das als Standarderweiterung für die Java Plattform gilt, kann verwendet werden, um plattformunabhängige Kommunikationsanwendungen für Technologien wie Sprachpost (voice mail), Telefax und Smart Cards zu schreiben. Diese Communications API enthält einige beispielhafte Anwendungen, mit denen sich die Funktionalität der Ports überprüfen läßt. Das Communications API enthält Unterstützung für serielle Schnittstellen RS232 und IEEE 1284 parallele Ports. Das Java Communications Extension API besteht aus Klassen auf drei Ebenen, aus: Hochstufenklassen (high-level) wie CommPortIdentifier und CommPort, die den Zugriff und Besitz der Kommunikationsports verwalten, den Niedrigstufenklassen (low-level) wie SerialPort und ParallelPort, die eine Schnittstelle zu den physikalischen Kommunikationsports zur Verfügung stellen, wobei die aktuelle Freigabe der Java Kommunikation Extension API Zugriffe auf die seriellen (RS-232) und parallelen (IEEE 1284) Ports ermöglicht, und den Treiberstufenklassen (driver-level), die eine Schnittstelle zwischen den niedrigen Klassen und dem zugrundeliegenden Betriebssystem liefern. Treiberstufenklassen sind ein Teil der Implementierung, aber nicht Teil des Java Communications Extension API. Sie sollten nicht vom Programmierer in Anwendungen benutzt werden. Für den Einsatz von Java Communications API muss das Javax.comm-Paket in das Programm eingebunden werden. Dadurch wird es möglich, die Methoden dieses Paketes zu verwenden. Nachfolgend sollen die wichtigsten Dienste, die das Communications API zur Verfügung stellt, kurz beschrieben werden. Javax.comm Erweiterungspaket Das javax.comm-paket liefert die folgenden Grunddienste: Die Aufzählung der vorhandenen Ports auf dem System. Diese statische Methode CommPortIdentifier.getPortIdentifiers bringt ein Aufzählungsobjekt zurück, das ein CommPortIdentifier Objekt für jeden vorhandenen Port enthält. Dieses Comm- PortIdentifier Objekt ist die zentrale Einheit für die Zugriffssteuerung zu einem Kommunikationsport. Das Öffnen und die Inanspruchnahme des Kommunikationsports, indem man die Hochstu-fenmethoden in seinem CommPortIdentifier Objekt verwendet. Die Inanspruchnahme der Portbesitzabsicht zwischen mehrfachen Java-Anwendungen. Ereig-

4 nisse werden fortgepflanzt, um interessierte Anwendungen zu benachrichtigen und dem Inhaber des Ports zu erlauben, Besitz abzutreten. Port- InUseException wird benutzt, wenn eine Anwendung den Port nicht öffnen kann. Niedere Klassen wie SerialPort und ParallelPort haben Methoden für die Verwaltung der I/O auf dem Kommunikationsport. Die Steuerung kommuniziert mit der Maschine über eine serielle Schnittstelle (RS232) ohne ein spezielles Protokoll. Zur Kommunikation mit der seriellen Schnittstelle wird das Communication API von Sun verwendet. Bild 5 zeigt die Systemarchitektur, die die Komponenten des Systems und deren Kommunikation graphisch darstellt. Das Empfangen von Ereignissen, die dem Kommunikationsport Zustandsänderungen beschreiben, wenn z.b. eine serielle Schnittstelle eine Zustandsänderung für Carrier Detect, Ring Indicator, DTR, etc. hat, ermittelt SerialPort Objekt ein SerialPortEvent, das die Zustandsänderung beschreibt. Applikation Auftragsannahme Auftragsbearbeitung Maschineneinstellung Im Folgenden werden zwei wichtige Bestandteile des Pakets näher beschrieben. ParallelPort (paralleler Kommunikationsport) Layoutdarstellung Auftragsverwaltung Maschinen -steuerung (Ser. Prot) Markierungsmaschine ParallelPort beschreibt die hardwarenahe Schnittstelle zu einem parallelen Kommunikationsport, die durch das Betriebssystem zur Verfügung gestellt wird. ParallelPort definiert die minimale angeforderte Funktionalität für die parallelen Kommunikationsports. SerialPort (RS-232 serieller Kommunikationsport) SerialPort beschreibt die hardwarenahe Schnittstelle zu einem seriellen Kommunikationsport, der durch das Betriebssystem zur Verfügung gestellt wird. SerialPort repräsentiert die minimal geforderte Funktionalität für die seriellen Kommunikationsports. Um die Einsatzmöglichkeiten von Communications API näher zu untersuchen, wurden bzw. werden verschiedene Projekte am IAS durchgeführt. Nachfolgend soll eine Fallstudie, bei der unter dem Einsatz von Communications API auf die Hardware zugegriffen wurde, kurz umrissen werden Fallstudie: Nadelpräger Am IAS wird versucht, ein objektorientiertes Framework zu entwickeln, das sich auf die Steuerung von Markiermaschinen und die Verwaltung von Markieraufträgen konzentriert. Unter Zuhilfenahme dieses Frameworks soll eine konkrete Applikation für den am IAS vorhandenen Modellprozess Nadelpräger entstehen. Die Fallstudie umfasst unter anderem folgende Anforderungen: Eine Berücksichtigung verschiedener Markierungstechnologien und Anlagekonfigurationen steht im Vordergrund. Die konkrete Applikation wurde jedoch für den Nadelpräger erstellt. Die zu markierende Spezifikation (Layoutdaten) kann als Textdatei oder in einer relationalen Datenbank abgelegt sein. Die Applikation verwendet eine Datei. Bild 5: Systemarchitektur der Nadelpräger Die Architektur des Systems wird in fünf Komponenten aufgeteilt, wobei die Komponente Markierungsmaschine der Hardware entspricht. Die drei Komponenten Layoutdarstellung, Auftragsverwaltung und Maschinensteuerung bilden das Framework. Zusammen mit der Komponente Applikation entsteht das Softwaresystem, zusammen mit der Komponente Markierungsmaschine schließlich das gesamte System. Die Komponente Applikation steuert den Programmablauf, insbesondere aber die Interaktion der Applikation mit dem Anwender. Die Layout-Komponente ist für die Erstellung der Layoutdateien aus den Textdateien zuständig. Die Verwaltung aller Aufträge (zugeordnet nach Prioritäten) wird von der Auftragsverwaltung-Komponente gesteuert. Zur Ansteuerung des Nadelprägers ist die Maschinensteuerung-Komponente zuständig. Sie erfolgt über eine serielle Schnittstelle. Die Steuerung gibt dem Nadelpräger Befehle und empfängt im Gegenzug Statusmeldungen. Zur Kommunikation mit dem Nadelpräger über die serielle Schnittstelle, wurde das Communications API eingesetzt. Hierzu diente die Klasse SerialPort. Mit Hilfe der Methoden dieser Klasse ist eine Kommunikation mit der Schnittstelle von der Java-Applikation aus möglich. Über diese Schnittstelle werden schließlich die ASCII-Dateien gesendet und empfangen. 3.2 Java Native Interface (JNI) Das Konzept der virtuellen Maschine (Plattformunabhängigkeit) erlaubt, wie schon erwähnt, keine hardwarespezifischen bzw. systemnahen Zugriffe. Auch bei ge-

5 wissen zeitkritischen Anwendungen ist eine Lösung in reinem Java nicht immer möglich. Das Java Native Interface (JNI) ist aber eine Möglichkeit, um die nativen Codes, die in C oder C++ implementiert sind, in eine Java Anwendung einzubinden. Allerdings ist zu beachten, dass Java Applikationen, die native Methoden einsetzen, nicht mehr plattformunabhängig sind. Im Folgenden soll mit Hilfe einer Java Applikation, die eine native Methode enthält, das Konzept des JNI erläutert werden. Die native Methode soll die Message- Box() Funktion des Windows 32 API sein, die eine graphische Dialogbox ausgibt. Zunächst wird ein Java Programm, in dem die native Methode deklariert ist, geschrieben: Aufruf einer nativen Methode class Beipiel_JNI { public static void main (String [] args) { Beipiel_JNI app = new Beipiel_JNI (); app.showmessage ("Die native Methode wurde aufgerufen!"); private native void ShowMessage (String msg); static { System.loadLibrary ("MsgImpl"); Der static Block in der Deklaration ruft die Methode System.loadLibrary auf. Diese Methode lädt ein DLL in den Speicher und verlinkt es. Der Pfad zu diesem DLL muss dabei entweder in die Systemumgebung eingetragen sein oder das DLL muss im gleichen Verzeichnis wie das Java Class File gespeichert werden. Javah: Headerfile Generator für das Einbinden von C/C++-Code Zunächst wird die Beispiel_JNI.java Klasse mit javac kompiliert. Hierzu wird zuerst in das Verzeichnis, in dem der Quellcode gspeichert ist, gewechselt und anschließend mit javac Beipiel_JNI.java kompiliert. Anschließend wird das Werkzeug javah verwendet, um ein Headerfile von der Klasse Beipiel_JNI zu erstellen. Hierzu wird der Befehl javah -jni Beipiel_JNI verwendet. Javah liest den Java-Quellcode und generiert für jede Deklaration einer nativen Methode eine prototypische Funktion in ein C- oder C++-Headerfile. Im Folgenden ist das generierte Headerfile zu sehen: /* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class Beipiel_JNI */ /* * Class: Beipiel_JNI * Method: ShowMessage * Signature: (Ljava/lang/String;)V */ JNIEXPORT void JNICALL Java_ Beipiel_JNI _ShowMessage (JNIEnv *, jobject, jstring); #ifdef cplusplus #endif #endif Die Präprozessor Anweisung #ifdef cplusplus besagt, dass dieses File sowohl mit einem C- als auch mit einem C++-Compiler kompiliert werden kann. JNIEnv jobject und jstring sind Datentypdefinitionen von JNI. Der letzte Schritt ist das Schreiben eines C- oder C++- Quellcodes. Dieser verweist auf das Headerfile, welches von Javah generiert wurde. Im vorliegenden Beispiel wäre dies Beipiel_JNI.h. Nachfolgend wird der C++- Code, der eine Dialogbox aufruft, dargestellt: #include <windows.h> #include " Beipiel_JNI.h" BOOL APIENTRY DllMain(HANDLE hmodule, DWORD dwreason, void** lpreserved) { return TRUE; JNIEXPORT void JNICALL Java_ Beipiel_JNI _ShowMessage(JNIEnv * jenv, jobject thisx, jstring jmsg) { const char *msg; msg = jenv ->GetStringUTFChars(jMsg,0); MessageBox(HWND_DESKTOP, msg, "Java Native Interface, JNI", MB_OK MB_ICONEXCLAMATION); jenv ->ReleaseStringUTFChars(jMsg,msg); Der Code wird kompiliert und daraus eine DLL generiert. Dieser Teil ist plattformabhängig. Das generierte DLL-File heißt in diesem Beispiel MsgImpl.dll. Die Java-Applikation ruft nun beim Ausführen die angegebene native Methode auf Wie das oben beschriebene Beispiel zeigt, bietet Java eine überschaubare Methode für den Zugriff auf Hardware mittels JNI-Technik. Dies bedeutet, dass auch die vorhandenen Treiber Funktionen, die in C oder C++ vorliegen, von einer Java Applikation aus aufrufbar sind. Zur Veranschaulichung des oben beschriebenen Konzeptes soll eine Möglichkeit der praktischen Umsetzung, nämlich die Fernbedienung eines Kaffeeautomaten unter dem Einsatz von JNI kurz dargestellt werden. #ifndef _Included_ Beipiel_JNI #define _Included_ Beipiel_JNI #ifdef cplusplus extern "C" { #endif

6 3.2.1 Fallstudie: Einsatz von JNI bei der Fernsteuerung eines industriellen Kaffeeautomaten Am IAS wurde im Rahmen eines Pilotprojektes ein Konzept realisiert, das die Ansteuerung eines am IAS vorhandenen industriellen Kaffeeautomaten mit Hilfe eines Web-Browsers von einem beliebigen Ort aus ermöglicht. Die durch die Messfühler erfassten Zustände der Steuerelemente und Ventile des Kaffeeautomaten sowie die verschiedenen Temperaturen werden als Sensorsignale durch das Java-Programm abgefangen und ausgewertet. Die Wünsche des Anwenders werden durch das Programm an die entsprechenden Aktoren weitergegeben. Die Implementierung erfolgte auf einer Windows-NT-Plattform. Bild 6 zeigt die Systemarchitektur zu diesem Projekt. der Komponente IO-Schnittstelle und ihrer Teilkomponenten wieder. Datenweitergabe Fehlerdaten Steuerbefehle Statusdaten Aktordaten Timer Bild 7: Aufbau der Komponente IO-Schnittstelle TimerEvent Datenvergleich Datenerfassung Systemzustand Sensorwert e Sensordaten Client Server Hardware Anwender Applet RMI Anwendung JNI IO-Treiber Kaffeeautomat Die Komponente Datenerfassung enthält Methoden, die über das JNI alle Sensorwerte und Temperaturdaten erfassen. Zudem wandelt sie die rohen analogen Werte in dimensionsbehaftete Werte um. Die Komponente Datenvergleich fragt beim Eintreffen einer Nachricht von der Komponente Timer mittels der Datenerfassung alle Sensoren ab und vergleicht den neuen Zustand mit dem in den Klassen der einzelnen Sensoren festgehaltenen Werte. Die Komponente Timer erzeugt periodisch eine Nachricht (Event), die die Komponente Datenvergleich veranlasst, die Sensordaten erneut von der Komponente Datenerfassung anzufordern. Die Komponente Datenweitergabe beinhaltet Methoden zur Ansteuerung der Aktoren über das JNI. Dafür erhält sie von der Komponente Steuerung der Anwendung die entsprechenden Befehle und gibt diese, JNI-mäßig aufbereitet, an die Aktoren weiter. Eventuelle Fehlermeldungen werden an die Komponente Steuerung weitergereicht. Bild 6: Die Systemarchitektur Die Applikation besteht aus zwei Teilen: Einer Java- Anwendung, die auf dem Prozessrechner - der gleichzeitig auch der Web-Server ist - läuft und einem Java- Applet, das von diesem Server auf den jeweiligen Client geladen und dort in einem Browser ausgeführt wird. Beide Teilanwendungen kommunizieren miteinander über Remote Method Invocation (RMI). Der Aufruf der nativen Methoden (in diesem Fall Aufruf der DLL's von den IO-Karten) wurde gemäß des Verfahrens, das im vorherigen Abschnitt beschrieben wurde, realisiert. Hiermit wurde ein direkter Zugriff von einer Java-Anwendung aus auf die Hardware realisiert. Das Ergebnis ist die Fernsteuerung des Kaffeeautomaten von jedem beliebigen Rechner über das Internet. Bild 8 zeigt die Bedienungsoberfläche des Applets. Das Applet dient zur Interaktion mit dem Anwender und zur Zustandsausgabe des Systems. Die Anwendung auf dem Server besteht aus drei Teilkomponenten, der Kaffeesteuerung, der RMIServerSteuerung und der Fehlerbehandlung. Sie dient der Verarbeitung der Anwenderwünsche und ihrer Umsetzung in Befehle für die Aktoren. Die Komponente Kaffeesteuerung beinhaltet unter anderem die Komponente IO-Schnittstelle, die als Verbindung zwischen der Anwendung und dem Java Native Interface (JNI) dient. Sie ist für die Kommunikation mit der Hardware zuständig und wird dafür in die vier Teilkomponenten Datenerfassung, Datenvergleich, Datenweitergabe und Timer unterteilt. Bild 7 gibt den Aufbau Bild 8: Das Applet zur Fernbedienung des Kaffeeautomaten

7 3.3 Vergleich zwischen Communications API und JNI Das Communications API bietet viele Methoden, mit deren Hilfe ein Zugriff auf Systemressourcen (über serielle Schnittstellen RS232 oder IEEE 1284 parallele Schnittstellen) unter Java möglich wird. Dies setzt auf das JNI-Konzept, bietet jedoch nur die Möglichkeit über serielle- oder parallele Schnittstellen auf die Hardware zuzugreifen. Um das Communications API zu verwenden, muss das Javax.comm-Paket in das Java-Programm eingebunden werden. Das Javax.com-Paket ist plattformabhängig,, wobei es nicht für alle Plattformen vorhanden ist. Die API's werden weiter entwickelt und bieten somit immer mehr Möglichkeiten für den Zugriff auf Prozessdaten. Der größte Nachteil ist die Einschränkung der Ports und das fehlende API für alle Plattformen. Das JNI Konzept bietet eine sehr überschaubare Möglichkeit für den Zugriff auf Systemressourcen unter Java. Es ist eine übergreifende Technologie im Gegensatz zu Communications API. Das Konzept gilt für alle Plattformen und es ist möglich, die Java-Aufrufe von C/C++ Applikationen aus durchzuführen. Als Fazit ist festzuhalten, wenn eine Möglichkeit besteht, auf die Systemressourcen über die serielle- oder parallele Schnittstelle zuzugreifen und für die einzusetzende Plattform das Communications API vorhanden ist, auf diese Möglichkeit zugegriffen werden sollte. Falls diese Möglichkeit allerdings nicht besteht, sollte das JNI-Konzept eingesetzt werden. 4 ZUSAMMENFASSUNG Java ist eine an C++ angelehnte, objektorientierte Programmiersprache. Java hat sich für interaktive Web- Applikationen durchgesetzt. Im Bereich der Automatisierungstechnik gewinnt Java immer mehr an Bedeutung. Dies hat verschiedene Gründe. Zum einen ist Java im Vergleich zu anderen Sprachen einfacher und streng objektorientiert. Zum anderen ist Java plattformunabhängig. Dies bedeutet, dass Java Programme auf allen Zielplattformen, auf denen eine JVM installiert ist, laufen. Für direkte Zugriffe auf die Hardware bietet Java verschiedene Möglichkeiten. Hier sind das API und das JNI Konzept zu nennen, wobei das Communications API auch auf das JNI-Konzept zugreift. Das Java Communications API, das als Standard-Erweiterung für die Java Plattform gilt, kann verwendet werden, um plattformunabhängige Kommunikationsanwendungen für Technologien wie Sprachpost (voice mail), Telefax und Smart Cards zu schreiben. Die Kommunikation erfolgt jedoch über serielle- oder parallele Schnittstellen. Das Konzept von Java Native Interface (JNI) bietet eine Möglichkeit, um die nativen Codes, die in C oder C++ implementiert sind in eine Java Anwendung einzubinden. Hierbei ist zu beachten, dass Java Applikationen, die native Methoden einsetzen, nicht mehr plattformunabhängig sind. Für die Portierung auf eine andere Plattform genügt es jedoch, die native Methode auf einer neuen Hardware zu implementieren. 5 LITERATUR [1] [2] [3] e/jni/index.html [4] Klimas, E. J., Skublics, S., Thomas, D. A.: Smalltalk With Style. Prentice Hall (1995) [5] Arnold, K., Gosling, J.: The Java Programming Language (second edition). Addison- Wesley, Reading, Mass (1998) [6] Chang, Dan; Harkey, Dan: Client/Server Data Access with Java and XML, WILEY & SONS, (1998) [7] Flanagan, D.:Java in a nutshell: a desktop quick reference for Java Programmers. O'Reilly & Associates Inc. (1997) [8] Lauber, R., Göhner, P.: Prozessautomatisierung 1 (3. Auflage). Springer-Verlag, (1999) [9] Liang, Sheng: Java Native Interface: Programmer's Guide and Spezification, Addison- Wesley, Amsterdam (1998) [10] Nilsen, K.: Adding Real-Time Capabilities to Java. Communication of the ACM, vol. 41 No. 6, (1998) Java lässt keinen direkten Zugriff auf Systemressourcen zu, da z.b. Schnittstellen systemabhängig sind. Ein direkter Zugriff auf Netzwerkdaten ist jedoch möglich, wenn der Daten-Server gleichzeitig der Web-Server ist.

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen 4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen Highlights: objektorientierte Sprache Plattformunabhängigkeit bei Hardware und Betriebssystem optimale Einbindung im Internet und Intranet

Mehr

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1 Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

Netzwerk Technologien in LabVIEW

Netzwerk Technologien in LabVIEW Netzwerk Technologien in LabVIEW von Dirk Wieprecht NI Germany Hier sind wir: Agenda Agenda Bedeutung des Ethernet für die Messtechnik Ethernet-basierende Technologien in LabVIEW Low Level- TCP/IP Objekt

Mehr

Datenbank-basierte Webserver

Datenbank-basierte Webserver Datenbank-basierte Webserver Datenbank-Funktion steht im Vordergrund Web-Schnittstelle für Eingabe, Wartung oder Ausgabe von Daten Datenbank läuft im Hintergrund und liefert Daten für bestimmte Seiten

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Programmierung. Programme, Compiler, virtuelle Maschinen, Java Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Kurzanleitung zu XML2DB

Kurzanleitung zu XML2DB Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan

Mehr

Java TV. Seminar Medientechnik. Kristin Doppler 23.06.2003. Übersicht. Einleitung Umgebungen Java TV API - Kategorien. Service- und Selektions-APIs

Java TV. Seminar Medientechnik. Kristin Doppler 23.06.2003. Übersicht. Einleitung Umgebungen Java TV API - Kategorien. Service- und Selektions-APIs Java TV Seminar Medientechnik 23.06.2003 Übersicht Einleitung Umgebungen Java TV API - Kategorien Service- und Selektions-APIs Definitionen Packages Service Selection API Application Lifecycle APIs (Xlets)

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Java Applet Alternativen

Java Applet Alternativen White Paper Java Applet Alternativen Version 1.0, 21.01.2014 Tobias Kellner tobias.kellner@egiz.gv.at Zusammenfassung: Aufgrund diverser Meldungen über Sicherheitslücken in Java haben in letzter Zeit Browser-Hersteller

Mehr

Remote Communications

Remote Communications HELP.BCFESDEI Release 4.6C SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher

Mehr

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 21. Oktober 2015 Entstehung von Java 1991 entwickeln Mike Sheridan, James

Mehr

1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien. Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten

Mehr

Java Schulung. Objektorientierte Programmierung in Java. Prof. Dr. Nikolaus Wulff

Java Schulung. Objektorientierte Programmierung in Java. Prof. Dr. Nikolaus Wulff Java Schulung Objektorientierte Programmierung in Java Prof. Dr. Nikolaus Wulff Was ist Java? Java ist eine einfache, objektorientierte, verteilte, interpretierte, robuste, sichere, architekturneutrale,

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

Einführung in JAVA. Viele Höhen und Tiefen Java war schon einmal nahezu tot. Heute extrem weit verbreitet vom Supercomputer bis hin zum Handy.

Einführung in JAVA. Viele Höhen und Tiefen Java war schon einmal nahezu tot. Heute extrem weit verbreitet vom Supercomputer bis hin zum Handy. Small History Machine Virtual Machine (VM) Komponenten der VM Entwicklungswerkzeuge JDK Woher bekommt man JDK Wie installiert man JDK Wie benutzt man JDK Entwicklungsumgebungen Java 23. May 1995: John

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, M Löberbauer 1 Vortragende Dipl.-Ing. Markus Löberbauer (G1) Dr. Herbert Praehofer (G2 u. G3) Institute for System Software

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

Java 2, Enterprise Edition Einführung und Überblick

Java 2, Enterprise Edition Einführung und Überblick Universität aiserslautern AG Datenbanken und Informationssysteme Seminar Datenbank-Aspekte des E-Commerce Java 2, Enterprise Edition Einführung und Überblick m_husema@informatik.uni-kl.de Vortragsinhalte

Mehr

Softwarelabor 1. Einführung

Softwarelabor 1. Einführung Softwarelabor 1. Einführung Prof. Dr. holger.vogelsang@fh-karlsruhe.de Inhalt Inhalt 1. Einführung Warum Java? Marktanforderungen Geschichte von Java Eigenschaften von Java Einführung in Eclipse Kleine

Mehr

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall

Mehr

Applications Applets (eingeschränkte Rechte)

Applications Applets (eingeschränkte Rechte) 1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,

Mehr

Java Native Interface

Java Native Interface Java Native Interface Eine Einführung Cornelius Zühl czueh001@student.informatik.fh-wiesbaden.de 01.03.2010 Inhaltsverzeichnis 1. Einführung... 3 2. Was ist JNI?... 3 3. JNI, was habe ich damit zu tun?...

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, R. Wolfinger 1 Vortragende Dr. Herbert Praehofer (G1 u. G2) Mag. Reinhard Wolfinger (G3 u. G4) Institute for System Software

Mehr

4. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

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

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 02 Java was, wann, warum, wieso Java, eine objektorientierte Programmiersprache Java ist eine objektorientierte Programmiersprache und als solche ein eingetragenes Warenzeichen der Firma Sun Microsystems.

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files 7 Assemblies 8 Virtual Execution System VES Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files Teil der CLR Class Loader Metadaten (Manifest) zur Selbstbeschreibung

Mehr

JPC Visualisierung in Java

JPC Visualisierung in Java Visualisierung in Java Ihr Partner für f r Embedded Systeme! Hauptsitz: Niederwangen (Bern), Schweiz Niederlassungen: Winterthur (Zürich) und Basel, Schweiz Sales Office: München, Deutschland NetModule

Mehr

Multiuser Client/Server Systeme

Multiuser Client/Server Systeme Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle

Mehr

Programmieren lernen mit Groovy Allgemeines Programme und ihre Ausführung

Programmieren lernen mit Groovy Allgemeines Programme und ihre Ausführung Programmieren lernen mit Groovy Allgemeines Programme und ihre Ausführung Seite 1 Allgemeines Dozent Dr. Th. Letschert Lernziel Einführung in die Software-Entwicklung und Programmierung Kenntnisse einer

Mehr

- dynamisches Laden -

- dynamisches Laden - - - Fachbereich Technik Department Elektrotechnik und Informatik 21. Juni 2012 1/23 2/23 s dynamisch Code kann von mehreren Programmen genutzt werden => kleinere Programme einzelne Teile eines Programms

Mehr

JAVA als erste Programmiersprache Semesterkurs

JAVA als erste Programmiersprache Semesterkurs JAVA als erste Programmiersprache Semesterkurs 0 - Einstieg WS 2012 / 2013 Prof. Dr. Bodo Kraft Prof. Dr. Bodo Kraft FH Aachen University of Applied Sciences Fachbereich Medizintechnik und Technomathematik

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 8 10. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Praktikum Verteilte Anwendungen

Praktikum Verteilte Anwendungen Technische Informatik (Info II) -Sommersemester 2006 - Folie 1 / 27 0 Gliederung 1.) Kurze Wiederholung/ Einleitung 2.) RPC/ RMI 3.) Praktisches Beispiel 4.) Aufgabenblatt Folie 2 / 27 Wiederholung/ Einleitung

Mehr

Existierende Systeme I Bibliotheken & Frameworks

Existierende Systeme I Bibliotheken & Frameworks Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen Existierende Systeme I Bibliotheken & Frameworks Von Christian Schneider Paderborn, den 18.06.2004 Übersicht Motivation Dynamische

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Martin Wirsing 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum als Programmiersprache verwenden? Ein einfaches -Programm erstellen, übersetzen

Mehr

TwinCAT HMI Application

TwinCAT HMI Application New Automation Technology TwinCAT HMI Application 08.05.2010 1 Überblick Einleitung Übersicht Möglichkeiten der Applikation Struktur und Komponenten Komponenten für das Microsoft Visual Studio Anleger

Mehr

Seminar SS 2000 Enterprise Application Intergration

Seminar SS 2000 Enterprise Application Intergration Seminar SS 2000 Enterprise Application Intergration Web Programming Lifang Chen Betreuer: Marcello Mariucci Juli 2000, Universität Stuttgart Seminar "Web Programming" von Lifang Chen, Juli 2000 Folie 1

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen,

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Yellowbill Adapter Spezifikationen Voraussetzungen Datum : 22.08.2013 Version : 1.0.0.2 22.08.2013 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung...3 2 Architektur...3 2.1 Grundsätze

Mehr

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung 2015-02-25 1 of 6 Application Note Anbindung von Kunden-Software an SpiderControl Web Visualisierung Version ApplicationNote_AnbindungFremdsoftware /Version Seite 1 / 6 Version Datum Kommentar Autor 0.1

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage C# CLR CIL MCS ECMA-335 Linux.Ne t Was ist.net? Microsoft Homepage:.NET is the Microsoft Web services strategy to connect information, people, systems and devices through software. Mono Handbuch:.Net besteht

Mehr

Vorteile von Java und Konvergenz Service Creation mit JAIN Network Management mit JMX Fazit

Vorteile von Java und Konvergenz Service Creation mit JAIN Network Management mit JMX Fazit Hochschule für Technik und Architektur Chur Dr. Bruno Studer Studienleiter NDS Telecom, FH-Dozent bruno.studer@fh-htachur.ch 1 GSM: 079/610 51 75 Agenda Vorteile von Java und Konvergenz Service Creation

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc

Mehr

TeleBuilder for Process Data

TeleBuilder for Process Data TeleBuilder for Process Data Komponenten für die Lean Web Automation - Benutzeranleitung Version: 1.0 / 15.11.005 Autoren: Dipl.-Ing. S. Karasik Prof. Dr.-Ing. R. Langmann 1. Allgemeine Information Der

Mehr

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server Einsatz von Applikationsservern Untersucht am Beispiel des Sybase Enterprise Application Server Architektur von Datenbanksystemen Client / Server Modell (2 Schichten Modell) Benutzerschnittstelle Präsentationslogik

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

8a. Exkurs.NET. 8a.1.NET Architektur

8a. Exkurs.NET. 8a.1.NET Architektur 8a. Exkurs.NET Inhalt: 8a.1.NET Architektur 8a.2 Kooperation von Anwendungen über ADO -.NET 8a.3 Unterschiede gegenüber gewöhnlicher WIN32- Programmierung 1 8a.1.NET Architektur Bislang wurden die C/C++

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten Aktuelle Themen der Wirtschaftsinformatik Zusammenfassung 09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten 1 Serverseitige Webprogrammierung

Mehr

Java für Anfänger Teil 1: Intro. Programmierkurs 11.-15.10.2010 Manfred Jackel

Java für Anfänger Teil 1: Intro. Programmierkurs 11.-15.10.2010 Manfred Jackel Java für Anfänger Teil 1: Intro Programmierkurs 11.-15.10.2010 Manfred Jackel 1 1. Handwerkszeug Eclipse Workbench mit Java-Compiler Java Runtime Environment Notwendige Software Java Runtime Environment

Mehr

Objektorientierte Softwareentwicklung SoSe 15

Objektorientierte Softwareentwicklung SoSe 15 Objektorientierte Softwareentwicklung SoSe 15 Heinz Faßbender Raum E148 Tel. 0241/6009 51913 Email: fassbender@fh-aachen.de www.fassbender.fh-aachen.de FH AACHEN UNIVERSITY OF APPLIED SCIENCES FACHBEREICH

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

Modulare Programmierung und Bibliotheken

Modulare Programmierung und Bibliotheken Modulare Programmierung und Bibliotheken Proseminar-Vortrag am 24.06.2011 von Ludwig Eisenblätter Ludwig Eisenblätter 1 von 25 Modulare Programmierung und Bibliotheken Inhaltsübersicht Motivation / Einleitung

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 2 05.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Das

Mehr

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

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. WebSphere Application Server Teil 4 UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 WebSphere Application Server Teil 4 Leistungsverhalten el0100 copyright W. G. Spruth,

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2011 CS104 Programmieren II / CS108 Programmier-Projekt Java-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Java - Einführung in die Programmiersprache. Leibniz Universität IT Services Anja Aue

Java - Einführung in die Programmiersprache. Leibniz Universität IT Services Anja Aue Java - Einführung in die Programmiersprache Leibniz Universität Anja Aue Handbücher am RRZN Programmierung. Java: Grundlagen und Einführung Java: Fortgeschrittene Techniken und APIs Java und XML Java -

Mehr

BIF/SWE 1 - Übungsbeispiel

BIF/SWE 1 - Übungsbeispiel Arthur Zaczek Sep 2015 1 Übungsbeispiel embedded sensor cloud 1.1 Aufgabenstellung Auf einem [[tragen Sie bitte hier Ihr Embedded System Ihrer Wahl ein]] soll ein Messdaten Erfassungssystem implementiert

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

Anwendung eines Enterprise Java Beans

Anwendung eines Enterprise Java Beans Anwendung eines Enterprise Java Beans EJB Server EJB Container Remote Interface Home Interface EJB Object Der EJB Container kümmert sich um die Kommunikation des Beans mit anderen Komponenten, wobei er

Mehr

Java-Programmierung mit Visual J++ 1.1

Java-Programmierung mit Visual J++ 1.1 Torsten Schlabach Java-Programmierung mit Visual J++ 1.1 Java verstehen und effektiv nutzen ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menio Park, California

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

Mehr

Lightweight Java in der Automatisierungstechnik

Lightweight Java in der Automatisierungstechnik Lightweight Java in der Automatisierungstechnik Erfahrungen aus dem Anlagenbau Dr. Markus Eiglsperger eig@zuehlke.com Business Driver im Anlagenbau Kosten Modularisierung Vernetzung Agilität Paradigmenwechsel

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE

DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE DOKUMENTATION MAAS - MONITORING AS A SERVICE DRESDEN, 08.10.2009 CHRISTIAN.KNAUER@INF.TU-DRESEDEN.DE Dokumentation MaaS - Monitoring as a Service Inhalt 1. MaaS - Monitoring as Service... 3 1.1 Einleitung...

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Remote-Administration von eingebetteten Systemen mit einem Java-basierten Add-On-Modell

Remote-Administration von eingebetteten Systemen mit einem Java-basierten Add-On-Modell Remote-Administration von eingebetteten Systemen mit einem Java-basierten Add-On-Modell F. Burchert, C. Hochberger, U. Kleinau, D. Tavangarian Universität Rostock Fachbereich Informatik Institut für Technische

Mehr

1 Native C Code in C# Umgebung mit Visual Studio 2010

1 Native C Code in C# Umgebung mit Visual Studio 2010 1 Native C Code in C# Umgebung mit Visual Studio 2010 29.07.2013 1.1 Ziel Ein Embedded C Code soll innerhalb einer C# Umgebung lauf- und debuggfähig sein. Der C# Anteil stellt dem Embedded C Code einen

Mehr

Whitepaper Walkyre Enterprise Resource Manangement

Whitepaper Walkyre Enterprise Resource Manangement Whitepaper Walkyre Enterprise Resource Management Seite 1 Whitepaper Walkyre Enterprise Resource Manangement Stand 15.11.2004 Inhalt 1. Hinweis... 2 2. Grundsätzliches zur Funktionalität... 3 3. Der Walkyre-Client...

Mehr

Vom HMI zum WebSCADA Portal

Vom HMI zum WebSCADA Portal Vom HMI zum WebSCADA Portal Teil 1. Skalierbare webbasierende Visualisierungsplattform: Das Bedienpanel als Basis Marcel Bühner Schlagworte wie Industrie 4.0, IoT (Internet of Things), Automation in the

Mehr

Microsoft.NET und SunONE

Microsoft.NET und SunONE Microsoft.NET und SunONE, Plattformen und Application Service Providing Agenda Einordnung.NET und SunONE Kurzvorstellung Gegenüberstellung Zusammenfassung ASP (Application( Service Providing) ) und Ausblick

Mehr

Infos zu IP-Symcon. von Thomas Reger (Tom3244)

Infos zu IP-Symcon. von Thomas Reger (Tom3244) Infos zu IP-Symcon von Thomas Reger (Tom3244) Was ist IP-Symcon? IP-Symcon ist eine Software, welche verbindet was nicht zusammengehört IP-Symcon ist ein leistungsstarkes Entwicklungswerkzeug IP-Symcon

Mehr

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr