• 検索結果がありません。

サービス指向アーキテクチャ(SOA)に基づくアプリケーション設計の現状と課題

N/A
N/A
Protected

Academic year: 2021

シェア "サービス指向アーキテクチャ(SOA)に基づくアプリケーション設計の現状と課題"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)2005−SE−149(10)   2005/7/29. 社団法人 情報処理学会 研究報告 IPSJ SIG Technical Report. サービス指向アーキテクチャ(SOA)に基づく アプリケーション設計の現状と課題 大場克哉†、○橋本誠†、藤倉成太†、宗平順己† †株式会社 オージス総研 要旨: 近年、サービス指向アーキテクチャ(SOA)が、新しいソフトウェアアーキテクチャとして注目されている が、SOA に基づいたサービスおよびビジネスモデル設計に関する方法論はいまだ確立されているとは言い 難い。本稿では、SOA アプリケーション設計のための UML 拡張およびその適用プロセスを提案し、実例 とともに、現状の課題を提示する。. The Status Quo and Challenges of Service-Oriented Architecture (SOA) Based Application Design Katsuya OBA†, Makoto Hashimoto†, Shigemoto FUJIKURA†, Toshimi MUNEHIRA† †Osaka Gas Information System Research Institute Co, Ltd Abstract: Service-Oriented Architecture (SOA) is emerging in the area of software architecture. This paper provides a concept of development process, reference architecture and a new UML profile for SOA systems development and integration. The proposed development process allows system architect to cooperate with business analysts by leveraging the UML. SOA profile allows developer to model SOA system including interactions of services and business process that orchestrates services. This paper demonstrates how to use the proposed profile, and discusses issues remaining in the area of SOA.. 1.. はじめに. SOA が注目されており、 多数の Web サービス、 SOA 関連仕様がリリースされているが、実際にシ ステム構築をするためには、標準を理解するのみ では不十分であり、設計のためのガイドラインが 必要である。そこで、UML を用いた SOA 設計の ための UML 拡張(プロファイル)および適用ガ イドラインを考案した。本稿では、その概要を示 すとともに、検討過程で明らかになった課題およ び考えられる解決策を提案する。. 2.. SOA の概要と導入課題. 2.1. SOA とは SOA は「サービス」という概念を中心に据える ソフトウェアアーキテクチャである。 サービスは、 分散システムにおけるソフトウェアコンポーネン トであり、実装プラットフォームに依存しない明 示的インタフェースによって定義される[1]。 企業経営の観点からは、企業の構造をビジネス モデルとそれを実現するための情報システム等か ら管理する Enterprise Architecture との親和性が指 摘されている[2]。サービスとビジネスの機能を対 応付けることにより、ビジネスプロセスが変更さ れた場合にも、情報システムにおける柔軟かつ迅 速な対応が可能となる。 SOA の実装技術としては、SOAP[3]など Web サ ービス関連技術がその代表であるが、中でもサー ビスインタフェース記述のための WSDL[4]が重 要である。WSDL には、メッセージフォーマット の抽象的な定義の記述とランタイムに必要なバイ. ンディング情報が記述され、これによって SOA の特徴である疎結合性、実装プラットフォームと の分離が実現される。 WSDL に よ っ て 定 義 さ れ た サ ー ビ ス は 、 Business Process Execution Language For Web Services (BPEL) [5]などのビジネスプロセス記述 言語によって定義された業務フローに従って呼び 出され、システム連携を実現することができる。 このほか、W3C や OASIS などの標準化団体に よって各種の Web サービス関連仕様が策定、提案 されている。これらのカバーする範囲は、トラン ザクションやセキュリティなど多岐にわたり、堅 牢かつ柔軟な業務システムを構築するために、こ れらをシステムの要求に応じて組み合わせていく ことが必要である。. 2.2. SOA 導入の課題 このように、すでに SOA を実現するための標 準仕様の策定がすすみ、実装を提供する製品、ツ ール群がソフトウェアベンダーやオープンソース プロジェクトからリリースされているにもかかわ らず、現在のところ、SOA の適用は一部の先進的 企業にとどまり、多くの企業への導入がすすんで いるとは言いがたい。 これは、数多くの標準仕様を理解し、活用する ことの困難さに加え、これらを統合し、情報シス テムのアーキテクチャを構築することの困難さに 一因があると筆者らは考える。企業の複雑な業務 を実現する情報システムにおいては、数多くのソ フトウェア部品が複雑に関連しており、SOAP, WSDL などの SOA 関連技術を導入したとしても、. −73−.

