2004BlogWebサービスCommentsTweetPocket15分でWebServiceについて、知ったかぶりできる知識をまとめておきます。ServiceとはWebサービスとは最近流行の技術の一つです。実は、Webサービスの定義は結構曖昧で、その人や、その時々によってまちまちです。そこで今回はWebサービスを以下のように定義します。Webサービスとは「コンピュータが利用可能な、ネットワーク上のソフトウェアコンポーネント」。「コンピュータが利用可能」、「ネットワーク上」、「ソフトウェアコンポーネント」という3つのキーワードがWebサービスの特徴コンピュータが利用可能コンピュータが利用可能とはどういう意味でしょうか。Googleの検索サービスを例にとって解説します。Googleの検索サービスを使うには、Googleのサイトにアクセスして、検索を行う必要があります。その場合、キーワード欄にはユーザが入力して検索を行います。これは先ほどのコンピュータが利用可能とは反対の、ユーザが利用する場合になります。対して、コンピュータが利用するというのは、例えばユーザが自分のホームページからGoogleの検索機能を呼び出して、結果を加工して表示するような場合です。「加工して」というのがポイントで、Webサービスによって取得した情報は、そのまま利用することも、データを加工して利用することもできます。どのコンピュータからも利用してもらうには、インターフェースを決めないといけません。そのインターフェースとなるのが「」というものです。詳しくは別の機会に解説しようと思いますが、WSDLとは、Webサービスのインターフェースを記述するための言語です。XML形式の言語になっています。WSDL文書には、利用したいWebサービスがどこにあるのか、Webサービスを利用するために、どんなフォーマットのメッセージをやり取りするのか、どんなプロトコルに乗せてメッセージを送受信するのか、などの情報を記述します。WSDLによって定義されたWebサービス仕様をもとに、自分のホームページ上で、Googleの検索機能を利用することができるようになります。ネットワーク上のリソースを使うWebサービスを定義するときに出てきた2つ目のキーワード「ネットワーク上」ですが、これはどういうことかといいますと、Webサービスはネットワーク上に置かれたサービスであるということです。Googleの検索機能を提供する者)がサービスをネットワーク上に公開します。ネットワーク上といったのは、例えばインターネットに公開するサービスと、イントラネット上で公開するサービスといったように、用途によってサービスの公開する範囲を決められるということです。先ほど、「WSDL」の説明で出てきた、どんなフォーマットのメッセージをやり取りするのかという話がありました。Webサービスはサービスの提供者とサービスの利用者がメッセージをやり取りすることで成り立ちます。このメッセージのフォーマットを定めた規格が「SOAP」です。このSOAPの規格に準拠したメッセージをSOAPメッセージと呼びます。SOAPメッセージはXML形式で記述されます。SOAPは、プラットフォーム非依存のメッセージプロトコルになっています。基本的にSOAPの規格はメッセージのフォーマットを定めているだけです。したがって、SOAPは通信プロトコルに依存しません。通信プロトコルには、現在はオープンなインターネットプロトコルが使用されることが多いです。ソフトウェアコンポーネントWebサービスの3つ目のキーワードである「ソフトウェアコンポーネント」とは、いったいなんでしょうか。ソフトウェアコンポーネントとは、何らかのサービスを提供する部品の塊です。Googleでいうと、Googleの検索機能を提供するサービスのことを指します。Webサービスとしてあるソフトウェアコンポーネントを利用したい時、サービスをどのように調べればよいのでしょう?そこで登場するのが「」です。UDDIとは、サービスを公開したり、発見したりする際の仕組みを定めた規格です。現在のUDDI規格では、Webサービスのための専用のデータベースであるUDDIレジストリの仕様を定めています。UDDIレジストリ自体も実はWebサービスでできているので、Webサービスの登録、更新、検索の機能をSOAPメッセージを通して行うことができます。いったものがあげられます。Webサービスは、まだ発展途上の技術であるため、ビジネス上必須であるがまだ確定されていない技術も少なくありません。トランザクション処理を必要とする業務システムに組み込む場合、Webサービス間のトランザクション処理の統一的な方法はまだ確立されていません。これらの方法が確立されれば、現在のインターネットビジネスは画期的に変わるかもしれません。Web系の方が強いですがスマホアプリもできます。Webサービス開発やスマホアプリ開発案件あればお声がけください。