MIGRATION & INTEGRATION

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

White Paper. Embedded Treiberframework. Einführung

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Remote Communications

Java RMI Remote Method Invocation

Client/Server-Systeme

Java 2, Enterprise Edition Einführung und Überblick

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Anwendung eines Enterprise Java Beans

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

Softwareentwicklung mit Enterprise JAVA Beans

Java Beans Enterprise Java Beans. Eine kurze Einführung in die Welt der Bohnen

Integrating Architecture Apps for the Enterprise

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel

Entwicklung von Web-Anwendungen auf JAVA EE Basis

GRAFISCHE BENUTZERSCHNITTSTELLEN

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht

Java Beans ( )

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

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Error-Hospital für Oracle SOA Suite

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

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Enterprise Java Beans Einführung

3 Programmiermodelle für parallele und verteilte Systeme

WI EDI Solution. Stand

Java Wireless Toolkit (JWT) Bei der Programmierung von Anwendungsprogrammen für mobile Endgeräte eignet sich die Verwendung des Java Wireless Toolkit.

Spring Dynamic Modules for OSGi Service Platforms

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 4. Schnittstellen

Etablierung serviceorientierter Architekturen mit Web Services

Java Applet Alternativen

Enterprise JavaBeans

DBUS Interprozess-Kommunikation für Embedded-Plattformen

FH LU JEE Vorlesung SS Ralf Gitzel

17 Komponentenbasiertes Software-Engineering

JMS Java Message Service

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

SS 08. Systemprogrammierung unter Linux. Client Server Projekt. Elektronische Tafel. Seite

ObjectBridge Java Edition

ORACLE Business Components for Java (BC4J) Marco Grawunder

Drucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC

Praktikum Internetprotokolle - POP3

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober FH-Gieÿen-Friedberg Android Praktikum

Berater-Profil SW-Entwickler/-Berater (DB2, Java, MS-SQL-Server, WebSphere)

Existierende Systeme I Bibliotheken & Frameworks

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

Message Oriented Middleware am Beispiel von XMLBlaster

Einstieg in die Informatik mit Java

Jürgen Schwab, debis Systemhaus

1. Java Grundbegriffe

Warum EJB Technologie (1)?

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

OSS/J als Basis für Enterprise Application Integration

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Connection Architecture Teil 3

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Client/Server-Programmierung

Rapide An Event-Based Architecture Definition Language

Logging, Threaded Server

Client/Server-Systeme

Einführung in COM Seite 1

Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06

4D Server v12 64-bit Version BETA VERSION

Einführung in die OPC-Technik

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

CORBA. Systemprogrammierung WS

9 Multithreading. 1 Idee des Multithreading

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Remote Method Invocation Teil 1

Sponsoren der /ch/open

Design Patterns MVC. Marcus Köhler Markus Merath Axel Reusch. Design Patterns MVC Marcus Köhler Markus Merath Axel Reusch Seite 1

J2EEKurs. J2EE eine Plattform für betriebliche Anwendungen. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany,

Spring Dynamic Modules for OSGi Service Platforms

Kap. 3 Verteilte Objektverwaltung

-Testen verteilter Anwendungen

Kapitel 8: Nachrichtenbasierte Kommunikation mit JMS. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

Software-Architektur Actors

Verteilte Systeme - 1. Übung

Kapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

Microsoft.NET und SunONE

Grafische Benutzeroberfläche mit Glade und Python

Übung: Verwendung von Java-Threads

Szenario 3: Service mit erweiterter Schnittstelle

Client/Server-Systeme

Hivemind Ein leichtgewichteter Container

Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi

VS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom Dr. Sebastian Iwanowski FH Wedel

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Smartphone Entwicklung mit Android und Java

R e m o t e A c c e s s. Cyrus Massoumi

Wenn XP-Programme in Windows 7 nicht laufen, muss man eine XP-Umgebung bereit stellen. Wie das geht, zeigt dieser Artikel.

