60
Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク Web アプリ クライアントサイド講義 2 日目 神戸大学 まつ本 真佑 佐伯 幸郎

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

Embed Size (px)

Citation preview

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

Page 2: CloudSpiral 2014年度 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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

Page 32: CloudSpiral 2014年度 Webアプリ講義(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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

Page 34: CloudSpiral 2014年度 Webアプリ講義(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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

激動の時代を楽しむ

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

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) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他

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

Cloud Specialist Program Initiative for Reality-based Advanced Learning

分野地域を越えた実践的情報教育協働ネットワークcopy Cloud Spiral partners 2014934 60

プロセスについては特に制約は与えない チームで工夫して下さい

bull Assignment制約をどう捉えるか

bull どのようなツールを使うか

bull 遠隔という難しさをどう工夫するか

最低限前期合宿と同等の開発環境はこちらで用意しますbull SVNやTrac等

2週目 (1031) クラウドセミナー 午前中はフリーチームで対面できる機会なので活用して下さい

技術的な質問相談も受け付けます

その他