(2) それだけでは、SOA のメリットとされている変化 に対する柔軟性、部品の再利用性が向上する保証 はない。これは、技術の導入と複雑さの低減がか ならずしも対応しないためである。 従来から、複雑な情報システム開発にあたって は、設計および開発プロセスの重要性が唱えられ ている[6]。たとえば、オブジェクト指向設計にお いては、UML[7]を用いて、システム化対象領域の クラスおよびクラス間の関連などをモデル化し、 この作業を通じて、クラス間の依存関係を整理す るなど、複雑さを減少させる工夫がなされる。ま た、繰り返し型開発を利用して、システム開発の リスクを下げる手法も普及がすすんでいる。 SOA においても、サービスを同定し、それを組 み合わせて、ビジネスプロセスを記述ためのモデ ル記述法、 設計技法、 開発プロセスが必要である。 しかしながら、 従来の設計技法、 開発プロセスは、 SOA が提唱される以前に開発されたことから、そ のままでの適用が困難であるのが現状である。 以上から、筆者らは SOA を実現するための開 発プロセス、実行アーキテクチャ、モデル記述法 を開発し、仮想企業の業務を例に実証実験を行っ た。. 3.2. サービス指向アプリケーションの構成 サービス指向アプリケーションの構成を考えて みる。サービス指向アプリケーションは図1のよ うに 3 つの層で構成される。 上位層はビジネスプロセス層であり、組織内や 組織間の複数の既存、新規サービスを連携させて ビジネスから要求される機能を実現する。この層 が提供するメリットは BPEL に代表される組み合 わせ言語を用いた迅速なビジネスプロセスの組み 立ておよび組み替え、BPM の実現、およびビジネ スモニタリングによるビジネスの迅速な把握であ る。 次のサービス層ではビジネスプロセスを構成す る個々のサービスのインタフェースを規定する。 このサービスのインタフェースを適切な粒度で設 計することにより、他に対してサービスの再利用 を可能にし、開発生産性、保守生産性を向上させ る。さらにはサービスのインタフェースを WSDL により公開することで実装非依存や疎結合を実現 する。 ビジネス プロセス層. サービス層. 3.. サービスおよびビジネスモデル設計 プロセス. 3.1. プロセス検討にあたっての前提 これまでの RUP[8]を中心とする統一プロセス ではシステム化すべき業務を中心にビジネスモデ リングを行い、この作業分野を元に要求、分析・ 設計、実装、テストという下位の作業分野を経て 実際に動くシステムを開発する。ソフトウェアを 本番システムとしてエンドユーザーにリリースす るためにはこのサイクルを従来のウォータフォー ル型のように 1 回だけ実施するのではなく、方向 付け、推敲、作成、移行フェーズという 4 つのフ ェーズで複数回実施することにより、早い段階で リスクを解消したり、エンドユーザーの要求をフ ィードバックすることで、より安定した、よりエ ンドユーザーの要求に答えることができるシステ ムを提供することができる。 RUP の利用は国内においても広がりをみせて いると思われるが、RUP が対象としている範囲は あくまでも個別の開発プロジェクトであり、複数 の開発プロジェクト間で開発、維持すればいいか という手順とガイドラインは明確に提示していな い。しかしながら SOA ではサービスと呼ばれる ビジネスの機能単位を単一システムを超えて再利 用させることで、生産性、保守性をに高めようと 意図するものである。 そのためプロセス検討にあたっては次に述べる サービス指向アプリケーションの構成を活かした 開発プロセスを検討することにした。. コンポーネント層. 図1 SOAアプリケーションの構成 最下位層のコンポーネント層はサービス層で要 求される機能を実現するための実装レイヤーであ り、JAVA や.Net などの開発言語、もしくは ERP などのパッケージ、メインフレームのレガシーア プリケーションなどで構成される。. 3.3. サービス指向開発プロセス概要 筆者らはこのサービス指向のアプリケーション の構成を考慮した図2のようなサービス指向開発 プロセスを考えた。まずは戦略アーキテクトがビ ジネス戦略を検討し、 ビジネスの目標設定を行う。 それを元にビジネスアーキテクトは具体的な業務 の仕組みを明らかにするためのビジネスモデリン グを行う。 戦略 アーキテクト (ビジネス コンサルタント). 目標設定. ビジネ ス戦略. ビジネス アーキテクト(BA). アプリケーション アーキテクト(AA). ビジネス モデリング. プロセス モデラー(PM). RFP. アーキテ クチャ設計. 業務プロセス 図 ビジネスユー スケース図. アーキテクチャ. サービス コンポーネント プロバイダ(SCP). BPEL プロセス モデリング. コンポー ネントI/F. システム テスト担当者. 新規サービス のみ. サービス コンポーネント 設計. 設計書 WSDL. ビジネスオブ ジェクト図. BPEL. システム化 計画. BPEL プロセス 検証. 開発プロセス アセス. サービス スタブ. サービス コンポーネント 実装. JAVA .Net. サービス コンポーネント 検証 システム テスト. Iteration開発. 図2 SOA開発の流れ −74−.

