前回の記事の続きとなります。この稿では、ムーバブルタイプに対してモブログの投稿機能を実現するための技術コンサルティングに於けるアイディアプロセシングを記述します。
まず、案件の要求に関して以下の制限が設けられることを念頭に置く必要がありました。
- サーバーを移転するなどのダイナミックな環境の変更は不可。現状に付加する形で実装する
この要求は、コスト面や開発期間の短縮がその理由ですが、環境に対する変化を広げないと言う意味において管理側には重要な要素でしょう。 - 第三者のサービスに依存しない
第三者が公開しているサービスや配布されているスクリプトを使わずに、オリジナルの開発アプローチを採るということです。これは以下の要素から導かれた当方からの提案です。情報が第三者の管理下にあるサーバを経由することによる情報管理への危険性・使い勝手・バグへの対処・メンテナンス性・サービス終了や開発中止によるリスク、こういった諸条件を考えた場合に、当該案件のモブログ機能のソースとドキュメントは、発注者の手元に所有できることが望ましいと判断されます。
現在MTが運用されている環境を見てみると、.cgi .php が動作する共有レンタルサーバ上で動作しています。モブログと言えばメール送信による投稿が多く利用されていますが、共有サーバでメール関連の設定にタッチ出来ないことを考えると、このサーバ上でメールをポップしてプラグラムに送って処理を行うという連携は出来ないことになります。それではメールを使用しないアプローチについて検討してみると、携帯から投稿フォームのページをアクセスし、フォーム送信処理で投稿を行うアプローチが考えられます。但し、mt.cgiのフォームをそのまま呼び出して投稿しようとしても、MovableTypeではJavaScriptによる再構築処理などが多用されており、携帯端末からのアクセスではそういったトリガを起動できない可能性が残ります。
そこで、下のような思考を経て、最終的に採用する実装アプローチを求めました。
- 携帯専用の投稿フォームを作って、そことMTをブリッジする中間処理を行って、携帯からの記事投稿を実現する。しかし、この方法では、input type="file" のフォームに対応している携帯でないと添付書類のアップロードが出来ないので、formを使用した投稿による携帯への対応は取れない
- メールによる投稿では、共有サーバ内で処理が完結できないので、外部にメールを受け取ってパース処理を行うことが出来るサーバが必要となる。そこで、当方で提供している非公開のサーバを利用し、そこで処理を行ってMTの設置してある共有サーバへとブリッジする。環境面では共有サーバ内で完結できないが、現実的なアプローチである
この段階までの技術コンサルティングから導き出された、案件を実現させる具体的な工数は以下となります。
- 共有サーバをサーバα、当方のメールサーバをサーバβとする
- サーバβ上で、モブログ投稿用のメールアカウントを作成する
- サーバβのPostfix(MTA=Mail Transfer Agent)が使用するコンフィギュレーションファイル aliases を変更し、モブログ投稿用メールの配信先を中間処理プログラム(C, php, cgiなどで記述)へのパイプとする
- この中間処理プログラムとは、送られてきたメールの内容や添付書類を解析してデータ化し、そのデータをサーバαのMTに直接送って記事投稿を完了させる内容で記述される
- サーバβに中間処理プログラムを設置する
これで、サーバβの指定されたメールアドレスにメールが送られると、そのメールはPostfixによって中間処理プログラムに送られ、そのプログラムは即時にデータを取り出してサーバαのMTに直接記事を投稿しますので、モブログが実現できることになります。中間処理プログラムの役割が非常に重要で、メールで送られてきたデータが意図している記事投稿であるかどうかの判断など、細かい記述を行わないとなりません。うっかり途中で送信したメールが記事になってしまったり、投稿の為のメールアドレスにスパムが届くようになってしまったら、とんでもない記事が投稿されてしまう可能性があります。こういったことに対処するための最低限のルール作成は必要となるでしょう。
次回は、開発の過程を追って、実装の経過と結果に関してまとめます。