列車運転情報伝達システムの更新

特集論文

列車運転情報伝達システムの更新
神戸事業所

2.2

１．まえがき

技術第4部

交通システム第3課
増田 敦

システム更新への対応について

ソフトウェア構成は、DBにOracleを採用し、実行基盤

当社がソフトウェア開発を担ってきた列車運転情報伝達は、.NetFrameworkを使用している。開発言語は、Visual

システムは、列車運行計画に必要な顧客業務を支援するシ

Basic(VB)、Visual C#(C#)、VBAマクロ(Excelマクロ)及ステムである。

びC言語により作成されている。

今回、列車運転情報伝達システムの装置老朽化に伴うシステム更新に当たり、長く安定したシステム運用を実現す本社・支社・地区ｵﾍﾟﾚｰｼｮﾝｾﾝﾀｰるため、OS、ミドルウェア、実行基盤を刷新した。システ

サーバ群

ム更新は2か年計画となっており、初年度は端末更新を実施

箇所

端末 現業区を含め、最大列車運転情報伝達システムし、現在はサーバ更新に取り組んでいる。

・基本計画
・波動計画

運転支援帳票作成ｻｰﾊﾞ

本稿では、初年度実施した端末更新における課題と対策

台

運転支援ﾃﾞｰﾀｻｰﾊﾞについて報告する。

運転報ｻﾌﾞｻｰﾊﾞ ～現業区箇所

・点呼簿
・携帯時刻表・勤務指定表

端末…

運転報ｻｰﾊﾞ
車両充当ｻｰﾊﾞ

２．システム構成とシステム更新への対応

様ﾈｯﾄﾜｰｸ

2.1

車両配置区

車載端末

システム概要端末 最大

運転支援ﾃﾞｰﾀ

給与計算ｼｽﾃﾑ 検修管理ｼｽﾃﾑのデータを一元管理し、以下を提供している。

図１．全体構成図

・列車運行業務に必要な日時帳票の出力
・列車の車載端末に対し、列車ダイヤ情報や工事徐行情

現行端末と新端末の変更点を表1に示す。

報等の運転支援情報の提供
・給与計算システムに対する運転士勤務情報提供

表１．現行端末と新端末の変更点

・検修管理システムに対する列車走行実績情報提供
全体構成図を図1に示す。機器はデータセンターに設置すサブサーバ・運転報サーバ・車両充当サーバの5種類全26台

項目
OS
ﾌﾚｰﾑﾜｰｸのサーバと、本社・支社・地区オペレーションセンター(19箇DB接続

Oracle Client11g

OfficeMicrosoftOffice2003

る運転支援帳票作成サーバ・運転支援データサーバ・運転報所)、現業区(32箇所)、車両配置区

(注2)

台
・充当計画
・充当実績

本システムは、運転士の勤務計画や列車の充当計画など(注1)

箇所(15箇所)に設置する常時180台(最大250台)のクライアント端末(以下、端末)で構成されている。

現行端末
WindowsXP x32

新端末
Windows10 x64

課題－.NetFramework 1.0.NetFramework 4.7－ODP.NETManaged Driver 12g
Microsoft
Office2016○○

表1の変更点のうち、OS及びフレームワークの差異は、システム運用時間は24時間365日となっており、システ上位互換が保たれており、ソースコードを大きく修正する

ム停止はハードウェアメンテナンス時のみとなっている。

必要はなかった。

そのため、障害改修時のリリース作業時間については、業

一方、DB接続は、接続方式を見直し、現行システムと同務に影響を与えないようにシステム停止時間を最小限とすじ機能を提供する必要があった。3章でDB接続方式変更にることが要求されている。

よる課題と対策を述べる。
また、Officeの差異は、VBAマクロ仕様変更(大幅なバージョンアップ)による対応が必要であり、4章でOffice更新による課題と対策を述べる。
さらに、クライアント端末を段階的に現行端末から新端（注１）運転士が在籍する場所。
（注２）列車の滞泊、整備等を行う場所。

末へ更新するため、過渡期の運用として、現行システムと21

列車運転情報伝達システムの更新同じ機能を提供する必要があった。5章では、その混在環境た。各機能では、データベースへの接続方法を共通化で運用するための課題と対策を述べる。

し、DB共通ライブラリ内のメソッドをコールするよう修正した。DB接続方式の共通化を図3に示す。

３．DB接続方式変更による課題と対策【現行接続方式】【 運転報サーバ 】

3.1

課題

機能ごとに異なる接続方式を 採用

現行端末のDB接続方式にはOracle Client11gをインス

デ ー タベ ー ス【現行端末】

トールし、インストール項目に含まれるAPI機能のライブラリ