(3) ザクション、信頼性などをサポートすることで非 筆者らは UML を用いてビジネスモデリングを 機能要件の実現をアプリケーションから切り離す。 行うが、業務の対象領域や人、IT などの資産、業 また、ESB は複数のシステムが個別に直接接続さ 務プロセスをユースケース図、クラス図、アクテ れている関係を仲介することにより整理するメデ ィビティ図にてモデリングする[9]。 ィエータデザインパターンを提供する。GoF[10] ひとたびビジネスモデルができると、システム によればメディエータデザインパターンはオブジ 化計画によりどの業務を IT 化するかを明確にす ェクト間の同士の明示的な参照をなくし、結合度 ることでシステム開発がはじまる。筆者らのサー を低めることで、両者のオブジェクトの相互作用 ビス指向開発プロセスではシステム開発は先に述 を独立に変更でき、お互いに影響しないものにで べたプロセス層を開発するプロセス開発とサービ きる。 ス層・コンポーネント層を開発するサービスコン それではこの ESB が 3.2 章で定義したサービス ポーネント開発に明確に分けて開発する。まず、 指向アプリケーションの構成においてどのように プロセスモデリングでは再利用可能な既存サービ このメディエーションが介入するかを説明する。 スおよび新規サービスのインタフェースを明確に メディエーション層は図3ようにサービス層の上 し、サービス間のフローを UML のアクティビテ 部に位置し、プロセス層からのサービスの呼び出 ィ図を用いて設計する。プロセス検証ではこのア しを仲介する。そのことにより異なる通信プロト クティビティ図より BPEL や WSDL に変換し、こ コルの吸収し、サービスのロケーションやインタ れらを BPEL ランタイムにデプロイすることで実 フェースの変更によるプロセス層の影響を排除す 際に動かして検証するが、サービスの実装はスタ る。また、すべてサービスの呼び出しがメディエ ブを用いて行う。この検証により、サービスイン ーション層経由で行われることから、経由するデ タフェースとサービス間の連携を表すフローを実 ータをキャプチャ、 フィルタすることでロギング、 装レベルで検証することができる。 監査、イベントの通知をアプリケーションで作り サービスコンポーネント開発ではプロセス設 こむことなく行うことができる。 計・検証により定義・検証された個別のサービス インタフェース定義(WSDL)を元にその機能をサ ビジネス ービスコンポーネントプロバイダが設計・実装・ プロセス層 検証する。再利用可能なサービスが多ければ多い メディエーション層 ほど、実装すべきサービスコンポーネントの数が サービス層 少なくなり、サービスコンポーネント開発にかか るコストと時間は少なくなる。 すべてのサービスコンポーネントの開発が完了 すると、システムテストでは検証済みのプロセス コンポーネント層 と検証済みのサービスを組み合わせてテストする ことでシステム全体を検証する。プロセス検証に 図3 SOA ソフトウェア構成での ESB の位置付け おいてあらかじめサービスのインタフェースとそ の間のフローが実装レベルで検証されているので、 4.3. サービス指向のリファレンスアーキテク サービスインタフェースの不一致やサービス間の チャ フロー定義の誤りによる手戻りが少ないと筆者ら 筆者らは SOA に適した企業内のリファレンス は考える。 アーキテクチャを考察した。リファレンスアーキ. 4.. サービス指向における実行アーキテ クチャ. サービス指向の実行アーキテクチャに求 められるもの サービス指向の実行アーキテクチャに求められ ることとしてプロトコルなどの実装や非機能要件 の実現をアプリケーションから切り離すこと、さ らにはサービスの仕様変更の影響をアプリケーシ ョンに波及させないことである。 4.1.. 4.2. ESB とは 最近、サービス指向の実行アーキテクチャにお いて ESB(エンタープライズ・サービス・バス)が 注目されている。ESB はプロトコルをアプリケー ションから隠蔽すること、セキュリティ、トラン. テクチャは企業全体に適用するためのテクノロジ ーアーキテクチャ標準である。企業においてリフ ァレンスアーキテクチャを作成し、遵守すること で、これまでのようにさまざまで不揃いなアプリ ケーションアーキテクチャが乱立することの弊害 を阻止し、企業全体で整合性のあるアーキテクチ ャを保つことができる。 SOA の実現をターゲットとした典型的なリフ ァレンスアーキテクチャは図 4 のように ESB を 核として、その周辺にさまざまなサービスを配置 させる形態をとる。サービス間のやり取りはすべ てこの ESB を経由して行うことでサービスのロ ケーションの変更やインタフェースの不整合を ESB により吸収することで、アプリケーションに よる必要がなくなることで、より柔軟な IT インフ ラを提供することができる。. −75−.

