SlideShare a Scribd company logo
1 of 60
Download to read offline
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
Webアプリ
クライアントサイド講義(2日目)
神戸大学
まつ本 真佑
佐伯 幸郎
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 2
講義の位置付け
Java
サーバサイド
Ruby
PHPREST
API
DWR
Java
Jersey
Java
REST
API
T4J
Rails
REST
API
REST
API
HTML5
API
REST
API
REST
API
REST
APIJS
jQuery
HTML
CSS
http://
{json}
<xml>
独自
API
独自
API
program
API
data
library
REST framework
クライアントサイド
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 3
 SVNコミットしてください
 bigdata, webapp 両方
 模範解答設置しました
 http://192.168.100.10/svn/share/bigdata_ans
 http://192.168.100.10/svn/share/webapp_ans
 Alpacaサーバサイドのソースコード
 http://192.168.100.10/svn/share/Alpaca
お知らせ
 10分で分かる.*
10分で分かるJavaScript
10分で分かるjQuery
 各種API
REST API 演
HTML5 API 演
Google Maps API 演
 総合演習
alpaca+ 演
公開サーバへのデプロイ 演
 アーキテクチャ設計
 pre-PBL
Webアプリを1から作れるようになる
• 要求~設計 (UML講義)
• Java・DB・テスト (前期Spiral)
• サーバサイドのRESTサービス化 (小出先生)
• クライアントサイドでのAPI呼び出し・UI構築
• クラウド環境への開発アプリのデプロイ
GOAL 1/2
By Maurizio D'Arrigo (https://www.flickr.com/photos/keylosa/184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 6
 Wikipediaより
 キーワード:
非同期通信とインターフェイスの構築
 論より証拠,次ページへ
(余談) Ajaxって何?
余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを
行う技術の総称。通信結果に応じてダイナミックHTMLで動的に
ページの一部を書き換えるというアプローチを取る。
http://ja.wikipedia.org/wiki/Ajax
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 7
 サンプル
 http://localhost:50080/webapp/example/ajax.html
Ajaxによる非同期通信
<body>
<textarea></textarea><br>
<img src="image/alpaca-half.png">
<script src="js/jquery-2.1.1.min.js"></script>
<script>
// 処理に時間のかかる重たいAPI(仮)を呼び出す
$.ajax({
url : 'http://192.168.100.10:8080/lama/api/heavy',
async : true, // 非同期にするかどうか (デフォルトではtrue)
});
</script>
</body>
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 8
 サンプル
 http://localhost:50080/webapp/example/ajax.html
Ajaxによる非同期通信
<body>
<textarea></textarea><br>
<img src="image/alpaca-half.png">
<script src="js/jquery-2.1.1.min.js"></script>
<script>
// 処理に時間のかかる重たいAPI(仮)を呼び出す
$.ajax({
url : 'http://192.168.100.10:8080/lama/api/heavy',
async : true, // 非同期にするかどうか (デフォルトではtrue)
});
</script>
</body> ブラウザの挙動とは非同期にサーバ通信可能
=ブラウザが固まらない
余
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 9
 サンプル
 https://twitter.com/signup
Ajaxによるインタフェースの構築
余
画面遷移なしにサーバと通信できる
=動的なWebアプリが作れる
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 10
 Wikipediaより
 非同期通信
 ブラウザの挙動とは非同期にサーバ通信可能
 インターフェイスの構築
 画面遷移なしにサーバと通信できる
Ajaxまとめ
余
ウェブブラウザ内で非同期通信とインターフェイスの構築などを
行う技術の総称。通信結果に応じてダイナミックHTMLで動的に
ページの一部を書き換えるというアプローチを取る。
http://ja.wikipedia.org/wiki/Ajax
リアルタイム & インタラクティブなWebアプリが可能
 10分で分かる.*
10分で分かるJavaScript
10分で分かるjQuery
 各種API
REST API 演
HTML5 API 演
Google Maps API 演
 総合演習
alpaca+ 演
公開サーバへのデプロイ 演
 アーキテクチャ設計
 pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 12
 1.サーバセットアップ
• Webサーバの立ち上げ (AWSチュートリアルと同等)
• SSH接続
• Tomcat/MongoDBのインストール
 2.開発アプリの修正
• サーバサイドのソースコードを取得
• クライアントサイドのソースコードをマージ
• ビルド
 3.サーバへのデプロイ
• ビルド結果を転送
• Tomcat起動
• ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 13
 1.サーバセットアップ
• Webサーバの立ち上げ (AWSチュートリアルと同等)
• SSH接続
• Tomcat/MongoDBのインストール
 2.開発アプリの修正
• サーバサイドのソースコードを取得
• クライアントサイドのソースコードをマージ
• ビルド
 3.サーバへのデプロイ
• ビルド結果を転送
• Tomcat起動
• ブラウザで確認
公開サーバへのデプロイの流れ
ADSLの
限界への挑戦
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 14
 1.サーバセットアップ
• Webサーバの立ち上げ (AWSチュートリアルと同等)
• SSH接続
• Tomcat/MongoDBのインストール
 2.開発アプリの修正