oo4o(Oracle Objects for OLE)やODP.NETを使用して・・・機能いた。新端末では、端末構築作業の効率向上という要件がライブラリ

ライブラリ

・・・

機能

機能あるため、Oracle Client11gのインストール不要なODP.
NET Managed DriverのAPI機能であるODP.NETを採用【新規接続方式】

した。図2に方式の変更を示す。

各機能は 接続方式と して 共通ラ イ ブ
ラ リ を 採用

【運転報サーバ】【新端末】【 運転報サーバ 】
デ ー タベ ー ス【新端末】
共通ライブラリ

接続共通ライブラリ

ライブラリ

端末アプリケーション

ライブラリ

ライブラリ

・・・

機能

共通ライブラリ

機能

・・・

機能

図３．DB接続方式の共通化(2) 現行端末でVBAマクロによりDB接続している機能は、DBアクセス機能と、それ以外の画面機能に分割する方式を採用した。採用した方式は、DBアクセス機能

図２．DB接続方式の変更を、.NetFramework上で動作するとともにVBAマク
ODP.NETを採用するに当たっては、以下の課題があった。

ロから呼び出し可能なVisual C#で実装する。VBAマ(1) 現行端末でDB接続に使用しているoo4oについて、新クロで作成した画面機能から、このDBアクセス機能

端末ではOracle Client11gをインストールしないたを利用するものである。図4にVBAマクロの機能分割

め、使用できない。

を示す。

(2) VBAマクロからODP.NETを参照できない。この理由【現行接続方式】

は、ODP.NETが.NetFramework上で動作する一方、ある。

3.2【運転報サーバ】【現行端末】VBAマクロが.NetFramework上で動作しないためでデ ー タベ ー ス

ライブラリ

基礎デ ー タ
登録機能マクロ）（対策

DB接続方式変更による変更箇所、影響箇所を洗い出した
結果、各機能のDB接続方式は、ADO(ActiveX Data

現行端末の 基礎デ ー タ登マ ク ロ では録機能
ラ イ ブ ラ リ を 使用

【新規接続方式】

Objects)、oo4o、ODP.NET、VBAマクロが各機能で個

基礎デ ー タ登録機能を 画面機能と機能に 機能分割

別に実装されており、接続方式が統一されていなかった。

【新端末】(1) DB接続を行う機能は、ODP.NET Managed Driverア クセス

共通ラ イ ブ ラ リを使用したDBアクセス用の共通ライブラリ(ODP.

ライブラリ

Netライブラリ)を新規に作成する方針とした。これに基礎デ ー タ
登録 画面機能マクロ）（より、DB接続やSQL発行処理の共通化を図るとともに、機能ごとに異なるDBアクセス方式を用いて開発

基礎デ ー タア ク セス 機能登録）（

図４．VBAマクロの機能分割を行うことによる生産性低下や処理の複雑化を回避し
22

列車運転情報伝達システムの更新

性能改善結果の一例を表4に示す。

４．Office更新による課題と対策
4.1

表４．帳票出力時間の性能改善結果

課題

本システムでは、VBAマクロにて帳票出力機能を実装し、約60帳票が各現場で出力されている。今回のシステム更新
では、Excel2003からExcel2016へ大幅なバージョンアッ

現行端末

新端末
性能改善前

新端末
性能改善後

3分23秒

4分49秒

2分19秒

(2)描画位置ズレプを行う。帳票出力機能はExcel2003に準拠して実装されExcel仕様変更により、描画位置ズレが発生する。ており、Excel2016へのバージョンアップでは、以下の対①図形内の文字描画位置ズレ策が必要である。

具体例を図5に示す。

(1)VBAマクロ処理時間の増加(2)図形描画位置ズレ

4.2

Excel2003

Excel2016(修正前)
文字が右下にずれる対策(1)VBAマクロ処理時間の増加
Excel2016では、グラフ機能の拡充や処理最大行数が拡張されており、その影響により、描画処理、再計算、セル操作等で著しく性能が劣化した。そのため、表2の項テキストのインデント値変更により右下に文字がずれている目を実施し性能改善を図った。

図５．図形内の文字描画位置ズレ

表２．性能改善実施項目
項番
12
3456
7

②図表内の図形描画位置表示ズレ

項目
罫線描画処理の見直し
コピー&ペースト処理の見直し
フォント設定処理の見直し
行挿入処理の見直し
行クリア処理の見直し
セル結合処理の見直し
リボンの非表示化

具体例を図6に示す。

Excel2003

Excel2016(修正前)
列車番号表示位置が下にずれる

項番1～6の対策としては、セル選択による値取得・値設定にselect、selection, ActiveCellメソッドを使用している箇所を洗い出した。これらのメソッドはセル選択操作が発