(4) ポータル ポートレット ポートレット ポートレット. J2EE、.Netアプリ. プレゼンテーション プレゼンテーション ビジネスロジック ビジネスロジック データロジック データロジック. RDB. ERPパッケージ. J2EE/.Net. アプリ共通サービス (J2EEアプリ) RDB. COBOLビジネス ロジック COBOLビジネス ロジック. フレームワーク ポートレット API(WSRP). メインフレーム DB2. モジュール (ABAP) アドオン (ABAP) アドオン. J2EE. CICS. ERP用 アダプタ. メインフレーム アダプタ. 共通アプリ 共通アプリ. J2EE/.Net. 汎用アダプタ JMSインターフェイス. WebServicesインターフェイス(SOAP、RPC/Document). メディエーション機能(ルーティング、メッセージ変換、ロギングなど) 同期通信. 非同期通信. バッチ転送. メッセージングエンジン(JMS) エンタープライズサービスバス. システム イベント. イベント イベント リスト提供 収集. 運用監視サービス. WSDL WSDL WSDL. サービス レジストリ. システム管理サービス. イベント定義. 認証、認可 機能. BPM エンジン. セキュリティ サービス. ビジネスプロセス. LDAP. 管理サービス. セキュリティサービス. イベント イベント リスト提供 収集. ビジネスモニタリ ングサービス. ビジネス管理サービス. アウトバウンド インバウンド サービス サービス. ゲートウェイ サービス. 通信サービス. 図4 企業内のリファレンスアーキテクチャ. 5.. UML によるサービスおよびビジネ スプロセス記述. 5.1. SOA モデリング UML では、プロファイルによって UML の表現方 法を拡張する方法が提供されている。 UML プロフ ァイルは、主にモデル要素が特定の実装技術にお いてどのような意味を持つのかを明示的に記述す るのに用いられ、開発者間でのモデルに対する解 釈の曖昧さを排除することができる。また、ツー ルによって部分的にソースコードを自動生成する ことも可能となる。 筆者らは、SOA システムを UML でモデル化す るための UML プロファイルを考案した。また、 現在の SOA システム開発において業界標準とな りつつある WSDL 及び BPEL との変換規則を定義 した。この変換規則を UML ツールに実装するこ とにより、WSDL 及び BPEL の生成、UML モデ ルへの読み込みを可能とする。 5.2. UML によるサービス記述 SOA におけるサービスは、 「サービス実装」と 「サービスインタフェース」 から成る。 「サービス 実装」とは、サービスの機能を実現するためのソ フトウェアコンポーネントであり、新規に開発さ れるシステムである場合や、再利用されたソフト ウェア資産である場合もある。「サービスインタ フェース」は、各サービス実装の公開するインタ フェースを定義する。SOA では「サービスインタ フェース」を標準の方法で定義し、他者との交換 を可能とすることが重要となる。現在、WSDL を 使って「サービスインタフェース」を定義するこ とが主流となりつつある。また、BPEL による WSDL への拡張機能を使ってサービス間の関係を 定義する。 「サービスインタフェース」を UML でモデル 化する場合、インタフェースが WSDL の portType. であることを意味づけするステレオタイプ portType を割り当てる(図 5) 。. 図5 サービスインタフェース 「サービス実装」である WSDL の service 及び port は、ステレオタイプ service を割り当てられた コンポーネント、port ステレオタイプを割り当て られたインタフェースで表す(図6) 。. 図6 サービス実装. UML によるサービス間連携のモデル記 述 サービスには、特定の呼び出し側が想定されな い一般公開型のサービスと、呼び出し側との相互 呼び出しの関係を持つものがある。WSDL 及び BPEL では、サービス間の関係は partnerLinkType で表現される。partnerLinkType は一つの portType を参照することで一般公開型の関係を表し、二つ の portType を参照することで相互呼び出しの関係 を表す。 他のサービスとの相互呼び出しの関係を持つサ ービスは、二つの portType を表すインタフェース とそれぞれに関連を持つクラスに partnerLinkType のステレオタイプを割り当てる。この partnerLinkType のクラスが、サービス間の関係を 定義するプロパティを持つ(図7) 。 5.3.. 図7 相互呼び出し型サービス −76−.

