2003年09月06日
川俣晶の縁側ソフトウェアMagSite1開発日誌 total 2190 count

更に寄り道が必要なのか、画像サポートに出現したもう1つの問題

Written By: 川俣 晶連絡先

 これまでのMagSite1開発日誌で書いた通り、画像をサポートしようとして、もっとも効率よいサポートを実現するには、簡易なコンテンツマークアップ言語が必要、というところまで来ました。

 しかし、実際の書き込みシステムの構造を考えていると、これだけではまだ足りないことが分かってきました。

 現在の書き込みシステムは、ASP.NETのページに書き込んでボタンを押す方式です。この場合、作成途中のコンテンツは、ASP.NETのページがPOSTするデータとして保持されます。実際に書き込みボタンを押した時点で、ファイルに書き込まれ、システムからコンテンツの実体が正式に認識されます。

 しかし、画像データはこの方法では上手く行きません。ボタンを押すごとに巨大なデータがPOSTで送信されて往復するようなアーキテクチャが有効であるわけがありません。

 とすれば、画像データは一度送信したら、ファイルの形で(ファイルでなくても構いませんが、永続的に保持する形で)、システム側が一時的に持つ必要があります。しかし、それを実現する場合には1つの問題があります。画像データは、コンテンツが書き込まれる前に送信される必要があります。しかし、コンテンツは書き込まれるまでは実体が存在しません。存在しないコンテンツに所属する画像データは作れませんから、特定のコンテンツに所属しない画像データが存在できるようにしなければなりません。ところが、同時並行で2つのコンテンツの作成が発生した場合を想定すると困ったことになります。1つのMagSite1システムを、複数の書き込み者が使うことは、想定される使い方の範囲内です。その際、Aというコンテンツ用にアップロードした画像を、同時並行で作成されていたBというコンテンツが取り込んで表示してしまうような事態が当然起こり得ることになります。

 そこから導き出される結論としては、作成中のコンテンツを識別する何らかの機構が必要であり、それをクリアしなければ、画像を含むコンテンツのオーサリングが実現できないということになります。

 というわけで、なかなか悩ましい状況ですね。