JP6533502B2 - 通信サービス提供システムおよび通信サービス提供方法 - Google Patents
通信サービス提供システムおよび通信サービス提供方法 Download PDFInfo
- Publication number
- JP6533502B2 JP6533502B2 JP2016171569A JP2016171569A JP6533502B2 JP 6533502 B2 JP6533502 B2 JP 6533502B2 JP 2016171569 A JP2016171569 A JP 2016171569A JP 2016171569 A JP2016171569 A JP 2016171569A JP 6533502 B2 JP6533502 B2 JP 6533502B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- communication
- state
- service
- service providing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Description
商用サービスを提供するSIPサーバでは、既存サービスに影響を与えずサービスを追加するファイル更新機能が提供されている。商用サービスを提供するSIPサーバは、高信頼性を提供するためにアクト・スタンバイの二重化構成を取ることが一般的である。二重化構成のSIPサーバのファイル更新機能では、アクト系で既存サービスを提供中にスタンバイ系に新サービスをデプロイし、スタンバイ系をアクト系に切り替えることで、既存サービスを中断することなく新サービスを提供する。
より詳細には、C++やJava(登録商標)で作成されたシステムでは、実施中のサービスを継続しながら新規サービスの追加やサービス内容の変更を行うためには、特別なファイル更新機能をアプリケーションに作りこむ必要がある。
これに対して、関数は実行に必要な情報は引数として受け取るので、関数実行環境にデータを保持する必要がなく、関数実行毎に新しい関数実行環境を起動することが可能となる。新しい関数実行環境を起動する時点で最新の関数定義を参照するため、特別なファイル更新機能は不要であり、サービスの追加等を実行するタイミングを任意に設定することができる。
図1は、実施の形態にかかる通信サービス提供システム20を含むネットワーク構成例を示すブロック図である。また、図2は、プロトコル処理部210、関数処理部220およびデータ管理部230の詳細構成を示すブロック図である。
通信サービス提供システム20は、ユーザ端末(図1では発端末10および着端末30)に対して所定の通信プロトコル(本実施の形態ではSIP)を使用する通信サービスを提供する。通信サービス提供システム20の特徴は、ロジックとデータを分離し、ロジックはサービス提供用関数として関数処理部220,221,222で保持し、データはデータ管理部230,231,232で保持している点にある。また、関数だけではSIPの状態遷移を扱うことはできないため、プロトコル処理部210,211,212で状態遷移を行う。
また、図1では図示の便宜上、プロトコル処理部210,211,212、関数処理部220,221,222、データ管理部230,231,232間の接続関係を省略しているが、これらの構成部は互いに接続が可能である。
なお、プロトコル処理部210〜212は長期保管が必要なデータを有していないため、入力メッセージの内容とプロトコル処理部210〜212との対応付けを行う必要はない。よって、入力メッセージの振り分けは、例えば単純なラウンドロビンやプロトコル処理部210〜212の負荷を考慮したラウンドロビン等の比較的単純なアルゴリズムで行うことが可能である。なお、通信サービス提供システム20内のプロトコル処理部が1台の場合には、振り分け処理部200は不要である。
関数処理部220〜222は、通信サービスの提供に用いられるサービス提供用関数群を保持するとともに、指定されたサービス提供用関数を実行する。
データ管理部230〜232は、後述するプロトコル状態データベース2301およびサービス状態データベース2303(図3参照)を含む通信サービスの提供に用いられるデータベースを保持する。
メッセージ受信部2101は、ユーザ端末からの入力メッセージの受信を待機し、入力メッセージを受信するとメッセージ電文を内部形式に復号し、当該入力メッセージに対応するプロトコル状態をプロトコル状態データベース2301から取得する。
ここで、プロトコル状態データベース2301は、後述するデータ管理部230に記憶されており、通信サービス提供システム20上の(通信サービスを用いた)個々の通信の通信プロトコル上の状態(ステート)を示すプロトコル状態を、当該通信の識別情報と対応付けて保持している。
メッセージ受信部2101は、入力メッセージのヘッダ部から識別情報(Call−ID)を抽出し、当該識別情報に対応付けられているプロトコル状態をプロトコル状態データベース2301に照会する。
なお、プロトコル処理部210〜212と同様に、関数処理部220〜222は長期保管が必要なデータを有していないため、単純なラウンドロビンや関数処理部220〜222の負荷を考慮したラウンドロビン等の比較的単純なアルゴリズムで呼び出し先の関数処理部220〜222を決定可能である。
上述のように、関数処理部220は、通信サービスの提供に必要なサービス提供用関数群を保持するとともに、プロトコル処理部210で指定されたサービス提供用関数を実行する。関数処理部220内のサービス提供用関数は、全体として通信サービスの提供に必要な所定のアプリケーションを構成している。すなわち、アプリケーションにおける種々の処理を個々のサービス提供用関数として定義している。また、関数処理部220は、後述するラッパー関数およびデータ構造変換関数を有している。ラッパー関数およびデータ構造変換関数の詳細については後述する。
図2では、関数処理部220に関数A2201、関数B2202、関数C2203が保持されているものとする。
関数処理部220には長期保管が必要なデータが含まれないため、アプリケーションの各処理はクラスのメソッドではなく関数として実装が可能となる。よって、新規サービスを提供する際は、新規サービス提供に必要な関数のみの更新が可能となる。
例えば、通信サービスに新たな機能を追加したい場合、新たな機能に対応するサービス提供用関数を通信サービス提供システム20内の全ての関数処理部220〜222に実装させ(図面で言えば、図2の関数処理部220内に新たに「関数D」を加え)、全てのデータ管理部230〜232のメッセージ−関数対応データベース2302を書き換えればよい。
機能追加前は、INVITEメッセージに対して図4に示す基本呼INVITE関数が対応付けられている。一方、機能追加時には、各関数処理部220〜222に図5に示す付加サービスINVITE関数を実装するとともに、INVITEメッセージに対応付ける関数を付加サービスINVITE関数に変更する。すなわち、メッセージ−関数対応データベース2302において、INVITEメッセージに対応する関数を「基本呼INVITE関数」から「付加サービスINVITE関数」に書き換える。
図5に示す付加サービスINVITE関数は、加入者情報サーバ内の加入者情報データベース50(図1、図2参照)が保持する加入者データを参照し、転送サービスに加入している場合には、Toを転送先に変更して基本呼INVITE関数を呼び出し、加入していない場合にはそのまま基本呼INVITE関数を呼び出すものである。付加サービスINVITE関数は、加入者の契約情報に基づいた状態遷移を行うため、その実行時には図2の関数B2202のように加入者情報データベース50にアクセスする。
なお、更新単位を関数にするためには、オブジェクト指向を適用することはできない。関数だけでは状態遷移を扱うことはできないため、通信プロトコル(SIP)の処理(処理状態遷移)はプラットフォーム(プロトコル処理部210)で行っている。
上述したプロトコル処理部210および関数処理部220は、データを保持していないため、複数のサーバのいずれを選択してもよいが、データ管理部230〜232については、必要なデータを保持しているサーバを選択する必要がある(例えばある端末間のセッションのプロトコル状態を保持しているデータ管理部(サーバ)を選択する必要がある)。データベースのライブラリを用いることにより、プロトコル処理部210〜212や関数処理部220〜222は、データ管理部230〜232の構成を意識することなく必要なデータにアクセス可能となる。
なお、データベースは、それぞれのデータ管理部230〜232が保持するデータを同期する機能を有している。データベースによって同期する機能の詳細は異なるが、例えばNoSQLデータベースは一般的にデータの紛失を防ぐためデータを3重化(3台のサーバに同じデータを保存)している。NoSQLデータベースによっては、設定ファイル等で多重度の変更やデータ格納要求に対する応答のタイミングの変更(1台のサーバへの格納が完了した時点で応答か、3台全てのサーバへの格納が完了した時点で応答か、など)が可能である。
データ管理部230としては、例えばNoSQLデータベースを用いることができる。
また、データ管理部230は、個々の通信に対応する通信サービスのサービス状態を、当該通信の識別情報と対応付けて記録するサービス状態データベース2303を更に備える。サービス状態データベース2303に記録されたサービス状態は、障害時の復旧に必要となる。図3(c)にサービス状態データベース2303の一例を示す。
サービス状態データベース2303の更新は、関数処理部220〜222によって行われる。すなわち、関数処理部220においてサービス状態を変更する関数(例えば図2の関数C2203)を実行した場合、サービス状態データベース2303に記録された今回の通信に対応するサービス状態を、変更後のサービス状態に更新する。
一方、本実施の形態の通信サービス提供システム20では、ロジックとデータを分離し、ロジックはサービス提供用関数として関数処理部220で保持し、データはデータ管理部230(NoSQLデータベース)で保持している。それぞれのデータベースには、データ構造のバージョンが追加されている。そして、サービス提供用関数からデータベースへのアクセスは、直接ではなく、ラッパー関数経由で行う。ラッパー関数が必要に応じてデータ構造変換関数を呼び出すため、アプリケーションを構成するサービス提供用関数ではデータ構造のバージョンを意識した処理を行う必要はない。
一方、本実施の形態の通信サービス提供システム20では、データ構造のロールバック時にも、アプリケーションのバージョンとデータ構造のバージョンとが異なる場合にデータ構造変換関数を呼び出すことになる。ただし、ロールバックの場合には、アプリケーションのバージョンよりもデータ構造のバージョンの方が新しいという点がバージョンアップの場合とは異なる。したがって、データ構造変換関数は、データ構造の新しいバージョンからアプリケーションのバージョンにデータ構造を変換することになる。
すなわち、関数は実行に必要な情報は引数として受け取るので、関数実行環境にデータを保持する必要がなく、関数実行毎に新しい関数実行環境を起動することが可能となる。新しい関数実行環境を起動する時点で最新の関数定義を参照するため、特別なファイル更新機能は不要であり、サービスの追加等を実行するタイミングを任意に設定することができる。
また、サービス提供用関数からデータベースへのアクセスをラッパー関数経由で行うことによって、データ構造のバージョンとアプリケーションのバージョンとが一致するか否かを意識することなくデータベースが利用可能となり、データとロジックとを分離して取り扱う上での利便性を向上させることができる。また、実行中のアプリケーションのバージョンの方がデータ構造のバージョンより古い場合にもロールバックが可能となり、例えば新規サービスに不具合が生じた場合などにも容易に対応することができる。
また、メッセージ−関数対応データベース2302においても、図6(a)に示すように、試験環境と商用環境で対応する関数を別々に管理する。また、関数を変更せずに試験環境では試験用データを、商用環境では商用データを、それぞれ参照・更新できるようにするため、図6(b)および図6(c)に示すように、環境毎にラッパー関数名と関数の対応表およびデータベース名とデータベースの対応表を作成し、実行時にそれぞれの名前解決を行う。
これにより、商用サービス環境で商用サービスに影響を与えずにサービスの試験を実施することができる。
200 振り分け処理部
210,211,212 プロトコル処理部
2101 メッセージ受信部
2102 関数選択部
2103 関数呼び出し部
2104 状態遷移部
220,221,222 関数処理部
230,231,232 データ管理部
2301 プロトコル状態データベース
2302 メッセージ−関数対応データベース
2303 サービス状態データベース
10 発端末
30 着端末
50 加入者情報データベース
Claims (6)
- ユーザ端末に対して所定の通信プロトコルを使用する通信サービスを提供する通信サービス提供システムであって、
前記通信サービスの提供に必要なサービス提供用関数群を保持するとともに、指定されたサービス提供用関数を実行する関数処理部と、
前記ユーザ端末から入力メッセージを受信し、前記入力メッセージから今回の通信を識別する識別情報を抽出し、今回の通信のプロトコル状態を照会するメッセージ受信部と、
前記入力メッセージの種類を判定し、前記入力メッセージの種類に応じて前記サービス提供用関数群から前記関数処理部に実行させる前記サービス提供用関数を選択する関数選択部と、
前記入力メッセージに含まれる前記サービス提供用関数の実行に必要な情報および前記プロトコル状態を変数として前記関数処理部に前記サービス提供用関数を実行させ、返答先ユーザ端末に送信する出力メッセージおよび前記プロトコル状態の遷移先を関数値として得る関数呼び出し部と、
前記返答先ユーザ端末に前記出力メッセージを送信する状態遷移部と、
を備えることを特徴とする通信サービス提供システム。 - 前記通信サービスの提供に用いられるデータベースを保持するデータ管理部を更に備え、
前記関数処理部が実行する前記サービス提供用関数は、所定のアプリケーションにおける所定の処理を実行するものであり、
前記データ管理部に記録されたデータベースには、当該データベースのデータ構造のバージョンが記録されており、
前記所定のデータベースのデータ構造を変更する際は、変更後のデータ構造を前記アプリケーションのバージョンに合わせて変更する新規のデータ構造変更関数を定義し、
前記関数処理部が実行する前記サービス提供用関数が前記データ管理部内の所定のデータベースにアクセスする際はラッパー関数を経由してアクセスし、
前記ラッパー関数は、前記アプリケーションのバージョンが前記所定のデータベースの前記データ構造のバージョンと異なる場合には、前記データ構造を前記アプリケーションのバージョンに合わせて変更するデータ構造変更関数を呼び出す、
ことを特徴とする請求項1に記載の通信サービス提供システム。 - 前記通信サービスを用いた個々の通信の前記通信プロトコル上の状態を示すプロトコル状態を、当該通信の識別情報と対応付けて記録するプロトコル状態データベースと、
前記個々の通信に対応する前記通信サービスのサービス状態を、当該通信の識別情報と対応付けて記録するサービス状態データベースとを更に備え、
前記メッセージ受信部は、前記プロトコル状態データベースに前記プロトコル状態を照会し、
前記関数処理部は、前記サービス状態を変更する前記サービス提供用関数が実行された場合、前記サービス状態データベースに記録された前記今回の通信に対応するサービス状態を、変更後のサービス状態に更新し、
前記状態遷移部は、前記プロトコル状態データベースに記録された前記プロトコル状態を前記遷移先の状態に更新する、
ことを特徴とする請求項1または請求項2に記載の通信サービス提供システム。 - ユーザ端末に対して所定の通信プロトコルを使用する通信サービスを提供する通信サービス提供システムにおける通信サービス提供方法であって、
前記ユーザ端末から入力メッセージを受信し、前記入力メッセージから今回の通信を識別する識別情報を抽出し、今回の通信のプロトコル状態を照会するメッセージ受信ステップと、
前記入力メッセージの種類を判定し、前記入力メッセージの種類に応じて前記通信サービスの提供に必要なサービス提供用関数群から、関数呼び出しステップで実行するサービス提供用関数を選択する関数選択ステップと、
前記入力メッセージに含まれる前記サービス提供用関数の実行に必要な情報および前記プロトコル状態を変数として前記サービス提供用関数を実行し、返答先ユーザ端末に送信する出力メッセージおよび前記今回の通信の状態の遷移先を関数値として得る関数呼び出しステップと、
前記返答先ユーザ端末に前記出力メッセージを送信する状態遷移ステップと、
を含むことを特徴とする通信サービス提供方法。 - 前記通信サービス提供システムは、
前記通信サービスの提供に用いられるデータベースを保持するデータ管理部を備え、
前記関数呼び出しステップで実行される前記サービス提供用関数は、所定のアプリケーションにおける所定の処理を実行するものであり、
前記データ管理部に記録されたデータベースには、当該データベースのデータ構造のバージョンが記録されており、
前記所定のデータベースのデータ構造を変更する際は、変更後のデータ構造を前記アプリケーションのバージョンに合わせて変更する新規のデータ構造変更関数を定義し、
前記関数呼び出しステップでは、実行する前記サービス提供用関数が前記データ管理部内の所定のデータベースにアクセスする際はラッパー関数を経由してアクセスし、前記アプリケーションのバージョンが前記所定のデータベースの前記データ構造のバージョンと異なる場合には、前記ラッパー関数が前記データ構造を前記アプリケーションのバージョンに合わせて変更するデータ構造変更関数を呼び出す、
ことを特徴とする請求項4に記載の通信サービス提供方法。 - 前記通信サービス提供システムは、
前記通信サービスを用いた個々の通信の前記通信プロトコル上の状態を示すプロトコル状態を、当該通信の識別情報と対応付けて記録するプロトコル状態データベースと、
前記個々の通信に対応する前記通信サービスのサービス状態を、当該通信の識別情報と対応付けて記録するサービス状態データベースとを更に備え、
前記メッセージ受信ステップでは、前記プロトコル状態データベースに前記プロトコル状態を照会し、
前記関数呼び出しステップでは、前記サービス状態を変更する前記サービス提供用関数が実行された場合、前記サービス状態データベースに記録された前記今回の通信に対応するサービス状態を、変更後のサービス状態に更新し、
前記状態遷移ステップでは、前記プロトコル状態データベースに記録された前記プロトコル状態を前記遷移先の状態に更新する、
ことを特徴とする請求項4または請求項5に記載の通信サービス提供方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016171569A JP6533502B2 (ja) | 2016-09-02 | 2016-09-02 | 通信サービス提供システムおよび通信サービス提供方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016171569A JP6533502B2 (ja) | 2016-09-02 | 2016-09-02 | 通信サービス提供システムおよび通信サービス提供方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018037971A JP2018037971A (ja) | 2018-03-08 |
| JP6533502B2 true JP6533502B2 (ja) | 2019-06-19 |
Family
ID=61567790
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016171569A Active JP6533502B2 (ja) | 2016-09-02 | 2016-09-02 | 通信サービス提供システムおよび通信サービス提供方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6533502B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| SG11202009594QA (en) * | 2018-03-29 | 2020-10-29 | Dlt Global Inc | Updateable smart contracts |
| CN111078483A (zh) * | 2019-12-31 | 2020-04-28 | 中国科学院长春光学精密机械与物理研究所 | 通信协议状态转换序列生成方法 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011130374A (ja) * | 2009-12-21 | 2011-06-30 | Toshiba Corp | サービスネゴシエーション装置およびサービスネゴシエーションプログラム |
| JP6447224B2 (ja) * | 2015-02-20 | 2019-01-09 | 日本電気株式会社 | 通信装置、中継装置、通信方法及び通信プログラム |
-
2016
- 2016-09-02 JP JP2016171569A patent/JP6533502B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018037971A (ja) | 2018-03-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108510389B (zh) | 基于区块链的智能合约调用方法、设备及可读存储介质 | |
| CN109639572B (zh) | 路由管理方法、装置及微服务系统 | |
| KR101011216B1 (ko) | 데이터 동기 | |
| US10291547B2 (en) | Systems and methods for determining routing information for a network request | |
| JP4616159B2 (ja) | クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム | |
| WO2022033121A1 (zh) | 一种kubernetes中资源暴露方法、系统、设备以及介质 | |
| EP2795849B1 (en) | Method and apparatus for messaging in the cloud | |
| JP2008131519A (ja) | コンタクト先情報登録方法、ネットワークシステム、ノードおよびコンタクト先情報登録プログラム | |
| WO2017185961A1 (zh) | 一种服务发现的处理方法及装置 | |
| CN114448895B (zh) | 一种应用访问方法、装置、设备及介质 | |
| CN111858083A (zh) | 一种远程服务的调用方法、装置、电子设备及存储介质 | |
| CN108566291A (zh) | 一种事件处理的方法、服务器及系统 | |
| US20220326940A1 (en) | Service Upgrade Method, Apparatus, and System | |
| CN103701653B (zh) | 一种接口热插拔配置数据的处理方法及网络配置服务器 | |
| JP6533502B2 (ja) | 通信サービス提供システムおよび通信サービス提供方法 | |
| CN113900728A (zh) | 同步配置的方法、系统、电子设备及存储介质 | |
| JP5227903B2 (ja) | 中継システム、通信制御装置、端末移行方法及び通信制御プログラム | |
| JP2005228183A (ja) | プログラム実行方法、および、プログラム実行のための計算機システム | |
| CN106970843A (zh) | 远程调用方法和装置 | |
| CN113783826A (zh) | 一种微服务异常处理方法和装置 | |
| CN109413118A (zh) | 一种实现会话同步的方法、装置及存储介质、程序产品 | |
| CN115866061A (zh) | 基于服务集群系统的服务处理方法、装置、设备及介质 | |
| US8146069B2 (en) | Method and apparatus for performing non service affecting software upgrades in place | |
| CN119155341A (zh) | 服务调用方法、装置、电子设备、存储介质及程序产品 | |
| US11503083B2 (en) | Call processing server, call processing method, and call processing program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180905 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190521 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190524 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6533502 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |