見出し画像

𓆏J2EEってなんだった? ORB CORBA SOAP WSDL Java RMI 分散オブジェクト関連用語の違い

ORB (Object Request Broker)
分散オブジェクトシステムの中核となるコンポーネント。
オブジェクトの位置透過的な呼び出しをサポートする役割を果たす。
例: CORBAの実装にはORBが含まれている。
CORBA (Common Object Request Broker Architecture)
OMG (Object Management Group) によって定義された分散オブジェクトのための規格。
異なるプログラミング言語やプラットフォーム間でオブジェクトの通信を可能にする。
IDL (Interface Definition Language) を用いてインターフェースを定義する。
SOAP (Simple Object Access Protocol)
XMLベースのプロトコルで、異なるシステム間での通信を可能にする。
Webサービスとしてのデータの送受信やリモートプロシージャ呼び出しのために使用される。
プラットフォームや言語に依存しない。
WSDL (Web Services Description Language)
WebサービスのインターフェースをXMLで記述するための言語。
SOAPメッセージのフォーマット、プロトコル、メッセージが使用するエンドポイントといった情報を提供する。
クライアントはWSDLを使用してサービスの詳細を知り、適切に通信する。
Java RMI (Remote Method Invocation)
Javaの分散オブジェクトモデルの一部。
Javaオブジェクトが異なるJVM上のオブジェクトのメソッドをリモートで呼び出すことを可能にする。
Java専用であり、他の言語やプラットフォームとの互換性は持たない。

Jakarta EEは、以前はJava Platform, Enterprise Edition (Java EE) やJava 2 Platform, Enterprise Edition (J2EE) と呼ばれていたもので、Java SE[1]に分散コンピューティングやWebサービスなどのエンタープライズ機能の仕様を拡張した仕様群である[2] Jakarta EEアプリケーションは、マイクロサービスやアプリケーションサーバーなどの参照ランタイム上で実行し、展開されたコンポーネントに対してトランザクション、セキュリティ、拡張性、同時実行性および管理などを実行する。
Jakarta EEは、仕様によって定義されている。仕様では、API(アプリケーション・プログラミング・インターフェース)とその相互作用が定義されている。他のJava Community Process仕様と同様に、プロバイダが製品をJakarta EE準拠と宣言するためには、特定の適合性要件を満たす必要がある。
Jakarta EEを参照するランタイムは、電子商取引、会計、銀行情報システムなどに利用される。

https://en.wikipedia.org/wiki/Jakarta_EE

バージョン1.2からはJava 2 Platform, Enterprise EditionまたはJ2EEとして知られ、バージョン1.5でJava Platform, Enterprise EditionまたはJava EEに名称が変更された。
Java EEは、Java Community Processのもと、Oracle社によってメンテナンスされていた。2017年9月12日、Oracle CorporationはJava EEをEclipse Foundationに提出すると発表した[3]。 EclipseのトップレベルプロジェクトはEclipse Enterprise for Java (EE4J) と名付けられた[4]。 Eclipse FoundationはjavaxとJava商標の使用に関してOracleと合意することができなかった。 [5] Oracleは「Java」という名前の商標を所有しており、プラットフォームはJava EEからJakarta EEに改名された

https://en.wikipedia.org/wiki/Jakarta_EE

1998年12月8日のリリース以降、J2SE 5.0までのリリースは、遡ってJava 2と改名され、J2EE(Java 2 Platform, Enterprise Edition)やJ2ME(Java 2 Platform, Micro Edition)とベースプラットフォームを区別するために、バージョン名はJDKから「J2SE」(Java 2 Platform, Standard Edition)に変更されました。このリリースは、Javaプラットフォームのサイズを3倍の59パッケージ、1520クラスまで拡大した、非常に重要なものでした。主な追加機能は以下の通りです。

https://en.wikipedia.org/wiki/Java_version_history

