JavaScript Specialist. Lesson 1: Introduction to JavaScript.
宣言的アプローチによるJavaScriptマッシュアップエンジンの開発
-
Upload
shinichi-tomita -
Category
Technology
-
view
3.728 -
download
3
description
Transcript of 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発
![Page 1: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/1.jpg)
宣言的アプローチによるJavaScriptマッシュアップエンジンの開発
Shinichi Tomita (冨田 慎一)shinichi.tomita - at - gmail.com
![Page 2: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/2.jpg)
自己紹介(1)✴冨田 慎一(Shinichi Tomita)✴所属‣ 株式会社セールスフォース・ドットコム
✴活動‣ d.hatena.ne.jp/shinichitomita‣ twitter.com/stomita‣ del.icio.us/stomita
✴言語‣ JavaScript, ActionScript 3, Java
![Page 3: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/3.jpg)
自己紹介(2)✴ 近年の興味分野‣ 軽量Webサービスを活用した分散コンピューティング
‣ ユーザセントリック型アイデンティティ/Webサービス
‣ 分散認証/認可システム(e.g.OpenID,OAuth)‣ 上記に対するJavaScriptおよびその他Web技術の実践的適用方法、セキュリティ
![Page 4: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/4.jpg)
マッシュアップがやってきた✴2004-5年頃?✴自由に Webを“ReWrite”できるという熱い鼓動‣ オープンになったデータアクセス‣ 構築コストの劇的な減少
✴しかししばらくして、まだそれほど自由でない、と気づく‣ Web全体のうちオープンなのは一部‣ コスト面の恩恵を受けているのもまだ一部
![Page 5: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/5.jpg)
マッシュアップの壁✴ パブリックオープンでないデータの存在‣ APIが非公開‣ 認証、アクセスコントロール‣ ファイアーウォール、イントラネット内
✴まだまだ限定的な参加者‣ 「コードをわざわざ書く」というフィルタ‣ サービスインフラ構築など開発に至るまでの障害
マッシュアップ開発をサポートするレイヤーが必要
![Page 6: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/6.jpg)
Afrous について✴ すべてJavaScriptで実装されたマッシュアップエンジン
✴ www.afrous.com
![Page 7: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/7.jpg)
特徴✴宣言的な記法によるマッシュアッププロセスの記述
✴サーバを必要としないクライアントサイドマッシュアップ
✴マッシュアップの作成を支援するブラウザベースのGUIエディタ
![Page 8: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/8.jpg)
宣言的なマッシュアップ✴マッシュアップの本質‣ 複数入力を加工して望む出力を得ること‣ マッシュアッププロセス(≒ 加工方法)の記述をどのように行うべきか
✴宣言的手法の導入‣ プロセスを再利用可能な機能単位に分割‣ 機能単位の「はり合わせ」を可能に
マッシュアップ開発の敷居を下げる
![Page 9: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/9.jpg)
クライアントサイドマッシュアップ✴データの取得および合成をユーザ側(クライアント側)で行うマッシュアップ方法
✴サーバ環境への依存性が低い✴処理の分散によるスケーラビリティの向上‣ ユーザ数の増加を受けにくい
インフラ構築、サーバ運用の負荷を下げる
![Page 10: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/10.jpg)
スケーラビリティ比較:サーバサイドマッシュアップ
Server
Client
WebService
![Page 11: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/11.jpg)
スケーラビリティ比較:サーバサイドマッシュアップ
Server
Client
WebService
Server
Client ClientClient
WebService
同時ユーザ数:増
![Page 12: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/12.jpg)
スケーラビリティ比較:クライアントサイドマッシュアップ
Client
WebService
![Page 13: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/13.jpg)
スケーラビリティ比較:クライアントサイドマッシュアップ
Client
WebService
Client ClientClient
WebService
同時ユーザ数:増
![Page 15: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/15.jpg)
非同期処理の隠蔽✴ Ajaxでのサーバ通信や、ユーザの入力待ち等は非同期が前提
✴しかしフローとしては直線的(同期的)に取り扱いたい
✴非同期待ちはプロセスエンジンが吸収する
![Page 16: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/16.jpg)
Process Evaluation✴フローの定義はアクション間の依存性を宣言することによっておこなう‣ make, antのようなビルドプロセスに類似
✴アクション間の依存関係グラフの作成
![Page 17: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/17.jpg)
非オープンデータへの対策✴ APIなし‣ スクレーピング(scraping)
✴認証コンテンツ‣ ログイン処理のエミュレート‣ ユーザ名/パスワードをマッシュアップサービスに預ける?セキュリティ上の不安
✴イントラネット‣ ASP型のサーバサイドマッシュアップではほぼ不可能
![Page 18: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/18.jpg)
発想の転換✴データがオープンでないならば、それを使うアプリケーションをもっとオープンにすればよい‣ フットワークの軽いアプリケーション‣ ユーザ主導のオンデマンドな利用‣ 動的な機能インジェクション
![Page 19: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/19.jpg)
「召喚可能」なアプリケーション✴ 召喚する(Summon)
‣ アプリケーションに対してユーザが出向くのではなく、ユーザがアプリケーションの機能を必要に応じて呼び出す
‣ 召喚されたアプリケーションは、呼び出されたページのコンテキストにおいて機能を拡張する
‣ ブックマークレット
Summonware
![Page 20: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/20.jpg)
Ordinal Style Mashupservice site
auth required site / intranet
User
![Page 21: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/21.jpg)
Ordinal Style Mashupservice site
auth required site / intranet
User
![Page 22: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/22.jpg)
Ordinal Style Mashupservice site
auth required site / intranet
User
![Page 23: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/23.jpg)
Summonwareservice site
auth required site / intranet
User
![Page 24: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/24.jpg)
Summonwareservice site
auth required site / intranet
User
![Page 25: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/25.jpg)
Summonwareservice site
auth required site / intranet
User
![Page 26: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/26.jpg)
Summonwareservice site
auth required site / intranet
User
![Page 27: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/27.jpg)
Summonwareservice site
auth required site / intranet
User
![Page 28: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/28.jpg)
Afrous Summon✴ Afrous Editorは"Summonware"として実装されている
✴パブリッシュされたプロセスもそのまま"Summonware"となる
デモ
![Page 29: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/29.jpg)
競合サービス/ソフトウェア✴ Yahoo! Pipes / MyRemix (Web, ASP, )
✴ Plagger (Client installed)
✴MS Popfly / PatchService✴ Dapper(Web, ASP, scraping)
![Page 30: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/30.jpg)
競合分析
△○○ユーザ参加型マッシュアップ
○△○スケーラビリティ
○×○認証を必要とするサービス
○×○イントラネットへのアクセス
大小小セットアップ時間
×○○ASPでの提供
Plagger Pipes本提案
![Page 31: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/31.jpg)
今後の課題✴ユーザイベントを受け取る仕組み‣ 現在はデータの加工出力のみに特化‣ Afrous外の枠組みで対処すべき?
✴ローカルキャッシング機能の実装‣ リモートリソースへの配慮、および スナップショットデータの保持のため
‣ Flash SharedObject, Google Gearsなどで補完可能か
![Page 32: 宣言的アプローチによるJavaScriptマッシュアップエンジンの開発](https://reader035.fdocuments.net/reader035/viewer/2022081602/554d1da5b4c905c5208b4857/html5/thumbnails/32.jpg)
Thank you.