ホームページ  >  記事  >  バックエンド開発  >  JavaとPHPの関係

JavaとPHPの関係

jacklove
jackloveオリジナル
2018-06-15 14:12:235297ブラウズ

JavaとPHPの関係

それぞれの分野で王者である 2 つの言語 (JAVA/PHP)、異なる言語、異なるメカニズムが組み合わされていることを確認します、PHP はビジネス レイヤーとデータ ロジック レイヤー はまさに黄金の組み合わせです (Java PHP 統合 = 新しいハイブリッドの最愛の人 )。それぞれの利点があり、B/S エンタープライズ プログラムの開発に適しています。

#1、技術的な問題

2 つの異なる環境、言語のさまざまなメカニズムの組み合わせで、最初に解決すべきことは、どのようにコミュニケーションをとるかということです。 2つ目は、コミュニケーションの内容をどうするかです。最後に、2 つの開発環境と展開環境の統合ですか?

1.12 つの言語の比較

Php: 直観的、高速、シンプル、学習しやすく、動的 Web ページの開発効率が高く、強力な草の根文化を持ち、結果を重視する言語界の民間ヒーローです。

Java: 強力かつ複雑で、多くのハイエンド機能を備え、IMB や Oracle などの企業の間で人気があり、言語界の高貴な王子です。

#1.2コミュニケーションの問題

##1.2.1メッセージ キュー

#オペレーティング システム レベルから観察すると、PHP と Java はシステム内で実行されている異なるプロセスです。それらの間の通信はプロセス間通信テクノロジ (IPC) に属します:

JavaとPHPの関係

従来の Unix 環境では、IPC テクノロジにはパイプ、メッセージ キュー、共有メモリ、セマフォなどが含まれます。ただし、同じシステム内での IPC 通信は、TCP ベースのソケット通信と比較してパフォーマンスとリソースの使用量が大幅に増加します。アドバンテージ。

Unix/Linux では、PHP は基本的にすべての IPC アクセス インターフェイスを提供します。PHP は C 言語をコアとするシェルとみなすことができ、IPC はシステム カーネルの不可欠な部分であり、外部グループ C を提供します。関数インターフェイスを備えているため、PHP は IPC テクノロジを非常にスムーズに使用できます。誇張されたプラットフォーム機能を追求するために (Windows の IPC テクノロジは Unix の IPC テクノロジとは異なります)、Java はシステムレベルの IPC アクセスを提供しません。これは、均一性を追求するとパフォーマンスが犠牲になる可能性があるという Java の文化的特性も反映しています。

1.2.2 ソケット

メッセージ キュー テクノロジは Unix/Linux システムにのみ適用できますが、SOCKET は TCP/IP 通信メカニズムに基づいているため、さまざまなプラットフォームに適応できます。

JavaとPHPの関係

上の図からわかるように、PHP は HTTP 層の役割を担い、Java はビジネス層の役割を担います。これらは、System V Message Queue (プロセス間通信 IPC の一種であるメッセージ キュー) を介して相互に通信します。 )。Java には JNI のサポートが必要です。

メッセージ キューを使用すると、次の利点があります:

#


1.3 通信内容の問題 #コミュニケーションの問題は解決しましたが、コミュニケーションの内容を解決するにはどうすればよいですか?

PHP と Java のそれぞれの言語内で定義されたデータ型。2 つの言語が相互にデータを送信する場合、データ型はどのように変換されますか?

(1)Xml: xml は確かにプラットフォームを誇り、オブジェクト モデルを適切に記述することができるデータ カプセル化テクノロジですが、xmlサイズが大きいため通信速度が遅く、通信の両端での解析も面倒です。

(2) シリアル化: 送信プロセス中にデータを送信するためにシリアル化オブジェクトと逆シリアル化オブジェクトを使用することは、認識されている合理的な方法であり、両方の言語がサポートされています。

2Javaおよびphp 結合選択

Web 上で現在知られている PHP と Java の統合テクノロジは、SOAP ( Simple Object Access Protocol)、Quercus、および PHP/Java Bridge を使用すると、Web アプリケーションの開発時に PHP と Java が相互にライブラリを使用できるようになります。


1. php と java の独立性を維持します

2 非常に高い通信速度を持ちます。ソケット

3よりも大きい。ソケットメソッドと比較して、Javaサーバーはローカルマシンにのみサービスを提供します(外部リスニングポートはありません)。これは比較的安全で管理が簡単です。


##


2.1 選択条件

ü 無料のオープンソース

ü 使いやすい

ü 効率的で安定した

2.2 LAJP##

##2.2.1 特徴

Ø 補足的な利点: PHP は非常に人気のある WEB プログラミング スクリプト言語であり、習得が簡単で、開発と展開の効率が高いです。書くのに適しています複雑なビジネス機能とデータを含むプログラムでは、この 2 つを組み合わせることで、それぞれの利点を最大限に発揮できます。 Ø

効率的で安定した: Apache PHP の組み合わせは優れた WEB サービスの安定性をもたらし、JAVA は接続プーリング、トランザクション管理、配布、オブジェクトなどを補完できます。モデルやその他のハイエンド機能。 Ø

