July 6, 2009

クラウドコンピューティング、はじめました

「クラウド」とはいったい何か ITベンダーは本質を語れ
http://itpro.nikkeibp.co.jp/article/COLUMN/20090701/332996/

面白いところを突いています。
というか、このブログに書きたかったことを先に書かれたというか。


最近、「クラウドコンピューティング、はじめました」的なベンダーが多いですよね。

でも、この分野で先行し、成功しているのはGoogle、Amazon.com、Salesforce.comであり、これらのベンダーは「クラウドコンピューティング、はじめました」ではありません。
あくまで各社が独自に提供するサービスが先に存在し、そのために整備してきたインフラの解放という形態です。

Googleは言わずとしれた検索エンジンやGmailその他。
Amazon.comはECサイト。
Salesforce.comはCRM/SFA。

そういう観点では、Yahoo、mixi、楽天などにはその素養がありますね。

果たして、何を提供するのかが不明なままに「クラウドコンピューティング、はじめました」のベンダー(FとかHとかIとかUとかSとか)がうまくいくのでしょうか?
ここに先鞭を付けるのはMicrosoftでしょうか?

「クラウドコンピューティング、はじめました」がうまくいったら、クラウドコンピューティングの時代は新しいフェーズに入るのかもしれません。

July 1, 2009

エコポイントのシステムはForce.com

「エコポイントを支える情報システムの開発にも参画」---セールスフォース宇陀社長
http://itpro.nikkeibp.co.jp/article/NEWS/20090701/333049/

エコポイントの交換や申請始まる、Force.com使ったシステムで受け付け
http://itpro.nikkeibp.co.jp/article/NEWS/20090701/333032/

「エコポイント」の申し込み画面はクラウド上に。開発期間わずか1カ月?
http://www.publickey.jp/blog/09/1.html


詳しくは書けませんが、かなりの予算規模・プロジェクト規模のシステムですが、信じがたい短期間で構築しています。
クラウドコンピューティングのパワーを感じました。

Force.com Free Edition

先月から、US限定で提供が始まっています。
Force.com Platformのの無料版です。

なんと、Force.com Platformの(ほぼ)全機能が、100ユーザ・ディスク容量1GBまで無料で使えます!
Apex/Visualforceも、Web Services APIも、Force.com Sitesも無料で使えます!!
開発サンドボックス(テスト環境)もついています!!!
Developer Editionは開発・学習・検証用で商用利用はNGでしたが、Free Editionは商用利用もOKです!!!!

サインアップ時は英語ですが、Salesforceはもともと多言語対応なので
設定を変えればで全く問題なく日本語化できます。


少し前まではApexコードを作成できなかったのですが、久しぶりにログインしたら作成できるようになっていました。不具合だったのか、サービス内容が変更になったのかは不明ですが・・・
ともかく、これでかなりのことができるようになりました。


注意点は、日本では公式提供されていないということです。

つまり・・・

  • どんな簡単な問い合わせでも機能・利用方法・不具合などのサポートを日本法人からは受けられない
  • 規定のユーザ数や規定のディスク容量を超えて利用したい場合に有償版へアップグレードしたくても、日本法人とアップグレード契約できない(日本国内ユーザーがUS法人と契約できるかどうかもワカラナイ)
等のシチュエーションが想定されます。

それでも、自己責任で自分でなんとかできる人には朗報ですね。

Google App Engineなどよりもはるかに高機能・パワフル・高開発効率なPaaSを体験してみてはいかがでしょうか?

サインアップはこちら
https://www.salesforce.com/form/signup/freeforce-platform.jsp?d=70130000000EoAM


June 19, 2009

iPhone 3G と Google 携帯

OS が3.0にバージョンアップした iPhone 3G と HTC製 Google 携帯。
Google 携帯を1週間ほど使ってみての個人的所感を交えての比較です。


見た目

