JP2012014506A - プロセス実行装置及びプロセス実行システム及びプロセス実行方法及びプログラム - Google Patents

プロセス実行装置及びプロセス実行システム及びプロセス実行方法及びプログラム Download PDF

Info

Publication number
JP2012014506A
JP2012014506A JP2010151049A JP2010151049A JP2012014506A JP 2012014506 A JP2012014506 A JP 2012014506A JP 2010151049 A JP2010151049 A JP 2010151049A JP 2010151049 A JP2010151049 A JP 2010151049A JP 2012014506 A JP2012014506 A JP 2012014506A
Authority
JP
Japan
Prior art keywords
business
definition
extended
processing
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010151049A
Other languages
English (en)
Inventor
Masashi Igarashi
政志 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010151049A priority Critical patent/JP2012014506A/ja
Publication of JP2012014506A publication Critical patent/JP2012014506A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】柔軟に内容を変更可能な拡張機能を開発して利用する。
【解決手段】ビジネスプロセス定義301では、複数の業務処理を実行する順序が定義される。拡張機能起動フィルタリング定義501では、起動条件式5013が定義される。メッセージングフック装置60は、複数の業務サービス201の間で送受信されるメッセージを取得する。拡張機能起動フィルタ装置71は、メッセージングフック装置60により取得されたメッセージとビジネスプロセスメタ情報取得装置91により取得されたビジネスプロセス定義301と拡張機能起動フィルタリング定義501とに基づき、上記複数の業務処理のうち、特定の業務処理が実行されるタイミングを検出する。そして、拡張機能起動フィルタ装置71は、検出したタイミングに合わせて拡張サービス402に拡張処理を実行させる。
【選択図】図1

Description