Enterprise Java Beans

Rhapsody in C ein System zur aspektorientierten Embedded- Entwicklung? Dr.- Ing. Alexander Steinkogler B. Braun Melsungen AG

Mobile Application Development

Herzlich Willkommen bei der nfon GmbH

Enterprise Softwarearchitekturen in Java

Modul Software Komponenten 10 Komponentenarchitektur

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Transkript:

44 MIGRATION & INTEGRATION Nachrichtenbasierte Kommunikation zwischen Smalltalk und Java-Komponenten Interoperabilität mit J2EE-Anwendungen MIGRATION & INTEGRATION Bei fast allen größeren Systemen wird heutzutage nicht auf der Grünen Wiese begonnen, sondern ein neues System muss auf die eine oder andere Art mit bereits bestehenden Komponenten kommunizieren, die sehr oft eben nicht in Java entwickelt wurden. Das Thema Interoperabilität behandelt hier die Fragestellung, wie J2EE- Anwendungen mit bestehenden bzw. generell auch mit Nicht-Java-Komponenten (etwa Smalltalk-Komponenten) kommunizieren und umgekehrt. Dieser Artikel zeigt daher, wie eine kostengünstige und erfolgreiche Kommunikation zwischen Smalltalkund Java-Komponenten funktioniert. Diese Lösung reicht bis hin zur echten dienstorientierten Welt mit heterogenen Komponenten in verschiedensten Programmiersprachen und Umgebungen. Ziel einer Anwendungsintegration ist es, funktional ausgerichtete Anwendungen mittels Kommunikation derart zu integrieren, dass sie als ein System geschäftsprozessorientiert arbeitet und dies möglichst effizient und automatisiert. Hierbei geht es um die Interoperabilität zwischen Komponenten. Konzeptionell reichen diese Möglichkeiten der Interoperabilität von einfachen synchronen generischen Remote -Funk- Bild 1: Kommunikationsmuster auf Basis des Bridge-Patterns und Java Native Interface (JNI).

