Überprüfen Sie die Kombination zweier Sprachen (JAVA/PHP), die in ihren jeweiligen Bereichen Könige sind, verschiedene Sprachen und unterschiedliche Mechanismen , PHP ist dafür verantwortlich für die WEB-Schicht, und Java ist verantwortlich. Die Geschäfts- und Datenlogikschichten sind wirklich eine goldene Kombination (Java + PHP-Integration = der neue Hybrid-Favorit Sie geben ihnen volles Potenzial). entsprechende Vorteile und eignen sich für die Entwicklung von B/S-Enterprise-Programmen.
1. Technische Probleme
Zwei verschiedene Umgebungen, Die sprachliche Kombination verschiedener Mechanismen. Das erste, was gelöst werden muss, ist, wie man kommuniziert. Zweitens: Wie geht man mit Kommunikationsinhalten um? Ist schließlich die Integration der beiden Entwicklungs- und Bereitstellungsumgebungen?
1.1Vergleich zweier Sprachen
PHP: Intuitiv, schnell, einfach, leicht zu erlernen, hocheffizient bei der Entwicklung dynamischer Webseiten und reich an Basiskultur. Es ist ein ziviler Held in der Sprachwelt und konzentriert sich auf Ergebnisse.
Java: Leistungsstark und komplex, mit vielen High-End-Funktionen und beliebt bei Unternehmen wie IMB und Oracle, ist es der edle Prinz der Sprachwelt.
1.2Kommunikationsproblem
1.2.1Nachrichtenwarteschlange
Auf Betriebssystemebene beobachtet: PHP und Java sind unterschiedliche Prozesse, die im System ausgeführt werden . Die Kommunikation zwischen ihnen gehört zur Interprozesskommunikationstechnologie (IPC):
In der traditionellen Unix-Umgebung umfassen IPC-Technologien: Pipelines, Nachrichtenwarteschlangen, gemeinsam genutzter Speicher, Semaphoren usw. Im gleichen System weist die IPC-Kommunikation jedoch im Vergleich zur TCP-basierten Socket-Kommunikation eine erhebliche Leistung und Ressourcennutzung auf. Vorteile.
Unter Unix/Linux stellt PHP grundsätzlich alle IPC-Zugriffsschnittstellen bereit, da PHP als Shell mit der C-Sprache als Kern betrachtet werden kann und IPC ein integraler Bestandteil des Systemkernels ist und eine externe Gruppe C bereitstellt Funktionsschnittstelle, sodass PHP die IPC-Technologie sehr reibungslos nutzen kann. Um übertriebene Plattformfunktionen zu verfolgen (die IPC-Technologie von Windows unterscheidet sich von der von Unix), bietet Java keinen IPC-Zugriff auf Systemebene. Dies spiegelt auch die kulturellen Merkmale von Java wider: Beim Streben nach Einheitlichkeit kann die Leistung geopfert werden.
1.2.2 Sockel
Die Message-Queue-Technologie kann nur auf Unix/Linux-Systemen angewendet werden, während SOCKET auf dem TCP/IP-Kommunikationsmechanismus basiert und sich somit an verschiedene Plattformen anpasst.
Wie aus der obigen Abbildung ersichtlich ist, übernimmt PHP die Verantwortung der HTTP-Schicht, während Java die Verantwortung der Business-Schicht übernimmt. Sie kommunizieren miteinander über die System V Message Queue (Nachrichtenwarteschlange, eine Art Interprozesskommunikation). IPC). Java erfordert die Unterstützung von JNI.
Die Verwendung von Nachrichtenwarteschlangen hat die folgenden Vorteile:
1. 使php和java保持独立性 2. 有极高的传输速度,大于socket 3. 相对于socket方式,Java服务端只向本机提供服务(没有对外侦听端口),相对安全,易于管理。 |
1.3 Kommunikationsinhaltsproblem
Das Kommunikationsproblem wurde gelöst. Wie kann der Kommunikationsinhalt gelöst werden?
Die Datentypen, die in den jeweiligen Sprachen von PHP und Java definiert sind. Wie werden die Datentypen konvertiert, wenn die beiden Sprachen Daten untereinander übertragen?
(1)Xml: XML ist in der Tat eine Datenkapselungstechnologie, die über eine Plattform verfügt und das Objektmodell gut beschreiben kann, aber XML Aufgrund der Größe ist die Übertragungsrate langsam und die Analyse an beiden Enden der Kommunikation ist ebenfalls mühsam.
(2) Serialisierung: Die Verwendung von Serialisierungs- und Deserialisierungsobjekten zur Datenübertragung während des Übertragungsprozesses ist eine anerkannte und sinnvolle Methode, und beide Sprachen werden unterstützt.
2, Java und PHP Kombinierte Auswahl
Die derzeit bekannte Integrationstechnologie von PHP und Java im Web kann in SOAP ( Simple Object Access Protocol), Quercus und PHP/Java Bridge ermöglichen es PHP und Java, bei der Entwicklung von Webanwendungen die Bibliotheken des jeweils anderen zu nutzen.
SOAP |
SOAP ist IBM, Ein von Microsoft und anderen Unternehmen entwickeltes und vom W3C empfohlenes Protokoll zur Implementierung verteilter Objekttechnologie. SOAP bietet eine Reihe von Mechanismen, die XML zum Paketieren von Programmaufrufen, Parameterübertragungen und Informationsrückgaben verwenden. Mit den Klartexteigenschaften von XML kann es Unternehmens-Firewalls über Kommunikationskanäle wie HTTP, HTTPS und SMTP passieren. Im Vergleich zu CORBA, Java RMI und DCOM, bei denen es sich um verteilte Objekttechnologieprotokolle handelt, die Daten in proprietären Binärformaten übertragen, zeichnet sich SOAP dadurch aus, dass es unabhängig von Programmiersprache, Plattform und Hardware ist. |
Quercus |
Quercus ist eine Open-Source-PHP-5-Engine, die bereits über eine vollständige Implementierung in reinem Java verfügt. Quercus läuft auf Resin-Anwendungsservern und nutzt Resin-Funktionen wie Lastausgleich und Proxy-Caching. |
PHP/Java Bridge |
Zu den Open-Source-Produkten gehören: PHP-Java-Bridge und LAJP |
2.1 Auswahlbedingungen
ü Kostenlos und Open Source
ü Einfach und benutzerfreundlich
ü Effizient und stabil
2.2 LAJP
2.2.1 Funktionen
Ø Ergänzende Vorteile: PHP ist eine sehr beliebte WEB-Programmierskriptsprache. Sie ist leicht zu erlernen, einfach zu verwenden und weist eine hohe Entwicklungs- und Bereitstellungseffizienz auf eignet sich sehr gut für die Webprogrammierung; JAVA eignet sich zum Schreiben von Programmen mit komplexen Geschäftsfunktionen und -daten. Die Kombination der beiden kann ihre jeweiligen Vorteile voll ausschöpfen.
ØEffizient und stabil: Die Apache+PHP-Kombination kann eine hervorragende WEB-Service-Stabilität bringen, und JAVA kann Ergänzungen wie Verbindungspooling, Transaktionsmanagement, Verteilung usw. ermöglichen -Endfunktionen wie Objektmodelle.
ØInnovativer Kommunikationsmechanismus: Die Kommunikation zwischen PHP und Java verwendet zwei Mechanismen: Systemnachrichtenwarteschlange und Socket, wobei Kommunikationseffizienz und Plattformkompatibilität berücksichtigt werden.
ØAutomatischer Konvertierungsmechanismus für Datentypen:
PHP-Daten und Java-Daten können präzise abgeglichen und automatisch konvertiert werden, ohne dass Programmierer Parsing-Code schreiben müssen. Ø Einfach zu bedienen: LAJP ist einfach zu installieren und zu konfigurieren, und die PHP- und JAVA-Programmierung entspricht ihren jeweiligen Programmiergewohnheiten. Ø Lightweight: Die LAJP-Architektur ist sehr leichtgewichtig. Zusätzlich zu den grundlegendsten PHP- und Java-Umgebungen sind keine Erweiterungen oder Komponenten von Drittanbietern erforderlich . Behälter. 2.2.2 Datentypkonvertierung PHP und Java haben jeweils ihre eigenen Datentypen, die in der Sprache definiert sind, wenn PHP-Daten übertragen werden Java: Wenn Java-Daten an PHP übertragen werden, konvertiert LAJP sie intern automatisch und präzise, und Programmierer müssen keine Dekodierungsarbeiten durchführen.
2.2.3 LALP Laufumgebung Nachrichtenwarteschlangenmodus Die Umgebung muss den Betrieb der System V-Nachrichtenwarteschlange erfüllen: System Derzeit gängige Unix/Linux-Systeme sind akzeptabel. Erfüllen Sie die Funktionsweise von PHP (Apache) und Java, von denen die meisten standardmäßig System unterstützen
V-Nachrichtenwarteschlange. php PHP muss gemäß den PHP-Anweisungen mit dem Java-Prozess kommunizieren ist in 4.3. Die System V-Nachrichtenwarteschlange wird ab Version 0 unterstützt. Apache Keine besonderen Anforderungen, erfüllen Sie einfach die PHP-Anforderungen. Java Die Java-Version ist nach 1.5. In Unix/Linux-Umgebungen wird empfohlen, den Nachrichtenwarteschlangenmodus zu verwenden. Socket-Modus System Es gibt keine Einschränkungen, es ist schwierig, ein System zu finden, das TCP/IP nicht unterstützt. php Gemäß den Anweisungen von PHP unterstützt PHP-Version >=4.1.0 Socket Apache Es gibt keine besonderen Anforderungen, erfüllen Sie einfach die PHP-Anforderungen. Java Die Java-Version ist nach 1.5. Windows-System kann nur den Socket-Modus verwenden Diese beiden Modi können während des Entwicklungsprozesses gleichzeitig verwendet werden. Beispielsweise verwenden Entwickler im Allgemeinen die Windows-Umgebung und das Programm wird im Linux-System bereitgestellt. Die Konfiguration des LAJP-Modus hat nichts mit der Codierung zu tun. 2.2.4 Bereitstellung 2.2.4.1 Verteilte Architektur In wichtigen und kritischen Geschäftsszenarien können die Benutzerinteraktionsschicht und die Geschäftsschicht separat bereitgestellt werden wie folgt verwendet werden: Java im WEB-Server ist eine sehr „dünne“ Schicht, die nur zur Verbindung mit den nachfolgenden EJB-Diensten verwendet wird. 2.2.4.2 Cluster Mit der Zunahme der Benutzerbesuche werden WEB-Dienste häufig zu Engpässen im System. Das Folgende ist die Architekturreferenz von LAJP im Cluster:
2.2.4.3 Webcluster LAJP verwendet den Socket-Kommunikationsmodus, Sie können eine einfache verteilte WEB-Cluster-Architektur erstellen:
2.2.4.4 Komplexe Architekturanwendung Die Flexibilität bei der Verwendung von LAJP, dem Design und der Auswahl der Architektur liegt eher in unserem eigenen Denken. Die folgende Architekturreferenz verwendet Cluster sowohl in der WEB-Schicht als auch in der EJB-Schicht:
Memcache ist eine verteilte Speicherobjekt-Caching-Technologie. In PHP ist es sehr praktisch, Sitzungsdaten darin zu speichern, um jeden Knoten im WEB-Cluster zu synchronisieren Daten können auch die „Professionalität“ von PHP im Vergleich zu Java im WEB-Bereich widerspiegeln. In diesem Artikel wird die Beziehung zwischen Java und PHP vorgestellt. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website. Verwandte Empfehlungen: Zusammenfassung der praktischen Erfahrungen mit PHP
Das obige ist der detaillierte Inhalt vonDie Verbindung zwischen Java und PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!