[J2EE] Java基本ライブラリ郡

Java EEJava Platform, Enterprise Edition
エンタープライズ領域を対象とした業務システム等の設計/開発/運用のための規格郡

Java EE仕様の歴史
ver1.2:
WebとEJB
ver1.3:
非同期型アプリモデルの提供とベンダ間の相互接続性の解決
ver1.4:
Webサービス技術の標準統合と運用管理の仕組みやインタフェースの一般化
ver1.5:
開発の容易性(Ease of Development)をコンセプトにした配備記述子を代替するアノテーションによるアプリ動作時設定の記述やPOJO(Pre Old Java Object)開発を可能にするEJBインタフェースの簡略化とJPA(Java Persistence API)によるオブジェクト永続化


Java Servlet
サーバサイドJavaプログラムとして
入力データ解析・業務実行・動的HTML生成
するプログラム
動的HTML生成は
従来の問題①Servletとして作るとprintメソッドが大量に発生しプログラムの可読性を下げる
従来の問題②画面イメージの変更の度に影響を受けること
をJSPに記載することで解決した

■JavaServer Pages(JSP)
動的HTMLの生成部分の可読性を高めるためにHTMLにスクリプトで埋め込む形でJavaプログラムを記述出来るようにしたもの
サーバサイドのJavaアプリプログラムを全てJSPで記述すること可能ではあるが
他の可読性を下げてしまうため 動的HTML生成部分のみをJSPで記述するのが望ましいとされる
JSPは実行時にコンパイルされてServletプログラムとして動作する

■JavaServer Pages Standard Tag Library(JSTL)
JakartaのTaglibsプロジェクトで公開されているJSTの拡張タグライブラリのうち
特に高い汎用性を求められるものについて策定した標準仕様
条件分岐や繰り返し処理などのためのタグがある

■JavaServer Faces(JSF)
Java EE5で追加された JavaベースのWebアプリ構築のためのFW
アーキテクチャはStrutsと同じMVCモデル
ViewとControllerの機能を提供するが
StrutsよりもEoD(Ease of Development)を考慮している

■JavaBeans Activation Framework(JAF)
データの種類(MIMEタイプ)に応じて、適切なJavaBeansを呼び出す仕組むを提供するAPI
Windowsで実現しているファイル拡張子の関連付けなどと同じように
ファイル名から種類を判別して 編集/閲覧等のメニューを表示し
その種類に応じたJavaBeanを起動できる
JavaMailでも利用されている

■JavaMail
Javaプログラムから電子メールを発信するためのアプリケーションインタフェース
非同期で結果を通知するなどの利用が可能
JavaMailは Java VMが動作すれば Webコンテナ/EJBコンテナのどちらでも動作できる

■Java Persistence API(JPA)
Javaオブジェクトの状態を永続化するために提供されているAPI
EJB3.0の一部として導入されたものだが EJBから独立したAPIであるため JPA単体での利用可能
EJB2.x以前のEJB Entity Beanに代わるものである
EJB2.x以前のEJB Entity Beanは
理由①仕組みが複雑
理由②永続化を実現するプログラミングが煩雑
で普及しなかった
JPAは
アノテーションでのオブジェクトとデータベースとの関連付け(O/Rマッピング)が可能
提供されているトランザクション管理を行うAPIの利用で永続化対象データの一貫性を保証できる

■Java Transaction API(JPA)
JTAインタフェースは
JNDIを使用してEJBやServlet等のJ2EEアプリケーションから簡単に利用でき
CORBAのJavaアプリケーションからも使用でき
複雑に分散して実行されるトランザクションの一貫性を簡単に保てる

■Java API for XML Registries(JAXR)
UDDIやebXML等のXMLベースのレジストリサービスにアクセスする時に使用するJava言語の標準API

■Java API for XML-based RPC(JAX-RPC)
SOAPやWSDLを使ってJava言語でRemote Procedure Call(RPC)でリモートプログラムを呼び出す際に使用する標準APIやWebサービスアプリケーションの実装方法等について定義した仕様

■Java API for XML Web Service(JAX-WS)
JAX-RPCの後続仕様
XML/HTTPバインディングや非同期通信が可能

■Web Service Metadata for the Java Platform
Webサービスの開発をPOJOベースで出来るようにするためのアノテーションセットの規定
規定されたアノテーションを使うことで
WSDLでのインタフェース定義や各種設定ファイルの生成を開発者が意識しなくて良くなる

■Common Annotations for the Java Platform
Java EEやJava SEで標準的に使われるアノテーションの定義

■SOAP Attachments API for Java(SAAJ)
JavaでSOAPメッセージや添付ファイル付きのSOAPメッセージを作成/読込するためのAPI

■Java Architecture for XML Binding(JAXB)
JavaとXMLのデータバインディングのためのAPI

