Seasar Conference 2006 Spring 企業システム進化論 ~Seasarファミリー for SOA 2006.05.14 The Seasar Foundation タワーズクエスト株式会社 和田 卓人 © The Seasar Foundation and the others 2006. all rights reserved. 1 自己紹介 • 名前:和田 卓人(わだ たくと) • ブログ: http://d.hatena.ne.jp/t-wada • メール : [email protected] • S2AnA, S2Continuations, S2Buri, S2Coffeeコミッタ – (S2Buriに関してはプレゼン専門コミッタ) • タワーズクエストという会社を経営しています • 一緒に仕事する仲間募集中!! Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 2 (ちょっと宣伝) Life Hacks PRESS Life Hacks PRESS B5判、168ページ 定価1,596円(税込) ISBN 4-7741-2728-0 3月24日発売 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 3 今日のアジェンダ • 企業システムとは • 企業システムの進化とSeasar – 孤島段階 – ネットワーク化段階 – プロセス制御段階 • レイヤ分割とPOJOの資産化 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 4 企業システムの特徴 • 企業内外の組織やプロセス、ビジネスモデルと 密接に関係する – 動く的(Moving Target) • システムが使われる期間が長い • システムに手を入れつづける • 複数のシステムが五月雨式に導入されることも Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 5 分散するべきか否か • 業界のトレンドは集中/分散の繰り返し – なにが答えなのかわからない – ハード主導のパラダイム? • 失敗も多かった – しかし全てが間違いというわけではない – 知識を得てらせん状に進化していく Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 6 企業システムの進化段階 • 孤島段階 • ネットワーク化段階 • プロセス制御段階 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 7 避けられない分散 • 孤島システムばかり作っていませんか • 企業システムは作られて終わりではない – 開発が終わったらもうシステムとして使われだす – 新しくシステムを構築する場合は別システムとして – 何らかの形でデータ連携/システム連携が必要にな る • バッチによるデータ連携 • リアルタイム連携 – リアルタイム連携 → 分散システム • 「統合データベース」は成功していない Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 8 孤島システムの群れ 購買システム 1983年導入 人事システム 1988年導入 ZZシステム 200X年 導入予定 ばらばら XXシステム 1996年導入 Seasar Conference 2006 Spring YYシステム 2004年導入 © The Seasar Foundation and the others 2006. all rights reserved. 9 避けられない分散 • Seasarであるにしろないにしろ、企業システム はやがて「分散システム」というテーマに立ち向 かわざるを得ない • ではSeasarは分散システムというテーマにどう 立ち向かうのか。どう「易しく、優しく」してくれる のか。 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 10 企業システムの進化段階 • 孤島段階 • ネットワーク化段階 • プロセス制御段階 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 11 分散の二つのパターン • 同期通信 • 非同期通信 • Seasarはどちらの通信方法にも対応できる Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 12 同期通信 Server1 Server2 1 Server2の 処理が終わ るまでブロッ クされる 2 3 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 13 Seasarの同期通信用のプロダクト群 • Seasarファミリーの分散同期通信用プロダクト – S2Remoting – S2Axis – S2RMI Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 14 S2Remoting • 同期通信の詳細をクライアントから隠蔽する – 通信自体はコネクタとアダプタの実装に委譲する • S2AxisとS2RMIを隠蔽 – クライアントはS2Axisで通信しているのかS2RMIで 通信しているのか関係なくなる Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 15 S2Remoting概念図 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 16 S2Remoting概念図 S2Remoting S2Axis or S2RMI Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 17 S2Axis • Apache AxisをSeasarから使いやすくするため のプロダクト • S2Remotingを使用してクライアントから透過的 にサーバ上のコンポーネントにアクセスできる • コンポーネントをWebサービスとして簡単に公開 できる Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 18 コンポーネントをWebサービスとして公開 • 恐ろしいほど簡単 – コンポーネントのmetaタグに設定を加えるのみ <component name="Echo" class="examples.EchoImpl"> <meta name="axis-service"/> </component> たったこれだけ! • AutoRegister(コンポーネントの自動登録機能)を使って いる場合には、一箇所にメタデータ登録用の設定を行う のみで公開したいコンポーネントをWebサービスとして公 開できる Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 19 S2RMI • サーバ上のコンポーネントにRMIを使用してアク セスできる • S2Remotingを使用してクライアントから透過的 にサーバ上のコンポーネントにアクセスできる • RMIなのでパフォーマンスが(他の分散方法より も)良い Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 20 S2Axis? それともS2RMI? • S2Axis – 拡張性 : 高 • SOAPを扱えるクライアントから接続できる – 結合度 : 中 – パフォーマンス : 中 • S2RMI – 拡張性 : 低 • クライアントはJavaに限られる – 結合度 : 高 – パフォーマンス : 高 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 21 非同期通信 Server1 Server2 1 Server1は Server2の 終了を待た ない Seasar Conference 2006 Spring 2 © The Seasar Foundation and the others 2006. all rights reserved. 22 非同期通信 • MOM – 非同期通信用のミドルウェア • Websphere MQ • ActiveMQ • JMS – MOMをJavaから扱うためのAPI – DBに対するJDBCのような関係 • 低レベル(実装に近い)APIという点でも同様 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 23 MOM Server1 メッセージが キューイン グされる Server2 1 MOM 2 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 24 Seasarの非同期通信用のプロダクト • S2JMSファミリー – S2JMS • JMSプログラミングをSeasarの機能をつかって単純化 – S2JMS-ActiveMQ • JMSを使用した非同期通信をActiveMQ上で実現 – S2JMS-Container • J2EEコンテナに依存せずにJMSを利用するための自前 JMSコンテナ Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 25 S2JMS • SeasarからJMSを使用するためのプロダクト • メッセージの送信、受信もPOJOで行えるように なる – POJOにアノテーションを付加することで実現 – メッセージ送信用のインターセプタを使うことによっ て、メッセージ送信のコードがロジックから消える!! Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 26 • ここまでで、Seasarで分散システムを構築する 道具立てが揃う • 次に出てくる問題は? → 企業の業務プロセスの管理 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 27 企業システムの進化段階 • 孤島段階 • ネットワーク化段階 • プロセス制御段階 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 28 プロセスが問題に • 業務プロセスがシステム内に断片的に存在する – メンテナンス性が低い – プロセス変更に弱い • 個々の業務ロジックより業務プロセスのほうが 寿命が短い – 業務プロセスは業務プロセスとして、システムで管 理する必要がある → ワークフローマネジメントシステム導入の必要 性 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 29 S2Buri • Seasar発のワークステートエンジン – ワークフローエンジンの機能を備える – プロセス(業務フロー)の状態を管理する • DBから状態制御用のフラグが消える • 複数のシステムや人を介する処理(ロングトランザクショ ン)の制御が可能になる Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 30 S2Buri 中継層を利用 して外部コン ポーネントの 呼出し プロセスを待 ち状態に プロセスを 条件分岐 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 31 企業システムをレイヤ分割する プロセス層 S2Buri 中継層 S2Axis, S2JMS 基本ロジック層 POJO, S2Dao, … Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 32 レイヤ分割の効果 • 基本ロジック層は中継層やプロセス層に依存しない → 結合度が低く、再利用性が高い • 中継層は用途に応じてSeasarファミリーの中から選択、 変更できる → 通信技術に依存しない分散システムを構築可能 • 業務プロセスは変更されやすいのでプロセス層で集中 管理する 安定度に応じてレイヤ分割 アーキテクチャと技術の詳細の分離 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 33 資産としてのPOJO • POJO(Plain Old Java Object) – 特定のフレームワークやAPIに依存しない「普通の」 Javaオブジェクト – 透明性 – ピュアなロジック • 「POJOであること」が本当の資産化 – POJOとJUnitが長く残る資産 • 資産とアーキテクチャの分離 – POJOは中継層やプロセス層に依存しない Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 34 まとめ • 分散システムにもSeasarは適応可能 – 同期通信 • S2Axis • S2RMI – 非同期通信 • S2JMS • 最初から分散のことを考えなくても良い • 業務プロセス制御もS2Buriにより可能になる • レイヤ分割とPOJOの遵守が勝利のカギ Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 35 登場したプロダクトのロードマップ • S2Axis – Apache Axis2対応 → S2Axis2開発(6月中予定) • S2JMS – マイルストーンリリース(イベント前日予定) – ドキュメントを整備して正式リリース(6月予定) • S2Buri – 秋の始め頃に0.3.0をリリース、その後1.0リリース • パフォーマンス改善 • 権限機能強化 Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 36 Special Thanks • S2Remoting,S2Axis,S2RMI,S2JMS,S2Buriコ ミッタチームの皆様 • S2Containerのコミッタチームの皆様 • Seasar Conference 2006 Springスタッフの皆 様 • そして、Seasar Conference 2006 Springにお 越しくださった皆様、ありがとうございました Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 37 ご清聴 ありがとう ございました Seasar Conference 2006 Spring © The Seasar Foundation and the others 2006. all rights reserved. 38
© Copyright 2024 ExpyDoc