この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
• SCAS APIによるプログラミングの定義と概念を示します。
この章では、SCAS BBシステムの主な要素(サービス コンフィギュレーション エンティティ)の定義を示します。これらはSCAS BB Javaアプリケーションの構成単位です。したがって、各種のプログラマブル オブジェクト(サブスクライバ、サービス コンフィギュレーション、パッケージ、サービス、およびルール)によりSCAS APIの機能を最大限に活用してアプリケーションを開発するには、これらの要素の機能を理解しておくことが不可欠です。
• 「プロトコル」
• 「起動側」
• 「リスト」
• 「ルール」
• 「パッケージ」
ここでは、SCAS BBシステムを構成する論理エンティティについて、プログラミングの観点から説明します。SCAS Java APIはこれらの定義に基づいて、安定性のあるクライアント/サーバ アプリケーションを構築します。開発したアプリケーションは、ネットワークで実行することも、独立型アプリケーションとして使用することもできます。また、インターネットで配信されるサードパーティ製システムに統合することも可能です。
• サービス コンフィギュレーション (サービス コンフィギュレーション)
• サービスおよびサービス エレメント (サービスおよびサービス エレメント)
• プロトコル (プロトコル)
• ダイナミック シグニチャ (ダイナミック シグニチャ)
• 起動側 (起動側)
• リスト (リスト)
• ルール (ルール)
• パッケージ (パッケージ)
• グローバル コントローラ (グローバル コントローラ)
• サブスクライバBWコントローラ (サブスクライバBWコントローラ)
• サブスクライバ クォータ バケット (サブスクライバ クォータ バケット)
これらのエンティティは、相互に密接な関係があります。したがって、あるエンティティについて詳しく説明する前に、そのエンティティが文中で言及される場合があります。
サービス コンフィギュレーションは、サブスクライバの個人のニーズやビジネス ニーズに応じて選べるさまざまなパッケージを提供することにより、プロバイダーのビジネス戦略とビジョンを具体化します。パッケージはService Configuration Editorで作成することも、ネットワーク プロバイダーの要件に応じてService Configuration APIでカスタムに作成することもできます。システムには、サービス コンフィギュレーションごとに最大で64個のパッケージ、31個のサービスという制限があります。
サービス コンフィギュレーションを使用するには、適切なSCEプラットフォームにサービス コンフィギュレーションを伝播し、そのサービス コンフィギュレーションを実施およびアクティブ化する必要があります。SCEプラットフォーム上のアクティブなサービス コンフィギュレーションが、通過するネットワーク トラフィックを解析することによって、サービス コンフィギュレーションを実施します。
サービス コンフィギュレーションの構成要素は次のとおりです。
• サービス ― サービス コンフィギュレーションには、Web閲覧、ビデオ ストリーミング、ビデオ会議などの サービス が含まれます。各サービスは、ネットワーク アクティビティをそのサービスに対応付ける方法を定義したトランザクション マッピングで構成されます。
• パッケージ ― サービス コンフィギュレーションには パッケージ が含まれます。各パッケージは、 サービス別に定義されたルール(帯域幅レート制限、容量制限、アドミッション制御など)の集合で成り立っています。 パッケージを構成するルールの集合ごとに、異なるサブスクライバ集団をターゲットとした完全なソリューションにする必要があります。
プロバイダーの視点では、サービスは顧客に販売するネットワーク製品です。プログラマの視点では、サービスは1つまたは複数のサービス エレメントで構成され、各エレメントは、ネットワーク トラフィックのトランザクション タイプに対応するサービスに関して一定の判断を可能にします。
SCEプラットフォームは上記のようなトランザクション マッピングを使用して、プラットフォームを通過するネットワーク接続を、それぞれ特定のサービスに対応付けます。その後、サービス別にルールを適用して、サービス コンフィギュレーションを実装します。分類ルールには、L3/4パラメータ(ポート番号、IPアドレスなど)のほかに、L7パラメータ(ホスト名、HTTP接続のユーザ エージェントなど)を使用できます。
次の表に、サービスおよび対応するネットワーク パラメータの例を示します。
|
|
|
|
SCAS BBでは、600以上のプロトコルがサポートされています。これらのプロトコルを目的別に編成し、適切な名前(Web閲覧、Webホスティング、ビデオ会議、ビデオ ストリーミング、ローカル コンテンツなど、サブスクライバ向けの購入パッケージの一部分に使用できる名前)を付けると、あとでマーケティング サービスに役立ちます。
• Web閲覧 ― 発信HTTPトランザクションに対し、インターネットWeb閲覧をイネーブルにするか制限します。
• Webホスティング ― 着信HTTPトランザクションに対し、インターネットWebホスティングを提供します。
• ビデオ会議 ― RTSPトランザクションに対し、ビデオ会議機能を提供します。
• ゲーム サービス ― 無制限の帯域幅で、特定のネットワーク サービス(ゲーム アプリケーションなど)へのアクセスを提供します。
• ローカル コンテンツ ゲーム ― ゲーム サービスを格安な料金でサブスクライバに提供することによって、ゲーム アプリケーション(プロバイダーのローカル ネットワークの外部にあるサーバではなく、プロバイダー ネットワーク内のローカル サーバでホスティングされるDoomなど)の利用を促します。
• 株価情報サービス ― 投資家に人気のある株価情報サービスに課金します。
SCAS BBのオブジェクト指向型テクノロジーを使用すると、サービス オブジェクトなどのプログラム要素を同じ名前で定義し、その機能をネットワーク型のシステム レベル アプリケーションにシームレスに統合することができます。プログラマブルなサービスの利点の1つは、ネットワーク サービスの配信方法を強力に制御できる点です。
複数のサービス エレメントで構成されるサービスの一例として、あるゲーム サービスでは、1つのサービス エレメントがポート666のプログラムDoomに対応するネットワーク分類エンティティを定義し、もう1つのサービス エレメントがポート333のプログラムQuakeに対応する分類エンティティを定義します。ゲーム アプリケーションは大量の帯域幅を消費するので、サブスクライバがサービスに接続している間に使用した帯域幅容量を測定し、それに応じて課金することが、このゲーム サービスに適したサービス ルールとなります。
ルールは、サービスを構成するサービス エレメントに対してではなく、サービスに対して定義します。したがって、システムをプランニングするときは、一連のサービス エレメントを共通のルール ベース機能および特性と一括して指定することが、設計上の重要な考慮事項となります。
実務上、システム サービスは一連のサービス エレメントで構成されます。次に、サービス エレメントの主なコンポーネントを示します。
• プロトコル ― サービス エレメントに対応付けるプロトコルの名前。
• 起動側 ― トランザクションを伝送する方向に制限があるかどうかを表します。方向としては、ネットワーク起動、サブスクライバ起動、またはその両方があります。
• (オプション)リスト ― リストで指定したIPアドレスまたはホスト名に、トランザクションを対応付けるかどうかを表します。
トランザクションのプロトコルは、ポート番号およびトランスポート タイプによって判別されます。これらのパラメータに基づいて、ネットワーク トランザクションに関する詳細な解析(レイヤ7)が実行されます。たとえば、ポート番号が80、トランスポート タイプがTCPで、コンテンツがプロトコルのシグニチャに一致する場合、システムのテーブルがチェックされ、そのトランザクションはHTTPプロトコルに対応付けられます。ポート番号が1755、トランスポート タイプがUDPで、コンテンツがプロトコルのシグニチャに一致する場合、そのトランザクションはRTSP(ビデオ ストリーミングに使用するプロトコル)に対応付けられます。
SCAS BBの今後のバージョンでは、サービス マッピング方式に使用される既存のネットワーク トランザクションの範囲が広がる予定です。これらの新しいマッピング方式の応用例として、たとえば電子メールの件名に「I love you」というテキストが含まれているものを弾き出し、ウィルス スキャニング アプリケーションで処理してから、サブスクライバに配信することが可能になります。その場合、コンピュータ ウィルスをプロバイダーまたはサブスクライバのコンピュータ システムに着信する前にトラップして、被害を未然に防ぐことができます。一方、これらの新しいマッピング方式を利用して、ウィルスがインターネットに到達するのを防ぐこともできます。SCAS BBシステムは、着信トラフィックと発信トラフィックの両方を解析できるからです。
次に、SCAS BBシステムにおけるプロトコルの主要事項をまとめます。
• システムの定義上、プロトコルとは、ポート番号とトランポート タイプの組み合わせです。
• サービス コンフィギュレーションにはプロトコルのリストがあり、各プロトコルのプロトコル名およびトランスポート タイプのほかに、UDPまたはTCPプロトコルの場合はポート番号、またはIPプロトコル番号を指定します。ネットワーク トランザクションのプロトコルは、これらのパラメータによって識別されます。
• サービス コンフィギュレーションのいずれかのプロトコルで、TCPまたはUDPトランザクションのポート番号が定義されていない場合、そのトランザクションのプロトコルは「汎用TCP」または「汎用UDP」プロトコルとして識別されます。
• サービス コンフィギュレーションのいずれかのプロトコルで、IPプロトコル番号が定義されていない場合、そのトランザクションのプロトコルは「汎用IP」プロトコルとして識別されます。
ダイナミック シグニチャは、コンフィギュレーションに新しいプロトコルの分類を追加するためのメカニズムです。これは、新しいプロトコルがリリースされ、カスタマーがそのトラフィックを分類できるようにしたい場合に役立ちます(たとえば、P2P-Controlソリューションにおける新しいP2Pプロトコルなど)。ダイナミック シグニチャは、特殊なDynamic Signature Script(DSS)ファイルで提供されます。このファイルは、SCAS BB ConsoleまたはAPIによってPQBファイルに追加できます。PQBにDSSファイルを読み込むと、サポートされる新しいプロトコルがプロトコル リストで使用可能になり、必要に応じてサービスに追加できるようになり、レポートを表示するときに使用されます。DSSファイルは、カスタマーの要件およびマーケット ニーズに応じて、シスコまたはパートナーが定期的にリリースしています。
ネットワーク トランザクションの起動側は、ネットワーク起動(Network-Initiated)またはサブスクライバ起動(Subscriber-Initiated)のいずれかです。サブスクライバ起動のトランザクションは、サブスクライバからネットワークへ発信されるトランザクションです。一方、ネットワーク起動のトランザクションは、ネットワークからサブスクライバへ発信されるトランザクションです。
サービス エレメントで定義するネットワーク トランザクションを、(a)ネットワーク起動の方向、(b)サブスクライバ起動の方向に制限することもできますし、(c)どちらの方向にも制限しないことも可能です。
「方向」プロセスの作用を理解するため、いくつかのプロトコルについて次に検証します。
• ICQプロトコルの場合、トランザクションを起動する方向はどちらでも構いません。インスタント メッセージには着信(Network-Initiated)および発信(Subscriber-Initiated)の両方が必要だからです。
• HTTPの場合、トランザクションの方向をサブスクライバ起動に制限することが賢明です。サブスクライバがネットサーフィンを開始するとき、HTTPは常にサブスクライバによって起動されるからです。HTTPトランザクションの方向がネットワーク起動である場合、着信HTTPトラフィックを受信するために、ネットワーク サブスクライバのローカル コンピュータ上のWebサーバが開いていることを意味すると考えられます。HTTPのこのような使用法はネットワーク リソースに負担をかけるので、プロバイダーはこれを禁止することもできます。また、この使用法はネットワークの不正使用であり、サブスクライバとプロバイダーのネットワーク サービス アグリーメントへの違反であるとみなされる場合もあります。
IPアドレスやホスト名などのネットワーク アドレスを、共通の目的を持ったグループにまとめ、特定のサービスに対応するサブスクライバのネットワーク トランザクションを適用する場合、そのグループのことを リスト といいます。システムに複数のリストが存在する場合があります。複数のリストを一括したマスター リストのことを、リスト アレイといいます。
• プロバイダーが望ましくないと判断する有害コンテンツを提供するWebサイトのリスト。「児童向けフィルタリング サービス」を定義して、これらのサイトへのアクセスを禁止することができます。
• ダウンロード転送速度を一定の帯域幅レートに制限したり、使用できる同時セッション数を制限したりすることをプロバイダーが希望するFTPサイトのリスト(ネットワーク アドレスを含む)。
ネットワーク アドレスを含んだリストの指定方法を、次の表に示します。
|
|
マスク付きIPアドレス範囲は、123.3.123.0/24という形式で指定できます。この場合、IPアドレスの先頭24ビットは指定するとおりで、残りの8ビット、すなわち256個のIPアドレスが、この範囲に含まれることになります。 |
|
サービスのコンポーネント(リスト、プロトコル、起動側など)は、ネットワークを通過するトランザクションの解釈方法だけをシステムに指示します。これらは、サービスに適用すべきアクションは指示しません。 ルール は、ルールの条件が満たされたときに実行すべきアクションを指定する、サービスの条項です。
サービスは時間ベースの情報にも作用する必要があるので、開発者やプログラマが定義する時間枠ごとに1つずつ、最高4つのサブルールを定義できるようになっています。
前述したように、サービスはサービス エレメントで構成されます。ルールは個々のエレメントに対してではなく、サービス全体に適用されるということを理解しておく必要があります。このことは、開発者やプログラマがサービス コンフィギュレーションをプランニングするときに重要となる、システム解析およびサービス設計上の考慮事項です。
一般にルールとは、特定のサービスのネットワーク トランザクションの取り扱い方法に関するSCEプラットフォームへの指示の集合です。禁止すべきトランザクションを指定するルールや、一定の帯域幅を許容すべきトランザクションを指定するルールがあります。また、合計容量やセッション数の限界を定義するルールもあります。その上で、さらに別の制限をトランザクションに加えることができます。また、課金や解析のためのトランザクション レポートの生成方法を指定するルールもあります。
パッケージは、サブスクライバに提供するサービスのグループを定義します。パッケージには、サービス別のシステム動作の定義が含まれます。具体的には、ネットワーク トランザクションに関する制限、トランザクションの優先順位に関するガイドライン、トランザクション レポートの生成に関する指示などです。このような動作を ルール で定義します。
ネットワーク上のサブスクライバごとに、そのサブスクライバが所属しているパッケージの参照が提供されます。ネットワーク トランザクションがいずれかのサービス エレメントの定義を満たす場合、システムはそのトランザクションを特定のサービスに対応付けます。また、システムはトランザクションのネットワークIDに従って、そのトランザクションに関係するサブスクライバを識別します。システムがトランザクションのネットワークIDを認識すれば、サブスクライバが所属するパッケージを判別することができ、サブスクライバのネットワーク トランザクションのサービスに適切なルールを適用できます。
次の表に、パッケージの例、対応するサービス、およびサービス パラメータを示します。
|
|
|
|
|
|
SCAS BBソリューションでは、帯域幅の制御はグローバル制御およびサブスクライバ帯域幅の制御という2段階で実行されます。
SCEプラットフォームは、グローバル コントローラという仮想キューを使用して帯域幅を制御します。1つのインターフェイス(アップストリーム/ダウンストリーム)に最大16個のグローバル コントローラを設定できます。グローバル コントローラなので、特定のパッケージに設定がリンクされるのではなく、システム全体が設定の対象になります。
サブスクライバ レベルでの帯域幅の制御とは対照的に、グローバル コントローラの目的は、「Goldサブスクライバ トラフィック全体」や「P2Pトラフィック全体」のように、大規模でグローバルなトラフィック容量に制限を加えることです。それぞれのグローバル コントローラは、特定のタイプの全トラフィックに割り当てられる合計システム帯域幅のパーセンテージを表します。具体例としてはP2Pトラフィックがあります。P2Pトラフィックの容量が増えたために、多くのISPで重大な問題を引き起こしています。グローバル コントローラを使用すれば、システム上のP2Pトラフィックの合計量をトラフィック帯域幅全体に対する任意のパーセンテージに制限できます。P2Pトラフィックが消費するトラフィック帯域幅の量を、一定に保ちながら制御することが可能になります。
サブスクライバ帯域幅コントローラ(BWコントローラ)は、サブスクライバ全体のトラフィック、またはその一部分を制御します。BWコントローラの設定に使用する主要なパラメータは、次の2つです。
• BWコントローラが制御するトラフィックに対して許容すべき最低限の帯域幅
サブスクライバBWコントローラは、次の2つのレベルで帯域幅を実施します。
• 第1レベル、プライマリBWコントローラ(合計) ― プロバイダー がサブスクライバに対して実施する帯域幅サービス コンフィギュレーションを指定します。
• 第2レベル、BWコントローラ(内部) ― サブスクライバ がサービスに対して実施を希望するサービス コンフィギュレーションを指定します。
SCAS BBでは、各サブスクライバに1つずつ独立したBWコントローラのセットが提供されます。そのうち1つのBWコントローラは、サブスクライバの合計帯域幅を制御します。このBWコントローラは、第1レベルの制御を提供し、プライマリBWコントローラといいます。
残りのBWコントローラは、そのサブスクライバの一部のサービスの帯域幅を制御します。たとえば、ストリーミング サービスを制御するBWコントローラや、ダウンロードと電子メール サービスをまとめて制御するBWコントローラが考えられます。これらのBWコントローラは、第2レベルの制御を提供し、BWC(内部)といいます。
外部クォータ プロビジョニング モードでは、クォータ(割り当て量)アカウンティングはサブスクライバ クォータ バケットを使用して行われます。サブスクライバごとに16個のバケットがあり、各バケットを容量またはセッション数で定義できます。サブスクライバが特定のサービスを利用すると、消費した容量またはセッション数が、いずれかのバケットから減らされます。それぞれのサービスでどのバケットを使用するかは、サービス コンフィギュレーションによって決まります。容量バケットの場合、消費量はL3キロバイトの単位でカウントされます。セッション バケットの場合、消費量はセッション数で表されます。たとえば、閲覧と電子メール サービスはバケット#1から、P2Pサービスはバケット#2から、それぞれクォータを消費するものとし、それ以外のサービスはどれも特定のバケットに対応付けないように定義することができます。
外部クォータ プロビジョニング システムでは、 Quota Provisioning(QP)API ( Quota Provisioning API)を使用して、各バケットのクォータをダイナミックに変更することができます。たとえば、サブスクライバが追加のクォータを購入したときに、特定のバケットのクォータを増やすことができます。これらのシステムでは、各バケットのクォータ残量を照会することも可能です。たとえば、(ある種の個人Webページで)クォータがどれだけ残っているかをサブスクライバに確認させるために、この機能を使用できます。