Google 携帯の勝ち。iPhone よりやや小ぶり・スリムです。これならポケットに入れられるサイズです。あんなにカッコ良かった iPhone がデカい・ゴツいと感じるほとです。


日本語変換

Google 携帯の勝ち。さすがWnn。変換・予測変換の精度は iPhone を大きく引き離しています。日本の携帯の水準にかなり近づいています。


操作性

ハードウェアとしての操作性はiPhone 3G の勝ち。Google 携帯は中央のトラックポイント風のスティックの操作感がイマイチ好きになれません。なんだかグラグラ・ガタガタです。
ソフトウェア面でも、OSの動作・ブラウザの処理速度は iPhone 3G の方が速い・なめらかです。Google 携帯はやや引っかかり感&もたつき感が。画面をタッチしても、思ったところが反応しません。人間の指先なんてかなりアバウトだと思うのですが、Google携帯はバカ正直に反応しているのでしょう。iPhoneは四角四面に反応するのではなく、「きっとここをタッチしたかったんだろうな」を読み取ってくれる感があります。非常に直感的に操作できます。日本語変換だけ見れば Google 携帯ですが、文字入力操作そのものの快適さは iPhone 3G の方が上です。数種類のキーボード画面やカナの入力方法が用意され、自分の使いやすいものを選べるのがいいですね。特に、フリック入力に慣れてしまうと手放せません。


コンテンツ

Android Marlket と iTunes Store。現在のところ、選択肢は圧倒的にiTunes Store が豊富です。しかし、Android のウリは Apple の目が厳しい iTunes Store に比べて Android Market がオープンであるという点のはず。開発者が数々の勝手アプリを(作ろうと思えば)どんどん作れる環境にあります。1年で Android Market がどこまで成長するのかが楽しみです。


こうして並べてしまうと、現時点ではハードは・・・で、ソフト・コンテンツは iPhone という結論に。

今買うなら、個人的には iPhone 3G S をオススメしたいです。操作性は日常の使用にかなりの影響がある要素ですし、何より対応アプリの充実度が違います!
Google携帯は、1年・2年経って Android Marketの成長ぶりを見てからでも遅くはないかと。どうしても Google が好き!とか、新しもの好きとか、まだまだこれからの Android 市場で一旗揚げたい方は今すぐ!ですが。
また、ソフトウェアの動作のもたつきやスティックのガタつきなどは Android というよりも端末固有の問題です。メーカー各社から端末が出そろい、選択肢が豊富になると Google 携帯の魅力もまた違ってくるのでしょう。

June 10, 2009

Google Developer Day 2009へ行ってきました。

Google Developer Day 2009へ行ってきました。

R0014405

午前中はミーティングが入っていたため、午後からの参加でした。

残念ながら基調講演は聴けず。
HTML5やGoogle Waveの話があったようです。

R0014401


聴いたセッションは・・・


Google App Engine
- Life of Google App Engine Request -

スピーカーはGoogleのフレッド・ソオー氏。

主にGAEのDatasotre周りの実装テクニックの話でした。
Entityに関連Entityのキーとなる値であるStringのList Propertyを持たせる話とか
Merge Joinのテクニックとか。

私はハッキリ知らないのですが、恐らくLazy Loadingができないため
このようなテクニックが存在するのでは?と思いました。

Joinの話は、Salesforce.comのForce.comも同様なのでよく理解できます。

既にGAEをバリバリ触っているような上級者向けのセッションでした。


Java で動かす Google App Engine

スピーカーはGoogleの夷藤 勇人氏、鵜飼 文敏氏。

こちらはGAE/Jの紹介セッションといった内容。

GAEが何を提供するのか?
認証・Datasotre・キャッシュ・Email・URLフェッチ等でどんなAPIを提供し、どんな実装をしているのか?
Sandbox制限(Force.comのガバナ制限のようなもの)、
今後実装予定の機能、
スケールを考えたデータ構造の設計・実装テクニック(これは直前に聞いたセッションと多少被る内容も。)
などのお話しがありました。

