システム概要

   勤怠管理システムは、技術者が勤怠入力や各種申請を行い、上司が勤怠情報や申請情報を確認し、承認・否認を実施するという、社内システムです。シス テムが利用者に提供する機能は、ごくありふれたものであり、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経由でアクセスする方式に変更する予定です。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30