MIGRATION & INTEGRATION 45 tionsaufrufen, über asynchrone Verarbeitung mittels Nachrichten, bis hin zur echten dienstorientierten Welt mit stark heterogenen Komponenten in verschiedensten Programmiersprachen und Umgebungen, die nicht aus J2EE heraus aufgerufen werden können. Vielmehr kann hier auch umgekehrt z.b. eine Smalltalk Anwendung Enterprise Java- Beans (EJB) als Dienstanbieter nutzen. Die zu kommunizierenden Anwendungen sind häufig getrennt voneinander entwickelt worden und verfügen daher u.a. über eine eigene Präsentationslogik und Fachlichkeit. Hierbei handelt es sich auch um eine Paradigmenintegration, wenn diese Anwendungen auf Basis unterschiedlicher Programmiersprachen entwickelt wurden. Bei der Paradigmenintegration geht es nicht nur um den Aufruf von API (Application Programming Interface)-Methoden, sondern auch um den Aufruf des Systems als eigenständige Komponente und den damit verbundenen Datenaustausch. In dem vorliegenden Artikel wird in einem Fall beschrieben, wie eine Smalltalk-Anwendung eine Java-Anwendung als eigenständige Windows-Komponente aufruft und mit ihr Daten austauscht. Im anderen Fall nutzt eine Smalltalk- Anwendung Java-Dienste, die mittels EJB-Clients bereits gestellt werden. Die zweite Frage betrifft die Kommunikation zwischen der Java-GUI-Komponente und Smalltalk: Die Java-Komponente muss der Smalltalk-Anwendung Ergebnisse eines Geschäftsvorfalls zur Verfügung stellen. Ferner muss sie der Smalltalk-Anwendung ihren Zustand (etwa beendet ), bekannt geben können. Da wir Windows als Plattform für diesen Anwendungsfall verwenden, muss die Java-GUI-Komponente die Möglichkeit erhalten, die Windows-API zu bedienen. Wir nutzen zur Zeit die Windows-Plattform, weil Windows in der Praxis das am meisten verwendete Betriebssystem für Client-Rechner ist. In [Cac02] wurde eine auf dem Bridge-Pattern basierende Softwarearchitektur vorgestellt, um die Kommunikation zwischen Java und der Nicht-Java Welt zu implementieren. Diese Lösung ermöglicht einen sicheren Aufruf von Java-Diensten aus der C++-Welt. Wir verwenden diese Lösung wieder, um einen sicheren Aufruf von Java-Diensten aus der Smalltalk-Welt zu erreichen. Auf diesem Weg möchten wir die Kommunikation zwischen Smalltalk und Java realisieren. Die Java-Komponente kann ihren Zustand über die Windows-API der Smalltalk-Anwendung bekannt geben. Zu diesem Zweck müssen die Windows-Funktionen etwa SendMessageTimeout() umhüllt ( wrap ) und aus Java heraus als native (Betriebssystem-)Funktionen aufgerufen werden. Für diesen Fall ergibt es sich folgendes Kommunikationsmuster, das sich grob in drei Teile gestaltet: 1. Aufruf der Java-Komponente mit Übergabe des Window-Handle des Smalltalk-Hauptfensters. Der Win- Interaktion zwischen Smalltalk-Anwendung und Java Auf einer Windows-Plattform ergeben sich unter anderem folgende Fragen bei dem Aufrufen einer eigenständigen Java-Anwendung (Java-GUI-Komponente) durch eine Smalltalk-Anwendung: Bild 2: Softwarearchitektur des Kommunikationsmusters mit zwei Prozessen. 1. Wie kann eine Smalltalk-Anwendung eine Java-GUI-Komponente starten und verwalten? 2. Wie können die Daten zwischen Java-GUI-Komponente und Smalltalk-Anwendung ausgetauscht werden? Bei der ersten Frage geht es um die Kontrolle von Smalltalk über Java-GUI- Komponente. Die Smalltalk-Anwendung muss über die Möglichkeit verfügen, den Zustand der Java-GUI-Komponente zu verfolgen und gegebenenfalls zu korrigieren. Bild 3: Softwarearchitektur des Kommunikationsmusters für Verteilte Objekte.

