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 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事業を展開するという例はこれからも増える可能性がありますね。

November 15, 2008

OSS

最近、仕事では某国内ベンダー謹製のRDBMS、某国内SIer謹製の社内DAOフレームワーク、某国内ベンダー謹製のWebアプリケーションフレームワークを使っていますが、すべてプロプライエタリ・クローズドソースプロダクトです。
しかも、あまり情報がないマイナーな製品。

ドキュメントの不備・エラーメッセージの不親切・アヤシイ挙動というものは多かれ少なかれどんな製品にもあるモノですが、OSSならソースコードが公開されているのに・・・という、あまりにも大きいOSSのメリットを反面教師的にひしひしと実感中です。

ソースコードは最後の砦。ドキュメントになんと書いてあろうが、どんなメッセージを吐こうが、ネット上にどんな情報が転がっていようが、ソースコードが絶対です。プログラムは書いてあるとおりにしか動かないのですから。
ネット上の玉石混合な情報や不備の多いドキュメントに振り回され、ベンダーからの回答を待ち、どれだけの時間を消費したことか。
しかし、ソースコードさえ見られればすぐにわかることは多いのです。


こうして書いてみると、何を今更な・ごく平凡な・アタリマエのことしか言ってないのですが・・・本当に実感しているのです。


まあ、ノウハウも情報もあまり無いマイナーでクローズドなプロダクトよりはOSSってことで。

OSSを使う側でもいいけど、中の人になってしまえば公開されていないコードや情報にアクセスもできる?・・・というのも1つの手ですね(笑)

July 23, 2008

Eclipse 3.4 Ganymede の日本語化

Eclipse の最新バージョン3.4 Ganymede リリースと同時に、Babel Project により国際化対応可となりましたが・・・

Babel が提供する Language Pack を入れると、入らなくなるプラグインが多数存在する模様です。

今のところ、プロパティファイルエディタや Spring IDE が入らず困っています。

正確には、これらのプラグインは Babel Language Pack のインストール前やアンインストール後ならインストールでき、インストール後はもう一度 Babel Language Pack を入れても問題なさそうなのですが、不便ですね・・・

Spring Framework 2.5.5 リリース

一ヶ月も前に出ていました。
2.5.4の時も、今回もアナウンスがないのでダウンロードページを直接見ないとアップデートがわかりません。

主な変更点

  • Hibernate 3.3.0対応
  • iBATIS SQL Maps 2.3.2対応
  • IBM JDK1.6対応
  • DriverManagerDataSourceが削除され、代わりにSimpleDriverDataSourceが追加。クラスローディングとシンクロナイぜーションの都合らしい。
  • MS SQL Server用のエラーコード対応
  • HibernateTransactionManagerに"hibernateManagedSession"フラグが追加
  • Hibernate/OpenJpa/TopLink/EclipseLink利用時にDerbyとH2をサポート
  • Hibernate/TopLink/JDO/JPAのプロキシクラスはORMプロバイダのクラスローダが生成するように変更(OSGi対応)
  • iBATIS SqlMapで複数のSqlMapConfigファイルに対応

その他詳細はChangeLogを参照。
http://static.springframework.org/spring/docs/2.5.x/changelog.txt

May 25, 2008

Spring Framework 2.5.4 リリース

4月28日付けで、Spring Framework 2.5.4 がリリースされていました。
オフィシャルサイトのトップページにも、RSS 配信にも無かったので今日まで気づきませんでした・・・

http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=173644&release_id=595476

2.5.3 からの主な変更点は下記の通り。

  • AspectJ が 1.6 になった(1.5.x との互換性あり)
  • JdbcTemplate で CallableStatement から null の ResultSets が返るのを検出してスキップするようになった
  • BeanPropertySqlParameterSource は MySQL との互換性のために JDBC 3.0 の Types.BOOLEAN をデフォルトで使わないようになった
  • Hibernate3.2 + ピュア Spring 管理 JTA トランザクションで、クエリ発行前にフラッシュ実行をサポート

詳細は下記を参照してください。
http://static.springframework.org/spring/docs/2.5.x/changelog.txt


あまり大きな変更点はありませんね。
ニュースにするまでもないってコトでしょうか。

May 8, 2008

MySQL、新機能のクローズトソース化の決定を撤回

先月、「MySQL、新機能追加は有償版の「MySQL Enterprise」だけを対象に」という記事が Technobahn より出て、Sun が各方面の OSS 支持者の非難を浴びるという事件がありました。

MySQL、新機能追加は有償版の「MySQL Enterprise」だけを対象に
http://www.technobahn.com/cgi-bin/news/read2?f=200804172000


こんな苦しいフォローもありましたが・・・

「一部報道で、MySQLに対する今後の新機能追加は有償版である「MySQL Enterprise」のみに適用されるとあり、これがコミュニティーから強い不快感を招いているが、実際には、「一部」の機能やドライバがMySQL Enterpriseにのみに搭載されるという趣旨である。」
http://www.itmedia.co.jp/enterprise/articles/0804/21/news118.html


やっぱりこうなりましたね。

MySQL、新機能のクローズトソース化の決定を撤回
http://www.technobahn.com/news/2008/200805071431.html

クローズドソース化は MySQL の方針で、Sun の意向に反する(と主張している)ところが引っかかりますが・・・


ベンダーのオープンソース戦略の難しさを感じさせる一件だと思います。
オープンソースと言えば Linux カーネルや、Apache Software Foundation だった時代は、「オープンソース=有志によるボランティア活動」という色も強かったのですが、IBM の Eclipse が普及してきた頃から、ソフトウェアベンダーが自社製品をオープンソースライセンスで公開するという動きが急速に広まってきました。

しかし、中にはこの戦略がうまくいっていないベンダーがあります。

営利企業である以上、すべての事業は自社の収益に結びつけられるべきなのですが、オープンソース戦略はいかに大きい目・長い目で見て、業界全体が育っていくのを見守れるかにかかっていると思います。
一気にシェアを取りに行ったり、ライバルを意識して業界内での存在感をアピールしようとしたり、短期的な収支を考えたりという理由で焦ってもいいこと無いですね。