(5) 一般公開型のサービスは、関係する先が明示さ れない特殊なサービス間の関係である。関係の一 方は portType を表すインタフェースとし、他方は anonymous ステレオタイプを持つインタフェース とする。. 図8 一般公開型サービス. 5.4. UML によるビジネスプロセス記述 ビジネスプロセスとは、公開されたサービスを 利用することで実現される業務フローである。 BPEL のビジネスプロセスは、それ自身もサービ スとして公開される場合もあり、ビジネスプロセ スは外部からのメッセージの到着もしくは特定の. イベントが発生した時点で開始される。 ビジネスプロセスは UML アクティビティ図を 用いてモデル化する。BPEL のビジネスプロセス には外部からのメッセージの到着を待つ receive や到着したメッセージに対する返信を送り返す reply、他のサービスを呼び出す invoke、ある一定 時間処理を止める wait などの数種類の基本アクテ ィビティと、それらの直列や並列の連結、繰り返 しを表す構造化アクティビティがある。基本アク ティビティは UML アクティビティモデルのアク ション状態にそれぞれ BPEL の基本アクティビテ ィを表すステレオタイプを割り当てることで表す。 また、構造化アクティビティは、UML サブアクテ ィビティにステレオタイプを割り当てることで表 現するか、またはアクティビティの構造を使って 表現する(図9) 。. 図9 ビジネスプロセス記述. 6.. モデリング例. 衣料の小売業者を想定した例題を使って、SOA システムの設計方法論やアーキテクチャ及びモデ ル記述の妥当性や課題を検証した。 検証にあたっては、まず、現在のビジネスモデ ルとその現状問題点を設定し、その問題点を解決 するためのビジネスプロセスを作成した。次いで このプロセスを提案した方法論とモデル表記を適 用してモデル化を行い、実際にシステムを実装す ることでアーキテクチャを検証した。. 6.1. 対象企業のビジネスプロセスモデル 想定する企業は、商品を店舗で販売するほか、 オンラインでも販売する。商品は協力工場に依頼 するが生産管理は自社のシステムにて行い、各店 舗には在庫スペースがあまりないため、製造後商 品は一旦物流センターに保管される。物流センタ ーに保管された商品は、注文数に応じて各店舗へ 配送される。 図 10 は、 店舗での商品販売のビジネスプロセス モデルを示す。図中のスイムレーンは、企業や企 業内の組織に対応する。. 図 10 ビジネスプロセスモデル −77−.

(6) 6.2. システムモデル 作成したビジネスモデルを元に、システムモデ ルを作成した。 システムモデルを作成する際には、 変数を割り当てるためのアクティビティなど、ビ ジネスモデルには存在しなかったアクティビティ を追加する。 また、ビジネスモデルに含まれる人による処理 のみで完結するアクティビティをモデルから削除 する。ただし、人の意思決定は Web システムや ERP システム、メール等を経由してプロセスと人 のインタラクションを実現することになる。プロ セスから Web システム等を呼び出すためには、そ れらの外部サービスとしてのインタフェースを定 義する。 また、システムモデルではスイムレーンは外部 サービスとのインタラクションを表わした。ビジ ネスモデルにおいて組織を表わしていたスイムレ ーンを、その組織が運用するシステムに置き換え る。 図 11 は、前述したビジネスプロセスをシステム モデルに変換したプロセスを示す。 システムモデルを作成する際には、定義した. 7.. 課題. UML プロファイルに対応したソフトウェアを UML ツールに組み込み、 プロファイルに基づいた UML 図を作成、 BPEL や WSDL を自動生成した。. 6.3. 実行環境 BPEL の実行環境を開発し、動作の検証を行っ た。また、例題のシステムを実行するために、外 部サービスや人による意思決定の部分を実現する Web システムを開発した。 検証を開始した当初は、一連のビジネスプロセ スを一つの BPEL によって実現した。しかし、こ のようにすると、システム中に例外が発生した場 合の補償動作の記述が煩雑になることが分かった。 そこで、外部サービスを EJB システムや BPEL によるプロセスに置き換え、それらのサービス間 を ESB でつなぐアーキテクチャに変更した。この 変更により、複雑になりがちな補償動作を比較的 単純に記述できるようになる。その他、4.で述べ たようなメリットが検証できた。. 図 11 対応するシステムモデル. 7.1. SOA 関連仕様の利用に関わる課題 7.1.1 コレオグラフィ ビジネスプロセスを記述するための言語として、 本研究では BPEL を利用したが、BPEL だけで、 企業内あるいは企業間に渡るビジネスプロセス全 てを記述するのは困難である。たとえば、BPEL では、サービス間の連携を partnerLinkType として 定義するが、これは BPEL で記述するプロセスと そこから呼び出される(または呼び出す)サービ スとの関連にとどまり、3者以上の主体が相互作 用する複雑なサービス依存関係を記述することは できない。特に、B2B のようにそれぞれ独立した 関係者が、事前に合意した手順でビジネスプロセ スを構成する場合には、 WS-CDL[11]などのコレオ グラフィ記述言語を BPEL とあわせて利用する必 要がある。. 7.1.2 イベント また、ビジネスプロセスにおいては、あるメッ セージを不特定多数のサービスに配信する必要性 が生じるが、これを BPEL だけで記述するのは困 難である。イベント指向アーキテクチャ(EDA)[12] では、「イベント」という概念を利用して、 Publisher-Subscriber 型など1対多、多対多のメッ セージ配信を実現しようとしている。現在、EDA を実現する仕様が複数提案されているが、未だ業 界標準といえるところまで認知されたものは存在 しない。 7.1.3 仕様の成熟度 SOA に関連する仕様は 2.にも述べたとおり、数 多く提案されているが、W3C 勧告など標準化の最. −78−.

