2007/05/25

Serializableインターフェース

Serializableインターフェースを実装すると、

「シリアライズ可能クラス Issue は long 型の static final serialVersionUID フィールドを宣言していません。」

という警告メッセージが出る件。
下記に対応策が書いてあったのでメモ。Eclipseの設定で出なくなるみたい。

■猫ぐらし
http://makisuke.seesaa.net/article/19928503.html

■明示的なserialVersionUIDの意義と定義法
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1589845

Hibernateを使ってみた

Hibernateにほんのちょっとだけ触れてみました。
まだまだこれから踏み込んでみようと思うのですが、備忘録もかねてとりあえず投稿。

■概要
HibernateはO/Rマッピングフレームワーク。
大きくは以下の4つのリソースに分類される。
・Hibernateの構成ファイル(hibernate.cfg.xml)
 ⇒RDBMSへの接続情報、マッピングファイルのローケーションを管理
・マッピングファイル(xxx.hbm.xml)
 ⇒POJOとRDBMSスキーマとの関係を定義
・POJO
 ⇒エンティティ。.NETだとDataSetに相当。
・DAO
 ⇒データアクセスオブジェクト。


■感想:ADO.NETとの比較
.NETと比較すると、総合的にADO.NETの方が楽。
Hibernateに慣れていないせいもあるのでしょうけど、何かと実装が面倒。
(Eclipse&Hibernateプラグインだと設定ファイルの設定が若干楽になるようだが)

あとはやっぱりDataSetって強力だなぁーと再認識。


■感想:いかがなものでしょう・・・?
スキーマのキーに対するHibernateのポリシーって・・・。

Hibernateではスキーマの主キーとビジネスキーは別だという考えが根本にあるようだ。
ここで言っている主キーはRDBMS上のPrimaryKey。ビジネスキーとはビジネス上のデータをユニークにするキー。Hibernateは主キーは単一キーである事を推奨していて、はスキーマのキーはどんなスキーマであっても一つであるべきという考え方。つまり、Hibernateを使うなら全てのテーブルをシーケンスとか使ったID項目を主キーとするよう設計しなさい!と言ってる。さらにビジネスキーを主キーとするようなテーブル設計はレガシーシステムだ!とも言ってる。おいおい・・・。マジかよ・・・。

なので基本的な機能は全て単一キーが前提になってました。(複合キーの機能はデフォルトでない)一応複合キーの為の機能も提供されてました。Hibernate曰くレガシーシステム対応だそうです・・・。

正直Hibernateの思想でテーブル設計はできんだろーと思うんだけど・・・。

2007/05/09

Google Code Project Hosting で Web サイト構築

http://code.google.com/hosting/
http://webos-goodies.jp/archives/50977305.html

Subversionを使える無料サーバーを探してたら見つけました。
なかなかよいのだがオープンソース向けってのがイマイチ目的にマッチしないなぁ。

やっぱ有料のレンタルサーバーか!?

こんなのもあるみたいだけど。
http://unfuddle.com/home
http://blog.livedoor.jp/a_day_in_the_radio/archives/50703435.html

SOAの主要技術

SOAってイマイチ理解に乏しいんだよなぁ。という事で以下に主要技術をメモ。

■WSDL(Web Services Description Language)
XMLをベースとしてWebサービスのありか・利用しているフォーマット・通信プロトコルなどをWebサービスのインターフェイスとして記述する

■UDDI(Universal Description, Discovery, and Integration)
XMLをベースとして、Webサービスを検索するシステムの総称。企業側でWebサービスに関する各種情報(名称および機能、提供対象、技術仕様など)を「UDDIレジストリ」(「Webサービスの電話帳」のようなもの)にあらかじめ登録・公開しておくことで、必要なサービスを必要な場面で自由に利用することができる

■SOAP(Simple Object Access Protocol)
他のシステムにあるデータやサービスを呼び出すためのメッセージングプロトコル。XML文書にSOAPエンベロープと呼ばれる付帯情報を追加し、HTTPプロトコル上においてやりとりが行われる。サービスの利用者および提供者の双方がSOAPに対応していれば、異なるコンピュータシステムの間でデータのやりとりを共通化することができる