Google 内のプロダクトの
   利用方法について




         Daisuke Sugai
はじめに

• 本プレゼンテーションでは、私が Google 内の様々なプロダ
  クトを利用し、作成したプログラム等について、解説しま
  す。

• 各プロダクトについて、期間が長いプロダクトにおいても
  、約 10 日間であり、非常に短...
Agenda

 • Android 
    ( デモプログラム + ソースコード含む )

 • Google App Engine 
    ( デモプログラム + ソースコード含む )

 • Google Apps 
    (Goo...
Android

• Android
   o Google が開発した携帯電話用の開発プラットフォーム
   o 対抗馬  Apple の iPhone 、 Microsoft の
     Windows Mobile 、 PSION の ...
Android

• プログラムを作成するまでの流れ
  • Eclipse 、 Android 用プラグインのインストール
  • Android 用 SDK のダウンロード・インストール
  • プロジェクト作成
  • 画面レイアウト作成...
Android

 • プログラムを作成するまでの流れ
     5. イベント処理作成
      – Java にて画面から発生したイベントの処理内容を記述
      – 「 1 画面レイアウト→ 1 アクティビティ」がペアーに
    ...
Android

• 携帯の開発ではエミュレーターは自作が多く、バージョン
  管理が難しい為、エミュレーターが用意されている事が画
  期的

• 最近、 Android 関連の書籍が出版されており、 iPhone と比
  較すると、流行に...
Google App Engine 

• Google App Engine
   o Google のインフラを無料で直接利用する事が可能
   o サーバー構築不要 デプロイが簡単
   o ログ管理 管理コンソールを提供
   o 専用...
Google App Engine 

• サンプルアプリケーション
  o 休暇申請 
  o Python ・ Java 、共に同一の内容を実装
  o 全体の流れ
      従業員     リーダーに休暇を申請
      リーダー...
Google App Engine 

• 実行結果の確認方法
  o Google App Engine にて、 CPU やメモリーの使用率を確
    認
  o BigTable に格納されたデータを確認
  o CPU やメモリーやメー...
Google App Engine 

• 実行環境
  o Java の JDK は 1.6 系のみ
  o Eclipse にて Google App Engine 専用のプラグインあり
  o 今回は Slim3 のプロジェクトをダウンロ...
Google App Engine 

• アプリケーションサーバーの制約
  o 30 秒以上かかるリクエスト処理は Timeout エラー発生
  o クラスローダーの使用不可
      クラスの定義からクラスのオブジェクトを生成
  ...
Google App Engine 

• Google が用意した API の利用
   o Mail    Gmail 専用の API に値を設定するのみ
   o User  ログイン画面を自動的に表示し、認証も行う
   o Memca...
Google App Engine 

• DataStore API
   o JDO(Java Data Object)
       1 件ずつデータを処理する場合に使用
       オブジェクトの永続化の標準 API
      ...
Google App Engine 

• DataStore API
   o Memcache を利用し、一度キャッシュした後、 Cron にて
     データを登録するような設計が必要
   o Join は使用不可だが、 ListPr...
Google App Engine 

• Java での開発経験があれば、短期間での開発が可能

• GAE 上で稼動しているアプリケーション事例はまだ少ない

• 他社に先駆けて、 GAE 上でアプリケーションを稼動させる
  事ができれば...
Google Apps

• Google Apps
   o Gmail ・カレンダー・ドキュメント等、 Google が提供す
     るアプリケーションのパッケージ
   o パッケージ等、ライセンス販売の商品は近い将
     来、 ...
Google Apps

• Google Apps
   o GlobalSystems にて稼動中のサイトは以下の構成
         トップページ
       スケジュールと実績 個人毎
       申請管理
       ...
Google Apps

• Google Apps
   o 申請管理
       Google SpreadSheet と Form を連携
   o 書籍管理
       Zoho Creator にて作成した Form と Go...
Google Apps

•   Google Calendar
•   Google Doc
•   Google Chat
•   Google Sites
     o グループ化したユーザのみ編集可能
         ウェブページ ...
Google Apps

• Microsoft の Office 製品のライセンスを購入しなくとも、
  月 50 ドルにて同様の機能を実現する事が可能

• Microsoft も Google ・ Zoho の動きにより、 OfficeL...
今後対応したい事

• Google
   o Android
   o SketchUp
   o Google API (Virtualization etc)
• Scala (Lift)
• Ubuntu 9.0.4
   o OS W...
Upcoming SlideShare
Loading in...5
×

Google Product

3,379

Published on

This is my presentation material

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,379
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Google Product

  1. 1. Google 内のプロダクトの 利用方法について Daisuke Sugai
  2. 2. はじめに • 本プレゼンテーションでは、私が Google 内の様々なプロダ クトを利用し、作成したプログラム等について、解説しま す。 • 各プロダクトについて、期間が長いプロダクトにおいても 、約 10 日間であり、非常に短期間にて対応する事が可能で す。 • 開発者向けの内容、デザイナー向けの内容、両方の内容が 含まれておりますが、まずは皆さんが対応が可能な内容を 最初に触って頂く事を推奨します。 • 途中、不明な点などがありましたら、遠慮なく質問して下 さい。
  3. 3. Agenda • Android      ( デモプログラム + ソースコード含む ) • Google App Engine      ( デモプログラム + ソースコード含む ) • Google Apps      (Google Doc + Calendar + Sites +   Zoho) • 今後対応したい事
  4. 4. Android • Android o Google が開発した携帯電話用の開発プラットフォーム o 対抗馬  Apple の iPhone 、 Microsoft の Windows Mobile 、 PSION の Symbian( シンビアン ) o 今月より NTT ドコモさんより発売中 (HT-03A) o OSS として、 Google Code にて、 Android のソースコー ドは公開済 o Android 上で稼動したアプリケーションは Java で構築 o Android を構築する時、専用のプラグイン・エミュレー ターが既に用意済 ( 携帯開発の現場では、画期的な事 ) • 早速、デモプログラムを動かします o Language API との連携、音楽再生、動画再生、カメラ、 バーコードからの Amazon 検索
  5. 5. Android • プログラムを作成するまでの流れ • Eclipse 、 Android 用プラグインのインストール • Android 用 SDK のダウンロード・インストール • プロジェクト作成 • 画面レイアウト作成 – xml に画面上に表示する項目を定義 (Java のソースコ ードにて、対応する事も可能 )   Drag&Drop が不可 – プロジェクト全体の定義 ( アクセス権・起動するアク ティビティの登録等 ) • イベント処理作成 – Java にて画面から発生したイベントの処理内容を記述 – 「 1 画面レイアウト→ 1 アクティビティ」がペアーに なり、アクティビティには、「クリック」「初期化」 メソッドが存在
  6. 6. Android • プログラムを作成するまでの流れ      5. イベント処理作成 – Java にて画面から発生したイベントの処理内容を記述 – 「 1 画面レイアウト→ 1 アクティビティ」がペアーに なり、アクティビティには、「クリック」「初期化」 メソッドが存在      6. エミュレーター・実機で確認 – USB の場合、実機を USB にて接続 – 実行時、エミュレーター・実機の選択が可能 – デプロイし、プログラム確認
  7. 7. Android • 携帯の開発ではエミュレーターは自作が多く、バージョン 管理が難しい為、エミュレーターが用意されている事が画 期的 • 最近、 Android 関連の書籍が出版されており、 iPhone と比 較すると、流行になると思われる ( ネットブック向けの OS 開発発表) • iPhone の場合、 OS が Mac の PC が必要だが、 Android は Windows ・ Mac 、どちらでも開発を行う事が可能 • 今回のサンプルにはないですが、 Android の端末のファイ ルの読み書き、 SQLite への CRUD が可能 • Android についての質問は ?
  8. 8. Google App Engine  • Google App Engine o Google のインフラを無料で直接利用する事が可能 o サーバー構築不要 デプロイが簡単 o ログ管理 管理コンソールを提供 o 専用の SDK をインストール o Python 、 JVM がサポート o JVM がサポートされている 為、 JRuby 、 JPython 、 Groovy 、 Flex 等も稼動が可能 o バックエンドでは負荷分散・クラスタ化に対応した構成 o アプリケーションの負荷に応じて、アプリケーションサ ーバーを動的に増減 (50 分間負荷が高い場合、自動的に 実行 ) o RDB ではなく、 BigTable(Entity ベース ) を利用 o Memcache 、 Mail 、 Login 等の API を Google が用意済
  9. 9. Google App Engine  • サンプルアプリケーション o 休暇申請  o Python ・ Java 、共に同一の内容を実装 o 全体の流れ  従業員     リーダーに休暇を申請  リーダー    従業員の休暇申請を承認  マネージャー リーダーの申請結果を承認  従業員     マネージャーの申請結果を確認 o Java 版の場合、 Slim3 というフレームワークで実装 o Python は全てゼロから実装 • 早速、プログラムを動かします
  10. 10. Google App Engine  • 実行結果の確認方法 o Google App Engine にて、 CPU やメモリーの使用率を確 認 o BigTable に格納されたデータを確認 o CPU やメモリーやメール送信には制限があり、制限を超 えた場合、エラー発生 ( 有料を選択した場合は正常 ) • BigTable は RDB とは異なる o 分散化された多次元のソートマップ ( ソート済の Excel) o データは Key-Value で保存され、キー指定行単位での CRUD o 決定的な相違は テーブル間の Join は不可 o エンティティーは階層構造にて保存する事が可能 o 楽観的ロック ( タイムスタンプ ) にてデータを制御 o 現在の RDB ベースの DB 設計を BigTable に移行する場合
  11. 11. Google App Engine  • 実行環境 o Java の JDK は 1.6 系のみ o Eclipse にて Google App Engine 専用のプラグインあり o 今回は Slim3 のプロジェクトをダウンロードし、実装 o アプリケーションサーバーは Jetty (軽量・高速サーバー ) o クライアントにて作成したアプリケーションはサーバー に対してはコマンドを発行し、デプロイを実行 • 有名な事例  o ホワイトハウスの投票サイト  o 10 万件の質問と 360 万件の投票を毎秒 700 件のリクエス トで 2 日間行う o Google 側は何もせずに、自動的にスケールアウト実行 o 他のアプリケーションに影響はなし
  12. 12. Google App Engine  • アプリケーションサーバーの制約 o 30 秒以上かかるリクエスト処理は Timeout エラー発生 o クラスローダーの使用不可  クラスの定義からクラスのオブジェクトを生成 o スレッドの発行不可  負荷の制約 o ガーベージコレクションの実行不可  予期せぬエラーの発生 o ファイルに対する書込不可 但し読込は可能 o  Comet の利用不可  サーバーで発生したイベントをクライアントからのリ クエストに関係なく、クライアントに送信する  Ajax を利用してアプリケーションを構築する際に利用
  13. 13. Google App Engine  • Google が用意した API の利用 o Mail    Gmail 専用の API に値を設定するのみ o User  ログイン画面を自動的に表示し、認証も行う o Memcache  セッションに値を入れた場合、サーバー構成 が複数である為、セッションの引継を推奨せず、キャッ シュに格納する事が推奨(設計上もステートレスが推奨 ) o DataStore   BigTable へのデータの CRUD を実行 o URLFetch  リダイレクトが NG である為、他のサーバー にアクセスする場合に使用 ( デモアプリでは使用せず ) o Images  画像ファイルの制御 ( デモアプリでは使用せず ) o Task Queue  バッチ処理等にて、処理をキューに保存し 、順々に処理を実行 ( デモアプリでは使用せず )
  14. 14. Google App Engine  • DataStore API o JDO(Java Data Object)  1 件ずつデータを処理する場合に使用  オブジェクトの永続化の標準 API  オブジェクトデータベース o JPA(Java Persistance API )  O-R マッパーの標準 API o low Level API  大量のデータを処理する場合に使用 o クエリーはできる限り使用しない方がよい(制約が多い )  取得結果は 1000 件まで(超えた場合、エラー)  BigTable はクエリーはサポートしていない  誤ったクエリー実行後、インデックスがs
  15. 15. Google App Engine  • DataStore API o Memcache を利用し、一度キャッシュした後、 Cron にて データを登録するような設計が必要 o Join は使用不可だが、 ListProperty を利用し、親 Entity の属性に子 Entity を List 型で格納する事で対応 が可能 o Group by 、 SELECT Count(*) 、 Like 文、 OR 、 != は不 可 o max() 、 min() では正しい値が取得できない為、ソート した後、 1 行目を取得する事が必要 (1000 件の制約によ る) o 関数やストアドプロシージャーは使用不可である為、関 数での変換はせず、 Java 側にて変換 o 1 つのプロパティーでは <   <=   =>   > のいずれかのみ 使用する事が可能(複数使用すると、処理が極端に遅い
  16. 16. Google App Engine  • Java での開発経験があれば、短期間での開発が可能 • GAE 上で稼動しているアプリケーション事例はまだ少ない • 他社に先駆けて、 GAE 上でアプリケーションを稼動させる 事ができれば、一歩リードできる(セキュリティーに説明 が必須) • GAE 専用の設計等が必要 • BigTable が RDB とは異なる構想の為、 Bi g Table の構想を 早く習得するか否かが、プロジェクトの成功のカギ • Google App Engine についての質問は ?
  17. 17. Google Apps • Google Apps o Gmail ・カレンダー・ドキュメント等、 Google が提供す るアプリケーションのパッケージ o パッケージ等、ライセンス販売の商品は近い将 来、 Office2.0 の影響により、ライセンスビジネスの規 模は小さくなり、 Web を利用した製品の利用が主流 o Google のインフラを利用し、かつ安く Google が提供す るアプリケーションの利用が可能 o GlobalSystems では昨年より Google Apps 、特にドキュ メントを利用し、メールの添付は全て NG o Google Apps ・ Zoho を用意したテスト項目を試 し、 Google Apps の方が昨年時点では優れていると判断  vLookup 、共通ファイル編集、インポート後の差異等 
  18. 18. Google Apps • Google Apps o GlobalSystems にて稼動中のサイトは以下の構成    トップページ  スケジュールと実績 個人毎  申請管理  書籍管理  共有ファイル  ブログ一覧  動画一覧  取引先一覧  Gmail  サイトへの要望  ニュース  その他
  19. 19. Google Apps • Google Apps o 申請管理  Google SpreadSheet と Form を連携 o 書籍管理  Zoho Creator にて作成した Form と Google を連携 o ガジェット管理  Gmail  サイトへの要望  ニュース  その他 • 早速、プログラムを動かします
  20. 20. Google Apps • Google Calendar • Google Doc • Google Chat • Google Sites o グループ化したユーザのみ編集可能  ウェブページ - ドキュメント表示・コメント記述等  ダッシュボード  - ガジェット貼付  お知らせ  - 掲示板  ファイル キャビネット  - ファイル一覧  リスト  - リスト一覧にて表示 • 同一サイトを構築する場合、数人月が必要だ が、 Google Apps を利用する事で数日で構築可能
  21. 21. Google Apps • Microsoft の Office 製品のライセンスを購入しなくとも、 月 50 ドルにて同様の機能を実現する事が可能 • Microsoft も Google ・ Zoho の動きにより、 OfficeLive を 立ち上げ、さらに Office 製品のライセンス料金を半額以下 に下げる • Microsoft と同様の機能を持つ Office 製品も登場 し、 Microsoft の 75% 以下の値段にて購入が可能 o Kingsoft Office • Google の機能を多く含むサイトの構築が可能だが、 API 等 を利用する場合、外に API を利用したサイトを作成し、連 携
  22. 22. 今後対応したい事 • Google o Android o SketchUp o Google API (Virtualization etc) • Scala (Lift) • Ubuntu 9.0.4 o OS Windows → Ubuntu(Linux Desktop OS) • Cloud 環境( SaaS 型サービス)の支援 o Jimdo, Google Apps 等、安く・早く・上手にサイトを作 成するツールを使い、短期間でのサイト構築支援 o GAE 、 Stax.net 、 Amazon 等の PaaS( プラットフォーム ) 上にて稼動するアプリケーションの構築支援 • ドラゴンクエスト 9 のクリア
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×