JP2009157786A - メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム - Google Patents

メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム Download PDF

Info

Publication number
JP2009157786A
JP2009157786A JP2007337276A JP2007337276A JP2009157786A JP 2009157786 A JP2009157786 A JP 2009157786A JP 2007337276 A JP2007337276 A JP 2007337276A JP 2007337276 A JP2007337276 A JP 2007337276A JP 2009157786 A JP2009157786 A JP 2009157786A
Authority
JP
Japan
Prior art keywords
message
business process
service
preceding transmission
transmission part
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.)
Granted
Application number
JP2007337276A
Other languages
English (en)
Other versions
JP4516594B2 (ja
JP2009157786A5 (ja
Inventor
Naotsugu Tome
直告 當銘
Koichi Shimazaki
康一 嶋崎
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007337276A priority Critical patent/JP4516594B2/ja
Priority to US12/336,616 priority patent/US20090172122A1/en
Publication of JP2009157786A publication Critical patent/JP2009157786A/ja
Publication of JP2009157786A5 publication Critical patent/JP2009157786A5/ja
Application granted granted Critical
Publication of JP4516594B2 publication Critical patent/JP4516594B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ビジネスプロセス全体の所要時間を短縮する。
【解決手段】サービスを提供するサービス実行装置とビジネスプロセス管理装置とを含むビジネスプロセス管理システムでメッセージを送信する方法であって、ビジネスプロセス管理装置はサービスを組み合わせて定義されるビジネスプロセスを実行し、ビジネスプロセスには、サービス実行装置に送信するメッセージの定義が含まれ、ビジネスプロセス管理システムは、先行して送信可能なメッセージの一部又は全部である先行送信部分及び前記先行送信部分の内容が決定可能となる処理を特定する情報を含む先行送信部分管理情報を含み、前記先行送信部分の内容が決定可能となる処理が実行された後、先行送信部分管理情報に基づいて、当該サービスを呼び出す前に先行してサービス実行装置に先行送信部分を送信する。
【選択図】図1

Description

本発明は、ビジネスプロセスの実行時間を短縮する技術に関し、特に、サービスにメッセージを送信する技術に関する。
近年のシステム開発においては、ビジネスの変化に迅速に対応するため、システムが既に提供しているサービスを組み合わせて、ビジネスプロセスと呼ばれる新たなサービスを迅速に構築するビジネスプロセス管理システムが広く知られている。例えば特許文献1では、ビジネスプロセス管理システムに関連する発明として、複数のビジネスプロセスへのリクエスト(メッセージ)を振り分ける技術が開示されている。
サービスとは、計算機の主記憶装置上に記憶され、CPUによって実行されるプログラムである。サービスは、クライアントから受信した送信メッセージに従って返信メッセージを作成し、作成された返信メッセージをクライアントに返信する。サービスに対して送信メッセージを送ることを、サービスの呼び出しと呼ぶ。なお、クライアントも、計算機の主記憶装置に記憶されたプログラムであり、CPUによって実行される。
ビジネスプロセスは、サービスと同様に、計算機の主記憶装置上に記憶され、CPUによって実行されるプログラムである。ビジネスプロセスは、クライアントからの送信メッセージを受信し、ビジネスプロセス定義に基づいてサービスを呼び出し、当該サービスからの返信メッセージなどを利用して返信メッセージを作成し、当該返信メッセージをクライアントに返信する。
このようなビジネスプロセスを記述するビジネスプロセス定義言語で代表的なものとして、BPEL(Business Process Execution Language for Web Services)が知られている。また、サービスと送受信するメッセージ構成など、サービスのインターフェイスを定義する言語で代表的なものとして、WSDL(Web Services Description Language)が知られている。
さらに、サービス及び送受信するメッセージの通信プロトコルで代表的なものとして、SOAPが知られており、例えば、サービスの通信プロトコルにSOAPを使用することなどが、WSDLによるサービスインターフェイス定義に記述される。
SOAPは、文字ベースのXMLに基づく通信プロトコルであるため、送信メッセージに含まれるバイナリデータは、base64と呼ばれる方式などを用いて、英数字によって構成される文字列に変換される。しかし、変換後の文字列は、元のバイナリデータよりもサイズが大きくなるため、サイズの大きいバイナリデータを含むメッセージを扱うと、通信効率が悪い。そこで、SwA(SOAP Messsages with Attachments)、又は、MTOM(SOAP Message Transmission Optimization Mechanism)といった、通信効率を向上させるための技術が知られている。
SwA及びMTOMは、さまざまな種類のデータを通信するためのメッセージ構造を定めたMIMEを利用している。MIMEによるメッセージ構造は、MIMEバウンダリと呼ばれる特殊な区切り文字列によって分割された複数のデータ、及び、MIMEバウンダリ及びデータの種類に関する制御情報が記述されたMIMEヘッダによって構成されている。また、MIMEバウンダリによって分割された個々のデータに相当する部分をMIMEパートと呼ぶ。
SwA及びMTOMでは、送信メッセージを文字ベースのXML部分とバイナリデータ部分に分割して、それぞれを異なるMIMEパートに格納し、バイナリデータを文字列に変換せずにバイナリデータのままで送信する。受信側では、異なるMIMEパートに格納されたデータを集約して元の送信メッセージを復元する。これによってバイナリデータ部分を効率良く送信することができる。
特開2007−4414号公報
ビジネスプロセス管理システムでは、サービスに送信するメッセージに含まれるデータのサイズが大きくなると、当該メッセージの送信に必要な時間が性能上のボトルネックになりやすくなる。また、複数のサービスを順番に呼び出すビジネスプロセスでは、呼び出されたサービスの処理時間及びサービスからの返信メッセージを受信するまでの待機時間が、ビジネスプロセス全体の所要時間に含まれる。
一方、ビジネスプロセス管理システムでは、サービス呼び出しを並行に実行することにより、呼び出したサービスからの返信を待機することと並行して、別のサービスにメッセージを送信することができる。このようにサービスを並行して実行することによって、ビジネスプロセス全体の所要時間を減らすことができる。
しかし、サービスを並行して実行するためには、ビジネスプロセス定義又はサービスを変更する必要があるが変更できない場合がある。例えば、ビジネスプロセスの変更に関しては、以下の理由により変更できない場合がある。
(1)サービス間に処理上の依存関係があり、サービスを変更しないと、サービス呼び出しを並行に実行できない。
(2)ビジネスプロセス又はサービスが、利用者の業務の内容と強く関連しており、業務上の理由によって、サービスの呼び出しを並行に実行できない。
(3)利用者の業務の変更に合わせてビジネスプロセス定義も迅速に変更したいため、ビジネスプロセスの処理フローと業務のフローを同じ形にしておき、業務フローの変化に合わせて、ビジネスプロセス定義の処理フローも変更しやすくしている。
また、サービスの変更に関しては、以下の理由により変更できない場合がある。
(4)サービスが別組織又はパッケージアプリケーションなどによって所有されている場合がある。
(5)サービスが他のビジネスプロセスからも利用されているため、他のビジネスプロセスに影響を与えてしまう可能性がある。
(6)サービスの変更コストが高い場合がある。例えば、古いシステムで実装されたサービスでは、サービスを変更することができる技術者が不在の場合がある。
以上の理由によって、ビジネスプロセス定義又はサービスの変更が困難な場合が多い。したがって、従来のビジネスプロセス管理システムでは、サービス呼び出しを並行に実行することによってビジネスプロセス全体の所要時間を減らすことが難しかった。
本発明の目的は、ビジネスプロセス定義で記述されたサービスの呼び出し処理ステップよりも先に送信可能な、送信メッセージ部分があったときに、ビジネスプロセス定義及びサービスを変更することなく、当該サービス呼び出し処理ステップより先に、当該メッセージ部分を送信する方法及び装置を提供することである。
本発明の代表的な一形態では、サービス実行装置と、前記サービス実行装置に接続されるビジネスプロセス管理装置とを含むビジネスプロセス管理システムにおいて、前記ビジネスプロセス管理装置から前記サービス実行装置にメッセージを送信する方法であって、前記サービス実行装置は、前記ビジネスプロセス管理装置から送信されたメッセージに基づいて、所定のサービスを提供し、前記ビジネスプロセス管理装置は、プロセッサと、前記プロセッサによってアクセス可能な記憶部と、前記サービス実行装置に接続するインターフェイスと、を備え、前記所定のサービスを組み合わせることによって定義されるビジネスプロセスを実行することによって業務を処理し、前記ビジネスプロセスには、前記サービス実行装置に送信されるメッセージの定義、及び、前記所定のサービスを呼び出す処理の実行順序が含まれ、前記ビジネスプロセス管理システムは、前記所定のサービスを呼び出す前に、分割して送信可能なメッセージの一部又は全部である先行送信部分と、前記先行送信部分の内容が決定可能となる処理を特定する情報と、を含む先行送信部分管理情報を含み、前記メッセージ送信方法は、前記先行送信部分管理情報に基づいて、前記先行送信部分の内容が決定可能となる処理が実行された後、前記先行送信部分を含むメッセージが送信されるサービスを呼び出す前に、当該サービスを提供するサービス実行装置に前記先行送信部分を送信する。
本発明の一形態によれば、ビジネスプロセスの定義又はサービスを変更せずに、サービスを呼び出すためのメッセージの一部又は全部を先行してサービス実行装置に送信することによって、ビジネスプロセス全体の所要時間を短縮することができる。
以下、本発明の実施の形態について図面を参照しながら説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態のビジネスプロセス管理システムのシステム構成図である。
本発明の第1の実施の形態のビジネスプロセス管理システムには、ビジネスプロセス管理装置200、クライアント実行装置100及びサービス実行装置(300、310、320)を含む。ビジネスプロセス管理装置200、クライアント実行装置100及びサービス実行装置(300、310、320)は、ネットワーク220を介して相互に接続される。
クライアント実行装置100は、ビジネスプロセスを利用するための装置である。クライアント実行装置100は、ビジネスプロセス管理装置200とメッセージをやりとりするクライアント101を含む。
クライアント101は、ビジネスプロセスを利用して、業務処理を遂行するために実行されるプログラムである。クライアント実行装置100は、クライアント101を実行することによって、ネットワーク220を介して、ビジネスプロセス管理装置200と通信する。
ビジネスプロセス管理装置200は、ビジネスプロセスを管理するための装置である。ビジネスプロセス管理装置200は、ビジネスプロセス管理部201、先行送信部分発見部202、先行送信部203、及び記憶装置210を含む。
記憶装置210には、ビジネスプロセス定義211、ビジネスプロセス実行状態の管理情報212、先行送信部分の管理表213、先行送信の状態管理表214、ビジネスプロセスの変数値管理表215、及びサービスインターフェイス定義216が記憶されている。
ビジネスプロセス定義211には、BPELなどによって記述されたビジネスプロセス定義に関連する情報が格納されている。
ビジネスプロセス実行状態の管理情報212には、ビジネスプロセスの実行状態を管理するための情報が格納されている。ビジネスプロセスの実行状態を管理するための情報には、現在実行中のビジネスプロセスの識別子、当該ビジネスプロセスで現在処理中の処理ステップ、さらに、ビジネスプロセスが送受信するメッセージを格納するために使用される変数の値などの情報が含まれる。
ビジネスプロセス管理部201は、ビジネスプロセス定義211及びビジネスプロセス実行状態の管理情報212に基づいて、ビジネスプロセスの処理ステップの実行及びビジネスプロセスの実行状態を管理する。
サービス実行装置300は、ビジネスプロセス管理装置から要求された処理を実行するサービス301を提供する。サービス実行装置300は、ネットワーク220を介して、ビジネスプロセス管理装置200と通信する。同様に、サービス実行装置310はサービス311を提供し、サービス実行装置320はサービス321を提供する。
図2は、本発明の第1の実施の形態のビジネスプロセス管理システムのハードウェアを含む構成を示す図である。
ビジネスプロセス管理システムは、前述したように、ビジネスプロセス管理装置200、クライアント実行装置100及びサービス実行装置300を含む。
ビジネスプロセス管理装置200は、CPU1401、主記憶装置1402、二次記憶装置1404、及び通信インターフェイス1405を含む。CPU1401、主記憶装置1402、二次記憶装置1404、及び通信インターフェイス1405は、バス1406によって接続される。
主記憶装置1402は、CPU1401によって実行されるビジネスプロセス管理プログラム1403を記憶する。ビジネスプロセス管理プログラム1403は、ビジネスプロセス管理部201、先行送信部分発見部202、及び先行送信部203を含む。
また、主記憶装置1402は、先行送信の状態管理表214及びBPの変数値管理表215を記憶する。先行送信の状態管理表214及びBPの変数値管理表215は、二次記憶装置1404が記憶してもよい。
二次記憶装置1404は、ビジネスプロセス定義211、ビジネスプロセス実行状態の管理情報212、先行送信部分の管理表213、及びサービスインターフェイス定義216を含む。ビジネスプロセス定義211、ビジネスプロセス実行状態の管理情報212、先行送信部分の管理表213、及びサービスインターフェイス定義216は、主記憶装置1402によって記憶されてもよい。
通信インターフェイス1405は、ネットワーク220に接続する。
クライアント実行装置100は、CPU1411、主記憶装置1412、二次記憶装置1414、及び通信インターフェイス1415を含む。CPU1411、主記憶装置1412、二次記憶装置1414、及び通信インターフェイス1415は、バス1416によって接続される。
主記憶装置1412は、CPU1411によって実行されるクライアント101を記憶する。通信インターフェイス1415は、ネットワーク220に接続する。
サービス実行装置300は、CPU1421、主記憶装置1422、二次記憶装置1424、及び通信インターフェイス1425を含む。CPU1421、主記憶装置1422、二次記憶装置1424、及び通信インターフェイス1425は、バス1426によって接続される。
主記憶装置1422は、CPU1421によって実行されるサービス301を記憶する。通信インターフェイス1425は、ネットワーク220に接続する。
ここで、具体的なビジネスプロセスの一例を示しながら、本発明の第1の実施の形態を説明する。
図3は、本発明の第1の実施の形態のビジネスプロセスの一例を示す図である。
ビジネスプロセスは、前述したように、あらかじめ作成されたサービスを組み合わせて実行することによって、業務を遂行する。
開始500は、ビジネスプロセスの開始を示す。受付501は、クライアントからのメッセージを受信し、ビジネスプロセスを開始する処理ステップである。長大データA520は、サイズの大きいデータがクライアントからのメッセージに含まれることを示している。長大データA520を含む受信メッセージは、変数bpReq560に格納される。
Service1呼び出し502は、Service1を呼び出す処理ステップである。ここで、「Service1」とは、「Service1」という名前が付けられたサービスを示す。以降、「Service2」から「Service7」も同様である。
代入A550は、変数bpReq560に含まれる長大データA520を変数sv2Req561に代入する。
Service2呼び出し503は、Service2を呼び出す処理ステップである。また、Service2に送信するメッセージには、受付501で受信し、代入A550で変数sv2Req561に代入された長大データA520が含まれる。
分岐A504は、条件によってService3呼び出し505又はService5呼び出し507が実行される分岐である。
Service3呼び出し505は、Service3を呼び出す処理ステップであり、Service3からの受信メッセージに長大データB521が含まれる。長大データB521を含む受信メッセージは、変数sv3Res561に格納される。代入B551は、変数sv3Res561に含まれる長大データB521を、変数sv7Reqのメッセージ部分image1(図3の562)に格納する。代入C552は、変数bpReq560に含まれる長大データA520を、変数sv4Req563に格納する。変数Service4呼び出し506は、Service4を呼び出す処理ステップであり、Service4への送信メッセージに、変数sv4Reqに含まれる長大データA520を含む。
Service5呼び出し507は、Service5を呼び出す処理ステップであり、Service5からの受信メッセージに長大データB521が含まれる。長大データB521を含む受信メッセージは、変数sv5Res564に格納される。代入D553は、変数sv5Res564に含まれる長大データBを変数sv7Reqのメッセージ部分image1(図3の562)に格納する。
分岐A終了508は、分岐A504から開始された分岐の終了を示す。
Service6呼び出し509は、Service6を呼び出す処理ステップである。代入E554は、変数bpReq560に含まれる長大データA520を、変数sv7Reqのメッセージ部分image2(図3の565)に格納する。Service7呼び出し510は、Service7を呼び出す処理ステップである。Service7呼び出し510では、Service7に送信するメッセージには、変数sv7Req565に格納されていた長大データA520及び長大データB523が含まれる。長大データB523の内容は、分岐A504における分岐先によって異なり、Service3呼び出し505で受信した長大データB521の内容、又はService5呼び出し507で受信した長大データ522の内容となる。
返信511は、クライアントに返信メッセージを送信し、ビジネスプロセスを終了する処理ステップである。終了512は、ビジネスプロセスの終了を示す。
図4は、本発明の第1の実施の形態のビジネスプロセスの一例を示すビジネスプロセス定義211の記述例を示す図である。
ビジネスプロセス定義211はBPELによって記述され、二次記憶装置1404に格納される。BPELには、基本的な処理を規定するアクティビティが定義されている。サービスを呼び出すときの送受信するメッセージを格納する変数の宣言、サービスを呼び出すアクティビティの記述、サービスを呼び出すときに送信するメッセージを格納する変数の指定、サービスを呼び出して受信するメッセージを格納する変数の指定などを、BPELによって記述することができる。
図3と図4の対応を簡単に説明すると、行12の<receive variable=“bpReq”/>でビジネスプロセスが開始され、受付501に対応する。サービスの実行は、invokeアクティビティによって記述され、Service1呼び出し502に対応する記述は、行13の<invoke portType=“Service1” operation=“operation1”/>となる。
送受信されるメッセージに含まれるデータは、各アクティビティに記述される変数によって指定される。例えば、行19のinvokeアクティビティでは、「inputVariable=“sv2Req”」の記述によって、変数“sv2Req”に含まれるメッセージを送信することを示している。また、行23のinvokeアクティビティでは、「outputVariable=“sv3Res”」の記述によって、サービスから受信したメッセージを変数“sv2Res”に格納することを示している。
また、メッセージを格納する変数の名前や型は、変数の宣言で指定される。例えば、行3〜10に変数の宣言が記述されており、行4の<variable messageType=“bp:bpRequestMessage” name=“bpReq”/>では、名前が「bpReq」で、型が「bp:bpRequestMessage」である変数を宣言している。なお、型「bp:bpRequestMessage」の詳細は、サービスインターフェイス定義216で定義される。
受信したデータは、assignアクティビティによって、別の変数に代入され、他のサービスに送信されたり、クライアントに送信されたりする。具体的には、受付501で受信したメッセージは変数“bpReq”に格納されているが、そのメッセージの一部であるメッセージ部分“image”は、行14から行18までの処理で、変数“sv2Req”のメッセージ部分 “image”に代入される。
なお“sv2Req”のメッセージ部分“image”以外のメッセージ部分にも、何らかの値を代入する処理がありうる。図4のBPEL記述では、このような代入処理の記述を一部省略し、長大データに関するメッセージ部分の代入処理のみ示している。
そして行19では、Service2呼び出し503が実行され、“sv2Req”がService2を実行するサービス実行装置300に送信される。
また、分岐は、switchアクティビティによって記述される。図4の分岐A504では行20に記述され、分岐の終了は行46に記述されている。最後に、replyによってクライアントに処理結果を送信する。図4では、行54の<reply/>が対応する。
図5は、本発明の第1の実施の形態のビジネスプロセスの一例において、サービスを呼び出すインターフェイスをWSDLによって記述した例を示す図である。
サービスインターフェイス定義216は、図5に示したようなWSDLで記述され、二次記憶装置1404に格納される。
図5には、図3に示したビジネスプロセスで呼び出すService2のインターフェイス定義をWSDLで記述した例が示されている。
行4から行9は、サービスService2のインターフェイスを示しており、行6はメッセージsv2RequestMessageを受信することを示している。
また、行10から行13は、メッセージsv2RequestMessageの構造を示している。メッセージの構造は、メッセージ部分body(行11)とメッセージ部分image(行12)によって構成されていることを示している。行12は、メッセージ部分imageの型(type)が“xsd:hexBinary”、すなわち、バイナリデータであることを示している。
図6Aは、本発明の第1の実施の形態の先行送信部分の管理表213の一例を示す図である。
先行送信部分の管理表213は、先行送信部分に関連する情報を保持するための表である。先行送信部分の管理表213は、BP名401、サービス呼び出し402、先行送信部分403、先行送信可能処理ステップ404及び分岐確定ステップ405を含む。
BP名401は、ビジネスプロセスの名前である。サービス呼び出し402は、呼び出されるサービスである。先行送信部分403は、サービスに送信されるメッセージの中で、先行送信可能な部分である。
先行送信可能処理ステップ404は、先行送信可能なメッセージ部分が送信可能となる処理ステップを示す。言い換えると、先行送信可能処理ステップ404は、先行送信部分403の内容が決定可能となる処理ステップを示している。つまり、ビジネスプロセスがこの処理ステップまで進むと、先行送信部分403の内容を決定し、先行送信部分403を先行送信することができることを示している。
分岐確定ステップ405は、サービス呼び出し402に対応する処理ステップを含む分岐を示す。
具体的に説明すると、先行送信部分の管理表213の行412には、「Service4」に送信するメッセージの一部(メッセージ部分imageに格納されるデータ)が、ビジネスプロセスの受信処理の時点で先行送信可能となることを示している。さらに、サービス呼び出し「Service4」は、分岐Aによる分岐に含まれることを示している。なお、分岐確定ステップが「null」の場合は、対応するサービス呼び出しが分岐に含まれていないことを示している。
先行送信部分の管理表213の行414は、「Service7」に送信するメッセージの一部(image2)が、「Service3呼び出し」の時点で先行送信可能となることを示している。同様に、行415は、「Service5呼び出し」の時点で先行送信可能となることを示している。「Service3呼び出し」及び「Service5呼び出し」は、分岐Aに含まれる処理であるため、いずれか一方の処理が完了すれば、先行送信が可能となる。
図6Bは、本発明の第1の実施の形態の先行送信の状態管理表214の一例を示す図である。
先行送信の状態管理表214は、先行送信部203が先行送信の状態を管理するために使用される表である。先行送信の状態管理表214は、サービス呼び出し421、先行送信部分422、先行送信可能処理ステップ423、分岐確定ステップ424及び実行状態425を含む。
サービス呼び出し421は、先行送信される対象のサービスである。先行送信部分422は、先行送信可能なメッセージ部分である。
先行送信可能処理ステップ423は、先行送信可能なメッセージ部分が送信可能となる処理ステップである。分岐確定ステップ424は、サービス呼び出し421に格納されたサービスが呼び出される処理ステップを含む分岐である。実行状態425は、サービス呼び出し421に格納されたサービスに先行送信されたか否かなどを示す実行状態である。
図6Cは、本発明の第1の実施の形態のビジネスプロセスの変数値管理表215の一例を示す図である。
BPの変数値管理表215は、先行送信部203によって送信されるメッセージに含まれる変数を管理するための表である。BPの変数値管理表215は、変数441及び値442を含む。変数441は、変数名である。値442は、変数に格納される値である。値442には、まだ変数に値が格納されていない場合、変数の値が未定義であることを示す値「(未定義)」が格納される(図6Cの行453の値442)。
図7Aは、本発明の第1の実施の形態のビジネスプロセス定義211の一例を示す図である。
ビジネスプロセス定義211は、ビジネスプロセス管理装置200で実行するビジネスプロセスの定義を格納する。ビジネスプロセス定義211は、BP名1501及び定義1502を含む。BP名1501は、ビジネスプロセスの名前である。定義1502は、BPELによって記述されたビジネスプロセスの定義である。
ビジネスプロセス管理部201は、クライアント101からのメッセージを受信すると、要求されたビジネスプロセスに対応する定義1502を参照する。そして、参照された定義1502に格納されたビジネスプロセス記述に基づいて、後述するビジネスプロセス実行状態の管理情報212を更新しながら、サービスの呼び出しなどを実行する。
図7Bは、本発明の第1の実施の形態のビジネスプロセス実行状態の管理情報212の一例を示す図である。
ビジネスプロセス実行状態の管理情報212は、ビジネスプロセス管理装置200で実行中のビジネスプロセスの状態を管理するために使用される表である。ビジネスプロセス実行状態の管理情報212は、識別子1521、BP名1522、処理ステップ1523、及び変数値1524を含む。さらに、変数値1524は、変数1525及び値1526を含む。値1526には、まだ変数に値が格納されていない場合、変数の値が未定義であることを示す値「(未定義)」が格納される(図7Bの行1533の値1526)。
識別子1521は、ビジネスプロセスを一意に識別するための識別子である。BP名1522は、ビジネスプロセスの名前である。処理ステップ1523は、現在実行中の処理ステップを示す。変数値1524は、現在の変数の状態を示す。変数1525は変数の名前を示す。値1526は、変数に格納されている値を示す。
ビジネスプロセス管理部201は、クライアント101からのメッセージを受信すると、ビジネスプロセス実行状態の管理情報212に新しく行を追加し、ビジネスプロセス定義211の定義1502に格納されたビジネスプロセス記述に基づいて、処理ステップ1523を更新しながら、サービス呼び出し及び変数値1524を更新する。
図7Cは、本発明の第1の実施の形態のサービスインターフェイス定義216の一例を示す図である。
サービスインターフェイス定義216は、ビジネスプロセスが呼び出すサービスのインターフェイス定義を格納する。サービスインターフェイス定義216は、サービス名1541及び定義1542を含む。サービス名1541は、サービスの名前である。定義1542は、WSDLによって記述されたサービスインターフェイス定義を示す。
ビジネスプロセス管理部201は、定義1542に記述されたサービスインターフェイス定義を利用して、サービスを呼び出す際の通信処理を実行する。
次に、先行送信部分発見部202の処理の流れを、図8を用いて説明する。先行送信部分発見部202は、ビジネスプロセス定義211及びサービスインターフェイス定義216を入力として、先行送信部分に関連する情報を含む行を先行送信部分の管理表213に追加する。
図8は、本発明の第1の実施の形態の先行送信部分発見部202の処理の手順を示すフローチャートである。
CPU1401は、まず、ビジネスプロセス定義211の定義1502に格納されているビジネスプロセスの定義(BPEL)を参照し、すべてのサービス呼び出しCを抽出する。そして、抽出されたサービス呼び出しCごとに、ステップ602からステップ613までの処理を繰り返す(ステップ601)。サービス呼び出しCは、前述したように、BPELで記述されたビジネスプロセス定義ではinvokeアクティビティに対応する。したがって、定義1502から<invoke>の記述を抽出することによって、サービス呼び出しCを抽出できる。
CPU1401は、ビジネスプロセス定義211のサービス呼び出しの記述(invokeアクティビティ)を抽出し、サービス呼び出しCにおいて送信されるメッセージを格納する変数Vを特定する(ステップ602)。変数Vは、例えば、invokeアクティビティに含まれる「inputVariable」に設定された内容である。
さらに、図3に示すビジネスプロセスにおいて、Service2を呼び出す場合について具体的に説明すると、図3のService2呼び出し503は、図4に示すビジネスプロセス定義の行19に対応する。行19に記述されたinvokeアクティビティを参照すると、「inputVariable=“sv2Req”」と記述されており、変数Vは“sv2Req”となる。
CPU1401は、ビジネスプロセス定義211内の変数Vの変数定義部分(<variable>)を参照し、メッセージの型(messsageType)を特定する。次に、サービスインターフェイス定義216から、呼び出すサービスに対応する定義1542を取得する。さらに、取得された定義1542に記述されたサービスインターフェイス定義(WSDL)から、メッセージの型に対応するメッセージ定義部分(<message>)を特定する。最後に、特定されたメッセージ定義に含まれるメッセージ部分(<part>)を参照し、送信するメッセージのすべてのメッセージ部分Pを特定する(ステップ603)。
例えば、変数Vが“sv2Req”の場合、図4に示すビジネスプロセス定義の行5が“sv2Req”のメッセージ型が記述されており、メッセージの型が“bp2:sv2RequestMessage”であることが分かる。
さらに、図5に示すService2のインターフェイス定義を参照すると、行10にメッセージ型“bp2:sv2RequestMessage”が定義されており、メッセージ部分Pとして“body”と“image”を特定することができる。
続いて、CPU1401は、すべてのメッセージ部分Pについて、ステップ605からステップ612までの処理を繰り返す(ステップ604)。
CPU1401は、サービスインターフェイス定義216(WSDL)を参照し、メッセージ部分Pの型(type)がバイナリデータ(“xsd:hexBinary”又は“xsd:base64Binary”)であるか否かを判定する(ステップ605)。本発明の第1の実施の形態では、バイナリデータであればメッセージ部分Pは先行送信部分であると判定する。他の型のデータについても先行送信可能な部分とする場合など、先行送信可能な部分であるか否かを判定する条件を別の判定条件としてもよい。処理対象のメッセージ部分Pの型がバイナリデータでない場合には(ステップ605の結果が「No」)、他のメッセージ部分Pについてステップ605の処理を実行する。
例えば、図4に示すService2のインターフェイス定義の行12では、メッセージ部分“image”のtypeが“xsd:hexBinary”であることから、型がバイナリデータであることがわかる。したがって、メッセージ部分“image”が先行送信部分に該当する。
CPU1401は、処理対象のメッセージ部分Pがバイナリデータであった場合には(ステップ605の結果が「Yes」)、処理対象のメッセージ部分Pが先行送信可能と判定し、先行送信部分の管理表213にメッセージ部分Pに対応するレコードを作成する。
CPU1401は、まず、変数V’=V、メッセージ部分P’=P、処理ステップS=C、分岐B=nullに設定する(ステップ606)。
CPU1401は、次に、ビジネスプロセス定義211(BPEL)内の処理ステップSの1つ前に実行する処理ステップをSとする(ステップ607)。
CPU1401は、処理ステップSの種類に基づいて、以下の(a)から(d)の処理に分岐させる(ステップ608)。
CPU1401は、処理ステップSがビジネスプロセスの開始に該当し、処理ステップS以前に処理ステップが存在しない場合には(分岐先が(a)の場合)、他のメッセージ部分Pについて、処理を実行する。
CPU1401は、処理ステップSがサービス呼び出し(<invoke>)又は受付(<receive>)であって、受信メッセージの代入先がV’である場合には(分岐先が(b)の場合)、先行送信部分の管理表213にレコードを新たに追加する(ステップ612)。
分岐先が(b)の場合には、処理ステップSにおいて、最終的には先行送信部分となるメッセージ部分Pに代入されるデータを受信しているため、処理ステップSが終了した時点から先行送信が可能となる。したがって、処理ステップSが先行送信可能処理ステップとなる。そこで、ステップ612の処理では、先行送信部分の管理表213に先行送信部分Pと先行送信可能処理ステップSを含む行を追加する。ステップ612の処理の詳細については後述する。
CPU1401は、処理ステップSが代入(<assign>)であって、代入先(<to>)の変数(<variable>)がV’、かつ、メッセージ部分(<part>)がP’の場合には(分岐先が(c)の場合)、変数V’及びメッセージ部分P’の値を更新する(ステップ610)。
分岐先が(c)の場合には、処理ステップSにおいて、代入元(<from>)の変数(<variable>)のメッセージ部分(<part>)の値が変数V’のメッセージ部分P’に代入される。したがって、変数V’=代入元の変数(<variable>)、メッセージ部分P’=代入元のメッセージ部分(<part>)に設定し(ステップ610)、処理を継続することによって、先行送信可能な処理ステップを抽出することができる。
CPU1401は、処理ステップSが分岐(<switch>)又は繰り返し(<while>)の場合には(分岐先が(d)の場合)、サービス呼び出しCが分岐された処理であることが分かる。そこで、分岐先が(d)であって、分岐Bの値がnullの場合には、分岐B=Sに設定する(ステップ611)。分岐Bが設定済みの場合には、分岐Bにはサービス呼び出しCに最も近い分岐を設定するため、何もしない。
なお、処理ステップSが(a)から(d)の条件に合致しない場合には(分岐先が(e)の場合)、ステップ607の処理を戻り、さらに1つ前のステップについてステップ608の判定を実行する。
ここで、ステップ612の処理について詳細に説明する。ステップ612の処理は、前述のように、先行送信部分Pと先行送信可能処理ステップSが判明した場合に(ステップ608の分岐が(b))、実行される処理である。処理の概要としては、先行送信部分の管理表213に、先行送信部分Pと先行送信可能処理ステップSを含むレコードを追加する。具体的には、BP名401にビジネスプロセスの名前、サービス呼び出し402にサービス呼び出しC、先行送信部分403にメッセージ部分P、先行送信可能処理ステップ404に処理ステップS、分岐確定ステップに分岐Bを設定した行を追加する。
例えば、サービス呼び出しC=Service2、変数V=sv2Req、メッセージ部分P=imageについて、ステップ604からステップ613までの処理を実行した場合について検討する。処理ステップSが受付(図4のビジネスプロセス定義における行12の<receive>)、変数V’=bpReqの場合に、ステップ612の処理が実行される。すなわち、Service2に送信するメッセージを格納する変数sv2Reqのメッセージ部分imageに代入されるデータは、受付(<receive>)の処理ステップにて受信され、変数bpReq2に格納される。したがって、受付(<receive>)の処理ステップが終了した時点で、Service2への送信メッセージのメッセージ部分imageが先行送信可能であることが分かる。そこで、図6Aに示した先行送信部分の管理表213には、サービス呼び出し402がService2、先行送信部分403がimage、先行送信可能処理ステップ404が受付であるレコード411が追加される。
ここで、先行送信部203の処理について、図9から図11を用いて説明する。先行送信部203の処理は、ビジネスプロセス管理部201がビジネスプロセスを開始した場合に、ビジネスプロセス管理部201の処理と並行して実行される。したがって、先行送信部203で複数のビジネスプロセスが同時に実行される場合は、実行されるビジネスプロセスの数だけ、先行送信部203の処理が並行して実行されることになる。
図9は、本発明の第1の実施の形態の先行送信処理の手順を示すフローチャートである。
CPU1401は、まず、変数bpに、ビジネスプロセス管理部201によって開始されたビジネスプロセスを設定する(ステップ701)。
CPU1401は、先行送信の状態管理表214を記憶装置210に作成する(ステップ702)。なお、先行送信部203の処理は、同時に実行しているビジネスプロセスの数だけ並行して実行されるため、先行送信の状態管理表214も複数作成される場合がある。以降、先行送信の状態管理表214は、ステップ702の処理で作成された先行送信の状態管理表214を指す。
CPU1401は、bpの処理ステップがすべて終了したか否かを判定する(ステップ703)。bpの処理ステップがすべて終了している場合には(ステップ703の結果が「Yes」)、ステップ702の処理で作成された先行送信の状態管理表214を破棄する(ステップ713)。
CPU1401は、bpの処理ステップがすべて終了していない場合には(ステップ703の結果が「No」)、先行送信部分の管理表213から、bpと同じビジネスプロセス名がBP名401に設定されているすべてのレコードLについて、ステップ705からステップ710までの処理を繰り返す(ステップ704)。
CPU1401は、レコードLの先行送信可能処理ステップ404が、bpの現在の処理ステップよりも前であるか否かを判定する(ステップ705)。レコードLの先行送信可能処理ステップ404が、bpの現在の処理ステップよりも前でない場合には(ステップ705の結果が「No」)、次のレコードLについて処理を実行する。
CPU1401は、レコードLの先行送信可能処理ステップ404が、bpの現在の処理ステップよりも前である場合には(ステップ705の結果が「Yes」)、レコードLとサービス呼び出し421が等しい行が先行送信の状態管理表214に存在するか否かを判定する(ステップ706)。レコードLとサービス呼び出し421が等しい行が先行送信の状態管理表214に存在する場合には(ステップ706の結果が「Yes」)、既にステップ707以降の処理が実行されているため、次のレコードLについて処理を実行する。
CPU1401は、レコードLとサービス呼び出し421が等しい行が先行送信の状態管理表214に存在しない場合には(ステップ706の結果が「No」)、先行送信部分の管理表213から、レコードLとサービス呼び出し402が等しいすべてのレコードLLについて、ステップ708の処理を繰り返す(ステップ707)。
CPU1401は、先行送信の状態管理表214に、新しいレコードを追加する(ステップ708)。追加されるレコードのサービス呼び出し421には、レコードLのサービス呼び出し402が設定される。先行送信部分422には、レコードLの先行送信部分403が設定される。先行送信可能処理ステップ423には、レコードLの先行送信可能処理ステップ404が設定される。分岐確定ステップ424には、レコードLの分岐確定ステップ405が設定される。実行状態425には「先行送信前」が設定される。
CPU1401は、レコードLのサービス呼び出し402に指定されたサービスに対して先行送信を実行するため、図10にて後述するサービス呼び出し部分の先行送信処理を並行して実行する(ステップ710)。
CPU1401は、ステップ704からステップ711までの処理が終了すると、ビジネスプロセス管理部201の処理によってbpに設定された現在の処理ステップが他の処理ステップに遷移するまで待機した後、ステップ703の処理を実行する(ステップ712)。
図10は、本発明の第1の実施の形態の先行送信処理のサービス呼び出し部分の手順を示すフローチャートである。
CPU1401は、まず、変数bpに現在実行中のビジネスプロセスを設定し、変数Sに先行送信の対象であるサービスを設定する(ステップ801)。
CPU1401は、続いて、サービスSへの通信接続を開く(ステップ802)。
CPU1401は、ビジネスプロセス管理部201の処理によって、変数bpに設定された現在実行中のビジネスプロセスがエラーなどにより終了しているか否かを判定する(ステップ803)。当該ビジネスプロセスがエラーなどにより終了している場合には(ステップ803の結果が「Yes」)、サービスSへの通信接続を閉じ(ステップ810)、本処理を終了する。
CPU1401は、変数bpに設定された現在実行中のビジネスプロセスが終了していない場合には(ステップ803の結果が「No」)、当該ビジネスプロセスがサービスSに到達したか否かを判定する(ステップ804)。
CPU1401は、変数bpに設定された現在実行中のビジネスプロセスがサービスSに到達している場合には(ステップ804の結果が「Yes」)、送信されていないMIMEメッセージ部分を作成し、サービスSに送信する(ステップ809)。
CPU1401は、変数bpに設定された現在実行中のビジネスプロセスがサービスSに到達していない場合には(ステップ804の結果が「No」)、先行送信の状態管理表214から、先行送信可能な条件を満たすレコードLを取得する(ステップ805)。先行送信可能な条件を満たすレコードLとは、以下の条件Aから条件Dをすべて満たすレコードである。
(条件A)サービス呼び出し421がサービスSと等しい。
(条件B)先行送信可能処理ステップ423が変数bpに設定された現在実行中のビジネスプロセスの現在の処理ステップよりも前に位置する。
(条件C)分岐確定ステップ424が「null」、又は、分岐確定ステップ424がbpの現在の処理ステップより前である。
(条件D)実行状態425が「先行送信前」である。
ここで、分岐確定ステップ424が「null」でない場合には、サービスSは分岐に含まれるが、分岐条件によってはサービスSが呼び出されない場合がある。条件Cは、変数bpに設定された現在実行中のビジネスプロセスの現在の処理ステップが分岐確定ステップより後になったタイミング、つまり、サービスSが呼び出される分岐に入ったタイミングで成立する。条件Cによって、確実に呼び出されるサービスについて先行送信されるようにしている。
他の方法としては、サービスSが呼ばれる分岐に入る前から先行送信を実行する方法もある。例えば、分岐に入る前にサービスSに先行送信を実行し、現在実行中のビジネスプロセスの現在の処理ステップが分岐確定ステップを処理し、分岐に入らないことが確定した時点で先行送信の通信を中断する。
CPU1401は、ステップ805の処理において、該当するレコードLが存在するか否かを判定する(ステップ806)。
CPU1401は、該当するレコードLが存在する場合には(ステップ806の結果が「Yes」)、先行送信処理の通信部分を実行する(ステップ808)。なお、先行送信処理の通信部分については、図11にて後述する。先行送信処理の通信部分の処理が終了すると、ステップ803の処理に戻る。
CPU1401は、該当するレコードLが存在しない場合には(ステップ806の結果が「No」)、ビジネスプロセス管理部201の処理によって、現在の処理ステップの位置が変化するまで待機し(ステップ807)、現在の処理ステップの位置が変化したらステップ803の処理に戻る。
先行送信処理のサービス呼び出し部分の処理では、現在実行中のビジネスプロセスから呼び出しされたサービス(サービスS以外のサービス)の処理時間又は通信時間が長いなどの理由により、現在実行中のビジネスプロセスの処理ステップの変化が遅く、ステップ807の処理において長時間待機しなければならない場合がある。このとき、長時間データの送信がないためにタイムアウトが発生し、ステップ803の処理で開いたサービスSへの通信接続が切断されてしまう可能性がある。このような場合には、タイムアウトが発生した場合に再度先行送信を開始する、又は、タイムアウトが発生しないようにダミーデータを定期的に送信することなどによって対処することが可能である。
図11は、本発明の第1の実施の形態の先行送信処理の通信部分の手順を示すフローチャートである。
本処理は、図10の先行送信処理のサービス呼び出し部分のステップ808の処理で実行される処理である。
CPU1401は、まず、サービスSに先行送信の対象とするサービス、先行送信部分PをレコードLの先行送信部分に設定する(ステップ901)。
CPU1401は、先行送信の状態管理表214のレコードLの実行状態425を「先行送信中」に変更する(ステップ902)。また、先行送信の状態管理表214に、レコードLと同じサービス呼び出し421と先行送信部分422を含むレコードが存在する場合には、該当するレコードのすべての実行状態425を「先行送信せず」に変更する。実行状態425を「先行送信せず」に変更する処理は、例えば、ある先行送信部分に対応する先行送信可能処理ステップが分岐の中にある場合など、先行送信可能処理ステップが複数存在する場合に対処するための処理である。
CPU1401は、ビジネスプロセス実行状態の管理情報212からbpで使用される変数を取得し、ビジネスプロセスの変数値管理表215を作成する(ステップ903)。変数441は、bpに設定されたビジネスプロセスで使用されているすべての変数となり、値442は、変数441に対応する値が設定される。
CPU1401は、変数SSに現在実行中のBPの処理ステップを設定する(ステップ904)。
CPU1401は、SSに設定されている処理ステップの種類に基づいて、以下の(a)または(b)の処理に分岐させる(ステップ905)。
CPU1401は、SSに設定されている処理ステップが代入(<assign>)の場合には(分岐先が(a)の場合)、処理ステップSSの記述に従って、変数管理表215の変数441と値442を変更する(ステップ906)。ここで、処理ステップSSの代入(<assign>)の代入元(<from>)に指定されている変数に対応する値442が「(未定義)」だった場合、代入先(<to>)に指定されている変数に対応する値442には「(未定義)」を設定する。
CPU1401は、SSに設定されている処理ステップが(a)の条件に該当しない場合には(分岐先が(b)の場合)、処理ステップ907に進む(ステップ905)。
CPU1401は、処理ステップSSの次に実行する処理ステップをSSに設定する(ステップ907)。このとき、処理ステップSSが分岐(<switch>)または繰り返し(<while>)の場合には、変数管理表215の変数441と値442を参照して分岐条件または繰り返し条件を判定し、次に実行する処理ステップを決定する。
CPU1401は、サービスSにMIMEヘッダを送信していない場合には、MIMEヘッダを作成し、サービスSに送信する(ステップ909)。
CPU1401は、ビジネスプロセスの変数値管理表215の変数441と値442に基づいて、サービスSへの送信メッセージを作成し、作成された送信メッセージから先行送信可能な部分Pのみを抽出する。そして、抽出された先行送信可能な部分Pを含むMIMEパートを作成する(ステップ910)。
CPU1401は、ステップ910の処理で作成されたMIMEパートをサービスSに送信する。このとき、送信が終了しても、通信の接続は閉じずに維持しておく(ステップ911)。
最後に、CPU1401は、先行送信の状態管理表214のレコードLの実行状態を「先行送信済み」に変更する(ステップ912)。
以上が、本発明の第1の実施の形態の先行送信を実現するための処理である。ここで、さらに具体的に説明するために、ネットオークション出品のためのビジネスプロセスを本発明の第1の実施の形態に適用した例について説明する。このビジネスプロセスは、オークションの出品者に対してネットオークションサイトの運営者が提供するものであり、オークションの出品者はこのビジネスプロセスを利用して、オークションに出品する商品の名前、画像、及び商品説明といった商品情報をネットオークションサイトに公開する。ネットオークションサイトの運営者は、ネットークションサイトに商品を出品に対して、オークション出品者からオークション出品料金を受領する。
図12は、本発明の第1の実施の形態をネットオークション出品業務に適用したビジネスプロセスを示す図である。
開始1701は、ビジネスプロセスの開始を示す。受付1702は、クライアントからのメッセージを受信する処理ステップである。受付1702で受信されるメッセージには、商品画像ファイル1710が含まれる。
課金サービス呼び出し1703は、課金サービスを呼び出す処理ステップである。課金サービスは、オークション出品者に対してオークション出品料金をクレジットカード決済などによって課金する処理を実行する。
商品情報公開サービス呼び出し1704は、商品情報公開サービスを呼び出す処理ステップである。商品情報公開サービスは、商品の名前及び画像といった商品情報をネットオークションサイトに公開する処理を実行する。商品情報公開サービス呼び出し1704に送信されるメッセージには、商品画像ファイル1710が含まれる。
出品履歴更新サービス呼び出し1705は、出品履歴更新サービスを呼び出す処理ステップである。出品履歴更新サービスは、ネットオークションサイトの運営者が管理しているオークションの出品履歴を更新する処理を実行する処理ステップである。
返信1706は、クライアントに返信メッセージを送信する処理ステップである。終了1707は、ビジネスプロセスの終了を示す。
ネットークション出品のためのビジネスプロセスを本発明の第1の実施の形態に適用した場合のシステム構成は、図1と同様となる。ビジネスプロセス定義211には、ネットークション出品業務のためのビジネスプロセスが含まれ、サービス301が課金サービス、サービス311が商品情報公開サービス、サービス321が出品履歴更新サービスに相当するシステム構成とする。
図13は、本発明の第1の実施の形態をネットオークション出品業務に適用した場合の処理の流れを示す図である。
図13では、課金サービス1051、ビジネスプロセス管理部201、先行送信部203、商品情報公開サービス1052、出品履歴更新サービス1053の間でのメッセージのやりとりを矢印で示している。さらに、メッセージをやりとりするタイミングを縦軸の位置で示している。なお、破線の矢印はメッセージのやりとりではなく、処理を開始するタイミングの順序関係を示している。
ビジネスプロセス管理部201は、課金サービス1051に対してメッセージ送信1001を実行する。そして、商品出品料金の課金処理1002が完了するまで待機し、メッセージ返信1003を受信する。
ネットオークション出品業務のビジネスプロセスでは、商品情報公開サービス1052への送信メッセージに含まれる商品画像ファイル1710に対応するメッセージ部分が先行送信部分となる。そこで、先行送信部203は、ビジネスプロセス管理部201の処理と並行して、商品情報公開サービス1052へ先行送信部分の送信1010を実行し、商品画像ファイル1710を含むメッセージ部分の先行送信を実行する。そして、先行送信部203は、ビジネスプロセス管理部201がメッセージ返信1003を受信した後に、残りの部分の送信1011を実行する。
ここで、先行送信部203が商品情報公開サービス1052に送信する送信メッセージ1020は、MIMEヘッダ1031と、MIMEパート1つ目1032と、MIMEパート2つ目1034の、3つのメッセージ部分によって構成される。MIMEパート1つ目1032には商品画像ファイル1710が含まれ、MIMEパート2つ目1034にはSOAPメッセージ1035が含まれる。
商品情報公開サービス1052では、先行送信部分の送信1010と残りの部分の送信1011で受信した送信メッセージ1020から、元のメッセージを復元する。このようなメッセージの復元方法は、SwA、MTOM、又はMIMEといった従来技術によって実現されている。すなわち、商品情報公開サービス1052及びサービス実行装置310は、従来技術によって実装されたものである。
ビジネスプロセス管理システムは、システムが既存のサービスを組み合わせることによって、ビジネスプロセスを迅速に構築可能であることが利点の1つであるが、本発明は、このような利点を損なわずに従来技術によって実装されたサービスを利用可能である。
その後、商品情報公開サービス1052は、商品情報をネットオークションサイトに公開する処理1012を実行し、メッセージ返信1013を実行する。そして、ビジネスプロセス管理部201は、出品履歴更新サービス1053へメッセージ送信1021を実行する。出品履歴更新サービス1053が出品履歴の更新処理1022を実行した後、ビジネスプロセス管理部201にメッセージ返信1023を実行する。
ここで、本発明の第1の実施の形態と従来技術を対比するために、従来技術によるビジネスプロセス管理システムにおける処理の流れについて説明する。
図14は、本発明の第1の実施の形態のネットオークション出品業務において、従来技術を適用した場合の処理の流れの一例を示す図である。
図13と比較すると、先行送信部分の送信1010が存在せず、メッセージ送信1015において、商品画像ファイル1710を含む送信メッセージ1030を送信する。また、MIMEパート1つ目1042にSOAPメッセージ1035が含まれ、MIMEパート2つ目に商品画像ファイル1710が含まれる。SOAPメッセージは、メッセージ全体の中で先頭となるメッセージ部分であり、1つ目のMIMEパートに選ばれることが多いため、図14では例として、1つ目のMIMEパートにSOAPメッセージを含めている。なお、図13の送信メッセージ1020と同様に、2つ目のMIMEパートにSOAPメッセージが含まれることもある。ただし、この場合であっても、処理の流れは、図14と同じである。
従来技術では、メッセージ返信1003の後に実行される送信メッセージ1030の送信処理の所要時間に、商品画像ファイル1710を含むメッセージ部分であるMIMEパート2つ目1043の送信処理の所要時間が含まれる。一方、本発明の第1の実施の形態では、図13に示したように、メッセージ送信1001と並行して商品画像ファイル1710を含むメッセージ部分であるMIMEパート1つ目1032の送信処理を実行する。そのため、メッセージ返信1003の後に実行される残りの部分の送信1010の処理の所要時間に、商品画像ファイル1710を含むメッセージ部分であるMIMEパート1つ目1032の送信処理の所要時間が含まれない。したがって、本発明の第1の実施の形態では、商品画像ファイル1710を含むメッセージ部分の送信処理の所要時間の分だけ、ビジネスプロセス全体の所要時間を従来技術よりも短縮することが可能となる。
図15は、本発明の第1の実施の形態の商品情報公開サービス1052に送信するメッセージの一例を示す図である。
商品情報公開サービス1052に送信するメッセージでは、行1から行3がMIMEヘッダ1031に、行4から行9がMIMEパート1つ目1032に、行10から行29がMIMEパート2つ目1034に相当する。
図15の行3では、識別子“<regist001.xml>”が付与されたMIMEパートが、メッセージ全体の中で先頭となるメッセージ部分の開始位置であることを示している。行13では、行10から行29のMIMEパートに識別子“<regist001.xml>”が付与されていることを示している。行23では、“<image>”要素の内容が、識別子“product001.jpeg”が付与されたMIMEパートの内容であることを示している。行7では、行4から行9のMIMEパートに識別子“product001.jpeg”が付与されていることを示している。
本発明の第1の実施の形態によれば、ビジネスプロセス管理部201によるメッセージ送信1001の処理などの実行と並行して、先行送信部203によって先行送信部分の送信1010を実行する。そのため、先行送信部分の送信1010で先に送信されたメッセージ部分の通信所要時間の分だけ、ビジネスプロセス全体の所要時間を短縮することが可能となる。
(第2の実施の形態)
本発明の第1の実施の形態では、先行送信部分発見部202によって先行送信可能な部分を抽出していたが、本発明の第2の実施の形態では、先行送信可能な部分をあらかじめ利用者等によって抽出し、先行送信部分の管理表213を作成しておく。
図16は、本発明の第2の実施の形態のビジネスプロセス管理システムのシステム構成図である。
本発明の第2の実施の形態の構成は、本発明の第1の実施の形態のシステム構成から先行送信部分発見部202を取り除いた構成になっている。
本発明の第2の実施の形態では、ビジネスプロセス管理システムの管理者が、先行送信部分の管理表213を作成する。これにより、先行送信部で通信のタイムアウトが発生しにくくなるように先行送信可能処理ステップ423を調整したり、通信効率を良くするために、先行送信を実行するサービス呼び出し421を限定したりするなど、管理者が細かい調整を行うことができる。
(第3の実施の形態)
本発明の第1の実施の形態では、先行送信可能な部分が存在していれば、常に先行送信を実行するようにしていたが、本発明の第3の実施の形態では、所定の条件を満たす場合のみ、先行送信部分の先行送信を実行する。
本発明の第3の実施の形態のシステム構成は、図1に示した本発明の第1の実施の形態のシステム構成と同じ構成であり、先行送信部203の処理の手順が一部異なる。具体的には、先行送信処理の通信部分が相違し、所定の条件を満たす場合のみ先行送信処理を実行する。
図17は、本発明の第3の実施の形態のビジネスプロセス管理システムのシステム構成図である。
本発明の第3の実施の形態の構成は、本発明の第1の実施の形態のシステム構成に、先行送信を実行するか否かを判定する先行送信判定部204がビジネスプロセス管理装置200に追加された構成になっている。
先行送信判定部204は、先行送信を実行するか否かを判定する。例えば、先行送信部分のデータ量を算出し、所定の閾値よりも大きいか否かによって、先行送信を実行するか否かを判定する。また、ビジネスプロセス管理装置200のシステム負荷、及び、ビジネスプロセス管理装置200とサービス実行装置との間のネットワーク負荷を測定する機能を備えることによって、測定結果と所定の閾値とを比較し、先行送信を実行するか否かを判定するようにしてもよい。
図18は、本発明の第3の実施の形態の先行送信処理の通信部分の手順を示すフローチャートである。
本発明の第3の実施の形態では、図11に示した本発明の第1の実施の形態における先行送信処理の通信部分の手順のステップ908とステップ909の間に、ステップ1201及びステップ1202が挿入されている。
CPU1401は、ステップ908において処理ステップSSがサービスSに等しい場合には(ステップ908の結果が「Yes」)、ビジネスプロセスの変数値管理表215の変数441及び値442に基づいて、先行送信部分Pに含まれるデータを作成する(ステップ1201)。
CPU1401は、ステップ1201の処理で作成されたデータのサイズが所定の閾値(一定サイズ、例えば、1MByte)以上であるか否かを判定する(ステップ1202)。ステップ1201の処理で作成されたデータのサイズが一定サイズ以上であれば(ステップ1202の結果が「Yes」)、本発明の第1の実施の形態と同様に、ステップ909以降の処理を実行する。
一方、CPU1401は、ステップ1201の処理で作成されたデータのサイズが一定サイズよりも小さい場合には(ステップ1202の結果が「No」)、ステップ909以降の処理を実行せずに、先行送信処理の通信部分を終了する。
なお、一定サイズの具体的な数値は、ビジネスプロセス管理システムの開発者又は管理者が設定する。また、統計的な方法で決定してもよい。さらに、先行送信可能処理ステップ404からサービス呼び出し402までの平均所要時間に比例して一定サイズの値を変化させてもよい。
また、ステップ1202の処理において判定される先行送信の実行条件は、データのサイズに関する条件には限定されない。前述したように、ネットワーク負荷を考慮し、ネットワーク220を流れるデータの量が所定の閾値よりも少ない場合に先行送信を実行してもよいし、ビジネスプロセス管理装置の負荷を考慮して、同時に実行されているビジネスプロセスの数が少ない場合にのみ先行送信を実行してもよい。さらに、過去の通信所要時間の統計データを参照し、平均通信所要時間が大きいサービスに対してのみ先行送信を実行してもよい。
本発明の第3の実施の形態によれば、先行送信を実行する条件を設定することによって、効率よく先行送信を実行することができる。例えば、先行送信の対象データのサイズが大きく、通信処理に時間を要する場合のみ先行送信を実行する。さらに、小容量のデータに対して頻繁に先行送信を実行することによって、ビジネスプロセス管理装置の負荷を増大させたり、ネットワークのトラフィック量を増大させたりすることによって、ビジネスプロセス全体の所要時間が増大するなどの性能悪化を防ぐことができる。
(第4の実施の形態)
本発明の第4の実施の形態では、ビジネスプロセス管理システムに共有データベース(共有DB)を備える。共有データベースに先行送信されるデータを格納することなどによって、ビジネスプロセス全体の所要時間を短縮させる。
図19は、本発明の第4の実施の形態のビジネスプロセス管理システムのシステム構成図である。
ビジネスプロセス管理システムには、前述したように、共有DB1301が含まれる。共有DB1301は、ネットワーク220に接続し、ビジネスプロセス管理装置200及びサービス実行装置300に接続される。
ビジネスプロセス管理装置200及びサービス実行装置300は、共有DB1301にデータを格納したり、共有DB1301に格納されたデータを参照したりすることができる。
図20は、本発明の第4の実施の形態の共有DB1301の構成を示す図である。
共有DB1301は、CPU1601、主記憶装置1602、二次記憶装置1604、及び通信インターフェイス1605を含む。CPU1601、主記憶装置1602、二次記憶装置1604、及び通信インターフェイス1605は、バス1606によって接続される。
主記憶装置1602は、CPU1601によって実行される共有DB制御プログラム1603を記憶する。共有DB制御プログラム1603は、ビジネスプロセス管理装置200又はサービス実行装置300などからの要求に基づいて、二次記憶装置1604にデータを格納したり、二次記憶装置1604に格納されたデータを参照したりするための制御を実行する。通信インターフェイス1605は、ネットワーク220に接続している。
本発明の第4の実施の形態では、ビジネスプロセス管理装置200からサービス301などに送信するデータのすべてを、送信メッセージとしてサービスへ送信するのではなく、一部のデータを共有DB1301に格納する。例えば、ビジネスプロセス管理装置200は、共有DB1301にサービス301に送信するデータを格納し、送信メッセージをサービス301に送信する。サービス301は、送信メッセージを受信すると、共有DB1301からデータを取得し、所定の処理を実行する。
本発明の第4の実施の形態のように、共有DBを含むシステム構成の場合でも、本発明の第1の実施の形態の先行送信と同様に、ビジネスプロセス定義で指定されたサービスの呼び出し順序に先行してデータを送信することができる。本発明の第4の実施の形態における先行送信処理は、本発明の第1の実施の形態の先行送信部203の一部処理を変更することによって実現可能である。具体的には、先行送信部203の先行送信処理の通信部分のステップ909の処理において、「MIMEメッセージ部分」が共有DB1301に格納するデータに相当する場合、「サービスSに送信する」のではなく、「共有DB1301に格納する」処理を実行すればよい。
本発明の第4の実施の形態によれば、ビジネスプロセス管理部201がサービスの処理を待機している間に、共有DB1301にデータを格納する処理を実行することができるため、ビジネスプロセス全体の所要時間を減らすことができる。
本発明の第1の実施の形態のビジネスプロセス管理システムのシステム構成図である。 本発明の第1の実施の形態のビジネスプロセス管理システムの構成の詳細を示す図である。 本発明の第1の実施の形態のビジネスプロセスの一例を示す図である。 本発明の第1の実施の形態のビジネスプロセスの一例を示すビジネスプロセス定義の記述例を示す図である。 本発明の第1の実施の形態のビジネスプロセスの一例において、サービスを呼び出すインターフェイスをWSDLによって記述した例を示す図である。 本発明の第1の実施の形態の先行送信部分の管理表の一例を示す図である。 本発明の第1の実施の形態の先行送信の状態管理表の一例を示す図である。 本発明の第1の実施の形態のビジネスプロセスの変数値管理表の一例を示す図である。 本発明の第1の実施の形態のビジネスプロセス定義の一例を示す図である。 本発明の第1の実施の形態のビジネスプロセス実行状態の管理情報の一例を示す図である。 本発明の第1の実施の形態のサービスインターフェイス定義の一例を示す図である。 本発明の第1の実施の形態の先行送信部分発見部の処理の手順を示すフローチャートである。 本発明の第1の実施の形態の先行送信処理の手順を示すフローチャートである。 本発明の第1の実施の形態の先行送信処理のサービス呼び出し部分の手順を示すフローチャートである。 本発明の第1の実施の形態の先行送信処理の通信部分の手順を示すフローチャートである。 本発明の第1の実施の形態をネットオークション出品業務に適用したビジネスプロセスを示す図である。 本発明の第1の実施の形態をネットオークション出品業務に適用した場合の処理の流れを示す図である。 本発明の第1の実施の形態のネットオークション出品業務において、従来技術を適用した場合の処理の流れの一例を示す図である。 本発明の第1の実施の形態の商品情報公開サービスに送信するメッセージの一例を示す図である。 本発明の第2の実施の形態のビジネスプロセス管理システムのシステム構成図である。 本発明の第3の実施の形態のビジネスプロセス管理システムのシステム構成図である。 本発明の第3の実施の形態の先行送信処理の通信部分の手順を示すフローチャートである。 本発明の第4の実施の形態のビジネスプロセス管理システムのシステム構成図である。 本発明の第4の実施の形態の共有DBの構成を示す図である。
符号の説明
100 クライアント実行装置
200 ビジネスプロセス管理装置
201 ビジネスプロセス管理部
202 先行送信部分発見部
203 先行送信部
203 先行送信判定部
210 記憶装置
211 ビジネスプロセス定義
212 ビジネスプロセス実行状態の管理情報
213 先行送信部分の管理表
214 先行送信の状態管理表
215 ビジネスプロセスの変数値管理表
216 サービスインターフェイス定義
220 ネットワーク
300、310、320 サービス実行装置
301、311、321 サービス
1301 共有DB
1401、1411、1421、1601 CPU
1402、1412、1422、1602 主記憶装置
1404、1414、1424、1604 二次記憶装置
1405、1415、1425、1605 通信インターフェイス
1406、1416、1426、1606 バス
1403 ビジネスプロセス管理プログラム
1603 共有DB制御プログラム

Claims (19)

  1. サービス実行装置と、前記サービス実行装置に接続されるビジネスプロセス管理装置とを含むビジネスプロセス管理システムにおいて、前記ビジネスプロセス管理装置から前記サービス実行装置にメッセージを送信する方法であって、
    前記サービス実行装置は、前記ビジネスプロセス管理装置から送信されたメッセージに基づいて、所定のサービスを提供し、
    前記ビジネスプロセス管理装置は、
    プロセッサと、前記プロセッサによってアクセス可能な記憶部と、前記サービス実行装置に接続するインターフェイスと、を備え、
    前記所定のサービスを組み合わせることによって定義されるビジネスプロセスを実行することによって業務を処理し、
    前記ビジネスプロセスには、前記サービス実行装置に送信されるメッセージの定義、及び、前記所定のサービスを呼び出す処理の実行順序が含まれ、
    前記ビジネスプロセス管理システムは、前記所定のサービスを呼び出す前に、分割して送信可能なメッセージの一部又は全部である先行送信部分と、前記先行送信部分の内容が決定可能となる処理を特定する情報と、を含む先行送信部分管理情報を含み、
    前記メッセージ送信方法は、
    前記先行送信部分管理情報に基づいて、前記先行送信部分の内容が決定可能となる処理が実行された後、前記先行送信部分を含むメッセージが送信されるサービスを呼び出す前に、当該サービスを提供するサービス実行装置に前記先行送信部分を送信することを特徴とするメッセージ送信方法。
  2. 前記ビジネスプロセスには、メッセージを格納する変数の宣言と、前記サービス実行装置に送信するメッセージを格納する変数の指定と、前記サービス実行装置から受信するメッセージを格納する変数の指定と、が含まれ、
    前記ビジネスプロセス管理システムは、前記メッセージを格納する変数の値を含む変数管理情報を含み、
    前記先行送信部分の内容が決定可能となる処理を特定する情報は、前記サービス実行装置に送信するメッセージを格納する変数の値が決定される処理を特定する情報であり、
    前記メッセージ送信方法は、
    前記サービス実行装置に送信するメッセージを格納する変数の値が決定された後、前記ビジネスプロセスと前記先行送信部分管理情報に基づいて、前記変数管理情報を更新し、
    前記更新された変数管理情報と前記先行送信部分管理情報に基づいて、当該サービスを提供するサービス実行装置に前記先行送信部分を送信することを特徴とする請求項1に記載のメッセージ送信方法。
  3. 前記メッセージ送信方法は、さらに、
    前記サービス実行装置に送信されるメッセージの定義及び前記所定のサービスを呼び出す処理の実行順序に基づいて、前記先行送信部分を特定し、
    前記先行送信部分の内容が決定可能となる処理を特定し、
    前記特定された先行送信部分と、前記先行送信部分の内容が決定可能となる処理を特定する情報と、を前記先行送信部分管理情報に記録することを特徴とする請求項1に記載のメッセージ送信方法。
  4. 前記ビジネスプロセス管理システムは、前記所定のサービスに送信するメッセージの一部又は全部を格納する共有データベースを備え、
    前記メッセージ送信方法は、
    前記先行送信部分を前記共有データベースに送信し、
    前記共有データベースが、前記所定のサービスを提供するサービス実行装置に前記先行送信部分を送信することを特徴とする請求項1に記載のメッセージ送信方法。
  5. 前記メッセージ送信方法は、前記先行送信部分のデータ量が所定の閾値よりも大きい場合に、前記先行送信部分を前記サービス実行装置に先行して送信することを特徴とする請求項1に記載のメッセージ送信方法。
  6. 前記メッセージ送信方法は、前記サービス実行装置と前記ビジネスプロセス管理装置とを接続する経路のトラフィックが所定の閾値よりも小さい場合に、前記先行送信部分を前記サービス実行装置に先行して送信することを特徴とする請求項1に記載のメッセージ送信方法。
  7. 前記メッセージ送信方法は、前記ビジネスプロセス管理装置で実行されているビジネスプロセスの数が所定の閾値よりも小さい場合に、前記先行送信部分を前記サービス実行装置に先行して送信することを特徴とする請求項1に記載のメッセージ送信方法。
  8. 所定のサービスを提供するサービス実行装置に接続されるビジネスプロセス管理装置であって、
    前記ビジネスプロセス管理装置は、
    プロセッサと、前記プロセッサによってアクセス可能な記憶部と、前記サービス実行装置に接続するインターフェイスと、を備え、
    前記所定のサービスを組み合わせることによって定義されるビジネスプロセスを実行することによって業務を処理し、
    前記記憶部は、前記所定のサービスを呼び出す前に、分割して送信可能なメッセージの一部又は全部である先行送信部分と、前記先行送信部分の内容が決定可能となる処理と、を含む先行送信部分管理情報を記憶し、
    前記ビジネスプロセスには、前記サービス実行装置に送信されるメッセージの定義、及び、前記所定のサービスを呼び出す処理の実行順序が含まれ、
    前記プロセッサは、
    前記先行送信部分管理情報に基づいて、前記先行送信部分の内容が決定可能となる処理が実行された後、前記先行送信部分を含むメッセージが送信されるサービスを呼び出す前に、当該サービスを提供するサービス実行装置に前記先行送信部分を送信することを特徴とするビジネスプロセス管理装置。
  9. 前記ビジネスプロセスには、メッセージを格納する変数の宣言と、前記サービス実行装置に送信するメッセージを格納する変数の指定と、前記サービス実行装置から受信するメッセージを格納する変数の指定と、が含まれ、
    前記記憶部は、前記メッセージを格納する変数の値を含む変数管理情報を含み、
    前記先行送信部分管理情報に含まれる、前記先行送信部分の内容が決定可能となる処理を特定する情報は、前記サービス実行装置に送信するメッセージを格納する変数の値が決定される処理を特定する情報であり、
    前記プロセッサは、
    前記サービス実行装置に送信するメッセージを格納する変数の値が決定された後、前記ビジネスプロセスと前記先行送信部分管理情報に基づいて、前記変数管理情報を更新し、
    前記更新された変数管理情報と前記先行送信部分管理情報に基づいて、当該サービスを提供するサービス実行装置に前記先行送信部分を送信することを特徴とする請求項8に記載のビジネスプロセス管理装置。
  10. 前記プロセッサは、
    前記サービス実行装置に送信されるメッセージの定義及び前記所定のサービスを呼び出す処理の実行順序に基づいて、前記先行送信部分を特定し、
    前記先行送信部分の内容が決定可能となる処理を特定し、
    前記特定された先行送信部分と、前記先行送信部分の内容が決定可能となる処理を特定する情報と、を前記先行送信部分管理情報に記録することを特徴とする請求項8に記載のビジネスプロセス管理装置。
  11. 前記プロセッサは、前記先行送信部分のデータ量が所定の閾値よりも大きい場合に、前記先行送信部分を前記サービス実行装置に先行して送信することを特徴とする請求項8に記載のビジネスプロセス管理装置。
  12. 前記プロセッサは、前記サービス実行装置と前記ビジネスプロセス管理装置とを接続する経路のトラフィックが所定の閾値よりも小さい場合に、前記先行送信部分を前記サービス実行装置に先行して送信することを特徴とする請求項8に記載のビジネスプロセス管理装置。
  13. 前記プロセッサは、前記ビジネスプロセス管理装置で実行されているビジネスプロセスの数が所定の閾値よりも小さい場合に、前記先行送信部分を前記サービス実行装置に先行して送信することを特徴とする請求項8に記載のビジネスプロセス管理装置。
  14. 所定のサービスを提供するサービス実行装置に接続され、前記所定のサービスを組み合わせることによって定義されるビジネスプロセスを実行することによって業務を処理するビジネスプロセス管理装置で実行されるメッセージ送信プログラムであって、
    前記ビジネスプロセス管理装置は、前記所定のサービスを呼び出す前に、分割して送信可能なメッセージの一部又は全部である先行送信部分と、前記先行送信部分の内容が決定可能となる処理を特定する情報と、を含む先行送信部分管理情報を含み、
    前記ビジネスプロセスには、前記サービス実行装置に送信されるメッセージの定義、及び、前記所定のサービスを呼び出す処理の実行順序が含まれ、
    前記メッセージ送信プログラムは、
    前記先行送信部分管理情報に基づいて、前記先行送信部分の内容が決定可能となる処理が実行された後、前記先行送信部分を含むメッセージが送信されるサービスを呼び出す前に、当該サービスを提供するサービス実行装置に前記先行送信部分を送信する手順を前記ビジネスプロセス管理装置に実行させることを特徴とするメッセージ送信プログラム。
  15. 前記ビジネスプロセスには、メッセージを格納する変数の宣言と、前記サービス実行装置に送信するメッセージを格納する変数の指定と、前記サービス実行装置から受信するメッセージを格納する変数の指定と、が含まれ、
    前記ビジネスプロセス管理装置は、前記メッセージを格納する変数の値を含む変数管理情報を含み、
    前記先行送信部分管理情報に含まれる、前記先行送信部分の内容が決定可能となる処理を特定する情報は、前記サービス実行装置に送信するメッセージを格納する変数の値が決定される処理を特定する情報であり、
    前記メッセージ送信プログラムは、
    前記サービス実行装置に送信するメッセージを格納する変数の値が決定された後、前記ビジネスプロセスと前記先行送信部分管理情報に基づいて、前記変数管理情報を更新する手順と、
    前記更新された変数管理情報と前記先行送信部分管理情報に基づいて、当該サービスを提供するサービス実行装置に前記先行送信部分を送信する手順と、を前記ビジネスプロセス管理装置に実行させることを特徴とする請求項14に記載のメッセージ送信プログラム。
  16. 前記メッセージ送信プログラムは、
    前記サービス実行装置に送信されるメッセージの定義及び前記所定のサービスを呼び出す処理の実行順序に基づいて、前記先行送信部分を特定する手順と、
    前記先行送信部分の内容が決定可能となる処理を特定する手順と、
    前記特定された先行送信部分と、前記特定された先行送信部分の内容が決定可能な処理を特定する情報と、を前記先行送信部分管理情報に記録する手順と、をさらに前記ビジネスプロセス管理装置に実行させることを特徴とする請求項14に記載のメッセージ送信プログラム。
  17. 前記メッセージ送信プログラムは、前記先行送信部分のデータ量が所定の閾値よりも大きい場合に、前記先行送信部分を前記サービス実行装置に先行して送信する手順を、前記ビジネスプロセス管理装置に実行させることを特徴とする請求項14に記載のメッセージ送信プログラム。
  18. 前記メッセージ送信プログラムは、前記サービス実行装置と前記ビジネスプロセス管理装置とを接続する経路のトラフィックが所定の閾値よりも小さい場合に、前記先行送信部分を前記サービス実行装置に先行して送信する手順を前記ビジネスプロセス管理装置に実行させることを特徴とする請求項14に記載のメッセージ送信プログラム。
  19. 前記メッセージ送信プログラムは、前記ビジネスプロセス管理装置で実行されているビジネスプロセスの数が所定の閾値よりも小さい場合に、前記先行送信部分を前記サービス実行装置に先行して送信する手順を前記ビジネスプロセス管理装置に実行させることを特徴とする請求項14に記載のメッセージ送信プログラム。
JP2007337276A 2007-12-27 2007-12-27 メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム Expired - Fee Related JP4516594B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007337276A JP4516594B2 (ja) 2007-12-27 2007-12-27 メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム
US12/336,616 US20090172122A1 (en) 2007-12-27 2008-12-17 Message Transmission Method, Message Transmission Device, and Storage Medium Recorded with Message Transmission Program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007337276A JP4516594B2 (ja) 2007-12-27 2007-12-27 メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム

Publications (3)

Publication Number Publication Date
JP2009157786A true JP2009157786A (ja) 2009-07-16
JP2009157786A5 JP2009157786A5 (ja) 2009-09-24
JP4516594B2 JP4516594B2 (ja) 2010-08-04

Family

ID=40799908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007337276A Expired - Fee Related JP4516594B2 (ja) 2007-12-27 2007-12-27 メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム

Country Status (2)

Country Link
US (1) US20090172122A1 (ja)
JP (1) JP4516594B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065458A (ja) * 2009-09-17 2011-03-31 Toshiba Tec Corp ワークフロー表示支援装置及びワークフロー表示プログラム
JP2015520528A (ja) * 2012-03-12 2015-07-16 ゾモジョ・ピーティーワイ・リミテッド 電子メッセージを送信する方法及びシステム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4287456B2 (ja) * 2006-10-26 2009-07-01 株式会社東芝 サービス不能攻撃を防止するサーバ装置、方法およびプログラム
US9276998B2 (en) * 2011-10-06 2016-03-01 International Business Machines Corporation Transfer of files with arrays of strings in soap messages
CN110958681B (zh) * 2018-09-27 2023-09-05 中兴通讯股份有限公司 业务传输方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991234A (ja) * 1995-09-28 1997-04-04 Mitsubishi Electric Corp ワークフローシステム
JPH1063751A (ja) * 1996-08-14 1998-03-06 Fuji Xerox Co Ltd ワークフローシステムおよびその作業分割方法
JP2001101310A (ja) * 1999-07-29 2001-04-13 Hitachi Ltd ワークフローシステムの業務先行処理方法
JP2003108731A (ja) * 2001-09-28 2003-04-11 Osaka Gas Co Ltd 電子決裁システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080158337A1 (en) * 2001-12-15 2008-07-03 John William Richardson Videoconference Bandwidth Selection Mechanism
US7730196B2 (en) * 2004-12-03 2010-06-01 Microsoft Corporation Efficient transfer of messages using reliable messaging protocols for web services
US7743130B2 (en) * 2006-07-25 2010-06-22 International Business Machines Corporation Exposing logic flows of web services and permitting logic flow modifications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991234A (ja) * 1995-09-28 1997-04-04 Mitsubishi Electric Corp ワークフローシステム
JPH1063751A (ja) * 1996-08-14 1998-03-06 Fuji Xerox Co Ltd ワークフローシステムおよびその作業分割方法
JP2001101310A (ja) * 1999-07-29 2001-04-13 Hitachi Ltd ワークフローシステムの業務先行処理方法
JP2003108731A (ja) * 2001-09-28 2003-04-11 Osaka Gas Co Ltd 電子決裁システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065458A (ja) * 2009-09-17 2011-03-31 Toshiba Tec Corp ワークフロー表示支援装置及びワークフロー表示プログラム
JP2015520528A (ja) * 2012-03-12 2015-07-16 ゾモジョ・ピーティーワイ・リミテッド 電子メッセージを送信する方法及びシステム

Also Published As

Publication number Publication date
US20090172122A1 (en) 2009-07-02
JP4516594B2 (ja) 2010-08-04

Similar Documents

Publication Publication Date Title
US7536697B2 (en) Integrating enterprise support systems
CN107729139B (zh) 一种并发获取资源的方法和装置
US7673029B2 (en) Grid automation bus to integrate management frameworks for dynamic grid management
US7886295B2 (en) Connection manager, method, system and program product for centrally managing computer applications
US20030055668A1 (en) Workflow engine for automating business processes in scalable multiprocessor computer platforms
AU2002322282A1 (en) Integrating enterprise support systems
US10303529B2 (en) Protocol for communication of data structures
CA2843284C (en) Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application
JP4516594B2 (ja) メッセージ送信制御方法、メッセージ送信制御装置、及びメッセージ送信制御プログラム
CN112788074A (zh) 数据发送方法、处理方法、接收方法及其设备、存储介质
CN111127181A (zh) 一种凭证记账方法和装置
JP4410608B2 (ja) Webサービス提供方法
US8271602B2 (en) System and method for conversation based on web service addressing
CN109729040A (zh) 协议的选择的方法、设备以及计算机可读介质
JP2005521945A (ja) 共通作業キュー環境における最適格サーバ
CN110417876A (zh) 会话方法、分布式系统中的节点服务器及主控设备
CN110519388A (zh) 区块链请求的处理方法、装置、电子设备及可读存储介质
US11546405B2 (en) Methods for exposing mainframe data as a web service and devices thereof
US8930523B2 (en) Stateful business application processing in an otherwise stateless service-oriented architecture
WO2024034057A1 (ja) ネットワーク管理装置、ネットワーク管理方法及びプログラム
US20080256178A1 (en) Method and Apparatus for Providing Software by Functional Units in a Software Streaming System
JP2006120080A (ja) Webサービス要求中継システム、Webサービス要求中継方法、中継サーバ、及びそのプログラム
EP2715555B1 (en) Managing and simplifying distributed applications
JP4645657B2 (ja) 電文処理システム、電文処理方法、そのプログラム及びその記録媒体
CN117149588A (zh) 任务处理方法及相关设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090812

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100427

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100514

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees