Windows Server 2003のサポート終了が間近だ。2015年7月15日(日本時間)には、セキュリティに関する修正プログラムが配布されなくなり、脆弱性を悪用するサイバー攻撃に無防備にさらされる。多くの企業が急ピッチで移行作業に取り組むなか、課題となるのがVisual Basic(VB)アプリケーションへの対応だ。OSをWindows Server 2008や2012などの新しいバージョンに切り替えるとVisual Basic 6.0で作られたVBアプリケーションはこれまでと同じようには動作しなくなる。そんななか、アプリケーションを新規に作り変えるか、マイグレーションするかといった決断を迫られることになっているのだ。

最大の課題は散在するVBアプリケーション

システムズ

マイグレーション事業本部 企画推進部 販促・広報担当部長

中本周志氏

マイグレーション事業を20年にわたって展開しているシステムズの中本周志氏(マイグレーション事業本部 企画推進部 販促・広報担当部長)は、VBアプリケーションの置かれた状況をこう説明する。

「VBアプリケーションは開発が容易ということもあり、現場の業務を反映したい企業に欠かせないツールになっています。その一方で、現場任せのままできちんと管理されていなかったり、影響範囲を特定できていなかったりというケースも少なくありません。いざ移行しようとすると、多大なコストと時間がかかることがわかり、頭を抱えてしまうのです」

実際、Windows Server 2003のサポート切れが近づくにつれ、VBアプリのマイグレーションの依頼は際立って増えてきている状況にあるという。アプリケーションの移行だけで1年近くかかるケースが多く、まさに対応に追われているといった状況だ。そうした課題に対して、システムズが提案しているのが、オープンレガシー再構築ソリューション「Windows Server 2003 マイグレーション」だ。

システムズのWindows Server 2003 マイグレーションは、プログラムソースコードを変換するというアプローチを使ったVBアプリケーションのマイグレーションであり、VBアプリから.NETアプリへの変換を支援するユニークなソリューションとなっている。基本的にどんなVBアプリでも、最新の環境で動作する業務アプリケーションとして継続利用できるようになる。

VB6とVB.NETの非互換を解消するプログラムソースコード変換

プログラムソースコード変換というアプローチとはどのようなものなのか。中本氏によると、これはVBアプリケーションが持つ”厄介さ”に対応するなかで生まれた手法だという。VBアプリケーションの厄介さとは、さまざまなバージョンが存在し、それらが依存する開発環境や実行(ランタイム)環境、サードパーティ製ツールが異なっていることから生じる。

例えば、VB6.0の製品サポートはすでに終了しているが、実行環境については「"動作する"よう、その互換性に向けて努力を続ける」(マイクロソフトの2012年の声明)として、Windows Server 2008やWindows 7/8でも動作するVB6.0ランタイムが提供されている。しかし、一方で、開発やメンテナンスに必須となる開発環境については、Windows 7やサードパーティ製ライブラリの動作など、サポート外がほとんどだ。このように、OSのサポート切れで移行が困難であるうえ、仮に新しい環境に載せ替えることができても継続的に使用するには課題が山積みの状況である。

システムズ

東京事業所 ソリューション開発グループ 主事

板倉利幸氏

システムズの板倉利幸氏(東京事業所 ソリューション開発グループ 主事)は、「こうした課題に対応するため、マイグレーションでは、ステップを踏んで最新の環境に向けて変換を行っていくことが大きなポイントです」と話す。つまり、細かなバージョンごとに存在するコードの差異を解消しながら、最新の環境で動作する"VB.NETアプリケーション"へと移行させていくわけだ。

具体的には、以下のようなステップを踏む。まずは、開発ツールのVisual Studio 2008で提供されている「Microsoftアップグレードウィザード」を使って、VB 6.0プロジェクトをVB.NET 2008プロジェクトにアップグレードする。これは、VB 6.0をアップグレードできるのは、Visual Studio 2008までであるためだ。

その際に、プログラムソースコードの非互換を解消していくわけだが、ここで、システムズの長年のノウハウが生かされる。「例えば、VB.NETでは、文字列のバイト数を取得するVB6.0のLenB関数がなくなっています。アップグレードウィザードではエラーとなって変換できないため、事前に変換が可能なコードに書き換えておきます。このほかにも、配列の添え字の違いや丸付き数字の扱いなど、変換のためのルールは数千件に及びます」と板倉氏。

こうしてウィザードによって無事変換されたVB.NET 2008プロジェクトは、今度は、VB.NET 2012プロジェクトに変換される。変換は長年のノウハウが詰まった「変換ツール」によって一括処理することができる。このようにして、最新の開発環境と実行環境に対応したVB.NETアプリケーションへと生まれ変わっていくのだ。

プログラム変換ツールに凝縮された長年のノウハウ

もっとも、変換ツールがあれば、完全というわけでもない。必要な業務に合わせて、必要なプログラムソースコードだけを効率よく変換していくことが求められる。そうした再設計や再構築のノウハウをあわせて提供できることがシステムズの大きな強みになっている。板倉氏よると、システムズによるマイグレーションのアプローチは「手戻りを発生させない」ことが最大の特徴だ。

「変換設計の前段階として、資産棚卸や調査・分析を行っています。変換設計では、パターン化した問題点ごとに機能や変換方法を検討し、ツール変換と手変換とを使い分けています。さらに、変換テストや変換ツールの品質検証も行い、最終的にお客さまの運用テスト時の支援やその際に発生した課題対応までをサポートします」(板倉氏)

このように、マイグレーションといっても、新規開発と同様に、設計、製造(変換)、テストを実施し、戻り作業をおさえ、品質を高めているというわけだ。もっとも新規開発と同様のコストと期間がかかったのでは意味がない。システムズでは、パターン化した変換ツールをうまく組み合わせることで、期間とコストを抑えたマイグレーションを可能にしているのがポイントだ。

例えば、ある企業の人事給与システムのケースでは、アップグレードウィザード後のエラー数が3万件を超えていたという。3万件を超えるエラーを手動で修正することは現時的には不可能に近い。そこで変換ツールでこのうちの1万5,000件超を処理し、工期を6カ月にまで短縮させた。このほかにも、17万件超のエラーのうち5万件を自動処理した生産販売システムの事例や、1万2,000件超のエラーのうち5,600件を自動処理し、3カ月で対応した作業管理システムの事例がある。

中本氏は、「Windows Server 2003上で構築されたシステムの移行は、ハードウェアの単純な置き換えでは済まないことが多いです。特に、VBアプリケーションは規模によっては数カ月のプロジェクトとなるので、早めに着手することが大切です。ただ、そこで手戻りが発生すればムダなコストと時間が発生してしまいます。当社の『Windows Server 2003 マイグレーション』は、そうした点からも、スムーズな移行を支援できるソリューションです」と重ねて強調する。

ビジネスに機敏に対応できる点がオープンシステムのメリットだ。だが、その分、システムのライフサイクルが短く、オープンレガシーの問題にもつながりやすい。レガシーシステムのマイグレーションで20年にわたって顧客をサポートしてきたシステムズは、Windows Server 2003にまつわる課題に対しても力強い味方であることは間違いないだろう。