はじめに
技術の進化とともに、Webサービスは単独で機能するものから、複数のサービスを組み合わせて新たな価値を生み出すものへと変化している。
その手法の一つが「マッシュアップ(Mashup)」だ。特に「ロジックマッシュアップ」は、異なるWebサービスの入出力を連携させ、シームレスなワークフローを提供する技術であり、実務でも頻繁に登場する。
本記事では、令和6年度の基本情報技術者試験で出題された「ロジックマッシュアップ」に関する問題を例に、この概念を掘り下げていこう。
マッシュアップとは?
まず、「マッシュアップ」という概念から整理しよう。これは、複数のWebサービスのAPIを組み合わせることで、新しいサービスや機能を構築する技術を指す。
既存のリソースを活用するため、開発時間やコストを削減できるという利点がある。一方で、依存するAPIが廃止されたり、仕様変更があったりすると、システム全体の安定性に影響を及ぼす可能性もある。
マッシュアップには以下の3つの類型が存在する。
- プレゼンテーションマッシュアップ
- 他のWebサービスのコンテンツをそのまま表示する手法。例えば、飲食店の情報ページにGoogleマップを埋め込んで地図を表示するケースが該当する。
- データマッシュアップ
- 複数のデータソースを統合し、視覚的にわかりやすく表示する手法。例えば、複数の金融データを取得し、それをグラフにまとめて投資家向けに提示するサービスがこれに当たる。
- ロジックマッシュアップ
- Webサービス同士の入出力をつなげ、一連の処理フローを構築する手法。例えば、ホテルの宿泊料金を検索し、さらに別のWebサービスから空室情報を取得して統合表示する仕組みがこれに該当する。
実際の試験問題
令和6年(2024年)の基本情報技術者試験(科目A)問5の試験問題を見てみよう。
問題
ロジックマッシュアップの例として正しいものを選べ。
ア. 飲食店情報のページに、地図コンテンツを埋め込んでアクセスマップを表示する。
イ. 投資商品の情報を表示する際に、関連する経済指標を取得し、グラフに加工して表示する。
ウ. 予算に応じた宿泊施設のリストを取得し、それらの空室情報を別のWebサービスから取得して表示する。
エ. マウスドラッグで地図を操作すると、一部のページだけを再読込してスクロール表示する。
解答
この中で 「ロジックマッシュアップ」に該当するのは「ウ」 だ。なぜなら、「ウ」のケースでは、
① 予算範囲で宿泊可能な施設リストを取得
② 取得したリストの宿泊施設ごとに空室情報を別のWebサービスから取得
③ それらを統合して表示
という一連のフローが形成されており、異なるWebサービスの処理を連結させている。
他の選択肢を見てみよう。
- ア → これは「プレゼンテーションマッシュアップ」。単に外部の地図を埋め込んでいるだけで、データの連結は行っていない。
- イ → これは「データマッシュアップ」。異なるデータを組み合わせてグラフ化しているが、サービス間での連結処理は行っていない。
- エ → これは「Ajaxによる非同期通信」の例であり、マッシュアップではない。
ロジックマッシュアップの実務活用例
ロジックマッシュアップは、試験問題の範囲を超えて、現実のWeb開発でも活用されている。例えば、以下のような事例が考えられる。
1. 旅行予約システム
- ユーザーが希望する旅行先や日程を入力
- 宿泊予約APIを使って、該当期間の宿泊施設を検索
- さらに、航空券予約APIを使って、最適なフライト情報を取得
- すべての情報を統合して、ユーザーに一括表示
このように、単独のサービスではなく、複数のWebサービスを組み合わせることで、より便利な機能を提供できる。
2. ECサイトの商品価格比較
- ユーザーが検索した商品情報を取得
- Amazon、楽天、Yahoo!ショッピングなどのAPIを活用して、それぞれのサイトから同じ商品の価格情報を取得
- 価格や在庫状況を比較し、最安値や最適な購入オプションを提示
こうした仕組みは、消費者にとって非常に便利であり、多くのECサイトで導入されている。
まとめ
ロジックマッシュアップは、Webサービス同士の処理を連携させ、一連のワークフローを自動化する技術だ。
実際の開発現場でどのように応用されているのかも考えてみると、より実践的な知識として定着するだろう。
この概念を押さえておけば、基本情報技術者試験だけでなく、実務でも大いに役立つはずだ。あなたが次に開発するシステムは、どんなマッシュアップの形を取るだろうか?
コメント