オラクル・インフラストラクチャー・サービス(IaaS)最新情報(Oracle Cloud Days Tokyo 2015)
ISE Webインフラストラクチャー部...
Transcript of ISE Webインフラストラクチャー部...
![Page 1: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/1.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
1.sMash 基本
ISE Webインフラストラクチャー部
水野 雅裕
![Page 2: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/2.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
2
Agenda
登場の背景
WebSphere sMash 概要
機能概要
開発環境
ランタイム
![Page 3: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/3.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
33
登場の背景
![Page 4: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/4.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
4
Java EE 10年を振り返って
高機能
実績
信頼性
スキル
作業量
ランタイムの前提条件
Java言語仕様の制約
よりスピーディに!シンプルに!アジャイルに!
![Page 5: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/5.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
5
Ajax
Asynchronous + JavaScript + XML ?
構成技術
– JavaScript (XMLHttpRequest)
– XML, JSON
– XHTML または HTML
– CSS
– Document Object Model (DOM)
Webブラウザを,端末から,インテリジェントなエージェントに!
Webシステムを変えるアーキテクチャ・パターン
![Page 6: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/6.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
6
Ajaxの動作フロー 1 : 非同期でも通信できる
サーバークライアント
ユーザーの
画面操作待ち時間
処理
サーバークライアント
サーバー指向 Ajax
ユーザーの
画面操作
ユーザーの
画面操作
待ち時間
待ち時間
処理
処理
ユーザーの
画面操作
ユーザーの
画面操作
ユーザーの
画面操作
ユーザーの
画面操作
ユーザーの
画面操作
ユーザーの
画面操作
処理
処理
処理
処理
処理
処理
![Page 7: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/7.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
7
Ajaxの動作フロー 2 : データのみの送受信ができる
サーバークライアント サーバークライアント
サーバー指向 Ajax
HTML #2 JavaScript
Data#2
HTML #1 JavaScript
Data#1
Data#1
Data#2
Data#3
HTTPリクエスト
HTTPリクエスト
HTTPリクエスト
HTTPリクエスト
HTML JavaScript
HTTPリクエスト
HTTPリクエスト
データ生成
画面生成
画面生成
と描画
データ生成
データ生成
画面生成
画面描画
画面描画
画面生成
と描画
画面生成
と描画
データ生成
データ生成
スクリプト
と画面雛形
の準備画面生成
と描画
![Page 8: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/8.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
8
ViewView
View
Java EEにおけるMVCパターン
ViewView
View
ControllerController
Controller
ModelModel
Model
ServerClient
1.通常のHTTPリクエスト
2.View(画面)の生成
3.Viewの返信
Modelのハード・コピー
![Page 9: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/9.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
9
ViewView
View
Ajaxを部分的に取り入れたJava EE MVC パターン
ViewView
View
ControllerController
Controller
ModelModel
Model
ServerClient
1.通常のHTTPリクエスト
2.View(画面)の生成
3.Viewの返信
Modelのハード・コピー
4.Ajaxコール
5.Viewの一部の変更
![Page 10: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/10.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
10
Ajaxを全面的に取り入れたMVCパターン
ModelModel
Model
ServerClient1.通常のHTTPリクエスト
2.View(画面)の雛形と
Controllerを返信
4.Dataの返信
3.Ajaxコール
8.Dataの返信
7.Ajaxコール
5.
View描画
6.操作
ViewView
View
ControllerController
Controller
9.
View描画
ViewView
View
ControllerController
Controller
ViewView
View
![Page 11: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/11.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
11
REST (Representational State Transfer)
WWWのソフトウェア・アーキテクチャ・スタイル
URIでリソースを表現 目的語;XXXを...
HTTPメソッドで操作を表現 述語;YYYする
– GET 取得|検索 (SELECT)– POST 作成|挿入 (INSERT)– PUT 更新 (UPDATE)– DELETE 削除 (DELETE)
Webサービス呼び出しのためのコンベンションとして利用可能
必要なものはWebサーバとHTTPクライアントだけ!
GET /developerworks/blogs/BobSutor HTTP/1.1
Host: www-128.ibm.com
………………………………………..
HTTPヘッダの抜粋(赤字がHTTPメソッド)
![Page 12: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/12.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
12
JSON (JavaScript Object Notation)
データとその構造を表す表記法
– RFC 4627
– JavaScriptのオブジェクト表記法のサブセット
– シンプル,テキスト
JavaScriptにおける操作性が高い
– 容易にパース/アンパース可能
JavaScript以外の多くのプログラミング言語
で読み書き可能
Ajax環境で、XMLの代替として、非常に多く
使用される
{
“employee" : {
"name" : "John Doe",
“dateofbirth" : “1-1-1977”
}
}
![Page 13: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/13.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
13
FeedWeb上で更新情報やサマリーなどを配信する仕組み
ユーザーはReaderを利用して欲しいFeedを入手
RSSやAtomを利用
– RSS ・・・ ブログやニュース等の更新情報を配信する文書フォーマット
– Atom ・・・ 新しいWeb上のリソース変更書式と、手続きに関する仕様
![Page 14: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/14.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
14
クライアント・サイド・マッシュアップ
Web
サービス
ベース・サーバー
兼 プロキシークライアント
HTML
JavaScript
外部サーバー
Web
サービス
Web
サービス
HTML
JavaScript
ダウンロード
REST
JSON or Feed
プロキシー
![Page 15: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/15.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
15
クライアント・サイド・マッシュアップの課題
コントローラの実装
– 各サイトごとのプロトコルの管理• 宛先アドレス,URLフォーマット,データ・フォーマット,データ構造,他
– メディエーション
• プロトコル変換• データ・フォーマット変換• データ構造変換
– フロー制御• Web API 呼び出し順序の制御• Web API戻りデータの統合
Same origin policyに対する対応策
パフォーマンス
サーバー・サイド・マッシュアップの動機
![Page 16: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/16.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
16
サーバー・サイド・マッシュアップ
Web
サービス
マッシュアップ
サーバークライアント
HTML
JavaScript
外部サーバー
Web
サービス
Web
サービス
ダウンロード
REST
JSON
シンプルな
インターフェース
複雑なコントローラ機能は
マッシュアップ・サーバーに委譲
プロトコル管理
メディエーション
フロー制御
様々なプロトコルで
多様なWebサービス呼び出し
簡単に統合データに
アクセス可能
HTML
JavaScript マッシュアップ
エンジン
サービス
統合処理
![Page 17: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/17.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
17
WebSphere sMash 概要
![Page 18: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/18.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
18
WebSphere sMash登場の背景
現行アプリケーション・プラットフォーム(Java EE)の課題– 例
• スキル育成コスト• 開発スピード• 重厚長大なS/W環境
– 解決策• Simple / Agile / Speedを兼ね備えた新たなWebプラットフォーム
クライアント・サイド・マッシュアップの課題– 例
• 複雑な実装• セキュリティ• パフォーマンス
– 解決策• サーバー・サイド・マッシュアップ
SOA / ビッグWebサービス(WS-*)の課題– 例
• デスクトップからWebサービスへの軽量アクセス方法– 解決策
• RESTful SOA
![Page 19: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/19.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
19
WebSphere sMashアジャイル Webアプリケーション・プラットフォーム
– アプリケーション稼働環境
– 開発環境
新たなアーキテクチャ– スクリプト言語
– REST– JSON, Feeds (ATOM/RSS)– Ajax with Dojo toolkit– アセンブル・フロー
前提環境– Java SE 5.0 以上
– Eclipse 3.2 以上 (開発環境にEclipseを使用する場合)
Project Zeroとして2007年6月よりインキュベータ版を公開
![Page 20: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/20.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
20
WebSphere Web 2.0技術戦略
1. エンタープライズ・システムへの容易なアクセス・インターフェース
– WebSphere 製品のREST対応
• WAS (Feature Pack), MQ, Commerce, DataPower, WESB, WPS
2. アジャイルWebアプリケーションによるエンタープライズ・システムのレバレッジ
– WebSphere sMash• バックエンド・エンタープライズ・システムやWeb上のリソースを活用したWebアプリケーショ
ンの迅速な開発
• データ(JSON, Feed)や部品(Widgets)をクライアントに提供
3. アジャイルWebアプリケーションのホスティング
– WebSphere sMash• アジャイルWebアプリケーションの稼働環境
– WebSphere XD• WebSphere ミドルウェアの運用管理
![Page 21: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/21.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
21
全体像
エンタープライズ
システム
サービス
サービス
サービス
サービス
サービス
WWW
ライブラリ
リポジトリ
JavaScript
+ dojo
アセンブル
フロー
スクリプト
WSD
L
スクリプト
スクリプト
Java SE
JMSProvider
サービス
WebSphere sMash
クライアント
DBデータ
JSON
REST
HTML
ATOM
JMS
JMS
REST
SOAP
ATOM
RSS
SOAP
REST
REST
REST
JSON
JSON
HTTP
or
or
サーバー・サイド・マッシュアップ・エンジン
![Page 22: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/22.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
22
適用シナリオ#1:Web アプリケーション
クライアント:ブラウザ等
– JavaScript,Dojo Toolkit, DOM API, HTML, CSS等で実装
– Ajax,REST等でリクエストを送信
サーバー:WebSphere sMash– HTTPプロトコル・スタック
– Groovy, PHPを利用して実装
• 必要に応じて– 既存のスクリプトやライブラリ,テンプレートを活用
– WWWの外部WebサービスやFeedsを活用
– DB等リソース・アクセス
– アセンブル・フローを活用
– JSON,Feeds(ATOM, RSS),またはHTMLを返信
![Page 23: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/23.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
23
適用シナリオ#1:Web アプリケーション
サービス
サービス
WWW
ライブラリ
リポジトリ
JavaScript
+ dojo
WebSphere sMash
クライアント
DBデータ
JSON
REST
ATOM
RSS
REST
REST
JSON
Java SEHTTP
既存テンプレート
ライブラリを再利用
既存スクリプト
を活用
外部WWWの
Webサービス,Feeds
を活用
スクリプト
スクリプト
スクリプト
or
アセンブル
フロー
![Page 24: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/24.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
24
適用シナリオ#2:拡張SOA RESTful SOA
クライアント:ブラウザ等
– JavaScript,Dojo Toolkit, DOM API, HTML, CSS等で実装
– Ajax,REST等でリクエストを送信
サーバー:WebSphere sMash– HTTPプロトコル・スタック
– Groovy, PHPを利用して実装
• 必要に応じて
– 既存のスクリプトやライブラリ,テンプレートを活用
– WWWの外部WebサービスやFeedsを活用
– DB等リソース・アクセス
– アセンブル・フローを活用
– 既存SOA資産の再利用
– エンタープライズ・システムの再利用
– JSON,Feeds(ATOM, RSS),またはHTMLを返信
![Page 25: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/25.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
25
適用シナリオ#2:拡張SOA
エンタープライズ
システム
サービス
サービス
サービス
サービス
サービス
WWW
ライブラリ
リポジトリ
JavaScript
+ dojo
スクリプト
WSD
L
スクリプト
スクリプト
Java SE
JMSProvider
サービス
WebSphere sMash
クライアント
DBデータ
JSON
REST
ATOM
JMS
JMS
REST
SOAP
ATOM
RSS
SOAP
REST
REST
REST
JSON
JSON
HTTP
アセンブル
フロー
or
Web技術でSOAシステムにアクセス
RESTful SOA !
アセンブル・フローを活用して
既存のSOA資産,
エンタープライズ・システムを再利用
![Page 26: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/26.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
26
パッケージング
パッケージ名 説明
WebSphere sMash WebSphere sMashの製品版.
WebSphere sMash Reliable Transport Extensions
WebSphere sMashの拡張機能の製品版.
メッセージング等,拡張通信機能の提供.
WebSphere sMash Developer Edition (DE)
WebSphere sMashのコミュニティ版.
Project Zero
コードネーム:Silverstone
新実装のコミュニティ版.
![Page 27: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/27.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
27
Community Driven Commercial Development
商用ソフトウェア製品開発プロセス
– 開発プロセスをオープン化
– ソフトウェア製品の事前評価
– ニーズに基づいたソフトウェアの迅速な提供
www.projectzero.org– 開発チームとのインターフェース
– 新コード, ドキュメントのダウンロード
![Page 28: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/28.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
28
ハードウェア/OS 前提環境
28
OS種別 OS ハードウェア
Linux SuSE ES 10 32 bit, 64 bitRHEL 5.0 32bit, 64bit
Intel/AMD アーキテクチャのみサポート
配備に必要なディスク・スペース(JDK含む):250MB + 1 アプリケーションあたり1MB
開発に必要なディスク・スペース(IDEとJDKを含む):275MB + 1 アプリケーションあたり1MB
Windows Windows Server 2003 32 bit, 64 bit
配備に必要なディスク・スペース(JDK含む):250MB + 1 アプリケーションあたり1MB
開発に必要なディスク・スペース(IDEとJDKを含む):275MB + 1 アプリケーションあたり1MB
![Page 29: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/29.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
2929
機能概要
![Page 30: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/30.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
30
WebSphere sMashの特長
スピード
シンプル
アジャイル
Simpleness
Agility
Speed
![Page 31: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/31.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
31
アプリケーションの構成要素
作る
– 動的スクリプト言語
– イベント・ベース・ランタイム
– RESTフレームワーク
– シンプルなデータ構造
• JSON• Feeds – ATOM, RSS –
– コンベンション・オーバー・コンフィギュレーション
– モジュラー・アーキテクチャ
• リポジトリ
– Eclipseプラグイン
– アプリケーション・ビルダー
組み合わせる
– アセンブル・フロー
実行する
– アプリケーション・セントリック・ランタイム
![Page 32: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/32.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
32
作る:スクリプト言語
WebSphere sMash はスクリプト言語のランタイムを提供
スクリプト言語を使ってアプリケーションを開発
– Groovy
– PHP
Javaはシステム基盤開発言語という位置づけ
– システム拡張やアプリケーション・ライブラリ開発に利用
– アプリケーション実装に利用することも可能 (要追加構成)
AgilitySpeed
![Page 33: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/33.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
33
作る:RESTSimpleness
Firstname:Bill
Dateofbirth:1976-09-25
クライアント サーバー
JavaScript
POSTメソッドでリソースを作成する
GETメソッドでリソースを検索
POST /employees/people
{
"firstname": "Bill",
“dateofbirth": "1976-09-25"
}
GET /employees/people/Bill
{
"firstname": "Bill",
"dateofbirth": "1976-09-25"
}
![Page 34: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/34.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
34
作る:WebSphere sMash REST フレームワーク
操作HTTP
メソッドURI スクリプト名
スクリプトの
メソッド
検索 GET /resources/employees employees onList()
検索 GET /resources/employees/1 employees onRetrieve()
挿入 POST /resources/employees employees onCreate()
更新 PUT /resources/employees/1 employees onUpdate()
削除 DELETE /resources/employees/1 employees onDelete()
Simpleness
![Page 35: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/35.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
35
作る:Zeroリソース・モデル - ZRM -
データ・アクセス・フレームワーク
シンプルなデータ・アクセス・インターフェースを提供
– プログラマティックAPI– RESTful HTTP API
• /resources/employees?firstname__contains=Jo&birthdate__day=25 • /resources/employees?firstname__contains=Jo&start=5&count=5
JSON, ATOM形式でデータを提供
AgilitySpeed Simpleness
![Page 36: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/36.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
36
作る:Zeroリソース・モデル - ZRM -AgilitySpeed Simpleness
JavaScript
+ dojo
スクリプト
WebSphere sMash
クライアント
JSON
RESTful HTTP API
ATOMor
DBデータ
ZRM
プログラマティックAPICollection
SQL
リザルトセット
DBテーブルの
スキーマ定義
リソース・ハンドラ
ZRM.delegate();
![Page 37: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/37.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
37
作る:モジュラー・アーキテクチャ
スモール・コア
– 5.4MB (Groovy)• PHPサポートには加えて14.5MB必要
– HTTPサーバー機能込み
依存性解決
– 拡張機能はダウンロード
• 開発者は、必要な拡張機能を定義
• パッケージ管理システムが拡張機能を管理
Agility Simpleness
![Page 38: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/38.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
38
作る:モジュラー・アーキテクチャ
<appRoot>
+ config
+ivy.xml
+ Zero Resolve Library
zero. assemble.flowdojo
zero.wbtoolszero.data
……
springapache-ds
commons-httpcommons-lang
commons-io
……
Ivy
Implementation
ローカル・リポジトリ
リモート・リポジトリ -sMash-
リモート・リポジトリ -Maven-
1.依存性解決
2.ローカル・リポジトリ
検索
3.リ
モー
ト・リ
ポジ
トリ
検索
4.モジュールのコピー
5.参照
Agility Simpleness
![Page 39: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/39.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
39
【参考】 依存性解決に関連した設定項目
リモート・リポジトリの参照先
– CLI版: <zero.home>/config/bootstrap.properties で設定
– Eclipse版: Window > Preferences > WebSphere sMash から
設定
ローカル・リポジトリの格納先
– CLI版: <zero.home>/config/local.properties で設定デフォルトは <zero.home>/zero-repository
– Eclipse版: Window > Preferences > WebSphere sMashデフォルトは <user.home>/zero-repository/experimental
![Page 40: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/40.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
40
作る:利用可能なモジュール
65以上のモジュールが利用可能 (2008年4月)– データ・フォーマット関連
• JSON, ATOM, RSS, XML
– データ・アクセス関連
– リソース・モデリング関連
– セキュリティ関連
– アセンブル・フロー関連
– サービス呼び出し関連• Amazon ECS, Flickr, Weather, 他
– ユーティリティ
• HTML パース等
– 管理ツール
– 開発ツール
– Reliable Transport Engine for Messaging Interactions
Agility Simpleness
![Page 41: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/41.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
41
組み合わせる:WebSphere sMash Activities
アセンブル・フロー
– ビジュアルにマッシュアップ• Webサービス
– REST– SOAP
ビルトイン・アクティビティ
– Feedsの取得
– サービスの呼び出し
– データ変換• XSLT, …
– ループ等の制御構文
– 条件構文
– フィルター / ソート / マージ / …– メール送信
カスタム・アクティビティ
– スクリプトとして実装
Agility
![Page 42: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/42.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
42
1 アプリケーション : 1 Java Virtual Machine– HTTPサーバ機能包含
– プロキシー・サーバーと組み合わせることも可能
• クラスタリング
• 複数アプリケーションへのルーティング
アプリケーションの配備は不要
JVMプロセスのリサイクル
– アイドル・タイムアウトまたは 大リクエスト数
Simpleness実行する:アプリケーション・セントリック・ランタイム
![Page 43: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/43.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
43
実行する:ランタイムの特徴
高速起動
クリーン
– 比較的短時間でリサイクル
– アプリケーション・バグの影響を 小化
スモール・フットプリント
幅広いJVMで稼動
Speed Simpleness
![Page 44: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/44.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
44
実行する:ランタイム・モデル
ポートポート
Zero アプリケーション
Zero Socket Opener
(ZSO)
初回のリクエスト
2回目以降のリクエスト
ZSO がリクエストを処理
ZSO がアプリケーションを開始
ポートのオーナーシップを委譲 アプリケーションは、アイドル・タイムアウトまたは 大リクエスト数に達するまで稼動.
その後JVMは、正常に終了.
リクエストをZeroアプリケーションに直接転送
ZSO がポートの
オーナーシップを
要求
Speed Simpleness
![Page 45: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/45.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
45
仮想ディレクトリ
拡張モジュールによって提供されるリソースをシームレスに統合
例)アプリケーションのデフォルト画面表示
public/(ファイルなし)
public/index.gt
[アプリケーション]
[zero.core.webtools]
拡張モジュール内を探索
http://loalhost:8080/index.gt
表示
public/index.gtが存在すれば、
こちらが優先される
http://www.projectzero.org/sMash/1.0.x/docs/zero.devguide.doc/zero.core/VirtualizedDirectories.html
![Page 46: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/46.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
46
WebSphere sMash が提供するサービス
WebSphere sMash V1.0 には以下のサービスを含む
–Timer• スケジューラーやタイマーイベントの機能を提供
–Kicker• HTTPリクエストを送信する機能を提供
–File Kicker / Receiver• ファイル更新のポーリングと送受信の機能を提供
![Page 47: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/47.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
47
開発環境
![Page 48: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/48.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
48
WebSphere sMash アプリケーション開発環境
開発環境(開発ツール)のストラテジー概要
– スモール・フットプリント
– 初期導入の 小化
– 必要に応じてモジュールをダウンロード
– 直感的で修得が容易 “intuitive and easy to learn”• 自分に適した開発環境(開発ツール)を選択可能
WebSphere sMash の開発環境(開発ツール)
– CLI (コマンド・ライン・インターフェース)
– アプリケーション・ビルダー (AppBuilder)– Eclipse: WebSphere sMash が Eclipse プラグインを提供
– Groovy および Java 用– PHP 用
Web ツール
– アプリケーション開発で役立つユーティリティー機能群を提供
![Page 49: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/49.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
49
開発環境(開発ツール)概要
CLI (コマンド・ライン・インターフェース)
– コマンド・ベース(non GUI)の作業環境
アプリケーション・ビルダー (AppBuilder)– sMash アプリケーションとして実装された Web ベースの IDE
• sMash DE に含まれ、Project Zero コミュニティーでサポート
– Web ブラウザー・ベースの完全な開発環境で、以下の機能も提供
• アセンブル・フロー・エディター• Dojo 対応のページ・エディター
Eclipse– WebSphere sMash がプラグインを提供
• Groovy およびJava• PHP
– アセンブル・フロー・エディターも使用可
– 現状では、Project Zero コミュニティーでサポート
![Page 50: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/50.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
50
開発環境(開発ツール)比較
アプリケーション・ビルダーGUI による操作
言語対応のエディター
ページ・エディター (Dojo対応)
GUI による操作
言語対応のエディター、HTMLエディター
デバッガーによるデバッグ
他の Plug-in による機能拡張
Eclipse
CLIモジュール(アプリケーション)の作成・起動・停止
モジュールの管理(依存性解決・更新、パッケージ化、・・・)
モジュール・グループの管理
・・・
アセンブル・フロー・エディター
![Page 51: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/51.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
51
CLI の概要
コマンド・ベース(non GUI)の作業環境で、アプリケーション開発とアプリケーション実行用の基本機能を提供
CLI タスクのカテゴリー
– 依存性管理
– モジュール・クラスパス
– モジュール・タスク
– モジュール・グループ・タスク
– リポジトリー・タスク
独自の CLI タスクを作成することも可能
Command line interface taskshttp://publib.boulder.ibm.com/infocenter/wsmashin/v1r0/topic/com.ibm.websphere.sMash.doc/core/zero.cli.tasks/docs/en/CliTasks.html
![Page 52: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/52.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
52
CLI の使用準備
前提
– sMash または sMash DE
準備
• PATH に JDK と sMash のパスを設定
• sMash の製品版の場合は、以下のディレクトリーを PATH に設
定
– <sMash導入先>jre¥bin (JDK)– <sMash導入先> (sMash)
![Page 53: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/53.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
53
CLI の使用方法
zero コマンド:
タスク 説明compile モジュールの /java ディレクトリーにあるすべての Java ソース・ファイルをコンパイルします。create 現行ディレクトリーに新規モジュールを作成します。encode パスワードなどのストリングを構成ファイル内で使用するためにエンコードします。help 指定したコマンドに関する文書を出力します。info ベース URL などの、アプリケーションに関する基本情報を返します。modulegroup モジュール・グループを管理します。package モジュールを zip ファイルとしてパッケージ化します。publish モジュールをローカル・リポジトリーに公開します。recycle アプリケーションを再利用します。repository リポジトリーを管理します。resolve モジュールの依存関係を判別します。 →モジュールの依存関係を解決します。restdoc This command runs the RESTdoc tool and generates HTML documentation
for the application's REST APIs.rollback 前回実行した resolve または update の結果を元に戻します。runsql データベースに対して SQL ファイルを実行しますsearch リポジトリー内の一致するすべてのモジュールを検出し、出力します。start アプリケーションを開始します。stats アプリケーションについて収集された現在の統計情報を返します。status アプリケーションのステータスを返します。stop アプリケーションを停止します。switch モジュール・グループを切り替えます。update モジュールを 新の依存関係に解決します。user ユーザーを作成および編集します。version バージョン情報を表示します。
青文字のタスクは、アプリケーション・ルート・ディレクトリーでのみ実行可能です。
> zero [main-opts] <task> [task-args]
restdoc タスクは、zero.restdoc を追加する
と表示されます。
![Page 54: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/54.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
54
アプリケーション・ビルダーの概要
ブラウザー・ベースのIDE– Web 上で直接アプリケーションを構築可能
sMash アプリケーションとして実装
開発ライフサイクル全体をカバー
– 作成、修正、テスト
アセンブル・フロー・エディター
– アセンブル・フロー作成用のビジュアル・エディターを提供
Web ページ作成用のビジュアル・エディターを提供
– Dojo 対応のページ・エディターを含む
sMash DE でのみ使用可能
![Page 55: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/55.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
55
アプリケーション・ビルダーの使用
前提
– sMash DE– Mozilla Firefox v 2
起動
– sMash DE のインストール先ディレクトリーで startAppBuilder を実行• 初の起動時に、モジュールのダウンロードが行われる• インターネットに接続できる状態で初期起動する
使用方法
– ブラウザーで http://localhost:8070 にアクセス
> startAppBuilderアプリケーションが始動して、http://localhost:8070/ で要求を処理していますCWPZT0600I: コマンド start は正常に完了しました
補足: Silverstoneの 新 ビルドでは、起動・停止コマンドが以下のように変更されています。
起動: AppBuilder start停止: AppBuilder stop
![Page 56: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/56.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
56
初期画面
![Page 57: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/57.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
57
【参考】 アプリケーション・ビルダーの更新
アプリケーション・ビルダーは改良が続けられている
新のアプリケーション・ビルダーに更新する場合は
– アプリケーション・ビルダーを停止• stopAppBuilder
(Silverstone ビルドの場合は、AppBuilder stop)
– アプリケーション・ビルダーのディレクトリーに移動• <sMashDE導入ディレクトリー>¥appbuilder
– 以下の CLI コマンドを実行
• zero modulegroup update• zero update
App Builderhttp://www.projectzero.org/zero/silverstone/latest/docs/zero.gettingstarted.doc/zero.gettingstarted.doc/AppBuilder.html
![Page 58: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/58.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
58
Eclipse - Java と Groovy 用のプラグイン
前提環境
– Windows, Linux または Mac– Java SE Development Kit (JDK) 5.0 または 6.0– Eclipse IDE for Java Developers 3.2.2 以降
Java と Groovy 用のプラグインをインストール
– WebSphere sMash Update Site からプラグインをインストール
• http://www.projectzero.org/zero/silverstone/latest/update/zero.eclipse
Project Zero Downloads > Project Zero Eclipse Plug-in for Java and Groovyhttp://www.projectzero.org/download/eclipse_java.php
Installing and configuring: Eclipse for Java and Groovyhttp://www.projectzero.org/zero/silverstone/latest/docs/zero.gettingstarted.doc/zero.gettingstarted.doc/Eclipse.html
– 新の前提環境などは、下記 URL を参照
![Page 59: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/59.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
59
Eclipse - PHP 用のプラグイン
前提環境
– Windows, Linux または Mac– Java SE Development Kit (JDK) 5.0 または 6.0– Eclipse PHP Development Tools (PDT) 1.0.3
PHP 用のプラグインをインストール
– WebSphere sMash Update Site からプラグインをインストール
• http://www.projectzero.org/zero/silverstone/latest/update/zero.eclipse.php
Project Zero Downloads > Project Zero Eclipse Plug-in for PHPhttp://www.projectzero.org/download/eclipse_php.php
Installing and configuring: Eclipse for PHPhttp://www.projectzero.org/zero/silverstone/latest/docs/zero.gettingstarted.doc/zero.gettingstarted.doc/EclipsePHP.html
– 新の前提環境などは、下記 URL を参照
![Page 60: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/60.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
60
Eclipse - アセンブル・フロー・エディターの使用
準備
– アプリケーションに以下の依存性を追加
• <dependency name=”zero.assemble.tooling” org=”zero” rev=”[1.1.0.0, 1.2.0.0[”/>– 依存性を解決
使用
– アプリケーションを起動
– Webブラウザで、以下のURL にアクセス
Project Zero ブログ >> Blog Archive >> Assemble Flow Editor起動方法:Eclipse編
http://www.projectzero.org/jblog/index.php/2008/07/07/assemble-flow-editor%e8%b5%b7%e5%8b%95%e6%96%b9%e6%b3%95%ef%bc%9aeclipse%e7%b7%a8/
http://localhost:8080/tooling/
–依存性の追加と解決、アプリケーションの起動方法は、以下の使用例を参照
![Page 61: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/61.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
61
Eclipse - モジュール・グループに関して
モジュール・グループは experimental のみ
– sMash DE と異なり、デフォルトではモジュール・グループ stable のモジュールを使用できない
sMash DE と同様に stable のモジュールを利用したい場合は、Preferences 画面で以下の設定を変更
– ローカル・リポジトリー・ホーム
• 別ディレクトリーを指定
– リモート・リポジトリー・チェーン
Project Zero ブログ >> Blog Archive >>WebSphere sMash Developer Edition (DE) のEclipseプラグインを導入する
http://www.projectzero.org/jblog/index.php/2008/07/07/websphere-smash-developer-edition-de-%e3%81%aeeclipse%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e3%82%92%e5%b0%8e%e5%85%a5%e3%81%99%e3%82%8b/
https://www.projectzero.org/sMash/1.0.x/repo/base/https://www.projectzero.org/sMash/1.0.x/repo/rte/https://www.projectzero.org/sMash/1.0.x/repo/samples/
![Page 62: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/62.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
62
Eclipse - Groovy サポートの有効化
Groovy サポート
– デバッガーによる Groovy スクリプトのデバッグ
• デバッガーでは、sMash のグローバル・コンテキスト
の内容も確認可
– コード・アシスト機能
Groovy サポートを有効にする
– プロジェクトのポップアップ・メニューで「Add Groovy Nature」を選択
– Groovy スクリプトがコンパイルされ、bin-groovy ディレクトリー内にクラス・ファイルが作成され、ブレークポイントが設定できるようになる
![Page 63: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/63.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
63
Web ツール概要
zero.core.webtools
– アプリケーション開発時に役立つユーティリティーを提供
– 本番用のアプリケーションではセキュリティーなどの観点から使用しない
• config/ivy.xml から zero.core.webtools の依存定義を除去
提供する機能
– アプリケーションのデフォルト・インデックス・ページ (Web ツール用)
– リクエスト・データ・ ビューアー
– ユーザー・サービス・アプリケーション
• ファイル・ベースのユーザー・レジストリーの、Web ベースの管理機能
– 仮想ディレクトリー・ブラウザー
– 開発者向けのデフォルト・エラー・ページ (zero.core の機能)
– Groovy コンパイル・エラー用のエラー・ページ (zero.core の機能)
![Page 64: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/64.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
64
Web ツール(1)
アプリケーションのデフォルト・インデックス・ページ
– Web ツール提供のもの
– 独自のインデックス・ページを作成すると、このデフォルト・ページの表示が抑止される
– http://localhost:8080/
リクエスト・データ・ ビューアー
– ヘッダー、クッキー、パラメーターなどのリクエスト情報を表示
– http://localhost:8080/zero/webtools/snoop.gt
![Page 65: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/65.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
65
Web ツール(2)
ユーザー・サービス・アプリケーション
– ファイル・ベースのユーザー・レジストリーの、Web ベースの管理機能
– http://localhost:8080/zero/webtools/user
仮想ディレクトリー・ブラウザー
– 仮想ディレクトリー内のファイル一覧と、選択したファイルの内容を表示
– 集積したファイルの一覧を表示
• ファイル一覧には、ファイルの提供元モジュールの名前も表示
– App Builder の「Explorer」タブも同様の機能を提供
– http://localhost:8080/zero/webtools/browser.gt
![Page 66: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/66.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
66
デバッグ:デバッガーの使用 (Eclipse)
デバッガーによるデバッグ
– ブレーク・ポイント
– ステップ実行
– 変数値の表示
– グローバル・コンテキストの表示
アプリケーション・ロジックの詳細なデバッグ向き
![Page 67: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/67.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
67
デバッグ:AJAX / Dojoクライアント
Firebug によるデバッグ (Firefox のみ)
– Firebug: http://getfirebug.com/– 以下の機能を持つ強力なデバッグ・ツール
• コンソール出力• HTML の表示/編集• スクリプト、CSSの表示/編集
• ブレーク・ポイントの設定によるデバッグ、変数値の表示
Firebug Lite (Dojo同梱)によるデバッグ
– コンソール出力機能とコマンドによる変数値の表示機能などを提供
– Dojo の djConfig に "isDebug: true" を指定
ログ出力によるデバッグ
– Java Script 内にデバッグ用のログ出力を埋め込む• console.<出力レベル>( "メッセージ" )• 例: console.debug( "Hello world." )
– 出力先• Firebug または Firebug Lite のコンソール
![Page 68: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/68.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
68
ランタイム
![Page 69: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/69.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
69
Web2.0 向けランタイムへの要請
迅速な起動
– アジャイルな開発に対応し、透過的なエラーリカバリーを実現するために、ランタイムは素早く(数秒程度)で起動する必要がある
グレースフル・リカバリー
– エラーによるランタイムの停止とリスタートの過程において、セッションが透過的に継続していなければならない
アプリケーションの分離
– お行儀の悪いアプリケーションが、他のアプリケーションに対して破壊的な影響を与えてはならない
プログラミングモデル
– ニーズをベースにしたアプリケーション開発(プロトタイプ)に適したシンプルさ
スケーラビリティ
– 比較的低コストで多くのアプリケーションを実行する能力
– アプリケーションやトラフィックに応じた課金のサポートやコスト事前見積もり
![Page 70: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/70.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
70
WebSphere sMash ランタイム・アーキテクチャ
WebSphere sMash Core
New Reality RuntimeJava SE, PHP エンジン
Libraries,Service Wrappers
Applications, Services
JSON, Atom, メディエーション, データアクセス, …
Timer, Queue, …
REST, Event, スニペット, Global Context
![Page 71: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/71.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
71
sMashのランタイム・モデル
ポートポート
Zero アプリケーション
Zero Socket Opener
(ZSO)
初回のリクエスト
2回目以降のリクエスト
ZSO がリクエストを処理
ZSO がアプリケーションを開始
ポートのオーナーシップを委譲 アプリケーションは、アイドル・タイムアウトまたは 大リクエスト数に達するまで稼動.
その後JVMは、正常に終了.
リクエストをZeroアプリケーションに直接転送
ZSO がポートの
オーナーシップを
要求
![Page 72: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/72.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
72
sMashランタイムの特徴
迅速な起動
–アプリケーションJVMは非常に短時間で起動
–アプリケーションサービスは直ちに利用可能
クリーン
–グレースフル・リカバリー、アプリケーション分離、「悪い」コードを許容
–短寿命プロセス
• 指定した数のリクエストを実行後、またはアイドルタイムアウト後に再起動
• 再起動後もステートは保たれる
安価
–小規模から大規模まで、効率的なコストで実行可能
–極めて小さいメモリーフットプリント
「既存」JVMで対応可能
– IBM, Sun, Macなど: 任意の JavaSE 5/6 JVM
![Page 73: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/73.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
73
Web2.0向け Java ランタイムのチューニング
WebSphere sMash は「既存の」JDKをサポート
–IBM JVM 開発チームは、sMashへの 適化を研究中
IBM JDKの場合、sMashは2つの機能を活用
–-Xquickstart• 高速起動のためにJITを 適化
–-Xshareclasses• 複数JVMプロセス間でクラス情報を共有可能に
特定のsMashアプリケーションに対して
–追加のチューニングが可能
![Page 74: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/74.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
74
ZSOの設定
ランタイム・モード
– アプリケーションの実行モードを指定• /config/runtime/mode = "develpoment" | "production"
アイドル・タイムアウト
– 後のリクエストからの経過時間を指定 ("-1"=タイムアウトなし)• /config/zso/recycle/production/idleTimeout = 300• /config/zso/recycle/development/idleTimeout = 60
大リクエスト
– JVMが処理するリクエストの 大値(累計)
• /config/zso/recycle/production/maxRequests = 10000イミディエイト・スタートの有効化
– zero start実行後、直ちにアプリケーションを起動
• /config/zso/immediateStart = true• 通常はリクエスト受付までアプリケーションは起動されない
http://www.projectzero.org/sMash/1.0.x/docs/zero.devguide.doc/zero.management.zso/ZSOManagementExtensions.html
![Page 75: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/75.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
75
JVM
JVM
JVM
JVM
sMash特有のJavaオプション
Java6 SR1 ではsMash専用オプションを提供 (-Xzero)–このオプションにより、新しい機能を有効化
• zipデータのキャッシュを共有
• Stringリテラルデータを共有
–既存の共有クラス機能をベースに実装
zip cache zip cachezip cache
.jar
JVM JVM
![Page 76: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/76.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
76
sMash セキュリティ 概要
sMashはHTTP処理における一般的なセキュリティ手法を標準機能でサポート
sMashのセキュリティは Java Authentication and Authorization Service (JAAS) ベースで実装
以下のサービスを提供:
– 認証
– 認可 (ユーザー/グループ 又はロールベース)
– シングルサインオン: Lightweight Third-Party Authentication (LTPA) のみ対応
– カスタムセキュリティ
セキュリティ設定は zero.config に記述
OpenIDに対応
![Page 77: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/77.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
77
セキュリティ : ACF(Active Content Filtering)
WebSphere sMashの主なターゲットは次世代のダイナミックWebアプリケーション(典型的にはWeb 2.0という言葉で代表される)であり、マッシュアップ/Wiki/Blogといった、ユーザーが提供するコンテンツを活用する対話型Webアプリケーションにフォーカスしている
これらのアプリケーションをサポートするために、sMashはACF(Active Content Filetering) ライブラリを提供しており、アプリケーション開発者はsMashアプリケーションの一部としてその機能を
利用することができる
ACFによって、アプリケーション開発者はWeb2.0向けアプリケーションで発生しがちなクロスサイトスクリプティング(XSS)などの問題を回
避しやすくなる
![Page 78: ISE Webインフラストラクチャー部 水野雅裕public.dhe.ibm.com/software/dw/jp/websphere/smash/smash...Client Server 1. 通常のHTTPリクエスト 2.View(画面)の生成](https://reader034.fdocuments.net/reader034/viewer/2022043010/5f9edf0a7a1fd71160268740/html5/thumbnails/78.jpg)
WebSphere sMash ハンズオン
© 2008 IBM Corporation© 2008 ISE Corporation
78
【参考】 WebSphere sMash 関連サイト
WebSphere sMashメイン・ページ (日本語)• http://www-06.ibm.com/jp/software/websphere/apptransaction/smash/
WebSphere sMashマイクロ・サイト (日本語)• http://www-06.ibm.com/jp/software/websphere/smash/index.html
WebSphere sMashドキュメンテーション (英語)• http://publib.boulder.ibm.com/infocenter/wsmashin/v1r0/index.jsp
Project Zeroメイン・ページ (英語)• http://www.projectzero.org/
Project Zero 日本語Blog• http://www.projectzero.org/jblog/
developerWorks Project Zero 関連リンク集 (日本語)• http://www.ibm.com/developerworks/jp/offers/projectzero/
developerWorks WebSphere sMash (英語)• http://www.ibm.com/developerworks/websphere/zones/smash/
WebSphere sMash アナウンスメントW/S 資料 (日本語)• http://www-06.ibm.com/jp/domino01/mkt/websphere.nsf/doc/002760F2