48 MIGRATION & INTEGRATION dow-handle des Smalltalk-Hauptfensters repräsentiert den Sender. Der Empfänger kann sich etwa über diesen Handle beim Sender registrieren. 2. Senden einer Window-Message aus Java heraus an Smalltalk mit Übergabe des in Java ermittelten Window-Handle (Hauptfenster der Java-Komponente). Dieser Window- Handle repräsentiert eine Java-Komponente, wodurch der Sender (eine Smalltalk-Anwendung) in der Lage ist, den Empfänger (eine Java-Komponente) zu verwalten. Er kann ihm etwa den Auftrag erteilen, sich zu beenden oder das Java-Hauptfenster in der Client-Area des Smalltalk- Hauptfensters zu rearrangieren. 3. Datenaustausch zwischen Java und Smalltalk Bild 4: Smalltalk-Hauptfenster einer Beispielsanwendung nach dem Start. Handle der Swing-GUI zu ermitteln. Das liegt darin begründet, dass Java Plattform übergreifend konzipiert und umgesetzt ist und sich deswegen nicht an eine Plattform (z.b. Windows) anlehnen kann. Die Lösung liegt auf der Hand: Mittels JNI wird die Windows-Funktion FindWindow() aus Java heraus aufgerufen. In [Sun-1] ist beschrieben, wie man native Funktionen innerhalb einer Java-Komponente spezifizieren kann. Diese native Funktion sucht ein Top- Level-Fenster anhand des vorgebenen Fensternamens und liefert den Window- Handle zurück. Das heißt, anhand der Information des Fenstertitels (sollte in der Prozessliste eindeutig sein) der betreffenden Swing-GUI kann der Window-Handle ermittelt werden. Damit dieser der Smalltalk-Anwendung bekannt gemacht werden kann, muss die Java-Komponente erneut die Windows- Funktion SendMessageTimeout() aufrufen. Diese Funktion sendet eine Nachricht an ein anderes Windows-Fenster und wartet auf eine Antwort innerhalb des spezifizierten Time-Out-Intervalls. Mit dieser nativen Funktion kann eine Nachricht an das Smalltalk-Fenster mit dem Window-Handle des Swing-GUIs gesendet werden. Als eine Möglichkeit, den Windows-Handle der Swing-GUI Gemäß [Cac02] sieht dieses Kommunikationsmuster auf Basis des Bridge Patterns und JNI (Java Native Interface) wie in Bild 1 aus. Um eine Kommunikation zwischen den Komponenten zu ermöglichen, müssen beide den Window-Handle der anderen Komponente kennen. Java bekommt den Window- Handle des Smalltalk-Fensters beim Starten der Java-Komponente über die Shared Library BridgeJNI mitgeteilt. Die Fassade der Java-Komponente muss einen Setter (zum Beispiel set- WindowHandle(long hwnd)) vorsehen. Diese Methode wird von Smalltalk heraus mit Hilfe des BridgeJNI identifiziert und ausgeführt. In [Cac02] ist beschrieben, wie eine Java- Methode unabhängig von der Anwendungslogik aus der C/C++ Welt identifiziert und ausgeführt wird. In Java gibt es aber keine Möglichkeit, den echten Betriebssystem- Bild 5: Java-GUI-Komponente (Beispiel) nach dem Start. zu übermitteln, wird die Nachricht WM_COPYDATA und die dazugehörige Struktur COPYDATASTRUCT verwendet. Diese Struktur wird mit den nötigen Daten (diesmal dem Windows- Handle der Swing-GUI) gefüllt und an Smalltalk gesendet. Empfängt Smalltalk diese Nachricht, speichert Smalltalk den Windows-Handle als Instanzvariable in Bild 6: Ausgabe der empfangenen Nachricht in der Statuszeile.

