Upload
shin-matsumoto
View
574
Download
1
Embed Size (px)
Citation preview
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワーク
Webアプリクライアントサイド講義(2日目)
神戸大学
まつ本 真佑
佐伯 幸郎
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 2
講義の位置付け
Java
サーバサイド
Ruby
PHPRESTAPI
DWR
Java
Jersey
JavaRESTAPI
T4J
Rails
RESTAPI
RESTAPI
HTML5API
RESTAPI
RESTAPI
RESTAPIJS
jQuery
HTML
CSS
http
json
ltxmlgt
独自API
独自API
programAPIdata
libraryREST framework
クライアントサイド
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 3
SVNコミットしてください bigdata webapp 両方
模範解答設置しました http19216810010svnsharebigdata_ans
http19216810010svnsharewebapp_ans
Alpacaサーバサイドのソースコード http19216810010svnshareAlpaca
お知らせ
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 6
Wikipediaより
キーワード非同期通信とインターフェイスの構築 論より証拠次ページへ
(余談) Ajaxって何余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 7
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 8
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt ブラウザの挙動とは非同期にサーバ通信可能=ブラウザが固まらない
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 9
サンプル httpstwittercomsignup
Ajaxによるインタフェースの構築余
画面遷移なしにサーバと通信できる=動的なWebアプリが作れる
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 10
Wikipediaより
非同期通信 ブラウザの挙動とは非同期にサーバ通信可能
インターフェイスの構築 画面遷移なしにサーバと通信できる
Ajaxまとめ余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
リアルタイム amp インタラクティブなWebアプリが可能
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 2
講義の位置付け
Java
サーバサイド
Ruby
PHPRESTAPI
DWR
Java
Jersey
JavaRESTAPI
T4J
Rails
RESTAPI
RESTAPI
HTML5API
RESTAPI
RESTAPI
RESTAPIJS
jQuery
HTML
CSS
http
json
ltxmlgt
独自API
独自API
programAPIdata
libraryREST framework
クライアントサイド
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 3
SVNコミットしてください bigdata webapp 両方
模範解答設置しました http19216810010svnsharebigdata_ans
http19216810010svnsharewebapp_ans
Alpacaサーバサイドのソースコード http19216810010svnshareAlpaca
お知らせ
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 6
Wikipediaより
キーワード非同期通信とインターフェイスの構築 論より証拠次ページへ
(余談) Ajaxって何余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 7
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 8
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt ブラウザの挙動とは非同期にサーバ通信可能=ブラウザが固まらない
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 9
サンプル httpstwittercomsignup
Ajaxによるインタフェースの構築余
画面遷移なしにサーバと通信できる=動的なWebアプリが作れる
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 10
Wikipediaより
非同期通信 ブラウザの挙動とは非同期にサーバ通信可能
インターフェイスの構築 画面遷移なしにサーバと通信できる
Ajaxまとめ余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
リアルタイム amp インタラクティブなWebアプリが可能
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 3
SVNコミットしてください bigdata webapp 両方
模範解答設置しました http19216810010svnsharebigdata_ans
http19216810010svnsharewebapp_ans
Alpacaサーバサイドのソースコード http19216810010svnshareAlpaca
お知らせ
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 6
Wikipediaより
キーワード非同期通信とインターフェイスの構築 論より証拠次ページへ
(余談) Ajaxって何余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 7
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 8
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt ブラウザの挙動とは非同期にサーバ通信可能=ブラウザが固まらない
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 9
サンプル httpstwittercomsignup
Ajaxによるインタフェースの構築余
画面遷移なしにサーバと通信できる=動的なWebアプリが作れる
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 10
Wikipediaより
非同期通信 ブラウザの挙動とは非同期にサーバ通信可能
インターフェイスの構築 画面遷移なしにサーバと通信できる
Ajaxまとめ余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
リアルタイム amp インタラクティブなWebアプリが可能
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 6
Wikipediaより
キーワード非同期通信とインターフェイスの構築 論より証拠次ページへ
(余談) Ajaxって何余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 7
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 8
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt ブラウザの挙動とは非同期にサーバ通信可能=ブラウザが固まらない
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 9
サンプル httpstwittercomsignup
Ajaxによるインタフェースの構築余
画面遷移なしにサーバと通信できる=動的なWebアプリが作れる
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 10
Wikipediaより
非同期通信 ブラウザの挙動とは非同期にサーバ通信可能
インターフェイスの構築 画面遷移なしにサーバと通信できる
Ajaxまとめ余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
リアルタイム amp インタラクティブなWebアプリが可能
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 6
Wikipediaより
キーワード非同期通信とインターフェイスの構築 論より証拠次ページへ
(余談) Ajaxって何余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 7
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 8
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt ブラウザの挙動とは非同期にサーバ通信可能=ブラウザが固まらない
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 9
サンプル httpstwittercomsignup
Ajaxによるインタフェースの構築余
画面遷移なしにサーバと通信できる=動的なWebアプリが作れる
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 10
Wikipediaより
非同期通信 ブラウザの挙動とは非同期にサーバ通信可能
インターフェイスの構築 画面遷移なしにサーバと通信できる
Ajaxまとめ余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
リアルタイム amp インタラクティブなWebアプリが可能
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 6
Wikipediaより
キーワード非同期通信とインターフェイスの構築 論より証拠次ページへ
(余談) Ajaxって何余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 7
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 8
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt ブラウザの挙動とは非同期にサーバ通信可能=ブラウザが固まらない
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 9
サンプル httpstwittercomsignup
Ajaxによるインタフェースの構築余
画面遷移なしにサーバと通信できる=動的なWebアプリが作れる
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 10
Wikipediaより
非同期通信 ブラウザの挙動とは非同期にサーバ通信可能
インターフェイスの構築 画面遷移なしにサーバと通信できる
Ajaxまとめ余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
リアルタイム amp インタラクティブなWebアプリが可能
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 7
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 8
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt ブラウザの挙動とは非同期にサーバ通信可能=ブラウザが固まらない
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 9
サンプル httpstwittercomsignup
Ajaxによるインタフェースの構築余
画面遷移なしにサーバと通信できる=動的なWebアプリが作れる
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 10
Wikipediaより
非同期通信 ブラウザの挙動とは非同期にサーバ通信可能
インターフェイスの構築 画面遷移なしにサーバと通信できる
Ajaxまとめ余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
リアルタイム amp インタラクティブなWebアプリが可能
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 8
サンプル httplocalhost50080webappexampleajaxhtml
Ajaxによる非同期通信
ltbodygtlttextareagtlttextareagtltbrgtltimg src=imagealpaca-halfpnggt
ltscript src=jsjquery-211minjsgtltscriptgtltscriptgt 処理に時間のかかる重たいAPI(仮)を呼び出す$ajax(url http192168100108080lamaapiheavyasync true 非同期にするかどうか (デフォルトではtrue)
)ltscriptgt
ltbodygt ブラウザの挙動とは非同期にサーバ通信可能=ブラウザが固まらない
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 9
サンプル httpstwittercomsignup
Ajaxによるインタフェースの構築余
画面遷移なしにサーバと通信できる=動的なWebアプリが作れる
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 10
Wikipediaより
非同期通信 ブラウザの挙動とは非同期にサーバ通信可能
インターフェイスの構築 画面遷移なしにサーバと通信できる
Ajaxまとめ余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
リアルタイム amp インタラクティブなWebアプリが可能
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 9
サンプル httpstwittercomsignup
Ajaxによるインタフェースの構築余
画面遷移なしにサーバと通信できる=動的なWebアプリが作れる
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 10
Wikipediaより
非同期通信 ブラウザの挙動とは非同期にサーバ通信可能
インターフェイスの構築 画面遷移なしにサーバと通信できる
Ajaxまとめ余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
リアルタイム amp インタラクティブなWebアプリが可能
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 10
Wikipediaより
非同期通信 ブラウザの挙動とは非同期にサーバ通信可能
インターフェイスの構築 画面遷移なしにサーバと通信できる
Ajaxまとめ余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称通信結果に応じてダイナミックHTMLで動的にページの一部を書き換えるというアプローチを取る
httpjawikipediaorgwikiAjax
リアルタイム amp インタラクティブなWebアプリが可能
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 12
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 13
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 14
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 15
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 16
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 17
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 18
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 19
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 20
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 21
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 22
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 23
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 24
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 25
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 26
1サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 27
SSH接続 Rlogin起動 (Cyenpblyenrlogin_x64yenRLoginexe)
SFTPできるSSHクライアント
1サーバセットアップ
Cyenpblyenssh_keyyenCloudSpiral_Keypem
合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 28
SSH接続
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 29
TomcatMongoDBのインストール SSH (RLogin上) で操作
コマンドはこちら参照
http19216810010docs20140903_webappec2_setuptxt
1サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 30
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 31
Eclipse上でサーバサイドのコードをチェックアウト http19216810010svnshareAlpaca
WebContentフォルダに開発したクライアントのソースコードをコピペ コピペ後のフォルダ構成
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 32
API呼び出しのエンドポイントを書き換えるbull 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
bull 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2開発アプリの修正
var endpoint = apiだけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 33
ビルドする (クライアント amp サーバをひとまとめに)
2開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 34
1サーバセットアップbull Webサーバの立ち上げ (AWSチュートリアルと同等)
bull SSH接続
bull TomcatMongoDBのインストール
2開発アプリの修正bull サーバサイドのソースコードを取得
bull クライアントサイドのソースコードをマージ
bull ビルド
3サーバへのデプロイbull ビルド結果を転送
bull Tomcat起動
bull ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 35
RLoginからファイル転送
3サーバへのデプロイ
CyenpblyenworkspaceyenAlpacayen
DragampDrop
tmp (合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 36
転送したwarをtmpから移動$ cd varlibtomcat7webapps
$ sudo mv tmpalpacawar
Tomcat起動$ sudo service tomcat7 start
ブラウザから確認 httpec2-com8080alpacaalpaca+html
3サーバへのデプロイ
合宿後追記
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
HTML5 API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 38
アーキテクチャ設計の感覚を身につけよう クライアントサーバどちらからでもAPIは利用できる
クライアントサーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJSjQuery
サーバサイドクライアントサイド
RESTAPI
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 39
題材 「ダウwww」 SNSの総w数と日経平均株価の推移を比較するWebアプリ
マッシュアップアプリ
利用するAPIbull 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 40
極端な例 クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
httpdauwwwcom
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
5HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 41
極端な例 サーバサイドマッシュアップ amp CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
4グラフの生成
6HTML設置
5HTML生成
httpdauwwwcom
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1投稿の取得
2wカウント
3ダウの取得
5グラフの生成
httpdauwwwcom
JS
6HTML更新
API
4マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 43
MVCが一つの基準 (理屈) サーバ 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
クライアント ユーザインタフェースを提供する
ただし (現実) アプリの要求に強く依存
bull リアルタイム系かバッチ系か
bull キャッシュDBを使うか
bull 利用者の数はどの程度か
bull クライアントで全てUI制御して良いか
bull 負荷の問題はないか
どうアーキテクチャを決めるか
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 44
以前のアーキテクチャ (MVC風) サーバサイドはREST APIサーバに徹底
クライアントサイドでAPIの結果をレンダリング
問題点 最初のタイムラインの表示に時間がかかっていた
bull JSでのレンダリングが重い
bull 特にモバイル環境で性能上の問題
対処 新旧折衷案 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例
Improving performance on twittercom httpsblogtwittercom2012improving-performance-on-twittercom
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Webアプリを1から作れるようになるbull 要求~設計 (UML講義)bull JavaDBテスト (前期Spiral)bull サーバサイドのRESTサービス化 (小出先生)bull クライアントサイドでのAPI呼び出しUI構築bull クラウド環境への開発アプリのデプロイ
GOAL 12
(再掲)
By Maurizio DArrigo (httpswwwflickrcomphotoskeylosa184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 47
API = レゴオブジェクト
RESTAPI
独自API
HTML5API
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
激動の時代を楽しむ
GOAL 22
Webの世界
By kakela (httpswwwflickrcomphotoskakela9658243)
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
10分で分かる10分で分かるJavaScript
10分で分かるjQuery
各種APIREST API 演
Geolocation API 演
Google Maps API 演
総合演習alpaca+ 演
公開サーバへのデプロイ 演
アーキテクチャ設計
pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 51
後期PBLの概要
分散PBL 学生主体で進めるPBL
各大学でオンラインで実施
3つのミニPBL PBL1 ビッグデータ
PBL2 Webアプリ
PBL3 ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 52
PBL全体スケジュール
103
1017
1031
1114
125
PBL1開始
PBL1発表会 amp PBL2開始
(クラウドセミナー)
PBL2発表会 amp PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 53
CloudSpiralコンペティション (仮) 世界に通用する日本の若いITエンジニアを発掘すべくこれまでにない新たなWebアプリのアイデアを募集しその内容を競います
審査基準 アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画から開発までの計画力実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 54
応募締切 10月17日
一次審査 11月14日 企画提案 amp アプリのデモンストレーション
審査員と一般聴衆による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 55
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 56
応募締切 10月17日 (PBL2開始1週目)
一次審査 11月14日 (PBL2発表会4週目)
企画提案 amp アプリのデモンストレーション
審査員(教員)と一般聴衆(学生)による投票審査
二次審査 1月16日 (13週目=3ヶ月)
開発アプリの一般公開
Web利用者からの一般投票開始
最終審査
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 57
外部APIを一つ以上利用すること 既存のAPIを利用して新たな価値を生むものであること
夢物語にならないこと 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
実現可能性を必ず検討すること
技術面コスト面共に実現可能であること
利用する (したい) 外部APIが存在するかも調べること
開発チームの能力限界を見極めること 開発の見通しが立つこと
最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 58
クライアントサーバの両方を開発すること
サーバサイド 外部APIの呼び出し部分はモック (見せかけ) でもよい
bull 特に認証や利用料が必要なAPIは大変
bull 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
クライアントサイド向けへのREST APIを公開すること
クライアントサイド HTML + JS (CSS等デザインの作り込みは任意)
開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 59
企画提案とアプリのデモンストレーション 当然全て完成していなくて良い
アプリの全体像が聴衆に伝わるように工夫すること
審査基準 (再掲) アプリの新規性独自性
アプリのユニークさ魅力
市場価値や社会課題の解決性
アイデアの説得力プレゼン力
企画~開発までの計画力実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60
プロセスについては特に制約は与えない チームで工夫して下さい
bull Assignment制約をどう捉えるか
bull どのようなツールを使うか
bull 遠隔という難しさをどう工夫するか
最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等
2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい
技術的な質問相談も受け付けます
その他