今回は前回の続きで、電子書籍販売サイト:BookLive!に関する話ですが、特に、その仕組みについて記します。
仕組みと言っても色々とありますが、ここで記すのは、このサービスを利用する時に、端末のソフトとサーバ(サイト)でどんな情報をやり取りして最終的に本が読める様になっているのか、といったあたりの話です。
電子書籍の実利用にはあまり関係の無い話になりますが、前回にも記した様に、動かないBookLive!のソフトをなんとかしようと色々調べたり試行錯誤しているうちに、だんだん "ソフトを動かす" という目的以外でも興味が湧いたところを調べてしまい... 色々と面白い事が解ったので、折角なのでちょっとネタにさせて頂きます。
尚、個人でソフトの動きを眺めて解ったレベルの事なので、もちろん詳細部分まで説明できるわけでもないし、正確で無い部分もあると思われます。 中には、前後のデータの流れから推測で記している部分もありますし。
そういう内容である事については御留意願います。
ではまずは、全体イメージがつかめる様に、PCにソフトをインストールしてから本を開くまでの、PCとサーバとでやりとりしているデータのフロー(流れ)を図示します。
左側の列がPC、右側の左寄りがBookLive!のサーバで、一番右端がサイファーテック社のサーバーです。
この3者が連携して処理が行われていきます。