本発明は、プロセス実行装置及びプロセス実行システム及びプロセス実行方法及びプログラムに関するものである。本発明は、特に、サービス実装に影響を与えないサービス基盤機能拡張装置に関するものである。
プログラム言語処理実行系に備わるリフレクション機能を用いて、API(Application・Program・Interface)を変更せずにプログラムの機能拡張を行う方法が知られている(例えば、特許文献1参照)。
特開2004−246789号公報
Ron Ten−Hove、Peter Walker著、「Java Business Integration (JBI) 1.0」、Sun Microsystems Inc.、2005年8月17日発行
従来の方法では、メタレベルにおいて旧メソッドの実行を横取りし、旧メソッドに対応する新メソッドを当該旧メソッドに代えて実行するため、柔軟に内容を変更可能な拡張機能を開発して利用することができないという課題があった。
本発明は、例えば、柔軟に内容を変更可能な拡張機能を開発して利用することを目的とする。
本発明の一の態様に係るプロセス実行装置は、
複数の業務処理を実行する順序を定義するプロセス定義を記憶装置で格納するプロセス定義格納部と、
前記プロセス定義格納部に格納されたプロセス定義で定義された順序に従って、それぞれ前記複数の業務処理の1つを処理装置で実行する複数の業務処理実行部であり、実行する業務処理で利用する情報を他の業務処理実行部から受信する処理と他の業務処理実行部により実行される業務処理で利用される情報を他の業務処理実行部へ送信する処理との少なくともいずれかを処理装置で実行する複数の業務処理実行部と、
前記複数の業務処理以外の所定の処理を拡張処理として処理装置で実行する拡張処理実行部と、
前記複数の業務処理実行部の間で送受信される情報を取得する情報取得部と、
前記情報取得部により取得された情報と前記プロセス定義格納部に格納されたプロセス定義とに基づき、前記複数の業務処理のうち、特定の業務処理が実行されるタイミングを処理装置で検出し、検出したタイミングに合わせて前記拡張処理実行部に前記拡張処理を実行させる拡張処理制御部と、
を備えることを特徴とする。
本発明の一の態様によれば、柔軟に内容を変更可能な拡張機能を開発して利用することが可能となる。
実施の形態1に係るプロセス実行装置の構成を示すブロック図。 実施の形態1に係る拡張機能起動フィルタリング定義の起動条件式の条件変数を示す表。 実施の形態1に係る起動条件式の文法を示す表。 実施の形態1に係るプロセス実行装置のハードウェア構成の一例を示す図。 実施の形態1及び2に係るプロセス実行装置の動作を示すフローチャート。 実施の形態1に係るメッセージングフック共通処理を示すフローチャート。 実施の形態2に係るプロセス実行装置の構成を示すブロック図。 実施の形態2に係る拡張機能起動フィルタリング定義の例を示す表。 実施の形態2に係るフィルタアクションの書式を示す表。 実施の形態2に係るメッセージングフック共通処理を示すフローチャート。 実施の形態2に係るフィルタグループ共通処理を示すフローチャート。 実施の形態3に係るプロセス実行システムの構成を示すブロック図。 実施の形態3に係る拡張機能起動フィルタリング定義の例を示す表。 実施の形態3に係るフィルタアクションの書式を示す表。 実施の形態3に係る拡張機能起動フィルタリング定義の起動条件式の条件変数を示す表。 実施の形態3に係る起動条件式の文法を示す表。 サービス基盤を使用した業務システム例を示すブロック図。 アプリケーションと同じ枠組みで拡張機能を開発する方法の例を示すブロック図。 業務サービスのコード自体に拡張機能を埋め込む方法の例を示すブロック図。
図17は、サービス基盤10(ESB(Enterprise・Service・Bus))を使用した業務システム例を示すブロック図である。
サービス基盤10は、SOA(Service・Oriented・Architecture)における基本ミドルウェアである。サービス基盤10を使用した業務システムは、図17に示すように、サービス基盤10、業務システムを構成する部品である業務サービス201、業務サービス201を組み合わせて開発者が意図したフローで実行するためのビジネスプロセス定義301で構成される。
業務サービス201“task1”、“task2”、“task3”はメッセージAPI51によりサービス基盤10を介して互いにメッセージの送受信を行う。ビジネスプロセス定義301では、業務サービス201“task1”、“task2”、“task3”を順番に実行するビジネスプロセス“Process1”が定義されている。
アプリケーションの詳細を検討するアプリケーション開発者チームと、アプリケーションを支えるハードウェアやソフトウェアといったシステムの観点で検討を行うアーキテクチャ開発者チームという、2つのチームに分けて開発が行われる。サービス基盤10を使用した業務システムの開発では、図17に示すように、業務サービス201とビジネスプロセス定義301の検討をアプリケーション開発者が、サービス基盤10の検討をアーキテクチャ開発者が行う。
サービス基盤10には、非特許文献1が示すSOAとして標準化されたさまざまな機能が備わっているが、業務システムによっては、標準機能だけでは顧客が要求する性能・信頼性・セキュリティ等、非機能要件を満たせないことがある。このような場合、サービス基盤10をカスタマイズしたり、サービス基盤10に対する拡張機能401を開発したりする必要がある。サービス基盤10は、通常ISV(Independent・Software・Vendor)のソフトウェアやOSS(Open・Source・Software)が利用され、開発プロジェクトの中で開発されたものではないため、サービス基盤10自体の拡張を業務システム開発の中で行うことは難しい。そこで、アプリケーションと同じ枠組みで拡張機能401を開発する方法や、業務サービス201のコード自体に拡張機能401を埋め込む(業務サービス201のプログラムで拡張機能401を実装する)方法が用いられる。
図18は、アプリケーションと同じ枠組みで拡張機能401を開発する方法の例を示すブロック図である。
この例は、性能監視という非機能要件に相当する拡張機能401を、各業務サービス201実行前に行うように拡張する例である。拡張機能401を、業務サービス201のようにサービスである拡張サービス402“性能監視”として実装して、ビジネスプロセス定義301の各業務サービス201の手前の位置に、拡張サービス402を配置する(この例のビジネスプロセス定義301では、各業務サービス201の直前に拡張サービス402が実行されるように定義されている)。
図19は、業務サービス201のコード自体に拡張機能401を埋め込む方法を、特許文献1に用いられている方法を用いて実現する例を示すブロック図である。
特許文献1自体は、SOAに関するものでなく、Java(登録商標)のリフレクション機構を利用したフックを用いて、既存コードを変更せずに機能を変更するための方法である。サービス基盤10を用いた業務システムに適用すると、図19に示すように業務サービス201の内部実装が、特許文献1の方法に対応する。業務サービス201の実装の中で、図19に示すように代替処理オブジェクトに拡張機能401“性能監視”を実装し、代替処理定義を行うと、既存の業務サービス201のコードを変更せずに、サービス基盤10の拡張が可能となる。
(課題1)図18の例では、ビジネスプロセス定義301の中に拡張機能401を配置している(ビジネスプロセス定義301で拡張サービス402が実行されるタイミングを設定している)。アプリケーション開発者の開発する業務サービス201と、アーキテクチャ開発者の開発する拡張サービス402が、1つのビジネスプロセス定義301の中に現れるため、ビジネスプロセス定義301は、アプリケーション開発者とアーキテクチャ開発者の両方の知識がないと開発することができず難易度が高いという課題がある。
(課題2)図19の例では、業務サービス201のインタフェースに対して、拡張機能401である代替処理オブジェクトが固定されてしまうという課題がある。このため、ビジネスプロセス定義301ごとに、異なった拡張機能401を使用することができない。また、最初のタスクでは1つの拡張機能401、中間のタスクでは別の拡張機能401、最後のタスクではさらに別の拡張機能401というように、ビジネスプロセス定義301上のタスク位置により拡張機能401を変更することができない。
図18の方法では課題1は発生せず、図19の方法では課題2は発生しないが、従来技術では、両方の課題を同時に解くことができない。
本発明の実施の形態では、これらの課題を同時に解き、サービス基盤10を使用したシステム開発における、アプリケーション開発者とアーキテクチャ開発者の役割分担を明確化し、ビジネスプロセス定義301の条件により柔軟に内容を変更可能な拡張機能401を開発できるようになる。
以下、本発明の実施の形態について、図を用いて説明する。
実施の形態1.
図1は、本実施の形態に係るプロセス実行装置100の構成を示すブロック図である。図2は、拡張機能起動フィルタリング定義501の起動条件式5013の条件変数を示す表である。図3は、起動条件式5013の文法を示す表である。
図1において、サービス基盤10、業務システムを構築する部品である業務サービス201、業務サービス201を組み合わせて意図したフローで実行するためのビジネスプロセス定義301という基本的なサービス基盤10を使用した業務システムに対して、サービス基盤10に対して拡張サービス402により機能拡張を行うための仕組みが構成される。
プロセス実行装置100は、メッセージングフック装置60、サービス定義情報取得装置81、ビジネスプロセスメタ情報取得装置91、拡張機能起動フィルタ装置71、拡張メッセージAPI52を備える。メッセージングフック装置60は、サービス基盤10と業務サービス201の間の通信を横取りして処理する。サービス定義情報取得装置81は、業務サービス201を解析して実行中の業務サービス201の情報(サービス情報)を取得する。ビジネスプロセスメタ情報取得装置91は、ビジネスプロセス定義301から実行中のビジネスプロセスのメタ情報(ビジネスプロセス実行情報)を取得する。拡張機能起動フィルタ装置71は、各装置から得られる情報を基に判断して意図したタイミングで、拡張機能401が実装された拡張サービス402を起動する。拡張メッセージAPI52は、業務サービス201のメッセージを処理する。
図示していないが、プロセス実行装置100は、処理装置、記憶装置、入力装置、出力装置等のハードウェアを備える。ハードウェアはプロセス実行装置100の各部によって利用される。例えば、処理装置は、プロセス実行装置100の各部でデータや情報の演算、加工、読み取り、書き込み等を行うために利用される。記憶装置は、そのデータや情報を記憶するために利用される。また、入力装置は、そのデータや情報を入力するために、出力装置は、そのデータや情報を出力するために利用される。
記憶装置において、ビジネスプロセス定義301を格納するプロセス定義格納部と、拡張機能起動フィルタリング定義501を記憶装置で格納するフィルタリング定義格納部とが実装される。ビジネスプロセス定義301は、複数の業務処理(例えば“task1”、“task2”、“task3”)を実行する順序を定義するデータ(例えばファイル)である。拡張機能起動フィルタリング定義501は、フィルタリング定義の一例であり、所定の条件を定義するデータ(例えばファイル)である。本実施の形態では、拡張機能起動フィルタリング定義501に複数の条件(起動条件式5013)が定義されている。
業務サービス201は、業務処理実行部の一例であり、上記プロセス定義格納部に格納されたビジネスプロセス定義301で定義された順序に従って、それぞれ上記複数の業務処理の1つ(例えば“task1”)を処理装置で実行する。業務サービス201は、業務処理を実行する前に、その業務処理で利用する情報(メッセージ)を他の業務サービス201から受信する処理を処理装置で実行する。あるいは、業務サービス201は、業務処理を実行した後に、他の業務サービス201により実行される業務処理(例えば“task2”)で利用される情報(メッセージ)を他の業務サービス201へ送信する処理を処理装置で実行する。
拡張サービス402は、拡張処理実行部の一例であり、上記複数の業務処理以外の所定の処理(例えば業務サービス201の性能を測定する処理、業務処理の実行時間を測定する処理)を拡張処理として処理装置で実行する。
メッセージングフック装置60は、情報取得部の一例であり、複数の業務サービス201の間で送受信される情報(メッセージ)を取得する。
拡張機能起動フィルタ装置71は、拡張処理制御部の一例であり、メッセージングフック装置60により取得された情報と上記プロセス定義格納部に格納されたビジネスプロセス定義301(ビジネスプロセスメタ情報取得装置91により取得される)とに基づき、上記複数の業務処理のうち、特定の業務処理(例えば“task1”)が実行されるタイミングを処理装置で検出する。このとき、拡張機能起動フィルタ装置71は、メッセージングフック装置60により取得された情報が上記フィルタリング定義格納部に格納された拡張機能起動フィルタリング定義501で定義された条件を満たすかどうかを処理装置で判断する。また、本実施の形態では、拡張機能起動フィルタ装置71は、当該情報を送信した業務サービス201により実行される業務処理がその拡張機能起動フィルタリング定義501で定義された他の条件を満たすかどうかを処理装置で判断する。当該情報が1つの条件を満たし、かつ、当該業務処理が他の条件を満たすと判断した場合、拡張機能起動フィルタ装置71は、当該業務処理が上記特定の業務処理であると処理装置で判断する。そして、拡張機能起動フィルタ装置71は、上記プロセス定義格納部に格納されたビジネスプロセス定義301に基づき、上記特定の業務処理が実行されるタイミングを処理装置で検出する。
拡張機能起動フィルタ装置71は、上記特定の業務処理が実行されるタイミングを検出すると、検出したタイミングに合わせて拡張サービス402に拡張処理を実行させる。例えば、拡張機能起動フィルタ装置71は、上記特定の業務処理が実行される前に拡張サービス402に拡張処理(例えばその業務処理の実行時間の測定を開始する処理)を実行させる。あるいは、拡張機能起動フィルタ装置71は、上記特定の業務処理が実行された後に拡張サービス402に拡張処理(例えばその業務処理の実行時間の測定を終了する処理)を実行させる。
以下、さらにプロセス実行装置100の各部について説明する。
拡張メッセージAPI52は、前述したメッセージAPI51に代わって、サービス基盤10に対して、業務サービス201を通したメッセージ通信を行うAPIである。
メッセージングフック装置60は、業務サービス201に対する受信の通信内容を拡張メッセージAPI51から受け取ることにより横取りして、拡張機能起動フィルタ装置71に送る。メッセージングフック装置60には、送信メッセージングフック部601と受信メッセージングフック部602が含まれる。受信メッセージングフック部602は、サービス基盤10から業務サービス201の方向の通信、即ち、業務サービス201の受信方向の通信を処理する。送信メッセージングフック部601は、業務サービス201からサービス基盤10への方向の通信、即ち、業務サービス201の送信方向の通信を処理する。
サービス定義情報取得装置81は、メッセージングフック装置60から得られるメッセージや実行情報と、業務サービス201のインタフェースを解析して、実行中の業務サービス201の情報を得るための装置である。図2の条件変数のうち、service(実行される業務サービス201の情報)を得るために使用される。
ビジネスプロセスメタ情報取得装置91は、メッセージングフック装置60から得られるメッセージや実行情報と、ビジネスプロセス定義301を解析して、実行中のビジネスプロセス定義301の情報を得るための装置である。図2の条件変数のうち、process(実行中のビジネスプロセスの名称)、task(ビジネスプロセスの実行中のタスク(業務サービス201)に関する条件)、taskp(実行中のタスク(業務サービス201)に定義されているパラメータ)を得るために使用される。
拡張機能起動フィルタ装置71は、メッセージングフック装置60から得られるメッセージや実行情報、ビジネスプロセスメタ情報取得装置91から得られる実行中のビジネスプロセスのメタ情報、サービス定義情報取得装置81から得られる実行中の業務サービス201の情報を基に、拡張サービス402を起動するかどうかが記述された拡張機能起動フィルタリング定義501を評価して、起動すると判断された拡張サービス402を起動する装置である。
拡張機能起動フィルタ装置71には、実行情報解析部711と条件変数コンテキスト生成部712と拡張サービス実行部714と起動条件評価部713が含まれる。
実行情報解析部711は、送信メッセージングフック部601や受信メッセージングフック部602から得られたメッセージと実行情報を解析する。実行情報解析部711は、解析した結果を、条件変数コンテキスト生成部712に渡し、拡張機能起動フィルタリング定義501で使用する起動条件式5013で使われる条件変数を作成し、拡張サービス実行部714にその結果を渡して拡張サービス402の起動を依頼する。
条件変数コンテキスト生成部712は、実行情報解析部711から得たメッセージや実行情報を基に、拡張機能起動フィルタリング定義501の起動条件式5013の評価に必要な、図2に示す条件変数の値を求める。条件変数コンテキスト生成部712は、ビジネスプロセスメタ情報取得装置91に依頼して条件変数process,task,taskpを求め、サービス定義情報取得装置81に依頼して条件変数serviceを求め、実行情報解析部711から得られた情報を基に条件変数messagingを求める。
起動条件評価部713は、拡張機能起動フィルタリング定義501の起動条件式5013を解析して評価する。起動条件式5013は全体としてtrue(真)かfalse(偽)が結果として得られる論理式である。起動条件式5013の文法では、図3に示すように、等値比較、大小比較、四則演算、and/or、正規表現マッチ等が可能である。
拡張サービス実行部714は、拡張機能起動フィルタリング定義501を評価して、評価の結果から実行すると判断した拡張サービス402を実行する。拡張サービス実行部714は、拡張機能起動フィルタリング定義501において、定義されている順番に(フィルタ定義ID5011ごとに)起動条件式5013を評価し、trueになるフィルタ定義の拡張サービス402(起動サービス5012)を全て起動する。
図4は、プロセス実行装置100のハードウェア構成の一例を示す図である。
図4において、プロセス実行装置100は、コンピュータであり、LCD901(Liquid・Crystal・Display)、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)、プリンタ906といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。LCD901の代わりに、CRT(Cathode・Ray・Tube)、あるいは、その他の表示装置が用いられてもよい。マウス903の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
プロセス実行装置100は、プログラムを実行するCPU911(Central・Processing・Unit)を備えている。CPU911は、処理装置の一例である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914(Random・Access・Memory)、通信ボード915、LCD901、キーボード902、マウス903、FDD904、CDD905、プリンタ906、HDD920(Hard・Disk・Drive)と接続され、これらのハードウェアデバイスを制御する。HDD920の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ又はその他の記憶媒体が用いられてもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、HDD920は、不揮発性メモリの一例である。これらは、記憶装置の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905は、入力装置の一例である。また、通信ボード915、LCD901、プリンタ906は、出力装置の一例である。
通信ボード915は、LAN(Local・Area・Network)等に接続されている。通信ボード915は、LANに限らず、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークといったWAN(Wide・Area・Network)、あるいは、インターネットに接続されていても構わない。LAN、WAN、インターネットは、ネットワークの一例である。
HDD920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、CPU911により読み出され実行される。ファイル群924には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(識別子)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、RAM914やHDD920等の記憶媒体に記憶される。RAM914やHDD920等の記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理(動作)に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、RAM914等のメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、HDD920の磁気ディスク、光ディスク、DVD(Digital・Versatile・Disc)、あるいは、その他の記録媒体に記録される。また、データや信号は、バス912、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
次に、プロセス実行装置100の動作(本実施の形態に係るプロセス実行方法、本実施の形態に係るプログラムの処理手順)について説明する。
図5は、プロセス実行装置100の動作を示すフローチャートである。図6は、メッセージングフック共通処理を示すフローチャートである。
業務サービス201“task1”から業務サービス201“task2”に、業務フローが遷移する場合、図5の上に示すように、“task1”を送信元(Source)とし、“task2”を宛先(Desitination)としてメッセージが送信されるが、その際、メッセージ通信をサービス基盤10が通信路として仲介する。
図5は、この通信における“task1”からサービス基盤10への送信の処理の流れ(st1)と、サービス基盤10から“task2”への受信の処理の流れ(st2)を示したものである。メッセージングフック処理は共通のため図6の別フローチャートに示す。
図5の左のサービスの送信の流れ(st1)の動作の説明を行う。
(st11)“task1”が、業務処理における送信を行う箇所にて、宛先を“task2”として、メッセージを処理装置で作成する。
(st12)“task1”が、拡張メッセージAPI52に備わっている送信メソッドを使用して、メッセージ送信要求を処理装置で指示する。以降は拡張メッセージAPI52で行われる処理である。
(st13)拡張メッセージAPI52が、送信前のメッセージ横取り処理として、メッセージとメッセージに伴う実行情報(宛先やビジネスプロセス実行情報)と、タイミングとして送信前“preSend”を、メッセージングフック装置60の送信メッセージングフック部601に送る。
(st14)図6のメッセージングフック共通処理が行われる。
(st15)拡張メッセージAPI52が、サービス基盤10にメッセージを送信する。これはフックされない場合にも行われる本来の処理である。
(st16)拡張メッセージAPI52が、送信後のメッセージ横取り処理として、メッセージとメッセージに伴う実行情報(宛先やビジネスプロセス実行情報)と、タイミングとして送信後“postSend”を、メッセージングフック装置60の送信メッセージングフック部601に送る。
(st17)図6のメッセージングフック共通処理が行われる。
図5の右のサービスの受信の流れ(st2)の動作の説明を行う。
(st21)サービス基盤10が、“task2”の拡張メッセージAPI52における受信処理に、“task1”から受信したメッセージを渡して処理装置で呼び出す。
(st22)拡張メッセージAPI52が、受信処理前のメッセージ横取り処理として、メッセージとメッセージに伴う実行情報(宛先やビジネスプロセス実行情報)と、タイミングとして受信前“preProcess”を、メッセージングフック装置60の受信メッセージングフック部602に送る。
(st23)図6のメッセージングフック共通処理が行われる。
(st24)拡張メッセージAPI52が、“task2”の受信処理を処理装置で起動する。これはフックされない場合にも行われる本来の受信処理である。
(st25)拡張メッセージAPI52が、受信処理後のメッセージ横取り処理として、メッセージとメッセージに伴う実行情報(宛先やビジネスプロセス実行情報)と、タイミングとして受信後“postProcess”を、メッセージングフック装置60の受信メッセージングフック部602に送る。
(st26)図6のメッセージングフック共通処理が行われる。
図6のメッセージングフック共通処理について説明する。この処理は、メッセージングフック装置60により横取りしたメッセージを基に、拡張機能起動フィルタ装置71が、拡張機能起動フィルタリング定義501を解釈して、拡張サービス402を起動するまでの流れを示している。
この処理には、図5のメッセージ通信の送信メッセージングフック部601や受信メッセージングフック部602から、メッセージと実行情報とフックしたタイミングが渡される。
(st301)メッセージングフック装置60がメッセージと実行情報とタイミングを拡張機能起動フィルタ装置71の実行情報解析部711に送信する。以降は、拡張機能起動フィルタ装置71上で行われる処理である。
(st302)実行情報解析部711が条件変数コンテキスト生成部712に、メッセージングフック装置60から渡されたメッセージと実行情報とタイミングを渡して、起動条件式5013のコンテキスト生成を処理装置で依頼する。
(st303)条件変数コンテキスト生成部712が、メッセージと実行情報とタイミングを渡して、ビジネスプロセスメタ情報取得装置91に、ビジネスプロセスメタ情報の生成を処理装置で依頼する。
(st304)ビジネスプロセスメタ情報取得装置91が、ビジネスプロセス定義301から実行中のビジネスプロセス情報を解析して、条件変数process,task,taskpを処理装置で生成する。
(st305)条件変数コンテキスト生成部712が、メッセージと実行情報とタイミングを渡して、サービス定義情報取得装置81に、サービス定義情報の生成を処理装置で依頼する。
(st306)サービス定義情報取得装置81が、業務サービス201のインタフェースを基に実行中の業務サービス201の内容を解析して条件変数serviceを処理装置で生成する。
(st307)条件変数コンテキスト生成部712が、メッセージとタイミングと実行情報から条件変数messagingを処理装置で生成する。
(st308)実行情報解析部711が、条件変数コンテキスト生成部712により作成された条件変数process,task,taskp,service,messagingをパラメータとして、拡張サービス実行部714に、拡張サービス402の実行依頼を処理装置で行う。
(st309)拡張機能起動フィルタ装置71が、拡張機能起動フィルタリング定義501を上から順番に読み込みながら、フィルタ定義を取得しながらst309〜st313をループする。
(st310)拡張サービス実行部714が、起動条件評価部713に条件変数を渡して、現在のループ行におけるフィルタ定義の(フィルタ定義ID5011に対応する)起動条件式5013の評価を処理装置で依頼する。結果をtrue/falseで得る。
(st311)st310の結果がtrueならばst312を実行し、falseならばst313を実行する。
(st312)拡張サービス実行部714が、現在のループ行におけるフィルタ定義に対応する起動サービス5012に記述された拡張サービス402を処理装置で起動する。
(st313)ループにより、フィルタリング定義の最後の行に達していなければ、st309に戻る。
実施の形態1の効果について述べる。
図1に示すように、アーキテクチャ開発者が行う拡張サービス402を追加するために必要となる開発物は拡張サービス402と拡張機能起動フィルタリング定義501、アプリケーション開発者が行うために必要となる開発物は業務サービス201とビジネスプロセス定義301と、明確に分けることができる。アーキテクチャ開発者とアプリケーション開発者の開発対象が重なることはなく、役割分担を明確に分けることができるため、課題1を解決することができる。
また、拡張機能起動フィルタリング定義501において、条件変数process,task,taskpを使用することにより拡張サービス402の起動条件を実行中のビジネスプロセスにより制御したり、条件変数messagingを用いることによりサービス基盤10と業務サービス201のメッセージ通信のどの段階で拡張サービス402を起動するか制御したりすることができる。
図1の例では、“task1”を実行する前に拡張サービスAと拡張サービスB、“task2”を実行する前に拡張サービスA、“task3”を実行する前に拡張サービスAと拡張サービスCというように、ビジネスプロセス上の位置(ビジネスプロセス定義301において、どのタイミングで実行されるように定義されているか)により、起動する拡張サービス402を変更することができる。
業務サービス201のインタフェースに対して拡張サービス402が固定されないため、課題2が解決される。
以上説明したように、本実施の形態に係るプロセス実行装置100は、以下の(a)の業務システムに対して、(b)〜(f)を備えたESBサービス基盤拡張装置である。
(a)業務システムを構築する部品である業務サービス201、業務サービス201を組み合わせて意図したフローで実行するためのビジネスプロセス定義301、サービス基盤10というサービス基盤10を使用した業務システム。
(b)送信メッセージングフック部601と受信メッセージングフック部602を備えており、サービス基盤10と業務サービス201の間の通信を横取りして処理するメッセージングフック装置60。
(c)業務サービス201を解析して実行中の業務サービス201の情報を取得するサービス定義情報取得装置81。
(d)ビジネスプロセス定義301から実行中のビジネスプロセスのメタ情報を取得するビジネスプロセスメタ情報取得装置91。
(e)実行情報解析部711、条件変数コンテキスト生成部712、起動条件評価部713、拡張サービス実行部714を備えており、(b)のメッセージングフック装置60、(c)のサービス定義情報取得装置81、(d)のビジネスプロセスメタ情報取得装置91から得られる情報を基に、拡張機能起動フィルタリング定義501を評価することにより判断して意図したタイミングで拡張サービス402を起動する拡張機能起動フィルタ装置71。
(f)サービス基盤10と業務サービス201の間のメッセージをメッセージングフック装置60にルーティングしながら処理する拡張メッセージAPI52。
実施の形態2.
本実施の形態について、主に実施の形態1との差異を説明する。
図7は、本実施の形態に係るプロセス実行装置100の構成を示すブロック図である。図8は、拡張機能起動フィルタリング定義501の例を示す表である。図9は、フィルタアクション5015の書式を示す表である。
本実施の形態では、拡張機能起動フィルタリング定義502が、実施の形態1における拡張機能起動フィルタリング定義501に比べて、図8に示すように、フィルタグループID5014により階層化されており、フィルタグループごとに優先順位5016が付けられている。フィルタの起動条件式5013が真になった場合の動作がフィルタアクション5015になっている。また、図7において、拡張機能起動フィルタ装置71の中に、フィルタグループ処理部715とフィルタアクション実行部716が追加されている。さらに、本実施の形態では、実行情報解析部711の処理の一部が実施の形態1と異なっている。
上記のように、本実施の形態では、拡張機能起動フィルタリング定義502に複数の条件(起動条件式5013)が階層化して定義されている。
拡張機能起動フィルタ装置71は、メッセージングフック装置60により取得された情報(メッセージ)と当該情報を送信した業務サービス201により実行される業務処理とのうち、一方が拡張機能起動フィルタリング定義501で定義された1つの条件を満たすかどうかを判断する。満たすと判断した場合、拡張機能起動フィルタ装置71は、他方が拡張機能起動フィルタリング定義501で当該1つの条件の下位層に定義された条件を満たすかどうかを判断する。満たすと判断した場合、拡張機能起動フィルタ装置71は、当該業務処理が上記特定の業務処理であると処理装置で判断する。そして、拡張機能起動フィルタ装置71は、上記プロセス定義格納部に格納されたビジネスプロセス定義301に基づき、上記特定の業務処理が実行されるタイミングを処理装置で検出する。
実施の形態1と同様に、拡張機能起動フィルタ装置71は、上記特定の業務処理が実行されるタイミングを検出すると、検出したタイミングに合わせて拡張サービス402に拡張処理を実行させる。
拡張機能起動フィルタ装置71の各部における実施の形態1との違いを述べる。
条件変数コンテキスト生成部712、起動条件評価部713、拡張サービス実行部714は、実施の形態1と同じである。
実行情報解析部711は、実施の形態1と同様に条件変数を作成するが、最後にフィルタグループ処理部715に、拡張機能起動フィルタリング定義502に従った拡張サービス402の実行処理を依頼する。
フィルタグループ処理部715は、拡張機能起動フィルタリング定義502をフィルタグループID5014ごとにグループ化して、条件に一致する拡張サービス402を起動できるようにする。
フィルタアクション実行部716は、拡張機能起動フィルタリング定義502のフィルタアクション5015を解析して実行する。フィルタアクション5015は図9に示すように、他のフィルタグループを処理するevalアクションと、拡張サービス402を実行するexecアクションがある。
次に、プロセス実行装置100の動作(本実施の形態に係るプロセス実行方法、本実施の形態に係るプログラムの処理手順)について、実施の形態1との違いを中心に説明する。
本実施の形態における、メッセージ通信における拡張メッセージAPI52の処理は、実施の形態1と同じであり、図5に示す通りである。
図10は、メッセージングフック共通処理を示すフローチャートである。図11は、フィルタグループ共通処理を示すフローチャートである。
本実施の形態におけるメッセージングフック共通処理は、図10に示すようにst301〜st307は実施の形態1と同じである。st307の後でst308〜st313は、フィルタグループ共通処理に置き換わっており、以下のst314によりフィルタグループ共通処理が呼び出される。
(st314)実行情報解析部711が、拡張機能起動フィルタリング定義502のフィルタグループID5014が“TOP”となっているグループを処理するために、フィルタグループID5014=”TOP”としてフィルタグループ共通処理を処理装置で呼び出す。
実施の形態2で追加された、図11のフィルタグループ共通処理の説明を行う。
この処理にはパラメータとして、フィルタグループID5014(fgroupid)、図2の各条件変数(process,task,taskp,service,messaging)、メッセージ(message)、実行情報(execInfo)、タイミング(timing)が渡されている。
(st401)フィルタグループ処理部715が、拡張機能起動フィルタリング定義502より、フィルタグループID5014=fgroupidに合致する拡張機能起動フィルタリング定義502の行列を全て処理装置で取得する。
(st402)フィルタグループ処理部715が、取得した拡張機能起動フィルタリング定義502の、各行をf_itemとして取得しながら、st403〜st410をループする。
(st403)フィルタグループ処理部715が、起動条件評価部713に条件変数を渡して、現在のループ行におけるフィルタ定義の起動条件式5013の評価を処理装置で依頼する。結果をtrue/falseで得る。
(st404)st403の結果がtrueならばst405、falseならばst410に進む。
(st405)フィルタグループ処理部715が、フィルタアクション実行部716に、現在のループにおけるフィルタ定義f_itemのフィルタアクション5015の実行を処理装置で依頼する。
(st406)フィルタアクション実行部716が、図9に従ってフィルタアクション5015を処理装置で解析して、メソッド50151とパラメータ50152を得る。メソッド50151をfMethod、パラメータ50152をfParamと置く。
(st407)fMethodが“eval”ならばst408、fMethodが“exec”ならばst409に進む。
(st408)フィルタアクション実行部716が、拡張機能起動フィルタリング定義502のフィルタグループID5014がfParamのグループを処理するために、フィルタグループID5014=fParamとしてフィルタグループ共通処理を処理装置で呼び出す。
(st409)フィルタアクション実行部716が、fParamに対応する拡張サービス402を処理装置で起動する。
(st410)取得したフィルタリングの最後に達していなければst402からループ処理を継続する。
実施の形態2の効果としては、実施の形態1と同じ効果に加えて以下の効果が得られる。
実施の形態1では、メッセージングフック処理ごとに拡張機能起動フィルタリング定義501の全ての行の起動条件式5013が全て評価されていており、拡張機能起動フィルタリング定義501の行が多い場合には処理時間が長くなる。一方、本実施の形態では、メッセージングフックごとに必ず評価される拡張機能起動フィルタリング定義502の起動条件式5013はフィルタグループID5014が“TOP”となっている行のみであり、そこから階層的に評価が必要な行のみ評価されるため、起動条件式5013を最小限に抑えることにより性能が改善されるというメリットがある。
また、フィルタアクション5015のメソッドevalを利用すると、フィルタ定義の中から、別のフィルタグループを再利用できるため、拡張機能起動フィルタリング定義502における開発工数を削減することができる。例えば、図8の例では、フィルタ定義ID5011=“プロセス1用フィルタ”と、フィルタ定義ID5011=“プロセス3用フィルタ”から、フィルタグループID5014=“サービス実行時間フィルタ”のフィルタグループを再利用している。
以上説明したように、本実施の形態に係るプロセス実行装置100は、実施の形態1と同様の(a)の業務システムに対して、(e)の拡張機能起動フィルタ装置71が以下のようになっていて、その他は実施の形態1と同様の(b)〜(d)、(f)を備えたESBサービス基盤拡張装置である。
(e)実施の形態1と同じく実行情報解析部711、条件変数コンテキスト生成部712、起動条件評価部713、拡張サービス実行部714を備えており、さらに、フィルタグループ処理部715とフィルタアクション実行部716が追加されており、(b)のメッセージングフック装置60、(c)のサービス定義情報取得装置81、(d)のビジネスプロセスメタ情報取得装置91から得られる情報を基に、拡張機能起動フィルタリング定義502をフィルタグループIDによりグループ化した優先順位ごとに評価することにより判断して意図したタイミングで拡張サービス402を起動する拡張機能起動フィルタ装置71。
実施の形態3.
本実施の形態について、主に実施の形態2との差異を説明する。
図12は、本実施の形態に係るプロセス実行システム110の構成を示すブロック図である。図13は、拡張機能起動フィルタリング定義503の例を示す表である。図14は、フィルタアクション5035の書式を示す表である。図15は、拡張機能起動フィルタリング定義503の起動条件式5013の条件変数を示す表である。図16は、起動条件式5013の文法を示す表である。
図12において、プロセス実行システム110は、プロセス実行装置100に相当するサーバを複数備え、サーバ間でビジネスプロセス定義301と拡張機能起動フィルタリング定義503とを共有する。
本実施の形態では、複数のサーバでサービス基盤10を通して垂直分散している構成を採用しており、実施の形態2に対して、垂直分散している複数のサーバ間で、同期しながら使用できるサーバ間共有変数102を保持している。サーバ間共有変数102は、拡張機能起動フィルタリング定義503のフィルタアクション5035や起動条件式5013から使用可能である。構成としては、連携装置101が追加されている。
拡張機能起動フィルタ装置71の各部における実施の形態2との違いを述べる。
フィルタアクション実行部716には、サーバ間共有変数102を扱う機能が追加されている。図14に示すように、フィルタアクション5035のメソッド50351として、サーバ間共有変数102を更新するv_write、削除するv_delete、取得するv_getが追加されている。また、セミコロンで区切ることにより、複数のメソッド50351を実行できる機能が追加されている。v_writeのパラメータ50352の値には、変数、数値、v_getの戻り値50353をそのまま指定したり、図3の書式で指定したりすることができる。
条件変数コンテキスト生成部712には、サーバ間共有変数102をコンテキストとして使用できる機能が追加されている。
起動条件評価部713には、サーバ間共有変数102の値を取得(v_get)・存在チェック(v_exist)する関数が追加されている。
拡張サービス実行部714には、実施の形態2と同様の機能に加えて、連携装置101の拡張サービス連携部1012に対して、リモートで拡張サービス402を実行する機能を備えている。拡張機能起動フィルタリング定義503における実行サーバ5036の列が#local#ならばローカルでフィルタアクション5035を実行し、それ以外はサーバ名として拡張サービス連携部1012に送る。
連携装置101は、拡張機能起動フィルタリング定義503で使用する情報や要求を、垂直分散しているサーバ間で連携させる装置である。連携装置101は、変数保持部1013、拡張サービス連携部1012、通信部1011を備える。
変数保持部1013は、サーバ間共有変数102の生成・取得・更新と、通信部1011を通したサーバ間の同期を制御する。変数保持部1013は、サーバ間共有変数102の生成・更新を行う際には、垂直分散しているサーバとの間でサーバ間共有変数102の排他制御、同期、生成、更新を行う。
拡張サービス連携部1012は、拡張サービス実行部714からの要求を受けて、指定されたサーバの拡張サービス実行部714に対して、リモートでの拡張サービス402の実行を要求する。
通信部1011は、変数保持部1013と拡張サービス連携部1012で使用され、通信を行う。
本実施の形態では、実施の形態2と同じ効果に加えて以下の効果が得られる。
サーバ間共有変数102を通して、リモートの拡張サービス402と連携が可能となり、垂直分散しているサーバ間で、拡張サービス402を連携させる機能の開発が容易になる。
以上説明したように、本実施の形態に係るプロセス実行装置100は、実施の形態1と同様の(a)の業務システムに対して、以下の(g)が追加されていて、その他は実施の形態1と同様の(b)〜(f)を備えたESBサービス基盤拡張装置である。
(g)連携しているサーバ(プロセス実行装置100)間で共有できる、フィルタアクションから共有できるサーバ間共有変数102を操作・管理・サーバ間で同期させる変数保持部1013と、他のサーバ上の拡張サービス402を実行できるようにする拡張サービス連携部1012と、変数保持部1013と拡張サービス連携部1012から使用される通信部1011を備える連携装置101。
以上、本発明の実施の形態について説明したが、これらのうち、2つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、1つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、2つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
10 サービス基盤、51 メッセージAPI、52 拡張メッセージAPI、60 メッセージングフック装置、71 拡張機能起動フィルタ装置、81 サービス定義情報取得装置、91 ビジネスプロセスメタ情報取得装置、100 プロセス実行装置、101 連携装置、102 サーバ間共有変数、110 プロセス実行システム、201 業務サービス、301 ビジネスプロセス定義、401 拡張機能、402 拡張サービス、501,502,503 拡張機能起動フィルタリング定義、601 送信メッセージングフック部、602 受信メッセージングフック部、711 実行情報解析部、712 条件変数コンテキスト生成部、713 起動条件評価部、714 拡張サービス実行部、715 フィルタグループ処理部、716 フィルタアクション実行部、901 LCD、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 HDD、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群、1011 通信部、1012 拡張サービス連携部、1013 変数保持部、5011 フィルタ定義ID、5012 起動サービス、5013 起動条件式、5014 フィルタグループID、5015,5035 フィルタアクション、5016 優先順位、5036 実行サーバ、50151,50351 メソッド、50152,50352 パラメータ、50353 戻り値。

Claims (8)

  1. 複数の業務処理を実行する順序を定義するプロセス定義を記憶装置で格納するプロセス定義格納部と、
    前記プロセス定義格納部に格納されたプロセス定義で定義された順序に従って、それぞれ前記複数の業務処理の1つを処理装置で実行する複数の業務処理実行部であり、実行する業務処理で利用する情報を他の業務処理実行部から受信する処理と他の業務処理実行部により実行される業務処理で利用される情報を他の業務処理実行部へ送信する処理との少なくともいずれかを処理装置で実行する複数の業務処理実行部と、
    前記複数の業務処理以外の所定の処理を拡張処理として処理装置で実行する拡張処理実行部と、
    前記複数の業務処理実行部の間で送受信される情報を取得する情報取得部と、
    前記情報取得部により取得された情報と前記プロセス定義格納部に格納されたプロセス定義とに基づき、前記複数の業務処理のうち、特定の業務処理が実行されるタイミングを処理装置で検出し、検出したタイミングに合わせて前記拡張処理実行部に前記拡張処理を実行させる拡張処理制御部と、
    を備えることを特徴とするプロセス実行装置。
  2. 所定の条件を定義するフィルタリング定義を記憶装置で格納するフィルタリング定義格納部をさらに備え、
    前記拡張処理制御部は、前記情報取得部により取得された情報が前記フィルタリング定義格納部に格納されたフィルタリング定義で定義された条件を満たすかどうかを処理装置で判断し、満たすと判断した場合、当該情報を送信した業務処理実行部により実行される業務処理が前記特定の業務処理であると処理装置で判断する、請求項1のプロセス実行装置。
  3. 前記フィルタリング定義格納部は、前記フィルタリング定義として、複数の条件を定義するフィルタリング定義を格納し、
    前記拡張処理制御部は、前記情報取得部により取得された情報が前記フィルタリング定義格納部に格納されたフィルタリング定義で定義された1つの条件を満たし、かつ、当該情報を送信した業務処理実行部により実行される業務処理が当該フィルタリング定義で定義された他の条件を満たすかどうかを判断し、満たすと判断した場合、当該業務処理が前記特定の業務処理であると判断する、請求項2のプロセス実行装置。
  4. 前記フィルタリング定義格納部は、前記フィルタリング定義として、前記複数の条件を階層化して定義するフィルタリング定義を格納し、
    前記拡張処理制御部は、前記情報取得部により取得された情報と当該情報を送信した業務処理実行部により実行される業務処理とのうち、一方が前記フィルタリング定義格納部に格納されたフィルタリング定義で定義された1つの条件を満たすかどうかを判断し、満たすと判断した場合、他方が当該フィルタリング定義で当該1つの条件の下位層に定義された条件を満たすかどうかを判断する、請求項3のプロセス実行装置。
  5. 前記拡張処理制御部は、検出したタイミングの前と後との少なくともいずれかで前記拡張処理実行部に前記拡張処理を実行させる、請求項1から4いずれかのプロセス実行装置。
  6. 請求項1から5いずれかのプロセス実行装置を複数備え、当該プロセス実行装置間で前記プロセス定義を共有する、プロセス実行システム。
  7. 複数の業務処理を実行する順序を定義するプロセス定義を記憶装置で格納するプロセス定義格納部と、前記プロセス定義格納部に格納されたプロセス定義で定義された順序に従って、それぞれ前記複数の業務処理の1つを処理装置で実行する複数の業務処理実行部であり、実行する業務処理で利用する情報を他の業務処理実行部から受信する処理と他の業務処理実行部により実行される業務処理で利用される情報を他の業務処理実行部へ送信する処理との少なくともいずれかを処理装置で実行する複数の業務処理実行部と、前記複数の業務処理以外の所定の処理を拡張処理として処理装置で実行する拡張処理実行部と、を備えるコンピュータが、前記複数の業務処理実行部の間で送受信される情報を取得し、
    前記コンピュータが、取得した情報と前記プロセス定義格納部に格納されたプロセス定義とに基づき、前記複数の業務処理のうち、特定の業務処理が実行されるタイミングを処理装置で検出し、
    前記コンピュータが、検出したタイミングに合わせて前記拡張処理実行部に前記拡張処理を実行させる、プロセス実行方法。
  8. 複数の業務処理を実行する順序を定義するプロセス定義を記憶装置で格納するプロセス定義格納部と、前記プロセス定義格納部に格納されたプロセス定義で定義された順序に従って、それぞれ前記複数の業務処理の1つを処理装置で実行する複数の業務処理実行部であり、実行する業務処理で利用する情報を他の業務処理実行部から受信する処理と他の業務処理実行部により実行される業務処理で利用される情報を他の業務処理実行部へ送信する処理との少なくともいずれかを処理装置で実行する複数の業務処理実行部と、前記複数の業務処理以外の所定の処理を拡張処理として処理装置で実行する拡張処理実行部と、を備えるコンピュータにより実行されるプログラムであって、
    前記複数の業務処理実行部の間で送受信される情報を取得する情報取得手順と、
    前記情報取得手順により取得された情報と前記プロセス定義格納部に格納されたプロセス定義とに基づき、前記複数の業務処理のうち、特定の業務処理が実行されるタイミングを処理装置で検出し、検出したタイミングに合わせて前記拡張処理実行部に前記拡張処理を実行させる拡張処理制御手順と、
    をコンピュータに実行させることを特徴とするプログラム。
