2009-08-20 12 views
1

G'day,PHP mit Java Server Kommunikation

Ich habe ein Projekt, wo ich brauche eine „live“ Java-Anwendung (Server) zu bauen Zustand über Domänenobjekte zu halten (es ist eine private Auktion System). Der Java-Server kommuniziert mit und von PHP-Klassen, die die wichtigsten Back-End-Geschäftsfunktionen enthalten. Die PHP-Klassen sind zustandslos.

Ich muss Domänenobjekte bis zum Java-Server (von PHP) kommunizieren, damit ihr Zustand im Laufe der Zeit verwaltet werden kann. Änderungen an den Domänenobjekten müssen über Aufrufe von PHP-Klassen auf einem Webserver im Datenspeicher gespeichert werden.

Ich dachte daran, meine PHP-Klassen mit einer XML-RPC-Klasse (z. B. Zend_Xmlrpc_Server) zu verpacken, da sie statusfrei sind. Wenn/wenn die Java-Anwendung in den Datenspeicher schreiben muss (indem die korrekte PHP-Klassenmethode aufgerufen wird), muss eine XML-RPC-Client-Bibliotheksklasse verwendet werden.

Allerdings bin ich nicht sicher, wie ich Funktionalität in der Java-Anwendung verfügbar machen, so dass es durch PHP-Methodenaufrufe erreicht werden kann. Kann mir jemand den einfachsten Weg sagen, dies in Java zu tun ... schreibe ich einfach eine Multi-Thread-Anwendung und einen Sockel freilegen? Ich bin nach den richtigen Bibliotheksklassen, um die Java-Anwendung mit zu strukturieren.

Cheers, Paul

Antwort

4

Stellen Sie Ihre serverseitige Java-Code als Webservice.

Es gibt unzählige Möglichkeiten, dies in Java zu tun, aber zwei, die in den Sinn kommen, sind die EJB3 WS Annotations und Apache Axis.

Nebenbei, welche Technologie Sie wählen, stellen Sie sicher, dass Sie es als Transport sehen und die tatsächliche Verarbeitungslogik davon getrennt halten.

+1

Ich zweite dieser Ansatz. Sie möchten diese 2 Teile des Systems nicht eng koppeln und ein Web-Service-Ansatz (oder nachrichtenbasiert, REST, ... - die Liste ist endlos) ermöglicht es Ihnen, einen klaren Vertrag zwischen diesen 2 Teilen zu haben. Apache hat auch CXF als Alternative zu Axis. – SteveD

+0

Danke, aber meine Back-End-Java-Anwendung muss den Status speichern - sie muss also immer im Speicher ausgeführt werden. Sind diese Ansätze damit vereinbar? Prost, Paul. –

+0

Wie ich schon sagte mit dem Transport-Konzept, stellen Sie sicher, dass getrennt und dann, was Sie übrig bleibt ist ein Java-Server, mit denen Sie den Zustand auf die eine oder andere Weise den robustesten und unkompliziertesten Weg zu bewahren, es zu speichern in einer Datenbank. –

0

Haben Sie bereits das PHP Java Bridge Werkzeug getestet?

+0

Danke, ich werde es mir ansehen. –

Verwandte Themen