• サーバサイドのソースコードを取得
• クライアントサイドのソースコードをマージ
• ビルド
 3.サーバへのデプロイ
• ビルド結果を転送
• Tomcat起動
• ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 15
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 16
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 17
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 18
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 19
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 20
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 21
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 22
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 23
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 24
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 25
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 26
1.サーバセットアップ
DNS名をメモ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 27
 SSH接続
 Rlogin起動 (C:¥pbl¥rlogin_x64¥RLogin.exe)
 SFTPできるSSHクライアント
1.サーバセットアップ
C:¥pbl¥ssh_key¥
CloudSpiral_Key.pem
★合宿後追記
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 28
 SSH接続
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 29
 Tomcat/MongoDBのインストール
 SSH (RLogin上) で操作
 コマンドはこちら参照
 http://192.168.100.10/docs/2014/0903_webapp/ec2_setup.txt
1.サーバセットアップ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 30
 1.サーバセットアップ
• Webサーバの立ち上げ (AWSチュートリアルと同等)
• SSH接続
• Tomcat/MongoDBのインストール
 2.開発アプリの修正
• サーバサイドのソースコードを取得
• クライアントサイドのソースコードをマージ
• ビルド
 3.サーバへのデプロイ
• ビルド結果を転送
• Tomcat起動
• ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 31
 Eclipse上でサーバサイドのコードをチェックアウト
 http://192.168.100.10/svn/share/Alpaca
 WebContentフォルダに
開発したクライアントの
ソースコードをコピペ
 コピペ後のフォルダ構成
2.開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 32
 API呼び出しのエンドポイントを書き換える
• 修正前) 絶対パス指定による合宿サーバAPIの呼び出し
• 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し
2.開発アプリの修正
var endpoint = 'api';
だけでよい
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 33
 ビルドする (クライアント & サーバをひとまとめに)
2.開発アプリの修正
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 34
 1.サーバセットアップ
• Webサーバの立ち上げ (AWSチュートリアルと同等)
• SSH接続
• Tomcat/MongoDBのインストール
 2.開発アプリの修正
• サーバサイドのソースコードを取得
• クライアントサイドのソースコードをマージ
• ビルド
 3.サーバへのデプロイ
• ビルド結果を転送
• Tomcat起動
• ブラウザで確認
公開サーバへのデプロイの流れ
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 35
 RLoginからファイル転送
3.サーバへのデプロイ
C:¥pbl¥workspace¥Alpaca¥
Drag&Drop
/tmp/ (★合宿後追記)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 36
 転送したwarを/tmpから移動
$ cd /var/lib/tomcat7/webapps/
$ sudo mv /tmp/alpaca.war .
 Tomcat起動
$ sudo service tomcat7 start
 ブラウザから確認
 http://ec2-...com:8080/alpaca/alpaca+.html
3.サーバへのデプロイ
★合宿後追記
 10分で分かる.*
10分で分かるJavaScript
10分で分かるjQuery
 各種API
REST API 演
HTML5 API 演
Google Maps API 演
 総合演習
alpaca+ 演
公開サーバへのデプロイ 演
 アーキテクチャ設計
 pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 38
 アーキテクチャ設計の感覚を身につけよう
 クライアント/サーバどちらからでもAPIは利用できる
 クライアント/サーバのどちらにどの機能を実装するかが重要
Webアプリのアーキテクチャ
JavaJS
jQuery
サーバサイドクライアントサイド
REST
API
外部サービス自開発サービス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 39
 題材: 「ダウwww」
 SNSの総w数と日経平均株価の推移を比較するWebアプリ
 マッシュアップアプリ
 利用するAPI
• 各種SNSのAPI + Yahoo Finance API + Google Chart API
考える題材Webアプリ
ダウ
www
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 40
極端な例: クライアントサイドマッシュアップ
API API APIhttpd
HTML JS
外部サービスクライアント ダウwwwサーバ
http://dauwww.com/
1.投稿の取得
2.wカウント
3.ダウの取得
4.グラフの生成
5.HTML更新
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 41
極端な例: サーバサイドマッシュアップ & CGI風
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1.投稿の取得
2.wカウント
3.ダウの取得
4.グラフの生成
6.HTML設置
5.HTML生成
http://dauwww.com/
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 42
MVC風アーキテクチャ
API API APIhttpd Java
外部サービスクライアント ダウwwwサーバ
1.投稿の取得
2.wカウント
3.ダウの取得
5.グラフの生成
http://dauwww.com/
JS
6.HTML更新
API
4.マッシュアップ済みデータの取得 (REST API)
HTML
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 43
 MVCが一つの基準 (理屈)
 サーバ: 機能やデータをREST APIの形で提供する
(+HTMLとJSを提供する)
 クライアント: ユーザインタフェースを提供する
 ただし・・・ (現実)
 アプリの要求に強く依存