MIGRATION & INTEGRATION 49 einem Controller (Model View Controller Prinzip ) ab und kann damit auch dem Swing-GUI Nachrichten senden und somit die Java-Komponente verwalten. Der Abschnitt Message-Dispatching in Smalltalk beschreibt, wie Windows-Nachrichten innerhalb einer Smalltalk-Komponente behandelt werden können. Um Smalltalk über das Schließen der Java-Komponente zu informieren, wird dann beispielsweise die Nachricht WM_QUIT über die Windows-Funktion PostMessage() gesendet. Diese Funktion stellt eine Nachricht in die Warteschlange für den Thread, der das vorgegebene Fenster erzeugt hat, und kehrt zurück, ohne auf eine Antwort zu warten. In [Rich96] befindet sich eine Übersicht zum Thema Windows-API. Sichere Kommunikation zwischen Smalltalk und Java-GUI-Komponente mittels Multiprocessing Generell läuft ein Swing-GUI in einem eigenen Thread. Wird die Nachricht dispose() beim Schließen des Swing- Hauptfensters gesendet, wird das Swing-GUI mit dem dazugehörigen Thread beendet, nicht aber der Thread, mit welchem die JVM aus JNI heraus gestartet wurde. Wird beim Schließen des Swing-GUIs die Nachricht System.exit() gesendet, wird die JVM beendet und ebenso die virtuelle Maschine von Smalltalk, da beide Komponenten in einem Prozess laufen. Das ist nicht akzeptabel. Abhilfe schafft die Trennung der Prozesse. Die Java-Komponente bekommt einfach einen eigenen Prozess. Also startet die Smalltalk-Anwendung einen Prozess für die Kommunikation mit der Java-GUI-Komponente über die Windows-API-Funktion WinCreateProcess(). Also die Kommunikationskomponente BridgeJNI.dll muss innerhalb eines ausführbaren Programms gekapselt werden, damit eine Smalltalk-Anwendung einen Windows-Prozess mit diesem ausführbaren Programm erzeugen kann. Diese Entwurfsentscheidung hat den Vorteil, dass die Java-Komponente mit System.exit() verlassen werden kann und der Prozess sauber beendet wird, ohne den Smalltalk-Prozess zu beenden. Bild 2 zeigt die veränderte Softwarearchitektur. Interaktion zwischen Smalltalk- Anwendungen und Nicht Java- GUI-Komponenten EJB (Enterprise Java Beans)-Komponenten werden hier stellvertretend benutzt, um die Möglichkeit der Nutzung von nicht GUI-orientierten Java-Diensten in einer Smalltalk-Anwendung zu zeigen. Bekanntlich können Komponenten mittels EJB auch über die Grenzen der Hardware, Betriebssysteme und Middleware genutzt werden. Also können sie Plattform übergreifend kommunizieren. Auch hier müssen folgende Fragen beantwortet werden: 1. Wie kann eine Smalltalk-Anwendung Dienste einer EJB-Komponente nutzen? 2. Wie können die Daten zwischen EJB- Komponenten und Smalltalk-Anwendungen ausgetauscht werden? Bei der ersten Frage geht es um die Kontrolle von Smalltalk über EJB-Clients. Die Smalltalk-Anwendung muss über die Möglichkeit verfügen, bestimmte EJB-Clients anzusprechen und ggf. zu löschen. Die zweite Frage betrifft die Möglichkeit Ergebnisse eines Dienstes des EJB-Clients abzuholen. Auch hier findet unseres Muster Verwendung. Bild 3 zeigt die Nutzung des in [Cac02] vorgestellte Softwarearchitektur für eine solche Kommunikation über EJB in einer verteilten Umgebung. Dieses Muster ist plattformunabhängig, da JNI und EJB architekturund plattformneutral sind. Jede EJB- Komponente läuft in einem Container ab. Im Container kann eine EJB-Komponente erzeugt und auch wieder gelöscht werden. Bekanntlich stellt der Container zwischen dem Client und den EJB Komponenten eine Home - und Remote -Schnittstelle für die einheitliche Kommunikation zur Verfügung. Über JNDI (Java Naming and Directory Interface) greift der Client dann auf die Home -Schnittstelle zu. Die Fähigkeit wird über die Java Fassade der Smalltalk-Anwendung angeboten. Bild 7: Das Java-Fenster als echtes Kind des Smalltalk-Fensters. Message Dispatching in Smalltalk Um in Smalltalk Nachrichten empfangen zu können, die Java an Smalltalk sendet, müssen so genannte Event- Hooks etabliert werden. Ein Event- Hook ist eine Verankerung im Code, der dann betreten wird, wenn das mit dem Event-Hook vereinbarte Event ausgelöst wird und der Empfänger (immer ein gültiger Window-Handle) dem Prozess zugehörig ist, in dem der Code (mit dem Event-Hook) läuft. Für die Kommunikation zwischen Smalltalk und Java wurde die Funktion SendMessageTimeout in Verbindung mit den Nachrichten WM_COPYDATA oder WM_QUIT verwendet. Wobei die

