Project Zero First Step

Posted by nobusue on 3月 9th, 2009. Other posts by nobusue

CodeZineで「はじめて使うProject Zero」という記事が公開されました。
Project Zeroのインストールから、Webベースの開発ツール(Application Builder)でRESTサービスやサーバーサイドマッシュアップを作成するところまで、一通りの流れを説明してあります。これを機会に、ぜひProject Zeroを試してみて下さい。

DB2のpureXMLをsMashから利用する

Posted by nobusue on 3月 4th, 2009. Other posts by nobusue

DB2にはpureXMLという機能があります。
この機能を利用すると、XML(もしくはXMLのフラグメント)をテーブルの1カラムに格納することができるため、部分的に非定型なデータを効率よく扱うことができます。また、XML列に対してはXPathやXQueryによる検索も可能なため、XMLの良さとRDBの良さを組み合わせて利用することができるのも良い点のひとつです。
ただ、sMashのData Access API(zero.data)からpureXMLを利用する場合、残念ながら標準で用意されているResultHandlerではXML列を素直に取りだすことができません。そこで、こちらを参考に、XML列をStringとして取り出すCustom Handlerを作成してみました。
package handler;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import zero.data.Manager;
import com.ibm.pdq.runtime.handlers.RowHandler;
import com.ibm.db2.jcc.DB2Xml;
public class XmlRowHandler implements RowHandler<Map<String, Object>> {
public Map<String, Object> handle(ResultSet resultSet, Map<String, Object> obj)
throws SQLException {
if (obj == null) {
obj = new HashMap<String, Object>();
}
ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
int numColumns = resultSetMetaData.getColumnCount();
for (int i=1; i<=numColumns; i++) {
Object column = resultSet.getObject(i);
if(column instanceof DB2Xml){
obj.put(resultSetMetaData.getColumnName(i).toLowerCase(),
((DB2Xml)column).getString() );
} else {
obj.put(resultSetMetaData.getColumnName(i).toLowerCase(), [...]

PHP on sMash – 第15回 Java bridge -基礎編-

Posted by KenTa on 3月 2nd, 2009. Other posts by KenTa

PHP on sMash 第15回は、Java bridgeです。sMashでは、PHPからJavaのクラスを容易に利用することができます。そのため、既存のJava資産が存在する場合でも、それを利用して、新たなPHPアプリケーションを作成することができるようになっています。今回は最新版の環境を利用しますので、こちらを参考に開発環境構築を行って下さい。
それでは、始めていきましょう。

PHP on sMash -sMashとPHPで作るRESTful Webアプリケーション- 第14回は、引き続き、PHP拡張についてです。今回も、V1.1の環境を利用しますので、こちらを参考に開発環境構築を行って下さい。
今回もTipsとして、PHP拡張を行う際に使えるいくつかの項目について説明します。今回説明するのは、

php.iniの値を利用する
引数をパースする
エラーを発生させる
PHP関数、拡張PHP関数を実行する
引数、返り値に配列を用いる
PHPの”リソース型”を作成する

の6つです。それでは、始めていきましょう。

Sebring? Le Mans?

Posted by nobusue on 2月 20th, 2009. Other posts by nobusue

Project Zeroの開発ロードマップ、実はこちらで公開されていることはご存じでしたでしょうか?
http://www.projectzero.org/wiki/Development/DevRoadmap
Le Mans Sprint S2では、”Story”という単位でアジャイル開発が行われているようです。
Storyの管理にはJazz(Rational Team Concert)が使われているようですね。(Jazzは、Project Zeroと同じく、オープンな開発体制で商用ウェアを開発するという試みです。興味のある方はこちらをご参照ください。)

PHP on sMash – 第13回 PHP拡張 -Tips 1- (参照渡し他)

Posted by KenTa on 2月 17th, 2009. Other posts by KenTa

PHP on sMash -sMashとPHPで作るRESTful Webアプリケーション- 第13回は、前回に引き続き、PHP拡張についてです。今回も、V1.1の環境を利用しますので、こちらを参考に開発環境構築を行って下さい。
前回は基本的なPHP拡張を行う方法を説明しましたが、今回はTipsとして、PHP拡張を行う際に使えるいくつかの項目について説明します。今回説明するのは、

参照渡し
JavaからWebブラウザへの出力
JavaからPHPの変数にアクセス

 の3つです。それでは、始めていきましょう。

JRuby on sMash – sMashで動かすJRuby

Posted by KenTa on 2月 13th, 2009. Other posts by KenTa

sMashはJavaで実行されていますので、JRubyを実行することも可能です。以下のdeveloperWorksでは、実際にsMashでJRubyを実行する手順が紹介されています。
IBM developerWorks : Add Ruby scripting to your Project Zero and WebSphere sMash applications
ただ、このテキストでは古いバージョンのsMashを利用しているため、現在のsMashではそのまま実行することができません。このエントリーでは、sMash V1.1やsebringでJRubyを実行する手順を紹介します。
行うべき内容は、以下の通りです。

JRubyのダウンロード
JRubyのjarファイルの配置
zero.configでインタプリタを指定
インタプリタの用意

これらが終わったら、.rbファイルを用意して、サーバを起動してアクセスします。では、始めていきましょう。

PHP on sMash – 第12回 PHP拡張 -基礎編-

Posted by KenTa on 2月 10th, 2009. Other posts by KenTa

PHP on sMash -sMashとPHPで作るRESTful Webアプリケーション- 第12回は、PHP拡張です。今回も、V1.1の環境を利用しますので、こちらを参考に開発環境構築を行って下さい。
それでは、始めていきましょう。

PHP on sMash -sMashとPHPで作るRESTful Webアプリケーション- 第11回は、前回に引き続き、イベント・ハンドラーです。今回も、前回利用した環境を利用しますので、こちらを参考に開発環境構築を行い、第10回の手順を確認して下さい。
それでは、始めていきましょう。

PHP on sMash -sMashとPHPで作るRESTful Webアプリケーション- 第10回は、イベント・ハンドラーです。今回も前回同様、V1.1の環境を利用しますので、こちらを参考に開発環境構築を行ってください。それでは、始めて行きましょう。