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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

11.10.2010. Eine Einführung - FH Krefeld WS2010-11. NetBeans IDE

11.10.2010. Eine Einführung - FH Krefeld WS2010-11. NetBeans IDE NetBeans IDE 1 Entwicklungsumgebung: komplett in Java geschrieben läuft auf NetBeans Plattform wurde hauptsächlich für die Programmiersprache Java entwickelt unterstützt unter anderem C, C++ und dynamische

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

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

C/C++ Library für Java by TgZero 03.03.2013

C/C++ Library für Java by TgZero 03.03.2013 C/C++ Library für Java by TgZero 03.03.2013 Inhaltsverzeichnis Intro...1 Das Problem bei den vorhandenen Libs...1 Die Bedingungen für eine Library...2 Eine Java-Klasse erstellen...2 Zugreifen auf Objekte,

Mehr

JAVA. Ein kurzer Überblick. Thomas Karp

JAVA. Ein kurzer Überblick. Thomas Karp JAVA Ein kurzer Überblick Thomas Karp WAS IST JAVA? Java ist eine fast rein objektorientierte Sprache nicht JavaScript eine professionelle Sprache eine im Unterricht weit verbreitete Sprache für verschiedene

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 2. : -Einführung 2.1 -Entwicklungsgeschichte 2.2 Architektur Überblick 2.3 Netzwerk-Computer: Ein neues Betriebsparadigma 2.4 Eigenschaften 2.5 -Entwicklungsumgebung 2.6 Application vs. Applet 2.7 Ein

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

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

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

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

Relationale Datenbanken Kursziele

Relationale Datenbanken Kursziele Relationale Datenbanken Kursziele DB Grundlagen Daten-Modellierung Relationales Modell und DB => Praxis: Mit SQL als Anfragesprache Mit MySQL als DB RDB 1-1 Kursinhalt (Tage) 1. DB Einleitung / Entity-Relationship

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

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

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

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Überblick. 5 Java. Insel Indonesiens. (126 650 km 2, 65 Mill. Einw.) amerikanischer Slang für Kaffee (" Betriebsstoff der Java-Programmierer")

Überblick. 5 Java. Insel Indonesiens. (126 650 km 2, 65 Mill. Einw.) amerikanischer Slang für Kaffee ( Betriebsstoff der Java-Programmierer) Überblick 5 Java 5.1 Interpretation und Übersetzung von Programmen 5.2 Java als objekt-orientierte Programmiersprache 5.3 Ein erstes Java-Beispiel 5.4 Java Syntaxkonstrukte 5.5 Elementare Java-Klassen

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

Integrating Architecture Apps for the Enterprise

Integrating Architecture Apps for the Enterprise Integrating Architecture Apps for the Enterprise Ein einheitliches Modulsystem für verteilte Unternehmensanwendungen Motivation und Grundkonzept Inhalt Problem Ursache Herausforderung Grundgedanke Architektur

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

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dipl.-Ing. Andreas Riener Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz riener@pervasive.jku.at SWE 1 // Organisatorisches

Mehr

7.1.1 Grundzüge der Fernaufruf-Implementierung

7.1.1 Grundzüge der Fernaufruf-Implementierung 7.1.1 Grundzüge der Fernaufruf-Implementierung = Aufrufbeziehung Aufrufer Vertreter (proxy, client stub) Fernaufrufdienst A d a p t e r Treiber (skeleton, server stub) Fernaufrufdienst Aufgerufener (Modul,

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

Client/Server-Programmierung. CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO)

Client/Server-Programmierung. CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO) Client/Server-Programmierung WS 2007/08 CORBA: Schritt-für-Schritt Anleitung (Mini HOWTO) Version 1.2, 28.11.07 Schritt 1: Erstellung der IDL Zuerst muß eine IDL (Interface Definition Language)-Datei erstellt

Mehr

Mobile Application Development

Mobile Application Development Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann

Mehr

Programmierkurs Java. Grundlagen. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.

Programmierkurs Java. Grundlagen. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck. Programmierkurs Java Grundlagen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Algorithmen, Maschinen- und Programmiersprachen Algorithmen

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

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

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum Java als Programmiersprache

Mehr

Einsatz von Java-fähigen GPRS-Terminals

