タグ

GAEに関するmtoyoshiのブックマーク (22)

  • Google App Engine上のベスト・プラクティス、その1: Datastore

    Google App Engine上でアプリを作りはじめて約二ヶ月。いろいろと分かって来たこともあるので、自分へのメモも含めてまとめてみる。まずは、Datastoreの話から。 なによりも大切なのはデータベースの設計 あたりまえと言えばあたりまえの話だが、App Engine上でアプリを作る上でもっとも大切なこと(=頭を使うべきところ)は、データベースの設計である。特にリレーショナル・データベース(RDB)上でのアプリ作りに慣れた人には、大きな「発想の転換」が必要なので、ここは注意が必要。 特に絶対にやっては行けないのは、 将来RDB上へ移行できるようにレイヤーを作って、その上にアプリを作る RDB上に作ったアプリをデータモデルを大幅に変更せずにApp Engine上に移植する RDBを前提に設計されたフレームワークをApp Engine上に載せて、その上にアプリを作る など。App En

    mtoyoshi
    mtoyoshi 2010/02/08
  • key-valueストアの基礎知識

    首藤 一幸 Last-updated: January 5, 2010 注: このページの文章は Software Design 誌 2010年 2月号に掲載された以下の記事の元原稿です。 Software Design 誌編集部の了承の元に、ウェブページに掲載しております。 首藤一幸: "key-valueストアの基礎知識", Software Design 2010年 2月号, p.14-21, (株)技術評論社, 2010年 1月 18日 クラウド、特にPaaS向けのソフトウェア開発が現実のものとなり、 そこではリレーショナルデータベースとは違ったデータベースが 勢いを増しています。 その代表であるkey-valueストアを解説します。 もくじ key-valueストアとは なぜkey-valueストアか key-valueストアの使いどころ key-valueストアとNoSQL

  • Slim3 Preview release - ひがやすを技術ブログ

    Slim3の正式リリースは、来年の一月くらいになりそうですが、ドキュメントも最低限のものはそろったので、今の段階のものをPreview版として紹介しておきます。 サイトへは、http://slim3.org でアクセスしてください。 Getting Startedをやり、Slim3 Datastoreのドキュメントを読み、Online demoをみれば、Slim3のことは把握できるようになっています。 Oneline demoからソースも見れるようになっているので、動かしながらソースを確認することができます。Online demoは、IE6で見るとレイアウトが崩れていますが、これはIE6を使うなというメッセージということで。(IE7,8では未確認) Slim3は、Google App Engineに対して最適化されています。 例えば、最近、App Engineで問題になっているのは、spi

    Slim3 Preview release - ひがやすを技術ブログ
    mtoyoshi
    mtoyoshi 2009/11/15
  • Cloud Computing考:Amazon ec2とGoogle App Engineの違いを私なりにまとめてみた

    Cloud Computing の話が注目されるようになってしばらく経つが、商用での格応用という意味ではまだまだ未熟な市場である。PhotoShareは去年の7月サービス開始時から Amazon の ec2+S3 という組み合わせで運営しており、私から見れば当然の選択だったわけだが、あのタイミングで商用サービスへの採用に踏み切った会社も少なかったのか、何件かインタビューの申し込みが来たりして少し驚いている(参照)。 すぐに陳腐化するハードウェアの資産はできるだけ持ちたくないし、自分でデータセンターにラックを借りるなんてことはコスト的に見合わない。かといって、通常のレンタルサーバーは初期費用がばかにならない(今は少しは改善されているのかも知れないが、去年の段階では「それじゃあハードが自分で買えるじゃん」と言わせるぐらいの初期費用を請求する企業がほとんどであった)。それに加えて、どのくらいの

  • 「10円トリオ」の衝撃~Amazonと並ぶWindows Azureの価格水準

    EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

    「10円トリオ」の衝撃~Amazonと並ぶWindows Azureの価格水準
    mtoyoshi
    mtoyoshi 2009/09/17
    Azure,GAE,Amazonの比較表あり
  • GAE/Jアプリ開発のTIPSまとめ : CB NANASHI管理人ブログ

    2009年09月09日20:38 カテゴリGoogle App Engine GAE/Jアプリ開発のTIPSまとめ Google App Engine for Java関連の記事が随分と溜まってきましたので、まとめ記事を作ってみました。今後も記事追加時にはこの記事を更新していきたいと思います。 GAE関連ブログをお書きの他の方のように、バックエンドの技術に対する深い考察などはありませんが、実際にアプリケーションを作成してみた上で遭遇したトラブルや小技を書いています。また、なるべくGoogleのドキュメントには記述されていないことを書いたつもりです。 GAEでアプリを開発される方の参考になれば幸いです。 ■対象のアプリケーション 次のアプリケーションを作成した上でのTIPSです。 Cycle Base NANASHI -サイクルベース名無し- 自転車用品・パーツのレビューまとめサイト。2ch

    mtoyoshi
    mtoyoshi 2009/09/10
    まとめ
  • だらだら備忘録: GAE/JのDatastoreのはなしとか

    2009/05/23 GAE/JのDatastoreのはなしとか なんとなくまとめ。使い込んでないので突っ込みお待ちしてます。 キー まず、保存したいオブジェクト(Javaオブジェクト:POJO)はオブジェクトとかインスタンスとかいいます。Datastore内に保存されているものはエンティティといいます。(リレーショナルDBならタプルとかレコードとか)。 で、エンティティはDatastore内で一意なキーをもつ必要があって、オブジェクトの対象のフィールドに@PrimaryKeyアノテーションをつけて識別します。 Datastoreで使えるキーは4種類あって、単純なLong、String、そしてKeyとそれをStringにエンコードしたEncoded Key Stringって書いてあるヤツ。 LongだとDatastoreに保存したときに自動的に採番されます。設定もできるみたい。String

    mtoyoshi
    mtoyoshi 2009/07/29
    unownedの話
  • GAEでunownedな関連を定義する方法 - ひがやすを技術ブログ

    Google App Engineでは、関連の実装として、キーの親子関係で実現するownedな関連と、キーの親子関係ではなく、単に相手のキーを持つだけのunownedな関連があります。 unownedな関連は、RDBMSにおけるFKを持っているようなものだと思うとイメージしやすいと思います。 例えば、次の例では、FooがBarをunownedな関連先として定義しています。 @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true") public class Foo { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = "datanucleus", ke

    GAEでunownedな関連を定義する方法 - ひがやすを技術ブログ
    mtoyoshi
    mtoyoshi 2009/07/26
  • Google App Engineの料金体系が面白い

    社内でGoogle App Engineのミニ勉強会をやることになったので、技術者らしくAPIとかBigTableまわりとかやろうかなーと思って色々ドキュメントをあさっていたところ、思いがけず非常に面白いものを見つけてしまった。 それは、料金体系。たいていのGAE紹介サイトには、〜まで無料、以降〜みたいな形でさらっと書いてあるんだけど、思った以上に奥が深い。DoCoMoやソフトバンクモバイルより奥が深い。しかも、この料金体系によってアプリケーションの作り方にまで影響が出てくる可能性がある。こうなってくると、JPAとかJDOとか開発環境とか紹介するのなんて馬鹿馬鹿しくなってしまった。Google App Engine勉強会、って名目で人呼んどきながら、ずーっと料金の話ってありだろうか?なしだろうなぁ。 基的な概念、リソースとクォータ さて、Google App Engineには利用可能な資

    mtoyoshi
    mtoyoshi 2009/07/26
    CPU時間
  • はてなブックマーク

    キーボードショートカット一覧 j次のブックマーク k前のブックマーク lあとで読む eコメント一覧を開く oページを開く ✕

    mtoyoshi
    mtoyoshi 2009/07/21
    blobやtext
  • ついに無制限に解放されたGoogle App Engine/Java。RoRやPHP、もちろんJavaも試そう

    ついに無制限に解放されたGoogle App Engine/Java。RoRやPHP、もちろんJavaも試そう 4月8日に発表されたGoogle App Engine/Java。利用できるのは1万人までと制限がついていたのですが、それが撤廃されてだれでもサインアップして利用できるようになったと、Google App Engine Blogが伝えています。 Google App Engine/Javaは発表されてまだ2カ月と少しですが、はやくもJava VMの上にPHPRuby、それにJavaのフレームワークなどの実装が行われています。今回はそうしたGoogle App Engine/Javaの活用情報をまとめてご紹介しましょう。 Google App Engineの基礎知識 ITproで、Google App Engineの入門記事が掲載されています。アカウントの取得方法やSDKの入手方

    ついに無制限に解放されたGoogle App Engine/Java。RoRやPHP、もちろんJavaも試そう
  • Google App Engineのtips集 - スティルハウスの書庫の書庫

    (随時更新中です。間違いなどありましたらコメントをお願いします!) このページのtinyurl: http://tinyurl.com/gaetips Datastoreのtips Bigtableの内部構造 BigtableによるDatastoreの実装 Datastoreによるクエリの実装 トランザクションとエンティティグループ Datastoreのtips List Proprtyとmerge joinの使い方 GAE一般のtips GAEのサーバー構成とリクエストの流れ Task Queue APIの使い方 開発環境とプロダクション環境の違い Flex/AIR+GAEのtips GAE/JにBlazeDSを組み込む BlazeDSの番環境へのデプロイでハマる Datastore APIの取り扱いでハマる App Engine開発の便利な参考ページ TOPGATEさんのGoogle

    Google App Engineのtips集 - スティルハウスの書庫の書庫
  • Google App Engine 10の事実 | エンタープライズ | マイコミジャーナル

    Google App Engine Google App Engine Teamは10 things you (probably) didn't know about App Engineにおいて、Google App Engineによる開発方法が変わる10の事実を紹介している。App Engine Teamはディスカッショングループに参加することで、ユーザがGoogle App Engineのいくつかの事実に注目していないことに気がついたという。これを知ると知らないのとでは、Google App Engineを使った開発方法が変わってくるということだ。紹介されている事実は次のとおり。 バージョン番号は数値ではなく文字列。このためバージョン番号にliveやdevといった文字列を使うこともできる アプリケーションは複数のバージョンを同時に実行できる。version.latest.yourap

    mtoyoshi
    mtoyoshi 2009/06/13
  • 奥さんにささげる - ひがやすを技術ブログ

    奥さんっていってものほうじゃなくて、http://developer.cybozu.co.jp/kazuho/のほうね。 昨日のTokyo Cloud Developerで、kazuhoとBigtableの話をしてたんだけど、ちょうど、松尾さんからいい資料があるといわれてみてみたらとてもすばらしかった。松尾さん、ありがとうー。 http://sites.google.com/site/io/under-the-covers-of-the-google-app-engine-datastore もう既に見ているかもしれないけど、一応ご報告。 Google App Engine(Bigtable)の内部のデータのもちかたが詳しく説明されています。 これをみずに、Bigtableは理解できない。 奥さんじゃない人も、App Engineに興味のある方は見るといいよ。

    奥さんにささげる - ひがやすを技術ブログ
    mtoyoshi
    mtoyoshi 2009/06/13
    bigtableのデータの持ち方
  • JDOのモデルの状態を理解しよう - ひがやすを技術ブログ

    GAEのJDOのモデルは、ざっくりいうと4種類の状態があります(当はもっといっぱいあるけど、4つをおさえておけば普通はOK)。 transient persistent detached hollow モデルをnewして、PersistenceManager#makePersistent()を呼ぶまでは、transientです。 PersistenceManager#makePersistent()がよばれるとpersistentな状態です。persistentなモデルの状態は、PersistenceManagerをcloseするかTransactionをcommitしたときに、データストアに反映されます。 PersistenceManagerをcloseしたときからが、運命の分かれ目。何の設定もしないとhollowになり、lazy loadingされているオブジェクトに触ろうとするとエ

    JDOのモデルの状態を理解しよう - ひがやすを技術ブログ
    mtoyoshi
    mtoyoshi 2009/06/05
  • たけまる / Google App Engine のデータストアは Bigtable をどのように使っているのか

    _ Google App Engine のデータストアは Bigtable をどのように使っているのか [gae][bigtable] Google App Engine (GAE) が発表されてから2週間ほど経ちます.GFS や Bigtable という名前だけはよく耳にするようになりましたが,Bigtable と GAE のギャップについては話題になっていないように思います. Bigtable は multi dimensional sorted table と言われるように, primary key (row key) でソートされたテーブルでしかありません.つま り,GAE のデータストアが提供するような多様な検索機能は持たないわけ です.というわけで,GAE のデータストアを実現するために,Bigtable がどのように使われているのかを考えてみました. # この件について,もし

  • 【Google App Engine】 Entityとトランザクション

    Entity設計について GAEではEntityというモデルを定義してJDOを使ってデータを永続化する。Entityはオブジェクトモデルであり画面など実際の業務アプリケーションや外部インターフェースなどを直感的に表現できるという点で優れている。しかし、階層型ということもあり、リレーショナルなモデルとはあまり馴染まない。もしかしたら、これまでRDB的な設計を中心にやってこられた方にとっては苦痛さえ感じるかもしれない。Entityをうまく設計するためには、ひとまずRDB的な頭をリセットしてオブジェクト的な発想をすることをおすすめする。一度慣れてしまうと誰でも簡単にサクサク作れるようになるだろう。逆に、RDBの呪縛から開放されOOに覚醒してしまうともう後には戻れないので注意が必要である。RDBって不要じゃん?とか、これからの時代はOOでKey/Valueだ!などと思うようになれば覚醒した証拠だ。

    【Google App Engine】 Entityとトランザクション
    mtoyoshi
    mtoyoshi 2009/05/17
  • EclipseでJava版App Engineを始めるための基礎知識

    EclipseでJava版App Engineを始めるための基礎知識:Google App Engineで手軽に試すJavaクラウド(1)(1/4 ページ) Google App Engineがやって来るJa!va!だぁ! 米グーグルは2008年4月7日、Pythonで作成したプログラムが動くクラウド・コンピューティング環境「Google App Engine」(以下、GAE)を発表しました。それからちょうど1年後の2009年4月7日、GAEはPythonに加えてJavaへの対応(以下、GAEj)を発表しました(参考:グーグルのクラウドがJava対応、JRubyも稼働か)。 2008年のGAE発表当初、日ではPythonのプログラマ数があまり多くなく、反響もいまひとつの感じがありましたが、今年になって開発者や利用実績が多いJavaに対応したことで、GAEのユーザー数が一気に増加する可能性

    EclipseでJava版App Engineを始めるための基礎知識
    mtoyoshi
    mtoyoshi 2009/05/14
  • Bigtableの使い方教えます - ひがやすを技術ブログ

    GAE/Jを使うのに一番戸惑うのが、データのストレージがRDBMSではなく、Bigtableなことでしょう。 JOINが使えなかったり、WHERE句でORが使えなかったり、これまで慣れ親しんでいた方法が軒並み使えません。 これらの制限は、Bigtableに限ったことではなく、KVS(Key Value Store)型のクラウド系のデータベースではみんないえることだと思います。 最初、私も戸惑ったんだけど、いろいろ触っているうちに気付きました。昔、AS400でやってたころと一緒ジャンと。AS400とは、IBMから出ているオフコン(?)ですね。今は、System iと呼ばれているようです(最新だとまた違うようですが)。 AS400のファイル(テーブル)は、キーもしくはインデックスでアクセスします。インデックス(論理ファイル)は、ある行の特定のカラムがソートされていて、物理ファイル(テーブル)へ

    Bigtableの使い方教えます - ひがやすを技術ブログ
    mtoyoshi
    mtoyoshi 2009/05/13
  • 【ハウツー】memcached client for java - Javaでmemcachedを使おう (1) データをメモリ上に保持するキャッシュサーバ | エンタープライズ | マイコミジャーナル

    memcachedとは? memcachedとはその名の通り、データをメモリ上に保持するキャッシュサーバで、アクセス数の多いWebサイトにおいてデータベースの負荷を減らすために利用されることが多い。データをディスクに書き出さず、保持するデータもキーと値のみと非常にシンプルであるため動作は高速だが、memcachedを終了するとデータが失われてしまうという問題がある。そのためmemcachedには消失しても問題のないデータのみを格納するようシステム設計を行う必要がある。 なお、memcached互換のキャッシュサーバとして、データをディスクに永続化する機能を備えたmemcachedbや、レプリケーション機能を備えたrepcachedがある。 Java向けのmemcachedクライアントはいくつか存在するが、稿で紹介するのはmemcached client for java。LGPLで提供さ