• リアルタイム系かバッチ系か?
• キャッシュ/DBを使うか?
• 利用者の数はどの程度か?
• クライアントで全てUI制御して良いか?
• 負荷の問題はないか?
どうアーキテクチャを決めるか?
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 44
 以前のアーキテクチャ (MVC風)
 サーバサイドはREST APIサーバに徹底
 クライアントサイドでAPIの結果をレンダリング
 問題点
 最初のタイムラインの表示に時間がかかっていた
• JSでのレンダリングが重い
• 特にモバイル環境で性能上の問題
 対処: 新旧折衷案
 タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)
 続きのページはJSで非同期に読み込む (API風)
Twitterのアーキテクチャ見直し事例*
* "Improving performance on twitter.com", https://blog.twitter.com/2012/improving-performance-on-twittercom
Webアプリを1から作れるようになる
• 要求~設計 (UML講義)
• Java・DB・テスト (前期Spiral)
• サーバサイドのRESTサービス化 (小出先生)
• クライアントサイドでのAPI呼び出し・UI構築
• クラウド環境への開発アプリのデプロイ
GOAL 1/2
(再掲)
By Maurizio D'Arrigo (https://www.flickr.com/photos/keylosa/184606430)
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 46
API = レゴオブジェクト
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 47
API = レゴオブジェクト
REST
API
独自
API
HTML5
API
Webの世界
By kakela (https://www.flickr.com/photos/kakela/9658243)
・ 激動の時代を楽しむ
GOAL 2/2
Webの世界
By kakela (https://www.flickr.com/photos/kakela/9658243)
 10分で分かる.*
10分で分かるJavaScript
10分で分かるjQuery
 各種API
REST API 演
Geolocation API 演
Google Maps API 演
 総合演習
alpaca+ 演
公開サーバへのデプロイ 演
 アーキテクチャ設計
 pre-PBL
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 51
後期PBLの概要
 分散PBL
 学生主体で進めるPBL
 各大学でオンラインで実施
 3つのミニPBL
 PBL1: ビッグデータ
 PBL2: Webアプリ
 PBL3: ビジネス
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 52
PBL全体スケジュール
10/3
10/17
10/31
11/14
12/5
PBL1開始
PBL1発表会 & PBL2開始
(クラウドセミナー)
PBL2発表会 & PBL3開始
PBL3発表会
2weeks
4weeks
3weeks
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 53
 CloudSpiralコンペティション (仮)
 世界に通用する日本の若いITエンジニアを発掘すべく,
これまでにない新たなWebアプリのアイデアを募集し,
その内容を競います
 審査基準
 アプリの新規性・独自性
 アプリのユニークさ・魅力
 市場価値や社会課題の解決性
 アイデアの説得力,プレゼン力
 企画から開発までの計画力・実現力
PBL2の設定
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 54
 応募締切: 10月17日
 一次審査: 11月14日
 企画提案 & アプリのデモンストレーション
 審査員と一般聴衆による投票審査
 二次審査: 1月16日
 開発アプリの一般公開
 Web利用者からの一般投票開始
 最終審査: ・・・
コンテストの流れ
設定
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 55
 応募締切: 10月17日 (PBL2開始,1週目)
 一次審査: 11月14日 (PBL2発表会,4週目)
 企画提案 & アプリのデモンストレーション
 審査員(教員)と一般聴衆(学生)による投票審査
 二次審査: 1月16日
 開発アプリの一般公開
 Web利用者からの一般投票開始
 最終審査: ・・・
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 56
 応募締切: 10月17日 (PBL2開始,1週目)
 一次審査: 11月14日 (PBL2発表会,4週目)
 企画提案 & アプリのデモンストレーション
 審査員(教員)と一般聴衆(学生)による投票審査
 二次審査: 1月16日 (13週目=3ヶ月)
 開発アプリの一般公開
 Web利用者からの一般投票開始
 最終審査: ・・・
コンテストの流れ
真意
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 57
 外部APIを一つ以上利用すること
 既存のAPIを利用して新たな価値を生むものであること
 夢物語にならないこと
 「夢を語るのは高校生まで」 「形にしないと嘘でしょ」
 実現可能性を必ず検討すること
 技術面・コスト面共に実現可能であること
 利用する (したい) 外部APIが存在するかも調べること
 開発チームの能力・限界を見極めること
 開発の見通しが立つこと
 最終的な開発完了までは13週間 (3ヶ月)
PBLとしての企画上の制約
BLACK
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 58
 クライアント・サーバの両方を開発すること
 サーバサイド
 外部APIの呼び出し部分はモック (見せかけ) でもよい
• 特に認証や利用料が必要なAPIは大変
• 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい
 クライアントサイド向けへのREST APIを公開すること
 クライアントサイド
 HTML + JS (CSS等デザインの作り込みは任意)
 開発したサーバサイドのREST APIを呼び出すこと
PBLとしての開発上の制約
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 59
 企画提案とアプリのデモンストレーション
 当然全て完成していなくて良い
 アプリの全体像が聴衆に伝わるように工夫すること
 審査基準 (再掲)
 アプリの新規性・独自性
 アプリのユニークさ・魅力
 市場価値や社会課題の解決性
 アイデアの説得力,プレゼン力
 企画~開発までの計画力・実現力
PBL2の発表会で求めるもの
Cloud Specialist Program Initiative for Reality-based Advanced Learning
分野・地域を越えた実践的情報教育協働ネットワーク
© Cloud Spiral partners 2014/9/3,4 60
 プロセスについては特に制約は与えない
 チームで工夫して下さい
• Assignment制約をどう捉えるか?
• どのようなツールを使うか?
• 遠隔という難しさをどう工夫するか?
 最低限,前期合宿と同等の開発環境はこちらで用意します
• SVNやTrac等
 2週目 (10/31) クラウドセミナー
 午前中はフリー,チームで対面できる機会なので活用して下さい
 技術的な質問・相談も受け付けます
その他

More Related Content

What's hot

AWS が提供する IoT ソリューションと ITS における活用
AWS が提供する IoT ソリューションと ITS における活用AWS が提供する IoT ソリューションと ITS における活用
AWS が提供する IoT ソリューションと ITS における活用Amazon Web Services Japan
 
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例Naoya Kishimoto
 
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門Amazon Web Services Japan
 
AWS IoT サービス アップデートのご紹介
AWS IoT サービス アップデートのご紹介AWS IoT サービス アップデートのご紹介
AWS IoT サービス アップデートのご紹介Amazon Web Services Japan
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1Toshiaki Maki
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視Takanori Suzuki
 
大規模 Vue アプリケーションの TypeScript 移行
大規模 Vue アプリケーションの TypeScript 移行大規模 Vue アプリケーションの TypeScript 移行
大規模 Vue アプリケーションの TypeScript 移行Shingo Sasaki
 
SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application土岐 孝平
 
Deploying secure service mesh for applications on k8s with using A10's Lighti...
Deploying secure service mesh for applications on k8s with using A10's Lighti...Deploying secure service mesh for applications on k8s with using A10's Lighti...
Deploying secure service mesh for applications on k8s with using A10's Lighti...Kentaro Ishizuka
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢apkiban
 
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonightAmazon Web Services Japan
 
GAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) OpsGAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) OpsMiniascape
 