縮小表示してるので、ちょっとカスれてますね...
まあ、大雑把に言えば、ソフトをPCにインストールして立ち上げた時にアカウント情報やPCの識別情報がやりとりされ、本を購入(または試し読み)した時に本の情報がPCに送られ、本を初めて読む(開く)時に、本のライセンス(読む権利)の確認が行われる、といった感じです。
因みに、こういった情報の流れは複数パターン存在し、本を購入したり読んだりする時の操作方法で変わってくるのですが、そのうちの1つだけを記しているので、必ずこの流れになる訳では無い事は留意願います。
では次に、この情報の流れについて、私が興味深く感じたポイントを4つほど列挙します。
■アカウント登録時のユーザID
BookLive!のリーダーソフトのインストール後、そのソフトを起動すると、いきなり "アカウント情報の設定" を要求されます。
で、これを入力すると、BookLive!のサーバーと情報のやりとりを行います。
最初のほうはhttpsで通信しているので何をやりとりしているかは正確には解らないのですが、恐らくPCからサーバーへは、画面で入力されたメールアドレスとパスワード、つまりアカウント情報が、それに対してサーバーからはそのアカウントに対応するユーザID(user_id)がPCに送られている様です。
で、そのユーザIDは8桁の数字なんですが、ちょっと情報収集してみたところ、どうもBookLive!のサイト(サービス)に会員登録した会員に1から順に割り振られている様に見えました。
もしこの推測が正しければ、ユーザIDが解れば、自分が会員登録した時点でこのサービスの会員が何人ぐらいいるのか、が解るという事になります。
なかなか面白い情報です。
因みに、私はソフトが動く様になってから(念の為に)改めて会員登録をやり直したのですが、その時の.. 4月下旬での番号(ユーザID)は...
また別の機会に記します!!
で、これを入力すると、BookLive!のサーバーと情報のやりとりを行います。
最初のほうはhttpsで通信しているので何をやりとりしているかは正確には解らないのですが、恐らくPCからサーバーへは、画面で入力されたメールアドレスとパスワード、つまりアカウント情報が、それに対してサーバーからはそのアカウントに対応するユーザID(user_id)がPCに送られている様です。
で、そのユーザIDは8桁の数字なんですが、ちょっと情報収集してみたところ、どうもBookLive!のサイト(サービス)に会員登録した会員に1から順に割り振られている様に見えました。
| → | 2011.04.30時点での話。 後で番号体系が変わる可能性も十分にあると思われる。 |
なかなか面白い情報です。
因みに、私はソフトが動く様になってから(念の為に)改めて会員登録をやり直したのですが、その時の.. 4月下旬での番号(ユーザID)は...
また別の機会に記します!!
■PCを一意に識別する為の情報はプロダクトID
アカウント情報の設定時、アカウント情報を送信してユーザIDを受け取った後で、PCから "プロダクトID" を送信している様です。
で、このプロダクトIDとは何か(何のプロダクトIDか)と言うと、Windowsのライセンス認証に用いるシリアル番号、またはPCにWindowsをインストールした際にプロダクトキーを元に生成されるマシン毎に一意となる値です。 多分...
WindowsがプリインストールされているPCを購入すると、あまり意識する事の無いIDですが、必ずそれぞれのPCに一意の値が割り振られています。
BookLive!さんのサービスは、購入した本を最大で同時に3台のマシンに入れておく事ができるのですが、3台まで、と制約をかける為には各PCを1台1台個別に判別できる情報が必要になります。 それに、このプロダクトIDを使っている様です。
Android端末の場合はどういうIDを使っているのかは解りませんが、少なくともWindowsのPCについては、こういう事の様です。
| → |
アカウント情報の送信時にも、一緒にプロダクトIDも送信しているかもしれない。 |
WindowsがプリインストールされているPCを購入すると、あまり意識する事の無いIDですが、必ずそれぞれのPCに一意の値が割り振られています。
BookLive!さんのサービスは、購入した本を最大で同時に3台のマシンに入れておく事ができるのですが、3台まで、と制約をかける為には各PCを1台1台個別に判別できる情報が必要になります。 それに、このプロダクトIDを使っている様です。
Android端末の場合はどういうIDを使っているのかは解りませんが、少なくともWindowsのPCについては、こういう事の様です。
■本の元ネタはXMDFや.book
サイトの画面で本を購入(または試読みを選択)すると、本のダウンロードが始まります。
最初は本のIDが送られてきて、それに該当する本をPC側のソフトから取得する様な流れになるのですが、ダウンロードした本は、次のフォルダに格納されます。
格納された本のファイルの識別子は、.zbf や .book になっています。 なので、XMDF形式や.book形式の様に見えるんですが、実際には純粋なXMDFや.bookではなくBookLive!さん独自のデータ形式に変換されたものの様です。
元ネタが .zbf や .book だった、ってところでしょうか。
本を表示する時に、これらのファイルから XMDFや.bookの形式のデータを取り出して、それぞれに対応したビューア機能でページを表示させている、といった方法をとっていると思われます。
余談ですが、前回に記したソフトの不具合で、ポップアップが出るのは .zbf の本で、T-Timeの表示で固まるのが .book の本です。 元ネタの本によってエラーが違っていた、という訳です。
最初は本のIDが送られてきて、それに該当する本をPC側のソフトから取得する様な流れになるのですが、ダウンロードした本は、次のフォルダに格納されます。
| → |
C:\Users\****\AppData\Roaming\BookLiveReader\Contents\* →Windows7の場合 →Usersの部分はexplorerで見るとカタカナに →**** の部分はログインユーザー名 →BookLiveReaderの部分はinstall時の設定で異なるかも |
| → | 故にブンコビューアやT-Timeでこのファイルを読む事はできない |
余談ですが、前回に記したソフトの不具合で、ポップアップが出るのは .zbf の本で、T-Timeの表示で固まるのが .book の本です。 元ネタの本によってエラーが違っていた、という訳です。
■サイファーテックのサーバーでライセンス認証
ダウンロードした本を初めて開く時に通信を行い、利用者がその本を読む権利を持っているかどうかを確認する、つまりラインセンス認証を行う様です。
で、その認証を行うサーバーは、BookLive!さんのサーバではなく、サイファーテック社の認証用サーバー(virgo.cypherlicense.com)の様です。
本を購入した時に、サーバー間で(購入したという)情報を連携しているんでしょうね。
サイファーテック社の機能って、画面のキャプチャの抑止などのPCの操作に関連する機能だけだと思っていたんですが、こういうふうにライセンス認証処理でも用いられていたんですね。
尚、一度このライセンス認証の通信を行えば、それ以降は何度本を開いてもライセンス認証の通信を行う事は無い様です。
で、その認証を行うサーバーは、BookLive!さんのサーバではなく、サイファーテック社の認証用サーバー(virgo.cypherlicense.com)の様です。
本を購入した時に、サーバー間で(購入したという)情報を連携しているんでしょうね。
サイファーテック社の機能って、画面のキャプチャの抑止などのPCの操作に関連する機能だけだと思っていたんですが、こういうふうにライセンス認証処理でも用いられていたんですね。
尚、一度このライセンス認証の通信を行えば、それ以降は何度本を開いてもライセンス認証の通信を行う事は無い様です。
今回は以上です。
フロー図(流れ図)まで準備して仰々しく書きましたが、改めて見返すと、あんまり面白い情報は無かったですかね... (-_-;)