表面上のAPI仕様と実装とが分かれているため、API Proxyというアーキテクチャが実現でき、これによりAOP/インターセプターっぽいことができるという話があり、ちょっとうらやましかったです。
Force.comにもAOP的な機能が欲しいです。

RDBではないので、データの非正規化を恐れずに!という話はよくわかります。あまり細々と正規化してクエリが複雑になるよりは、クラウドにおいてはシンプルなクエリ一発で必要なデータを取れるようにデータ設計するべきですね。

GAEのDatastoreは、「ソフトスキーマ」というアーキテクチャを採用しているそうです。これは、スキーマを固定せずにJPAやJDOのアノテーションのみでスキーマを定義するというものだそうで。
推測するに、Force.comのメタデータに近い概念なのではないでしょうか?
わかりやすく言えば、Force.comではDB物理層に直接テーブル定義を生成しているわけではなく、"メタデータ"と呼ばれる「データ構造の定義」をDBに格納し、実データは多数のカラムを持つ単一テーブルに格納するというアーキテクチャです。
GAEのDatastoreは実装にBigtableが使われているので、やはり物理層にテーブルを作成しているわけではありません。アノテーション定義によってアプリケーション側からはテーブルがあるように見えていながら、その裏側で動いている実装では個々のテーブルを作成せずにデータはすべてBigtableという多数のカラムを持つ単一のテーブルに格納している・・・というアーキテクチャなのでしょう。たぶん。

GAEには非同期処理・テキスト全文検索・インバウンドメール・データのインポート/エクスポート等の機能はまだ実装されておらず、今後実装予定とのことです。
まだエンタープライズ用途では使えないかな。


クラウドコンピューティングがもたらす5つのメリットとは

スピーカーはGoogleの泉 篤彦氏。
エンタープライズ分野のプリセールスエンジニアをされている方だそうです。
このセッションでハッキリ聞くことができました。
Googleがエンタープライズ向けに扱っているサービスには、GAEは含まれていません。

このセッションは、Google AppsのPremier/Education Editionの紹介セッションという色が濃いモノでした。

クラウドコンピューティングがもたらすメリット、というお題ですが、内容はクラウドのメリット、SaaSのメリット、Googleであることのメリット、Google Apps固有のメリットが混在していました。

まあ、キレイに切り分けるのは難しいのですが、気をつけないと「クラウドコンピューティングってよくワカラナイ」という人がますます増えそうです。

他のクラウドサービスとの連携が容易である、というくだりではSalesforceが紹介されていました。

イメージ 1


Google エンタープライズ エコシステムとは –Google Enterprise Partner–

こちらも引き続き泉氏のセッション。

エンタープライズ向けサービスのパートナー制度の紹介でした。


Google テクノロジー ライトニングトーク

サイオステクノロジー松尾さんによる、自作のGAE向けフレームワーク"Kay"の紹介。
デバッガを使えるのがいいですね。Force.comもブレークポイントを置いて、ステップ実行して、変数の値を確認して・・・とできたらいいのに。

Seessaaの安藤さんによる、Rails on GAE/Jの話。
当初はエライ大変な手順を踏まないとGAE/J上でRailsを動作させることはできなかったのを、とてもとてもカンタンにした、というお話し。

日本Androidの会の近藤さんによる、Androidが組み込み業界へ与えるインパクトのお話し。将来はPCと携帯の垣根が無くなるという展望をお話しされていました。

スパイスボックスラボラトリの神部さんによる、Open Social Hackathonのお話し。Hackathonに参加しよう!というメッセージを熱く語っていました。

E-flowの久野氏による、Dalvik VM実装のお話し。Google謹製のDalvik VMがケータイJavaの2~5倍も遅かったので、自分で実装してケータイJavaと同等まで持って行ったお話し。非常に素晴らしい成果だと思います。一方で、Dalvik VMとは何か?に一切触れなかったので、会場には「そもそもDalvik VMってなに?」な人が多かったのでは?と心配になりました。