■Streaming API for XML(StAX)
JavaプログラムからXMLドキュメントを解析/生成するためのAPIを提供するXMLパーサ
# JAXB2.0でもStAXを使用している
SAX同様のイベント伝達方式を採用しているが
StAXではアプリから特定のイベントがあるかどうかを
パーサに問い合わせる点がSAXと異なる
SAXは
登録するイベントの数が増えるとイベント処理のためのプログラミングが複雑化し
XMLドキュメントの解析をアプリ側が制御できない欠点がある
StAXは
イベントが存在すればアプリがそれをパーサから取得してそれぞれに応じた操作を実行することSAXより効率化が図られる
# 同様のXML解析用APIにDOMやSAXがある
# DOMは
# XMLドキュメント全体の解析の結果を
# DOMツリーとしてメモリ上に格納する方式
# 一度メモリ展開されればその後の処理性能は高いが
# XMLドキュメントのサイズが大きくなるに連れ
# 使用するメモリ容量が増えてしまう
# SAXは
# XMLドキュメントを先頭から順に読みこみ
# 目的の要素が開始された等のイベントを検出した時点で
# XMLパーサからアプリに伝達(コールバック)する方式
# DOMとは対照的に
# イベント伝達後は解析内容をメモリに保持しないため
# 使用するメモリ容量は少しで済む

■Java EE Management / Java EE Development
Java Management Extensions(JMX)は
Javaを利用してネットワーク上のハードウェアやソフトウェアなどを統合的に管理・監視するための仕様
Java EE Managementは
Java EEアプリサーバの現在の状態や配備したアプリの状態等を知るためにサーバに対して問い合わせる管理ツール用のAPIを規定している
Java EE Developmentha
Java EEアプリサーバによって提供される配備ツールの実行環境とプラグイン・コンポーネント間のインタフェースを定義している

■Java Authorization Service Provider Contract for Containers(JACC)
J2EEアプリサーバと認証ポリシー・プロバイダ間の規約を定義した仕様

■Enterprise JavaBeans(EJB)
コンポーネント・ベースの分散ビジネス・アプリの開発者と適用のためのアーキテクチャ
EJB3.0では
O/RマッピングFWやDI/AOPコンテナFWからフィードバックされた機能とアノテーションで開発の容易化が図られている

■Java Message Service(JMS)
複数のオブジェクト間においてイベント通知を実現できるサービスであり
キューやトピックと呼ばれる宛先を介して非同期通信が行える
# EJB2.0で導入されたイベント受信処理を行うメッセージドリブンBeanはJMSとの連携で実現する
利用者は標準APIで
メッセージ作成/宛先へのメッセージ送信/宛先からのメッセージ受信
が容易に出来る
統一された構造のメッセージを抽象化された宛先を介してやり取りするため
システムとアプリの結合を疎に保つ特徴がある

■Java EE Connector Architecture(JCA)
Java EE Connector Architecture(JCA)は
既存の多数のアプリサーバとEnterprise Information System(EIS)間の接続の問題に対して
Javaによるsolutionを提供する
JCAを使用することで
EISベンダは各アプリサーバに合わせて製品をカスタマイズする必要がなくなる
JCAに準拠したアプリサーバのベンダは
カスタムコードを追加することなく新しいEISへの接続機能を追加できる
JCAは
Java EEの一部として定義及び標準化されたテクノロジに基づいている

■Java Naming and Directory Interface(JNDI) @J2SE5/6
Javaプログラムの名前・ディレクトリサーバへのアプリインターフェース
任意の部品コンポーネントをJNDIで登録することで
名前を指定してターゲットのクラス/オブジェクトを取得でき
アプリのポータビリティの向上が図れる

■JDBCデータソース
JDBCコネクションをプーリング管理することで
コストの高いデータベースへの接続/切断処理をトランザクション実行前に行い
トランザクションの実行性能を上げる

■RMI over IIOP (RMI/IIOP) @J2SE5/6
Javaのプログラム間通信手段としてはRMIが使われてきたが
J2EEが要求するトランザクション・セキュリティ技術に対応するには独自プロトコルによる拡張が必要であるため
ベンダ固有の通信となってしまい相互接続性が低かった
RMI over IIOPは
CORBAの高い相互接続性とJava言語への親和性の高い通信を両立して
この問題を解決する

■Java API for XML Processing (JAXP) / Xerces @J2SE5/6
JavaでXML文書を扱うための標準的なAPIである
XML文書を扱うための標準的なAPIであるDOMやSAXでは
プログラミング言語に依存しない仕様になっているため
実際にJavaでプログラミングを行う際に使用するAPIという形式ではない
JAXPは
JavaでXMLドキュメントの読み書きや構文解析する時に使用するAPIを提供する
JAXPは
アプリコードを変更することなく任意のXMLプロセッサを変更できる
プロセッサにはSun MicrosystemsのJAXP 1.3やApache XML ProjectのXercesやXalanがある

■Java Management Extensions (JMX) @J2SE5/6
Javaを利用してネットワーク上のハードウェアやソフトウェア等を統合的に管理・監視するための仕様

■Java Authentication and Authorization Service (JAAS) @J2SE5/6
Javaコードを実行中のユーザを信頼かつ安全な方法で確認する方法(認証)と
動作の実行に必要なアクセス件をユーザが保持していることを確認する方法(承認)を提供する


ref:
http://www.nec.co.jp/WebOTX/appserver/function/javaee.html

tag : Java EE J2EE J2SE

2010-05-19 01:52 : 開発 : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud