Monthly Archives: 7月 2010

「Google App Engine for Java[実践]クラウドシステム構築」第10回(7月30日)

Posted on by 0 comment

参加者 今井(読み手)、青木、沼田(記)
範囲 pp. 165 – 182

第5章 サービスAPI

  • 5.1 Memcache API
    • メモリキャッシュサービスMemcache
    • Memcacheの概要
      • Memcacheに向いている性質のデータ
      • JCacheを使ってデータをキャッシュする
      • キャッシュデータの有効期限
      • [Column] キャッシュでないメモリへのロード
      • QuotaとLimit
    • Memcacheの注意点
      • Cacheインスタンスが異なっても同じMemcache
      • Cacheインスタンスのsize()は全Cacheの合計
      • 登録しているキーの一覧が取得できない
      • get()、put()呼び出しパフォーマンス
      • version間でも共有
    • Memcacheを使用する
      • キャッシュ可能なオブジェクト
      • JCacheとLow Level APIの違い
      • JCache API
      • Low Level API
  • 5.2 URLフェッチAPI
    • HTTPリクエストでほかのホストと通信
    • URLフェッチの概要
      • リクエストの作成
      • HTTPSリクエスト
      • リクエストヘッダの扱い

「Google App Engine for Java[実践]クラウドシステム構築」第9回(7月27日)

Posted on by 0 comment

参加者 沼田(読み手)、今井、青木(記)
範囲 pp. 152 – 164

第4章 データストア

  • 4.5 JDO以外のデータストアAPI
    • Low Level APIによるデータストアの操作
      • Keyの取得と変換
  • 4.6 データストア設計上の注意点
    • データストアのパフォーマンス対策
    • 書き込みと読みこみのコスト
    • 分散カウンター
      • p.157 「リスト4.6.1・・」 クラス名CounterShardConfigについて、Shardは、「破片」とか「かけら」という意味でした。
      • p.158 「リスト4.6.3 カウンターの使用例」で並列に処理が実行された場合、commitしてからcountを取得するまでに、他の処理がcountをインクリメントすることはないのだろか?
    • Listプロパティを使った高速検索

「Google App Engine for Java[実践]クラウドシステム構築」第8回(7月20日)

Posted on by 0 comment

参加者 青木(読み手)、今井(記)
範囲 pp. 139 – 152

第4章 データストア

  • 4.4 トランザクション
    • 複数のデータを扱うトランザクション処理
    • キーの階層を利用したエンティティグループ
    • トランザクションとエンティティグループ
  • 4.5 JDO以外のデータストアAPI
    • JPA,Low Level APIによるデータストアの利用
    • JPAによるデータストアの操作
      • p.145 DataNucleusの読み方は?
        データニュークリアス、旧Java Persistent Objects JPOX (ウィキペディアより)
    • GAEでサポートされていないJPAの機能
    • JPAを使用するためのセットアップ
      • p.147 図4.5.1 l.5 <persistense>要素の最後の属性名
        v ersion="1.0"version="1.0"
    • EntityManagerインスタンス
    • JPAにおけるデータ構造の定義
      • エンティティの追加
      • エンティティの取得
      • エンティティの更新
      • エンティティの削除
    • Low Level APIによるデータストアの操作
      • エンティティの操作
        • p.152 「エンティティの操作」のl.1~
          「getProperty()メソッド、setProperty()メソッド … 値をセット/取得できます。」は、「… 値を取得/セットできます。」 の方が、メソッドと対応がとれてわかりやすい。

「Google App Engine for Java[実践]クラウドシステム構築」第7回(7月16日)

Posted on by 0 comment

参加者 今井(読み手)、青木、沼田(記)
範囲 pp. 125 – 139

第4章 データストア

  • 4.2 JDOによるデータストアの操作
    • JDOによるデータ定義
      • 気を付けるポイント
    • キーによるエンティティの操作
      • エンティティの追加
      • エンティティの取得
      • エンティティの更新
      • エンティティの削除
    • クエリを使ったエンティティの取得
    • エンティティのライフサイクル
      • [Tip] detachCopy()メソッドの自動設定
  • 4.4 トランザクション
    • トランザクションとは
    • GAEでのトランザクション処理
    • 楽観的ロック

「Google App Engine for Java[実践]クラウドシステム構築」第6回(7月13日)

Posted on by 0 comment

参加者 沼田(読み手)、今井、青木(記)
範囲 pp. 103 – 125

第3章 開発手順

  • 3.5 アプリケーションの管理
    • Main
      • Dashboard
      • Quota Details
      • Logs
      • Cron Jobs
    • データストア
      • Indexes
      • Data Viewer
    • Administration
      • Application Settings
      • Developers
      • Versions
      • Admin Logs
    • Billing
      • Billing Setting
      • Billing History

第4章 データストア

  • 4.1 BigTable
    • 行と列の概念を持つ巨大なテーブル
    • BigTableとは
      • 検索のしくみ
    • GAEで利用されるBigTableの構造
      • Protocol Bufferesによるデータ構造の構築
    • RDBMSとの違い
      • BigTableでできないこと
        • p.121 注4:read-commited コミット済みのデータのみを参照するトランザクション分離レベル
      • 考え方をシフトする
      • データストアの利用方法
  • 4.2 JDOによるデータストアの操作
    • JDOによるデータ構造の定義

「Google App Engine for Java[実践]クラウドシステム構築」第5回(7月9日)

Posted on by 0 comment

