http://www.sodec.jp/jp/conference/
参加対象
- 2009/05/13(水)09:30-12:20 [SD-9] SOA成功へのポイントと先進事例紹介
● SOA成功へのポイント ~サービス指向・モデル・ドリブン開発とライフサイクル管理~
1 |
SOAの最大の目的は、ビジネスとITのアライメントをタイムリーに実現することである。このために必要なサービス指向開発、及びモデル・ドリブン開発の2つの視点について解説する。また、ビジネスとITのアラインメントを維持するためのライフサイクル管理についても触れる。 |
日本アイ・ビー・エム(株) インダストリー・ソフトウェア SOAビジネス開発部長
宮田 直幸
1 2 |
■講演者プロフィール 1985 年、日本アイ・ビー・エム株式会社に入社。大和研究所通信製品開発部門でTDM、交換機など通信製品関連の開発に従事。1988年より各種委員会で標準化活動に貢献。(ISO SC6/WG1, 日本ATM Forum 技術委員) 1994年より4年間金融業、製造業、公共のお客様のネットワーク構築をATM, Frame Relay技術を活用し進めた。1998年より製造業お客様のeビジネスシステムの実装構築を担当し音楽配信,STBなど先進分野での開発を担当。 2004年よりSOA関連の開発を担当し現在はソフトウェアー事業部においてSOAビジネス開発部門を統括している。 |
- SOAを導入することとは、「機能中心」->「サービス中心」
- 2003年ガートナーレポートにて、サービス指向への提言があった
- IBMでは、2年に1度、CEO・CFOに対してヒアリングを実施している
- IBMのコンサルタントが実施したヒアリング結果は、下記にて公開中
- [調査結果] CEOの関心事
- 変化の早さを機会ととらえる
- 顧客の創造を超える
- 世界中の優れた能力を活用する
- グローバルデリバリを実施
- インド・中国のリソースを使用
- (ここでは、よくあるオフショア開発の利点を説明)
- ビジネスの常識を破壊する
- 社会問題に誠実に取り組む
- (コンプライアンスなどの社会的な脅威を、ビジネスチャンスとして捉えているという話)
- グローバルのCEOが望む変革
- 2006年に比べて2008年は、必要とされる変革の度合いが83%から96%に増えている
- ところが、変革の実現度合いは、2006年が61%、2008年が62%と、ほとんど変化がない
- 2006年に比べて2008年は、必要とされる変革の度合いが83%から96%に増えている
- ITシステムの周りには、関心の異なるステークホルダーが存在
- 変革の度合いを早くしていく為には、改善活動として捉えることが大事
- 下記のように変遷している
- ITは変化を実現する要素:改善手法(Total Quarity C?)
- ITは変化を発想する要素:ITの帰納法的活用(BPR・改革)
- ITは変化を制約する要素:SOA(BPM・継続的改革) ITは使いこなすもの
- ビジネス・レベルの設計には、重要なポイントがある
- [反復] ビジネスレベル設計(モデル化とシミュレーション)
- [ITレベル開発] 「IT要求」->「設計」->「実装・テスト」
- BPMは、企業のバリューチェーンを解決するモデル
- 最近は、企業のアジリティを解決する、という展開が主流
- ビジネスの柔軟性は、ITの柔軟性によって決定される
- 複数のサービスやコンポーネントを組み合わせたものを「コンポジット・アプリケーション」と呼ぶ
- SOAによって、コンポジット・アプリケーションが促進される
- コンポジット・アプリケーションを実現することで、柔軟なITとなり、柔軟なビジネスが可能になる、というシナリオ
- 現代のアプリケーションを複雑にしている原因
- Value
- 複雑なUI
- 込み入った画面遷移
- トランザクション
- 永続性
- Agility
- サブシステム分割
- コンポーネント化
- 配布の必要性
- 数十万から数百万行のコード
- Integration
- セキュリティの確保
- 接続の多様性
- 多数のランタイム・オブジェクト
- Technology
- 拡張性の実現
- 信頼性の獲得
- Value
- モデリングは、現代のアプリケーションの複雑性を解決となる手法
- なぜモデリングが必要か
- システムやアプリケーションの複雑性を管理するため
- ライフサイクルの早い時点で、エラーや漏れを発見するため
- ステークホルダーとコミュニケーションするため
- 顧客の要求を理解し、確認するため
- システムやアプリケーションの実装を促進するため
- 変更時の影響範囲を明確にするため
- リソースが効果的にデプロイされているか補償するため
- モデル・ドリブン開発(MDD: Model Driven Development)とは
- ソフトウェア開発におけるアプローチの一つ
- 「モデル」にフォーカス
- 主たる成果物は「モデル」
- プログラム・コードにはフォーカスしていない
- OMG(Object Management Group)では、様々なオープン・スタンダードを定義し、モデル・ドリブン開発(MDD)をサポート
- モデル・ドリブン開発(MDD)の特徴
- モデリング言語による抽象化
- モデリング・ツールによるモデルからコード生成の自動化
- モデル・ドリブン開発(MDD)に必要なこと
- モデルは、Machine Readableな必要がある
- 紙に綺麗に書いたモデルでは、ツールによる自動化が出来ない
- モデリング・ツールを使用して、属人性を排除
- 適切なレベルで詳細、かつ、正しいモデルを作成する必要がある
- モデルは、段階的に詳細化されていく
- 不正確なモデルは、モデルが無いことよりも有害
- あまりにも概要レベル/高レベルのモデルは、役に立たない
- モデルは常に最新に保つ必要がある
- 変更が発生したら、まずモデルを修正
- 修正したモデルから、下位モデルを再生成する
- モデルは、Machine Readableな必要がある
- モデル・ドリブン開発(MDD)におけるTransformation
- モデルを変換し、後工程のインプットとなるものを生成
- モデルから、他のモデルを生成
- モデルから、プログラム・コードを生成
- モデルから、ドキュメンテーション(仕様書)、ビルド用スクリプト等の、その他の成果物を生成
- ツールを使用して変換・生成を実施し、属人性を排除することで、上流から下流までのトレーサビリティを確保
- モデルを変換し、後工程のインプットとなるものを生成
- Transformationの例
Service | UMLモデルから、サービス・インタフェース(WSDL、XSD)への変換 |
---|---|
Connectivity | ESBのメディテーション・フローから、ESB実行モジュールへの変換 |
Choreography | BPELを用いたビジネス・プロセス・モデリングから、実行可能なJ2EEモジュールへの変換 |
People | UI(ページ・デザイン)やインタラクション(ページ・フロー)のモデリングから、Webアプリケーション用の成果物への変換 |
ここまでは、ビジネス・レベル設計時にきちんとモデリングをしましょう、という話。
ここからは、よくあるSOAとはなんぞや、という話。
- SOA = サービス指向アーキテクチャ(Service Oriented Architecture)
- 従来のようなIT機能指向ではなく、サービスを指向しているアーキテクチャ
- 稼働しているサービスを統合技術を使って組み合わせ、システムを構築する考え方
- サービス = ビジネスにおいて繰り返し使用される業務機能
- 繰り返し可能なビジネスタスクを共通化・抽象化
- ビジネス的に意味のある単位で切り出した機能の固まり
- サービス化を実施することで
- サービスにより、ビジネス変化へのITの追従性を高める
- ビジネス目標、KPI
- ビジネス・プロセス
- 業務フロー
- 準拠すべき業務ルール
- etc.
- サービスにより、ビジネスとITの隔たりを無くす
- システム、サブ・システム
- インタフェース
- コンポーネント
- ITセキュリティ
- etc.
- サービスはどこを切り出せば再利用性が高いのか、ROIの高い開発実装できるのか、が難しい
- SOAは、ビジネスの視点とITの視点をうまく融合させる必要がある
- サービスにより、ビジネス変化へのITの追従性を高める
ここで、配付資料にはないスライドが数枚登場
デジタルカメラを持ってくればよかった。。。orz
- SOAが登場した背景:既存のITシステムの状況
- 「その時点でできること」を採用
- 案件毎/部門別の開発
- 変更を前提としていない開発
- サービスの定義は、立場や視点によって異なる
業務の視点 | 繰り返し可能なビジネス・タスクのこと |
---|---|
アーキテクチャの視点 | ビジネス上のメリットがある機能を提供するアプリケーション・コンポーネントのこと |
デザインの視点 | |
開発者の視点 |
- SOAはビジネスとITをモジュール化で連動
- 「ビジネス」と「IT」の「摺り合わせ」がサービス指向アーキテクチャ
ビジネス | |
---|---|
サービス | |
コンポーネント | |
モニタリング | |
実装コード |
- SOAにおけるモデル・ドリブン開発(MDD)
- 「仕様書中心」から「モデル中心」の開発スタイル
- モデルを段階的に詳細化
- Transformationにより、モデル間でのトレーサビリティを確保
- 目指すもの
- 属人性の排除
- トレーサビリティ(追跡可能性)の確率
- 部門を超えたコミュニケーションの円滑化
- 「ものづくり」と同じような考え方(エンジニアリング)でアプリケーションを作成
- 部品表 => モデル
- 部品、モジュール => オブジェクト、コンポーネント、サービス
- 図面 => ダイアグラム
- 反復開発によってアーキテクチャを構築
- 「仕様書中心」から「モデル中心」の開発スタイル
- SOAで作成する主なモデル
ビジネス | コンポーネント・ビジネス・モデル(CBM)、ビジネス・プロセス・モデル |
---|---|
サービス | サービス・モデル、データ・モデル |
コンポーネント | コンポーネント・モデル |
モニタリング | モニター・モデル |
実装コード | プロセス、サービス、コンポーネントの実装とSOA稼働環境への配置 |
- ビジネス・モデリングの目的
- ITの側面だけでなく、ビジネス全体の活動や情報を捉えること
- As-Is(現状)と、To-Be(あるべき姿)の2つのモデルを作成
- 現状とあるべき姿のギャップを把握
- ITは、ビジネス・モデリングに含まれないのではない
- ITは、あくまでもビジネスの一要素と位置づける
- ITの側面だけでなく、ビジネス全体の活動や情報を捉えること
- 主なビジネス・モデリング手法
- コンポーネント・ビジネス・モデル(CBM)
- BPMN(ビジネス・プロセス・モデリング表記法)によるビジネス・プロセス・モデル
- RUP(Rational Unified Process)(ビジネス・モデリング)
- これらの手法を補完的に使用
- ビジネスをモデリング
- コンポーネント・ビジネス・モデル(CBM)
- 組織構造ではなく、ビジネス構造に着目して、企業全体をコンポーネント化
- ビジネスの構造・機能・関係を把握
- コア機能・経営資源配分・改革の優先度を定義
- 縦軸は事業領域、横軸は活動を定義
- ビジネス・プロセス・モデル
- To-Beのビジネス・プロセス・モデルを定義
- 必要なKPIやKAIを設定
- ツールのシミュレーション機能などにより、改善の効果を検証
APQC(American Productivity & Quality Center) PCF(Process Classification Framework)の紹介があった
- サービス・モデリングの目的
- SOAの主要な構成要素である、サービス、サービスコンポーネントの仕様を定義すること
- サービス候補の識別
- サービス仕様の定義
- サービス実現の決定
- SOAの主要な構成要素である、サービス、サービスコンポーネントの仕様を定義すること
- 主なサービス・モデリング手法
- IBM SOMA(Service Oriented Modeling and Architecture)
- RUP(Rational Unified Process) - サービスモデリング
- サービス・モデリングでの主な成果物
- サービス・モデル
- サービス・ポートフォリオ
- サービス候補のリスト
- サービスの階層構造
- 領域毎のサービス候補の階層構造を表したもの
- サービスの依存性
- サービス間の依存性を表したもの
- サービスの構成
- 複数のサービスから成るコンポジット・サービスを表したもの
- サービスの非機能要件
- サービスの非機能要件の定義
- サービス・メッセージ
- サービス間でやりとりされるメッセージの仕様の定義
- 状態管理の決定
- サービスがステートフルかステートレスかの決定
- サービス公開の決定
- サービスとして公開するかどうかの決定
- サービス実現の決定
- サービスとして実現するかどうかの決定
- サービス・ポートフォリオ
- サービス・モデル
- IBM SOMA(Service Oriented Modeling and Architecture)
- IBM SOMAは、サービスモデリングのためのIBMのメソドロジー
- IBM SOMAにおける5つのステップ
- サービスの識別:再利用可能なサービスを判別して探し出し、サービス一覧を作成
- サービスの仕様の定義:再利用可能なサービスを公開するための仕様を定義
- サービスの実現:サービスをどのようなコンポーネントによって実現するか定義
- サービスの実装:サービスをプロセスやサービス・コンポーネントとして実装
- サービスの配置:実装されたサービスをSOA稼働環境へ配置
- 3つの主要なサービスの識別手法
- ドメイン分割(プロセス分割)
- ビジネス・プロセスを分割していき、サービス候補を見つけ出す
- ゴール・サービス・モデリング
- ビジネス目標(ゴール)を分割していき、サービス候補を見つけ出す
- 非機能要件も含めることが大事
- 既存資産の分析
- 既存業務で使用されているITシステムを調査して、サービス候補を見つけ出す
- ドメイン分割(プロセス分割)
- IBMが定義しているSOA稼働環境の論理アーキテクチャ
- Existing Application Assetレイヤー
- service Componentsレイヤー
- Serviceレイヤー
- Business Processレイヤー
- Consumerレイヤー
- Integrationレイヤー(ESB)
- QoSレイヤー
- Data Architectureレイヤー
- Governanceレイヤー
まとめ
1 |
SOAの一般的な考え方を説明したセッションだった |
SOAについて多少でも知っている人にとって、今回のセッションでは特に目新しい話はなかった。
結局は、ビジネス・レベルでのモデリングと、反復的な改善がキーである。
● 日立ソフトにおけるSOAの取組み ~社内営業システムSOA化事例の紹介と日本流SOAの進め方~
1 |
欧米とは企業文化やシステム開発の仕方が異なる日本では、ユーザ部門の説得や反復型開発など独自のやり方を模索する必要がある。本講演は日立ソフトの取組みや自社システムでの適用事例を紹介しつつ日本流SOAの進め方を説明する。 |
日立ソフトウェアエンジニアリング(株) 通信・産業システム事業部 第2通信・産業システム本部
ユニットリーダ・プロジェクトマネージャ
北林 拓丈
1 2 |
■講演者プロフィール 2000 年、日立ソフト入社。入社してから一貫してJavaに携わり、大手コンビニのECサイト開発をはじめとした大規模なJava開発案件に従事。2003 年~2004年、米国ベンダーのJavaEEアプリケーションサーバ開発チームにて海外業務研修。帰国後、2006年より某通信会社法人向けシステム構造改革プロジェクトで、SOAを用いたシステム改善提案やシステムデザイン検討業務に従事。昨年はプロジェクトマネージャ兼アーキテクトとして、SOAによる社内営業システムを構築した。現在はSOAに関するコンサルティングとクラウド基盤のアーキテクチャ検討業務に従事している。若手IT技術者がディベートの技を競うオブジェクト指向の知的格闘技「Object-One」(株式会社ピコラボ主催)第1回優勝 (テーマ「SOA」)。寄稿「SOA研究 Vol.1」(リックテレコム社)、共著「J2EE パフォーマンスチューニング徹底解説」、「仕事に使えるJava+オープンソース」(共に技術評論社)。 |
- SOAとは
- お客様のビジネス視点から、システムを見直す設計思想
- SOAのポイント
- 柔軟性、再利用性、疎結合、拡張・統合性
- SOAのメリット
技術面でのメリット | ビジネス面でのメリット | |
---|---|---|
技術・プラットフォームに依存しないシステム構築が可能 | 柔軟性 | 異なる環境間でのビジネスプロセス統合が可能 |
既存アプリケーションともシームレスかつ簡単に連携、段階的なリプレースが可能 | 再利用性・疎結合 | メンテナンスコストの削減が可能 |
業務要件変更に伴う影響箇所の特定が容易 | 拡張・統合 | ビジネス環境の変化に迅速に対応 |
- SOAが注目されだした背景
- 相次ぐ企業の統廃合や事業再編によるIT環境統合の必要性
- 市場競争の激化によるビジネスニーズへの迅速な対応の必要性
- 企業のシステムが柔軟に対応しなければならない
- IT環境の現状
- 異機種環境が乱立する複雑なIT環境
- ウォーターフォール型フルスクラッチの大規模開発
- 改修時の影響範囲が広い
- 仕様を決めたら後戻り出来ない
- 改修コスト大、開発期間延長
- IT環境の現状の課題
- IT環境統合が進まず、企業内の業務が改善できない
- ビジネスニーズに対応できず、市場競争に勝てない
- SOAを実現するための技術要素の進歩
- ハードウェア・ネットワーク技術の進歩
- ブロードバンドの普及
- 高性能ハードウェアの低価格化
- サーバサイド技術の進歩
- Javaや.NETによるWebアプリケーション開発の普及
- 高負荷でもパフォーマンスが確保でき、トランザクション、セキュリティ機能を持つ環境を容易に構築できるようになった
- 標準化技術の進歩
- XMLの普及
- Webサービス、BPELの実用化
- 業界標準の仕様が整備されてきたことで、異機種環境間での通信が容易になった
- ビジネス上のニーズだけではなく、技術要素の進歩もSOA化を促進
- ハードウェア・ネットワーク技術の進歩
- 業界内におけるSOA主要トピックの変遷
- SOAに対する認識や成熟度合いの変化
- 単なるSOAインフラ導入やサービス実装から、BPMと絡めた企業における課題解決手段へ
- 逆に言えば、SOA化を目的としたプロジェクトは効果がうたいにくい
- SOA自体の効果は中長期的に見る必要がある
- なかなかスタートが切れない
- 関心事が技術トピックからビジネス的トピックへ
- ビジネス単位でサービスを切り出すには、当然ながらシステムをビジネス単位で見れる力が必要
- 技術的な側面だけではSOAは理解できない
- 従来の設計・実装にフォーカスしていた技術者が、ついていけない
- SOAに対する認識や成熟度合いの変化
- SOA開発プロセスガイドラインの作成
- システム開発標準に、反復型開発プロセス(Unified Process)を組み合わせた、SOA開発プロセスガイドラインを策定
- 初めての人でも理解できるよう「導入編」も用意
- システム開発標準に、反復型開発プロセス(Unified Process)を組み合わせた、SOA開発プロセスガイドラインを策定
- 業種別標準コンポーネントを用いた実記検証
- 業種別標準コンポーネントの有用性を確認
- 業務フローやデータモデルの検証も実施
データモデルの検証及び用語の統一 | SIDによるデータモデル検証 |
---|---|
アクターベースの業務プロセスフロー図作成 | アクターベースの業務プロセスフロー図 |
TAMベースの業務プロセスフロー図にマッピング | SID(Shared Information Data)通信業界の標準データモデル |
テレコム向けビジネスサービスにマッピング | TAMベースの業務プロセスフロー図 |
概要版BPELフローに変換 | 概要版BPL |
詳細版BPELフローに変換 |
- 社内システムSOA化プロジェクト開始のきっかけ
- 話がキレイで私達の企業にマッチするかどうかわからない
- 実際に導入した実績ベースで語ってもらわないと説得力がない
- 話としてはわかって貰えるが、実際の案件までにはなかなかならない
- 話が進むと、必要以上に規模が膨らんでしまい、結局開始までにものすごく時間がかかる、もしくは開始できない
- まず社内で導入した実績を作り、それを基にSOAをアピールが必要
- 解決すべき課題がありそうな業務と付随するシステム
- 課題がないのにSOA化しても効果を説明できない
- 解決手段としてSOAが使えそうなところ
- 単にWeb化、自動化して済むものであれば意味がない
- その結果、社内営業システムをSOA化するのが効果ありそう?
- [事例] 営業プロセスを取り巻く環境の現状
- 各プロセス毎に個別のシステムが乱立
- 顧客IDがシステム毎に個別管理なので、同じ顧客の紐付けが人手
- プロモーションがどのくらい引き合いや受注に影響したのかわからない
- 営業プロセスに関連する課題
- 見込み顧客が管理されず、プロモーションがどのぐらい引き合いや受注に影響したのかわからない
- 各業務プロセスにおける責任の所在、対象となるアクターが誰なのかが不明確であり、問題発生時にすぐに適切な対応を取りにくい
- 手動で何度も入力する業務が発生したり、複数システムの画面を参照しないと、必要な情報がわからなかったり、営業の手間が増えている
- 今現在の営業状況がどうなっているのか、目標値に対してどれぐらい達成できているのかどうか、異常値はあるのかどうかなどが把握しにくい
- 社内システムSOA化プロジェクトの実施によって、課題解決が可能に。
- [実施手順1] 対象業務の分析
- ユーザ部門にヒアリングしつつ、IDSシェアー社のARIS SOA ArchitectでAsIs業務フローを作成
- [気づき] お客様からの問い合わせ情報をコンタクトに伝えていない(業務・データが繋がっていない)
- [気づき] リードと引き合いの状態が、システム的・データ的に管理されていない
- Salesforceを活用したToBe業務フローを作成
- ユーザ部門にヒアリングしつつ、IDSシェアー社のARIS SOA ArchitectでAsIs業務フローを作成
- [実施手順2] 概要ビジネスプロセス設計
- 作成した業務フローから、プロセスとしてステータス管理する部分をビジネスプロセスとして切り出し、作成開始
- [実施手順3] サービスインタフェースの設計
- Salesforceが提供するWebサービスにアクセスして、必要となる情報を取得するためには、最初にログインWebサービスを呼び出して認証を行う必要がある
- 必ず複数回のWebサービス操作になるので、ESBを用いて、一連のWebサービス呼び出し操作をまとめて、一つの仮想的なWebサービスとして呼び出し側に提供
- Salesforceは既にWSDLが公開されているので、こちらの業務に合う形で、インタフェースを設計し直し
- 既存アプリケーションは、必要となる形でインタフェースを設計
- DBアダプタの場合は、必要となる情報を取得するためのSQLを検討=>結果を元にインタフェースを設計
- [実施手順4] 詳細ビジネスプロセス設計
- FaultをCatchした際の挙動(例外系の処理)を追加
- サービス呼び出し間の変数受け渡し処理を詳細化
- ダッシュボードで表示させるために取得・保持する情報を確定
- [実施手順5] サービス・ビジネスプロセス実装/テスト
- サービス実装にかかったコストはほとんどなし(ビジネスプロセス/ESBとしての設定でほとんど対応)
- サービス単体は、WSDLからWebサービスクライアントを生成し、JUnitでテストを実施
- ビジネスプロセス、バッチ起動によるシナリオテストや多重起動テストを実施
- 導入後の成果
技術面 | ビジネス面 | |
---|---|---|
メリット | 技術/プラットフォームに依存しないシステム構築が可能 | 異なる環境間でのビジネスプロセス統合が可能 |
成果 | SaasやJavaEEと.NETのオンプレミス既存システムが混在した環境でのシステム構築を実現 | |
システム化による作業効率UP | ||
見込み顧客をシステムで一元管理できるようになった | ||
営業業務の効果測定が可能になった | ||
営業にとって必要な情報を可視化し、リアルタイム提供することが可能になった | ||
例)キャンペーン経由でのリード件数/率 リードからの引き合い件数/率 |
技術面 | ビジネス面 | |
---|---|---|
メリット | 既存アプリケーションともシームレスかつ簡単に連携、段階的なリプレースが可能 | メンテナンスコストの削減が可能 |
成果 | 従来のJava部品をサービス化して公開することにより、バージョンアップやメンテナンス時の配布の手間を削減 | |
従来のJava部品をサービス化して公開することにより、公開範囲の限定やビジネスロジックのブラックボックス化によるセキュリティの確保 | ||
既存のシステムのリプレースに柔軟に対応 | ||
見積システムは今後1年以内に再構築予定だが、インタフェース部分の調整だけで対応可能 | ||
リプレースの影響を受けにくい |
技術面 | ビジネス面 | |
---|---|---|
メリット | 業務要件変更に伴う影響箇所の特定が容易 | ビジネス環境の変化に迅速に対応可能 |
成果 | GUIでビジネスプロセス処理を記述できるので、ユーザに対して、変更箇所や実行される処理の合意を取るのが、文章の仕様書よりも容易 | |
ビジネスプロセス変更への対応が容易 | ||
営業企画部門からのプロセス変更要求に対して迅速に対応(1週間以内) | ||
変更時、Javaのソースコードを追いかけるよりも遥かに直感的でわかりやすい | ||
新人SEでも変更箇所の特定と修正を容易に出来た。 | ||
従来のJavaアプリケーションのほぼ半分のコストで対応 |
- 日本流SOAの進め方
- ユーザ部門の参加が必須
- 欧米では・・・CEOやCIOの号令により、ユーザ部門参画指示(トップダウン型)
- 日本では・・・現場の合意ありきのボトムアップ型意志決定
- 現場での説得の必要がある
- ユーザ部門の参加が必須
- ユーザ部門参画時の問題点
- SOA(サービス化)による具体的なメリットを感じて貰いにくい
- IT環境統合というだけでは、なかなか訴えない
- サービスは目に見えないので、具体的に何が実現できるのかがわかりにくい
- IFやビジネスプロセスを見せても、実際の利用シーンが思い浮かばない
- ユーザ部門が目に見えて嬉しい画面や情報、機能など、わかりやすい成果物を併せて提供すると、説得しやすい
- SOA(サービス化)による具体的なメリットを感じて貰いにくい
- SOAの開発アプローチ
- トップダウンアプローチ
- 対象となるドメインのビジネスモデリング(例:業務フロー作成)を行い、個々のビジネスプロセスをサービス化
- ビジネスフロー全体は、BPELで記述されていることが望ましい(必須ではない)
- ボトムアップアプローチ
- 既存システムからサービス及びIFを切り出し、それらを連携させて一つのアプリケーションを構築
- 既存システムのサービス洗い出し作業が必要
- トップダウンで始めるのは、相応のスキルが必要。
- 日本においては、まず見えているところをボトムアップで始めるのも手(ただしユーザ部門の理解は得にくい)
- トップダウンアプローチ
- データモデルの整理
- 業務を分析し、フローを記述する際に、データモデルの整理も併せて行う必要がある(まずは概念データモデルから検討)
- これを行わないと、サービス同士がビジネスプロセスで繋げなかったり、コンポジット時にマッピングできなかったりするケースが発生する
- 本プロジェクトでは、引き合い以降のデータモデルについて、フェーズ2にて再度整理(見積システム再構築時にデータモデルを再度検討中)
- サービスを考える前に、データモデルの整理をする必要がある
- 業種によっては、業界標準データモデルを参照モデルとして活用とする
- ただし、そのまま合わせようとすると日本の場合は難しい
- サービス粒度の決定
- 単独で業務を満たせないもの => 複数サービスを組み合わせてコンポジット
- 戻りの方が抽象的であるもの => 具体的な片付けをしたサービスを個別定義
- 画面があるものは、画面の単位が粒度として考えやすい
- SOAと反復型開発プロセス
- SOAに限らず、ユーザ部門をうまく惹きつけるためには、早期の開発成果物のレビュー、フィードバックが必要
- SOAにおいては、ビジネスプロセスやサービス粒度決定の早期着手、サービス開発、テスト、管理手法の早期確立によって、ビジネスプロセス・サービス個数が増加した場合の工数を知恵源、開発を効率化する
- ウォーターフォールであっても、プロジェクトの成功のためには早期プロトタイピングが必須=>開発プロセスとして管理できた方が効率的
- 特にサービス粒度決定に当たっては、一度では決まらず、何度となく施行することとなる
- 反復型開発によって開発プロセスとして繰り返すことを管理できる手法が効率的
- SOAと反復型開発プロセス
- 反復型開発と契約形態
- 初期からの一括請負契約では、反復型開発を採用するのは難しい
- 要件や計画の変更に対応する開発プロセスを取ったとしても、変更をあまり許容しない契約形態がそれを阻む
- 工事進行基準の施行が、反復型開発の追い風となる
- 反復型開発(UP)での契約形態例
- 反復型開発と契約形態
方向付け | 推敲 | 作成 | 移行 |
---|---|---|---|
準委任契約(ユーザ主導) | 準委任契約(要件を確定させる) | 請負契約 | 準委任契約 |
- BPEL(ビジネスプロセスエンジン)に任せる範囲
- 人手の作業が残る前提で、ビジネスプロセスを構築する必要がある
- 業務の性質によって、ヒューマンワークフローの位置づけを考える必要がある
- バージョンアップ処理をプロセス毎に検討する必要がある
- ビジネスの変化に強いSOAではあるが、ビジネスプロセスエンジンはまだ、そこまで変化には強くない
- 開発側だけでは挙動や制御方法がわかりにくいところが多く、ベンダーの手厚いサポートが現状では必須
- 今後の展望
- 来年あたりから、効果や今後のビジネス基盤としてのSOAの価値が問われてくるはず
- 今後期待すること
- SOA製品の成熟
- 使いやすい、ハイパフォーマンス、運用上の柔軟性、より変化に強く、スケールアウト対応、価格
- 反復型開発の増加
- 工事進行基準に期待
- BPELやWebサービス、SCA等標準化の更なる促進
- SOA製品の成熟