TOP
>
業務システム
> システム概要
勝ち組に学ぶシステム導入事例
第6回:SOAによる勤怠管理システムの構築(前編)
著者:
オープンストリーム 村田 哲也、新山 英児
2006/11/29
前のページ
1
2
3
次のページ
システム概要
勤怠管理システムは、技術者が勤怠入力や各種申請を行い、上司が勤怠情報や申請情報を確認し、承認・否認を実施するという、社内システムです。システムが利用者に提供する機能は、ごくありふれたものであり、Ajaxを使って優れた操作性を実現しているというわけでもありません。特徴的なのは、SOAの概念に基づき複数サービスが連携して、実現されているということです。
図3は今回構築した勤怠管理システムと関連するシステムの関係を図示したものです。
図3:勤怠管理システムの概要図
(画像をクリックすると別ウィンドウに拡大図を表示します)
勤怠管理システムは、組織管理、承認管理、営業報告、技術者情報管理という4つのシステムが連携し、構成されています。バックエンドの各システムから、再利用可能な機能をサービス化し、フロントエンドから、これらの複数のサービスと連携することにより、勤怠管理システムは実現されます。
このように、機能をサービスとして構築することにより、将来構築されるシステムから比較的容易に再利用することが可能になります。これは、SOAの概念に基づき構築することで得られるメリットの1つです。
また、システムの柔軟性や拡張性を高めるために、BPEL EngineやESBを導入しました。BPEL Engineは「ActiveBPEL Engine」、ESBはソニックソフトウェアの「SonicESB」を採用しました。これらについては、追って説明します。
既存システムとの連携
このシステムでは、既存システムから「認証」「社員情報検索」などの機能をサービス化し、同期型の連携を実現しています。
一昔前のシステムであれば、夜間バッチでデータをコピーする方式や、勤怠管理システムから直接データベースを参照し取得するような方式を使ったかもしれません。しかし、前者はリアルタイム性も低く、各システムに同じようなロジックが混入することになります。
後者は、今回のシステムだけを考えれば、特に問題ないかもしれませんが、次に開発するシステムにも同じようなロジックが含まれる可能性が高いです。再利用性、メンテナンス性が低く、システムの変更に対する強度が低くなります。
しかし、サービスとして構築しておくことで、再利用性が向上し、接続先のシステム変更に強くすることが可能になります。
既存システムをサービス化する方法はいくつかあります。
例えば、既存システムが分散システムで構築され、バックエンドにリモートアクセス可能なインターフェースが存在するという前提ならば、アプリケーションの機能を抽出し、ESBを使って、サービス化する方式が考えられます。また、リモートアクセス可能なインターフェースを持たない場合は、システムの情報を再利用し、サービス化するという方式もあります。
弊社の既存システム連携方式は、後者を採用しており、既存システムのデータベースから情報を取得し、XML形式に変換するデータベースアダプタを実装し、サービスとして公開しています。
SonicESB導入によるメリット
このシステムでは、多くのサービスをESB上に公開し、フロントエンドからESB経由でアクセスする方式を取っています。ESB上にサービスを公開することにより、他システムとの連携方法をサービス利用者が意識せずに、統一された標準的なトランスポート(このシステムではSOAP over HTTP)でのアクセスが可能になります。
また、SonicESBのESBプロセスを使用することで、複数サービス(小粒度)を組み合わせ、公開サービスの粒度(粗粒度)を調整できるというメリットがあります。ESBという中間層を持つことにより、サービス変更によるサービス利用者への影響を吸収し、システムに柔軟性と拡張性を与えることができます。
ESBの役割については、「
柔軟性の高いシステムを目指すSOA/ESB
」で詳細に解説されているので、そちらをご覧ください。
当初、すべてのサービスをESB上に公開する予定でしたが、スケジュールおよび求める機能と製品仕様が異なるなどの理由により、いくつかのサービスは、フロントエンドから直接アクセスする方式を取っています。ソニックソフトウェアからのサポートがあり、機能拡張パッチを提供いただいたので、将来的にはすべてのサービスをESB経由でアクセスする方式に変更する予定です。
前のページ
1
2
3
次のページ
著者プロフィール
株式会社オープンストリーム 村田 哲也
テクニカルコンピテンシーユニット 兼 品質管理担当 ディレクタ
法政大学経営学部経営学科卒。日本DEC(現日本ヒューレットパッカード)にSEとして入社以後、データベースミドルウエア、インターネット画像配信技術、データセンターなど3社を経て現職。
株式会社オープンストリーム 新山 英児
テクニカルコンピテンシーユニット ソフトウェアエンジニアリンググループ システムズアーキテクト
日本大学大学院工学研究科情報工学専攻博士前期課程修了。某メーカー系開発会社のJavaアーキテクトとして、システム開発の技術支援に従事。現在、株式会社オープンストリームにてSOAによるシステム構築をメインに活動中。
INDEX
第6回:SOAによる勤怠管理システムの構築(前編)
はじめに
システム概要
BPELを用いたサービス連携