アプリケーションサーバーは、多階層のエンタープライズアプリケーションを開発するための標準を定義するJava 2 Enterprise Edition (J2EE) 1.4 テクノロジーを実装しています。J2EE プラットフォームは、標準化されたモジュール式のコンポーネントをベースに、これらのコンポーネントに完全なサービスのセットを提供し、複雑なプログラミングをせずにアプリケーションの動作の多くの詳細を自動的に処理することによって、エンタープライズアプリケーションを簡素化しています。

https://docs.oracle.com/cd/E19900-01/819-4741/abfas/index.html

J2EEアプリケーションモデルは、エンタープライズアプリケーションをコンポーネント、コンテナ、コネクタの3つの基本部分に分割する。アプリケーション開発者はコンポーネントに注目し、システムベンダーはコンテナやコネクタを実装して複雑さを隠蔽し、移植性を促進する。コンテナは、クライアントとコンポーネントの間を取り持ち、トランザクションサポートやリソースプーリングなど、両者にとって透過的なサービスを提供する。コンテナの仲介により、多くのコンポーネントの動作をプログラムコードではなく、デプロイ時に指定することができる。
アプリケーションサーバーでは、各サーバーインスタンスにWebとEJBという2つのコンテナが含まれている。コンテナは、J2EEコンポーネントにセキュリティやトランザクション管理などのサービスを提供するランタイム環境である。Java Server PagesやservletなどのWebコンポーネントは、Webコンテナ内で実行される。Enterprise JavaBeansは、EJBコンテナ内で実行される。

https://docs.oracle.com/cd/E19900-01/819-4741/abfas/index.html

Jakarta Enterprise Beans(EJB、旧Enterprise JavaBeans)は、企業向けソフトウェアのモジュール構築のためのいくつかのJava APIの1つである。EJBは、アプリケーションのビジネスロジックをカプセル化するサーバーサイドのソフトウェアコンポーネントである。EJBウェブコンテナは,コンピュータセキュリティ,Javaサーブレットライフサイクル管理,トランザクション処理,及び他のウェブサービスを含むウェブ関連ソフトウェアコンポーネントのための実行時環境を提供する。EJB仕様は、Java EE仕様のサブセットである。

https://en.wikipedia.org/wiki/Jakarta_Enterprise_Beans

CORBA(Common Object Request Broker Architecture)は、OMG(Object Management Group)によって定義された、多様なプラットフォーム上に展開されるシステムの通信を容易にするために設計された標準規格です。CORBAは、異なるオペレーティングシステム、プログラミング言語、およびコンピューティングハードウェア上のシステム間のコラボレーションを可能にします。CORBAはオブジェクト指向モデルを使用しているが、CORBAを使用するシステムはオブジェクト指向である必要はない。CORBAは分散オブジェクトパラダイムの一例である。

https://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture

分散オブジェクトは1990年代後半から2000年代前半にかけて流行したが、それ以降は人気がない

https://en.wikipedia.org/wiki/Distributed_object
  • クロスプラットフォームのシリアライゼーションプロトコルであるCap'n ProtoのRPC機能は、分散オブジェクトプロトコルに相当する。分散オブジェクトのメソッドコールは、インターフェース参照/能力を通じて(必要であれば、1つのネットワークリクエストで、連鎖的に)実行することができます[5]。

  • 分散オブジェクトは、Objective-CではCocoa APIを使ってNSConnectionクラスとそれをサポートするオブジェクトで実装されています。

  • 分散オブジェクトは、Java RMIで使用されています。

  • CORBA は分散混合オブジェクトシステムを構築することができます。

  • DCOM は Microsoft プラットフォーム上の分散オブジェクトのためのフレームワークです。

  • DDObjects は Borland Delphi を使った分散オブジェクトのためのフレームワークです。

  • Jt はメッセージングパラダイムを使った分散コンポーネントのためのフレームワークです。

  • JavaSpaces は、分散共有メモリ(スペースベース)のための Sun の仕様です。

  • Pyro はプログラミング言語 Python を使った分散オブジェクトのためのフレームワークです。

  • Distributed Ruby (DRb) は、Ruby プログラミング言語を使った分散オブジェクトのためのフレームワークです。


お願い致します