最後に、松尾氏がTokyo GTUG(Tokyo Google Technology Users Group)を立ち上げました、と紹介されていました。

Tokyo GTUG
http://groups.google.com/group/tokyo-gtug


個人的に(職業柄?)Googleのエンタープライズ向けサービス戦略の情報を得たかったのですが、今のところGoogleのエンタープライズ向けサービスはGoogle Appsと検索アプライアンス、企業向けGoogle Map APIという内容のようです。
GAEはデータ管理やユーザの権限コントロールが不十分だったり、ワークフローなどが実装されてなかったりと、エンタープライズ用途にはまだまだですね。



なんと、事前登録者全員に携帯電話がプレゼントされました。

R0014524R0014521

Google製OS「Android」搭載のHTC製端末です。

R0014523R0014509

先日、サンフランシスコで行われたGoogle I/Oでも入場者に配られたそうですが
まさか、日本でもやるとは!

R0014470R0014492

Googleさん、太っ腹です。

これはdocomoから発売されるHT-03Aとほぼ同等のものです。
http://www.nttdocomo.co.jp/product/foma/pro/ht03a/index.html

docomo発売前なので、この日この端末を手にした人は
恐らく日本で最も早く日本語入力可能なAndroid端末を入手したことに
なるのではないでしょうか。

あともらったのは、タオルとかステッカーとか。

R0014497

事前登録の時にTシャツのサイズを聞かれたので
てっきりTシャツをもらえるのかと思っていましたが・・・
急遽タオルに変更になったのでしょうか。

April 20, 2009

沈みゆく太陽

今日はいったい、世界中でどれだけの人がこんなタイトルで
ブログエントリを書いているのでしょうか?


かねてより売却先を探していたSun Microsystemsは
先日報道のあったIBMではなく、Oracleに買収されることが決定したそうです。

オラクル、74億ドルでサンの買収に合意、ハードウェア市場へ進出( Computerworld.jp)
http://www.computerworld.jp/topics/ma/143009.html

オラクル、サンの買収で最終合意(CNET Japan)
http://japan.cnet.com/news/biz/story/0,2000056020,20391986,00.htm

[速報]オラクルが74億ドルでサンを買収(ITpro総合)
http://itpro.nikkeibp.co.jp/article/NEWS/20090420/328819/

[oracle] Oracle、Sunを買収!!!!!(S/N Ratio (by SATO Naoki) by satonaoki)
http://d.hatena.ne.jp/satonaoki/20090420/p2

ラウンドアップ:オラクル、サン買収に至るまでを振り返る
http://japan.cnet.com/news/biz/story/0,2000056020,20391994,00.htm

米オラクル、サンマイクロを74億ドルで買収へ(Reuters: テクノロジー)
http://jp.reuters.com/article/technologyNews/idJPJAPAN-37591820090420

【速報】オラクルが74億ドルでサンを買収(@IT)
http://www.atmarkit.co.jp/news/200904/20/oracle.html


非常に驚きましたが、ニューヨーカーなビジネスマン集団のIBMよりは
シリコンバレー企業のOracleのほうがずっとしっくりくる組み合わせとも言えます。
プロダクトの品揃えでも、被りよりも補完の要素が多いですし。


特にOracle が欲しいのは、Javaテクノロジのリーダーという地位と
サーバおよびストレージでしょう。

MySQLは微妙な立場ですね。
Oracle DBのシェアを下げた強敵でしたから。

Oracleはオープンソースからは一歩引いた立場と見えるので、
Sunの持っているOSSプロダクトがどうなるか、この先に注目です。

Oracleがこの買収を最大限に活かせれば、向かうところ敵なしですね。
ライバルと呼べるのはIBMぐらいでしょうか。