Spring native について
Spring native についてSpring native について
Spring native についてTakamasa Mitsuji
 
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話JustSystems Corporation
 
AWS & Google Cloud 両方を駆使するチームでの技術選定
AWS & Google Cloud  両方を駆使するチームでの技術選定AWS & Google Cloud  両方を駆使するチームでの技術選定
AWS & Google Cloud 両方を駆使するチームでの技術選定修一 高橋
 
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践Amazon Web Services Japan
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Yuichi Hasegawa
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るGo Miyasaka
 
AWS Wavelengthと大阪リージョンのご紹介20210414
AWS Wavelengthと大阪リージョンのご紹介20210414AWS Wavelengthと大阪リージョンのご紹介20210414
AWS Wavelengthと大阪リージョンのご紹介20210414Amazon Web Services Japan
 
DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法CASAREAL, Inc.
 

What's hot (20)

AWS が提供する IoT ソリューションと ITS における活用
AWS が提供する IoT ソリューションと ITS における活用AWS が提供する IoT ソリューションと ITS における活用
AWS が提供する IoT ソリューションと ITS における活用
 
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
 
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
20180613 AWS Black Belt Online Seminar AWS Cloud9 入門
 
AWS IoT サービス アップデートのご紹介
AWS IoT サービス アップデートのご紹介AWS IoT サービス アップデートのご紹介
AWS IoT サービス アップデートのご紹介
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
 
大規模 Vue アプリケーションの TypeScript 移行
大規模 Vue アプリケーションの TypeScript 移行大規模 Vue アプリケーションの TypeScript 移行
大規模 Vue アプリケーションの TypeScript 移行
 
SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application
 
Deploying secure service mesh for applications on k8s with using A10's Lighti...
Deploying secure service mesh for applications on k8s with using A10's Lighti...Deploying secure service mesh for applications on k8s with using A10's Lighti...
Deploying secure service mesh for applications on k8s with using A10's Lighti...
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
 
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
 
GAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) OpsGAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) Ops
 
Spring native について
Spring native についてSpring native について
Spring native について
 
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
 
AWS & Google Cloud 両方を駆使するチームでの技術選定
AWS & Google Cloud  両方を駆使するチームでの技術選定AWS & Google Cloud  両方を駆使するチームでの技術選定
AWS & Google Cloud 両方を駆使するチームでの技術選定
 
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
IoT@Loft - IoT開発を成功させるためのPoCの進め方と実践
 
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
 
AWS Wavelengthと大阪リージョンのご紹介20210414
AWS Wavelengthと大阪リージョンのご紹介20210414AWS Wavelengthと大阪リージョンのご紹介20210414
AWS Wavelengthと大阪リージョンのご紹介20210414
 
DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法DevOpsに求められる様々な技術とその連携の学習方法
DevOpsに求められる様々な技術とその連携の学習方法
 