参加者 青木(読み手)、沼田、今井(記)
範囲 pp. 90 – 103

第3章 開発手順

  • 3.4 アプリケーションの設定
    • デプロイの設定(web.xml)
      • エラーハンドラ
      • [Column] デフォルトバージョン以外へのHTTPSアクセス
      • GAE/Jでサポートされていない設定
    • アプリケーションの設定(appengine-web.xml)
      • appengine-web.xmlファイル
      • 静的ファイルとリソースファイル
      • [Column] 静的ファイルを認識させるための設定例
        • p.95 上の設定例とその説明
          設定例では<exclude path="/resource/*" />となっていて、説明では「/resource/以下にあるファイル」となっているが、「/resource/にあるファイル」の間違いではないか。
          または、設定例が<exclude path="/resource/**" />の間違いではないか。
        • p.95 下の設定例とその説明
          p.94中ほどの"**"の説明は「パスの中での0個以上のディレクトリを表します。」とある。
          p.95の設定例では、"/static/**"となっていて、「/static/以下にあるファイルのみが…」という説明になっている。
          "**"
          でディレクトリだけでなくファイルも表すということか。それとも、/static/以下にあるファイルを表すには、"/static/**/*"とかかなければならないのか。
      • [Column] ローカル環境と実環境の相違点
      • システムプロパティと環境変数
      • ssl-enabled
      • セッションを有効にする
    • Cronの設定(cron.xml)
      • cron.xmlファイル
      • スケジュールのフォーマット
        • p.99
          フォーマットの表現が、リテラルを表すときに""でくくってたり(ex. “every”, “of”)、くくってなかったり(ex. hours, mins, minutes)していてわかりにくい。
          また、括弧が表現上のものを表していたり(ex. (days), (time))、選択肢を表していたり(ex. N(hours|mins|minutes)していてわかりにくい。
        • p.100 l.8
          「…デプロイときにエラーが…」は、「…デプロイしたときにエラーが…」または「…デプロイ時にエラーが…」の間違い。
        • p.100 具体的な例 2nd,third mon,wed,thu of march 17:00 の説明
          「3月の第2と第3週目の、月・水・木曜日の…」とあるが、第2,3月水木曜日ではなく、第2,3週目の月水木なのだろうか。
      • Cronを使用する上での注意点
      • 管理者権限のみでのタスク実行
      • Cronの更新と確認
        • p.102 l.3
          スケジュールタスクを削除したい場合は、cron.xmlファイルを削除するのではだめ?
  • 3.5 アプリケーションの管理
    • 管理コンソールによる管理

「Google App Engine for Java[実践]クラウドシステム構築」第4回(7月6日)

Posted on by 0 comment

参加者 今井(読み手)、青木、沼田(記)
範囲 pp. 73 – 90

第3章 開発手順

  • 3.3 アプリケーションの作成とデプロイ
    • アプリケーションの実行とデバッグ
      • l.2 http:localhost:8080/→http://localhost:8080/
    • GAEへのデプロイ
      • [Column] Eclipse、Google Pluginを使わない場合のビルド、デプロイ
      • [Column] warディレクトリの応用
      • [Column] ローカル環境と実環境との違い
  • 3.4 アプリケーションの設定
    • 設定ファイルの記述と配置
    • デプロイの設定(web.xml)
      • web.xmlファイル
      • サーブレットとURLパス
      • JSP
      • ウェルカムファイル
      • フィルタ
      • セキュリティと認証
      • HTTPS通信

「Google App Engine for Java[実践]クラウドシステム構築」第3回(7月2日)

Posted on by 0 comment

参加者 沼田(読み手)、今井(記)
範囲 pp. 55 – 73

第2章 制約

  • 2.2 Java APIに対する制約
    • java.lang.Systemに対する制約
      • 何もしないメソッド
      • 常にnullを返すメソッド
      • java.lang.SecurityExceptionを送出するメソッド
    • Logging
      • LoggingライブラリはJava標準で
        • p.56 注9 sl4jのURLはslf4j ?
          → 本文のsl4jがslf4jの間違いみたい。でもGoogleでsl4jで検索かけると先頭にSLF4Jのページが表示されるし、その他sl4jと書いているページも多くあるからsl4jからslf4jへ変わったなどの経緯があるのかも。
      • 標準出力もログになる
      • すべての標準出力がログにリダイレクトされるわけではない
    • ClassLoaderに対する制約
      • [Column] GAEに制約が必要な理由

第3章 開発手順

  • 3.1 GAEアカウントの作成とデプロイの準備
    • デプロイに必要な手続き
    • Googleアカウントの作成
    • GAEへのサインアップ
    • アプリケーションの作成
      • [Column] Googleアカウント作成時の注意点
      • [Column] アプリケーションIDの注意点
  • 3.2 開発環境の構築
    • GAE/J環境構築の手順
    • Javaの入手とインストール
      • Windows,Linux環境の場合
      • Mac環境の場合
    • Eclipseの入手
    • Google Plugin for Eclipseのインストール
      • p.66 現在はEclipse 3.5, 3.6用もあり
    • Eclipse 3.4(Ganymede)の場合
    • Eclipse 3.3(Europa)の場合
      • [Tip] Eclipse,Google Pluginを使わない場合
  • 3.3 アプリケーションの作成とデプロイ
    • 開発からデプロイまでの流れ
    • プロジェクトの作成
    • ディレクトリ構成
      • srcディレクトリ
      • warディレクトリ