Einsatz von Java-fähigen GPRS-Terminals Einsatz von Java-fähigen GPRS-Terminals Ein Bericht aus der Praxis Dr. Fred Könemann INSIDE M2M GmbH 15. VDE/ITG Fachtagung Mobilkommunikation Osnabrück 19.-20. Mai 2010 Dr. Fred Könemann, INSIDE M2M GmbH

Mehr

Erste Schritte zum lauffähigen Java Programm

Erste Schritte zum lauffähigen Java Programm Erste Schritte zum lauffähigen Java Programm Diese kleine Einführung ist eine Hilfe für Studenten der Vorlesung SWT I zur Meisterung der sich ergebenden Hürden bei der Erstellung eines ersten kleinen Java-Programms.

Mehr

Script-Sprache für UPT und MKT-View II / III / IV. Einleitung, Anwendungsfälle, Programmierung. MKT Systemtechnik

Script-Sprache für UPT und MKT-View II / III / IV. Einleitung, Anwendungsfälle, Programmierung. MKT Systemtechnik Einleitung, Anwendungsfälle, Programmierung MKT Systemtechnik Autor: Stand: Ablage: Wolfgang Büscher Dipl.-Ing. Soft- und Hardware-Entwicklung buescher@mkt-sys.de 2015-01-21 (JJJJ-MM-DD) art85133_einfuehrung_mktview_scriptsprache.odp/pdf;

Mehr

Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte

Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte Agenda Problemstellung Medizinprodukt App Grundlagen Szenarien (Problemstellungen und Lösungsansätze) 03.06.2013 2 Innovationen

Mehr

DLLs (dynamic loaded libraries) mit MingW erstellen

DLLs (dynamic loaded libraries) mit MingW erstellen DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:

Mehr

Managed VPSv3 Was ist neu?

Managed VPSv3 Was ist neu? Managed VPSv3 Was ist neu? Copyright 2006 VERIO Europe Seite 1 1 EINFÜHRUNG 3 1.1 Inhalt 3 2 WAS IST NEU? 4 2.1 Speicherplatz 4 2.2 Betriebssystem 4 2.3 Dateisystem 4 2.4 Wichtige Services 5 2.5 Programme

Mehr

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...?

Kapitel 1. Programmierkurs. 1.2 Allgemeiner Aufbau des Computers. 1.1 Hallo, Computer...? Kapitel 1 Programmierkurs Birgit Engels, Anna Schulze ZAIK Universität zu Köln Einführung Hallo, Computer...? Aufbau eines Computers Was ist eine Programmiersprache? Der Programmierprozess Warum Java?

Mehr

Java Technologie im BS2000/OSD

Java Technologie im BS2000/OSD Java Technologie im BS2000/OSD Ausgabe Mai 2010 Seiten 5 Java Technologie im BS2000/OSD Mit der wachsenden Bedeutung der Web-Technologie und der Umstellung der Geschäftsprozesse auf Electronic Commerce

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Aufgaben: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge Objektorientierte Programmierung OOP Programmieren mit Java 1. Installation von Java 2. Erstes Java Programm Hello World 3. Dreimal Hallo Olten 2

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

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

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

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

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

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java

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

Präsentation. homevisu Familie. Peter Beck. Juni 2011. www.p-b-e.de. 2011 p b e Peter Beck 1

Präsentation. homevisu Familie. Peter Beck. Juni 2011. www.p-b-e.de. 2011 p b e Peter Beck 1 Präsentation homevisu Familie Peter Beck Juni 2011 2011 p b e Peter Beck 1 Funktionensumfang Der Funktionsumfang das provisu Framework. Modular und durch Plug-In erweiterbar / anpassbar. Plug-In Schnittstelle

Mehr

JNI. Java Native Interface. Pratikum SWE 2 Institut für Systemsoftware, Johannes Kepler Universität Linz

JNI. Java Native Interface. Pratikum SWE 2 Institut für Systemsoftware, Johannes Kepler Universität Linz JNI Java Native Interface JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Pratikum SWE 2 Institut für Systemsoftware, Johannes Kepler Universität Linz Probleme bei nativem Code in Java Methodenaufruf

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework 1. Software-Plattform Android Android Was ist Android? Plattform und Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks), Open-Source Linux-Kernel 2.6 Managed Code, Angepasste Java

Mehr

Ruby. Programmieren mit Zucker. Thomas Kühn

Ruby. Programmieren mit Zucker. Thomas Kühn Ruby Programmieren mit Zucker Thomas Kühn Gliederung Geschichte Philosophie Syntax mit Zucker Sprachkonzepte Pakete und Frameworks Ausblick Beispiele Yukihiro Matz Matsumoto Geboren am 14.April 1965 Geschichte

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