Similar to CloudSpiral 2014年度 Webアプリ講義(2日目)

20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_Jenkins20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_JenkinsSHIFT Inc.
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS AzureIssei Hiraoka
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しAkira Nagata
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...Shinji Takao
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)NTT DATA Technology & Innovation
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascriptTakao Tetsuro
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShiftEtsuji Nakai
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndureAmazon Web Services Japan
 
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)Amazon Web Services Japan
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewKeiji Kamebuchi
 
【VMware】jp developer-summit_2012_final_for_print
【VMware】jp developer-summit_2012_final_for_print【VMware】jp developer-summit_2012_final_for_print
【VMware】jp developer-summit_2012_final_for_printVMwareKK
 
開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリングAmazon Web Services Japan
 
Scala: Mobile Backend on AWS
Scala: Mobile Backend on AWSScala: Mobile Backend on AWS
Scala: Mobile Backend on AWScmaraiyusuke
 
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送Google Cloud Platform - Japan
 
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーションMasahito Zembutsu
 
OSC2012-Fukuoka-CloudStack-Update
OSC2012-Fukuoka-CloudStack-UpdateOSC2012-Fukuoka-CloudStack-Update
OSC2012-Fukuoka-CloudStack-UpdateKimihiko Kitase
 
これからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしようこれからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしよう真吾 吉田
 
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像Akira Inoue
 

Similar to CloudSpiral 2014年度 Webアプリ講義(2日目) (20)

Springon cloudfoundry
Springon cloudfoundrySpringon cloudfoundry
Springon cloudfoundry
 
20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_Jenkins20140605_じどうかの窓口_CloudBees_Jenkins
20140605_じどうかの窓口_CloudBees_Jenkins
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
 
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure
 
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
 
Azure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - OverviewAzure DevOps 関西 2019 - Overview
Azure DevOps 関西 2019 - Overview
 
【VMware】jp developer-summit_2012_final_for_print
【VMware】jp developer-summit_2012_final_for_print【VMware】jp developer-summit_2012_final_for_print
【VMware】jp developer-summit_2012_final_for_print
 
開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング開発者におくるサーバーレスモニタリング
開発者におくるサーバーレスモニタリング
 
Scala: Mobile Backend on AWS
Scala: Mobile Backend on AWSScala: Mobile Backend on AWS
Scala: Mobile Backend on AWS
 
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
[Cloud OnAir] Talks by DevRel Vol.5 アプリケーションのモダナイゼーション 2020年9月3日 放送
 
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
 
OSC2012-Fukuoka-CloudStack-Update
OSC2012-Fukuoka-CloudStack-UpdateOSC2012-Fukuoka-CloudStack-Update
OSC2012-Fukuoka-CloudStack-Update
 
これからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしようこれからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしよう
 
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
 

Recently uploaded

My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」inspirehighstaff03
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」inspirehighstaff03
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドKen Fukui
 
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドKen Fukui
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」inspirehighstaff03
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」inspirehighstaff03
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドKen Fukui
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」inspirehighstaff03
 
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドリアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドKen Fukui
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slidessusere0a682
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」inspirehighstaff03
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfyukisuga3
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」inspirehighstaff03
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドKen Fukui
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」inspirehighstaff03
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」inspirehighstaff03
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」inspirehighstaff03
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」inspirehighstaff03
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」inspirehighstaff03
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」inspirehighstaff03
 

Recently uploaded (20)

My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
 
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
 
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドリアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
 

