Oracle WebLogic Server 12c:
開発を支援する新機能ご紹介
日本オラクル株式会社
Fusion Middleware 事業統括本部
プリンシパルセールスコンサルタント
二條智文
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメン ト(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さ い。オラクル製品に関して記載されている機能の開発、リリースおよび時期につい ては、弊社の裁量により決定されます。
Oracle
とJava
は、Oracle Corporation
及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
Program Agenda
進化を続ける WebLogic Server
最新仕様 Java EE 6 への対応
開発生産性向上のための機能強化
WebLogic Server 12c への移行
進化を継続する WebLogic Server
~ WebLogic Server 12c の
位置付け ~
WebLogic Server Powers the Cloud
柔軟性・堅牢性を両立する採用実績 No.1 の Java EE 基盤
柔軟性・生産性の高い標準基盤
– Java EE 標準仕様への早期対応
– 幅広いプラットフォームへの対応
堅牢なエンタープライズ基盤
– 可用性・高速性・運用管理性
– 高性能 / 高信頼性 JRockit JVM
– Oracle Database とのシームレスな連携
WebLogic Server の 進化
常に最新の Java SE/EE 標準を実装し製品化
ミッションクリティカル・システムを支えるための継続的な性能・堅牢性・管理 容易性の追求
J2EE 1.3
J2SE 1.4.2
コア機能強化 ミッション・クリティカルシステ ムJ2EE基盤機能を確立 J2EE1.4
JavaSE 5
ゼロダウンタイム計画外停止の最小化に加え て計画停止も最小化。厳しい 運用要件にも柔軟に対応
Java EE 5
Java SE 5&6
オラクル製品との連 携•
オラクルDB連携• Enterprise Managerによる
一元管理•
インメモリ技術との連携 Java EE 5&6
Java SE 6
オラクル製品との統 合、サン製品との連 携• Oracle iASとの統合
• Oracle RACとの親和性強
化• Java技術(JRockit)の強化
• Sun Javaとの連携、統合
Java EE 6
Java SE 7
ミッション・クリティカル性の強 化•
最新標準への対応による開発 生産性向上• RAC
連携強化: 耐障害性及びスループット向上
•
更なる高速化•
運用管理性の強化WebLogic 8.1
WebLogic 9.x
WebLogic 10.x
WebLogic 11g
WebLogic 12c
ミッションクリティカル
Java EE基盤
自動チューニング 運用管理性向上
フルレイヤ クラスタリングの完成
オラクル製品群の 本格的な統合
クラウド・スケールの可用性 最先端の開発標準
New!!
WebLogic Server 12c New Feature ①
WebLogic Server 12c による開発生産性の向上
CAT
幅広い標準仕様への対応
– Java EE 6
のフルサポート–
代表的なOSS
フレームワークのサポート 開発効率のさらなる向上
–
標準的なJava IDE
サポート– Maven統合による開発環境連携
診断機能による品質向上
– Flight Recorder
によるJVM
診断–
クラスローダー解析ツールの提供WebLogic Server 12c New Feature ②
データベース連携機能強化による高可用性 OLTP の実現
Active Grid Link for RAC による信頼性・性能向上
DB クラスタを超える高可用性 DB 環境の実現
高可用性 DB 環境を利用したトランザクション・ログの保護
Active Data Guard and Golden Gate
3X OL T P
Coherence
Active GridLink for RAC
Coherence WebLogic Server
Active GridLink for RAC WebLogic Server
3X OL T P
Oracle Databaseとの連携により堅牢なOLTP環境を提供
最新仕様 Java EE 6
への対応
Java EE 6 の進化の経緯
Ease of Development を目指して
初期のJava EE
(J2EE
)の誕生した背景–
クライアント・サーバ型システムが主流– Multi Tierを前提とした設計思想を元にJ2EEが誕生
J2EEの問題点
–
冗長・複雑な設計・コード記述の作法、大量の設定ファイル– J2EEコンテナへの依存によるテストの困難さ
Java EE 6はLightweightなアプリケーション環境を提供
さらに柔軟な開発が可能な仕様を追加より簡易なオープンソース・フレームワークを利用した開発が増加
Java EE 5 から Ease of Development をテーマに仕様改善
優良なオープンソース・フレームワークを標準仕様化
Java EE 6 による先進的な開発環境
•
開発APIの簡素化•
標準ベースの依存性注入(DI:Dependency Injection)
• Light weightな標準仕様からHigh volume な標準仕様まで網羅的に
サポート柔軟性・軽量化
•
生産性の高いオープンソース・フレーム ワークの取り込み• JSF/Ajaxの採用によるリッチなWebアプ
リケーション環境の実現•
標準ベースの採用によるロックインから の脱却拡張性
• POJOプログラミング・モデルの採用
• IDEサポートの容易なアノテーションの活用
•
煩雑なXML設定ファイルの削減•
アノテーションによるディスクリプタの削減 開発生産性 WebコンテナへのEJBのデプロイが可能(EJB Lite)
– WebアプリケーションからEJBをローカル呼出し
– WebコンテナのみでEJBを利用したアプリケーションを実行可能
EJB コンテナ Web コンテナ
Java EE 6 仕様の全体像
Lightweight な Web アプリケーション環境を提供
CDI & DI Bean V ali d atio n JS F
JS T L
JP A
JM S
JT A
JCA
Ja v aM ail
JA CC
JA S P IC
W S M etad ata
JA X -RS
JA X -RP C
JA X -WS
JA X -B
SAAJ
Web EJB Lite
Java SE
CDI & DI Bean V ali d atio n JP A
JM S
JT A
JCA
Ja v aM ail
JA CC
JA S P IC
W S M etad ata
JA X -RS
JA X -RP C
JA X -WS
JA X -B
SAAJ
EJB
Java SE
RMI/IIOP
JDBC JDBC
Java EE 6 における代表的な標準仕様
開発生産性・拡張性・柔軟性の向上
標準仕様 開発領域 特徴
JSF 2.1
ユーザインタフェース
•
リッチなユーザインタフェースの効率的な開発を実現Servlet 3.0 •
冗長な設定・コード記述の削減により開発生産性を向上•
非同期ServletによるAjax対応EJB 3.1
ビジネスロジック•
冗長な設定・コード記述の削減により開発生産性を向上•
より柔軟な制御機能の追加JAX-RS
サービス公開•
容易なサービス公開を実現するWebサービス標準仕様CDI
全領域•
レイヤ間の疎結合化による柔軟性を向上するDIフレーム ワーク標準仕様最新のWebアプリケーションを効率良く開発
JavaServer Faces ( JSF ) 2.1
リッチなユーザインタフェースの効率的な開発
Facelets によるダイナミックな UI の開発
– UIコンポーネント単位でのレンダリング・
制御
– Ajaxサポートによる対話型アプリケー
ションの実現
– RAD
ツールの利用による容易なWeb UI
の開発 開発効率の向上
–
テンプレート機能による開発量の削減–
アノテーションの拡充によるfaces-config.xml
のオプション化Fac e s S e rv le t JSP
XHTML
ManagedBean
Rende re r
faces- config.
xml
Ajax
生産性向上 拡張性・柔軟性
Servlet 3.0
開発容易性に重点を置いたメジャー・バージョンアップ
冗長な設定ファイルの徹底的な削減
–
アノテーションによるコンフィグレーション・レスなServlet
開発– web fragments の導入による web.xml のスリム化
非同期 Servlet の正式サポート
– Comet/Reverse Ajax
等で利用するクライアントとの非同期対話–
処理時間のかかる処理のバックグラウンド実行大規模開発に影響を与える設定ファイルの複雑化の防止 リッチなWebクライアントを開発するための機能を標準化
生産性向上 拡張性・柔軟性
冗長なインタフェース不要の EJB
WAR ファイルへの EJB の梱包
– WAR
内に梱包されたEJB
モジュール(JAR
等)を認識– EAR
の作成が不要 JNDI 名の標準化( Portable Global JNDI )
– AP
サーバ依存であったEJB
のJNDI
名を統一–
異なるAPサーバ間でのEJBの移植性が向上Enterprise JavaBeans ( EJB ) 3.1 ①
冗長な設定・コード記述の排除による発生産性の向上
冗長なコーディング・設定を解消し生産性を向上
ejb/remote/A_EJB java/ejb/A_EJB java:global/myApp/A_EJB
APサーバA APサーバBWAR Servlet EJB EAR
WAR Servlet EJB
生産性向上 拡張性・柔軟性
EJB メソッドの非同期化
–
メソッドの終了を待たずにクライアント処理を続行–
メソッド対しアノテーションの追加のみで実装可能 Singleton Session Bean
–
複数のEJB
クライアント間で共有可能な1
インスタンスのみのEJB
EJB のスケジュール実行( EJB Timer )
– @Schedule
アノテーションにより実行時間を指定Enterprise JavaBeans ( EJB ) 3.1 ②
より柔軟な制御機構の追加
EJB 14:00
15:00 16:00
@Schedule(minute=“0”,hour=“14-16”) public void sendMailTask(){
//...
}
Client EJB
EJB
Singleton Session
Bean Client Servlet
生産性向上 拡張性・柔軟性
JAX-RS 1.1
RESTful 対応の Web サービス仕様
JAX-RS とは
–
外部公開用API
の提供形態として注目されるRESTful
を実装するJava EE Web
サービスAPI
仕様– POJO
、EJB
をRESTful Web
サービスとして公開 RESTful の特徴
–
実装言語に依存しないHTTPベース のステートレスなプロトコル–
簡易的な書式の採用により容易な 開発を実現<クライアント側の開発>
テスト用の静的ファイルでモックテスト
Webサーバ
<サーバ側の開発>
コマンドラインやブラウザによる確認
WebLogic Server
不特定多数のユーザに公開する
APIの提供形態として最適
生産性向上 拡張性・柔軟性
JAX-RS Web サービスの記述例
アノテーションによる関連付け
リクエストとの関連付けをアノ テーションで記述
– HTTP
メソッド– URI
、Query String
– Acceptヘッダ、etc.
POJO/EJB を Web サービス化
– Servlet から呼び出すBean等をその
まま公開可能–
実装クラスはPOJOとしてテスト可能@Path("/customers")
@Stateless
@Produces(MediaType.TEXT_PLAIN) public class CustomerResource { @GET
public String getAsPlainText() { // ...
} @GET
@Produces(MediaType.APPLICATION_JSON) public String getAsJson() {
// ...
} @GET
@Path(“/prop/{cid}”) public Customer get(
@PathParam(“cid”) String cid) { // ...
} @PUT
public void putBasic(String customer) { // ...
} }
Web
サービスのURI
パスSession BeanをWebサービス化(任意)
デフォルトメディアタイプ
text/plain(デフォルトメディアタイプ)でGETされた場合に実行
application/jsonでGETされた場合に実行
/customers/prop/1234 の ‘1234’を引数に代入
PUT
された場合に実行容易なサービス化の実現 単体テストの容易性の確保
生産性向上 拡張性・柔軟性
Context Dependency Injection ( CDI )
標準化された DI フレームワークによる柔軟性の向上
Context and Dependency Injection の特徴
– Java EE
アプリケーション内での依存性注入
各Java EEコンポーネント(JSF/Servlet/EJB etc.)におけるDI
任意のアプリケーション・ロジックへのDI–
任意のフィールド、引数に対する型セーフなDI
を実現–
スコープ指定によるManaged Bean
のライフサイクル制御@RequestScoped
@BeanCounter public class Accountant implements Manager {
...
}
@SessionScoped
@PeopleManager public class Boss implements Manager {
...
}
@Stateful
public class ManagementBean { private Manager peopleManager;
@Inject @BeanCounter Manager counter;
@Inject @PeopleManager void init(Manager manager) { this.peopleManager = manager;
} ...
}
リクエスト・スコープで フィールドにDI
セッション・スコープで メソッド引数にDI
生産性向上 拡張性・柔軟性
Java EE 6 の特徴と優位性
開発生産性・拡張性・柔軟性を重視した Java EE 標準仕様
開発生産性向上の追求
実績の多い優秀なオープンソース・フレームワークを参考に洗練された標準仕様
アノテーションの導入により冗長な設定ファイル、コード記述を徹底的に削減して開発効率 の向上を実現拡張性・柔軟性を両立させる機能強化
リッチなWeb
アプリケーションを実現するUI
フレームワークと非同期アプリケーションフレー ムワーク
データアクセス機能の強化による柔軟なO/Rマッピング DIフレームワークの積極的な活用によるアプリケーションの柔軟性・拡張性の向上
開発生産性向上のための
機能強化
統合開発環境によるアプリケーション開発
WebLogic Server 12c の開発環境
Oracle Enterprise Pack for Eclipse 12c
幅広く利用される IDE による開発
JDK 1.7.0 をサポート WebLogic Server 12c に対応
Java EE 6
仕様の開発サポート生産性向上 拡張性・柔軟性
WebLogic Server12c に対応
– Java EE 6
アプリケーションのビルド、デプロイ、デバッグに対応– Java SE 7
の新規追加された文法にも対応Oracle JRockit Mission Control 4.1
アプリケーションの挙動を分析し品質向上を実現
対応プラットフォームの拡充と新仕様のサポート– Eclipse 3.7 (Indigo) プラットフォームとして提供
– Linux/Windowsに加え、Mac OS X/Solaris(x86/SPARC)に対応
– HotSpot JDK( ※ )
及びJava SE 7
に対応
新たな分析機能と機能改善– HotSpot/SolarisプラットフォームのDTrace分析機能を搭載
– Oracle Coherence特有の分析を行うCoherence Plug-inの提供
–
分析機能の改善
スレッドグラフによるスレッド遷移追跡機能の向上
スレッド数/
イベント数が大量のJFR
解析時の性能改善
クラスローダ単位でのメモリ分析に対応分析が困難なチューニング問題の解決を支援
生産性向上 拡張性・柔軟性
※Flight RecorderにはJDKの将来バージョンにて対応 予定
WebLogic Maven プラグイン
Maven プラグインによる自動化された開発環境の構築
Apache Maven とは
–
ビルドやテスト、ライブラリ配布等、開発プロジェクトの効率化を支援するApache Software Foundation
のプロジェクト管理ツール Apache Maven の機能
–
開発プロジェクトサイト/リポジトリの構築と管理–
ライブラリの依存関係の解決–
バージョン管理システムとの連携(CVS
、Subversion
等)–
ビルドの自動化(コンパイル、アーカイブ生成、Javadoc
生成等)–
テストの自動化生産性向上 拡張性・柔軟性
WebLogic Maven プラグインの各機能
開発環境の構築や開発作業を簡素化する仕組み
WebLogic Server 11gR1
までの機能– WebLogic Server上へのアプリケーションのデプロイ
–
デプロイ済みのアプリケーションの取得、開始、終了、更新– Apache Maven 2.x 以降に対応
WebLogic Server 12c
からの新機能– WebLogic Serverのインストール
– WebLogic ドメインの作成
– WebLogic インスタンスの起動・停止
–
モジュールのコンパイル(JSPの事前コンパイルを含む)– WLST(WebLogic Scripting Tool)スクリプトの実行
WebLogic開発を自動化しチーム開発の効率化を促進
生産性向上 拡張性・柔軟性
開発用 zip ディストリビューション
より手軽な開発環境の構築
開発用途向け WebLogic インストーラー
– Zip
の解凍と所定の環境変数の設定のみ WebLogic Server 12c で 168MB まで縮小
Maven プラグインと組み合わせてインストー ル自動化
–
チーム開発時の環境構築の自動化・高速化 が可能に大規模プロジェクトにおける開発環境構築を迅速化
生産性向上 拡張性・柔軟性
大規模アプリケーションデプロイ時の問題点
–
大量のライブラリ間のクラス競合による不正動作の可能性
各アプリケーションが参照するライブラリ間のクラス競合 WebLogic Serverが参照する3rdパーティ製ライブラリとの競合
クラス・ローダー分析ツールの用途
–
診断が困難なクラス競合を検出–
フィルタリング・クラスローダー機能による競合排除を支援–
クラスローダー毎のロード済みクラスを管理コンソールから分析
ロード済みクラスの一覧、特定のクラスの検索
競合するクラスの検出
競合を回避するフィルタリング・クラス・ローダーの設定値を生成クラス・ローダー分析ツール(CAT)
Classloader Analysis Tool
CAT
生産性向上 拡張性・柔軟性
クラス・ローダー分析ツールの利用例①
ロード済みクラスの一覧・詳細の確認クセス可能
生産性向上 拡張性・柔軟性
各クラスローダーのJAR一覧
Classloader Analysis Tool
クラスローダー内のクラス一覧
クラス・ローダー分析ツールの利用例②
異なるバージョンのライブラリ間のクラス競合の検出
アプリケーション利用のAntライブラリ
WebLogi Serverに含まれるAntライブラリ
競合ライブラリの混入による潜在的な不具合を未然防止
生産性向上 拡張性・柔軟性
WebLogic Server 12c への
移行
WebLogic Server 12c への移行
バージョンアップ / iAS や GlassFish からの移行
Internet
Application Server Automated Tooling
WebLogic Server 11g Simple Upgrade
GlassFish
Redeployment
GlassFish 上のアプリケーションの移行
Deployment Descriptor の自動認識
GlassFish の Web アプリケーションアーカイブを WebLogic Server 上 にデプロイ可能
GlassFish のデプロイメント・ディスクリプタを WebLogic Server の対 応する項目として認識・動作
EAR WAR GlassFish Application
glassfish- web.xml
<Deployment Descriptor>
sun-web.xml
<Deployment Descriptor>
DETECT DEPLOY
• GlassFish
のDD
を自動認識• WebLogic Server
の対応す る項目として認識・動作Oracle iAS からの移行
SmartUpgrade による OC4J からの移行支援
SmartUpgrade
とは– OC4JアプリケーションをWebLogic Serverへの移行を支援す
る解析・変換ツール– JDeveloperのプラグイン、及びコマンドラインによるツールを
提供
レポート機能–
アプリケーションの互換性情報の出力– OC4J及びWebLogic Serverのサーバ設定の差分情報の提
示
自動生成機能– Web/EJB/Webサービスアプリケーションの自動変換
–
デプロイメント・ディスクリプタの変換–
データソース等のサーバ設定の生成WebLogic Server 12c へのバージョンアップ
旧バージョンの WebLogic Server との互換性
バージョンアップに考慮すべき互換性–
アプリケーションの互換性–
ドメインの互換性(サーバ設定など)
アプリケーションの互換性–
ほとんどの場合WLS 8.1/9.x/10.x(10.0/10gR3/11gR1)上のアプリケーションは修正不要–
変更の必要性については互換性に関するドキュメントで判断“WebLogic Server 12.1.1 Compatibility with Previous Releases ”
http://docs.oracle.com/cd/E24329_01/web.1211/e24497/compat.htm#g1143266
ドメインの互換性– WLS 9.x/10.x
のドメインはそのまま相互運用可能– WLS 8.1のドメインはドメインアップグレードウィザードによりアップグレード
Oracle WebLogic Server
アプリケーションWLS 12c (12.1.1) ドメイン WLS 9.x~10.3.x)ドメイン
WebLogic Server 12c への移行パス
既存環境に応じたツールの適用
ドメイン環境
WebLogic Server (8.1)
ドメインアップグレード ウィザード
ドメインのアップグレード アプリケーション
weblogic.DDConverter DD
の更新のみの場合WebLogic SmartUpgrade
カスタム
Java EE
アプリケーションの移行ドメイン環境
WebLogic Server (9.x/10.x)
既存ドメインの相互運用
相互運用を含めより安全なバージョンアップを支援
WebLogic Server 12c の優位性
開発生産性を追求した Java EE 6 プラットフォーム
最新仕様Java EE 6への対応による開発生産性向上
可読性を高め開発量を最小限に抑えることによる、品質向上と開発コストの削 減の両立
最新の技術を積極的に取り入れ、ユーザビリティの高いアプリケーションの容易 な開発の実現Java EE 6
の効率的な開発を支援する開発ツールの提供
ニーズに合わせて選択可能なWebLogic Server
開発に最適化された開発ツー ルの提供
大規模な開発プロジェクトを支援する連携機能の強化
円滑なアプリケーション移行を実現する移行ツールの提供参考情報
OTN Oracle WebLogic Server
製品サイトhttp://www.oracle.com/technetwork/jp/middleware/weblogic/overview/index.html
Oracle WebLogic Server ダウンロードサイト(英語)
http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html?ssSourceSiteId=ocomen
Oracle WebLogic Server 12c 製品マニュアル(英語)
http://docs.oracle.com/cd/E24329_01/index.htm
– Oracle WebLogic Server 12c
リリースノートhttp://docs.oracle.com/cd/E24329_01/doc.1211/e26593/toc.htm – Oracle WebLogic Server 12c 新機能
http://docs.oracle.com/cd/E24329_01/web.1211/e24494/toc.htm – Oracle WebLogic Server 12c
互換性情報http://docs.oracle.com/cd/E24329_01/web.1211/e24445/compatibility.htm – Oracle WebLogic Server 12c
アップグレードガイドhttp://docs.oracle.com/cd/E24329_01/web.1211/e24497/toc.htm
– Oracle WebLogic Server 12c
サポートプラットフォーム情報http://www.oracle.com/technetwork/middleware/ias/downloads/wls-1211x-certmatrix-1395408.xls
WebLogic Server 最新情報はこちら
WebLogic Channel
WebLogic Serverに関する様々な話題や技術情報、
Java EEに関する解説記事などをほぼ毎週更新中!
Twitter: Oracle Middleware/JP
WebLogic Server、Oracle Fusion Middlewareに
関する情報をツイート。要フォローです!oracle.co.jp/weblogic
@OracleMiddle_jp
コース内容
■Java EE 6 概要
■開発環境の整備
■JavaBeans, アノテーション, ロギング
■Webコンポーネントモデル
■JSFを使用した開発
■Ajaxを使用したJSF複合コンポーネント開発
■Apache Trinidadを使用したモバイルコンポーネント開発
■CDIによる依存性注入
■Bean Validationの使用
■EJBコンポーネントモデル
■Java Persistence API
■トランザクションポリシーの実装
■WebサービスとJava EE 統合技術
■セキュリティポリシーの実装
受講 前提条件
・HTML, CSSの基礎知識およびSQLの基礎知識 ・Java SE 7 プログラミング I, II の受講 (推奨)
・IDEを使用したJavaプログラミング経験 対象者 ・Javaアプリケーション開発者
コース日程 5日間 日程の詳細は
Oracle University Webサイトにてご確認ください。
受講料 定価¥
363,825
(税込)※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。
開発生産性が向上した
Java EE 6
をキャッチアップJava エンジニア必修コース
Java Platform, Enterprise Edition 6のWeb Profileに準拠したエンタープライズアプリケーションを開発およびデ
プロイするための知識を習得します。このコースではSession Enterprise JavaBeans (EJBs), Java PersistenceAPI (JPA), Servlets, JavaServer Pages (JSPs) , JavaServer Faces (JSF), Contexts and Dependency Injection (CDI), Bean ValidationなどJava EE 6 標準仕様をカバーし、主にJSFテクノロジを使用して、デスクトッ
プやモバイルWebブラウザからアクセス可能なWebベースのアプリケーションの開発方法に焦点を当てます。Java EE 6 アプリケーション開発
Java
次回開催日程 ■ 2013年1月21日(月) – 1月25日(金)
Oracle University おすすめ研修
コース名 日数 定価
(
税込)
コース開催予定Oracle WebLogic Server 11g:
管理(WLS12c
対応) 5 363,825 2013/1/28 - 2/1 Oracle Coherence 3.6:
データ・グリッド開発と操作5 363,825 2013/2/18 - 22
Java SE 7 New Features 2 103,950 2013/2/4 - 2/5 , 2013/3/21 - 3/22
Java SE 7 プログラミング I 3 155,925 2012/5 - 12/7
Java SE 7 プログラミング II 3 155,925 2013/1/16 - 1/18
Java EE 6
アプリケーション開発5 363,825 2013/1/21 - 1/25
※ Oracle PartnerNetwork
会員様は、パートナー割引価格で受講いただけます。※日程の詳細は Oracle University Webサイト にてご確認ください。
http://www.oracle.com/jp/education/
オラクルユニバーシティ