F-abでは、Netscapeプラグイン型のFlash Playerを利用して、Flashを表示しています。Netscapeプラグイン型のFlash Playerは、Macromedia社により開発されたもので、WebブラウザFirefoxやSafariで使用されているものと同じです。Mac版では、LibフォルダにあるFlash Player.plugin、Windows版では、同フォルダのNPSWF32.dllが、Flash Playerの実体です。
F-abは、複数のプログラム言語(Java、Transcript、C)で開発されたハイブリッドアプリケーションです。F-abの中核の処理(Model)であるインタネット接続と内部データベースへのアクセスは、Javaが担当しています。LibフォルダにあるBlendCoffee.jarがその実体です。一方、F-abのウィンドウ、ボタン等の画面まわり(View)は、Revolutionというソフトウェアで開発されており、Transcriptという言語で制御されています。Mac版では、LibフォルダにあるBlendCoffeeMac.rev、Windows版では、同フォルダのBlendCoffeeWin.revがその実体です。ModelとViewが明確に分離されていることにより、F-abは、容易に変更とカスタマイズを行うことができます。
ModelとViewをつなぐ部分は、C言語で記述されています。Mac版では、LibフォルダにあるBlendCoffee.bundle、Windows版では、同フォルダのBlendCoffee.dllがその実体です。ここでは、プラットフォーム間の違いを吸収するとともに、F-abの中にFlash Playerを結合させる役割も担っています。
F-abでは、内部データベースとして、Apache Software FoundationのDerbyを使用しており、Flashムービーのキャッシュとして利用しています。つまり、一度表示されたFlashムービーは、このデータベースに保存され、次に同じFlashムービーのリクエストがあれば、ネット経由ではなく、データベースからFlashムービーを取り出します。Flashムービーが、ファイルとしてローカルに残ることはありません。
F-abでチャンネルを指定すると、その情報はサーバに送られ、サーバ側のデータベースが検索され、チャンネルに対応するURLが、F-abに送り返されます。F-abでは、そのURLのFlashムービーが、すでに内部データベースに保存されていれば、データベースから取り出し、そうでなければ、ネット経由でそのFlashムービーを取得します。サーバ側には、Apache、PHP、MySQL、phpMyAdminが配備されています。これらを総称して、チャンネルサーバと呼んでいます。
ホスティングサービスを利用すれば、チャンネルサーバの運用は簡単です。チャンネルサーバが必要とするApache、PHP、MySQL、phpMyAdminは、ホスティングサービス会社のほとんどが提供してるサービスです。月額10米ドル以下でも、このようなサービスを利用できます。現在運用しているチャンネルサーバは、まさにこのようなホスティングサービスを利用しています。
現在のF-abでは、Flashムービを指定するために、0000チャンネルから9999チャンネルまでの10000チャンネルが使用されています。このため、チャンネルサーバのデータベースにチャンネルデータとして、10000レコードが登録されています。現在よりも100倍のチャンネル数が必要ならば、登録レコード数を100倍に増やせばいいのです。しかし、他にも方法があります。F-abが接続するチャンネルサーバを100個にすれば、チャンネル数は100倍になります。また、1つのチャンネルサーバに100個のデータベースを設けても、チャンネル数は100倍になります。チャンネル数は、いろいろな方法で拡張または縮小できます。
F-abの画面の中では、メインとサブの2つのエリアで、同時にFlashムービーが表示されています。メインエリアのFlashムービーは、ユーザがチャンネルを変えれば、内容が変わります。しかし、ユーザがサブエリアの内容を変更することはできません。現在のF-abでは、チャンネルサーバの管理者だけが、サブエリアの内容を変更する仕様になっています。チャンネルサーバの管理者であれば、データベースの登録内容の変更で、メインエリアのFlashムービーに呼応するような内容のFlashムービーを、サブエリアに表示することが可能です。
F-abで動作しているFlashムービーは、TranscriptのHandlerを呼び出すことができます。Transcriptは、F-abのウィンドウ、ボタン等の画面まわりの開発に使用されているRevolutionというソフトウェアのプログラム言語です。Handlerとは、他のプログラム言語のサブルーチン、関数、メソッドに相当します。サブエリアのFlashムービーをクリックすると、メインエリアのFlashムービーが変わるのは、サブエリアのFlashムービーから、あるHandlerが呼び出され、そのHandlerの中でメインエリアのチャンネルを変更する処理を行っているからです。この機能は強力ですが、F-ab専用です。F-ab以外では機能しません。