ハードウェア、データベース、アプリケーションサーバ、
Javaテクノロジ、サーバ仮想化、ビジネスアプリケーション、
クラウドプラットフォーム、OS、SOA・・・
エンタープライズ分野でのソリューションをほぼ全方位カバーすることになります。


しかし・・・

私自身、Sunには多くの知り合いがいる・・・と思っていたら
気がつけば既に退職されている方の方が圧倒的に多いという状況でした。

奇しくも今日もまた、大変お世話になった方がSunを退職されると
ブログに書かれた日でもありました。
(ご本人からは1週間ほど前に聞いていたのですが・・・)


ここ数年は株価(=企業価値とも言い換えられますが・・・)が
下がる一方だったSunですが、数々の業界のカリスマを輩出し、
Javaという一大プラットフォームを築いたSunは
いちエンジニアとして憧れの企業でした。
そのSunが無くなってしまうのは本当に寂しい限りです。


January 5, 2009

YAGNIは「今必要なことだけをやれ」ではなく

XPの提唱する「YAGNI(You Aren't Going to Need It)」は
XPの思想から離れて個人への戒めの言葉として使われる場面が多くなった今、

「今必要なことだけをやれ」ではなく、

「今必要とされていることすべてを今すぐやれ」

の方がより的確なのではないかと実感する今日この頃です。

「今必要なことだけをやれ」と言うと、とたんに待ち姿勢・受け身になってしまう人が多いのです。

January 4, 2009

Google App EngineのJava版「Stax」を触ってみました

Amazon EC2上で提供されるJava版PaaSサービス「Stax」をちょっと触ってみました。今のところはβサービスで、まだ実装されていない機能もあったりしますが無料で試すことができます。
「Google App EngineのJava版」としてニュース記事等でも紹介されています。

Java対応のGoogle App Engineとも言うべき「Stax Networks」ローンチ
http://jp.techcrunch.com/archives/20081216stax-networks-launches-google-app-engine-for-java/


用意されている環境

  • Apache Tomcat/6.0.16
  • MySQL/5.0.51

要するにServlet2.5/JSP2.1環境を使えるってことですね。JVMはJavaSE5相当のようです。
GoogleもSalesforce.comも、Servletコンテナにはより軽いResineを採用していますが、ここはTomcatですね。


サポートするフレームワーク
  • Apache Struts(ただし、1.xではなく2.0.11)
  • Apache Wicket
  • Adobe Flex/BlazeDS
  • Google Web Tool Kit
  • Adobe ColdFusion 8
  • JRuby on Rails
とかドキュメントには書いてありますが、アプリケーションの初期作成時のテンプレートとして、デフォルトで必要なライブラリを入れてくれて、最低限の設定済みのxmlファイル類を入れてくれるってだけです。
逆に、WEB-INF/libにライブラリをつっこんで、web.xmlを編集して、WEB-INFに必要な設定ファイルを追加すれば他のフレームワークも使えます。DI/AOPコンテナもORマッピングフレームワークも使えます。
Struts1.3.8/Spring2.5.6/iBATIS2.3.4とか、JSF1.2RI/Spring2.5.6/Hibernate3.3.1とか、試してみたら動きました。この分ならSeasar2を使ったアプリも問題なく動作するでしょう。


アカウントの作成
StaxのWebサイト http://www.stax.net/ へ行きます。



「Apply for the Beta」をクリックしてサインアップ画面へ行き、メールアドレスを入力して送信すると認証メールが送られてくるので、そこに書いてあるURLにアクセスするとサインアップ終了です。簡単です。



改めてStaxのWebサイトからログインするとアプリケーション管理画面に入れます。



管理画面では、TomcatのログやApacheのアクセスログ等の参照、アプリケーションの作成・DBの作成・設定・パフォーマンスやアクセス監視モニタの参照等を利用できます。




アプリケーションの作成
管理画面左側メニューの「Create App」をクリックすると、アプリケーションを作成できます。ユニークな名前を付けましょう。Application Core Runtimeからフレームワークを選べますが、前述の通り、Servlet2.5/JSP2.1環境で動作するものなら好きなモノを使えます。用意されているもの以外のフレームワークを使うのなら「Basic Servlet and JSP」を選択してもかまいません。



Stax SDK http://stax-downloads.s3.amazonaws.com/sdk/stax-sdk-0.2.12-dist.zip をダウンロードして解凍しておきます。
http://www.stax.net/appconsole/createapp から、任意の名前のアプリケーションを作成します。
解凍したディレクトリ中の「Stax Console」ショートカットを起動します。
コマンドラインコンソールが起動するので、そこから
stax getapp -a [ユーザ名]/[アプリ名] -u [ユーザ名] -p [パスワード]
を実行すると、アプリケーションのひな形がダウンロードされます。このひな形はEclipseプロジェクトになっているので、そのままEclipseへインポート可能です。でもこのプロジェクトはWTP互換じゃないのが残念です。


アプリケーションの構造
  • webapp: JavaEE Webアプリケーションディレクトリ
  • src: Java ソースファイルディレクトリ
  • conf/stax-application.xml: Stax デプロイメントディスクリプタ
webappディレクトリの中は通常のServletアプリと同じなので、WEB-INF/libに好きなライブラリを入れたり、WEB-INF/web.xmlを編集したり、設定ファイルやTLDを追加したり、自由にできます。


DBの作成
管理画面左側メニューの「Create DB」をクリックすると、アプリケーションを作成できます。任意のDB名、ユーザー名、パスワードを設定します。



DB作成後、テーブルやら何やらを作成するには、なんとTCP:3306が開いているのでMySQL Query Browser や mysql コマンドが使えます(^^;(←いいのか?)
アプリケーションのconfディレクトリにあるstax-application.xmlに、下記の設定を追記します。

<resource name="jdbc/db01" auth="Container" type="javax.sql.DataSource">
<param name="username" value="[ユーザ名]" />
<param name="password" value="[パスワード]" />
<param name="url" value="jdbc:stax://[DB名]" />
</resource>

Javaアプリケーションからは、JNDI参照名「java:comp/env/jdbc/[DB名]」でLookupできます。


アプリケーションのデプロイと動作確認
コマンドラインから
stax deploy -a [ユーザ名]/[アプリ名] -u [ユーザ名] -p [パスワード]
とすると、作成したアプリケーションをアップロードできます。
Antを使ってWARファイルからのデプロイも可能です。WARファイルをそのままアップロードできるUIがあればいいのに。。。

次のURLからアプリケーションの動作を確認できます。
http://[アプリ名].[ユーザ名].staxapps.net/

何度アップロード/デプロイし直しても反映されるので、クラスローダはカスタマイズしていじっているっぽいですね。Tomcatのデフォルトのリロード機能ではヒープメモリがすぐに破綻しますから。

[追記]
サーバのログを見るとTomcatまんま再起動しているっぽいです。


一度デプロイしたアプリケーションは削除できません(^^;削除機能はまだ未実装のようです。


ちょっと触った所感
Tomcat/MySQL/Eclipse環境に慣れた人ならすぐに開発できるのが良いですね。フレームワークもお仕着せのものだけでなく好きなものを選べますし、使い慣れたRDBがそのまま使えます。Python/Django/webappsにどうしてもなじめず、Google App Engineを放り出してしまった私には嬉しいポイントです。
懸念としては、サーバの信頼性・可用性・セキュリティと正式サービス開始後の料金体系です。まあ、これはすべてのクラウドサービスに言われていることですが。Amazon E2Cを利用しているのでこのレベルではある程度の信頼性はありますが、その上で動作しているアプリケーションサーバレベルではStaxの技術力・資金力・信頼性が問われるところでしょう。

Amazon EC2上に構築されたってのが、次世代のビジネスモデルを予感させます。自前のデータセンターを持たずにSaaS/PaaS事業を展開するという例はこれからも増える可能性がありますね。