特許第6941102号(P6941102)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特許6941102電気通信アプリケーションのデータ駆動型自動プロビジョニング
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6941102
(24)【登録日】2021年9月7日
(45)【発行日】2021年9月29日
(54)【発明の名称】電気通信アプリケーションのデータ駆動型自動プロビジョニング
(51)【国際特許分類】
   G06F 8/60 20180101AFI20210916BHJP
   G06F 13/00 20060101ALI20210916BHJP
   H04L 12/70 20130101ALI20210916BHJP
【FI】
   G06F8/60
   G06F13/00 500A
   H04L12/70 D
【請求項の数】20
【全頁数】30
(21)【出願番号】特願2018-529970(P2018-529970)
(86)(22)【出願日】2016年12月9日
(65)【公表番号】特表2019-508769(P2019-508769A)
(43)【公表日】2019年3月28日
(86)【国際出願番号】US2016065836
(87)【国際公開番号】WO2017100578
(87)【国際公開日】20170615
【審査請求日】2019年11月25日
(31)【優先権主張番号】62/265,633
(32)【優先日】2015年12月10日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100120112
【弁理士】
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(72)【発明者】
【氏名】パーカー,ロナルド,エム.
(72)【発明者】
【氏名】ジョナラガッダ,パラサド
【審査官】 久保 光宏
(56)【参考文献】
【文献】 小原 雄樹(外2名),「ハイブリッドクラウド環境におけるソフトウェア制御型プラットフォーム管理システムの提案」,情報処理学会第76回(平成26年)全国大会講演論文集(1),日本,一般社団法人情報処理学会,2014年03月11日,第1-41〜1-42頁
【文献】 浅羽 登志也,「SDNのすべて 第1回」,日経コミュニケーション,日本,日経BP社,2013年05月01日,2013年5月号(第592号),第82〜89頁,ISSN: 0910-7215
【文献】 関谷 勇司(外1名),「SDNのすべて 第5回」,日経コミュニケーション,日本,日経BP社,2013年09月01日,2013年9月号(第596号),第66〜71頁,ISSN: 0910-7215
【文献】 尾花 和昭(外2名),「SDNのすべて 第7回」,日経コミュニケーション,日本,日経BP社,2013年11月01日,2013年11月号(第598号),第64〜69頁,ISSN: 0910-7215
【文献】 岩田 淳,「SDNのすべて 第15回」,日経コミュニケーション,日本,日経BP社,2014年07月01日,2014年7月号(第606号),第66〜71頁,ISSN: 0910-7215
【文献】 百瀬 拓也(外3名),「Webベース統合開発環境によるSDN実習支援システムの提案」,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2016年02月27日,Vol.115, No.492,第7〜10頁,ISSN: 0913-5685
(58)【調査した分野】(Int.Cl.,DB名)
G06F8/00−8/77
G06F13/00
H04L12/00−12/955
H04W4/00−99/00
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスにおいて、
モバイルネットワーク内のデバイスおよび関連プロトコルに関連付けられた接続デバイスタイプカテゴリを作成する要求に関連付けられたデータを受信するステップと、
前記コンピューティングデバイスにおいて、前記接続デバイスタイプカテゴリに関連付けられたターゲット・スキーマ・オブジェクト・クラスを作成する要求に関連付けられたデータを受信するステップであって、前記要求は前記ターゲット・スキーマ・オブジェクト・クラスに関連付けられた第1のオブジェクトパラメータを含み、前記第1のオブジェクトパラメータは前記デバイスのデバイスタイプおよび前記プロトコルの少なくとも1つを含み、前記ターゲット・スキーマ・オブジェクト・クラスは前記デバイスタイプと前記プロトコルとに基づいて構成可能なリソースのクラスを表す、ステップと、
前記コンピューティングデバイスにおいて、前記第1のオブジェクトパラメータに基づいて、前記デバイスの機能を表すCRUD(作成、読み出し、更新、および削除)セマンティクスの指定に関連付けられたデータフィールドのセットを、
前記プロトコルに関連付けられた構成パラメータがサーバからデータベースにインポート可能なデータに関連付けられているインポート可能なフォームを含む場合に、前記コンピューティングデバイスに関連付けられた前記データベースから取得し、
前記プロトコルに関連付けられた前記構成パラメータがサーバから前記データベースにインポート不可能であるデータに関連付けられているインポート不可能なフォームを含む場合に、ユーザ提供データから取得するステップと、
前記コンピューティングデバイスによって、前記要求されたターゲット・スキーマ・オブジェクト・クラスを作成するステップであって、前記要求されたターゲット・スキーマ・オブジェクト・クラスは前記取得されたデータフィールドのセットを含む、ステップと、
前記コンピューティングデバイスによって、前記要求されたターゲット・スキーマ・オブジェクト・クラスに基づいて修飾ターゲット・オブジェクト・クラスを作成するステップであって、前記修飾ターゲット・オブジェクト・クラスは前記取得されたデータフィールドのセット内のデータフィールドの少なくとも一部に対する指定値を含む、ステップと、
前記コンピューティングデバイスにおいて、少なくとも1つのサブレシピを作成する要求に関連付けられたデータを受信するステップであって、前記少なくとも1つのサブレシピの各々は、
前記修飾ターゲット・オブジェクト・クラス、および
1つまたは複数の他の修飾ターゲット・オブジェクト・クラスと前記修飾ターゲット・オブジェクト・クラスと前記1つまたは複数の他の修飾ターゲット・オブジェクト・クラスとの間の関連付けを示すデータ
のうちの少なくとも1つを含む、ステップと、
前記コンピューティングデバイスにおいて、サービスインスタンスを形成するために実行エンジンへの送信のためのレシピを処理するステップであって、前記レシピは前記少なくとも1つのサブレシピを含み、前記サービスインスタンスは前記指定値に基づいて事前入力されている、または隠されているサービス・インスタンス・データ・フィールドを含み、前記サービスインスタンスは事前入力されていない前記サービス・インスタンス・データ・フィールドがオペレータによってカスタマイズされ得るように特定のネットワークデバイスのオペレータによってカスタマイズ可能である、ステップと
を含む、コンピュータで実行される方法。
【請求項2】
前記コンピューティングデバイスによって、共通修飾ターゲット・オブジェクト・クラスを有する前記少なくとも1つのサブレシピ内のサブレシピのセットを決定するステップであって、前記共通修飾ターゲット・オブジェクト・クラスは前記サブレシピのセットの各々に存在する、ステップと、
前記コンピューティングデバイスによって、前記サブレシピのセット内の1つのサブレシピ内の1つの共通修飾ターゲット・オブジェクト・クラスの合体パラメータを受信するステップであって、前記合体パラメータは、前記1つの共通修飾ターゲット・オブジェクト・クラスのデータフィールドに対する値のセットを含む、ステップと、
前記コンピューティングデバイスによって、前記合体パラメータを、他の少なくとも1つのサブレシピの各々に関連付けられた他の共通修飾ターゲット・オブジェクト・クラスの各々に適用するステップと
をさらに含む、請求項1に記載のコンピュータで実行される方法。
【請求項3】
前記コンピューティングデバイスによって修飾ターゲット・オブジェクト・クラスを作成するステップは、前記コンピューティングデバイスによって前記指定値を受信するステップをさらに含む、請求項1に記載のコンピュータで実行される方法。
【請求項4】
前記指定値は、前記第1のオブジェクトパラメータから導出される、請求項1に記載のコンピュータで実行される方法。
【請求項5】
前記サービスインスタンスは、仮想ネットワーク機能、物理ネットワーク機能、またはアプリケーションのうちの少なくとも1つを含むターゲットインスタンスをさらに含む、請求項1に記載のコンピュータで実行される方法。
【請求項6】
前記構成可能なリソースは、サービス品質、レーティンググループ、料金プラン、およびパケットフィルタのうちの少なくとも1つを含む、請求項1に記載のコンピュータで実行される方法。
【請求項7】
前記プロトコルは、表現状態転送(REST)プロトコル、構造化照会言語(SQL)プロトコル、簡易オブジェクト・アクセス・プロトコル(SOAP)、セキュアファイル転送プロトコル/セキュア・シェル・プロトコル(SFTP/SSH)、簡易ネットワーク管理プロトコル(SNMP)、およびネットワーク構成プロトコル(NETCONF)のうちの少なくとも1つを含む、請求項1に記載のコンピュータで実行される方法。
【請求項8】
ンピューティングデバイスであって
メモリと、
前記メモリと通信し、前記メモリに記憶されたモジュールを実行するように構成されたプロセッサと
を備え、前記モジュールは前記プロセッサに、
モバイルネットワーク内のデバイスおよび関連プロトコルに関連付けられた接続デバイスタイプカテゴリを作成する要求に関連付けられたデータを受信させ、
前記接続デバイスタイプカテゴリに関連付けられたターゲット・スキーマ・オブジェクト・クラスを作成する要求に関連付けられたデータを受信させ、前記要求は前記ターゲット・スキーマ・オブジェクト・クラスに関連付けられた第1のオブジェクトパラメータを含み、前記第1のオブジェクトパラメータは前記デバイスのデバイスタイプおよび前記プロトコルの少なくとも1つを含み、前記ターゲット・スキーマ・オブジェクト・クラスは前記デバイスタイプと前記プロトコルとに基づいて構成可能なリソースのクラスを表し、
前記第1のオブジェクトパラメータに基づいて、前記デバイスの機能を表すCRUD(作成、読み出し、更新、および削除)セマンティクスの指定に関連付けられたデータフィールドのセットを、
前記プロトコルに関連付けられた構成パラメータがサーバからデータベースにインポート可能なデータに関連付けられているインポート可能なフォームを含む場合に、前記コンピューティングデバイスに関連付けられた前記データベースから取得させ、
前記プロトコルに関連付けられた前記構成パラメータがサーバから前記データベースにインポート不可能であるデータに関連付けられているインポート不可能なフォームを含む場合に、ユーザ提供データから取得させ、
前記要求されたターゲット・スキーマ・オブジェクト・クラスを作成させ、前記要求されたターゲット・スキーマ・オブジェクト・クラスは前記取得されたデータフィールドのセットを含み、
前記要求されたターゲット・スキーマ・オブジェクト・クラスに基づいて、前記取得されたデータフィールドのセット内のデータフィールドの少なくとも一部に対する指定値を含む修飾ターゲット・オブジェクト・クラスを作成させ、
少なくとも1つのサブレシピを作成する要求に関連付けられたデータを受信させ、前記少なくとも1つのサブレシピの各々は、
前記修飾ターゲット・オブジェクト・クラス、および
1つまたは複数の他の修飾ターゲット・オブジェクト・クラス、および前記修飾ターゲット・オブジェクト・クラスと前記1つまたは複数の他の修飾ターゲット・オブジェクト・クラスとの間の関連付けを示すデータ
のうちの少なくとも1つを含み、
サービスインスタンスを形成するために実行エンジンへの送信のためのレシピを処理させ、前記レシピは前記少なくとも1つのサブレシピを含み、前記サービスインスタンスは前記指定値に基づいて事前入力されている、または隠されているサービス・インスタンス・データ・フィールドを含み、前記サービスインスタンスは事前入力されていない前記サービス・インスタンス・データ・フィールドがオペレータによってカスタマイズされ得るように特定のネットワークデバイスのオペレータによってカスタマイズ可能である、
ように構成される、コンピューティングデバイス。
【請求項9】
前記プロセッサにさらに、
共通修飾ターゲット・オブジェクト・クラスを有する前記少なくとも1つのサブレシピ内のサブレシピのセットを決定させ、前記共通修飾ターゲット・オブジェクト・クラスは前記サブレシピのセットの各々に存在し、
前記サブレシピのセット内の1つのサブレシピ内の1つの共通修飾ターゲット・オブジェクト・クラスの合体パラメータを受信させ、前記合体パラメータは前記1つの共通修飾ターゲット・オブジェクト・クラスのデータフィールドに対する値のセットを含み、
前記合体パラメータを、他の少なくとも1つのサブレシピの各々に関連付けられた他の共通修飾ターゲット・オブジェクト・クラスの各々に適用させる、請求項8に記載のコンピューティングデバイス。
【請求項10】
修飾ターゲット・オブジェクト・クラスを作成するために、前記プロセッサにさらに前記指定値を受信させる、請求項8に記載のコンピューティングデバイス。
【請求項11】
前記指定値は、前記第1のオブジェクトパラメータから導出される、請求項8に記載のコンピューティングデバイス。
【請求項12】
前記サービスインスタンスは、仮想ネットワーク機能、物理ネットワーク機能、またはアプリケーションのうちの少なくとも1つを含むターゲットインスタンスをさらに含む、請求項8に記載のコンピューティングデバイス。
【請求項13】
前記構成可能なリソースは、サービス品質、レーティンググループ、料金プラン、およびパケットフィルタのうちの少なくとも1つを含む、請求項8に記載のコンピューティングデバイス。
【請求項14】
前記プロトコルは、表現状態転送(REST)プロトコル、構造化照会言語(SQL)プロトコル、簡易オブジェクト・アクセス・プロトコル(SOAP)、セキュアファイル転送プロトコル/セキュア・シェル・プロトコル(SFTP/SSH)、簡易ネットワーク管理プロトコル(SNMP)、およびネットワーク構成プロトコル(NETCONF)のうちの少なくとも1つを含む、請求項8に記載のコンピューティングデバイス。
【請求項15】
ンピュータ読み取り可能な記録媒体であって、装置に、
モバイルネットワーク内のデバイスおよび関連プロトコルに関連付けられた接続デバイスタイプカテゴリを作成する要求に関連付けられたデータを受信させ、
前記接続デバイスタイプカテゴリに関連付けられたターゲット・スキーマ・オブジェクト・クラスを作成する要求に関連付けられたデータを受信させ、前記要求は前記ターゲット・スキーマ・オブジェクト・クラスに関連付けられた第1のオブジェクトパラメータを含み、前記第1のオブジェクトパラメータは前記デバイスのデバイスタイプおよび前記プロトコルの少なくとも1つを含み、前記ターゲット・スキーマ・オブジェクト・クラスは前記デバイスタイプと前記プロトコルとに基づいて構成可能なリソースのクラスを表し、
前記第1のオブジェクトパラメータに基づいて、前記デバイスの機能を表すCRUD(作成、読み出し、更新、および削除)セマンティクスの指定に関連付けられたデータフィールドのセットを、
前記プロトコルに関連付けられた構成パラメータがサーバからデータベースにインポート可能なデータに関連付けられているインポート可能なフォームを含む場合に、前記装置に関連付けられた前記データベースから取得させ、
前記プロトコルに関連付けられた前記構成パラメータがサーバから前記データベースにインポート不可能であるデータに関連付けられているインポート不可能なフォームを含む場合に、ユーザ提供データから取得させ、
前記要求されたターゲット・スキーマ・オブジェクト・クラスを作成させ、前記要求されたターゲット・スキーマ・オブジェクト・クラスは前記取得されたデータフィールドのセットを含み、
前記要求されたターゲット・スキーマ・オブジェクト・クラスに基づいて、前記取得されたデータフィールドのセット内のデータフィールドの少なくとも一部に対する指定値を含む修飾ターゲット・オブジェクト・クラスを作成させ、
少なくとも1つのサブレシピを作成する要求に関連付けられたデータを受信させ、前記少なくとも1つのサブレシピの各々は、
前記修飾ターゲット・オブジェクト・クラス、および
1つまたは複数の他の修飾ターゲット・オブジェクト・クラス、および前記修飾ターゲット・オブジェクト・クラスと前記1つまたは複数の他の修飾ターゲット・オブジェクト・クラスとの間の関連付けを示すデータ
のうちの少なくとも1つを含み、
サービスインスタンスを形成するために実行エンジンへの送信のためのレシピを処理させ、前記レシピは前記少なくとも1つのサブレシピを含み、前記サービスインスタンスは前記指定値に基づいて事前入力されている、または隠されているサービス・インスタンス・データ・フィールドを含み、前記サービスインスタンスは事前入力されていない前記サービス・インスタンス・データ・フィールドがオペレータによってカスタマイズされ得るように特定のネットワークデバイスのオペレータによってカスタマイズ可能である、
ように動作可能な実行可能命令を記録した、コンピュータ読み取り可能な記録媒体。
【請求項16】
前記装置にさらに、
共通修飾ターゲット・オブジェクト・クラスを有する前記少なくとも1つのサブレシピ内のサブレシピのセットを決定させ、前記共通修飾ターゲット・オブジェクト・クラスは前記サブレシピのセットの各々に存在し、
前記サブレシピのセット内の1つのサブレシピ内の1つの共通修飾ターゲット・オブジェクト・クラスの合体パラメータを受信させ、前記合体パラメータは前記1つの共通修飾ターゲット・オブジェクト・クラスのデータフィールドに対する値のセットを含み、
前記合体パラメータを、他の少なくとも1つのサブレシピの各々に関連付けられた他の共通修飾ターゲット・オブジェクト・クラスの各々に適用させる、請求項15に記載のコンピュータ読み取り可能な記録媒体。
【請求項17】
修飾ターゲット・オブジェクト・クラスを作成するために、前記装置にさらに前記指定値を受信させる、請求項15に記載のコンピュータ読み取り可能な記録媒体。
【請求項18】
前記指定値は、前記第1のオブジェクトパラメータから導出される、請求項15に記載のコンピュータ読み取り可能な記録媒体。
【請求項19】
前記サービスインスタンスは、仮想ネットワーク機能、物理ネットワーク機能、またはアプリケーションのうちの少なくとも1つを含むターゲットインスタンスをさらに含む、
請求項15に記載のコンピュータ読み取り可能な記録媒体。
【請求項20】
前記構成可能なリソースは、サービス品質、レーティンググループ、料金プラン、およびパケットフィルタのうちの少なくとも1つを含む、請求項15に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、「Data Driven Automated Provisioning of Telecommunication Applications」と題された2015年12月10日に出願された米国仮特許出願第62/265,633号に対する優先権を主張するものであり、この特許の内容を参照によって本願明細書に引用したものとする。
【0002】
本開示は、データ自動化に関する。より具体的には、本開示は、電気通信アプリケーションのデータ駆動型自動プロビジョニングを提供するシステムおよび方法に関する。
【背景技術】
【0003】
電気通信(Telco)ネットワーク機能およびアプリケーション(本明細書ではアプリケーションまたはtelcoアプリケーションとも呼ぶ)は、非常に豊富で複雑な構成モデルを有する傾向がある。さらに、Telcoアプリケーションは、永続的に頻繁に再構成される傾向がある。例えば、消費者向けモバイル事業の顧客をサポートするネットワークでは、追加の消費者がネットワークに参加する都度、多数のネットワークノードとバックエンドビジネスシステムの構成が必要である。
【0004】
従来、telco環境におけるこれらの頻繁な構成オプションの最終的な統合ポイントは、オペレーション・サポート・システム/ビジネス・サポート・システム(OSS/BSS)システムである。しかしながら、新しいデバイスおよび/またはサービスをネットワークに統合するのは、非常に時間がかかり、非常にコスト高であり、OSS/BSSシステムのカスタムコード開発が必要になる傾向があるが、OSS/BSSシステム自体が非常に大きく、複雑でカスタマイズされたシステムである。さらに、十分な時間とお金を費やしても、最終的には、手続きが高度に自動化されるわけではなく、むしろGUI画面の順次セット(大抵の場合、サービス全体をサポートするために構成を必要とするデバイスのタイプごとに1つずつ)を介してユーザを導く形になる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
(対応する記載なし)
【課題を解決するための手段】
【0006】
モバイルネットワークの顧客へのサービスのプロビジョニングのエージェントレス(エージェントが不要で)で、データ駆動型であり、かつステートフルな自動化を可能にするサービステンプレートを構築するためのシステムおよび方法が本明細書で開示される。いくつかの実施形態では、コンピューティングデバイス(コンピュータ装置)は、モバイルネットワーク内のデバイスおよび関連プロトコルに関連付けられた接続デバイスタイプカテゴリを作成する要求に関連付けられたデータを受信する。いくつかの実施形態では、コンピューティングデバイスは、接続デバイスタイプカテゴリに関連付けられたターゲット・スキーマ・オブジェクト・クラスを作成する要求に関連付けられたデータを受信し、この要求は、ターゲット・スキーマ・オブジェクト・クラスに関連付けられた第1のオブジェクトパラメータを含み、第1のオブジェクトパラメータは、デバイスのデバイスタイプおよびプロトコルのうちの少なくとも1つを含み、ターゲット・スキーマ・オブジェクト・クラスは、デバイスタイプおよびプロトコルに基づく構成可能なリソースのクラスを表す。いくつかの実施形態では、コンピューティングデバイスは、第1のオブジェクトパラメータに基づいて、デバイスの機能を表すCRUD(作成、読み出し、更新、および削除)セマンティクスの指定に関連付けられたデータフィールドのセットを、構成パラメータがサーバからデータベースにインポート可能なデータに関連付けられたインポート可能なフォームを含む場合に、コンピューティングデバイスに関連付けられたデータベースから取得し、構成パラメータがサーバからデータベースにインポート不可能なデータに関連付けられたインポート不可能なフォームを含む場合に、ユーザ提供データから取得する。いくつかの実施形態では、コンピューティングデバイスは、要求されたターゲット・スキーマ・オブジェクト・クラスを作成し、要求されたターゲット・スキーマ・オブジェクト・クラスは、取得されたデータフィールドのセットを含む。いくつかの実施形態では、コンピューティングデバイスは、要求されたターゲット・スキーマ・オブジェクト・クラスに基づいて、修飾ターゲット・オブジェクト・クラスを作成し、修飾ターゲット・オブジェクト・クラスは、取得されたデータフィールドのセット内のデータフィールドの少なくとも一部に対する指定値を含む。いくつかの実施形態では、コンピューティングデバイスは、少なくとも1つのサブレシピを作成する要求に関連付けられたデータを受信し、少なくとも1つのサブレシピの各々は、修飾ターゲット・オブジェクト・クラス、および1つまたは複数の他の修飾ターゲット・オブジェクト・クラスおよび修飾ターゲット・オブジェクト・クラスと1つまたは複数の他の修飾ターゲット・オブジェクト・クラスとの間の関連付けを示すデータのうちの少なくとも1つを含む。いくつかの実施形態では、コンピューティングデバイスは、サービスインスタンスを形成するために実行エンジンへの送信のためのレシピを処理し、レシピは、少なくとも1つのサブレシピを含み、サービスインスタンスは、指定値に基づいて事前入力されている、または隠されているサービス・インスタンス・データ・フィールドを含み、サービスインスタンスは、事前入力されていないサービス・インスタンス・データ・フィールドがオペレータによってカスタマイズされ得るように、特定のネットワークデバイスのオペレータによってカスタマイズ可能である。
【0007】
いくつかの実施形態では、コンピューティングデバイスは、共通修飾ターゲット・オブジェクト・クラスを有する少なくとも1つのサブレシピ内のサブレシピのセットを決定し、共通修飾ターゲット・オブジェクト・クラスはサブレシピのセットのそれぞれに存在する。いくつかの実施形態では、コンピューティングデバイスは、サブレシピのセット内の1つのサブレシピ内の1つの共通修飾ターゲット・オブジェクト・クラスの合体パラメータを受信し、合体パラメータは、1つの共通修飾ターゲット・オブジェクト・クラスのデータフィールドの値のセットを含む。いくつかの実施形態では、コンピューティングデバイスは、他の少なくとも1つのサブレシピの各々に関連付けられた他の共通修飾ターゲット・オブジェクト・クラスの各々に合体パラメータを適用する。
【0008】
いくつかの実施形態では、コンピューティングデバイスは、指定値を受信することによって、修飾ターゲット・オブジェクト・クラスを作成する。いくつかの実施形態では、指定値は、第1のオブジェクトパラメータから導出される。いくつかの実施形態では、サービスインスタンスは、仮想ネットワーク機能、物理ネットワーク機能、またはアプリケーションの少なくとも1つを含むターゲットインスタンスをさらに含む。いくつかの実施形態では、構成可能な(設定可能な)リソースは、サービス品質、レーティンググループ、料金プラン、およびパケットフィルタのうちの少なくとも1つを含む。いくつかの実施形態では、プロトコルは、表現状態転送(REST:representation state transfer)プロトコル、構造化照会言語(SQL)プロトコル、簡易オブジェクト・アクセス・プロトコル(SOAP)、セキュアファイル転送プロトコル/セキュア・シェル・プロトコル(SFTP/SSH)、簡易ネットワーク管理プロトコル(SNMP)、およびネットワーク構成プロトコル(NETCONF)のうちの少なくとも1つを含む。
【0009】
開示される主題の様々な目的、特徴、および利点は、以下の図面と併せて考察される場合、開示される主題の以下の詳細な説明を参照することにより、より十分に理解され得る。図面において、同様の参照番号は同様の要素を示している。
【図面の簡単な説明】
【0010】
図1】本開示のいくつかの実施形態に係る、サービス自動化プラットフォーム展開を示すシステム図である。
図2】本開示のいくつかの実施形態に係る、新しいモバイル仮想ネットワークオペレータ(MVNO)の自動オンボーディングを示すシステム図である。
図3】本開示のいくつかの実施形態に係る、レシピビルダおよびレシピトランザクタのシステム図である。
図4】本開示のいくつかの実施形態に係る、サービスインスタンス管理のオブジェクト関係図である。
図5】本開示のいくつかの実施形態に係る、サービス・レシピ・セクションおよびサブレシピセクションを含むレシピ・ビルダ・ユーザ・インタフェースを示すスクリーンショットである。
図6A】本開示のいくつかの実施形態に係る、ネイティブ・ターゲット・オブジェクト表現を含むレシピ・ビルダ・ユーザ・インタフェースを示すスクリーンショットである。
図6B】本開示のいくつかの実施形態に係る、ネイティブ・ターゲット・オブジェクト表現を含むレシピ・ビルダ・ユーザ・インタフェースを示すスクリーンショットである。
図6C】本開示のいくつかの実施形態に係る、コネクタタイプのターゲット・スキーマ・オブジェクトを設計するために使用されるレシピ・ビルダ・ユーザ・インタフェースの図である。
図6D】本開示のいくつかの実施形態に係る、修飾ターゲット・オブジェクト・クラスを設計するために使用されるレシピ・ビルダ・ユーザ・インタフェースの図である。
図7】本開示のいくつかの実施形態に係る、レシピ・トランザクタ・ユーザ・インタフェースを示すスクリーンショットである。
図8】本開示のいくつかの実施形態に係る、レシピビルダにおけるパラメータ合体を示す図である。
図9】本開示のいくつかの実施形態に係る、サービスインスタンスを作成する部分を自動化するために使用されるレシピの作成を示すフローチャートである。
【発明を実施するための形態】
【0011】
いくつかの実施形態では、電気通信アプリケーション構成を自動化するための技術が開示されている。本明細書で開示する技術は、様々な電気通信アプリケーションおよびデバイス用にカスタマイズされ得る再利用可能なレシピ、サブレシピ、およびターゲット・スキーマ・オブジェクト・クラスを可能にする。
【0012】
例えば、ネットワーク機能仮想化(NFV)は、新しい仮想ネットワーク機能(VNF)/仮想マシン(VM)を発見することだけではない。多くのVNFは、永続的であり、マルチテナント型である。多くのVNFでは、複雑な継続的構成の必要がある。
【0013】
例えば、サービス機能チェイニング(SFC)は、統合上の課題を増加させる可能性がある。SFCのVNFは、永続的であり、マルチテナント型である傾向がある。ポリシーの調整は、SFCによって完全には解決されない(例えば、VNFは、どのポリシーがサービス機能パス(SFP)IDに関連付けられているかを認識しない場合がある)。
【0014】
真のエンド・ツー・エンド・キャリア・サービスは、例えば、制御プレーン(例えば、MME、RADIUS、PCRF、OCS、OFCS、PEのルータ)および様々な内部アプリケーションにわたって、広範な協調構成を必要とする可能性がある。
【0015】
サービスモデリングは、時間(例えば、サービスおよびネットワーク内でサービスを実現する方法を定義するのに要する時間)がかかり過ぎる可能性があり、十分に自動化されない(例えば、対応するチェックリスト付きのWord文書として表現されるメタモデル指向プログラミング(MOP:Metamodel Oriented Programming))。
【0016】
データ駆動型の自動化手法は、かなり長い間、スクリプトの形で利用されてきた。あるレベルでは、スクリプトを使用して自動化を進めることは、スクリプト自体がデータを表すという点でデータ駆動型である。さらに、スクリプトは、「ファイア・アンド・フォゲット」であるため、スクリプトを実行した結果として得られる効果をステートフルに表現することができない。
【0017】
スクリプティングの手法は、従来の情報技術(IT)の設定で利用されているが、telcoアプリケーションのプロビジョニングにはほとんど利用されていない。典型的なtelcoアプリケーションとは異なり、典型的なITアプリケーションは、展開時に構成されることが多く、増分的に再構成する必要はほとんどない、または全くない。それに対して、telcoアプリケーションは、確実にネットワーク内の意図されたアーチファクトが期待どおりにプロビジョニングされるように、サービス構成の検証が必要である。
【0018】
telcoアプリケーション構成の自動化フレームワークへの統合を容易にする試みがなされてきたが、最終的には、新しいデバイス、サービス、または手順の統合を達成するためには、いずれも自動化プラットフォームの開発者によって書かれるコードが必要である。それに対して、本明細書に記載の手法は、データ駆動型であり、ソリューションのエンドユーザが必要な自動化手順をモデル化するのに必要な全てのデータを提供するエージェントレスな手法である。
【0019】
Telcoアプリケーションは、通常は、エージェントレス(エージェントが不要)である。エージェントベースの手法は、クライアント(例えば、アプリケーション)がサーバ(例えば、インストールすべきソフトウェアパッケージをサーバに要求するサーバまたは仮想マシン(VM)上で動作するエージェント)から必要な構成をプルすることを可能にする。それに対して、エージェントがなければ、中央「マネージャ」は、様々なクライアントにおいて全ての必要な構成をプッシュする必要がある。Telcoアプリケーションは、様々なベンダおよびアプリケーションのタイプ(例えば、ルータ、DNSサーバ、PCRF、PGWなど)のために、エージェントレスである傾向がある。これは、エージェントベースのターゲットを持つ同種の環境(例えば、ソフトウェアのインストールとアップグレードのためにLinux(登録商標)にエージェントをインストールする)とは対照的である。
【0020】
本明細書で説明するように、データ駆動型手法は、任意の新しいネットワーク機能またはアプリケーションの構成を管理するために必要な情報を提供するシステムのユーザを指すことができる。いくつかの実施形態で説明されているように、システムは、サポートされるネットワーク機能またはアプリケーションのリストを提供しない。代わりに、システムのユーザは、動的に前記アプリケーションの構成を直接可能にすることができる。上述したように、あらゆるタイプの構成をあらゆる関連ネットワーク機能およびアプリケーションにプルするためにユビキタス(例えば、どこにでも展開される)エージェントを展開することが実行不可能である電気通信のようなアプリケーションにおいて、エージェントレス手法を使用することができる。
【0021】
また、上記の問題からエンドユーザに負担をかけないために、いくつかの実施形態では、データ自動化言語を使用して、あらゆる自動化手順を記述することができる。いくつかの実施形態では、本明細書に記載のシステムおよび方法は、ターゲットエンティティのいくつかのセットに対するセキュアシェル(Secure Shell)/コマンド・ライン・インタフェース(Command Line Interfaces)(SSH/CLI)のようなサポートされているトランスポートを介して発生する一般化されたアクションシーケンスの表現を可能にする言語を作成するために拡張マークアップ言語(XML)を使用する。いくつかの実施形態では、この言語は、ターゲットエンティティのセット内の実行可能なバージョンの任意の範囲を処理するif/elseロジックをキャプチャするのにも十分な表現能力を有する。
【0022】
このような手法は、オブジェクト指向であり得、選択されたターゲット上のサポートされているネイティブ・オブジェクト・インスタンスの集合を含むことができる抽象サービスインスタンスのライフサイクル管理を可能にする。このようなサービスインスタンスは、作成、削除、修正、基礎となるターゲットとの同期チェック、基礎となるターゲットにおける同期化、ステータスのチェック、および統計のための収集が可能である。
【0023】
本明細書に記載の手法は、ネットワーク構成プロトコル(NETCONF)、簡易ネットワーク管理プロトコル(SNMP)、SSH/CLI、SSHファイル転送プロトコル(SFTP)、表現状態転送(REST)、および簡易オブジェクト・アクセス・プロトコル(SOAP)/XMLを含む所望のターゲットデバイスに対する任意の必要なトランスポートプロトコルをサポートすることができる。
【0024】
いくつかの実施形態では、サービスはレシピビルダ(本明細書ではvビルダとも呼ぶ)を使用して定義される。以下でより詳細に説明するように、レシピビルダにより、内容領域専門家(SME)はネットワーク・オペレータのレシピを構築することができる。いくつかの実施形態では、本明細書に記載のシステムは、コーディングの必要がなく、内蔵の製品特有のアダプタを持たないGUIベースのエンドユーザデバイスを提供する。いくつかの実施形態では、SMEによる再利用可能なモデル定義が使用される。以下でより詳細に説明するように、再利用可能なモデル定義の一例は、複数のレシピで使用されるサブレシピである。いくつかの実施形態では、本明細書に記載のシステムは、柔軟な引数処理および伝播を可能にし、任意のトランスポートコネクタ(例えば、NETCONF、REST、SOAP、SNMP、Java(登録商標)構造化照会言語(JSQL)、CLI/SSH)を介して任意のターゲットデバイスまたはアプリケーションをサポートするように修正され得る。いくつかの実施形態では、本明細書に記載のシステムは、マルチバージョン管理のターゲットをサポートする。
【0025】
いくつかの実施形態では、本明細書に記載のシステムは、レシピトランザクタ(本明細書ではレシピトランザクタとも呼ぶ)を使用してサービスインスタンス化を提供する。レシピトランザクタは、レシピビルダから完了したレシピをインポートすることができる。いくつかの実施形態では、サービスは、GUIを介して、またはプログラムによって(例えば、RESTを使用して)トリガされる。サービスは、作成/修正/削除、ステータス、統計、ユーザ定義アクションを含み得る。いくつかの実施形態では、本明細書に記載のシステムは、構成同期/チェック、ターゲット間の集約によるステータス、およびターゲット間の統計ロールアップのようなインスタンス化されたサービスインスタンスを追跡することができる。
【0026】
図1は、本開示のいくつかの実施形態に係る、サービス自動化プラットフォーム展開を示すシステム図である。図1は、オペレーションネットワーク102、企業ITネットワーク104、オペレータ用インタフェース106、内容領域専門家(SME)108用インタフェース、レシピビルダ(本明細書ではレシピビルダとも呼ぶ)110、レシピエグゼキュータ(本明細書ではレシピトランザクタとも呼ぶ)112、オペレーション・サポート・システム/ビジネス・サポート・システム(OSS/BSS)アプリケーション114、要素管理システム(EMS)116、ネットワーク要素(NE)118、NE120、仮想I/Oモジュール(VIM)122、NFV オーケストレータ/仮想ネットワーク機能マネージャ(NFVO/VNFM)124、およびアプリケーション126を示している。
【0027】
レシピビルダ110は、企業ネットワーク104内のツールとして展開され得る。いくつかの実施形態では、ターゲットユーザは、内容領域専門家(SME)108である。SME108は、RESTのようなウェブ・サービス・アーキテクチャを介してレシピビルダ110と通信することができる。レシピビルダ110は、レシピの繰り返しの呼び出しに適したモデルを構築する方法を指定する。以下でより詳細に説明するように、レシピビルダ110は、いくつかの実施形態では、オペレータ106がサービスインスタンスを作成、取得、更新、および削除することができるようにすることによって、オペレータが新しい顧客をどのようにオンボードさせることができるかをSME108が指定できるようにする。SME108は、レシピ(例えば、QoSポリシー、料金プラン)を構成するオブジェクト指向プログラム・ネイティブ・ターゲット・オブジェクト(本明細書では「ターゲット・スキーマ・オブジェクト・クラス」または「ターゲット・スキーマ・オブジェクト」とも呼ぶ)/修飾ターゲットオブジェクト(本明細書では「修飾ターゲット・オブジェクト・クラス」とも呼ぶ)を構築する。完全なサービスモデリング(例えば、作成/修正/削除、ステータス、統計、ユーザ定義アクション)が存在するように、レシピによってサービスを定義され得る。レシピは、機械可読スキーマを提供しないアプリケーションの「擬似スキーマ」を定義するために、SME108が構成オブジェクト・モデル・スキーマ(例えば、ルータ・ベンダXのさらに別の次世代(YANG:Yet Another Next Generation)モジュール)をインポートすること、およびレシピビルダのGUIとの直接対話を介するユーザのデータ入力によって構築され得るので、コーディングおよび製品固有のアダプタは本明細書に記載のシステムでは少なくとも一部は必要ない。この一例は、コマンド・ライン・インタフェース(CLI)のみで管理されるアプリケーションまたはネットワーク機能である。アプリケーションプロバイダは、CLIユーザガイドをPDFファイルで公開していることが多い(例えば、バッカス・ナウア記法(BNF:Backus−Noir−Form))のような機械可読フォーマットを公開することは可能であるが、シンタックスのみを提供し、セマンティクスは提供しない)。CLIドキュメントの例では、アプリケーションの「正式な」スキーマは事実上存在しない。
【0028】
オペレーションネットワーク102内に常駐するレシピトランザクタ112は、オペレータ106がレシピビルダ110から受信したレシピに基づいてサービスを提供することを可能にする。オペレータ106は、RESTのようなウェブ・サービス・アーキテクチャを介してレシピトランザクタと通信することができる。レシピトランザクタ112は、サービスインスタンスのライフサイクル管理(例えば、作成、取得、更新、削除)をサポートするために、モデルを利用する。さらに、レシピトランザクタ112は、サポートされているコネクタまたはプロトコルのセットを介して、全ての他のコンポーネント(例えば、OSS/BSSアプリケーション114、要素管理システム(EMS)116、ネットワーク要素(NE)120、仮想I/Oモジュール(VIM)122、NFV オーケストレータ(NFVO)/仮想ネットワーク機能マネージャ(VNFM)124、およびアプリケーション126)と通信することができる。モデルは、サービスインスタンス化に関連するプロトコルまたはデバイスの先験的知識の少なくとも1つ、およびレシピによって検出されたプロトコルおよびデバイスタイプから作成され得る。オペレータ106は、以下でより詳細に説明するように、特定のターゲットインスタンスにとって特有の情報をレシピに提供することによって、レシピトランザクタ112を介してサービスをインスタンス化することができる。レシピトランザクタ112は、サービスをインスタンス化するために、OSS/BSSアプリケーション114、要素管理システム(EMS)116、ネットワーク要素(NE)120、仮想I/Oモジュール(VIM)122、NFV オーケストレータ(NFVO)/仮想ネットワーク機能マネージャ(VNFM))124、およびアプリケーション126に対してパラメータを指定することができる。レシピトランザクタ112は、サービスをインスタンス化するために、要素管理システム(EMS)116、ネットワーク要素(NE)120、仮想インフラストラクチャマネージャ(VIM)122、NFV オーケストレータ(NFVO)/仮想ネットワーク機能マネージャ(VNFM)124、およびアプリケーション126を構成するための命令をさらに用いて、OSS/BSSアプリケーション114に対するパラメータを指定することもできる。レシピトランザクタ116は、本明細書に記載のシステムでサポートされているプロトコル/コネクタ(例えば、REST、SOAP、およびNETCONFのうちの少なくとも1つ)を介して、他のオペレーションネットワーク要素と通信することができる。
【0029】
OSS/BSSアプリケーション114は、エンド・ツー・エンド電気通信サービスを管理し、サポートするために使用され得る。OSSは、サービスプロビジョニングのような管理機能を含む。BSSは、電気通信サービスプロバイダのための事業運営を管理するコンポーネントを含む。EMS116は、電気通信ネットワーク内のネットワーク要素120を管理する。NFVO/VNFM124は、NFVリソースを管理し、オーケストレートする。VNFMは、VNFのライフサイクルを管理する。アプリケーション126は、電気通信アプリケーションを指す。
【0030】
上述したように、レシピビルダ110は、データ駆動型である。オンボーディングプロセスを自動化するために、SME108は、1つまたは複数のターゲット・スキーマ・オブジェクト(本明細書では「ターゲット・スキーマ・オブジェクト・クラス」とも呼ぶ)と、1つまたは複数の修飾ターゲットオブジェクト(本明細書では「修飾ターゲット・オブジェクト・クラス」とも呼ぶ))との組み合わせを使用して、オペレータ106によって指定されるべき各コンポーネントの構成パラメータを制限することができる。以下でより詳細に説明するように、SME108は、単一のサブレシピ内にターゲット・スキーマ・オブジェクト・クラスの組み合わせを含むことができ、さらにターゲット・スキーマ・オブジェクト・クラス間の関係を指定することができる。レシピトランザクタ112は、製品を構成するプロトコルをサポートし、そのことによって製品自体を構成する。レシピは、各プロトコルに必要なパラメータの少なくともいくつかを指定することができる。いくつかの実施形態では、SMEは、そうでなければターゲットの視点からすれば柔軟性のある特定の属性をハードコーディングすることによってモデルを簡略化し、および/またはターゲット自身の制約よりも限定的な制約を指定することができる。いくつかの実施形態では、最終的に全ての制約を満たす実際の値は、オペレーション(例えば、作成、更新など)の実行中にトランザクタによって処理される。
【0031】
例えば、顧客をオンボードさせるために、SME108は、新規顧客をオンボードさせる方法を定義するレシピを構成することができる。SME108によって構成されたレシピにより、オペレータは、インスタンス化のためにライフサイクルを作成、取得、更新、および削除(本明細書ではCRUDセマンティクスとも呼ぶ)することができる。サービスインスタンス化の1つの例は、無線キャリアが巨大な顧客(例えば、AT&T(登録商標)がオンボードしているFedEx(登録商標))を直接オンボードさせる場合、または無線キャリアが子会社の顧客(例えば、AT&T(登録商標)がオンボードしているCricket Wirelessのようなモバイル仮想ネットワーク・オペレータ(MVNO))をオンボードさせる場合である。いくつかの実施形態では、図2を用いて以下でより詳細に説明するように、顧客のオンボーディングは、複数の接点の構成を必要とする。
【0032】
図2は、本開示のいくつかの実施形態に係る、新規MVNOの自動オンボーディングを示すシステム図である。図2は、レシピトランザクタ112、ネットワーク機能仮想化インフラストラクチャ(NFVI)202、OSS114、NFVO/VNFM124、Gi LANサービス208、パケット・データ・ネットワーク・ゲートウェイ(PGW)210、モビリティ管理エンティティ(MME)212、ドメイン・ネーム・サーバ(DNS)214、オフライン課金システム(OFCS)216、オンライン課金システム(OCS)218、ホーム加入者サーバ/ホーム・ロケーション・レジスタ(HSS/HLR)220、ポリシーおよび課金ルール機能(PCRF)222、認証、認可、アカウンティング(AAA)サーバ224、プロバイダエッジ(PE)ルータ226、ノースバウンド・アプリケーション・プログラミング・インタフェース(API)レンダラ228、レシピ・トランザクタ・エンジン112、認可マネージャ232、表現状態転送(REST)プロトコル234、構造化照会言語(SQL)プロトコル236、簡易オブジェクト・アクセス・プロトコル(SOAP)238、セキュアファイル転送プロトコル/セキュア・シェル・プロトコル(SFTP/SSH)240、簡易ネットワーク管理プロトコル(SNMP)242、ネットワーク構成プロトコル(NETCONF)244を示している。
【0033】
NFVI202は、VNFが利用できるコンピューティング、ストレージ、およびネットワーキングのリソースの集合である。いくつかの実施形態では、本明細書に記載のシステムを使用して、仮想ネットワーク機能、物理ネットワーク機能、または仮想ネットワーク機能と物理ネットワーク機能の両方の組み合わせを管理することができる。図2に示すように、サービスをインスタンス化するには、多様なネットワーク要素を構成する必要がある。例えば、PEルータ226を構成することは、ボーダ・ゲートウェイ・プロトコル(BGP)仮想ルーティング機能(VRF)およびマルチプロトコル・ラベル・スイッチング(MPLS)BGP/MPLS VRFの各々の少なくとも1つまたは複数のインスタンスを構成することを含むことができ、AAAサーバ224、PCRF222、およびHSS/HLR220を構成することは、アクセスポイント名(APN)ポリシーマッピングおよび国際移動体加入者識別(IMSI)ポリシーマッピングのうちの少なくとも1つを構成することを含むことができ、OCS218およびOFCS216を構成することは、APNからMVNOへのマッピングを構成することを含むことができ、DNS214を構成することは、APNおよびPGW C−nameレコードを構成することを含むことができ、MME212を構成することは、APNオペレータポリシーおよびPGW選択ポリシーを構成することを含むことができ、Gi LANサービス208を構成することは、PGW、APN、ユーザ機器(UE)プール、BGP/MPLS VRF、ワークフロー制御、およびデータプロファイルを構成することを含むことができる。Giは、GGSN/PGWからインターネットへのインタフェースである。いくつかの実施形態では、GGSN/PGWとインターネットとの間に様々な付加価値サービスが挿入される。これらのエンティティは、GiLANまたはGi LANと呼ばれる。例えば、GiLANサービス208は、ハイパーテキスト転送プロトコル(HTTP)プロキシ、伝送制御プロトコル(TCP)プロキシ、HTTPコンテンツフィルタリング、ネットワークアドレス変換(NAT)、またはファイアウォールに対するポリシーおよび挙動の構成を含むことができる。上述したように、ノースバウンドAPIレンダラ228を介するオペレータ106は、レシピトランザクタ112を介してレシピを実行して、サポートされているプロトコル(例えば、REST 234、SQL236、SOAP 238、SFTP/SSH 240、SNMP 242、NETCONF244)を介してサービスインスタンスを作成、取得、更新、または削除するために、ネットワーク要素を構成することができる。それに対して、従来技術の技術では、(1)それぞれの新規サービスインスタンス化のための手動プログラミング、または(2)IT部門によって高コストで設計されたサービスのほんのわずかのサブセットのみをサポートする柔軟性のないシステム、もしくは以前の構成を継続的に検証するために不適切な状態を保持するスクリプティング手法のいずれかが必要であった。以下でより詳細に説明するように、新規顧客のオンボーディングプロセスは、SMEが入力する情報、つまり、(1)レシピを含む第1の層、(2)サブレシピを含む第2の層、(3)(a)ターゲットによってネイティブに見られるターゲット・スキーマ・オブジェクト・クラス(本明細書では「ターゲット・スキーマ・オブジェクト」とも呼ぶ)および(b)SMEによって注釈付けされたターゲット・スキーマ・オブジェクト・クラス(本明細書では「修飾ターゲットオブジェクト」とも呼ぶ)を含む第3の層によって、本明細書に記載のシステムおよび方法を使用して自動化される。動詞(例えば、CRUD)は、全ての層の挙動のアスペクトである。
【0034】
いくつかの実施形態では、第3の層では、2段階のモデリング手法がある。まず、リソースのターゲットのネイティブ表現(例えば、オブジェクト)をインポートまたは定義し、次に、より厳しい制約を指定するために、そのネイティブ表現を修飾または注釈付けし、特定の属性のハードコーディングを介したデータ隠蔽、または複数の属性の合体(例えば、結合)を介した簡略化を実行する。CRUD動詞の各々に関連するモデルのアスペクトは、モデルのファセット(レシピ、サブレシピ、ターゲット・スキーマ・オブジェクト・クラス、修飾ターゲット・オブジェクト・クラス)と呼ぶことができ、全ては作成ファセット、更新ファセットなどを有し、モデルの動詞固有のアスペクトを表現する。いくつかの実施形態では、動詞固有ではないリソースまたはオブジェクトモデルの1つのアスペクトは、リソースのインスタンスを一意的に識別するキー属性である。これらの属性は、動詞を実行するために完全に指定されている。
【0035】
本開示のいくつかの実施形態で説明されているように、ターゲット・スキーマ・オブジェクトとは、ネイティブアプリケーションによってオブジェクトに与えられた精度および柔軟性の表現である(例えば、CLIガイドを読めば、静的ルートオブジェクトが、例えば、そのインスタンスを一意に識別する特定の方法を有すること、特定の必須属性、特定の任意の属性を有すること、および属性にはタイプと場合によっては制約があることがわかる。)ターゲット・スキーマ・オブジェクトが確立されると(例えば、SMEによってインポートされると)、追加の制約、データ隠蔽、および複数の属性に常に同一の値が提供されるように属性を合体させるような他のオペレーションの形態で、さらなる詳細化が可能になる。例えば、IP v4アドレスのみを使用するように制限することによって、静的ルート・ターゲット・スキーマ・オブジェクト・クラスに基づいて修飾ターゲット・オブジェクト・クラスを作成することができる。同じターゲット・スキーマ・オブジェクト・クラスに基づく異なる修飾ターゲット・オブジェクト・クラスでは、IP v6アドレスのみを許可するという制限がある場合がある。
【0036】
認可マネージャ232は、本明細書に記載のシステムのいくつかの実施形態において、いくつかの第2の機能を可能にする。作成されたサービスインスタンスは、オペレータのサブセットのみがさらにそれに作用する(更新、削除するなど)ことができるように指定され得る。例えば、Cricket MVNOおよびJasper MVNOは、SMEによって設計されたMVNOモデルまたはレシピに基づいて、トランザクタによって作成され得る。Cricket MVNOのみを修正し得るオペレータの1つのチームと、Jasper MVNOのみを修正し得る異なるチームとが存在し得る。
【0037】
図3は、本開示のいくつかの実施形態に係る、レシピビルダおよびレシピトランザクタのシステム図である。図3は、サービスデータベース310、レシピデータベース312、エンド・ツー・エンド(E2E)テストレシピ316、サービスレシピ318、エミュレートされたテストターゲット320、ウェブサービス定義言語(WSDL)322、XMLスキーマ定義(XSD)324、さらに別の次世代構成オブジェクトモデリング言語(YANG)326、管理情報ベース(MIBS)328、物理/仮想ネットワーク機能(P/VNF)330 332 340 342、NFVO/NF/アプリケーション334、P/VNF/アプリケーション336、およびリモートデータベース344を示している。
【0038】
サービスデータベース310は、レシピトランザクタ112によってインスタンス化されたサービスのレコードを含む。以下でより詳細に説明するように、サービスのレコードは、サービスインスタンス、ターゲットタイプ、およびターゲットインスタンスを含むことができる。レシピデータベース312は、レシピビルダ110を介してSME108によって作成されたレシピ、サブレシピ、ターゲット・スキーマ・オブジェクト、および修飾ターゲット・オブジェクト・クラスのレコードを含む。
【0039】
エミュレートされたテストターゲット320により、SMEは、テスト、デバッグ、および修正のためにシミュレートされた環境でレシピを実行することができる。エミュレートされたテストターゲット320は、要求/応答の対に関してPCRFのようなターゲットのSMEによって定義され得るエミュレーションを指す。このことにより、トランザクタにおける展開の前でも、PCRFを対象とするサブレシピの第1のレベルのテストが可能になる。
【0040】
レシピビルダ110は、2種類のレシピ、すなわち、E2Eテストレシピ316およびサービスレシピ318を作成することができる。E2Eテストレシピ316は、レシピを介して作成されたサービスインスタンスの挙動を検証することができる。E2Eテストレシピ316は、構成が正しく、最新であることをテストするだけでなく、様々なルータ間リンクの物理リンクステータスなどの動作条件によって影響を受け得る真のエンド・ツー・エンド挙動をテストすることもできる。例えば、サービスインスタンスの通常のCRUDライフサイクル管理の代わりに、本明細書に記載のシステムおよび方法を使用して、サービス検証に使用され得るアクティブテストの起動をモデル化し、アクティブテストの結果を収集して解釈することができる。例えば、キャリアが所有するテストUEを展開して、MVNOに接続してからキャリア所有のサーバからファイルを取得することができる。テストUEは、テストを実施するためにトリガされ、テストUEに対して、このテストの結果についてクエリが行われ得る。この例では、実際のサービスインスタンスは作成されず、ステートレスアクションである。本明細書でより詳細に説明するように、サービスレシピ318は、サービスをインスタンス化するためにオペレータ106によって使用されるようにSMEによって設計され得る。
【0041】
レシピは、SOAP/XMLを介して管理されるアプリケーションと通信し、対応するWebサービス定義言語(WSDL)322、さらに別の次世代(YANG)326、および/または管理情報ベース(MIBS)328を公開するように設計され得る。WSDL322は、メッセージを交換することができるネットワークエンドポイントの集合としてサービスを定義するXMLフォーマットである。YANG326は、モジュール型であるNETCONF用の言語であり、XMLツリー形式のデータ構造を表す。MIBS328により、ネットワーク管理システムはデータベースオブジェクトを監視することができる。
【0042】
上述したように、レシピトランザクタ112は、任意の数のプロトコル(例えば、表現状態転送(REST)プロトコル234、構造化照会言語(SQL)プロトコル236、簡易オブジェクト・アクセス・プロトコル(SOAP)238、セキュアファイル転送プロトコル/セキュア・シェル・プロトコル(SFTP/SSH)240、簡易ネットワーク管理プロトコル(SNMP)242、ネットワーク構成プロトコル(NETCONF)244)を利用することができるレシピを受信することができる。各々のプロトコルは、P/VNF 330 332 340 342、NFVO/NF/アプリケーション334、P/VNF/アプリケーション336、およびリモートデータベース344の構成に関連付けられ、これらの構成を指定するのに使用され得る。例えば、NETCONFは、YANG可能ルータ(例えば、Juniperルータ、Ciscoルータ)と共に使用され得る。以下でより詳細に説明するように、YANGファイルは、アプリケーションプロバイダ(例えば、「エンタープライズ」YANGモデル)によって公開され、および/または標準化され(例えば、リクエスト・フォー・コメンツ(RFC)の形式でインターネット技術タスクフォース(IETF)によってリリースされ)、それをレシピビルダ110のワークスペースにドラッグして、ワークフロー(例えば、QoSフロー)を指定することができる。他のプロトコルは、REST、SOAP、およびコマンド・ライン・インタフェース(CLI)を含む。NETCONFプロトコルは、一般に、YANGスキーマとペアになっており、SNMPプロトコルは、一般的に、MIBスキーマとペアになっており、SOAP/XMLプロトコルは、一般に、WSDLスキーマとペアになっており、RESTプロトコルおよびCLIプロトコルは、一般に、フォーマルスキーマを有さない。
【0043】
図4は、本開示のいくつかの実施形態に係る、サービスインスタンス管理のオブジェクト関係図である。図4は、レシピビルダ110に関連付けられたレシピ402、サブレシピ404、およびターゲット・スキーマ・オブジェクト・クラス406と、レシピトランザクタ112に関連付けられたサービスインスタンス410、ターゲットタイプ412、およびターゲットインスタンス414を示している。
【0044】
図4に示すように、ラインより上の要素は、レシピビルダ110の観点から見た本明細書に記載のシステムおよび方法のいくつかの実施形態(例えば、サービスモデル)を示し、ラインより下の要素は、レシピトランザクタ112の観点から見た本明細書に記載のシステムおよび方法のいくつかの実施形態(例えば、サービスインスタンスを作成するためにモデルを実行した結果)を示している。特に、どのターゲットインスタンス(例えば、どのPEルータインスタンスおよびどのネイティブ・オブジェクトまたはリソース(関連する全ての値を含む))が関与しているかに関してネットワークに構成されたアーチファクトがそれらのターゲットインスタンス(すなわち、VRF、MP−BGPピアリングセッションなど)上に作成されている。レシピビルダ110の観点から見て、レシピ402、サブレシピ404、およびターゲット・スキーマ・オブジェクト・クラス406が作成され、レシピトランザクタ112上に展開されるようにリンクされる。最初に、レシピ402に関連付けられた(例えば、MVNOを用いて)作成コマンドが発行されて、サービスインスタンス410が作成される。複数のサービスインスタンス410は、レシピ1 402によって表されるサービスモデルに基づいて作成された各々のサービスインスタンスを表す。同じレシピ402を使用して、異なる顧客に対して異なるサービスインスタンスをプロビジョニングすることができる。サービスインスタンスは、レシピ(例えば、作成コマンド)を実行することによって作成され得る。いくつかの実施形態では、レシピトランザクタ110は、サービスインスタンスの階層、およびターゲットオブジェクト414(サービスインスタンスのフットプリントとも呼ぶ)を追跡するためのMySQLデータベースを有する。
【0045】
レシピ402は、複数のサブレシピ404を含むことができる。いくつかの実施形態では、各々のサブレシピ404は、1つまたは複数のターゲットタイプ412に関連付けられる。いくつかの実施形態では、ターゲットタイプ412は、デバイスタイプ(例えば、ルータ)を含む。サブレシピ404は、同じターゲットタイプおよび同じコネクタタイプによって制約される複数のターゲット・スキーマ・オブジェクト・クラス406を含むことができる。ターゲット・スキーマ・オブジェクト・クラス406は、サービスインスタンス化を作成するために構成されなければならないオブジェクト(例えば、VNF、PNF、アプリケーション)を含む。例えば、ターゲット・スキーマ・オブジェクト・クラス406は、CRUDセマンティクス(例えば、作成、取得、更新、および削除)を含む。
【0046】
上述したように、図1を参照すると、サービスをインスタンス化するためにオペレータ106によって実行される手動構成の量を最小限に抑えるために、レシピはSME108によって作成され得る。いくつかの実施形態では、レシピは、SME108がオペレータ106による重要な構成の必要性を排除することによって、ハードコーディングされ得る。いくつかの実施形態では、レシピは、オペレータ106からの入力を受け取るためのオープンフィールドを有することができる。例えば、レシピは、VRFごとに一意のルート識別子の整数値を指定するオープンフィールドを残すことができる。レシピは、オペレータ106が提供するために必要な引数としてこの値を公開することができる。いくつかの実施形態では、レシピは、フィールドがデバイス構成に基づいて入力されるように、論理入力(例えば、if/else)を含むオープンフィールドを含むことができる。
【0047】
サービスインスタンス410の1つの実装は、サービスインスタンス410が定義されるレシピ402に関連付けられたサブレシピ404によって指定される1つまたは複数のターゲットタイプ412を含む。いくつかの実施形態では、ターゲットタイプ412は、1つまたは複数のターゲットインスタンス414を含む。ターゲットインスタンス414は、仮想ネットワーク機能(VNF)、物理ネットワーク機能(PNF)、または実際に存在するアプリケーション(例えば、Juniperルータ、Ciscoルータ)であり、ターゲットインスタンス414と通信することができるアプリケーションのインスタンスである。各々のターゲットインスタンス414は、上述したように、サービスインスタンスのデータベース、関連するフットプリントおよびアーチファクトに関連付けられる。いくつかの実施形態では、実行時に、レシピトランザクタ112は、オペレータ106に、いくつかのインスタンスを指定するように求めることができる。いくつかの実施形態では、多くのサービスインスタンスの各々に対する全てのパラメータは、トランザクタが消費することができるフォーマット(例えば、スプレッドシート)で指定され得る。
【0048】
図5は、本開示のいくつかの実施形態に係る、サービス・レシピ・セクションおよびサブレシピセクションを含むレシピ・ビルダ・ユーザ・インタフェースを示すスクリーンショットである。図5は、レシピ・ビルダ・ユーザ・インタフェース500、料金プラン502、レーティンググループ508、サービスルール510、パケットフィルタ512、レシピセクション522、サブレシピセクション524、およびサブレシピ・リスト・セクション526を示している。
【0049】
レシピ・ビルダ・ユーザ・インタフェース500は、レシピセクション522、サブレシピセクション524、およびサブレシピ・リスト・セクション526を含む。レシピセクション522は、レシピ名を受信または設定するためのフィールドを含む。レシピセクション522はさらに、レシピに関連付けられたサブレシピを含む。上述したように、サブレシピの各々は、ターゲット・スキーマ・オブジェクトおよび修飾ターゲット・オブジェクト・クラスのうちの少なくとも1つを含むことができる。
【0050】
サブレシピセクション524は、サブレシピ名を受信または設定するためのフィールド530、デバイス・タイプ・フィールド532、APIプロトコルフィールド534、タグ536、記述フィールド538、およびサブレシピフィールド540を使用するレシピを含む。例えば、図5に示すように、サブレシピ名530は、モバイル・コンテンツ・クラウド(MCC)であり、デバイスタイプは、モバイル・コンテンツ・クラウド・デバイス532であり、APIプロトコルは、YANGプロトコル534であり得る。タグ536は、MCCサブレシピに関連付けられたキーワードを含む。このサブレシピフィールド540を使用するレシピは、ポリシーおよび課金制御(PCC)ルールを含み、レシピ名フィールドで指定されたレシピである。いくつかの実施形態では、サブレシピは、2つ以上のレシピに関連付けられ得る。いくつかの実施形態では、このサブレシピフィールド540を使用するレシピは、複数のレシピ名を含むことができる。サブレシピ524はさらに、オブジェクト間の関係の仕様(例えば、親/子またはオブジェクト間の階層関係)を含むウィンドウ550を含む。SME108は、オブジェクトおよびそのオブジェクトが相互接続される方法を選択することができる。例えば、レーティンググループ508は、料金プラン502の子であり得る。料金プラン502は、レーティンググループ508との1つまたは複数の関連付けを有することができる。レーティンググループ508は、サービスルール510に関連付けられ得、サービスルール510は、パケットフィルタ512にさらに関連付けられ得る。いくつかの実施形態では、あるオブジェクトを他のオブジェクトに接続する矢印上にマウスオーバーすると、2つのオブジェクト間の関係を示すことができる。いくつかの実施形態では、レシピは、どのターゲット・スキーマ・オブジェクト・クラスが合体されるか、または結合されるかを指定する。例えば、ターゲット・スキーマ・オブジェクト・クラスは、親子関係の存在に基づいて合体され得る。修飾ターゲット・オブジェクト・クラスおよび合体ターゲット・スキーマ・オブジェクト・クラスにより、さらにデータ隠蔽を行うことができる。
【0051】
サブレシピ・リスト・セクション526は、レシピビルダ110を使用してSME108によって作成された、またはSME108が利用可能なサブレシピをリストアップする。サブレシピは、モバイルネットワーク要素タイプまたは構造(例えば、PCRF、PGW、モバイルDNS)によってグループ化され得る。上述したように、説明するシステムのいくつかの実施形態は、ターゲットタイプの先験的知識を有さないが、システムはコネクタタイプの先験的知識を有することができる。上述したように、SME108は、レシピビルダ内にターゲットタイプを作成する。SMEがYANG、WSDL、または他のスキーマを利用できる場合、SMEは前記スキーマをインポートし、それらをターゲットタイプに関連付ける。スキーマタイプは、コネクタタイプを意味する(例えば、WSDLは、SOAP/XMLを意味する)。
【0052】
図6A図6Bは、本開示のいくつかの実施形態に係る、ネイティブ・ターゲット・スキーマ・オブジェクト・クラス表現(例えば、YANGのような公開構成オブジェクトスキーマから抽出されるか、またはシステムのユーザによって動的に作成された)を示すスクリーンショットである。図6A図6Bは、併せて、ターゲット・オブジェクト・セクション602、アクティビティタブ620、アクティビティタブ622内のフィールド、およびターゲット・オブジェクト・リスト・セクション630を示している。
【0053】
ターゲット・オブジェクト・セクション602は、レシピ・ビルダ・ユーザ・インタフェース500内に含まれる。ターゲット・オブジェクト・セクション602は、ターゲット・スキーマ・オブジェクト・クラス名604、ターゲット・スキーマ・オブジェクト・クラス・APIプロトコル606、ターゲット・スキーマ・オブジェクト・クラス・デバイス・タイプ608、ターゲット・スキーマ・オブジェクト・クラス記述610、および/またはターゲット・スキーマ・オブジェクト・クラス・タグ612のためのフィールドなどのいくつかのパラメータを含む。図6Aにおいて、ターゲット・スキーマ・オブジェクト・クラス名は、サービス品質(QoS)フローである。QoSフローは、APIプロトコルYANGを使用するMCCデバイスである。図6Bにおいて、ターゲット・スキーマ・オブジェクト・クラス名はパケットフィルタである。パケットフィルタは、APIプロトコルYANGを使用するMCCオブジェクトタイプである。いくつかの実施形態では、フィールドの少なくとも1つは構成可能である。
【0054】
ターゲット・オブジェクト・セクション602はさらに、ファセットタブ620を含む。ファセットタブ620は、作成/修正タブ、削除タブ、構成同期タブ、監視タブ、統計タブ、およびアクションタブを含むことができる。作成/修正タブにより、SME108はターゲット・スキーマ・オブジェクト・クラスを作成または修正することができる。削除タブにより、SME108はインスタンスを削除することができる。監視タブにより、SME108はインスタンスのステータスを判定することができる。構成同期タブは、インスタンスの永続的データに関連している。統計タブは、ターゲットのネイティブ・オブジェクトの統計関連の属性(例えば、パケット、バイトなど)を示している。統計タブでは、SMEは、使用可能なフィールドがあれば、どのフィールドが対象であるかを示すことができる(例えば、このターゲット・スキーマ・オブジェクト・クラスを利用するレシピに基づいて構築された任意のサービスインスタンスに対して収集され得る)。アクションタブは、非CRUDファセット、または永続的データストアに影響を与えないファセット(例えば、リブート、ウイルススキャン中のファイルのフェッチ)を指す。
【0055】
例えば、図6Aに示すように、QoSフロー・ターゲット・スキーマ・オブジェクト・クラスが修正されている。いくつかの実施形態では、既に作成されているオブジェクトは、ターゲット・オブジェクト・リスト・セクション630にリストアップされる。SMEは、アクティビティタブ内のどのフィールド622がハードコーディングされるか、どのフィールド622がレシピトランザクタによって指定される必要があるかを指定することができる。いくつかの実施形態では、レシピトランザクタによって指定されるべきフィールドは、インジケータでマークされる(例えば、赤のアスタリスクでマークされる)。
【0056】
ターゲット・オブジェクト・リスト・セクション630は、レシピビルダ110を使用してSME108によって作成された、またはSME108が利用可能なターゲット・スキーマ・オブジェクト・クラスをリストアップする。ターゲット・スキーマ・オブジェクト・クラスは、最初に、ターゲットタイプ(例えば、MCC)ごとに配置され、次いで、ターゲットタイプ内のコネクタタイプ(例えば、NetConf/Yang、SSH/CLI、SFTP/CLI)ごとに配置され得る。
【0057】
図6Cは、本開示のいくつかの実施形態に係る、ターゲット・スキーマ・オブジェクトを設計するために使用されるレシピ・ビルダ・ユーザ・インタフェースの表示である。ターゲット・スキーマ・オブジェクトは、ネイティブスキーマが関連付けられていない(例えば、NETCONFコネクタに関連付けられたYANGスキーマの利用可能性とは対照的に)CLIのようなコネクタタイプに使用され得る。このインタフェースでは、SMEは、パラメータ(変数)の存在を宣言して、それらをオブジェクトのライフサイクル管理(すなわち、作成、取得、更新、削除)に必要な特定のコマンド(例えば、CLI文字列)にマッピングすることによって、オブジェクト表現を設計することができる。
【0058】
図6Dは、本開示のいくつかの実施形態に係る、修飾ターゲット・オブジェクト・クラスを設計するために使用されるレシピ・ビルダ・ユーザ・インタフェースの表示である。いくつかの実施形態では、修飾ターゲット・オブジェクト・クラスは、最初にターゲット・スキーマ・オブジェクトを選択することによって設計される。この手法により、同じ「ベース」ターゲット・スキーマ・オブジェクトに基づく複数の修飾ターゲット・オブジェクト・クラスを特化することができる。使用可能な修飾は、パラメータを特定の値にハードコーディングし、任意のパラメータを必須パラメータにして、パラメータの数値範囲を「ベース」ターゲット・スキーマ・オブジェクトが許容するよりも厳しくなるように制限する機能を含む。
【0059】
図7は、本開示のいくつかの実施形態に係る、レシピ・トランザクタ・ページを示すスクリーンショットである。図7は、レシピ・トランザクタ・ページ700、レシピタイトル702、レシピの記述704、サービスインスタンス名706、ステートフルトラッキング708、MCC710、レシピおよびインスタンスのリスト720を示している。
【0060】
レシピ・トランザクタ・ページ700から、オペレータはレシピを実行または起動することができる。レシピ実行ページは、レシピを記述するレシピタイトル(例えば、ポリシーおよび課金制御(PCC)ルールを作成する)を含む。レシピの記述704は、レシピをサービスインスタンスに関連付ける。さらに、サービスインスタンス名は、サービスインスタンス名フィールド706内に指定され得る。レシピ・トランザクタ・ページ700はさらに、ステートフルトラッキング708を含む。オペレータは、構成同期が実行される間隔、または統計が収集される間隔を指定することができる。レシピ・トランザクタ・ページ700はさらに、いくつかの実施形態では、選択されるデバイス、利用可能なデバイス、および他のモバイル・コンテンツ・クラウド・パラメータ(例えば、APN名、QoSフロー名、最大アップリンクならびにダウンリンクレート、およびパケットフィルタ名)をリストアップするMCC710を含むこともできる。上述したように、トランザクタページ700上のフィールドの多くは、SME108によって設計されたレシピの一部として指定される。レシピおよびインスタンスのリスト720は、実行準備が整った、またはオペレータによって実行されたレシピ、およびオペレータによって作成されたインスタンスを示す。
【0061】
図8は、本開示のいくつかの実施形態に係る、レシピビルダにおけるパラメータ合体を示す図である。図8は、パラメータ合体802、修飾ターゲット・オブジェクト・クラス804、修飾ターゲットオブジェクトにおけるパラメータ合体806、サブレシピ808、サブレシピにおけるパラメータ合体810、レシピ(recipe)814、およびレシピ(方策)におけるパラメータ合体812を示している。図8はさらに、値を入力するのに必要とされるレシピレベルの少数のパラメータをバブルアップするために、SMEがデバイス間で異なるターゲット・スキーマ・オブジェクト・クラスのパラメータを修飾する方法を示している。
【0062】
パラメータ合体802は、同様のパラメータをグループ化し、起点またはサービスオペレータから1つの値を受け取るためのメカニズムである。例えば、PGWおよびPCRFデバイス間でサービスルールが構成され得、サービスルール名は両方のデバイスタイプで同じになるように維持され得る。サービス名がデバイスタイプごとに手動で2回入力された場合、長い名前でタイプミスが発生すると、2つのデバイスタイプ間の構成が一致しなくなる可能性がある。パラメータ合体メカニズムを使用すると、デバイス間で同様のパラメータが同じ値を持つことができ、サービスオペレータは全てのデバイスに対して1つの値のみを入力することができる。さらに、パラメータ合体802は、レシピレベルで必要とされるパラメータの数を減らすのに役立つ。図8に示すように、修飾ターゲット・オブジェクト・クラス804およびサブレシピ808からパラメータの数がバブルアップされても、レシピレベルで2つのパラメータのみが修飾され公開される。これは、レシピトランザクタ116内のサービスオペレータが、このレシピを使用してサービスインスタンスを作成するために、この例では、2つのパラメータのみの値を提供することが期待されることを意味する。
【0063】
パラメータ合体802は、修飾ターゲット・オブジェクト・クラス804レベル、サブレシピ808レベル、またはレシピ814レベルの全てのレベルで機能する。各レベルで、同様のパラメータが合体され得る。修飾ターゲット・オブジェクト・クラス804では、806に示すように、ターゲットオブジェクト11でデータメンバ1とデータメンバ2が合体データメンバ1(CDM)としてグループ化される。同様に、合体は、ターゲットオブジェクト2でも行われるが、ターゲットオブジェクト21では行われない。パラメータがサブレシピ808でバブルアップされると、サブレシピレベルで合体が行われる。810に示すように、合体は、ターゲットオブジェクト11からのCDM(合体データメンバ)と、ターゲットオブジェクト12からの別のCDMとによって行われる。CDMは、任意の他のパラメータまたはデータメンバと同様である。CDMは、セット内の全てのパラメータに適用可能な属性を取得する。例えば、CDMの1つのメンバのタイプがint32であり、別のメンバのタイプがint64である場合、CDMはセット内の全てのパラメータに適用できるようにタイプをint32として受け取る。パラメータがレシピ814までバブルアップされると、812に示すように、同様のパラメータがレシピレベルで合体され得る。
【0064】
図9は、本開示のいくつかの実施形態に係る、サービスインスタンスを作成する部分を自動化するために使用されるレシピの作成を示すフローチャートである。
【0065】
ステップ902を参照すると、レシピビルダは、ターゲット・スキーマ・オブジェクト・クラスを作成する要求に関連付けられたデータを受信する。いくつかの実施形態では、ターゲット・スキーマ・オブジェクトは、接続デバイスタイプカテゴリに関連付けられる。接続デバイスタイプカテゴリは、モバイルネットワーク内に存在する(または存在する可能性がある)管理デバイスおよび関連プロトコルを示すことができる。接続デバイスタイプカテゴリは、ターゲット・スキーマ・オブジェクト・クラスを作成する要求を受信する前に、受信されて作成され得る。
【0066】
いくつかの実施形態では、ターゲット・スキーマ・オブジェクト・クラスを作成する要求はさらに、ターゲット・スキーマ・オブジェクト・クラスに関連付けられた第1のオブジェクトパラメータを含む。いくつかの実施形態では、第1のオブジェクトパラメータは、管理デバイスに関連付けられたデバイスタイプおよびプロトコルのうちの少なくとも1つを含む。ターゲット・スキーマ・オブジェクト・クラスは、デバイスタイプおよびプロトコルに基づいて構成可能な(設定可能な)リソースのクラスを表すことができる。いくつかの実施形態では、ターゲット・スキーマ・オブジェクト・クラスは、サービス品質、レーティンググループ、料金プラン、およびパケットフィルタのうちの少なくとも1つに関連付けられる。いくつかの実施形態では、プロトコルは、表現状態転送(REST)プロトコル、構造化照会言語(SQL)プロトコル、簡易オブジェクト・アクセス・プロトコル(SOAP)、セキュアファイル転送プロトコル/セキュア・シェル・プロトコル(SFTP/SSH)、簡易ネットワーク管理プロトコル(SNMP)、およびネットワーク構成プロトコル(NETCONF)のうちの少なくとも1つを含むことができる。デバイスタイプは、モバイル・コンテンツ・クラウド・デバイス、PCRF、ルータ、またはPGWを含むことができる。
【0067】
ステップ904を参照すると、レシピビルダは、デバイスタイプおよびプロトコルに基づいて、デバイスの機能を表すCRUD(作成、読み出し、更新、および削除)セマンティクスの指定に関連付けられたデータフィールドのセットを取得する。いくつかの実施形態では、データフィールドのセットは、プロトコルに関連付けられた構成パラメータがサーバからデータベースにインポート可能なデータに関連付けられているインポート可能なフォームを含む場合に、レシピビルダに関連付けられたデータベースから取得され、プロトコルに関連付けられた構成パラメータがサーバからデータベースにインポート不可能であるデータに関連付けられているインポート不可能なフォームを含む場合に、ユーザ提供データから取得される。
【0068】
ステップ906を参照すると、レシピビルダは、取得されたデータフィールドのセットに基づいて、要求されたターゲット・スキーマ・オブジェクト・クラスを作成する。上述したように、SMEが利用できるようになったターゲット・スキーマ・オブジェクト・クラスは、デバイスタイプおよびプロトコルに基づいて構成可能な全ての可能なフィールドを含むことができる。
【0069】
ステップ908を参照すると、レシピビルダは、要求されたターゲット・スキーマ・オブジェクト・クラスに基づいて、修飾ターゲット・オブジェクト・クラスを作成する。いくつかの実施形態では、修飾ターゲット・オブジェクト・クラスは、取得されたデータフィールドのセット内のデータフィールドの少なくとも一部に対する指定値を含む。いくつかの実施形態では、修飾ターゲット・オブジェクト・クラスは、プロトコル情報に基づいて事前入力されているデータフィールドのサブセットを含む。いくつかの実施形態では、データフィールドは、レシピビルダのユーザによって完全に入力される。いくつかの実施形態では、データフィールドは、プロトコル情報とレシピビルダのユーザとの組み合わせによって入力される。
【0070】
ステップ910を参照すると、レシピビルダは、少なくとも1つのサブレシピ(副レシピ)を作成する要求に関連付けられたデータを受信する。いくつかの実施形態では、少なくとも1つのサブレシピの各々は、(1)修飾ターゲット・オブジェクト・クラス、および(2)1つまたは複数の他の修飾ターゲット・オブジェクト・クラスおよび修飾ターゲット・オブジェクト・クラスと1つまたは複数の他の修飾ターゲット・オブジェクト・クラスとの間の関連付けを示すデータのうちの少なくとも1つを含む。上述したように、修飾ターゲット・オブジェクト・クラス間の関係およびフローを示すために、修飾ターゲット・オブジェクト・クラス間に階層が確立され得る。
【0071】
ステップ912を参照すると、レシピビルダは、サービスインスタンスを形成するために実行エンジンへの送信のためのレシピを処理し、この場合、レシピ(手順書)は、少なくとも1つのサブレシピを含む。いくつかの実施形態では、サービスインスタンスは、指定値に基づいて事前入力されている、または隠されているサービス・インスタンス・データ・フィールドを含み、サービスインスタンスは、事前入力されていないサービス・インスタンス・データ・フィールドがオペレータによってカスタマイズされ得るように、特定のネットワークデバイスに対してオペレータによってカスタマイズ可能である。
【0072】
本明細書に記載のシステムおよび方法の一例は、SMEに関与することができ、SMEは、L3企業VPN接続サービスをオンボードし管理するために使用されるサービステンプレートを作成する、公共ネットワーク・オペレータの従業員またはコンサルタントであり得る。サービスを提供するためにネットワーク・オペレータによって使用されるネットワークデバイスのサービスおよび詳細なオペレーションに対してビジネス目的の実用的な知識を最初に取得しているSMEは、レシピビルダ内でサービステンプレートの構築を開始する。この例では、L3 VPNにはルータとファイアウォールの両方の詳細な増分構成が必要であると仮定する。 さらに、ネットワーク・オペレータは、ベンダR1とベンダR2の2つの異なるベンダのルータと、ベンダF1とベンダF2の2つのベンダのファイアウォールを使用する。特定のL3VPNインスタンス(すなわち、特定の企業顧客に提供された)は、R1のインスタンスのみ、R2のインスタンスのみ、またはR1とR2のいくつかのインスタンスの組み合わせで展開され得る。同じパターンに従うファイアウォールの組み合わせも同様である。レシピビルダを使用してSMEによって構築されたサービステンプレートは、可能な全ての組み合わせに対処することができる。この例では、SMEは以下のステップに従う。
1.デバイスタイプとプロトコルのペアリングを指定することによって、使用中の接続デバイスタイプを定義する。例えば、
a.NETCONFを介して接続されたR1
b.CLIを介して接続されたR2
c.RESTを介して接続されたF1
d.SOAPを介して接続されたF2
2.ターゲット・スキーマ・オブジェクト・クラスの作成:
a.NETCONFおよびSOAPベースの接続デバイスの場合、完全な機械可読スキーマ(NETCONFを介するR1のYANG、SOAPを介するF2のWSDL)をインポートする。このステップは、レシピビルダに、サポートされている全てのターゲット・スキーマ・オブジェクト・クラス(すなわち、機械可読スキーマに記述された各々の管理可能リソースに対応する)を動的に作成させる。
b.CLIおよびRESTベースの接続デバイスの場合、SMEは後続のステップで必要となる各々の必要なターゲット・スキーマ・オブジェクト・クラスを手動で作成する。
c.ステップ2の例は、次のようなリソースを含む。
i.R2、F1上のIPインタフェース
ii.R2、F1V上のIPインタフェース
iii.R2、F1上のRF
iv.R2、F1上のVRF
v.R2上のBGPネイバー
vi.F1上のアクセス制御リスト
vii.F1上のTrust Zone
3.ステップ2aおよびステップ2bからの対象のターゲット・スキーマ・オブジェクト・クラスの各々について、いくつかの実施形態では、リソースの制約付きおよび/または注釈付きバリエーションである、修飾ターゲット・オブジェクト・クラスを作成する。ここでは、SMEは、最終的にオペレーションネットワークにおける実際のオンボーディングおよび管理を担当するオペレータによって消耗可能な方法でリソースの完全な複雑さおよび機能を簡略化している。
4.修飾ターゲット・オブジェクト・クラスを、接続デバイスタイプとそれらの間の論理的な関連付けとに基づいてサブレシピへとグループ化する。例としては、
a.R1用のIPインタフェース修飾ターゲットオブジェクトおよびR1用のBGPネイバー修飾ターゲットオブジェクトを含むR1上のルーテッドインタフェース
b.R2用のIPインタフェース修飾ターゲットオブジェクトおよびR2用のBGPネイバー修飾ターゲットオブジェクトを含むR2上のルーテッドインタフェース
c.F1用のTrust Zone修飾ターゲットオブジェクトおよびF1用のIPインタフェース修飾ターゲットオブジェクトを含むF1上のトラステッドインタフェース
d.F2用のTrust Zone修飾ターゲットオブジェクトおよびF2用のIPインタフェース修飾ターゲットオブジェクトを含むF2上のトラステッドインタフェース
5.サブレシピをグループ化して、複数のベンダのレシピを作成する。例:
a.R1用のルーテッド・インタフェース・サブレシピおよびR2用のルーテッド・インタフェース・サブレシピを含むルーテッドインタフェース
b.F1用のトラステッド・インタフェース・サブレシピおよびF2用のトラステッド・インタフェース・サブレシピを含むトラステッドインタフェース
6.任意で、値を強制的に同じにする必要がある場合、オペレータによる重複パラメータ入力を避けるために、全てのレベルのパラメータを合体する。例えば、サービスインスタンスにルータのR1タイプが使用されるかR2タイプが使用されるかに関係なく、作成されたIPインタフェースの名前は同じでなければならない。つまり、R1のIPインタフェースサブレシピで必要とされるIPインタフェース名と、R2のIPインタフェースのサブレシピで必要とされるIPインタフェース名とを集約するために合体が使用される。
7.完了したサービステンプレートをレシピビルダからエクスポートする。
8.完了したサービステンプレートをレシピトランザクタにインポートする。
9.オペレータは、サービステンプレートを使用して、L3 VPNサービスのインスタンスの作成、取得、更新、削除、および検証を行うことができるようになる。
【0073】
本開示の特定の実施形態は、電気通信アプリケーションに関するデータ自動化技術を説明しているが、本明細書に記載のシステムおよび方法は、エージェントレスターゲットを使用する他のアプリケーションにも適用可能である。上述したように、エージェントレスターゲットは、通常、絶えず構成する必要のあるターゲットである。サーバから更新情報をプルすることができるエージェントベースのターゲットとは異なり、エージェントレス(エージェントが不要な)ターゲットに関連付けられた更新では、サーバからプルするのに実行不可能である、より頻繁な更新および/またはより多くのアプリケーション固有の更新が必要である。エージェントレスアプリケーションの一例は、工場自動化である。工場内のロボット部品は、増分構成(例えば、組立ライン内のロボット部品)を必要とすることがある。
【0074】
本明細書に記載の主題は、本明細書に開示される構造的手段およびその構造的均等物、またはそれらの組み合わせを含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて実装され得る。本明細書に記載の主題は、データ処理装置(例えば、プログラマブルプロセッサ、コンピュータ、または複数のコンピュータ)によって事項するために、またはデータ処理装置の動作を制御するために、(例えば、機械可読記憶装置内の)情報担体に有形に具現化されるか、もしくは伝搬信号で具現化される1つまたは複数のコンピュータプログラムのような1つまたは複数のコンピュータプログラム製品として実装され得る。コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られている)は、コンパイラ型言語またはインタプリタ型言語を含む任意の形式のプログラミング言語で記述され得、スタンドアローンプログラムまたはコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、または他のユニットなどを含む任意の形態で展開され得る。コンピュータプログラムは、必ずしもファイルに対応しているとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部、当該プログラム専用の単一のファイル、または複数の調整されたファイル(例えば、1つまたは複数のモジュール、サブプログラム、コードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトの複数のコンピュータ上で実行されるように、または複数のサイトに分散され、通信ネットワークによって相互接続されるように展開され得る。
【0075】
本明細書に記載の主題の方法ステップを含む本明細書に記載のプロセスおよび論理フローは、入力データ上で操作して出力を生成することによって本明細書に記載の主題の機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。さらに、プロセスおよび論理フローは、例えば、FPGA(フィールド・プログラマブル・ゲートアレイ)またはASIC(特定用途向け集積回路)の専用論理回路によって実行され得、本明細書に記載の主題の装置は、専用論理回路として実装され得る。
【0076】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読み取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般に、コンピュータはさらに、データを記憶するための1つまたは複数の記憶装置(例えば、磁気ディスク、光磁気ディスク、または光ディスク)を含むか、または1つまたは複数の記憶装置からデータを受信する、または1つまたは複数の記憶装置にデータを送信する、またはその両方のために動作可能に結合される。コンピュータプログラム命令およびデータを具現化するのに適した情報担体は、例として、半導体メモリ装置(例えば、EPROM、EEPROM、およびフラッシュメモリ装置)、磁気ディスク(例えば、内蔵ハードディスクまたはリムーバブルディスク)、光磁気ディスク、光ディスク(例えば、CDおよびDVDディスク)を含む、全ての形態の不揮発性メモリを含む。プロセッサおよびメモリは、専用論理回路で補完され得る、または専用論理回路に組み込まれ得る。
【0077】
ユーザとの対話を提供するために、本明細書に記載の主題は、ユーザに情報を表示するための表示装置、例えば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を行うことができるようにするキーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)とを有するコンピュータ上に実装され得る。他の種類の装置を使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信され得る。
【0078】
本明細書に記載の主題は、バックエンドコンポーネント(例えば、データサーバ)、ミドルウェアコンポーネント(例えば、アプリケーションサーバ)、またはフロントエンドコンポーネント(例えば、グラフィカル・ユーザ・インタフェースまたはユーザが本明細書に記載の主題の実装と対話することができるウェブブラウザを有するクライアントコンピュータ)、またはこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、およびフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実装され得る。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続され得る。通信ネットワークの例は、ローカル・エリア・ネットワーク(「LAN」)および広域ネットワーク(「WAN」)、例えばインターネットを含む。
【0079】
開示される主題は、その適用において、以下の説明に記載される、または図面に示される構成要素の構成の詳細および配置に限定されないことを理解されたい。開示される主題は、他の実施形態が可能であり、様々な方法で実施され、実行され得る。また、本明細書で使用される表現および用語は、説明のためのものであり、限定的であると見なされるべきではないことを理解されたい。
【0080】
したがって、当業者であれば、本開示が基礎とする概念は、開示される主題のいくつかの目的を実行するための他の構造、方法、およびシステムの設計の基礎として容易に利用され得ることを理解するであろう。すなわち、特許請求の範囲は、開示される主題の精神および範囲から逸脱しない限り、同等の構成を含むものと見なされるということが重要である。
【0081】
開示される主題は、上述の例示的な実施形態で説明され例示されているが、本開示は例としてのみ作成されたものであり、開示される主題の実装の詳細の多くの変更は、開示される主題の精神および範囲から逸脱せずに行われてよく、開示される主題の精神および範囲は、以下の請求項によってのみ限定されることを理解されたい。
図1
図2
図3
図4-1】
図4-2】
図4-3】
図5
図6A
図6B
図6C
図6D
図7
図8
図9