Fiverworks Xone 掲示板  
●Topview ●Search ●Help ●Home
※いたずらが多いので、現在書き込み禁止にしてあります
name
 
  Xone  
 
url
mail
title
mesg
pass


11
 各RDBの長所・短所 by Xone開発スタッフ
 res/edit
admin

Xone1.0は、PostgreSQL,MySQL,oracle,MS SQL Server,IBM DB2の5種類のRDBに対応しています。

このうち、機能的に劣る(あくまでもXoneから見て)のはMySQLです。これだけ、バッチ処理において、途中で失敗したときにロールバックできません。具体的には、

1.フォルダを移動する
2.オブジェクトを削除する

という2つの処理をバッチで実行したとき、たとえば2番目のオブジェクトの削除で「削除しようと指定した名前のオブジェクトがない」といった例外が起こると、他のRDB版では1のフォルダの移動も無効(ロールバック)されますが、MySQL版だけはこれが実行されてしまいます。

 07/12 (14:02)


9
 クラス図 by
 res/edit


クラス図とか開発ドキュメントとかないんですか?
 06/30 (09:16)
10
 Re1:クラス図 by Xone開発スタッフ
 res/edit
admin

>クラス図とか開発ドキュメントとかないんですか?
あります。ただし、実際のプログラムと必ずしも同期は取れていませんし、またクラス図は手書きのものも多く電子化されていません。
個別に必要な情報でしたら、ここで質問していただければお答えできると思います。よろしくお願いします。
 06/30 (11:30)


8
 エレメントが格納できる長さ by Xone開発スタッフ
 res/edit
admin

Xoneオブジェクトのエレメントは文字列として保存されます。そのデータ型と最大長は次のとおりです。

PostgresSQL text 可変長文字列(無制限)
MySQL LONGTEXT 最大4GB
Oracle LONG 最大2GB
MS SQL Server TEXT 最大2GB
IBM DB2 CLOB(1G)  最大1GB

(実際にはエレメントの値だけではなく、その名前や型も入ります)

エレメントの型として、byte配列も格納できますからやる気になれば、マルチメディア系の大きなデータも格納することはできます(その前にOutOfMemoryが出るかもしれませんが)。

DB2に関してはCLOBの大きさを指定できますが、1GBとしたのは他とのRDBとの兼ね合いで決めたものです。SQL文を修正してサイズを変えてもかまいません。
 06/28 (18:42)


7
 DB2のドライバについて by Xone開発スタッフ
 res/edit
admin

IBM DB2のJDBCドライバは、今後jccドライバになるそうです。

http://www-6.ibm.com/jp/software/data/developer/library/techdoc/java.html

ですが、Xone1.0β1のDB2版ではappドライバしかサポートしていません。jccドライバでも試したのですが、ちょっとこのドライバにバグの疑いがあったのでIBMにレポートしました。これを回避する方法もあるのですが、ライブラリとして使っているプログラムに手を入れなくてはならないのでちょっと躊躇しています。

DB2版のXoneは1.0ではappドライバだけの対応になるかもしれません。
 06/26 (18:04)


5
 Xoneの例外 by Xone開発スタッフ
 res/edit
admin

Xoneでサーバとやりとりのメインになるのは、com.fiverworks.xone.mw.MwMainクラスです。このクラスでは、login()とshowLoginDialog()メソッドだけはチェック済み例外を投げますが、その他のメソッドは実行時例外(ランタイム例外)を投げるようになっています。

以前から、チェック済み例外には疑問を持っていたのですが、

http://www-6.ibm.com/jp/developerworks/java/040618/j_j-jtp05254.html

を読むと、Xoneのような例外の考え方もそう悪くないようです。とはいえ、これが正しいか、と言われると正直言ってよくわからないです。

上記のサイトでは「あるメソッドが投げるチェックなし例外の全てをJavadocの中に文書化する」と書いてありますが、そうすると渡された引数のNullPointerExceptionも書かなくてはならなくなります。このあたりはassertとのからみもありますし、なかなか難しい問題です。
 06/26 (16:50)


3
 Xoneの生かしどころ、なきどころ by Xone開発スタッフ
 res/edit
admin

@itで、「XMLデータベースの生かしどころ、RDBのなきどころ」という座談会の内容が掲載されていますが、この「XML DB」のところをXoneと入れ替えてもほとんど通用しそうです(^^;)。

http://www.atmarkit.co.jp/misc/ct.php?id=mb461403

個人的には、XMLはデータ保管の形式に向いているとは思いません。データ交換や文書系のデータ表現には、XMLは最良の選択肢だとは思いますが。

XoneはRDB上に実装されているので管理も一元化できますし、シンプルですから学習コストもXML DBよりずっと低く抑えられます。

(確かアインシュタインだと思いますが、「もっとシンプルにできないか」を常に考えたそうです。これを私たちは開発の指針としました)。

とはいえ、Xoneはパフォーマンスが重要となるような案件には向きません(ビジネスロジック層でJDBC、O/Rマッパ、ストアドプロシージャを利用して、パフォーマンスを上げる方法はあります)。そうした案件にはRDBを使う方がよいでしょう。もちろん、プロトタイピングにXoneを利用することは考えられます。

また、文書系ではXML DBが向いているでしょう。たとえば、日本電子出版協会(JEPA)で作っているようなスキーマはリカーシブになっていますが、こうしたものはXML以外の選択肢はないと思います。

 06/24 (17:56)


2
 「データモデルの変更に柔軟に対応できる」ということ by Xone開発スタッフ
 res/edit
admin

Xoneは「データモデルの変更に柔軟に対応できる」ということを大きな特徴の一つとしていますが、これには複数の意味合いがあります。

まず第一にデータモデルの定義からアプリ開発までを迅速に行えることです。場合によってはモデルをダイナミックに定義することもできます。従来の多層システムでは、クライアント層を作るには、ビジネスロジック層やDB層ができてからとか、仮のクラス(代理クラス)を作ってからといった手順を踏む必要がありましたが、XoneではいきなりDBとやりとりできます。
特に、データオブジェクトをTransformableにして、Anyインスタンスを使うとアドホックにサクッとプログラムを作ることができてしまいます。もちろん、データモデルの変更にもすぐに対応できます。
(「アドホック(=場当たり的)」というと私たちSEには良いイメージではありませんが、プロトタイピングには必要な要件だと思います)。

もうひとつは「変更を局所化できる」という点です。従来は、データモデルを変更すると、各層でプログラムを変更しなくてはならないことがあります(うまく作ればある程度は回避できるでしょうが)。Xoneではクライアント層の変更だけで対応できることが多いはずです(もちろん、データモデルの変更がどういったものか、あるいはビジネスロジック層も実装していたとかによって変更内容は変わりますが)。

一つの変更が多くの箇所に影響を与える、というのでは保守コストがひじょうに高くなってしまいます。

この他、定義しておいたXoneクラスを変更して、すでにあるインスタンスに適用(adaptClass)することもできます。
 06/24 (17:55)


1
 はじめまして by Xone開発スタッフ
 res/edit


はじめまして、Xoneの開発に関わったスタッフです。

この掲示板では、Xoneの技術的なサポートを行います。
皆さんが疑問に思われたこと、あるいは要望などありま
したら、遠慮なく書き込んでください。

また、Xoneを使ったデータモデルの公開なども行ってい
く予定です。よろしければ、作成したデータモデルを投
稿してください。ある程度数が集まれば、データモデ
ルのアーカイブとして専用ページを設ける予定です。

よろしくお願いします。
 06/14 (18:24)


 
 p.ink