JP2010151049A 2010-07-01 2010-07-01 プロセス実行装置及びプロセス実行システム及びプロセス実行方法及びプログラム Pending JP2012014506A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010151049A JP2012014506A (ja) 2010-07-01 2010-07-01 プロセス実行装置及びプロセス実行システム及びプロセス実行方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010151049A JP2012014506A (ja) 2010-07-01 2010-07-01 プロセス実行装置及びプロセス実行システム及びプロセス実行方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2012014506A true JP2012014506A (ja) 2012-01-19

Family

ID=45600840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010151049A Pending JP2012014506A (ja) 2010-07-01 2010-07-01 プロセス実行装置及びプロセス実行システム及びプロセス実行方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2012014506A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396239B2 (en) 2013-07-26 2016-07-19 Hitachi, Ltd. Compiling method, storage medium and compiling apparatus
JP2019087098A (ja) * 2017-11-08 2019-06-06 富士ゼロックス株式会社 プログラム及び情報処理装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009122985A (ja) * 2007-11-15 2009-06-04 Mitsubishi Electric Corp サブプロセス実行システム及びサブプロセス実行プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009122985A (ja) * 2007-11-15 2009-06-04 Mitsubishi Electric Corp サブプロセス実行システム及びサブプロセス実行プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396239B2 (en) 2013-07-26 2016-07-19 Hitachi, Ltd. Compiling method, storage medium and compiling apparatus
JP2019087098A (ja) * 2017-11-08 2019-06-06 富士ゼロックス株式会社 プログラム及び情報処理装置

