検索

JavaとPHPの関係

Jun 15, 2018 pm 02:12 PM
javaphp

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 までご連絡ください。
PHPはユーザーのセッションをどのように識別しますか?PHPはユーザーのセッションをどのように識別しますか?May 01, 2025 am 12:23 AM

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションを保護するためのベストプラクティスは何ですか?PHPセッションを保護するためのベストプラクティスは何ですか?May 01, 2025 am 12:22 AM

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

PHPセッションファイルはデフォルトで保存されていますか?PHPセッションファイルはデフォルトで保存されていますか?May 01, 2025 am 12:15 AM

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra

PHPセッションからデータをどのように取得しますか?PHPセッションからデータをどのように取得しますか?May 01, 2025 am 12:11 AM

toretrievedatafrompsession、Startthessession withsession_start()andAccessvariablesshe $ _SessionArray.forexample:1)Startthessession:session_start()

セッションを使用してショッピングカートを実装するにはどうすればよいですか?セッションを使用してショッピングカートを実装するにはどうすればよいですか?May 01, 2025 am 12:10 AM

セッションを使用して効率的なショッピングカートシステムを構築する手順には、次のものがあります。1)セッションの定義と機能を理解します。セッションは、リクエスト全体でユーザーのステータスを維持するために使用されるサーバー側のストレージメカニズムです。 2)ショッピングカートに製品を追加するなど、基本的なセッション管理を実装します。 3)製品の量管理と削除をサポートし、高度な使用状況に拡大します。 4)セッションデータを持続し、安全なセッション識別子を使用することにより、パフォーマンスとセキュリティを最適化します。

PHPでインターフェイスをどのように作成して使用しますか?PHPでインターフェイスをどのように作成して使用しますか?Apr 30, 2025 pm 03:40 PM

この記事では、PHPでインターフェイスを作成、実装、および使用する方法について説明し、コード組織と保守性の利点に焦点を当てています。

crypt()とpassword_hash()の違いは何ですか?crypt()とpassword_hash()の違いは何ですか?Apr 30, 2025 pm 03:39 PM

この記事では、PHPのCrypt()とpassword_hash()の違いについて、パスワードハッシュの違いについて説明し、最新のWebアプリケーションの実装、セキュリティ、および適合性に焦点を当てています。

PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?Apr 30, 2025 pm 03:38 PM

記事では、入力検証、出力エンコード、およびOWASP ESAPIやHTML浄化器などのツールを使用して、PHPのクロスサイトスクリプト(XSS)を防止します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。