革新的なコミュニケーションメカニズム: PHP と Java 間の通信には、通信効率とプラットフォームの互換性を考慮して、システム メッセージ キューとソケットの 2 つのメカニズムが使用されます。 Ø

データ型自動変換メカニズム: プログラマーが解析コードを記述する必要がなく、PHP データと Java データは自動的に照合され、正確に変換されます。

Ø 使いやすい: LAJP はインストールと設定が簡単で、PHP および JAVA プログラミングはそれぞれのプログラミング習慣に準拠しています。

Ø 軽量: LAJP アーキテクチャは非常に軽量であり、最も基本的な PHP および Java 環境に加えて、拡張コンポーネントやサードパーティ コンポーネントは必要ありません。 。 容器。

2.2.2 データ型変換

PHP と Java には、それぞれ言語内で独自のデータ型が定義されています。または、Java データが PHP に送信されると、LAJP が内部でデータを自動的かつ正確に変換するため、プログラマはデコード作業を行う必要がありません。

JavaとPHPの関係

##2.2.3 ##LALP 実行環境

メッセージ キュー モード

環境は System V メッセージ キューの動作を満たす必要があります:

  • System 現在一般的な Unix/Linux システムphp (Apache) と Java の操作に対応し、そのほとんどがデフォルトで System をサポートします。 V メッセージキュー。

  • php PHP の指示に従って、PHP はメッセージ キューを通じて Java プロセスと通信する必要があります。 System V メッセージ キューはバージョン 0 以降でサポートされます。

  • apache 特別な要件はありません。PHP 要件を満たすだけです。

  • #java Java バージョンは 1.5 以降です。

  • Unix/Linux 環境では、メッセージ キュー モードを使用することをお勧めします。

##ソケット モード

  • # #システム

    制限はなく、TCP/IP をサポートしていないシステムを見つけるのは困難です。

    php
  • PHP の説明によると、PHP バージョン 4.1.0 以上でソケット

    # がサポートされています。 ##

  • apache 特別な要件はありません。PHP 要件を満たすだけです。

  • #java Java バージョンは 1.5 以降です。

  • #Windows システムはソケット モードのみを使用できます

これら 2 つのモードは、開発プロセス中に同時に使用できます。たとえば、開発者は Windows 環境を使用し、プログラムは Linux システムにデプロイされます。LAJP モードの設定はコーディングとは関係ありません。

#2.2.4 デプロイメント 2.2.4.1 分散アーキテクチャ

重要かつクリティカルなビジネス シナリオでは、ユーザー インタラクション層とビジネス層が個別に導入されます。このタイプのアーキテクチャは、LAJP で使用できます。このような: ######### ###

WEB サーバーの Java は非常に「薄い」層であり、後続の EJB サービスに接続するためにのみ使用されます。

2.2.4.2

JavaとPHPの関係##2.2.4.3 Web クラスター

LAJP をソケット通信モードで使用すると、単純な分散 WEB クラスター アーキテクチャを構築できます。

##2.2.4.4 複雑なアーキテクチャ アプリケーションJavaとPHPの関係

LAJP を使用する柔軟性、アーキテクチャの設計と選択は、私たち自身の考え方に基づいています。次のアーキテクチャ リファレンスでは、WEB 層と Web 層の両方でクラスタを使用しています。 EJB 層:

JavaとPHPの関係

memcache は分散メモリ オブジェクト キャッシング テクノロジであり、PHP では、Web クラスタ内の各ノードを同期するためにセッション データを保存すると非常に便利です。データは、WEB 分野における Java と比較した PHP の「専門性」を反映することもあります。

この記事では Java と PHP の関係について紹介します。さらに関連する内容については、php 中国語 Web サイトを参照してください。

関連する推奨事項:

PHP の実際の経験の概要

##ThinkPHP の関連する概要

#thinkphp 基本クラスに関する関連コンテンツ

SOAP

SOAP は IBM、A Microsoft およびその他の企業によって開発され、分散オブジェクト テクノロジを実装するために W3C によって推奨されたプロトコル。 SOAP は、XML を使用してプログラム呼び出し、パラメータ転送、および情報の返送をパッケージ化する一連のメカニズムを提供し、XML のプレーン テキスト特性により、HTTP、HTTPS、SMTP などの通信チャネルを介して企業のファイアウォールを通過できます。独自のバイナリ形式でデータを送信する分散オブジェクト技術プロトコルである CORBA、Java RMI、DCOM と比較して、SOAP はプログラミング言語、プラットフォーム、ハードウェアに依存しないという特徴があります。

コナラ

Quercus はオープンソースの PHP 5 エンジンで、すでに Pure Java で完全な実装が行われています。 Quercus は、Resin アプリケーション サーバー上で実行され、ロード バランシングやプロキシ キャッシュなどの Engine の機能を利用します。

#PHP/Java Bridge

オープン ソース製品には、Php-java-bridge および LAJP

# が含まれます。

以上がJavaとPHPの関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。