Similar Documents

Publication Publication Date Title
US10255064B2 (en) Upgrade analysis of a computer system
JP4824110B2 (ja) ページに関するページ・レイアウトを継承するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
US20100058118A1 (en) Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus
KR20090112669A (ko) 세션을 관리하는 웹 서버 및 그 방법
CN103649945B (zh) 最近使用的文档列表的自动同步
US20080010341A1 (en) Processing model of an application wiki
KR20090063636A (ko) Api 서비스 방법과 api 매쉬업 생성 방법, 장치 및기록매체
US8286194B2 (en) Coupling state aware systems
JP2009543166A (ja) ページによってページ・レイアウトを定義するためのコンピュータで実行される方法、コンピュータ・プログラム、およびデータ処理システム
JP2000132521A (ja) 異なるソ―ス間でのデ―タ項目移動および階層オブジェクト指向表現のための方法および装置
JP2012088863A (ja) 仮想計算機移動方法、コンピュータ及びプログラム
JP6068592B2 (ja) コンテンツ表示装置、コンテンツ表示システム、データ構造、コンテンツ表示方法及びコンテンツ表示プログラム
EP2257887A1 (en) Method and system for rules based workflow of media services
US11263267B1 (en) Apparatuses, methods, and computer program products for generating interaction vectors within a multi-component system
JP2018067302A (ja) ソフトウェアサービス実行装置、システム、及び方法
JP7332845B2 (ja) ユーザーインターフェース自動化における自動アンカー決定およびターゲットグラフィカル要素識別
JP2012014506A (ja) プロセス実行装置及びプロセス実行システム及びプロセス実行方法及びプログラム
CN105739717B (zh) 信息输入方法和装置
CN116521317A (zh) 镜像管理方法及装置、电子设备和计算机可读存储介质
JP2009093569A (ja) 業務サービス利用システム、業務サービス実行システム、業務サービス利用方法およびプログラム、並びに業務サービス実行方法およびプログラム
US20190179932A1 (en) Tracking and reusing function results
US20210397635A1 (en) Information processing device, information processing system, and computer-readable recording medium storing information processing program
Babazadeh et al. The stream software connector design space: Frameworks and languages for distributed stream processing
US10489404B2 (en) Macrocosm monitor service platform
CN102378964A (zh) 创建虚拟进程的进程内中介

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140401