CloudSpiral 2014年度 Webアプリ講義(2日目)

  • 1. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク Webアプリ クライアントサイド講義(2日目) 神戸大学 まつ本 真佑 佐伯 幸郎
  • 2. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 2 講義の位置付け Java サーバサイド Ruby PHPREST API DWR Java Jersey Java REST API T4J Rails REST API REST API HTML5 API REST API REST API REST APIJS jQuery HTML CSS http:// {json} <xml> 独自 API 独自 API program API data library REST framework クライアントサイド 外部サービス自開発サービス
  • 3. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 3  SVNコミットしてください  bigdata, webapp 両方  模範解答設置しました  http://192.168.100.10/svn/share/bigdata_ans  http://192.168.100.10/svn/share/webapp_ans  Alpacaサーバサイドのソースコード  http://192.168.100.10/svn/share/Alpaca お知らせ
  • 4.  10分で分かる.* 10分で分かるJavaScript 10分で分かるjQuery  各種API REST API 演 HTML5 API 演 Google Maps API 演  総合演習 alpaca+ 演 公開サーバへのデプロイ 演  アーキテクチャ設計  pre-PBL
  • 5. Webアプリを1から作れるようになる • 要求~設計 (UML講義) • Java・DB・テスト (前期Spiral) • サーバサイドのRESTサービス化 (小出先生) • クライアントサイドでのAPI呼び出し・UI構築 • クラウド環境への開発アプリのデプロイ GOAL 1/2 By Maurizio D'Arrigo (https://www.flickr.com/photos/keylosa/184606430)
  • 6. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 6  Wikipediaより  キーワード: 非同期通信とインターフェイスの構築  論より証拠,次ページへ (余談) Ajaxって何? 余 ウェブブラウザ内で非同期通信とインターフェイスの構築などを 行う技術の総称。通信結果に応じてダイナミックHTMLで動的に ページの一部を書き換えるというアプローチを取る。 http://ja.wikipedia.org/wiki/Ajax
  • 7. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 7  サンプル  http://localhost:50080/webapp/example/ajax.html Ajaxによる非同期通信 <body> <textarea></textarea><br> <img src="image/alpaca-half.png"> <script src="js/jquery-2.1.1.min.js"></script> <script> // 処理に時間のかかる重たいAPI(仮)を呼び出す $.ajax({ url : 'http://192.168.100.10:8080/lama/api/heavy', async : true, // 非同期にするかどうか (デフォルトではtrue) }); </script> </body> 余
  • 8. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 8  サンプル  http://localhost:50080/webapp/example/ajax.html Ajaxによる非同期通信 <body> <textarea></textarea><br> <img src="image/alpaca-half.png"> <script src="js/jquery-2.1.1.min.js"></script> <script> // 処理に時間のかかる重たいAPI(仮)を呼び出す $.ajax({ url : 'http://192.168.100.10:8080/lama/api/heavy', async : true, // 非同期にするかどうか (デフォルトではtrue) }); </script> </body> ブラウザの挙動とは非同期にサーバ通信可能 =ブラウザが固まらない 余
  • 9. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 9  サンプル  https://twitter.com/signup Ajaxによるインタフェースの構築 余 画面遷移なしにサーバと通信できる =動的なWebアプリが作れる
  • 10. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 10  Wikipediaより  非同期通信  ブラウザの挙動とは非同期にサーバ通信可能  インターフェイスの構築  画面遷移なしにサーバと通信できる Ajaxまとめ 余 ウェブブラウザ内で非同期通信とインターフェイスの構築などを 行う技術の総称。通信結果に応じてダイナミックHTMLで動的に ページの一部を書き換えるというアプローチを取る。 http://ja.wikipedia.org/wiki/Ajax リアルタイム & インタラクティブなWebアプリが可能
  • 11.  10分で分かる.* 10分で分かるJavaScript 10分で分かるjQuery  各種API REST API 演 HTML5 API 演 Google Maps API 演  総合演習 alpaca+ 演 公開サーバへのデプロイ 演  アーキテクチャ設計  pre-PBL
  • 12. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 12  1.サーバセットアップ • Webサーバの立ち上げ (AWSチュートリアルと同等) • SSH接続 • Tomcat/MongoDBのインストール  2.開発アプリの修正 • サーバサイドのソースコードを取得 • クライアントサイドのソースコードをマージ • ビルド  3.サーバへのデプロイ • ビルド結果を転送 • Tomcat起動 • ブラウザで確認 公開サーバへのデプロイの流れ
  • 13. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 13  1.サーバセットアップ • Webサーバの立ち上げ (AWSチュートリアルと同等) • SSH接続 • Tomcat/MongoDBのインストール  2.開発アプリの修正 • サーバサイドのソースコードを取得 • クライアントサイドのソースコードをマージ • ビルド  3.サーバへのデプロイ • ビルド結果を転送 • Tomcat起動 • ブラウザで確認 公開サーバへのデプロイの流れ ADSLの 限界への挑戦
  • 14. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 14  1.サーバセットアップ • Webサーバの立ち上げ (AWSチュートリアルと同等) • SSH接続 • Tomcat/MongoDBのインストール  2.開発アプリの修正 • サーバサイドのソースコードを取得 • クライアントサイドのソースコードをマージ • ビルド  3.サーバへのデプロイ • ビルド結果を転送 • Tomcat起動 • ブラウザで確認 公開サーバへのデプロイの流れ
  • 15. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 15 1.サーバセットアップ
  • 16. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 16 1.サーバセットアップ
  • 17. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 17 1.サーバセットアップ
  • 18. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 18 1.サーバセットアップ
  • 19. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 19 1.サーバセットアップ
  • 20. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 20 1.サーバセットアップ
  • 21. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 21 1.サーバセットアップ
  • 22. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 22 1.サーバセットアップ
  • 23. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 23 1.サーバセットアップ
  • 24. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 24 1.サーバセットアップ
  • 25. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 25 1.サーバセットアップ
  • 26. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 26 1.サーバセットアップ DNS名をメモ
  • 27. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 27  SSH接続  Rlogin起動 (C:¥pbl¥rlogin_x64¥RLogin.exe)  SFTPできるSSHクライアント 1.サーバセットアップ C:¥pbl¥ssh_key¥ CloudSpiral_Key.pem ★合宿後追記
  • 28. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 28  SSH接続 1.サーバセットアップ
  • 29. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 29  Tomcat/MongoDBのインストール  SSH (RLogin上) で操作  コマンドはこちら参照  http://192.168.100.10/docs/2014/0903_webapp/ec2_setup.txt 1.サーバセットアップ
  • 30. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 30  1.サーバセットアップ • Webサーバの立ち上げ (AWSチュートリアルと同等) • SSH接続 • Tomcat/MongoDBのインストール  2.開発アプリの修正 • サーバサイドのソースコードを取得 • クライアントサイドのソースコードをマージ • ビルド  3.サーバへのデプロイ • ビルド結果を転送 • Tomcat起動 • ブラウザで確認 公開サーバへのデプロイの流れ
  • 31. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 31  Eclipse上でサーバサイドのコードをチェックアウト  http://192.168.100.10/svn/share/Alpaca  WebContentフォルダに 開発したクライアントの ソースコードをコピペ  コピペ後のフォルダ構成 2.開発アプリの修正
  • 32. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 32  API呼び出しのエンドポイントを書き換える • 修正前) 絶対パス指定による合宿サーバAPIの呼び出し • 修正後) 相対パス指定によるEC2サーバ自身のAPI呼び出し 2.開発アプリの修正 var endpoint = 'api'; だけでよい
  • 33. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 33  ビルドする (クライアント & サーバをひとまとめに) 2.開発アプリの修正
  • 34. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 34  1.サーバセットアップ • Webサーバの立ち上げ (AWSチュートリアルと同等) • SSH接続 • Tomcat/MongoDBのインストール  2.開発アプリの修正 • サーバサイドのソースコードを取得 • クライアントサイドのソースコードをマージ • ビルド  3.サーバへのデプロイ • ビルド結果を転送 • Tomcat起動 • ブラウザで確認 公開サーバへのデプロイの流れ
  • 35. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 35  RLoginからファイル転送 3.サーバへのデプロイ C:¥pbl¥workspace¥Alpaca¥ Drag&Drop /tmp/ (★合宿後追記)
  • 36. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 36  転送したwarを/tmpから移動 $ cd /var/lib/tomcat7/webapps/ $ sudo mv /tmp/alpaca.war .  Tomcat起動 $ sudo service tomcat7 start  ブラウザから確認  http://ec2-...com:8080/alpaca/alpaca+.html 3.サーバへのデプロイ ★合宿後追記
  • 37.  10分で分かる.* 10分で分かるJavaScript 10分で分かるjQuery  各種API REST API 演 HTML5 API 演 Google Maps API 演  総合演習 alpaca+ 演 公開サーバへのデプロイ 演  アーキテクチャ設計  pre-PBL
  • 38. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 38  アーキテクチャ設計の感覚を身につけよう  クライアント/サーバどちらからでもAPIは利用できる  クライアント/サーバのどちらにどの機能を実装するかが重要 Webアプリのアーキテクチャ JavaJS jQuery サーバサイドクライアントサイド REST API 外部サービス自開発サービス
  • 39. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 39  題材: 「ダウwww」  SNSの総w数と日経平均株価の推移を比較するWebアプリ  マッシュアップアプリ  利用するAPI • 各種SNSのAPI + Yahoo Finance API + Google Chart API 考える題材Webアプリ ダウ www
  • 40. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 40 極端な例: クライアントサイドマッシュアップ API API APIhttpd HTML JS 外部サービスクライアント ダウwwwサーバ http://dauwww.com/ 1.投稿の取得 2.wカウント 3.ダウの取得 4.グラフの生成 5.HTML更新
  • 41. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 41 極端な例: サーバサイドマッシュアップ & CGI風 API API APIhttpd Java 外部サービスクライアント ダウwwwサーバ 1.投稿の取得 2.wカウント 3.ダウの取得 4.グラフの生成 6.HTML設置 5.HTML生成 http://dauwww.com/
  • 42. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 42 MVC風アーキテクチャ API API APIhttpd Java 外部サービスクライアント ダウwwwサーバ 1.投稿の取得 2.wカウント 3.ダウの取得 5.グラフの生成 http://dauwww.com/ JS 6.HTML更新 API 4.マッシュアップ済みデータの取得 (REST API) HTML
  • 43. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 43  MVCが一つの基準 (理屈)  サーバ: 機能やデータをREST APIの形で提供する (+HTMLとJSを提供する)  クライアント: ユーザインタフェースを提供する  ただし・・・ (現実)  アプリの要求に強く依存 • リアルタイム系かバッチ系か? • キャッシュ/DBを使うか? • 利用者の数はどの程度か? • クライアントで全てUI制御して良いか? • 負荷の問題はないか? どうアーキテクチャを決めるか?
  • 44. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 44  以前のアーキテクチャ (MVC風)  サーバサイドはREST APIサーバに徹底  クライアントサイドでAPIの結果をレンダリング  問題点  最初のタイムラインの表示に時間がかかっていた • JSでのレンダリングが重い • 特にモバイル環境で性能上の問題  対処: 新旧折衷案  タイムラインの初期ページはサーバ側で埋め込んでおく (CGI風)  続きのページはJSで非同期に読み込む (API風) Twitterのアーキテクチャ見直し事例* * "Improving performance on twitter.com", https://blog.twitter.com/2012/improving-performance-on-twittercom
  • 45. Webアプリを1から作れるようになる • 要求~設計 (UML講義) • Java・DB・テスト (前期Spiral) • サーバサイドのRESTサービス化 (小出先生) • クライアントサイドでのAPI呼び出し・UI構築 • クラウド環境への開発アプリのデプロイ GOAL 1/2 (再掲) By Maurizio D'Arrigo (https://www.flickr.com/photos/keylosa/184606430)
  • 46. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 46 API = レゴオブジェクト
  • 47. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 47 API = レゴオブジェクト REST API 独自 API HTML5 API
  • 49. ・ 激動の時代を楽しむ GOAL 2/2 Webの世界 By kakela (https://www.flickr.com/photos/kakela/9658243)
  • 50.  10分で分かる.* 10分で分かるJavaScript 10分で分かるjQuery  各種API REST API 演 Geolocation API 演 Google Maps API 演  総合演習 alpaca+ 演 公開サーバへのデプロイ 演  アーキテクチャ設計  pre-PBL
  • 51. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 51 後期PBLの概要  分散PBL  学生主体で進めるPBL  各大学でオンラインで実施  3つのミニPBL  PBL1: ビッグデータ  PBL2: Webアプリ  PBL3: ビジネス
  • 52. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 52 PBL全体スケジュール 10/3 10/17 10/31 11/14 12/5 PBL1開始 PBL1発表会 & PBL2開始 (クラウドセミナー) PBL2発表会 & PBL3開始 PBL3発表会 2weeks 4weeks 3weeks
  • 53. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 53  CloudSpiralコンペティション (仮)  世界に通用する日本の若いITエンジニアを発掘すべく, これまでにない新たなWebアプリのアイデアを募集し, その内容を競います  審査基準  アプリの新規性・独自性  アプリのユニークさ・魅力  市場価値や社会課題の解決性  アイデアの説得力,プレゼン力  企画から開発までの計画力・実現力 PBL2の設定 設定
  • 54. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 54  応募締切: 10月17日  一次審査: 11月14日  企画提案 & アプリのデモンストレーション  審査員と一般聴衆による投票審査  二次審査: 1月16日  開発アプリの一般公開  Web利用者からの一般投票開始  最終審査: ・・・ コンテストの流れ 設定
  • 55. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 55  応募締切: 10月17日 (PBL2開始,1週目)  一次審査: 11月14日 (PBL2発表会,4週目)  企画提案 & アプリのデモンストレーション  審査員(教員)と一般聴衆(学生)による投票審査  二次審査: 1月16日  開発アプリの一般公開  Web利用者からの一般投票開始  最終審査: ・・・ コンテストの流れ 真意
  • 56. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 56  応募締切: 10月17日 (PBL2開始,1週目)  一次審査: 11月14日 (PBL2発表会,4週目)  企画提案 & アプリのデモンストレーション  審査員(教員)と一般聴衆(学生)による投票審査  二次審査: 1月16日 (13週目=3ヶ月)  開発アプリの一般公開  Web利用者からの一般投票開始  最終審査: ・・・ コンテストの流れ 真意
  • 57. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 57  外部APIを一つ以上利用すること  既存のAPIを利用して新たな価値を生むものであること  夢物語にならないこと  「夢を語るのは高校生まで」 「形にしないと嘘でしょ」  実現可能性を必ず検討すること  技術面・コスト面共に実現可能であること  利用する (したい) 外部APIが存在するかも調べること  開発チームの能力・限界を見極めること  開発の見通しが立つこと  最終的な開発完了までは13週間 (3ヶ月) PBLとしての企画上の制約 BLACK
  • 58. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 58  クライアント・サーバの両方を開発すること  サーバサイド  外部APIの呼び出し部分はモック (見せかけ) でもよい • 特に認証や利用料が必要なAPIは大変 • 企画として 「ここが提供しているこのAPIを使う」 という点を主張すればよい  クライアントサイド向けへのREST APIを公開すること  クライアントサイド  HTML + JS (CSS等デザインの作り込みは任意)  開発したサーバサイドのREST APIを呼び出すこと PBLとしての開発上の制約
  • 59. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 59  企画提案とアプリのデモンストレーション  当然全て完成していなくて良い  アプリの全体像が聴衆に伝わるように工夫すること  審査基準 (再掲)  アプリの新規性・独自性  アプリのユニークさ・魅力  市場価値や社会課題の解決性  アイデアの説得力,プレゼン力  企画~開発までの計画力・実現力 PBL2の発表会で求めるもの
  • 60. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2014/9/3,4 60  プロセスについては特に制約は与えない  チームで工夫して下さい • Assignment制約をどう捉えるか? • どのようなツールを使うか? • 遠隔という難しさをどう工夫するか?  最低限,前期合宿と同等の開発環境はこちらで用意します • SVNやTrac等  2週目 (10/31) クラウドセミナー  午前中はフリー,チームで対面できる機会なので活用して下さい  技術的な質問・相談も受け付けます その他