このページの本文へ

ここから本文

テクノロジー

技術レポート:アーカイブ

Category:交通システム

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

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

当社がソフトウェア開発を担ってきた列車運転情報伝達システムは、列車運行計画に必要な顧客業務を支援するシステムである。今回、列車運転情報伝達システムの装置老朽化に伴うシステム更新に当たり、長く安定したシステム運用を実現するため、OS、ミドルウェア、実行基盤を刷新した。システム更新は2か年計画となっており、初年度は端末更新を実施し、現在はサーバ更新に取り組んでいる。本稿では、初年度実施した端末更新における課題と対策について報告する。

列車運転情報伝達システムの更新[PDFファイル]

参考情報:

  • この技術レポートは、当社が展開する公共・エネルギー事業の交通システムソリューションに係る技術について著述されたものです。
  • 交通システムソリューションは、神戸事業所伊丹事業所が提供しています。
列車運転情報伝達システムの更新
2.2 システム更新への対応についてソフトウェア構成は、DBにOracleを採用し、実行基盤は、.NetFrameworkを使用している。開発言語は、VisualBasic(VB)、Visual C#(C#)、VBAマクロ(Excelマクロ)及びC言語により作成されている。現行端末と新端末の変更点を表1に示す。表1の変更点のうち、OS及びフレームワークの差異は、上位互換が保たれており、ソースコードを大きく修正する必要はなかった。一方、DB接続は、接続方式を見直し、現行システムと同じ機能を提供する必要があった。3章でDB接続方式変更による課題と対策を述べる。また、Officeの差異は、VBAマクロ仕様変更(大幅なバージョンアップ)による対応が必要であり、4章でOffice更新による課題と対策を述べる。さらに、クライアント端末を段階的に現行端末から新端末へ更新するため、過渡期の運用として、現行システムと
1.まえがき
当社がソフトウェア開発を担ってきた列車運転情報伝達システムは、列車運行計画に必要な顧客業務を支援するシステムである。今回、列車運転情報伝達システムの装置老朽化に伴うシステム更新に当たり、長く安定したシステム運用を実現するため、OS、ミドルウェア、実行基盤を刷新した。システム更新は2か年計画となっており、初年度は端末更新を実施し、現在はサーバ更新に取り組んでいる。本稿では、初年度実施した端末更新における課題と対策について報告する。
2.システム構成とシステム更新への対応
2.1 システム概要本システムは、運転士の勤務計画や列車の充当計画などのデータを一元管理し、以下を提供している。・列車運行業務に必要な日時帳票の出力・列車の車載端末に対し、列車ダイヤ情報や工事徐行情報等の運転支援情報の提供・給与計算システムに対する運転士勤務情報提供・検修管理システムに対する列車走行実績情報提供全体構成図を図1に示す。機器はデータセンターに設置する運転支援帳票作成サーバ・運転支援データサーバ・運転報サブサーバ・運転報サーバ・車両充当サーバの5種類全26台のサーバと、本社・支社・地区オペレーションセンター(19箇所)、現業区(注1)(32箇所)、車両配置区(注2)(15箇所)に設置する常時180台(最大250台)のクライアント端末(以下、端末)で構成されている。システム運用時間は24時間365日となっており、システム停止はハードウェアメンテナンス時のみとなっている。そのため、障害改修時のリリース作業時間については、業務に影響を与えないようにシステム停止時間を最小限とすることが要求されている。特集論文列車運転情報伝達システムの更新神戸事業所 技術第4部 交通システム第3課増田 敦(注1)運転士が在籍する場所。(注2)列車の滞泊、整備等を行う場所。本社・支社・地区オペレーションセンター箇所サーバ群運転報サーバ運転報サブサーバ~運転支援データサーバ運転支援帳票作成サーバ端末現業区を含め、最大台車両充当サーバ端末最大台車両配置区箇所・基本計画・波動計画給与計算システム車載端末様ネットワーク運転支援データ検修管理システム・充当計画・充当実績列車運転情報伝達システム端末現業区箇所・点呼簿・携帯時刻表・勤務指定表…図1.全体構成図項目現行端末新端末課題OS WindowsXP x32 Windows10 x64 -フレームワーク.NetFramework 1.0 .NetFramework 4.7 -DB接続Oracle Client11gODP.NETManaged Driver 12g○OfficeMicrosoftOffice2003MicrosoftOffice2016○表1.現行端末と新端末の変更点22列車運転情報伝達システムの更新た。各機能では、データベースへの接続方法を共通化し、DB共通ライブラリ内のメソッドをコールするよう修正した。DB接続方式の共通化を図3に示す。(2) 現行端末でVBAマクロによりDB接続している機能は、DBアクセス機能と、それ以外の画面機能に分割する方式を採用した。採用した方式は、DBアクセス機能を、.NetFramework上で動作するとともにVBAマクロから呼び出し可能なVisual C#で実装する。VBAマクロで作成した画面機能から、このDBアクセス機能を利用するものである。図4にVBAマクロの機能分割を示す。同じ機能を提供する必要があった。5章では、その混在環境で運用するための課題と対策を述べる。3.DB接続方式変更による課題と対策3.1 課題現行端末のDB接続方式にはOracle Client11gをインストールし、インストール項目に含まれるA P I 機能のoo4o(Oracle Objects for OLE)やODP.NETを使用していた。新端末では、端末構築作業の効率向上という要件があるため、Oracle Client11gのインストール不要なODP.NET Managed DriverのAPI機能であるODP.NETを採用した。図2に方式の変更を示す。ODP.NETを採用するに当たっては、以下の課題があった。(1) 現行端末でDB接続に使用しているoo4oについて、新端末ではOracle Client11gをインストールしないため、使用できない。(2) VBAマクロからODP.NETを参照できない。この理由は、ODP.NETが.NetFramework上で動作する一方、VBAマクロが.NetFramework上で動作しないためである。3.2 対策DB接続方式変更による変更箇所、影響箇所を洗い出した結果、各機能のDB接続方式は、ADO(ActiveX DataObjects)、oo4o、ODP.NET、VBAマクロが各機能で個別に実装されており、接続方式が統一されていなかった。(1) DB接続を行う機能は、ODP.NET Managed Driverを使用したDBアクセス用の共通ライブラリ(ODP.Netライブラリ)を新規に作成する方針とした。これにより、DB接続やSQL発行処理の共通化を図るとともに、機能ごとに異なるDBアクセス方式を用いて開発を行うことによる生産性低下や処理の複雑化を回避し端末アプリケーション【新端末】【運転報サーバ】接続図2.DB接続方式の変更【運転報サーバ】・・・【新規接続方式】【現行端末】ライブラリ ライブラリ機能機能機能ごとに異なる接続方式を採用データベースライブラリ機能・・・【運転報サーバ】・・・【新端末】共通ライブラリ機能各機能は接続方式として共通ライブラリを採用データベース・・・【現行接続方式】共通ライブラリ共通ライブラリ機能機能ライブラリライブラリライブラリ図3.DB接続方式の共通化【運転報サーバ】ライブラリ基礎データ登録画面機能( マクロ)基礎データ登録機能( マクロ)データベース【現行端末】現行端末の基礎データ登録機能マクロではライブラリを使用【新端末】基礎データ登録機能を画面機能とアクセス機能に機能分割【現行接続方式】共通ライブラリ基礎データ登録アクセス機能( )ライブラリ【新規接続方式】図4.VBAマクロの機能分割23列車運転情報伝達システムの更新性能改善結果の一例を表4に示す。(2)描画位置ズレExcel仕様変更により、描画位置ズレが発生する。①図形内の文字描画位置ズレ具体例を図5に示す。②図表内の図形描画位置表示ズレ具体例を図6に示す。図5、図6の描画位置ズレは、Excel2016でテキストボックスのデフォルトのインデント値の変更や、テキストボックス内の文字列の表示位置の変更が原因である。そのため、図形内の文字位置や列番表記位置を指定している箇所について位置ズレを修正するためのロジックを追加し、図形描画を行っている帳票は、Excelの仕様変更による影響がないことを試験で確認した。4.Office更新による課題と対策4.1 課題本システムでは、VBAマクロにて帳票出力機能を実装し、約60帳票が各現場で出力されている。今回のシステム更新では、Excel2003からExcel2016へ大幅なバージョンアップを行う。帳票出力機能はExcel2003に準拠して実装されており、Excel2016へのバージョンアップでは、以下の対策が必要である。(1)VBAマクロ処理時間の増加(2)図形描画位置ズレ4.2 対策(1)VBAマクロ処理時間の増加Excel2016では、グラフ機能の拡充や処理最大行数が拡張されており、その影響により、描画処理、再計算、セル操作等で著しく性能が劣化した。そのため、表2の項目を実施し性能改善を図った。項番1~6の対策としては、セル選択による値取得・値設定にselect、selection, ActiveCellメソッドを使用している箇所を洗い出した。これらのメソッドはセル選択操作が発生し、処理の性能劣化につながっていたため洗い出した箇所すべてについて、メソッドの使用回避を検討し、回避できなかった箇所は、cells、Rowsメソッドへの置き換えを実施した。ソース修正の一例を表3に示す。また、項番7の対策としては、リボン表示による性能劣化を防ぐため、リボンツールバーの非表示処理を追加した。性能改善実施項目の対応を実施し、帳票出力時間の性能改善が図れ、要求仕様である現行端末を上回る処理性能を実現した。項番項目1 罫線描画処理の見直し2 コピー&ペースト処理の見直し3 フォント設定処理の見直し4 行挿入処理の見直し5 行クリア処理の見直し6 セル結合処理の見直し7 リボンの非表示化表2.性能改善実施項目修正前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表3.ソース修正例現行端末新端末性能改善前新端末性能改善後3分23秒4分49秒2分19秒表4.帳票出力時間の性能改善結果Excel2003 Excel2016(修正前)文字が右下にずれるテキストのインデント値変更により右下に文字がずれている図5.図形内の文字描画位置ズレExcel2003 Excel2016(修正前)列車番号表示位置が下にずれるテキストボックス内の文字表示位置の基準が変更されたため、文字の表示位置がずれている図6.図表内の図形描画位置表示ズレ24列車運転情報伝達システムの更新現行端末向け、新端末向けのそれぞれでシステムアップデート機能を用意することで、現行端末、新端末を切り分けた。その結果、現行端末の業務には影響を与えることのない切替えを実現した。5.3 新旧端末混在環境でのデータ同一性への対策現行端末と新端末が同じDBに対して読み書きを行うシステム構成のため、現行端末・新端末でのDB入力結果が同じとなる同一性を確保する必要があった。同一性の確認は、入力データの分類に従ってテーブルデータを抽出するツールを作成して実施した。DB試験構成を図9に示す。5.新旧端末混在環境における課題と対策5.1 課題列車運転情報伝達システムのシステムアップデート機能は、端末のモジュールを最新に保つために運転報サーバ接続時にアップデートモジュールを端末に配信する機能である。以下の仕組みによりシステムアップデート機能を実装している。詳細な仕組みを図7に示す。・システムアップデート要求を送信(図7.②)・アップデート対象モジュールを抽出(図7.④)・アップデート対象モジュールを取得(図7.⑧)端末更新の過渡期は、現行端末と新端末を同一ネットワーク上に同居させる必要があった。現行端末と新端末を同一ネットワーク上に同居させるに当たり、以下の課題が発生した。・運転報サーバ上で、現行端末と新端末の双方に向けてシステムアップデート機能を提供する必要があった。・現行端末、新端末での運転報サーバDB入力結果について、同じ結果になることを保証する必要があった。5.2 システムアップデート機能への対策端末更新による影響を最小限にするため、現行端末向けシステムアップデート機能については修正を実施しないこととし、新端末向けシステムアップデート機能を運転報サーバに対して新規で実装した。過渡期における現行端末と新端末のシステムアップデートの実現方式を図8に示す。モジュール モジュールモジュール提供フォルダ実行パスモジュールフォルダ②システムアップデート要求③バージョン情報ファイル送信システムアップデートクライアント機能システムアップデートサーバ機能④バージョン情報ファイルとモジュール提供フォルダ内のファイル差異からアップデートモジュールを抽出⑤アップデートモジュールの作成⑦アップデートモジュール準備完了応答⑩実行パスへのコピーバージョン情報ファイル①実行パスよりバージョン情報ファイル作成バージョン情報ファイル⑧アップデート圧縮ファイル取得【端末】 【運転報サーバ】アップデートモジュール圧縮ファイル⑥アップデートモジュールの圧縮アップデートモジュール圧縮ファイル⑨アップデート圧縮ファイルの解凍図7.システムアップデートの仕組み【運転報サーバ】データベース各機能モジュール【現行端末】現行端末向けシステムアップデートサーバ機能アップデートモジュール圧縮ファイルモジュール提供フォルダ現行端末向けモジュール新端末向けシステムアップデートサーバ機能アップデートモジュール圧縮ファイルモジュール提供フォルダ新端末向けモジュール現行端末向けシステムアップデートクライアント機能実行パスモジュールフォルダ各機能モジュール【新端末】新端末向けシステムアップデートクライアント機能実行パスモジュールフォルダシステムアップデート システムアップデート図8.端末向けシステムアップデートの実現方式各機能モジュール【現行端末】各機能モジュール【新端末】現行端末向け【運転報サーバ】データベース新端末向け【運転報サーバ】データベース入力内容及び表示内容の比較テーブルデータ 上の テーブルデータデータ比較テーブルデータ抽出ツールテーブルデータ抽出ツール図9.DB試験構成25列車運転情報伝達システムの更新執筆者紹介増田 敦 マスダ アツシ2007年入社。主に列車運行管理システムのソフトウェア開発に従事。現在、神戸事業所技術第4部交通システム第3課。試験は、データ入力操作後、テーブルデータ抽出ツールで取得した結果に差異がないことを確認した。また、このツールを使用することで、現地試験工数の削減も図ることができた。6.むすび本稿では、列車運転情報伝達システムの端末更新に関する課題と対策を示した。本対策により、新端末移行後であっても現行端末と同様に業務ができる環境を顧客に提供できた。端末更新ではOS、Office環境の変化により操作性や性能が影響を受ける傾向にある。変更点・変化点を整理し、アプリケーションへの影響調査することが重要である。本稿では、端末更新について述べたが、現在、サーバ更新中である。引き続き、端末更新で得たノウハウを活用し、顧客業務に影響を与えることなくシステム更新が実現できるよう取り組む。最後に本システムの開発納入に際し、貴重な御意見、御指導をいただいた関係者の方々に深く感謝申し上げる。