Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
C++

旧バージョンのDelphi / C++Builderアプリケーションを使いつづけることは可能か? [JAPAN]

Windows 10 Fall Creators Update が 2017年10月に配信開始となりました。しかし、Delphi / C++Builderユーザーの中には、様々な理由で古いOSや古い開発環境で作成したアプリを使い続けているケースがあると思います。

皆さんの不安、質問は、こうしたシステムはいつまで使い続けることができるのか?いつまで延命できるのか?あるいは、使い続けるとどのような問題があるのか?といったことではないでしょうか。

古いOSを使い続けることのリスクとは?

まず、はじめに古いOSを使い続けることにどのような問題があるのかを考えてみましょう。旧バージョンで作成されたアプリケーションの動作保証OSが古いOSであるからというような理由で、これを使い続けたいというのが主な動機です。

古いOSを使い続けたり、あるいは管理が行き届かない状態であることは、それ自体が大きなリスクを抱えることになります。

たとえば古いOSによるリスクというと、直近では2017年4~5月に猛威をふるったWannaCryの件が思い出されますね。

Windows 系 OS を対象としたランサムウェアであるWannaCryは 2017年3月にパッチがリリースされたはずの SMB v1の脆弱性を利用するものでした。

つまりWannaCry はゼロデイの脆弱性ではなく本来ならばパッチを適用していれば影響を受けないはずのものです。しかしパッチ未適用によって感染する状況が発生しました。Kaspersky 社の情報では Windows 7 の感染が最も多かったそうです。
https://twitter.com/craiu/status/865562842149392384

Windows10 は2017年4月の機能更新アップデートである Creators Update で対策済みのため、Creators Update を適用したPCは難を逃れたようです。
https://blogs.technet.microsoft.com/jpsecurity/2017/05/14/ransomware-wannacrypt-customer-guidance/

Windows XP は WannaCry では感染ではなくブルースクリーンになる事例が多かったようですが、それでもマイクロソフト社が後追いでパッチをリリースしました。

また、Windows 7 や 8.1 については、別のネガティブな話もあります。2017年3月以降、CPUがIntel/AMD第7世代以降の場合にWindows7, Windows8.1向けのアップデートが提供されなくなっています
https://support.microsoft.com/ja-jp/help/4012982/the-processor-is-not-supported-together-with-the-windows-version-that

このようなケースではそもそも管理自体が行えないわけですが、管理できていない、あるいは管理できない、いずれの場合でも結果的に大事故につながる恐れがあります。

古いアプリケーションを使い続けることのリスクとは?

では、OSを最新にして、古いアプリケーションを新しい環境で使う場合はどうでしょうか。

一般論としては、あるバージョンの開発環境がリリースされた後に登場したOSで利用できるかは保証されていません。ある時点の開発環境でビルドされたアプリケーションは、その開発環境がサポートするOSで利用できます。

そして古い開発環境でビルドしたアプリケーションを新しいOSや新しいハードウェア環境で利用すると、以下のような問題が出る場合があります。

・マルチコアCPUや64bit OSで正しく動作しない
・UACに対応しておらず管理者権限で実行せねばならない
・OSの仕様変更により複数のDLLを読み込む場合に処理が遅くなる
・高DPI環境でアプリ内のレイアウトが壊れる場合がある

これらの問題は、いずれも古いバージョンの開発環境では想定されていない事象ですが、エンバカデロのRAD製品でサポートが有効なバージョンかつWindows10をサポートするものは 10 Seattle 以降のバージョンとなります。これ以外のバージョンをご利用の場合は基本的に技術サポートを提供することができません(2017年10月時点)。

かといって、古い開発環境で作成したアプリを実行するためにに古いOSを使い続けることのリスクは、すでにご説明したとおりですね。

リスクに対してどのように備えるか?

現時点でWindows10での利用に支障のあるアプリケーションがあり、そのために Windows 7 や XP での運用が続いているとしたら、そのシステムが何らかの理由で停止したり事故が発生した場合の業務リスクと、最新の Windows 10 で動作するようにするための工数を改めて比較してみるべきです。

業務リスクについては、単に当該アプリケーションが停止した、というだけではなく、それによって発生する2次的な被害や対応も含まれる
ことに注意が必要です。WannaCryのようなマルウェア感染が発生した場合は担当部門だけではなく、様々な社内外の関係者にも影響が及ぶ可能性もあります。

またWindows10 向けの改修で注意すべきことは、単に「現在の機能を Windows 10 で動かすことがゴールではない」ということです。稼働中のアプリケーションに求められる業務フローは今も昔も同じでしょうか? 実は外部連携すべきシステムが変わっているにもかかわらず、マルウェアやウィルス対策などのセキュリティ上の理由から連携を諦めてはいないでしょうか? アプリケーションやデータが本来あるべき連携を取れることで業務の手間や効率を改善できるならば、既存のアプリケーション資産が新たな価値を生み出します。

ソースコードの一部または全部を紛失している場合はマイグレーションは困難となりますが、ソースコードが現存している限り、マイグレーションは可能です。ソースコードが存在しているならば、あとは問題箇所の絞込です。一般的には、DBアクセス、文字コード、帳票、サードパーティコンポーネントの利用の有無がマイグレーションで注意すべき点となります。

あるいは、Windows10 での動作確認を行っていない場合は早期に着手すべきです。Windows10 は年に数回の機能更新アップデートが提供されるということで二の足を踏んでいるケースもあるかもしれません。しかし業務向けにおいては機能更新アップデートを毎回厳密に適用しなくとも済むやり方もあります。

Windows10 向けのマイグレーションの最初の一歩は、Windows10 を正しく理解することから

Windows10 は今までのWindowsとは異なることがいろいろあります。ソフトウェアの機能や実装の話だけではなく、そもそもサポートのモデルが違うのです。それを正しく理解することは、Windows10 へのマイグレーションやその後のメンテナンスを適切に行うために、とても大切です。

弊社セミナーの「Delphi / C++Builder 業務アプリケーション 刷新実践法」では、マイグレーションや今後の保守の計画を立てるために Windows10 を正しく理解して頂くためのセッションを設けております。Windows 10 がリリースされて2年経ちましたが、Windows 10 は製品機能のアップデートだけではなく、サービスモデルの名称が変わったり、機能更新プログラムの提供回数が変わったりと、いろんな意味でアップデートが続いています。昨年仕入れた知識はすでに役に立たない状況が出ています。

また、別のセッションではBDEを用いたアプリを最新のDelphi/C++Builderに移行する方法、Unicode対応に関するDelphi/C++Builderの解説、周辺機器制御に関するご説明も行っております。

さらにすべてのセッションが終わった後には弊社スタッフへの質問タイムもございます。個別のご相談も承っておりますので、これからマイグレーションを進める方は、ぜひ一度ご参加ください。

 

See What's New in 12.2 Athens See What's New in 12.2 Athens Dev Days of Summer 2-24

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

IN THE ARTICLES