Bridging the Gap between the Enterprise and You. Who s the JBoss now?

Bridging the Gap between the Enterprise and You. Who s the JBoss now? or Who s the JBoss now? Patrick Hof (patrick.hof@redteam-pentesting.de) Jens Liebchen (jens.liebchen@redteam-pentesting.de) RedTeam Pentesting GmbH http://www.redteam-pentesting.de FrOSCon 2009 22./23.

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

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

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM ÜBERSICHT Android Android Dalvik Virtuelle Maschine Android und Desktop Applikationen Android Entwicklung Tools R Activity

Mehr

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Bridging the Gap between the Enterprise and You. Who s the JBoss now?

Bridging the Gap between the Enterprise and You. Who s the JBoss now? or Who s the JBoss now? Patrick Hof (patrick.hof@redteam-pentesting.de) Jens Liebchen (jens.liebchen@redteam-pentesting.de) RedTeam Pentesting GmbH http://www.redteam-pentesting.de 16. DFN-Cert Workshop

Mehr

Einführung in COM. 04.04.2006 Seite 1

Einführung in COM. 04.04.2006 Seite 1 Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006

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

App-Entwicklung für Android

App-Entwicklung für Android App-Entwicklung für Android Einleitung - Systemarchitektur Hochschule Darmstadt WS15/16 1 Inhalt Historie Systemarchitektur Sandbox 2 Motivation Kontra Pro Limitierte Größe Begrenzte Ressourcen Kein Standardgerät

Mehr

scmsp SMARTES Content-Management-System Bestimmtes kann und das dafür sehr gut. Bei der Konzeption des blockcms stand die Einfachheit im Vordergrund:

scmsp SMARTES Content-Management-System Bestimmtes kann und das dafür sehr gut. Bei der Konzeption des blockcms stand die Einfachheit im Vordergrund: scmsp SMARTES Content-Management-System blockcms steht für Block Content Management System Wir brauchen kein CMS, das alles kann, sondern eines, das nur Bestimmtes kann und das dafür sehr gut. Bei der

Mehr

Konzept / Architektur Diagramme

Konzept / Architektur Diagramme Architektur-Modell Konzept / Architektur Diagramme Im Übergang Analyse Design wird das System konzipiert und seine Architektur entworfen: Subsystem-Modell (execution view) UML 1.x Package Diagram «subsystem»

Mehr

Einführung in die OPC-Technik

Einführung in die OPC-Technik Einführung in die OPC-Technik Was ist OPC? OPC, als Standartschnittstelle der Zukunft, steht für OLE for Process Control,und basiert auf dem Komponentenmodel der Firma Microsoft,dem Hersteller des Betriebssystems

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

Grundlagen der Informatik Übungen 1.Termin

Grundlagen der Informatik Übungen 1.Termin Grundlagen der Informatik Übungen 1.Termin Dr. Ing Natalia Currle-Linde Institut für Höchstleistungsrechnen 1 Kurzvorstellung Dr.-Ing. Natalia Currle-Linde linde@hlrs.de Institut für Höchstleistungsrechnen

Mehr

Beschreibung Mobile Office

Beschreibung Mobile Office Beschreibung Mobile Office 1. Internet / Netz Zugriff Für die Benutzung von Mobile Office ist lediglich eine Internet oder Corporate Netz Verbindung erforderlich. Nach der Verbindungsherstellung kann über

Mehr

Hello World from CORBA

Hello World from CORBA Hello World from CORBA ein erster Überblick Aufruf einer Objekt-Methode Client gettemperature() Thermometer Objekt- Implementation Thermometer th = new Thermometer(); double t = th.gettemperature(); th

Mehr

Die fünf häufigsten Fehler Von Entwicklern bei der mobilen Programmierung

Die fünf häufigsten Fehler Von Entwicklern bei der mobilen Programmierung Die fünf häufigsten Fehler Von Entwicklern bei der mobilen Programmierung In 2015 werden mehr Tablet-Computer verkauft werden als Desktopund tragbare Computer zusammen Quelle: IDC, Mai 2013 Aufgrund der

Mehr

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

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

Betriebssysteme Kap A: Grundlagen

Betriebssysteme Kap A: Grundlagen Betriebssysteme Kap A: Grundlagen 1 Betriebssystem Definition DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr