■実験室

■プロフィール

Sligh'Hand

Author:Sligh'Hand

所属ギルド
Open Travelers
称号
ぐったりたぬぬ
特徴
公園内でマジシャンを目指す新米教師。桜の下で「たぬき寝入り」するのがマイブーム。

■最近の記事
■最近のコメント
■ブログ内検索

■リンク
■RSSリンク
■カテゴリー
■月別アーカイブ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | --:--:--

ブログ式神ぷろじぇくと

 こんばんは。 ぐったりたぬぬです。

 既に気づいたの方もいらっしゃるかもしれませんけど、左上の式神さんこと 「ブログ式神」 に、カウンタ機能が実装されました。 えぇっ、カウント見逃した! って方は F5 キー押してページを更新してでも見てあげてください><;

 実装したつもりで実は動かないバグがあったり、直したつもりが今度は IE でのみ動かなかったりといろいろ苦労させられましたけど、今日の更新で、なんとかカウントだけはしてくれるようになりました。 ようやく一区切りといったところです。

 さてさて、今日の裏日記では、とりあえずの基本機能を実装した式神さんにいついて、その中身をちょっとだけご紹介したいと思います。





基本システム

 まずは式神さんを動かしているシステムの紹介から。 左上のあの子はこんなシステムに支えられて動いています (とりあえず左上のあの子がこんな環境で動いているってだけで、もっと下位のバージョンでも動くかも)。

 フロントエンドはご存知の通り flash 8 です。 ブログ式神の見た目は、この flash によって決まります。 左上のあの子については、フリーソフトの Suzuka で作成しています (商用のソフトはそれなりにお財布に厳しいので>< ←重要。 開発元の Uzo さんには頭が上がりません。

 一方、式神さんの裏側というか、のーみその部分は↓こんなので作られています。

  • CentOS (Linux)
  • apache
  • mysql 5.0
  • php 5.1

 いわゆる LAMP 構成ってやつですね。 全部無償ソフトってのがありがたい限りです(←重要。

 データベースを使っているので、ひとつのシステムでたくさんの式神さんを管理できるのが売り。 共通のインタフェースを持った flash を用意すれば、あっちこっちのサイトでそれぞれの訪問者数を数えることができちゃいます。 具体的には、裏日記と表日記それぞれの式神さんを管理できる、と。 表日記はねこさんの式神に訪問者数を数えてもらって、裏日記ではたぬぬ型の式神さんに訪問者数数えてもらう。 もちろん、それぞれの式神さんはそれぞれのサイトの訪問者数だけを個別に数えることができるわけです。 ま、そうはいっても、こんなのスラ←以外にはだーれも使わないでしょうけどw

動作のしくみ

 左上のあの子がいる場所には、html 上に object タグが設置してあって、そのタグ経由で式神さんを召喚するための php ファイル (shiki.php) にアクセス。 この php ファイルから式神 flash ファイルを出力しています。 この処理の途中、式神 flash にはカウンタの値を取得するためのキーが埋め込まれます。 以前、IE でカウンタの値が取得できなくなる不具合があったので、その対策として組み込んだ機能です。 要は必要な処理を全部サーバ側で片付けちゃえば、環境によって動いたり動かなかったりすることはなくなるでしょう、と。

 その後、キーを埋め込まれた式神 flash が各ユーザーのブラウザにダウンロードされます。 ここで、flash 内の Action Script からサーバ側の php ファイル (counter.php) へカウンタ値の問い合わせが行われます。 counter.php では、式神 flash からの問い合わせに含まれるキーを元に、関連付けられたカウンタ値を調べて、その値を flash に返します。 で、値を受け取った式神 flash がそれを吹き出しに表示することでカウンタとしての動作が完了します。

 ね、簡単でs(撲殺

 object タグから直接 flash ファイルへアクセスしないのは、たとえば F5 キー連打なんかによるカウンタ値の異常な上昇を防ぐため。 誰とは言わないですけど、そういういたずらをしてくれる人がときどきいるんですよねぇw

 同じ人の連続アクセスによるカウンタ値の上昇を防ぐために、「ブログ式神」 では IP アドレスの比較を行っています。 ちょっと荒っぽい方法ですけど、一定時間内に同じ IP アドレスからの連続したアクセスがあった場合、カウンタの値を変えないようにしている、と。 この処理はアクセス履歴を参照する必要があって、flash だけの機能じゃぁ実現できません。 そんなわけで、間に php を入れてデータベース上のアクセス履歴を参照することでこの機能を実現しているわけです。

 ちなみに、カウンタの値を変更しない時間は式神ごとに変更することができて、たとえば、表日記と裏日記にそれぞれの式神さんを設置した場合、表日記の式神さんでは 30 分、裏日記では 3 日間みたいな事もできます。 ま、当然といえば当然の機能ですねb もっとも、こんなのスラ←以外誰も(ry

へびのあし

 式神 flash に直接カウンタの値を埋め込まず、わざわざ問い合わせのためのキーを埋め込む方式にしているのは、セキュリティと今後の機能拡張のため。

 カウンタの値を式神 flash に直接埋め込めば、通信の回数を 1 回分減らすことができるんですけど、ユーザの環境にダウンロードされた式神 flash にはカウンタの値がしっかりと書き込まれちゃうわけです。 仮にこういうつくりにした場合、flash を保存してちょっと解析すれば、カウンタの値をユーザが不正に書き変えることができちゃいます。 いつでもキリ番出し放題! なわけです。 ま、そんなことするのはスラ←みたいな暇人くらいでしょうけど。

 カウンタの値を書き換えられるくらいではそれほど大きな問題は起こらないでしょけど、どーせ作るならそういうセキュリティホール(?)はなくしたい。 てきとーな値を入れてそれがそのまま結果に反映されちゃうような仕組みにはしたくないってわけで、乱数の要素を含んで、かつ、実用上重複することのない 「キー」 を埋め込むことにしたわけです。 もちろん、式神 flash を解析すればこのキーの値を見ることも書き換えることもできちゃいます。 んでも、キーの値はランダムに決定されるので、てきとーに設定した値がまぐれ当たりでもしない限り、ユーザ側でカウンタの値を不正に操作することはできなくなりますb

 あと、将来の拡張については言わずもがな。 今後、式神さんの動作やセリフなんかをサーバ側に格納して、動きのパターンを増やすことを考えたとき、それらを呼び出すためのキーが必要になります。 カウンタの値を取得するためのキーは、これらの動作やセリフを取得するためのキーとしても使えるわけですb 式神さんはまだまだ成長途上。 これからきっともっと、いろんな機能がついてくるはず! 式神さんすごい!!

 ま、今の段階ではホント無駄機能ですね……>キー。 コストと効果がつりあっていないというかなんというか。

これから

 ブログ式神の特徴は 「インタフェースさえ合致していれば、フロントエンドになる flash はかなり自由にカスタマイズできる」 こと。 ってわけで、今後はカスタマイズのできるブ

 それと同時に、式神さんにはもっといろんなことをしてもらえるようにしたいと考えています。 今は訪問者数を数えることと、ぐったりしたセリフを吐くこと、そしてしっぽをいぢられる程度の機能しかないんですけど、もっと使える (遊べる) 子にしたい。 それも flash の容量をできるだけ上げることなく。

 となると、flash 側でいろいろな機能を持たせることにはおのずと限界がでてきます。 セリフや動作を増やすにはそれだけデータを持たせてあげないといけないわけで、そうするとおのずと容量も増えてきちゃいますから。 じゃぁどうするのかって言うと、flash 側にはスクリプトエンジン的な機能だけを実装して、式神さんを動かすためのデータはサーバ側に持たせることにするってのが順当な解決方法なのかなぁ、なーんて思っています。 必要なデータだけを flash がダウンロードして使うイメージ。

 とりあえずの課題は、flash とサーバ側の役割分担ができる機能を実装することでしょうか。

 ま、カウンタ実装という一つの区切りついたので、しばらくはぐったりさせてもらいますけど、ねw

おわりに

 う~ん、帯に短し襷に流しとでも言うんでしょうか。 なんとも中途半端な記事になっちゃいましたねぇ。 さすがに php とか ActionScript とか mysql のストアドプロシージャとかガンガン載せちゃうと、もう TS のブログなんだかそうじゃないんだかわかんなくなっちゃいそうですし。 かといって、これはどう味付けをしても TS の記事になるわけもないし。 悩みながらうだうだ書いていたら、結局技術的なことを書くでもなく、初めての人にもわかりやすい記事にするでもなく、意味不明なものが出来上がっちゃいました。

 もう 5 時ですよ……。 記事書き始めてから 3 時間以上経ってるんですよ……。 きっとワケわかんない記事なのは寝不足のせいですねb ってわけで、そろそろ寝ることにします。

 ここまでお付き合いいただき、ありがとうございました~。 そしておやすみなさいませー。

幻と現の間で | 05:04:54 | Trackback(0) | Comments(0)
コメントの投稿

管理者にだけ表示を許可する

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。