【ITニュース解説】SchemaGhost: bringing legacy apps back to life with Qwen3 and a human in charge
2026年10月31日に「Dev.to」が公開したITニュース「SchemaGhost: bringing legacy apps back to life with Qwen3 and a human in charge」について初心者にもわかりやすく解説しています。
ITニュース概要
SchemaGhostは、古いアプリが新しいAPIのデータ形式に対応できるよう助けるオープンソースツールだ。AIが異なるデータ形式の関連性を提案し、開発者が確認・修正して、自動で変換プログラムを作る。これにより、古いアプリを書き換えずに使い続けられ、開発者の手間を減らせる。
ITニュース解説
古いシステム、特に「レガシーアプリケーション」と呼ばれるものは、企業にとって非常に重要な役割を担っている場合が多い。これらは何年も前に開発され、ビジネスの根幹を支えてきたが、時の流れとともに技術的な課題を抱えるようになる。その代表的な課題の一つが、外部のサービスと連携するための「API(Application Programming Interface)」の変更だ。アプリケーションが他のサービスとデータをやり取りする際、APIを通じて特定の形式でデータを送受信する。しかし、このAPIを提供する側が、サービスの改善や機能追加のためにデータの構造を変更することがある。
たとえば、ある会社が作った古いアプリケーションが、顧客情報を管理する外部のAPIに依存しているとしよう。これまでは「ユーザーID」「名前」「メールアドレス」「アクティブ状態」「残高」といったシンプルな情報を受け取っていた。しかし、API提供元がシステムを更新し、新しいAPIでは情報の構造が大きく変わってしまった。具体的には、「ユーザーID」が「アカウント情報の中のID」に変わり、「アクティブ状態」が文字列で表現されるようになったり、「メールアドレス」が「連絡先情報の中のメールアドレス」としてネスト(入れ子)されるようになったりする。見た目には同じ情報が含まれているように見えても、フィールドの名前、情報の格納場所、さらにはデータの種類(例えば、真偽値が文字列になるなど)までが変わってしまうのだ。
このような変更が発生すると、古いアプリケーションは新しいAPIからのデータを受け取っても、その内容を正しく理解できなくなる。これは、これまで日本語で会話していた相手が、突然英語で話し始めたようなものだ。この問題を解決するためには、アプリケーションのコードを修正し、新しいAPIのデータ構造に合わせて調整する必要がある。しかし、何年も前に書かれた古いコードは、開発者がすでに退職していたり、ドキュメントが不十分だったりすることが多く、修正作業は非常に困難で時間のかかるものになりがちだ。システムエンジニアにとって、これは膨大な時間と労力を要する「レガシーアプリケーションの改修」という重い課題となる。
SchemaGhostは、このようなレガシーアプリケーションがAPIの変更に対応し、引き続き機能できるようにするためのオープンソースツールだ。アプリケーション全体を書き直すという大掛かりな作業をせずに、古いアプリケーションと新しいAPIの間に「互換性レイヤー」と呼ばれる橋渡し役を構築する手助けをする。これにより、古いアプリケーションは、まるでAPIが何も変わっていないかのように、これまでと同じ形式のデータを受け取れるようになる。
SchemaGhostの基本的な使い方はシンプルだ。まず、古いAPIからのJSONデータ(JSONはWebサービスでよく使われるデータ形式の一つで、人間にも機械にも読みやすい)と、新しくなったAPIからのJSONデータをSchemaGhostに入力する。すると、SchemaGhostはこれら二つのJSON構造を比較し、どのフィールドが新しいAPIのどのフィールドに対応するのか、つまり「マッピング」を提案してくれる。このマッピングの提案には、AI(人工知能)と「決定論的ヒューリスティック」という二つの技術が使われている。
AIには、Qwen3という比較的小さな言語モデルが利用されている。このAIは、単にフィールド名が似ているかどうかだけでなく、そのフィールドがどのような意味を持つのかを理解しようとする。たとえば、「user_id」と「account.id」のように名前が異なる場合でも、AIはこれらが「ユーザーを識別するためのID」という同じ意味を持つと判断し、マッピングを提案できるのだ。Qwen3はOllamaというツールを使ってユーザーのローカル環境で動作するため、大切なデータが外部に送信される心配がなく、プライバシーが保護されるという利点がある。一方、決定論的ヒューリスティックとは、事前に定められたルールに基づいて確実に結果を出す方法だ。例えば、完全に同じ名前のフィールドがあれば自動的にマッピングするなど、予測可能で信頼性の高い基準を提供する。この二つのアプローチを組み合わせることで、SchemaGhostはAIの柔軟な推論能力と、ヒューリスティックの確実性を両立させている。
SchemaGhostが提案したマッピングは、開発者が一つ一つ確認し、承認または却下する。これは非常に重要なステップだ。AIは便利なツールだが、時には間違った提案をすることもある。たとえば、古いAPIが「true」や「false」といった真偽値でアクティブ状態を示していたのに対し、新しいAPIでは「active」や「inactive」といった文字列で状態を示す場合、AIはこれらを安易にマッピングしようとするかもしれない。しかし、アプリケーションが期待するデータの種類が異なるため、そのままでは動かない。SchemaGhostはこのようなAIの誤った提案を開発者が「承認しない」ことで、問題のあるマッピングがコードに組み込まれるのを防ぐ。AIはあくまで「提案者」であり、最終的な判断と責任は「人間」が持つという設計思想が貫かれている。
開発者がマッピングをレビューし、承認を終えると、SchemaGhostはそれが正しいかどうかを検証する。そして、すべてが問題なければ、互換性レイヤーとして機能するためのファイルを生成する。これには、承認されたマッピングの記録を保存する「mapping.json」ファイル、そして実際に新しいAPIのデータを古いアプリケーションが理解できる形式に変換するC#言語のコードファイル「CompatibilityAdapter.cs」、さらに変換後のJSONデータの例が含まれる。開発者はこれらのファイルをダウンロードし、既存のアプリケーションに組み込むことで、APIの変更に迅速に対応できるようになる。
SchemaGhostはオープンソースプロジェクトとして公開されており、誰でもそのソースコードを自由に閲覧、利用、改善できる。これは、特に機密性の高いデータを扱う際に大きなメリットとなる。AIモデルをローカルで実行できるため、企業の重要なデータがクラウドサービスに送信されることなく、安全に処理される。また、外部のAPI利用料金を支払うことなく、無料でこのツールを試したり、自身のシステムに合わせてカスタマイズしたりできる柔軟性も、オープンソースならではの利点だ。
このプロジェクトの背後にある「Ghost in the Machine(機械の中の幽霊)」というタイトルには、特別な意味が込められている。それは、何十年も動き続けている、しかし多くの場合忘れ去られがちなレガシーアプリケーションを、「幽霊」に見立て、それらを再び輝かせる、つまり「生き返らせる」という思いだ。新しいものを開発することももちろん重要だが、既存の重要なシステムを長く使い続けられるようにすることも、ITの世界では欠かせない視点だ。SchemaGhostは、古いアプリケーションを捨てて新しいものに置き換えるのではなく、変化する外部環境に合わせて適応させ、その価値を最大限に引き出すための「翻訳者」となる。
現在、SchemaGhostはまだ開発の初期段階にあり、配列内の複雑なマッピングや、より高度なデータ変換など、いくつかの機能的な制限も抱えている。しかし、将来的にはこれらの改善に加え、C#以外のプログラミング言語向けの互換性アダプターの生成や、さまざまなAIモデルの性能比較なども視野に入れている。このツールは、AIが開発者の仕事を奪うのではなく、開発者の生産性を高め、面倒な作業から解放し、より創造的な仕事に集中できるようにするための「より良いツール」を提供するという哲学に基づいている。古くから稼働している、しかし重要なアプリケーションを、現代の技術と人間の知恵で守り続ける。それがSchemaGhostが目指すビジョンだ。