Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
なおき きしだ
ODP, PDF
2,594 views
Google App Engineとその影響(補足)
2009/11/13 Javaコミュニティ@九州 例会でのプレゼンテーション 11/18 本番でしゃべったことをふまえて補足をいれました。
Read more
4
Save
Share
Embed
Embed presentation
Download
Downloaded 34 times
1
/ 43
2
/ 43
3
/ 43
4
/ 43
5
/ 43
6
/ 43
7
/ 43
8
/ 43
9
/ 43
10
/ 43
11
/ 43
12
/ 43
13
/ 43
14
/ 43
15
/ 43
16
/ 43
17
/ 43
18
/ 43
19
/ 43
20
/ 43
21
/ 43
22
/ 43
23
/ 43
24
/ 43
25
/ 43
26
/ 43
27
/ 43
28
/ 43
29
/ 43
30
/ 43
31
/ 43
32
/ 43
33
/ 43
34
/ 43
35
/ 43
36
/ 43
37
/ 43
38
/ 43
39
/ 43
40
/ 43
41
/ 43
42
/ 43
43
/ 43
More Related Content
PDF
サーバーのおしごと
by
Yugo Shimizu
PDF
PHPで大規模ブラウザゲームを開発してわかったこと
by
Kentaro Matsui
PPTX
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
by
樽八 仲川
PDF
Couchbase server入門
by
Yusuke Komatsu
PDF
PostgreSQL DBのバックアップを一元化しよう
by
Yukiya Hayashi
PDF
20130413 JAWS-UG北陸 美人CDP
by
真吾 吉田
PDF
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
by
tama200x Kobayashi
PDF
WordCamp Kyoto 2009 LT Slide
by
tecking
サーバーのおしごと
by
Yugo Shimizu
PHPで大規模ブラウザゲームを開発してわかったこと
by
Kentaro Matsui
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
by
樽八 仲川
Couchbase server入門
by
Yusuke Komatsu
PostgreSQL DBのバックアップを一元化しよう
by
Yukiya Hayashi
20130413 JAWS-UG北陸 美人CDP
by
真吾 吉田
2012/6/10 Webのパフォーマンスを考える @ 【第三回】初心者向けホームページ勉強会
by
tama200x Kobayashi
WordCamp Kyoto 2009 LT Slide
by
tecking
What's hot
PDF
PHPからJavaへ乗り換えた。そんな昔話をしよう
by
優介 黒河
PPTX
LINEのMySQL運用について 修正版
by
LINE Corporation
PPTX
EmbulkとDigdagとデータ分析基盤と
by
Toru Takahashi
PPT
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
by
Kazuho Oku
PPTX
AWSとmod_pagespeedで楽々サクサク高速化!!
by
aasakawa
PDF
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
by
Couchbase Japan KK
PPTX
【Photon勉強会】FFGMでも採用!1時間でわかるPlugin開発とEnterprise Cloudの詳解
by
GMO GlobalSign Holdings K.K.
PPTX
What's new in Couchbase Server 4.0 ja
by
Couchbase Japan KK
PDF
DXライブラリでMMO作ったよ!
by
h2so5
PDF
Couchbaseの紹介 2015/03/05
by
Couchbase Japan KK
PPTX
クラウドで運用するCouchbase Server
by
Kazumi Hirose
PDF
brotli圧縮でスピード向上・転送量削減を実現 Drupalとの連携
by
Katsuhisa Ogawa
PDF
20130330 JAWS-UG広島 美人CDP
by
真吾 吉田
PPTX
誰にでもできるパフォーマンスチューニング
by
Kiyokazu Kaba
PDF
Backlogでの Perlのつかいかた
by
Ryuzo Yamamoto
PPTX
初心者向け負荷軽減のはなし
by
Oonishi Takaaki
PDF
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
by
Yuuki Namikawa
PDF
File Server on Azure IaaS
by
junichi anno
PHPからJavaへ乗り換えた。そんな昔話をしよう
by
優介 黒河
LINEのMySQL運用について 修正版
by
LINE Corporation
EmbulkとDigdagとデータ分析基盤と
by
Toru Takahashi
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
by
Kazuho Oku
AWSとmod_pagespeedで楽々サクサク高速化!!
by
aasakawa
今日から使えるCouchbaseシステムアーキテクチャデザインパターン集
by
Couchbase Japan KK
【Photon勉強会】FFGMでも採用!1時間でわかるPlugin開発とEnterprise Cloudの詳解
by
GMO GlobalSign Holdings K.K.
What's new in Couchbase Server 4.0 ja
by
Couchbase Japan KK
DXライブラリでMMO作ったよ!
by
h2so5
Couchbaseの紹介 2015/03/05
by
Couchbase Japan KK
クラウドで運用するCouchbase Server
by
Kazumi Hirose
brotli圧縮でスピード向上・転送量削減を実現 Drupalとの連携
by
Katsuhisa Ogawa
20130330 JAWS-UG広島 美人CDP
by
真吾 吉田
誰にでもできるパフォーマンスチューニング
by
Kiyokazu Kaba
Backlogでの Perlのつかいかた
by
Ryuzo Yamamoto
初心者向け負荷軽減のはなし
by
Oonishi Takaaki
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
by
Yuuki Namikawa
File Server on Azure IaaS
by
junichi anno
Viewers also liked
PPT
Introduction to Google App Engine
by
rajdeep
PPTX
Google App Engine
by
Csaba Toth
KEY
Introduction to Google App Engine
by
Chakkrit (Kla) Tantithamthavorn
PPTX
Google app engine
by
Suraj Mehta
PPTX
Google app engine - Overview
by
Nathan Quach
PPTX
Google App Engine/Goを触ってみた
by
Masahiro Matsumoto
Introduction to Google App Engine
by
rajdeep
Google App Engine
by
Csaba Toth
Introduction to Google App Engine
by
Chakkrit (Kla) Tantithamthavorn
Google app engine
by
Suraj Mehta
Google app engine - Overview
by
Nathan Quach
Google App Engine/Goを触ってみた
by
Masahiro Matsumoto
Similar to Google App Engineとその影響(補足)
PDF
Google Compute EngineとGAE Pipeline API
by
maruyama097
PDF
デブサミ2011 LT大会【17-E-7】appengine ja night
by
bluerabbit777jp
PDF
Dist 29 gcp_serverless_web_app_development
by
Shotaro Suzuki
PDF
写真共有アプリのバックエンドサーバー
by
Shinya Okano
KEY
キャバァーン! サツバツエアアイオー弐〇壱弐
by
Kei Nakazawa
PDF
Google Compute EngineとPipe API
by
maruyama097
PDF
Google App Engine Java 入門
by
tantack
KEY
Googleクラウドサービスを利用したシステム構築
by
Naomichi Yamakita
PPT
Google App Engine
by
MasakiKato
PDF
【18-C-4】Google App Engine - 無限の彼方へ
by
Developers Summit
PDF
東海GTUG 20110910発表資料
by
Kenji NAKAGAKI
PPT
Google Product
by
Daisuke Sugai
PDF
appengine ja night #25 Google App Engine for PHP
by
Ryo Yamasaki
PDF
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
by
Kumano Ryo
PDF
appengine java night #3
by
bluerabbit777jp
PDF
Google App Engine for PHPとそのローカル開発環境について
by
Terui Masashi
PPT
cochica
by
Hiroki Yoshida
PPT
KobeGTUG GAE/Java
by
takagig
PDF
Report of Google I/O 2013 Google Cloud Platform
by
Ryo Yamasaki
PDF
GAEの紹介
by
Kenji NAKAGAKI
Google Compute EngineとGAE Pipeline API
by
maruyama097
デブサミ2011 LT大会【17-E-7】appengine ja night
by
bluerabbit777jp
Dist 29 gcp_serverless_web_app_development
by
Shotaro Suzuki
写真共有アプリのバックエンドサーバー
by
Shinya Okano
キャバァーン! サツバツエアアイオー弐〇壱弐
by
Kei Nakazawa
Google Compute EngineとPipe API
by
maruyama097
Google App Engine Java 入門
by
tantack
Googleクラウドサービスを利用したシステム構築
by
Naomichi Yamakita
Google App Engine
by
MasakiKato
【18-C-4】Google App Engine - 無限の彼方へ
by
Developers Summit
東海GTUG 20110910発表資料
by
Kenji NAKAGAKI
Google Product
by
Daisuke Sugai
appengine ja night #25 Google App Engine for PHP
by
Ryo Yamasaki
App engine admin apiを利用したgae%2 f go環境へのデプロイとgcp東京リージョンの性能評価
by
Kumano Ryo
appengine java night #3
by
bluerabbit777jp
Google App Engine for PHPとそのローカル開発環境について
by
Terui Masashi
cochica
by
Hiroki Yoshida
KobeGTUG GAE/Java
by
takagig
Report of Google I/O 2013 Google Cloud Platform
by
Ryo Yamasaki
GAEの紹介
by
Kenji NAKAGAKI
More from なおき きしだ
PDF
これからのコンピューティングの変化とこれからのプログラミング at 広島
by
なおき きしだ
PDF
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
by
なおき きしだ
PDF
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
by
なおき きしだ
PPTX
New thing in JDK10 even that scala-er should know
by
なおき きしだ
PDF
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
by
なおき きしだ
PDF
JavaOne報告2017
by
なおき きしだ
PDF
最近のJava事情
by
なおき きしだ
PDF
GraalVM at Fukuoka LT
by
なおき きしだ
PDF
GraalVMについて
by
なおき きしだ
PDF
Java10 and Java11 at JJUG CCC 2018 Spr
by
なおき きしだ
PDF
Summary of JDK10 and What will come into JDK11
by
なおき きしだ
PDF
Summary of JDK10 and What will come into JDK11
by
なおき きしだ
PDF
これからのJava言語と実行環境
by
なおき きしだ
PPTX
Java Release Model (on Scala Matsuri)
by
なおき きしだ
PDF
怖いコードの話 2018/7/18
by
なおき きしだ
PDF
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
by
なおき きしだ
PDF
JavaOne2017で感じた、Javaのいまと未来 in 大阪
by
なおき きしだ
PDF
Java新機能観察日記 - JJUGナイトセミナー
by
なおき きしだ
PDF
VRカメラが楽しいのでブラウザで見たくなった話
by
なおき きしだ
PDF
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
by
なおき きしだ
これからのコンピューティングの変化とこれからのプログラミング at 広島
by
なおき きしだ
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
by
なおき きしだ
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
by
なおき きしだ
New thing in JDK10 even that scala-er should know
by
なおき きしだ
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
by
なおき きしだ
JavaOne報告2017
by
なおき きしだ
最近のJava事情
by
なおき きしだ
GraalVM at Fukuoka LT
by
なおき きしだ
GraalVMについて
by
なおき きしだ
Java10 and Java11 at JJUG CCC 2018 Spr
by
なおき きしだ
Summary of JDK10 and What will come into JDK11
by
なおき きしだ
Summary of JDK10 and What will come into JDK11
by
なおき きしだ
これからのJava言語と実行環境
by
なおき きしだ
Java Release Model (on Scala Matsuri)
by
なおき きしだ
怖いコードの話 2018/7/18
by
なおき きしだ
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
by
なおき きしだ
JavaOne2017で感じた、Javaのいまと未来 in 大阪
by
なおき きしだ
Java新機能観察日記 - JJUGナイトセミナー
by
なおき きしだ
VRカメラが楽しいのでブラウザで見たくなった話
by
なおき きしだ
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
by
なおき きしだ
Google App Engineとその影響(補足)
1.
Google App Engineとその影響
2009/11/13 きしだ なおき Javaコミュニティ@九州 例会
2.
自己紹介 きしだです。
3.
なぜクラウドか
4.
初期のネットワーク
5.
構造化されたネットワーク サーバーごとに役割を決める
6.
データの内容でも構造化 ex:はてなはidごとに サーバーをわける
7.
ex:2chは板ごとに サーバーをわける
8.
ネットワークへ携帯端末の参加
9.
端末の大きさと通信頻度
10.
端末の大きさと端末の数
11.
つまり全体の通信量
12.
構造化されたネットワーク 再配置が追いつかない
13.
爆発する通信に対応できない
14.
WEB+DB PRESSのヤフオクみたいなことを今はできない。
15.
クラウド 構造化しない
16.
すべてのサーバーですべての処理
17.
Google App EngineとAmazon
EC2
18.
Amazon EC2は仮想サーバー貸し サーバーを存在させただけ課金
19.
なんでもできる
20.
アクセスがなくても課金される
21.
サーバーの設定は自分で
22.
サーバーの構成は自分で
23.
つまり、クラウド上の構造化サーバー
24.
Google App Engineはリソース貸し
リソースを使っただけ課金
25.
アクセスがなければ課金されない
26.
制約が大きい スレッドが起動できない
27.
リレーショナルデータベースではない
28.
データをまたがるロックができない データは複数サーバーに配置されるので、複数サーバーがロックされる
29.
Google App Engineの機能
30.
分散key-value-store 各データはどこかのノードに配置される
31.
データはProtocolBuffersでシリアライズされて格納される Protocol Buffers
・・・ Googleのシリアライズ仕様 RDBとの設計思想の転換 RDB:データをストレートに格納して抽出時に処理
32.
GAE:データを処理して格納してストレートに抽出
33.
Google App Engineでのデータストア
データは分散して配置される
34.
JDOとネイティブAPI JDO コード書きやすいけど制約
35.
GAEのすべてを使い切れない
36.
実装が未熟 クエリー最適化
37.
バグ ネイティブAPI(low level
API) 仕様が小さい
38.
GAEのすべてを使える
39.
コードめんどくさい
40.
JDO
41.
準備 PersistenceManagerFacoryを取得するコード Googleのドキュメントに書いてあるコード
public final class PMF { private static final PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("transactions-optional"); private PMF() {} public static PersistenceManagerFactory get() { return pmfInstance; } }
42.
エンティティ定義 アノテーションでいろいろ指定 @PersistenceCapable(identityType
= IdentityType.APPLICATION) public class Member { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key id; @Persistent // @javax.jdo.annotations.Unique unique属性は効かない private String screenName; @Persistent private String name;
43.
登録 オブジェクトを生成してmakePersistentする //データベース登録
PersistenceManager pm = PMF.get().getPersistenceManager(); Member m = new Member(screenName, name); try{ pm.makePersistent(m); }finally{ pm.close(); }
44.
クエリー 抽出はクエリーで行う
45.
文字列での指定もできる PersistenceManager pm
= PMF.get().getPersistenceManager(); try{ Query q = pm.newQuery(Member.class); q.setUnique(true); q.setFilter("screenName == pScreenName"); q.declareParameters("String pScreenName"); Member m = (Member)q.execute(screenName); if(m != null){ message = m.getName() + "がみつかったよ"; }else{ message = screenName + "はみつからなかった"; } }finally{ pm.close(); }
46.
エンティティグループ 同じエンティティグループのエンティティは同じサーバーに配置される ※正しくは同じ「ネットワークのサーバー」
同じエンティティグループのエンティティに対してだけトランザクションが保証される 複数のノードにまたがったロックをしたくない
47.
トランザクションは楽観的ロック とりあえずデータ取得
48.
処理
49.
データ更新・・・だれかが先に更新してたら失敗
50.
ネイティブインタフェース Low Level
API
51.
サービス
52.
メール メール送信 Java
Mail
53.
ネイティブAPI こちらのほうが楽 メール受信
/_ah/mail/メールアドレス というアドレスにアクセスがくる
54.
HTMLメールが処理できてないかもしれない
55.
くわしくは http://d.hatena.ne.jp/nowokay/20091024
56.
画像処理 拡大縮小
57.
回転
58.
アップロードはCommons FileUploadで デフォルトでは一時ファイルを作るのでオンメモリで
DBへの格納はBlob型 Image img = ImagesServiceFactory.makeImage(uploadBlob.getBytes()); Transform tr = ImagesServiceFactory.makeResize(48, 48); ImagesService ims = ImagesServiceFactory.getImagesService(); Image smallImg = ims.applyTransform( tr, img, ImagesService.OutputEncoding.PNG); blob = new Blob(smallImg.getImageData());
59.
TaskQueue 重たい処理をあとで実行 通常のリクエスト処理は30秒制限がある
再試行の必要な処理 queueは、失敗すると自動的に再試行 時間がくると指定したURLが呼び出される CRONも同様 Queue queue = QueueFactory.getDefaultQueue(); queue.add(TaskOptions.Builder.url("/queue/tweet") .param("tweet", t.getId().toString()) .countdownMillis(0));
60.
memcache JCacheかLow Level
API
61.
JCacheの場合 Cache ch;
try { CacheManager cm = CacheManager.getInstance(); CacheFactory cf = cm.getCacheFactory(); Map<Integer, Object> conf = Maps.newHashMap(); ch = cf.createCache(conf); } catch (CacheException ex) { throw new ServletException(ex); } String contents; if(ch.containsKey(USERLIST)){ contents = (String) ch.get(USERLIST) + "<br>read"; }else{ String contents = なにか処理 ch.put(USERLIST, contents); }
62.
認証 通常の認証は通常のコーディング
63.
Googleアカウントでの認証 クラス名がかぶるのでUserという名前のエンティティ名は使いにくい UserService
us = UserServiceFactory.getUserService(); if(request.getUserPrincipal() == null){ String url = us.createLoginURL("/loggedin.jsp"); out.printf("<a href='%s'>ログイン</a>", url); }else{ User u = us.getCurrentUser(); out.printf("ようこそ%sさん<br>", u.getNickname()); }
64.
サーバーはJetty Tomcatと挙動が違うところがある たとえばServletResponseWrapper
詳しくは http://d.hatena.ne.jp/nowokay/20091027
65.
GAEによる言語精力図の変化 Javaの復権
66.
PHPは相対的にさがる Azureで対応? Pythonが劇的にあがる
67.
Rubyがやばい JRubyでは余分にCPU課金の可能性
68.
JRubyを使ってまでGAEで動かす人がどれだけいるか
69.
Javaの今後
70.
ブラウザアプリケーションの高度化
71.
まずこれを見て欲しい
72.
HTML5 キャンバス
73.
ローカルストレージ サーバー側DBとの同期
74.
ローカルストレージの使えないブラウザの対応
75.
サーバー切断時のスタンドアローン処理
76.
JavaScriptの欠点 継承の使いづらさ
77.
コレクション
78.
データ処理
79.
補完などのツール GUIフレームワークはクラス数が非常に多いので、ドキュメントで調べながらでは効率が悪い
80.
Javaなら補完で適切なクラスが推薦される
81.
JavaScriptコンパイラ Java->JavaScript GWT
Python->JavaScript Pyjamas PHP->JavaScript PHP GWT
82.
モバイル Android
83.
iPhone
84.
HTML5なら動くよ!
85.
Javaの復権! クラウド動くよ!
86.
JavaScriptにも変換できる
87.
携帯もAndroid!
88.
Pythonもやばい
89.
プログラマの復権 Webアプリはプログラムとして単純 request->responseのフィルタ処理
90.
RDBMSと文字列処理ができればよい
91.
言語の百花繚乱 ユーザーインタフェースは難しい
92.
ローカルストレージも難しい
93.
分散key-value-storeも難しい
94.
プログラマの力量でサーバー課金が変わる
95.
がんばりましょう
Download