hiromasa.zone : o)

2005/2/10 Thursday 投稿時の月齢:1.6  月名:二日月  潮汐:大潮 Moon:1.6[二日月]今日の心技体 : 好調期好調期好調期

O/RマッピングとRPC このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

日記 - ひろまさ @ 12:14

一応、このサーバで動いているプログラムは unboard という名前が付いている。

もともとは、Web のツリー型掲示板を作るために書いていた物なんだけど、割と汎用的につくっていたので、途中から “文書を保管” するようなプログラムに変更された。要は、可変のどんな項目でも保存できるような HTTP/POST インターフェースを備えたツリー型データベースのようなイメージ。その実装の一つが、掲示板という感じです。

名前の由来は、掲示板じゃないので unboard。 : -)

バックエンドは PHP + MySQL。 PHP は class が使えるので、オブジェクト指向で書いてあります。

ここで問題になるのが、データの保存先が RDBMS だということ。得てしてオブジェクト指向と RDBMS は相性が悪い。これらを解決するためにいくつもの O/R マッピングライブラリがでている。

プログラムは、オブジェクトのライフサイクルでデータを保持したいのに対し、RDBMS は逐次カレントデータを SQL を発行して取得、書き込みしなければならないわけで、ここでプログラム的な不整合が発生する。これを解決(というか意識しなくてもすむようにする)するのが、O/R マッピングライブラリだ。

で、当然同じ問題を unboard もかかえ、どうしようかと悩んだ。さすがに、ライブラリを使うほどの規模でもないので、自分で “マッピング” してみた。

そして、結局 SQL を発行するスタティックメソッドだらけのユーティリティクラスにオブジェクトを渡して RDBMS からデータを格納してもらい、ライフサイクルごとに自分で保存を要求するという、しょぼい方式に落ち着いた。。

O/R マッピングのライブラリっぽくする方法もあったのですが、単純に作るとあまりにも無駄な SQL を発行するのでやめた次第。

・・・、さて次は、接続インターフェースが HTTP/HTML-POST だけってのも芸がないので、XML-RPC インターフェースを作って、XML-RPCクライアント(?)から unboard をいろいろ操作してみたい。 はたしていつできるのやら。

No Comments


このサイトはコンテンツをフリーズしました。トラックバック・コメントは閉じられています。

新しいサイトは、

hiromasa.another :o)

です。 :-)

このサイトについて

このブログは引っ越しを行いコンテンツはフリーズしています。hiromasa.anotherへどうぞ。

Powerd By WordPress

We (Heart) WordPress

WordPressME Logo
WordPress Plugins

ブログ内検索

Todays Popular

WordPress Ring

はてなリング - WordPress -

情報

32 queries. 1.394 seconds.

このページの先頭へ