(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】通信システム、通信制御装置、及び制御プログラム更新方法
(51)【国際特許分類】
G06F 8/65 20180101AFI20241106BHJP
G06F 12/00 20060101ALI20241106BHJP
G06F 12/06 20060101ALI20241106BHJP
H04L 41/00 20220101ALI20241106BHJP
H04L 43/00 20220101ALI20241106BHJP
【FI】
G06F8/65
G06F12/00 597U
G06F12/06 520E
H04L41/00
H04L43/00
(21)【出願番号】P 2020109528
(22)【出願日】2020-06-25
【審査請求日】2023-01-23
(73)【特許権者】
【識別番号】000002130
【氏名又は名称】住友電気工業株式会社
(74)【代理人】
【識別番号】110000280
【氏名又は名称】弁理士法人サンクレスト国際特許事務所
(72)【発明者】
【氏名】濱田 洋平
【審査官】北川 純次
(56)【参考文献】
【文献】特開2019-192171(JP,A)
【文献】特開2000-284956(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65
G06F 12/00
G06F 12/06
H04L 41/00
H04L 43/00
(57)【特許請求の範囲】
【請求項1】
対向装置との通信を制御する通信制御装置を備える通信システムであって、
前記通信制御装置は、
前記通信制御装置の制御プログラムの一部である基本部を記憶する不揮発性メモリと、
前記制御プログラムの前記基本部以外の部分である固有部を記憶する揮発性メモリと、
前記制御プログラムを更新する更新制御部と、
を備え、
前記更新制御部は、前記制御プログラムの固有部を更新する場合、更新前の前記制御プログラムの固有部を前記揮発性メモリから削除し、新たな制御プログラムの固有部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込む、
通信システム。
【請求項2】
前記通信制御装置は、前記基本部の更新が必要である場合に前記新たな制御プログラムの前記基本部を取得する第1取得部を備え、
前記更新制御部は、取得された前記新たな制御プログラムの前記基本部を前記不揮発性メモリに書き込む、
請求項1に記載の通信システム。
【請求項3】
前記通信制御装置は、前記固有部の更新が必要である場合に前記新たな制御プログラムの前記固有部を取得する第2取得部を備え、
前記更新制御部は、取得された前記新たな制御プログラムの前記固有部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込む、
請求項1又は請求項2に記載の通信システム。
【請求項4】
対向装置との通信を制御する通信制御装置を備える通信システムであって、
前記通信制御装置は、
前記通信制御装置の制御プログラムの一部である基本部を記憶する不揮発性メモリと、
前記制御プログラムの前記基本部以外の部分である固有部を記憶する揮発性メモリと、
前記制御プログラムを更新する更新制御部と、
第1整合性判定部と、
を備え、
前記更新制御部は、前記制御プログラムを更新する場合、新たな制御プログラムの基本部を前記不揮発性メモリに書き込み、前記新たな制御プログラムの固有部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込み、
前記第1整合性判定部は、前記制御プログラムを起動する起動シーケンスにおいて、起動している前記制御プログラムの前記基本部が、更新用の制御プログラムを提供する提供装置に保持されている制御プログラムの基本部と整合するか否かを判定する第1整合性判定処理を実行し、
前記更新制御部は、前記第1整合性判定処理の結果が否定的である場合に、前記提供装置から提供された前記制御プログラムの基本部を、前記不揮発性メモリに書き込む、
通信システム。
【請求項5】
対向装置との通信を制御する通信制御装置を備える通信システムであって、
前記通信制御装置は、
前記通信制御装置の制御プログラムの一部である基本部を記憶する不揮発性メモリと、
前記制御プログラムの前記基本部以外の部分である固有部を記憶する揮発性メモリと、
前記制御プログラムを更新する更新制御部と、
第2整合性判定部と、
を備え、
前記更新制御部は、前記制御プログラムを更新する場合、新たな制御プログラムの基本部を前記不揮発性メモリに書き込み、前記新たな制御プログラムの固有部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込み、
前記第2整合性判定部は、前記制御プログラムを起動する起動シーケンスにおいて、起動している前記制御プログラムの前記固有部が、更新用の制御プログラムを提供する提供装置に保持されている制御プログラムの固有部と整合するか否かを判定する第2整合性判定処理を実行し、
前記更新制御部は、前記第2整合性判定処理の結果が否定的である場合に、前記提供装置から提供された前記制御プログラムの固有部を、前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込む、
通信システム。
【請求項6】
前記提供装置から前記制御プログラムの固有部の一部が提供される場合、前記更新制御部は、提供される前記固有部の一部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込み、
前記通信制御装置は、前記揮発性メモリに書き込まれた前記固有部の一部を起動する、
請求項5に記載の通信システム。
【請求項7】
前記基本部は、ブートローダ、及びオペレーティングシステムを含み、
前記固有部は、前記対向装置との通信の制御に用いられるプログラムを含む、
請求項1から請求項6のいずれか1項に記載の通信システム。
【請求項8】
複数の前記通信制御装置を管理する管理装置をさらに備え、
前記管理装置は、更新用の制御プログラムを前記通信制御装置に送信する、
請求項1から請求項3のいずれか1項に記載の通信システム。
【請求項9】
対向装置との通信を制御する通信制御装置であって、
前記通信制御装置の制御プログラムの一部である基本部を記憶する不揮発性メモリと、
前記制御プログラムの前記基本部以外の部分である固有部を記憶する揮発性メモリと、
前記制御プログラムを更新する更新制御部と、
を備え、
前記更新制御部は、前記制御プログラムの固有部を更新する場合、更新前の前記制御プログラムの固有部を前記揮発性メモリから削除し、新たな制御プログラムの固有部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込む、
通信制御装置。
【請求項10】
対向装置との通信を制御する通信制御装置における制御プログラム更新方法であって、
不揮発性メモリに記憶された基本部
と、揮発性メモリに記憶された固有部
とを含む制御プログラムの前記固有部を更新する場合、更新前の制御プログラムの固有部を
前記揮発性メモリから削除
するステップと、
新たな制御プログラムの固有部を、前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込むステップと、
を含む、
制御プログラム更新方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信システム、通信制御装置、及び制御プログラム更新方法に関する。
【背景技術】
【0002】
特許文献1には、ネットワーク機器のファームウェア(制御プログラム)の更新方法が開示されている。特許文献1に開示される方法では、ネットワーク機器である本体機器に付属機器が増設された場合、本体機器のファームウェアをサービスサイトからダウンロードし、本体機器内部の作業用RAMエリアにファームウェアを一時保存し、ダウンロードされたファームウェアを本体機器内部のFROM(Flash Read Only Memory)に書き込む。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、FROM等の書き込み可能な不揮発性メモリは、DRAM(Dynamic Random Access Memory)等の揮発性メモリに比べて書き込みが遅い。このため、機能追加又はデバッグ情報の追加などによってファームウェアのサイズが大きくなると、FROMへの書き込み時間も増大してしまう。
【課題を解決するための手段】
【0005】
本開示の一態様に係る通信システムは、対向装置との通信を制御する通信制御装置を備える通信システムであって、前記通信制御装置は、前記通信制御装置の制御プログラムの一部である基本部を記憶する不揮発性メモリと、前記制御プログラムの前記基本部以外の部分である固有部を記憶する揮発性メモリと、前記制御プログラムを更新する更新制御部と、を備え、前記更新制御部は、前記制御プログラムを更新する場合、新たな制御プログラムの基本部を前記不揮発性メモリに書き込み、前記新たな制御プログラムの固有部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込む。
【0006】
本開示の一態様に係る通信制御装置は、対向装置との通信を制御する通信制御装置であって、前記通信制御装置の制御プログラムの一部である基本部を記憶する不揮発性メモリと、前記制御プログラムの前記基本部以外の部分である固有部を記憶する揮発性メモリと、前記制御プログラムを更新する更新制御部と、を備え、前記更新制御部は、前記制御プログラムを更新する場合、新たな制御プログラムの基本部を前記不揮発性メモリに書き込み、前記新たな制御プログラムの固有部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込む。
【0007】
本開示の一態様に係る制御プログラム更新方法は、対向装置との通信を制御する通信制御装置における制御プログラム更新方法であって、前記制御プログラムの一部である基本部を記憶する不揮発性メモリに、新たな制御プログラムの基本部を書き込むステップと、前記新たな制御プログラムの前記基本部以外の部分である固有部を、前記不揮発性メモリに書き込まずに、前記制御プログラムの固有部を記憶する揮発性メモリに書き込むステップと、を含む。
【0008】
本開示は、上記のような特徴的な構成を備える通信システムとして実現することができるだけでなく、通信システムが含む通信制御装置として実現したり、通信システムにおける特徴的な処理をステップとする制御プログラム更新方法として実現したりすることができる。さらに、本開示は、通信制御装置が実行するコンピュータプログラムとして実現することができる。
【発明の効果】
【0009】
本開示によれば、制御プログラムのサイズが増大しても、制御プログラムの更新時間の増大を抑制することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係るネットワークシステムの全体構成の一例を示す図である。
【
図2】実施形態に係る局側装置の内部構成の一例を示すブロック図である。
【
図3】実施形態に係る制御プログラムの構成の一例を示す模式図である。
【
図4】本実施形態に係る回線制御装置の機能の一例を示す機能ブロック図である。
【
図5】第1構成リストの構成の一例を示す図である。
【
図6】第2構成リストの構成の一例を示す図である。
【
図7】実施形態に係る回線制御装置の制御プログラム更新動作の手順の一例を示すフローチャートである。
【
図8A】実施形態に係る回線制御装置の起動シーケンスの一例を示すフローチャートである。
【
図8B】実施形態に係る回線制御装置の起動シーケンスの一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
<本開示の実施形態の概要>
以下、本開示の実施形態の概要を列記して説明する。
【0012】
(1) 本実施形態に係る通信システムは、対向装置との通信を制御する通信制御装置を備える通信システムであって、前記通信制御装置は、前記通信制御装置の制御プログラムの一部である基本部を記憶する不揮発性メモリと、前記制御プログラムの前記基本部以外の部分である固有部を記憶する揮発性メモリと、前記制御プログラムを更新する更新制御部と、を備え、前記更新制御部は、前記制御プログラムを更新する場合、新たな制御プログラムの基本部を前記不揮発性メモリに書き込み、前記新たな制御プログラムの固有部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込む。これにより、書き込み速度が低い不揮発性メモリには制御プログラムの基本部のみが書き込まれ、固有部は書き込み速度が高い揮発性メモリに書き込まれる。したがって、制御プログラムのサイズが増大しても、制御プログラムの更新時間の増大を抑制することができる。
【0013】
(2) 本実施形態に係る通信システムにおいて、前記通信制御装置は、前記基本部の更新が必要である場合に前記新たな制御プログラムの前記基本部を取得する第1取得部を備え、前記更新制御部は、取得された前記新たな制御プログラムの前記基本部を前記不揮発性メモリに書き込んでもよい。これにより、例えば基本部だけの更新が必要な場合、固有部を更新することなく、基本部のみを更新することができる。したがって、固有部の書き込み時間が削減され、制御プログラムの更新時間の増大をより一層抑制することができる。
【0014】
(3) 本実施形態に係る通信システムにおいて、前記通信制御装置は、前記固有部の更新が必要である場合に前記新たな制御プログラムの前記固有部を取得する第2取得部を備え、前記更新制御部は、取得された前記新たな制御プログラムの前記固有部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込んでもよい。これにより、例えば固有部だけの更新が必要な場合、基本部を更新することなく、固有部のみを更新することができる。したがって、基本部の書き込み時間が削減され、制御プログラムの更新時間の増大をより一層抑制することができる。
【0015】
(4) 本実施形態に係る通信システムにおいて、前記通信制御装置は、第1整合性判定部を備え、前記第1整合性判定部は、前記制御プログラムを起動する起動シーケンスにおいて、起動している前記制御プログラムの前記基本部が、更新用の制御プログラムを提供する提供装置に保持されている制御プログラムの基本部と整合するか否かを判定する第1整合性判定処理を実行し、前記更新制御部は、前記第1整合性判定処理の結果が否定的である場合に、前記提供装置から提供された前記制御プログラムの基本部を、前記不揮発性メモリに書き込んでもよい。これにより、例えば、基本部が更新されていない場合だけでなく、不揮発性メモリの基本部の一部又は全部が破損していたり、消失していたりする場合に、基本部を不揮発性メモリに書き込むことができる。
【0016】
(5) 本実施形態に係る通信システムにおいて、前記通信制御装置は、第2整合性判定部を備え、前記第2整合性判定部は、前記制御プログラムを起動する起動シーケンスにおいて、起動している前記制御プログラムの前記固有部が、更新用の制御プログラムを提供する提供装置に保持されている制御プログラムの固有部と整合するか否かを判定する第2整合性判定処理を実行し、前記更新制御部は、前記第2整合性判定処理の結果が否定的である場合に、前記提供装置から提供された前記制御プログラムの固有部を、前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込んでもよい。これにより、例えば、固有部が更新されていない場合だけでなく、揮発性メモリの固有部の一部又は全部が破損していたり、消失していたりする場合に、固有部を揮発性メモリに書き込むことができる。
【0017】
(6) 本実施形態に係る通信システムにおいて、前記提供装置から前記制御プログラムの固有部の一部が提供される場合、前記更新制御部は、提供される前記固有部の一部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込み、前記通信制御装置は、前記揮発性メモリに書き込まれた前記固有部の一部を起動してもよい。これにより、固有部のうちの必要な部分のみを不揮発性メモリに書き込むことができ、書き込み時間の増大を抑制することができる。
【0018】
(7) 本実施形態に係る通信システムにおいて、前記基本部は、ブートローダ、オペレーティングシステム、及び前記第2整合性判定処理に使用されるプログラムを含み、前記固有部は、前記対向装置との通信の制御に用いられるプログラムを含んでもよい。これにより、制御プログラムの基本的な機能部分が基本部に含まれ、通信制御装置固有の機能部分が固有部に含まれる。したがって、制御プログラムのサイズを増大させる原因となる機能追加部分の一部又は全部を固有部に含めることができ、制御プログラムの更新時間の増大を抑制することができる。
【0019】
(8) 本実施形態に係る通信システムは、複数の前記通信制御装置を管理する管理装置をさらに備え、前記管理装置は、更新用の制御プログラムを前記通信制御装置に送信してもよい。これにより、管理装置を用いることによって複数の通信制御装置の制御プログラム更新を円滑に実施することができる。
【0020】
(9) 本実施形態に係る通信制御装置は、対向装置との通信を制御する通信制御装置であって、前記通信制御装置の制御プログラムの一部である基本部を記憶する不揮発性メモリと、前記制御プログラムの前記基本部以外の部分である固有部を記憶する揮発性メモリと、前記制御プログラムを更新する更新制御部と、を備え、前記更新制御部は、前記制御プログラムを更新する場合、新たな制御プログラムの基本部を前記不揮発性メモリに書き込み、前記新たな制御プログラムの固有部を前記不揮発性メモリに書き込まずに前記揮発性メモリに書き込む。これにより、書き込み速度が低い不揮発性メモリには制御プログラムの基本部のみが書き込まれ、固有部は書き込み速度が高い揮発性メモリに書き込まれる。したがって、制御プログラムのサイズが増大しても、制御プログラムの更新時間の増大を抑制することができる。
【0021】
(10) 本実施形態に係る制御プログラム更新方法は、対向装置との通信を制御する通信制御装置における制御プログラム更新方法であって、前記制御プログラムの一部である基本部を記憶する不揮発性メモリに、新たな制御プログラムの基本部を書き込むステップと、前記新たな制御プログラムの前記基本部以外の部分である固有部を、前記不揮発性メモリに書き込まずに、前記制御プログラムの固有部を記憶する揮発性メモリに書き込むステップと、を含む。これにより、書き込み速度が低い不揮発性メモリには制御プログラムの基本部のみが書き込まれ、固有部は書き込み速度が高い揮発性メモリに書き込まれる。したがって、制御プログラムのサイズが増大しても、制御プログラムの更新時間の増大を抑制することができる。
【0022】
<本開示の実施形態の詳細>
以下、図面を参照しつつ、本発明の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0023】
以下の実施形態では、通信システムを、光通信用の局側装置とした例について説明する。しかし、通信システムは光通信装置に限定されない。本実施形態に係る通信システムは、無線通信装置、有線通信装置等、光通信装置以外の通信装置であってもよい。
【0024】
[1.ネットワークシステムの構成]
図1は、本実施形態に係るネットワークシステムの全体構成の一例を示す図である。
図1に示すように、ネットワークシステム10は、光アクセスシステムであり、局側装置(OLT: Optical Line Terminal)11と、複数の宅側装置(ONU: Optical Network Unit)12と、PON(Passive Optical Network)回線13とを備える。なお、本実施形態では、GE?PON(Gigabit Ethernet-PON)、10G?EPON(10Gigabit Ethernet PON)等のイーサネットPONについて説明する(「イーサネット」、「ETHERNET」は登録商標)。
【0025】
OLT11のL2スイッチ23(
図2参照)には、インターネット等の上位ネットワーク50が接続される。
【0026】
ONU12のUNI(User Network Interface)ポート(図示せず)には、イーサネット通信が可能なユーザ通信装置を接続可能である。ONU12に接続されるユーザ通信装置の数及び種類は特に限定されない。例えば、ユーザ通信装置はパーソナルコンピュータ等の端末であっても、ルータ又はゲートウェイ等の中継装置であってもよい。つまり、ONU12には、中継装置を介してネットワークが接続されてもよい。
【0027】
OLT11には、複数のPON回線13が接続される。PON回線13は、光スプリッタ14と光ファイバ15,16とを備える光通信回線である。PON回線13は、1つの幹線光ファイバ15と複数の支線光ファイバ16とを含む。光スプリッタ14には、各光ファイバ15,16が接続される。OLT11から送信された光信号は、PON回線13の幹線光ファイバ15を通って光スプリッタ14によって分岐される。分岐した光信号は、支線光ファイバ16を通って各ONU12に伝送される。
【0028】
各ONU12から送信された光信号は、それぞれ支線光ファイバ16を通って光スプリッタ14によって集束される。集束された光信号は、幹線光ファイバ15を通ってOLT11に伝送される。PON回線13に用いられる光スプリッタ14は、外部からの電源供給を必要とせず、入力された光信号から受動的に光信号を分岐又は多重する。
【0029】
OLT11とONU12との接続確立後は、ユーザ通信装置がONU12及びOLT11を介して上位ネットワーク50へアクセスすることが可能となる。支線光ファイバ16に伝送される上り方向の光信号は、光スプリッタ14において合流する。従って、同じ波長の光信号が合流後に衝突しないための多重化が必要である。ネットワークシステム10では、MPCPに則った時分割多重化が行われる。具体的には、OLT11は、各ONU12から送信された制御フレーム(レポート)に基づいて、ONU12の内部に蓄積されたデータの上り方向の送信開始時刻及び送信許可量を演算する。
【0030】
次に、OLT11は、指示信号を挿入した制御フレーム(ゲート)を、PON回線13を介してそれぞれのONU12に送信する。各ONU12は、ゲートにより指定された時刻に、自己のバッファ内のデータの長さをレポートでOLT11に通知する。各ONU12は、指示信号が挿入されたゲートをOLT11から受信する。その指示信号に基づいて、各ONU12は、自己のバッファ内のデータをレポートとともにOLT11に送信する。
【0031】
[2.OLTの内部構成]
図2は、OLT11の内部構成の一例を示すブロック図である。
図2に示すように、OLT11は、1つの管理装置21と、複数の回線制御装置22と、L2スイッチ23とを含む。
【0032】
[2.1.回線制御装置の構成]
回線制御装置22は、PON回線13における通信を制御する。回線制御装置22は、例えば、PONのOSU(Optical Subscriber Unit)として動作する「PONユニット」である。回線制御装置22は、例えば、OLT11の筐体内に着脱することが可能な回路モジュールである。回線制御装置22は、対向装置であるONU12との通信を制御する通信制御装置である。
【0033】
回線制御装置22は、プロセッサ221と、不揮発性メモリ222と、揮発性メモリ223と、PON処理部224と、トランシーバであるPHY225と、光トランシーバ226とを含む。
【0034】
揮発性メモリ223は、例えばDRAM(Dynamic Random Access Memory)である。揮発性メモリ223は、SRAM(Static Random Access Memory)であってもよい。不揮発性メモリ222は、例えばFROM(Flash Read Only Memory)である。不揮発性メモリ222は、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、又はハードディスクであってもよい。不揮発性メモリ222には、コンピュータプログラムである制御プログラム300(
図3参照)の一部である基本部310が格納される。揮発性メモリ223には、制御プログラム300の基本部310以外の部分である固有部320が格納される。プロセッサ221は、CPUである。回線制御装置22の各機能は、制御プログラム300がプロセッサ221によって実行されることで実現される。制御プログラム300の詳細な構成は後述する。
【0035】
PHY225は、OSI参照モデルにおける物理層に対応するデバイスであり、例えば、バックプレーンイーサネット用のトランシーバである。PHY225は、管理装置21のトランシーバであるPHY215に接続されている。PHY225およびPHY215はそれぞれプロセッサ221およびプロセッサ211に接続されている。これにより、回線制御装置22のプロセッサ221は、管理装置21のプロセッサ211と通信することが可能である。
【0036】
光トランシーバ226は、光信号を送受信する回路を含む光デバイス(例えば、プラガブル光トランシーバ)よりなる。光トランシーバ226は、幹線光ファイバ15(
図1参照)に光学的に接続され、PON処理部224に電気的に接続される。
光トランシーバ226は、光信号と電気信号を相互に変換する。すなわち、光トランシーバ226は、ONU12からの光信号よりなる上り信号を電気信号に変換する。光トランシーバ226は、PON処理部224のからの電気信号よりなる下り信号を光信号に変換する。
【0037】
PON処理部224は、PONの通信規格に則った所定の通信処理などを実行する集積回路よりなる。
PON処理部224は、上り信号がONU12からの制御フレーム(レポート)である場合、当該ONU12についての上り方向の送信開始時刻及び送信許可量を決定し、制御フレーム(ゲート)を当該ONU12に通知する。
【0038】
PON処理部224は、上り信号に含まれるフレームが上位ネットワーク50へのデータフレームである場合、そのフレームをL2スイッチ23に送信する。
PON処理部224は、下り信号に含まれるフレームがONU12へのデータフレームである場合、そのフレームを光トランシーバ226に送信させる。
【0039】
L2スイッチ23は、受信したL2レイヤのフレームの宛先に応じて送信ポートを決定する集積回路よりなる。
L2スイッチ23は、上位ネットワーク50からの下り信号に含まれるフレームがONU12宛てである場合、そのフレームを対応するPON処理部224に送信する。
【0040】
L2スイッチ23は、PON処理部224からの上り信号に含まれるフレームが上位ネットワーク50へのデータフレームである場合、そのフレームを上位ネットワーク50に送信する。
【0041】
[2.2.管理装置の構成]
管理装置21は、複数の回線制御装置22に接続され、各回線制御装置22を管理する。管理装置21は、回線制御装置22における制御プログラム300の更新を管理する。管理装置21は、例えば、OLT11の筐体内に着脱することが可能な回路モジュールである。
【0042】
管理装置21は、プロセッサ211と、不揮発性メモリ212と、揮発性メモリ213と、インタフェース214と、PHY215とを含む。
【0043】
揮発性メモリ213は、例えばDRAMである。揮発性メモリ213は、SRAMであってもよい。不揮発性メモリ212は、例えばFROMである。不揮発性メモリ212は、EPROM、EEPROM、又はハードディスクであってもよい。不揮発性メモリ212には、管理装置21の機能を実現するためのコンピュータプログラムが格納される。プロセッサ211は、CPUである。管理装置21の各機能は、不揮発性メモリ212に格納されるコンピュータプログラムがプロセッサ211によって実行されることで実現される。
【0044】
PHY215は、OSI参照モデルにおける物理層に対応するデバイスであり、例えば、バックプレーンイーサネット用のトランシーバである。PHY215は、各回線制御装置22のトランシーバであるPHY225に接続されている。これにより、管理装置21のプロセッサ211は、回線制御装置22のプロセッサ221と通信することが可能である。
【0045】
インタフェース214は、外部の機器との間でデータを交換することができる。インタフェース214は、入出力装置であり、例えばUSB(Universal Serial Bus)ポート又はSDカードスロットを含む。さらにインタフェース214は、ネットワークインタフェースであってもよく、例えばイーサネットインタフェースであってもよい。インタフェース214には、USBポートに接続可能なフラッシュメモリ(USBメモリ)24、SDカードスロットに接続可能なフラッシュメモリ(SDカード)25が接続される。さらに、インタフェース214には、管理ネットワーク51を介して保守端末26又はサーバ27に接続される。
【0046】
[3.制御プログラムの構成]
図3は、本実施形態に係る制御プログラムの構成の一例を示す模式図である。上述のように、制御プログラム300は、基本部310と固有部320とを含む。
【0047】
基本部310は、制御プログラム300の骨格部分であり、ブートローダ311、OS(オペレーティングシステム)312を含む。さらに、基本部310は、通信制御プログラム(PG)313、モジュール制御PG314、更新制御PG315、第1整合性判定PG316、及び第2整合性判定PG317を含む。通信制御PG313は、ONU12との通信を制御するためのプログラム又はプログラムモジュールである。モジュール制御PG314は、回線制御装置22の各構成要素を制御するためのプログラム又はプログラムモジュールであり、複数のデバイスドライバを含む。更新制御PG315は、制御プログラム300の更新を制御するためのプログラム又はプログラムモジュールである。第1整合性判定PG316は、基本部310の更新の要否を判定するためのプログラム又はプログラムモジュールである。第2整合性判定PG317は、固有部320の更新の要否を判定するためのプログラム又はプログラムモジュールである。さらに基本部310は、基本部310を構成するファイルを示す第1構成情報318を含む。第1構成情報318は、通信制御プログラム(PG)313、モジュール制御PG314、更新制御PG315、第1整合性判定PG316、第2整合性判定PG317、及びこれらの各プログラムが使用するライブラリのそれぞれのファイル名及びパス(絶対パス)を含む。
【0048】
基本部310は、回線制御装置22の不揮発性メモリ222に格納される。
【0049】
固有部320は、回線制御装置22に固有の機能を実現する部分であり、警報管理PG321、回線管理PG322、回線制御PG323、デバッグ情報324、及び第2構成情報325を含む。警報管理PG321は、PON回線13における通信において発生する異常を検知し、報知するためのプログラム又はプログラムモジュールである。回線管理PG322は、PON回線13における通信を管理するためのプログラム又はプログラムモジュールである。回線制御PG323は、PON回線13における通信を制御するためのプログラム又はプログラムモジュールである。デバッグ情報324は、制御プログラム300のデバッグ処理に用いられるデータである。第2構成情報325は、警報管理PG321、回線管理PG322、回線制御PG323、及びこれらの各プログラムが使用するライブラリのそれぞれのファイル名及びパス(絶対パス)を含む。
【0050】
固有部320は、回線制御装置22の揮発性メモリ223に格納される。
【0051】
[4.回線制御装置の機能]
図4は、本実施形態に係る回線制御装置の機能の一例を示す機能ブロック図である。回線制御装置22は、第1リスト要求部231、第1リスト作成部232、第1整合性判定部233、第1取得部234、更新制御部236、第2リスト要求部237、第2リスト作成部238、第2整合性判定部239、及び第2取得部240の各機能を有する。
【0052】
管理装置21は、インタフェース214に接続された外部機器から制御プログラム300の更新用データである更新プログラムデータ330を受信することができる。つまり、新バージョンの更新プログラムデータ330の配布が開始されると、外部機器が管理装置21に更新プログラムデータ330を送信する。更新プログラムデータ330は、不揮発性メモリ212に格納される。不揮発性メモリ212に格納された更新プログラムデータ330は、各回線制御装置22に送信され、各回線制御装置22が更新プログラムデータ330を用いて制御プログラム300の更新を実行する。
【0053】
更新プログラムデータ330は、新バージョンの制御プログラム300の基本部310及び固有部320を含む。つまり、基本部310及び固有部320を含む制御プログラム300全体の更新プログラムデータ330が、不揮発性メモリ212に格納される。制御プログラム300の更新では、基本部310のみが更新されたり、固有部320のみが更新されたりすることがある。基本部310のみが更新される場合、更新プログラムデータ330には基本部310の更新部分のみが含まれる。固有部320のみが更新される場合、更新プログラムデータ330には固有部320の更新部分のみが含まれる。
【0054】
更新プログラムデータ330には、第1構成リスト310A及び第2構成リスト320Aが含まれる。
図5は、第1構成リストの構成の一例を示す図である。第1構成リスト310Aは、ファイル名フィールドとハッシュ値フィールドを含むテーブルである。ファイル名フィールドには、新バージョンの基本部310を構成する各ファイル(ブートローダ311、OS312、通信制御PG313、モジュール制御PG314、更新制御PG315、第1整合性判定PG316、第2整合性判定PG317、各プログラムによって使用されるライブラリ等)のファイル名及びパス(インストール先の絶対パス)が格納される。ハッシュ値フィールドには、ファイル毎に算出されたハッシュ値が格納される。ハッシュ値は、ファイルの同一性の検証に使用される。すなわち、ハッシュ値は、基本部310を構成する各ファイル毎に、ファイルの内容をハッシュ関数に適用することによって演算される。ハッシュ値は、例えば、MD5(Message Digest Algorithm 5),SHA(Secure Hash Algorithm 1)-1,SHA-256等の既存の暗号学的ハッシュ関数によって算出された値である。ハッシュ値に代えて、CRC(Cyclic Redundancy Check)のような誤り検出符号アルゴリズムによって算出される値を用いることもできる。
【0055】
図6は、第2構成リストの構成の一例を示す図である。第2構成リスト320Aは、ファイル名フィールドとハッシュ値フィールドを含むテーブルである。ファイル名フィールドには、新バージョンの固有部320を構成する各ファイル(警報管理PG321、回線管理PG322、回線制御PG323、デバッグ情報324、各プログラムによって使用されるライブラリ等)のファイル名及びパス(インストール先の絶対パス)が格納される。ハッシュ値フィールドには、ファイル毎に算出されたハッシュ値が格納される。
【0056】
第1リスト要求部231は、管理装置21に第1構成リスト310Aを要求する。管理装置21は、要求元の回線制御装置22へ第1構成リスト310Aを送信する。第1リスト要求部231は、管理装置21から送信された第1構成リスト310Aを受信する。
【0057】
第1リスト作成部232は、その時点において稼働している制御プログラム300(以下、「現行プログラム」ともいう)についての第1構成リストを作成する。具体的には、第1リスト作成部232は、不揮発性メモリ222に格納された基本部310の構成ファイル毎に、ハッシュ値を演算する。第1リスト作成部232は、各ファイルのファイル名と、演算されたハッシュ値とを含む第1構成リストを作成する。
【0058】
第1整合性判定部233は、現行プログラムの基本部310が、新バージョンの制御プログラム(以下、「新プログラム」ともいう)の基本部310と整合するか否かを判定する第1整合性判定処理を実行する。具体的には、第1整合性判定部233は、管理装置21から送信された第1構成リスト310Aと、第1リスト作成部232によって作成された第1構成リストとを比較し、両者が一致するか否かを判定する。両者が一致すれば新プログラムの基本部310と現行プログラムの基本部310とは同一であり(整合し)、不一致であれば新プログラムの基本部310と現行プログラムの基本部310とは同一でない(整合しない)。
【0059】
例えば、基本部310のバージョンアップだけでなく、不揮発性メモリ222内の基本部310の一部のファイルが破損していたり、消失したりする場合にも、第1整合性判定処理の結果は否定的となる。
【0060】
第1取得部234は、基本部310の更新が必要である場合に、新プログラムの基本部310を取得する。つまり、第1整合性判定部233によって、新プログラムの基本部310と現行プログラムの基本部310とが一致しないと判定された場合に、第1取得部234は、新プログラムの基本部310を含む更新プログラムデータ330を管理装置21に要求する。管理装置21は、要求元の回線制御装置22へ更新プログラムデータ330を送信する。第1取得部234は、管理装置21から送信された更新プログラムデータ330を受信する。
【0061】
更新制御部236は、制御プログラム300を更新する場合、新プログラムの基本部310を不揮発性メモリ222に書き込み、新プログラムの固有部320を揮発性メモリ223に書き込む。すなわち、更新制御部236は、第1取得部234が取得した基本部310を、不揮発性メモリ222に書き込む。さらに、更新制御部236は、後述するように、第2取得部240が取得した固有部320を、揮発性メモリ223に書き込む。
【0062】
更新制御部236は、制御プログラム300の起動シーケンスにおいて、第1整合性判定処理の結果が否定的である場合に、管理装置21から提供された新プログラムの基本部310を、不揮発性メモリ222に書き込む。これにより、不揮発性メモリ222にインストールされていた基本部310が、新バージョンの基本部310に更新される。
【0063】
例えば、基本部310のバージョンアップでなく、不揮発性メモリ222内の基本部310の一部のファイルが破損していたり、消失したりする場合も、第1取得部234は、管理装置21に最新バージョンの制御プログラム300の基本部310を要求する。破損した基本部310が最新バージョンである場合、取得した基本部310のバージョンは、破損した基本部310のバージョンと同一である。したがって、この場合、基本部310がバージョンアップされるのではなく、現行バージョンの基本部310が修復される。
【0064】
第2リスト要求部237は、管理装置21に第2構成リスト320Aを要求する。管理装置21は、要求元の回線制御装置22へ第2構成リスト320Aを送信する。第2リスト要求部237は、管理装置21から送信された第2構成リスト320Aを受信する。
【0065】
第2リスト作成部238は、現行プログラムについての第2構成リストを作成する。具体的には、第2リスト作成部238は、揮発性メモリ223に格納された固有部320の構成ファイル毎に、ハッシュ値を演算する。第2リスト作成部238は、各ファイルのファイル名と、演算されたハッシュ値とを含む第2構成リストを作成する。
【0066】
第2整合性判定部239は、現行プログラムの固有部320が、新プログラムの固有部320と整合するか否かを判定する第2整合性判定処理を実行する。具体的には、第2整合性判定部239は、管理装置21から送信された第2構成リスト320Aと、第2リスト作成部238によって作成された第2構成リストとを比較し、両者が一致するか否かを判定する。両者が一致すれば新プログラムの固有部320と現行プログラムの固有部320とは同一であり(整合し)、不一致であれば新プログラムの固有部320と現行プログラムの固有部320とは同一でない(整合しない)。
【0067】
例えば、揮発性メモリ223がDRAMである場合、保持する情報の喪失を防ぐために定期的なリフレッシュ(記憶保持動作)が必要である。このため、プロセッサ211内のメモリコントローラが定期的にリフレッシュコマンドを発行する。例えば、基本部310が再起動すると、起動シーケンスの一部期間においてリフレッシュコマンドが発行されない場合がある。このため、基本部310が再起動されると、DRAMに保持されている情報が必ずしも保証できない。つまり、リフレッシュが実行されない期間において、揮発性メモリ223に記憶されていた情報の一部又は全部が破損したり、消失したりする可能性がある。このように揮発性メモリ223内の固有部320の一部のファイルが破損していたり、消失したりする場合にも、第2整合性判定処理の結果は否定的となる。
【0068】
第2取得部240は、固有部320の更新が必要である場合に、新プログラムの固有部320を取得する。つまり、第2整合性判定部239によって、新プログラムの固有部320と現行プログラムの固有部320とが一致しないと判定された場合に、第2取得部240は、新プログラムの固有部320を含む更新プログラムデータ330を管理装置21に要求する。管理装置21は、要求元の回線制御装置22へ更新プログラムデータ330を送信する。第2取得部240は、管理装置21から送信された更新プログラムデータ330を受信する。
【0069】
更新制御部236は、第2取得部240が取得した固有部320を、揮発性メモリ223に書き込む。
【0070】
更新制御部236は、制御プログラム300の起動シーケンスにおいて、第2整合性判定処理の結果が否定的である場合に、管理装置21から提供された新プログラムの固有部320を、揮発性メモリ223に書き込む。これにより、揮発性メモリ223にインストールされていた固有部320が、新バージョンの固有部320に更新される。
【0071】
例えば、固有部320のバージョンアップでなく、揮発性メモリ223内の固有部320の一部のファイルが破損していたり、消失したりする場合も、第2取得部240は、管理装置21に最新バージョンの制御プログラム300の固有部320を要求する。破損した固有部320が最新バージョンである場合、取得した固有部320のバージョンは、破損した固有部320のバージョンと同一である。したがって、この場合、固有部320がバージョンアップされるのではなく、現行バージョンの固有部320が修復される。
【0072】
[5.回線制御装置の動作]
図7は、本実施形態に係る回線制御装置の制御プログラム更新動作の手順の一例を示すフローチャートである。
【0073】
プロセッサ221は、新プログラムの第1構成リスト310Aを管理装置21に要求する。管理装置21のプロセッサ211は、要求を受け付けると、不揮発性メモリ212から第1構成リスト310Aを読み出し、要求元の回線制御装置22へ送信する。回線制御装置22は、管理装置21から送信された第1構成リスト310Aを受信する(ステップS101)。
【0074】
プロセッサ221は、現行プログラムの第1構成リストを作成する(ステップS102)。この処理では、プロセッサ221は、不揮発性メモリ222から第1構成情報を読み出すと共に、基本部310における構成ファイル毎にハッシュ値を演算する。プロセッサ221は、第1構成情報のファイル名と、演算されたハッシュ値とを組み合わせて第1構成リストを作成する。
【0075】
プロセッサ221は、受信された第1構成リスト310Aと、作成された第1構成リストとを比較する(ステップS103)。
【0076】
受信された第1構成リスト310Aと、作成された第1構成リストとが一致しない場合(ステップS104においてNO)、プロセッサ221は、新プログラムの基本部310と現行プログラムの基本部310とが整合しないと判定する。この場合、プロセッサ221は、更新プログラムデータ330を管理装置21に要求する。管理装置21のプロセッサ211は、要求を受け付けると、不揮発性メモリ212から更新プログラムデータ330を読み出し、要求元の回線制御装置22へ送信する。回線制御装置22は、管理装置21から送信された更新プログラムデータ330を受信する(ステップS105)。
【0077】
プロセッサ221は、不揮発性メモリ222から現行プログラムの基本部310を削除する(ステップS106)。ここで、基本部310の一部が更新される場合、プロセッサ221は更新対象部分のみを削除することができる。
【0078】
プロセッサ221は、受信された更新プログラムデータ330に含まれる基本部310の構成ファイルを、不揮発性メモリ222に書き込む(ステップS107)。更新プログラムデータ330が圧縮アーカイブファイルである場合、プロセッサ221は、更新プログラムデータを解凍し、基本部310の構成ファイルを取得し、これらのファイルを不揮発性メモリ222に書き込む。
【0079】
プロセッサ221は、基本部310のインストールが完了すると、回線制御装置22を再起動する(ステップS108)。制御プログラム300の更新対象に、基本部310だけでなく固有部320も含まれる場合、固有部320の更新は、回線制御装置22の再起動後に実行される。
【0080】
受信された第1構成リスト310Aと、作成された第1構成リストとが一致する場合(ステップS104においてYES)、プロセッサ221は、新プログラムの基本部310と現行プログラムの基本部310とが整合すると判定する。この場合、基本部310を更新する必要がない。
【0081】
プロセッサ221は、新プログラムの第2構成リスト320Aを管理装置21に要求する。管理装置21のプロセッサ211は、要求を受け付けると、不揮発性メモリ212から第2構成リスト320Aを読み出し、要求元の回線制御装置22へ送信する。回線制御装置22は、管理装置21から送信された第2構成リスト320Aを受信する(ステップS109)。
【0082】
プロセッサ221は、現行プログラムの第2構成リストを作成する(ステップS110)。この処理では、プロセッサ221は、揮発性メモリ223から第2構成情報を読み出すと共に、固有部320の構成ファイル毎にハッシュ値を演算する。プロセッサ221は、第2構成情報におけるファイル名と、演算されたハッシュ値とを組み合わせて第2構成リストを作成する。
【0083】
プロセッサ221は、受信された第2構成リスト320Aと、作成された第2構成リストとを比較する(ステップS111)。
【0084】
受信された第2構成リスト320Aと、作成された第2構成リストとが一致しない場合(ステップS112においてNO)、プロセッサ221は、新プログラムの固有部320と現行プログラムの固有部320とが整合しないと判定する。この場合、プロセッサ221は、更新プログラムデータ330を管理装置21に要求する。管理装置21のプロセッサ211は、要求を受け付けると、不揮発性メモリ212から更新プログラムデータ330を読み出し、要求元の回線制御装置22へ送信する。回線制御装置22は、管理装置21から送信された更新プログラムデータ330を受信する(ステップS113)。
【0085】
なお、ステップS105において既に更新プログラムデータ330が受信されている場合、ステップS113の処理を省略することができる。
【0086】
プロセッサ221は、揮発性メモリ223から現行プログラムの固有部320を削除する(ステップS114)。ここで、固有部320の一部が更新される場合、プロセッサ221は更新対象部分のみを削除することができる。
【0087】
プロセッサ221は、受信された更新プログラムデータ330に含まれる固有部320の構成ファイルを、揮発性メモリ223に書き込む(ステップS115)。更新プログラムデータ330が圧縮アーカイブファイルである場合、プロセッサ221は、更新プログラムデータを解凍し、固有部320の構成ファイルを取得し、これらのファイルを揮発性メモリ223に書き込む。以上で、固有部320の更新(又は修復)が完了する。
【0088】
プロセッサ221は、固有部320のインストールが完了すると、固有部320の更新部分を再起動する(ステップS116)。これにより、制御プログラム300の全体を再起動する必要がない。したがって、基本部310が再起動することによる回線制御装置22の機能の一時的な停止を回避することができる。以上で、制御プログラム300の更新動作が終了する。
【0089】
次に、回線制御装置22の起動シーケンスを説明する。
図8A及び
図8Bは、本実施形態に係る回線制御装置の起動シーケンスの一例を示すフローチャートである。
図8Aは、起動シーケンスの前半部分を示し、
図8Bは、その後半部分を示す。
【0090】
プロセッサ221は、不揮発性メモリ222からブートローダ311を読み出し、ブートローダ311を起動する(ステップS201)。プロセッサ221は、不揮発性メモリ222からOS312を読み出し、OS312を起動する(ステップS202)。なお、不揮発性メモリ222に記憶されたプログラム(ブートローダ311、OS312、通信制御PG313、モジュール制御PG314、更新制御PG315、第1整合性判定PG316、及び第2整合性判定PG317)の起動は、低速な不揮発性メモリ222から高速な揮発性メモリ223にプログラムを移した後に実行することを含む。
【0091】
プロセッサ221は、不揮発性メモリ222から通信制御PG313を読み出し、通信制御PG313を起動する。プロセッサ221は、不揮発性メモリ222からモジュール制御PG314を読み出し、モジュール制御PG314を起動する(ステップS203)。
【0092】
プロセッサ221は、不揮発性メモリ222から第1整合性判定PG316を読み出し、第1整合性判定PG316を起動する(ステップS204)。
【0093】
プロセッサ221は、新プログラムの第1構成リスト310Aを管理装置21に要求する。管理装置21のプロセッサ211は、要求を受け付けると、不揮発性メモリ212から第1構成リスト310Aを読み出し、要求元の回線制御装置22へ送信する。回線制御装置22は、管理装置21から送信された第1構成リスト310Aを受信する(ステップS205)。
【0094】
プロセッサ221は、現行プログラムの第1構成リストを作成する(ステップS206)。この処理では、プロセッサ221は、不揮発性メモリ222から第1構成情報を読み出すと共に、基本部310における構成ファイル毎にハッシュ値を演算する。プロセッサ221は、第1構成情報のファイル名と、演算されたハッシュ値とを組み合わせて第1構成リストを作成する。
【0095】
プロセッサ221は、受信された第1構成リスト310Aと、作成された第1構成リストとを比較する(ステップS207)。
【0096】
受信された第1構成リスト310Aと、作成された第1構成リストとが一致しない場合(ステップS208においてNO)、プロセッサ221は、新プログラムの基本部310と現行プログラムの基本部310とが整合しないと判定する。この場合、プロセッサ221は、不揮発性メモリ222から更新制御PG315を読み出し、更新制御PG315を起動する(ステップS209)。プロセッサ221は、更新プログラムデータ330を管理装置21に要求する。管理装置21のプロセッサ211は、要求を受け付けると、不揮発性メモリ212から更新プログラムデータ330を読み出し、要求元の回線制御装置22へ送信する。回線制御装置22は、管理装置21から送信された更新プログラムデータ330を受信する(ステップS210)。
【0097】
プロセッサ221は、不揮発性メモリ222から現行プログラムの基本部310を削除する(ステップS211)。ここで、新プログラムと現行プログラムとの間で基本部310の一部が不一致である場合、プロセッサ221は基本部310の不一致部分のみを削除することができる。
【0098】
プロセッサ221は、受信された更新プログラムデータ330に含まれる基本部310の構成ファイルを、不揮発性メモリ222に書き込む(ステップS212)。更新プログラムデータ330が圧縮アーカイブファイルである場合、プロセッサ221は、更新プログラムデータを解凍し、基本部310の構成ファイルを取得し、これらのファイルを不揮発性メモリ222に書き込む。以上で、基本部310の更新又は修復が完了する。
【0099】
プロセッサ221は、基本部310のインストールが完了すると、回線制御装置22を再起動する(ステップS213)。制御プログラム300の更新対象に、基本部310だけでなく固有部320も含まれる場合、固有部320の更新は、回線制御装置22の再起動後に実行される。
【0100】
受信された第1構成リスト310Aと、作成された第1構成リストとが一致する場合(ステップS208においてYES)、プロセッサ221は、新プログラムの基本部310と現行プログラムの基本部310とが整合すると判定する。この場合、基本部310を更新する必要がない。
【0101】
プロセッサ221は、不揮発性メモリ222から第2整合性判定PG317を読み出し、第2整合性判定PG317を起動する(ステップS214)。
【0102】
プロセッサ221は、新プログラムの第2構成リスト320Aを管理装置21に要求する。管理装置21のプロセッサ211は、要求を受け付けると、不揮発性メモリ212から第2構成リスト320Aを読み出し、要求元の回線制御装置22へ送信する。回線制御装置22は、管理装置21から送信された第2構成リスト320Aを受信する(ステップS215)。
【0103】
プロセッサ221は、現行プログラムの第2構成リストを作成する(ステップS216)。この処理では、プロセッサ221は、揮発性メモリ223から第2構成情報を読み出すと共に、固有部320の構成ファイル毎にハッシュ値を演算する。プロセッサ221は、第2構成情報におけるファイル名と、演算されたハッシュ値とを組み合わせて第2構成リストを作成する。
【0104】
プロセッサ221は、受信された第2構成リスト320Aと、作成された第2構成リストとを比較する(ステップS217)。
【0105】
受信された第2構成リスト320Aと、作成された第2構成リストとが一致しない場合(ステップS218においてNO)、プロセッサ221は、新プログラムの固有部320と現行プログラムの固有部320とが整合しないと判定する。この場合、プロセッサ221は、不揮発性メモリ222から更新制御PG315を読み出し、更新制御PG315を起動する(ステップS219)。プロセッサ221は、更新プログラムデータ330を管理装置21に要求する。管理装置21のプロセッサ211は、要求を受け付けると、不揮発性メモリ212から更新プログラムデータ330を読み出し、要求元の回線制御装置22へ送信する。回線制御装置22は、管理装置21から送信された更新プログラムデータ330を受信する(ステップS220)。
【0106】
なお、ステップS210において既に更新プログラムデータ330が受信されている場合、ステップS220の処理を省略することができる。
【0107】
プロセッサ221は、揮発性メモリ223から現行プログラムの固有部320を削除する(ステップS221)。ここで、新プログラムと現行プログラムとの間で固有部320の一部が不一致である場合、プロセッサ221は固有部320の不一致部分のみを削除することができる。
【0108】
プロセッサ221は、受信された更新プログラムデータ330に含まれる固有部320の構成ファイルを、揮発性メモリ223に書き込む(ステップS222)。更新プログラムデータ330が圧縮アーカイブファイルである場合、プロセッサ221は、更新プログラムデータを解凍し、固有部320の構成ファイルを取得し、これらのファイルを揮発性メモリ223に書き込む。以上で、固有部320の更新又は修復が完了する。
【0109】
受信された第2構成リスト320Aと、作成された第2構成リストとが一致する場合(ステップS218においてYES)、プロセッサ221は、新プログラムの固有部320と現行プログラムの固有部320とが整合すると判定する。この場合、プロセッサ221は、不揮発性メモリ222から更新制御PG315を読み出し、更新制御PG315を起動する(ステップS223)。ただし、固有部320は更新されない。
【0110】
ステップS222又はS223の後、プロセッサ221は、揮発性メモリ223から警報管理PG321を読み出し、警報管理PG321を起動する。プロセッサ221は、揮発性メモリ223から回線管理PG322を読み出し、回線管理PG322を起動する。プロセッサ221は、揮発性メモリ223から回線制御PG323を読み出し、回線制御PG323を起動する(ステップS224)。以上で、回線制御装置22の起動シーケンスが終了する。
【0111】
[6.変形例]
上述した実施形態においては、基本部310と固有部320とを別々に更新する構成について述べたが、これに限定されない。制御プログラム300の更新対象が基本部310及び固有部320の両方である場合、基本部310と固有部320とを共に更新することもできる。すなわち、プロセッサ221が、更新プログラムデータ330に含まれる基本部310を不揮発性メモリ222に書き込み、固有部320を揮発性メモリ223に書き込んでもよい。
【0112】
上述した実施形態においては、1つの筐体内に管理装置21と複数の回線制御装置22とが配置された構成について述べたが、これに限定されない。OLT11の筐体内に1つの管理装置21と1つの回線制御装置22とが設けられてもよい。さらに、管理装置21を省略した構成であってもよい。例えば、OLT11の筐体内に複数の回線制御装置22が配置され、1つの回線制御装置22がマスター装置として機能し、他の回線制御装置22がスレーブ装置として機能してもよい。マスター装置の不揮発性メモリに更新プログラムデータ330が格納され、スレーブ装置において制御プログラムを更新する際に、マスター装置がスレーブ装置に更新プログラムデータ330を提供してもよい。さらに他の例として、回線制御装置22が外部機器(USBメモリ24、SDカード25、保守端末26、サーバ27等)から更新プログラムデータをダウンロードしてもよい。
【0113】
さらに、管理装置21及び回線制御装置22のそれぞれが独立した筐体を有する装置であり、管理装置21及び回線制御装置22が互いに通信ネットワークを介して接続された構成であってもよい。
【0114】
[7.効果]
以上のように、OLT11は、回線制御装置22を備える。回線制御装置22は、対向装置であるONU12との通信を制御する。回線制御装置22は、不揮発性メモリ222と、揮発性メモリ223と、更新制御部236とを備える。不揮発性メモリ222は、回線制御装置22の制御プログラム300の一部である基本部310を記憶する。揮発性メモリ223は、制御プログラム300の基本部310以外の部分である固有部320を記憶する。更新制御部236は、制御プログラム300を更新する。更新制御部236は、制御プログラム300を更新する場合、新たな制御プログラム300の基本部310を不揮発性メモリ222に書き込み、新たな制御プログラム300の固有部320を不揮発性メモリ222に書き込まずに揮発性メモリ223に書き込む。これにより、書き込み速度が低い不揮発性メモリ222には制御プログラム300の基本部310のみが書き込まれ、固有部320は書き込み速度が高い揮発性メモリ223に書き込まれる。したがって、制御プログラム300のサイズが増大しても、制御プログラム300の更新時間の増大を抑制することができる。
【0115】
回線制御装置22は、第1取得部234を備えてもよい。第1取得部234は、基本部310の更新が必要である場合に新たな制御プログラム300の基本部310を取得する。更新制御部236は、取得された新たな制御プログラム300の基本部310を不揮発性メモリ222に書き込んでもよい。これにより、例えば基本部310だけの更新が必要な場合、固有部320を更新することなく、基本部310のみを更新することができる。したがって、固有部320の書き込み時間が削減され、制御プログラム300の更新時間の増大をより一層抑制することができる。
【0116】
回線制御装置22は、第2取得部240を備えてもよい。第2取得部240は、固有部320の更新が必要である場合に新たな制御プログラム300の固有部320を取得する。更新制御部236は、取得された新たな制御プログラム300の固有部320を不揮発性メモリ222に書き込まずに揮発性メモリ223に書き込んでもよい。これにより、例えば固有部320だけの更新が必要な場合、基本部310を更新することなく、固有部320のみを更新することができる。したがって、基本部310の書き込み時間が削減され、制御プログラム300の更新時間の増大をより一層抑制することができる。
【0117】
回線制御装置22は、第1整合性判定部233を備えてもよい。第1整合性判定部233は、制御プログラム300を起動する起動シーケンスにおいて、起動している制御プログラム300の基本部310が、更新用の制御プログラム300を提供する管理装置21に保持されている制御プログラム300の基本部310と整合するか否かを判定する第1整合性判定処理を実行する。更新制御部236は、第1整合性判定処理の結果が否定的である場合に、管理装置21から提供された制御プログラム300の基本部310を、不揮発性メモリ222に書き込んでもよい。これにより、例えば、基本部310が更新されていない場合だけでなく、不揮発性メモリ222の基本部310の一部又は全部が破損していたり、消失していたりする場合に、基本部310を不揮発性メモリ222に書き込むことができる。
【0118】
回線制御装置22は、第2整合性判定部239を備えてもよい。第2整合性判定部239は、制御プログラム300を起動する起動シーケンスにおいて、起動している制御プログラム300の固有部320が、更新用の制御プログラム300を提供する管理装置21に保持されている制御プログラム300の固有部320と整合するか否かを判定する第2整合性判定処理を実行する。更新制御部236は、第2整合性判定処理の結果が否定的である場合に、管理装置21から提供された制御プログラム300の固有部320を、不揮発性メモリ222に書き込まずに揮発性メモリ223に書き込んでもよい。これにより、例えば、固有部320が更新されていない場合だけでなく、揮発性メモリ223の固有部320の一部又は全部が破損していたり、消失していたりする場合に、固有部320を揮発性メモリ223に書き込むことができる。
【0119】
管理装置21から制御プログラム300の固有部320の一部が提供される場合、更新制御部236は、提供される固有部320の一部を不揮発性メモリ222に書き込まずに揮発性メモリ223に書き込んでもよい。回線制御装置22は、揮発性メモリ223に書き込まれた固有部320の一部を起動してもよい。これにより、固有部320のうちの必要な部分のみを揮発性メモリ223に書き込むことができ、書き込み時間の増大を抑制することができる。
【0120】
基本部310は、ブートローダ311、OS312、及び第2整合性判定処理に使用されるプログラムを含んでもよい。固有部320は、ONU12との通信の制御に用いられるプログラムを含んでもよい。これにより、制御プログラム300の基本的な機能部分が基本部310に含まれ、回線制御装置22固有の機能部分が固有部320に含まれる。したがって、制御プログラム300のサイズを増大させる原因となる機能追加部分の一部又は全部を固有部320に含めることができ、制御プログラム300の更新時間の増大を抑制することができる。さらに、固有部320は基本部310より更新頻度が高いため、回線制御装置22の運用期間にわたって更新時間の増大を抑制することができる。
【0121】
OLT11は、管理装置21をさらに備えてもよい。管理装置21は、複数の回線制御装置22を管理する。管理装置21は、更新用の制御プログラム300を回線制御装置22に送信してもよい。これにより、管理装置21を用いることによって複数の回線制御装置22の制御プログラム300の更新を円滑に実施することができる。
【0122】
[8.補記]
今回開示された実施の形態はすべての点で例示であって、制限的ではない。本発明の権利範囲は、上述の実施形態ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味及びその範囲内でのすべての変更が含まれる。
【符号の説明】
【0123】
10 ネットワークシステム
11 局側装置(通信ネットワーク)
12 宅側装置
13 PON回線
14 光スプリッタ
15 幹線光ファイバ
16 支線光ファイバ
21 管理装置
22 回線制御装置(通信制御装置)
23 L2スイッチ
24 フラッシュメモリ(USBメモリ)
25 フラッシュメモリ(SDカード)
26 保守端末
27 サーバ
50 上位ネットワーク
51 管理ネットワーク
211 プロセッサ
212 不揮発性メモリ
213 揮発性メモリ
214 インタフェース(IF)
215 PHY
221 プロセッサ
222 不揮発性メモリ
223 揮発性メモリ
224 PON処理部
225 PHY
226 光トランシーバ(TRx)
231 第1リスト要求部
232 第1リスト作成部
233 第1整合性判定部
234 第1取得部
236 更新制御部
237 第2リスト要求部
238 第2リスト作成部
239 第2整合性判定部
240 第2取得部
300 制御プログラム
310 基本部
310A 第1構成リスト
311 ブートローダ
312 オペレーティングシステム(OS)
313 通信制御プログラム
314 モジュール制御プログラム
315 更新制御プログラム
316 第1整合性判定プログラム
317 第2整合性判定プログラム
318 第1構成情報
320 固有部
320A 第2構成リスト
321 警報管理プログラム
322 回線管理プログラム
323 回線制御プログラム
324 デバッグ情報
325 第2構成情報
330 更新プログラムデータ