Google App EngineとSlim3で始める携帯Web入門:クラウドとフレームワークで超簡単ケータイ開発(1)(1/3 ページ) 数年前に比べケータイ向けサービス構築を支援するフレームワークやノウハウがたまってきて、そして無料または、格安でサービスを公開できる仕組み(クラウドやVPSなど)も普及している今こそ、ケータイ向けサービス開発を始めるチャンスではないでしょうか 環境が成熟した今ならケータイ向けサービスは簡単だ はじめまして、森俊夫と申します。徳島でフリーランスのプログラマをしております。最近、モバゲータウンやGREEなどのソーシャルゲーム/アプリのCMが多いですね。iPhoneやAndroidを代表とするスマートフォンもいよいよ普及段階に入ってきおり、いまや、PCよりも携帯電話やスマートフォンでインターネットにアクセスする人たちの方が多いともいわれています。今ほどモバイル
先日、友達の会社の勉強会で「初めてのGAE/J開発」というタイトルの発表をさせていただきました。準備不足や時間配分のミスがあったため、後半飛ばしぎみになって申し訳ありませんでした。 GAEの制限ばかりを強調しすぎて逆に使えないような印象をもってしまったかもしれませんが、決してそんなことは無いと思います。(だから、私もいまGAEに注目しているわけですし。)特にBigtableは今までとは違った考え方が必要なので、これまでのRDBのように考えるとうまく行かないのは間違いありせん。(私も何度も悩まされました。いや、今もですが。) しかし、だからといってそれはやり方の問題であって、そのままGAEが使えないという理由にはならないはずです。BigtableにはBigtableのやり方が必ずあるはずです。また、WikipediaやTechCrounchによると、GoogleのたくさんのサービスがBigt
以前に 大量のエンティティを処理するデザインパターン - GeekFactory を紹介しましたが、シングルスレッドのバッチ処理なのでスループットが頭打ちになる問題がありました。コンカレントに処理する方法を思いついたので実装してみました。 シングルスレッドではこんな流れでした。 S3QueryResultListでn件のエンティティを取得する。 エンティティをバッチ処理する。 t秒以内であれば上記を繰り返す。 次のタスクにカーソルを渡す。 ここで、エンティティを取得するタスク(Splitter)とエンティティをバッチ処理するタスク(Mapper)を分けてみます。 Splitterタスク S3QueryResultListでn件のエンティティを取得する。 エンティティをmemcacheに入れて*1、Mapperタスクに渡す。 t秒以内であれば上記を繰り返す。 Mapperタスク memcac
App Engine上で大量のエンティティを処理するパターンをまとめてみました。 Concurrent Pattern 対象のエンティティをシャードに分割し、それぞれを並列に処理するパターンです。シャーディングを行うSplitterとエンティティを処理するMapperが並行して動きます。SplitterとMapperは独立したタスクであるため、memcacheを介してエンティティを受け渡します。 このパターンの利点は、エンティティの処理内容に関係なく一定のスループットを確保できることにあります。Mapperでどんなに長い処理を行ってもSplitterは淡々とシャーディングを続けるため、スループットに影響はありません。 Mapperの処理結果をmemcacheに突っ込み、別のタスクで集約することで、MapReduceのような処理も可能かなと思います。 Serialized Pattern 対
はじめに Google App Engine(GAE)/Javaでは、Java仮想マシン上で動作する言語を利用することができます。例えば、JRubyやGroovyなどです。 Scalaも、コンパイルすることによりJava仮想マシン上で動作するクラスファイルを生成する言語ですので、当然、GAE/Java上で動作させることができます。 Scalaが動作するということは、ScalaでできているWebアプリケーションフレームワークであるLiftを元に作成されたアプリケーションを、GAE/Javaに載せることができるということです。 前後編で構成される本連載では、ScalaおよびLiftをGAE/Java上で動作させる方法を解説した後、サンプルアプリケーションでGoogleが提供するさまざまなAPIを利用した、GAEならではのアプリケーションを作成して、GAEでのアプリケーション作成のイメージをつか
はじめに 「人類が使うすべての情報を集め整理する」 この壮大なミッションを掲げ設立されたGoogleは、そのミッションを遂行するべく、マシン・ネットワークなどのインフラ環境に莫大な金額を投資し、独自の技術を開発し続けています。Googleは検索エンジンだけにとどまらず、Gmail、Google Calendar、Google Maps、Google Analystics、Youtube、Google Apps、Google Earthなど、いまや全世界のユーザーが使用するサービスをリリースしており、その扱うデータ量、アクセス数は天文学的な数になることが予想されます。Googleはそれらのデータ量、アクセス数を高速にさばき、なおかつ耐障害性の高いスケーラブルな大規模分散システムを構築しています。 そんな中、2008年4月にGoogle App Engineがリリースされました。Googleが
はじめに Flex/AIR開発には、ところどころに「落とし穴」があります。過去3年間のFlex/AIR開発を通じて、筆者はそうした「落とし穴」にことごとくハマり、そのたびに「二度と繰り返すまい」との思いで要点をメモしてきました。本連載では、その筆者の「Flex/AIRハマり帳」をもとに、これからFlex/AIR開発を始める方が同じ過ちを繰り返さないためのささやかなtipsを紹介していきたいと思います(なお、ここで紹介するtipsは、あくまで筆者の経験に基づいて得られたものであり、アドビシステムズの公式な提供情報ではないことにご留意ください)。 Google App Engine for Javaと「ご都合.com」 第1回は、つい最近のメモからです。この連休中に筆者は、「Google App Engine for Java(GAE/J)とFlexでスケジュール共有ツールを作る」ことを思い立
App Engine/AptanaなどJavaクラウド4つを徹底比較:ユカイ、ツーカイ、カイハツ環境!(5)(1/3 ページ) Javaはクラウド戦国時代に突入! クラウドコンピューティングのブレイクとともにさまざまなクラウドサービスが提供され始めました。特に、PaaSサービスを提供する「Google App Engine」(以下、GAE)の登場はインパクトを与え、Javaに対応したGAEの類似サービスとして「Stax」「Morph AppSpace」が登場しました。GAEも遅れてJavaサポートを発表したり、統合開発環境を提供していたAptanaが「Aptana Cloud」のJava対応を行うなど、Java対応のクラウドは戦国時代に突入しました。そして、まだ動かすことはできませんが、サン・マイクロシステムズが先日のJavaOneで「Sun Cloud」を発表し、Amazon EC2に近
ゴールデンウィークに特に予定のなかった筆者は,「ちまたで噂のGoogle App Engine for Java(GAE/J)とFlexでスケジュール共有ツールでも作ってみよう」と思い立ちました。およそ5日間かけて開発を進めたのち,2009年5月6日に「ご都合.com(画面1)」を公開しました。その後,はてなブックマークやニュースサイトなどでご紹介いただいたおかげで,公開後6日で約2000人の方にご利用いただいています。 そこで本稿では,この「ご都合.com」の開発で実際に筆者が得た経験を通じて,GAE/JによるWebアプリケーション開発の実際とそのポテンシャルについて紹介します。 米Googleが2008年4月に発表したGoogle App Engine(画面2)は,「自分が開発したWebアプリケーションをGoogleのデータセンターで運用できるクラウドコンピューティング・サービス」です
2008年4月7日に発表されたGoogle App Engineが、ちょうど1年後の2009年4月7日にJavaに対応したことが発表されました。さらに、Java開発には必須のEclipse用のプラグイン「Google Plugin for Eclipse」が同時に発表され、Java利用者は簡単にGoogle App Engine用のプログラム開発とEclipse上からのデプロイができるようになっています。今回はそんな便利な「Google Plugin for Eclipse」の使い方を説明します。 はじめに 2008年4月7日、Googleのインフラでウェブサービスを展開できるという「Google App Engine」が発表され世界中が驚かされました。この時点では利用できる言語としてPythonのみがサポートされており、Pythonの開発者がGoogleの社員であることを考えると当然なの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く