(7) 終段階まで到達したものは少なく、標準化の途中 で業界標準として認知され、利用開始されている ものが少なくない。そのため仕様の中には、不明 確な部分や間違いであると考えられる部分も存在 している。また同一使用におけるバージョン間の 違いが大きく、さらに仕様間の依存関係が複雑で あることから、採用する仕様およびバージョンに は注意が必要である。. SOA の実行アーキテクチャに関わる課 題 今回の実証実験では、当初はすべてをひとつの BPEL プロセスで実現しようとしたが、そもそも 異なる組織をまたいでひとつの BPEL で制御しよ うとすると、どの部門、会社が責任を持ってその フローを管理、 運用するかという問題に直面する。 また、組織内のビジネスプロセスはそれぞれの事 情で変更されることがあり、その度に全体の BPEL フローを変更することは現実的ではない。 このような理由から、途中で方針を変え、3 つ の組織でそれぞれが BPEL もしくは J2EE でビジ ネスプロセスを実現し、その間を ESB を想定し非 同期、疎結合でつないだ。組織間を非同期とする ことで相手が稼働していなくても、送信側から処 理要求を ESB に非同期で送っておけば、相手が稼 働した際に処理することで柔軟性が高まる。この ような非機能要件の観点から SOA の実装アーキ テクチャを検討する必要がある。 また、主要ベンダーは BPEL 準拠の製品を出荷 しているが、まだまだ製品はこなれていないこと や、BPEL の現在の仕様で不十分な部分は独自仕 様で実現しているなど問題があると思われる。ま た、実際にベンダーツールが使われるためには、 運用面の機能を充実していく必要があると思われ る。 例えばビジネスプロセスプロセスが頻繁に変わ ることを想定し、ひとつの BPEL プロセスに関し て複数のバージョンの存在を可能にするなどの配 慮が必要である。さらに、ESB に関してはまだま だ概念が先行しており、製品についても各社がま ちまちの機能の ESB 製品を出荷しているような 状況であるが、今後は J2EE のようなに規格が定 まり、それに準拠する製品が提供されることが望 ましい。 7.2.. 7.3. SOA モデリングに関わる課題 5. に述べた UML プロファイルを利用すること により、 サービスインタフェースとサービス連携、 ビジネスプロセスを記述することが可能である。 しかし、 これをより多くの関係者間の意思の疎通、 また実装モデルとの連携に利用するには以下の課 題が残る。 7.3.1 ノーテーション UML は情報システムのモデリングへの適用が 進んでいるが、ビジネスモデリングの分野への適. 用はまだ一般的とは言いがたい。また、ひとつの 汎用的なモデリング言語をあらゆる場面で利用す ることは、かならずしもビジネスおよび情報シス テム構築の関係者全てにとってわかりやすく、つ かいやすいとは限らない。そのため、UML 以外の モデル記法の導入を検討する必要がある。たとえ ば、BPMN[13]は、ビジネスプロセスモデルを記 述するためのノーテーションであり、あらかじめ 定義された豊富なアイコンとセマンティクスで、 情報システムの知識を持たない経営層や業務アナ リストらによる利用が期待されている。 7.3.2 複数モデル間の連携 実際のシステム開発においてはサービスのイン タフェースだけでなく、J2EE や.NET などの実装 技術を反映した実装モデルを構築する必要がある。 そこで実装技術を反映した UML プロファイルに よって記述される実装モデルと、SOA 記述のため の UML プロファイルで記述した、実装技術に依 存しないインタフェースのモデルの整合性を保つ 必要がある。 また、SOA が業務と情報システムを一体化させ るための技術であると考えるならば、ビジネスモ デルとシステムモデルの整合性を保ち、相互変換 を可能にする必要がある。ビジネスモデルが 7.1.1 に述べた BPMN で記述され、システムモデルが UML で記述されるとすることを想定すると、 これ らの相互運用性を実現する必要がある。 さらに、サービス間で授受されるメッセージフ ォーマットや、サービス間の関連を BPEL とは異 なった視点で捉えるコレオグラフィのモデル化に あたっては、新たな UML プロファイルの適用の ほ か 、 こ れ ら に 特 化 し た Domain Specific Language(DSL)[14]が今後開発されることが考え られる。 このように、SOA のモデリングにあたっては複 数のプロファイルで定義された UML モデル間、 また複数の DSL 間の相互変換および統合が必要 である。. 7.4. UML サービス抽出における課題 SOA では、サービスがビジネスプロセスを構成 する単位となることから、ビジネスモデルまたシ ステムモデルを記述する段階でこれを正しく同定 することが重要であると考えられる。 これにより、 サービス間の結合度を小さくし、再利用性を高め ることが可能となる。サービスの粒度は、大きく してしまうとそのサービスの再利用性を低下させ、 逆に粒度を小さくするとサービス間の結合度が強 めることになる。サービスのユースケースを定義 し、そこからサービスの粒度を適切なものにする 設計手法が必要である。 SOA システム全体を表現するためには、ビジネ スプロセスによるフロー記述やサービスインター フェイスのモデル化のみではなく、ユースケース. −79−.