テキストボックス内の文字表示位置の基準が変更されたた
め、文字の表示位置がずれている

生し、処理の性能劣化につながっていたため洗い出した箇所すべてについて、メソッドの使用回避を検討し、回避できなかった箇所は、cells、Rowsメソッドへの置き換えを

図６．図表内の図形描画位置表示ズレ実施した。ソース修正の一例を表3に示す。

図5、図6の描画位置ズレは、Excel2016でテキストボッ

表３．ソース修正例
修正前

Cells(Row, Col).SelectActiveCell.Characters(Start:=pi, Length:=pl)._Font.Size = pfont.Size - 1

修正後'Cells(Row, Col).Select 'コメントアウト.Cells(Row,Col) .Characters(Start:=pi,Length:=pl)._Font.Size = pfont.Size - 1

クスのデフォルトのインデント値の変更や、テキストボックス内の文字列の表示位置の変更が原因である。そのため、図形内の文字位置や列番表記位置を指定している箇所について位置ズレを修正するためのロジックを追加し、図形描画を行っている帳票は、Excelの仕様変更による影響がないことを試験で確認した。

また、項番7の対策としては、リボン表示による性能劣化を防ぐため、リボンツールバーの非表示処理を追加した。
性能改善実施項目の対応を実施し、帳票出力時間の性能改善が図れ、要求仕様である現行端末を上回る処理性能を実現した。
23

列車運転情報伝達システムの更新

図８．端末向けシステムアップデートの実現方式

５．新旧端末混在環境における課題と対策
5.1【運転報サーバ】

課題

デ ー タベ ー ス

列車運転情報伝達システムのシステムアップデート機能
は、端末のモジュールを最新に保つために運転報サーバ接続時にアップデートモジュールを端末に配信する機能である。以下の仕組みによりシステムアップデート機能を実装している。
詳細な仕組みを図7に示す。
・システムアップデート要求を送信(図7.②)
・アップデート対象モジュールを抽出(図7.④)
・アップデート対象モジュールを取得(図7.⑧)

現行端末向けｼｽﾃﾑｱｯﾌﾟﾃﾞｰﾄｻｰﾊﾞ機能

新端末向け
ｼｽﾃﾑｱｯﾌﾟﾃﾞｰﾄｻｰﾊﾞ機能

ﾓｼﾞｭｰﾙ提供
ﾌｫﾙﾀﾞ
現行端末向けﾓｼﾞｭｰﾙ提供
ﾌｫﾙﾀﾞ
新端末向け

ﾓｼﾞｭｰﾙﾓｼﾞｭｰﾙ

ｱｯﾌﾟﾃﾞｰﾄ
ﾓｼﾞｭｰﾙ
圧縮ﾌｧｲﾙ

ｱｯﾌﾟﾃﾞｰﾄ
ﾓｼﾞｭｰﾙ
圧縮ﾌｧｲﾙ【現行端末】

端末更新の過渡期は、現行端末と新端末を同一ネットワーク上に同居させる必要があった。現行端末と新端末を同一ネットワーク上に同居させるに当たり、以下の課題が発生した。
・運転報サーバ上で、現行端末と新端末の双方に向けて

ｼｽﾃﾑｱｯﾌﾟﾃﾞｰﾄ

【新端末】

ｼｽﾃﾑｱｯﾌﾟﾃﾞｰﾄ

現行端末向けｼｽﾃﾑｱｯﾌﾟﾃﾞｰﾄｸﾗｲｱﾝﾄ機能

新端末向け
ｼｽﾃﾑｱｯﾌﾟﾃﾞｰﾄｸﾗｲｱﾝﾄ機能

実行ﾊﾟｽ
ﾓｼﾞｭｰﾙﾌｫﾙﾀﾞ

実行ﾊﾟｽ
ﾓｼﾞｭｰﾙﾌｫﾙﾀﾞ

各機能
ﾓｼﾞｭｰﾙ

各機能
ﾓｼﾞｭｰﾙシステムアップデート機能を提供する必要があった。
・現行端末、新端末での運転報サーバDB入力結果につい現行端末向け、新端末向けのそれぞれでシステムアップて、同じ結果になることを保証する必要があった。

デート機能を用意することで、現行端末、新端末を切り分【端末】

ｼ ｽ ﾃ ﾑ ｱ ｯﾌﾟﾃ ﾞｰ ﾄ
ｸﾗｲｱ ﾝﾄ機能

実行ﾊﾟｽ
ﾓｼﾞｭｰﾙﾌｫﾙﾀﾞ

