EJB(Enterprise JavaBeans)

エンタープライズ

JavaBeansコンポーネント・モデルのミドルウェア/サーバー機能を拡張した、サーバーを開発するための中核技術の1つで、トランザクションをサポートするソフト・コンポーネントになるAPIの名称。「EJB」により、分散Javaアプリケーションの下位レベル・コーディングの要件がいくつか解消される。「EJB」には、主にビジネスロジックを扱う「Session Bean」、主にデータベースなどのデータソースのデータを扱う「Entity Bean」、JMS(Java Messaging Service)のキューやトピックに送られたデータを処理するEJB 2.0で登場した「Message-driven Bean」の3種類があり、さらに「Session Bean」には、クライアントとのやりとりの状態を保持できる「Stateful Session Bean」と、保持しない「Stateless Session Bean」がある。IBMは「EJB」を使ってロータス(Lotus Development)社のDominoなどを拡張し、CICSなどのハイエンド・トランザクション・システムを利用したビジネス・ロジックBeansをカプセル化できるようにしている。IBMやオラクルなどのデータベース・ベンダーがデータベースをサポートするように要求したため、1997年12月10日にJavaSoft社はInternet Worldで、Session EJBとEntity EJBの2つのグループに分割したEJBの仕様を正式に発表した。EJB Ver.1.0ではSession Beansのサポートが要求され、Ver.2.0ではEntity Beansのサポートが要求される。EJB1.1の仕様にはシステムのパフォマンスを低下させる問題があったことから、「遅い」「使いもにならない」というイメージが一般化していたが、2001年9月に出されたEJB2.0最終版の仕様ではこの問題を解決し、さらにMDB(メッセージ駆動型Bean/Message Driven Bean)はJMS(Java Message Service)に統合されて、標準のJMSコンシューマとして動作し、J2EE上で非同期処理を実現するためのフレームワークを提供するようになり、これまでのエンティティBeanのコンテナ管理のCMP(永続化機構/Container Managed Persistence)を刷新し、これまでは開発者が独自にオブジェクト間の関係を実装してきたCMR(コンテナ管理リレーション/Container Managed Relation)の仕様が追加されるなど、大きく改善された。また、Entity Beansでリレーショナル・データベースと連携する永続性のあるEJBになる。詳細情報はURL(http://java.sun.com/products/ejb/)で知ることができる。米国のネットスケープ・コミュニケーションズ(Netscape Communications)社はインターネット技術と既存システム資産を橋渡しする拡張機能を構築できるツールセット「Netscape Extension Builder 2.1」でもEJBをサポートし、Apolloという開発コードネームで1998年後半に出荷を予定している中核アプリケーション・サーバー「Netscape Application Server」の次期バージョンでEJBをサポートすることになった。日本IBMは2002年3月5日に、子会社のロータスと日本チボリシステムズを2002年7月1日付で日本IBMに統合し、日本IBMソフトウェア事業部の1部門にすると発表した。