(8) 図によるサービスユースケースの記述やシーケン ス図によるサービスの利用シナリオ等を表現する ことを可能にする、より抽象度の高い UML プロ ファイルが必要である。このような UML モデル によって、サービスをより適切に捕らえることが できる。 SOA でサービスを組み合わせる場合、ビジネス プロセスを中心とするオーケストレーションと、 サービス同士を決められたプロトコルに従って協 調させるコレオグラフィと、大きく分けて二通り の方法がある。これらを統一的な UML プロファ イルで記述することで、システム間の相互作用モ デルを明確に定義することができ、特徴的なモデ ルをパターンとして収集することも可能となる。. 7.5. その他 企業規模でサービスの再利用を促すためにはさ まざまなサービスのランタイムや設計情報が保持 されているリポジトリが必要となる。このような リポジトリを整備することで、各部門のシステム を適切なサービスを検索して利用することができ る。 SOA が事業部間や会社間で使われることを想 定すると、認証、暗号化、署名などのセキュリテ ィが極めて重要となる。 WEB サービスの標準化の 動きとしては WS-Security をはじめとするさまざ まな仕様が提案されており、その一部はリリース されているが、まだまだ実際に使われている例は 少ない。 また SOAP のメッセージの認証、 暗号化、 署名は負荷がかかる処理であり、現段階ではパフ ォーマンス面で不安を残す. 8.. まとめ. 以上、SOA のシステム実証を踏まえて、実装に あたっての課題を抽出した。 この課題は、筆者らが定義したUMLプロファ イルや方法論に起因するものではなく、標準化や ビジネスモデリングなど SOA の設計の前提課題 である。 これの問題は、一部には指摘されていたことで あるが、方法論やUMLプロファイルを確定した ことにより、問題点としてより明確になったもの である。 これらの課題は、SOA の普及拡大に関わる問題 であることから、 7.2 にも指摘したが各ベンダーが 独自の方法で解決するのではなく、標準化がなさ れることが望まれる。 これらが解決されれば、サプライチェーンにも SOA のアーキテクチャを拡張適用できるように なる。その結果、企業活動は多くのパートナーと の関係においてなりたっていることから、 将来 EA のターゲットアーキテクチャとして、SOA を位置 付けることが現実解として可能になる。. 参考文献 [1] Wada, Suzuki, Takada, Doi, ”Leveraging Metamodeling and Attribute-Oriented Programming to Build a Model-driven Framework for Domain Specific Languages”、8th JSSST Conference on Systems Programming and Applications、2005. [2] 加藤正和 “かんたん! エンタープライズ・ア ーキテクチャ” 翔泳社、2004. [3] W3C, “SOAP Version 1.2 Part 0: Primer”, http://www.w3.org/TR/2003/REC-soap12-part0-2 0030624/, 2003. [4] W3C, “Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language”、 http://www.w3.org/TR/2005/WD-wsdl20-200505 10/, 2005. [5] BEA Systems, IBM, Microsoft et al. “Business Process Execution Language for Web Services Version 1.1” ftp://www6.software.ibm.com/software/developer /library/ws-bpel.pdf, 2003. [6] Ambler, Nalbone, Vizdos “The Enterprise Unified Process”, Prentice Hall, 2005. [7] Object Management Group, “Unified Modeling Language: Superstructure version 2.0”, http://www.omg.org/cgi-bin/doc?ptc/2004-10-02, 2004. [8] フィリップ・クルーシュテン著, 藤井拓 訳," ラショナル統一プロセス入門",アスキー,2004 [9] 竹政昭利, 左川聡 著「ビジネスマンのための UML 入門」,毎日コミュニケーションズ,2004 [10] Erich Gamma, et al ,"Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Pub Sd, 1995 [11] W3C, “Web Services Choreography Description Language Version 1.0”, http://www.w3.org/TR/2004/WD-ws-cdl-10-2004 0427/, 2004. [12] Hanson, “Event-driven services in SOA”, http://www.javaworld.com/javaworld/jw-01-2005/ jw-0131-soa.html, 2005. [13] Business Process Management Initiative, “Business Process Modeling Notation (BPMN) Version 1.0”, http://www.bpmi.org/bpmn-spec.htm, 2004 [14] Greenfield, Keith, “Software Factories”, Wiley, 2004. −80−.

(9)

参照

関連したドキュメント

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

子どもが、例えば、あるものを作りたい、という願いを形成し実現しようとする。子どもは、そ

「養子縁組の実践:子どもの権利と福祉を向上させるために」という

右の実方説では︑相互拘束と共同認識がカルテルの実態上の問題として区別されているのであるが︑相互拘束によ

発生という事実を媒介としてはじめて結びつきうるものであ

を育成することを使命としており、その実現に向けて、すべての学生が卒業時に学部の区別なく共通に

を育成することを使命としており、その実現に向けて、すべての学生が卒業時に学部の区別なく共通に

(1)  研究課題に関して、 資料を収集し、 実験、 測定、 調査、 実践を行い、 分析する能力を身につけて いる.