NeighborhoodInfo 外部 Web サービス

Leendert Versluijs, Software Engineer
Jeroen Huitink, Infrastructure Engineer
Sander Duivestein, Public Relations
Cap Gemini Ernst & Young

March 19, 2002
日本語版最終更新日 2003 年 6 月 6 日

要約 : NeighborhoodInfo Web サービスの機能とデザインについて説明します。NeighborhoodInfo Web サービスは、不動産 Web アプリケーション Jaggle のコンポーネントの 1 つであり、外部 Web サイトを集めて不動産の近隣情報を取得します。

目次

概要説明
必要条件
分析とデザイン
NeighborhoodInfo のクラス
設計方針
便利な機能

概要説明

NeighborhoodInfo Web サービスの目的は、不動産のエリアに関する追加情報をユーザーに提供することです。この情報は、他の Web サイトから取得されて、Jaggle® Web サイトで表示されます。次の図は、不動産 Web アプリケーション Jaggle の全体的なアーキテクチャにおける NeighborhoodInfo Web サービスの位置付けを表しています。

Dd297803.jgl_nbrhoodws_01(ja-jp,MSDN.10).gif

図 1. 不動産アプリケーション Jaggle の中の NeighborhoodInfo Web サービス

InfoRetrieval Web サービスは、いくつかのパラメータを使って NeighborhoodInfo Web サービスを呼び出します。NeighborhoodInfo Web サービスは、これらのパラメータを使って、外部の Web サイトにアクセスして情報を収集します。結果となる Web ページが解析され、情報が呼び出し側に XML ドキュメントの形式で返されます。最後に、InfoRetrieval Web サービスから Jaggle Web サイトに情報が送られ、その情報が表示されます。このプロセス全体を NeighborhoodInfoRetrieval プロセスと呼びます。

必要条件

NeighborhoodInfo Web サービスは、以下の機能が要求されます。

  • 詳細情報の要求を受け付けます

  • 問題の不動産の詳細な近隣情報を届けます

    **メモ   **このサンプル シナリオでは、近隣情報の地理的な解決には都道府県と市町村の表示を行います。

分析とデザイン

ユース ケース

NeighborhoodInfo Web サービスの主役は、Web サイトのソフトウェア部分です。次の図は、InfoRetrieval Web サービス アクタと NeighborhoodInfo Web サービスとのやり取りのユース ケースの概要です。

Dd297803.jgl_nbrhoodws_02(ja-jp,MSDN.10).gif

図 2. InfoRetrieval Web サービス アクタと NeighborhoodInfo Web サービスとのやり取りのユース ケース

アクティビティ図

次のアクティビティ図は、NeighborhoodInfo プロセスの概要を示しています。この図は、ユース ケース内のNeighborhoodInfo を取得アクティビティの詳細をカバーしています。

Dd297803.jgl_nbrhoodws_03(ja-jp,MSDN.10).gif

図 3. NeighborhoodInfo プロセスのアクティビティ

Web サイト アクタが InfoRetrieval Web サービスに特定の地域の近隣情報を要求すると、NeighborhoodInfo プロセスが起こされます。InfoRetrieval Web サービスは、外部 NeighborhoodInfo Web サービスを使って、選択された地域の近隣情報を収集します。

クラス図

次の UML (Unified Modeling Language) クラス図は、NeighborhoodInfo Web サービスのクラスおよびクラス間の関係の概要を示すオブジェクト モデルを表しています。オブジェクトは、NeighborhoodWebservice クラスと NeighborhoodData クラスに分類できます。このモデル内のオブジェクトについては、この後の「NeighborhoodInfo のクラス」で詳しく説明します。

拡大するにはここをクリックしてください。

図 4. NeighborhoodInfo Web サービスのクラスとその関係 (拡大するには画像をクリックしてください)

シーケンス図

次の図は、NeighborhoodInfo プロセスのシーケンスを表しています。パブリック関数のみが表示されています。

拡大するにはここをクリックしてください。

図 5. NeighborhoodInfo プロセスのシーケンス (拡大するには画像をクリックしてください)

NeighborhoodInfo のクラス

NeighborhoodInfo Web サービスのクラスは、Jaggle.NeighborhoodInfo 名前空間に含まれています。これらのクラスは、インターフェイス クラスとデータ アクセス クラスに分類でき、それぞれが Web サービス層とデータ層に対応します。次の図は、これらクラスの実装を担う層とコンポーネントの対応を表しています。

Dd297803.jgl_nbrhoodws_06(ja-jp,MSDN.10).gif

図 6:クラスの実装を担う層とコンポーネントの対応

インターフェイス クラス :WebFacade クラス

インターフェイス クラスの記述にあたっては、ビルドされているのは NeighborhoodWebserviceWebFacade) クラスだけで、BusinessFacade クラスはビルドされていないということに注意する必要があります。WebFacade クラスは、.NET Framework の WebMethod 属性を使って、NeighborhoodInfo を Web サービスとして使用できるようにします。

NeighborhoodWebservice クラス

次の表は、NeighborhoodWebservice クラスの関数の名前、スコープ、引数、戻り値、および簡単な説明の一覧です。

表 1. NeighborhoodWebservice クラスの関数

関数名 関数のスコープ 引数 戻り値 説明
NeighborhoodInfo Public String strState, string strCity XmlDocument パブリック関数であり、Web サービスの機能を外部に公開します。

データ アクセス クラス

NeighborhoodInfo クラス

次の表は、NeighborhoodInfo クラスの関数の名前、スコープ、引数、戻り値、および簡単な説明の一覧です。

表 2. NeighborhoodInfo クラスの関数

関数名 関数のスコープ 引数 戻り値 説明
GetNeighborhoodInfo Public String strState, string strCity XmlDocument 特定の都道府県および市町村の近隣情報を取得します。
GetHTML Private String strState, string strCity Result 外部 Web サイトから HTML ページを取得します。
CreateInfo Private XmlDocument oXMLDoc, string strName,
string strValue, string strType
XmlElement 新しい Info 要素を作成して、呼び出し側に返します。
ParseInfo Private String strPage Result 指定された HTML ページの情報を解析して、結果を Result 構造体で返します。
GetField Private String strRegEx,

string strBeginSearchString,
string strEndSearchString,
string strPage

String 特定の HTML ページの情報の一部を返します。

設計方針

XML

XML ベースのデータを使用します。文字列型の XML データ形式を使用することによって、NeighborhoodInfo Web サービスを使ってサポートできるプラットフォームに関する制約がなくなります。

XML メッセージには、近隣情報の名前、型、および値が含まれています。情報を集める元となる Web サイトが変更されて、返される情報が変わっても、結果となる XML メッセージは簡単に変更できます。このため、呼び出し側のアプリケーションは変更しません。

便利な機能

スクリーン スクレーピング

ShoppingInfo Web サービスと同様に、NeighborhoodInfo Web サービスにもスクリーン スクレーピング機能が実装されています。スクリーン スクレーピングとは、画面に表示される情報をプログラムによって評価して、必要な情報を抽出する技術です。この技術を使って、外部サイトのコンテンツを集めて自分の情報として提示すると、違法行為となる場合があるので注意してください。