けた。その結果、現行端末の業務には影響を与えることの【運転報サーバ】②ｼｽﾃﾑｱｯﾌﾟﾃﾞｰﾄ要求⑦ｱｯﾌﾟﾃﾞｰﾄﾓｼﾞｭｰﾙ準備完了応答ない切替えを実現した。

5.3

ｼ ｽ ﾃ ﾑ ｱ ｯﾌﾟﾃ ﾞｰ ﾄ
ｻ ｰ ﾊ ﾞ機能

④ﾊﾞｰｼﾞｮﾝ情報ﾌｧｲﾙとﾓｼﾞｭｰﾙ提供ﾌｫﾙﾀﾞ内のﾌｧｲﾙ差異からｱｯﾌﾟﾃﾞｰﾄﾓｼﾞｭｰﾙを抽出①実行ﾊﾟｽよりﾊﾞｰｼﾞｮﾝ情報ﾌｧｲﾙ作成

現行端末と新端末が同じDBに対して読み書きを行うシス
テム構成のため、現行端末・新端末でのDB入力結果が同じ③ﾊﾞｰｼﾞｮﾝ情報ﾌｧｲﾙ送信

同一性の確認は、入力データの分類に従ってテーブルデータを抽出するツールを作成して実施した。

⑤ｱｯﾌﾟﾃﾞｰﾄﾓｼﾞｭｰﾙの作成⑩実行ﾊﾟｽへのｺﾋﾟｰ

DB試験構成を図9に示す。

ﾓｼﾞｭｰﾙﾓｼﾞｭｰﾙ⑨ｱｯﾌﾟﾃﾞｰﾄ圧縮ﾌｧｲﾙの解凍
ｱｯﾌﾟﾃﾞｰﾄ
ﾓｼﾞｭｰﾙ
圧縮ﾌｧｲﾙとなる同一性を確保する必要があった。

ﾓｼﾞｭｰﾙ提供ﾌｫﾙﾀﾞ

ﾊﾞｰｼﾞｮﾝ
情報ﾌｧｲﾙﾊﾞｰｼﾞｮﾝ
情報ﾌｧｲﾙ⑧ｱｯﾌﾟﾃﾞｰﾄ圧縮ﾌｧｲﾙ取得

現行端末向け【運転報サーバ】⑥ｱｯﾌﾟﾃﾞｰﾄﾓｼﾞｭｰﾙの圧縮
ｱｯﾌﾟﾃﾞｰﾄ
ﾓｼﾞｭｰﾙ
圧縮ﾌｧｲﾙ

新端末向け【運転報サーバ】
上のデータ比較ﾃｰﾌﾞﾙﾃﾞｰﾀ

図７．システムアップデートの仕組み

5.2

新旧端末混在環境でのデータ同一性への対策ﾃｰﾌﾞﾙﾃﾞｰﾀ

ﾃｰﾌﾞﾙﾃﾞｰﾀ抽出
ﾂｰﾙ

ﾃｰﾌﾞﾙﾃﾞｰﾀ抽出ﾂｰﾙ

デ ー タベ ー ス

デ ー タベ ー ス

システムアップデート機能への対策

端末更新による影響を最小限にするため、現行端末向けシステムアップデート機能については修正を実施しないこ

入力内容及び表示内容の比較ととし、新端末向けシステムアップデート機能を運転報サー【現行端末】

バに対して新規で実装した。過渡期における現行端末と新

【新端末】
各機能
ﾓｼﾞｭｰﾙ

各機能
ﾓｼﾞｭｰﾙ

端末のシステムアップデートの実現方式を図8に示す。

図９．DB試験構成

24

列車運転情報伝達システムの更新

試験は、データ入力操作後、テーブルデータ抽出ツールで取得した結果に差異がないことを確認した。また、このツールを使用することで、現地試験工数の削減も図ることができた。

６．むすび
本稿では、列車運転情報伝達システムの端末更新に関する課題と対策を示した。本対策により、新端末移行後であっても現行端末と同様に業務ができる環境を顧客に提供できた。端末更新ではOS、Office環境の変化により操作性や性能が影響を受ける傾向にある。変更点・変化点を整理し、アプリケーションへの影響調査することが重要である。
本稿では、端末更新について述べたが、現在、サーバ更新中である。引き続き、端末更新で得たノウハウを活用し、顧客業務に影響を与えることなくシステム更新が実現できるよう取り組む。
最後に本システムの開発納入に際し、貴重な御意見、御指導をいただいた関係者の方々に深く感謝申し上げる。

執筆者紹介
増田敦

マスダアツシ

2007年入社。主に列車運行管理システ
ムのソフトウェア開発に従事。現在、神戸事業所技術第4部交通システム第3課。

25