50 MIGRATION & INTEGRATION Bild 8: Das Beenden des Java-Fensters (dispose()). Nachricht WM_COPYDATA als Standardinstrument für den Datenaustausch zwischen zwei Prozessen innerhalb von Windows verwendet wird. Die Nachricht WM_QUIT ist die Standardnachricht beim beenden von Prozessen bzw. Fensterprozeduren. Um die von Smalltalk empfangene Nachricht zu visualisieren, wird diese beim Empfang in die Statuszeile des Smalltalk-Fensters ausgegeben. Nach dem Start der Smalltalk-Anwendung öffnet sich das Hauptfenster von Smalltalk mit den Java-Services, welche über Smalltalk gestartet werden können. Über den Menüpunkt Client/ start Partner-Service lässt die Java- Komponente aufrufen. Durch die beim Start der Java-Komponente gegenseitige Registrierung der Window-Handles lassen sich jetzt ungehindert Nachrichten zwischen diesen Komponenten austauschen. Jede von Smalltalk empfangene Nachricht wird in der Statuszeile ausgegeben. Da über die Windows-Funktionen eine nahtlose Integration zwischen den Prozessen (Fenstern) möglich ist, kann auch das Java-Hauptfenster völlig unter der Kontrolle des Smalltalk- Fensters gebracht werden. Am deutlichsten kann man das durch eine Vater-Kind-Beziehung machen, in dem das Java-Fenster echtes Kind vom Smalltalk-Fenster wird und sich dieses in der Client-Area des Smalltalk-Fensters darstellt. Ebenso lässt sich das Java-Fenster, oder gar der ganze Prozess über die Smalltalk-Anwendung beenden (Bild 7). Wird der Prozess beendet, lässt sich dieser erneut Starten und die Java-Komponente öffnet sich erneut (Bild 8). Fazit Die in [Cac02] vorgestellte Softwarearchitektur ermöglicht eine generische Interoperabilität zwischen der Nicht-Javaund Java-Welt über JNI. Dieser Artikel hat gezeigt, dass diese Softwarearchitektur auch für eine Interprozess-Kommunikation zwischen Smalltalk- und Java- Komponenten sehr gut geeignet ist. Natürlich kann man RMI (Remote Methode Invocation)-Verfahren[Ibm-1] verwenden, um diese Art von Kommunikation umzusetzen. Leider lassen sie sich schwierig und nicht ohne eine Erweiterung bzw. Anpassung der bestehenden Komponenten anwenden. Darüber hinaus hat dieser Artikel gezeigt, wie Windows-Funktionen, die in Java als native Methoden aufgerufen wurden, als Fensternachrichten in Smalltalk abgearbeitet werden können. Diese Lösung lässt sich auf andere Plattformen übertragen. Für eine Unix- Plattform kann beispielsweise der message-mechanismus verwendet werden, um die Interprozess-Kommunikation zwischen Java- und Smalltalk-Komponenten zu realisieren. Die Nachrichten werden an den Nachrichtenspeicher (Message-Queue) geschickt und können von dort abgeholt werden. Eine weitere Möglichkeit der Prozesssynchronisation stellen Signale in der Unix-Plattform dar. Ein Signal kann in diesem Zusammenhang verwendet werden, um Post- Message zu simulieren. Dr. Ndombe Cacutalua und Frank Krutik Ndombe.Cacutalua@softlab.de fkr@objects-imagination.de Literatur [Cac02] Dr. Ndombe Cacutalua und Joachim Korittky; Sicherer Aufruf von Java-Diensten aus der C++-Welt auf Basis des Bridge-Pattern; OBJEKTspektrum 05/2002 [Ibm-1] VisualAge Java-RMI-Smalltalk, the ATM Sample from A to Z; http://www.redbooks.ibm.com/pubs/pdfs/redbooks/sg245418.pdf [Sun-1] Sun Microsystems; Lesson: Writing a JAVA Program with Native Methods; http://java.sun.com/docs/books/tutorial/native1.1/stepbystep/index.htm [Sun-2] Sun Microsystems; JNI -JAVA Native Interface; http://java.sun.com/j2se/1.3/docs/guide/jni [Sun-3] Sun Microsystems; JNI-Jan Native Interface Tutorial; http://java.sun.com/docs/books/tutorial/native1.1/ [Rich96] Richard J. Simon; Win32 Programming API Bible; SAMS, Macmillan Computer Publishing, USA [Asb-99] Stephen Asbury und Scott R Weiner; Developing Java Enterprise Applications; Wiley 1999.