カスタマイズ可能なBokeh Server Tornadocoreアプリケーションを提供します。
Bokehのアーキテクチャは,高度な“モデルオブジェクト”(ブロック,範囲,軸,字形などを表す)である.Pythonで作成し、その後、クライアントライブラリBokehJSを使用するためにJSONフォーマットに変換します。(参照されたい) 重要な概念を定義する (より詳細な議論について。)それ自体では,このような柔軟かつデカップリングされた設計は,たとえば,他の言語(R,Scala,Luaなど)を使いやすいという利点を提供している.ブラウザではまったく同じBokeh描画と可視化効果を駆動する.
しかしながら、pythonの“モデルオブジェクト”とブラウザの“モデルオブジェクト”を互いに同期させることができれば、より強力な可能性がすぐに現れる:
Pythonのすべての機能を使用して、ブラウザで生成されたUIおよびツール·イベントに計算または照会応答する
サーバ側更新プッシュを自動的にUI(すなわち、ブラウザ内のウィジェットまたは描画)に自動的にプッシュする
フロー更新は、定期的、タイムアウト、および非同期コールを使用して駆動されます。
このようなPythonとブラウザ間の同期機能は、Bokeh Serverの主な用途です。
これまで,Bokehサーバを用いてインタラクティブなデータ可視化を作成する最も柔軟な方法は,Bokehアプリケーションを作成し,Bokehサーバを用いてサービスを提供することであった.このシナリオでは、Bokehサーバは、アプリケーションコードを使用して、すべてのクライアント(通常はブラウザ)のためのセッションおよび文書を作成し、これらのクライアントは、接続されている:
Bokehサーバ(左)アプリケーションコードを用いてBokeh文書を作成する.ブラウザ(右側)からの各新しい接続は、Bokehサーバがセッションのために1つの新しいドキュメントのみを作成することになります。¶
新しい接続を確立するたびに、Bokehサーバでアプリケーションコードを実行して、新しいBokehを作成します。 Document ブラウザに同期されますアプリケーションコードにはどのコールバックも設定されており,小さな部品の値などの属性が変更されれば,これらのコールバックを実行すべきである.
Document
サイドバーの参照リンクにはBokeh Serverの詳細が記録されている.ほとんどのユーザは、専門的な要求がなければ、これらの詳細に関心を持つ必要がないかもしれません。ユーザーガイド章を参照すべきです。 Bokehサーバの実行 Bokehサーバを用いた情報について.