某市役所様では昭和46年に汎用コンピュータを導入して以来、行政事務を効率的に遂行することを目的に住民記録、税、福祉等の基幹情報システムを職員が中心となり開発、運用、保守してきました。従来のz/OSで構築されたシステムは、安定性があり仕様が大きく変わることがないことから、職員にとってはたいへん使いやすいシステムであり、そのまま使い続けることは可能でした。
時代の変化とともに情報システムの分野でも急速に技術革新が進み、中規模から小規模ユーザーに向けたコンピュータ機器全般で性能や信頼性が向上し、ハードウェア、ソフトウェアは低価格化してきました。
このような状況においても依然として某市役所様の汎用コンピュータ機器にかかる費用が高額のままであることやグローバルスタンダード(世界標準)なシステム構成と乖離してきていることを解消するために平成18年度からシステム最適化を検討しはじめました。
某市役所様の技術力が高かったことは言うまでもありませんが、コード体系を大きく変えられなかったこと、適格な切換え判断をされて性急なカットオーバーを避けられたことが、殆どトラブルもなく移行を成功裏に終えられた要因だと思います。
Windowsやunixなどのオープン系(SJIS/EUC/Unicode)と従来の汎用コンピュータ(EBCDIC+IBM漢字)とではコード体系が大きく異なります。これは同じCOBOLを単純に移行した場合であってもプログラム・ロジックへの影響は少なくはありません。
例えばEBCDICでの1バイト文字 '1'(x'F1')と'A' (x'C1') の論理比較結果は'1'>'A'になりますが、SJISやUnicodeでは'1'(x'31')と'A' (x'41') の論理比較結果は'1'<'A'となるためプログラム・ロジックをそのまま持込むとまったく異なる結果になってしまいます。
オープン系の一部のCOBOL言語にはCOLATING SEQUENCE(文字コードの重み付け)のような機能を用いて汎用コンピュータ同じような文字順位付けすることもできますが、思わぬところに弊害が出ることがあるため重み付けを採用するには十分な検討が必要です。
これらは今回のIBM汎用機に関わらず国産機メーカーも含めた汎用機のコード体系(EBCDIC/EBCDIK)全般に言えることです。
今回某市役所様では、本来ならば同じIBM漢字コードを選択すればコード変換する必要はありませんでしたが、移行後のメリットを考えてコード変換が必要なEBCDIC+Unicode準拠(CCSID:1399)のコード体系を選択されました。これによりUnicodeと同じ文字(2バイト系のみ)を使えるためIBM漢字特有の外字登録が不要になり、地方自治体特有の問題である外字領域不足への対応強化が行えました。
System−i(IBMi)は従来の汎用機の性格を踏襲しながらオープン系をサポートしているコンピュータです。データは基本的にリレーショナル・データベースとして扱われるためDBとしてはオープン系に対応しています。その一方でCOBOLやPL/I等の第三世代言語(3GL)ではREAD/WRITE等の言語独自の入出力命令でもDBをアクセスすることができます。勿論3GLでもSQL命令を使ってアクセスすることもできます。また同じDBをWindowsやUnixのアプリケーションからもリレーショナル・データベースとしてアクセスできます。
現在ではデータベースだけでなくWebサービス(SOA)への対応が強化されてよりオープンな環境が提供されています。これによりCOBOL言語やRPG言語で書かれた業務プログラムを簡単にオープン系の環境から呼び出すこともできるようになっています。
今回System−i(IBMi)を選択されたことで更にオープン化への筋道が付け易くなったのではないかと思っています。