___ qstnhdr ___ Senden eines Objekts über das Internet
___ answer1931474 ___
___ qstntxt ___
Ich definiere eine Klasse und setze dann ein Objekt dieses Klassentyps ein. Ich möchte dieses Objekt transparent an eine andere Java-Anwendung senden, die auf einem anderen Computer ausgeführt wird. Was ist die beste Technologie, um dies zu erreichen?
___ answer1931529 ___
Sie können Objektströme mithilfe der Java-API erstellen und serialisierbare Objekte senden. aber Sie müssen beachten, dass diese unverschlüsselt durch das Netzwerk gehen:
auf der Senderseite:
%Vor%
und auf der Empfängerseite:
%Vor%
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen.
___ answer1931483 ___
Es gibt viele Möglichkeiten, dies zu tun. Hier sind einige Dinge, die Sie sich ansehen sollten und Sie können diejenige auswählen, die am besten für Ihre Anwendung funktioniert.
- J2EE
- RMI
- Objekt Serialisierung schiebt die Bits über einen Socket
- Webservices
So ziemlich jeder Kommunikationsrahmen erlaubt es Ihnen, Objekte auf die eine oder andere Weise über ein Netzwerk zu schieben. Sie müssen sie nur überprüfen und sehen, welche für Ihre Anwendung funktioniert. Ein schneller Google sollte noch mehr Methoden finden.
___ answer1931563 ___
Ein (de facto) Standard, um dies zu implementieren, wäre einen Web Service zu verwenden, zum Beispiel mit JAX-WS , das in Java 6 gebündelt ist. Siehe dieses Tutorial für eine Java-erste Probe (dh mit Anmerkungen). Das ist ziemlich einfach und einfach.
Es gibt andere Ansätze wie %code% über Socket , RMI, EJBs, aber wenn Sie über das Internet arbeiten, sind Web-Services eine Art natürliche Wahl, da sie auf existierende basieren Standards (SOAP, HTTP) und einfach mit Firewalls umgehen (was für alle anderen Lösungen ein echtes Problem sein könnte).
___ tag123serialization ___ Serialisierung ist der Prozess, mit dem Datenstrukturen in ein Format konvertiert werden, das leicht gespeichert oder übertragen und anschließend rekonstruiert werden kann.
___ antwort32350561 ___
Java bietet (binäre) Objekt-Serialisierung mit dem ObjectOutputStream (und ObjectInputStream). Sie können writeObject () einfach in den Stream schreiben und readObject () am anderen Ende. Alles, was Sie dafür tun müssen, ist die Implementierung der Serializable-Schnittstelle.
Aber anstatt das manuell zu tun, könnten Sie daran interessiert sein, eine Ebene höher zu gehen und Remote Method Invocation zu verwenden. Mit RMI können Sie Methoden für Objekte aufrufen, die in einer anderen JVM enthalten sind, und die gesamte Serialisierung und Vernetzung geschieht unter der Haube.
Und der Vollständigkeit halber gibt es auch eine XML-Bean-Serialisierung, wenn Sie das Binärformat nicht verwenden können. Dieses XML-Format ist sehr allgemein (lese: ausführlich und hässlich), aber es gibt einige populäre Bibliotheken (wie XStream), die alternative XML-Serialisierungen erstellen.
___ tag123networking ___ Für die meisten Programmierfragen verwenden Sie das [network-programming] -Tag. Nicht-programmierbare Netzwerkfragen sind nicht Thema und sollten stattdessen in Network Engineering, Super User oder Server Fault abgefragt werden. Dieses Tag eignet sich nur für Fragen zu speziellen Netzwerkanforderungen zur Unterstützung der Softwareentwicklung.
___