JP2006031173A - Compilation device and method and its program - Google Patents

Compilation device and method and its program Download PDF

Info

Publication number
JP2006031173A
JP2006031173A JP2004206323A JP2004206323A JP2006031173A JP 2006031173 A JP2006031173 A JP 2006031173A JP 2004206323 A JP2004206323 A JP 2004206323A JP 2004206323 A JP2004206323 A JP 2004206323A JP 2006031173 A JP2006031173 A JP 2006031173A
Authority
JP
Japan
Prior art keywords
java
intermediate code
registered trademark
event
compiling
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
JP2004206323A
Other languages
Japanese (ja)
Inventor
Itsuten Okamoto
一天 岡本
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2004206323A priority Critical patent/JP2006031173A/en
Publication of JP2006031173A publication Critical patent/JP2006031173A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To generate an executable program under the consideration of the balance of data storage and the processing performance of a business process from business process definition. <P>SOLUTION: A business process definition analyzing means 21 analyzes business process definition inputted from an input device 1, and an intermediate code generating means 22 generates an intermediate code. A Java(R) code generating means 23 generates a Java(R) code corresponding to the EJB of J2EE from an intermediate code generated by the intermediate code generating means 22. A Java(R) code compiling means 24 compiles a Java(R) code generated by the Java(R) code generating means 23, and generates an executable process execution program. In the case of an event classified as a long task, the processing of the generated process execution program is temporarily interrupted between the start processing of the event and the end processing of the event, and the data at the time of execution are stored. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、コンパイル装置,方法およびプログラムに関し、特に、ビジネスプロセス定義を解析して中間コードを生成し実行可能プログラムを生成するコンパイル装置,方法およびプログラムに関する。   The present invention relates to a compiling device, method, and program, and more particularly, to a compiling device, method, and program that analyze a business process definition to generate an intermediate code and generate an executable program.

従来、障害の発生に備えて、プログラムの実行途中で、処理中のデータをデータベースや記憶装置等に保存することが行われている。   Conventionally, in preparation for the occurrence of a failure, data being processed is stored in a database, a storage device, or the like during the execution of a program.

例えば、特許文献1では、状態を保持するためのコードを自動生成し、自動生成された状態管理のためのコードを当該メソッドの実行において処理することが記載されている。すなわち、状態変更管理手段は、オリジナルプログラムに基づいて、各メソッド中で変更される可能性のある状態を静的に解析し、解析結果を状態管理コード生成手段に渡す。状態管理コード生成手段は、あらかじめ作成されているオブジェクトのインタフェース定義情報とそのインタフェースが提供する処理を記述したオリジナルプログラムに基づいて、状態を保持するためのコードを自動生成する。プログラムは、プログラム実行手段によって実行される。状態管理コード生成手段によって自動生成された状態管理のためのコードも、当該メソッドの実行において処理される。   For example, Patent Document 1 describes that a code for holding a state is automatically generated, and the automatically generated code for state management is processed in the execution of the method. That is, the state change management means statically analyzes a state that may be changed in each method based on the original program, and passes the analysis result to the state management code generation means. The state management code generation means automatically generates a code for holding the state based on the original program describing the interface definition information of the object created in advance and the processing provided by the interface. The program is executed by program execution means. The code for state management automatically generated by the state management code generation means is also processed in the execution of the method.

特開平10−320206号公報JP-A-10-320206

しかしながら、上述した背景技術には、以下のような問題点がある。   However, the background art described above has the following problems.

すなわち、特許文献1では、オブジェクトの状態が変化したとき、オブジェクトの状態である属性値を自動的に外部の記憶装置に記録・保持するため、障害時に損失する情報は少なくなるが、処理速度が低下するということである。   That is, in Patent Document 1, when the state of an object changes, attribute values that are the state of the object are automatically recorded and held in an external storage device. It means that it falls.

このように、保存処理を重視すれば処理の実行速度が犠牲となり、処理の実行速度を重視すれば、障害発生時に再実行する処理が増える。障害時に失われる情報を最小限にすることと実行性能の間にはトレードオフの関係があり、その最適なバランス点を見つけ出すことが課題であった。   In this way, if the saving process is emphasized, the execution speed of the process is sacrificed, and if the execution speed of the process is emphasized, the number of processes to be re-executed when a failure occurs increases. There is a trade-off between minimizing information lost in the event of failure and execution performance, and finding the optimal balance point has been a challenge.

本発明の目的は、上記の問題点を解決し、実行制御を記述したビジネスプロセス定義から、データ保存とビジネスプロセスの処理性能のバランスを考慮した実行可能なプログラムを生成するコンパイル装置,方法およびそのプログラムを提供することにある。   SUMMARY OF THE INVENTION An object of the present invention is to provide a compiling apparatus and method for generating an executable program in consideration of the balance between data storage and business process processing performance from a business process definition that solves the above problems and describes execution control. To provide a program.

本願第1の発明のコンパイル装置は、ビジネスプロセス定義を入力して実行可能なプログラムを生成するコンパイル装置であって、前記ビジネスプロセス定義に記述された要素群を解析する手段と、前記要素が短時間で完了する処理(ショートタスクイベント)の場合には連続して実行することを表す中間コードを生成する手段と、前記要素が長い待ち時間が発生し得る処理(ロングタスクイベント)の場合には処理の実行時にデータの保存を行うことを表す中間コードを生成する手段と、前記生成した中間コードをコンパイルして実行可能なプログラムを生成する手段と、を備える。   A compiling device according to a first aspect of the present invention is a compiling device for generating a program executable by inputting a business process definition, and means for analyzing an element group described in the business process definition; In the case of processing that completes in time (short task event), means for generating intermediate code indicating continuous execution, and in the case of processing (long task event) in which the element can cause a long waiting time Means for generating an intermediate code indicating that data is stored when processing is executed, and means for generating an executable program by compiling the generated intermediate code.

本願第2の発明のコンパイル装置は、第1の発明において前記ロングタスクイベントをイベント開始処理とイベント終了処理に分割して実行することを表す中間コードおよび前記イベント開始処理と前記イベント終了処理との間でデータの保存を行うことを表す中間コードを生成する手段を備える。   A compiling device according to a second aspect of the present invention provides an intermediate code representing that the long task event is divided into an event start process and an event end process in the first invention, and the event start process and the event end process. Means for generating an intermediate code indicating that the data is stored between.

本願第3の発明のコンパイル装置は、第1または第2の発明において前記生成した中間コードからJava(登録商標)コードを生成する手段と、前記生成したJava(登録商標)コードをコンパイルして実行可能なプログラムを生成する手段と、を備える。   A compiling device according to a third invention of the present application is a means for generating Java (registered trademark) code from the generated intermediate code in the first or second invention, and compiling and executing the generated Java (registered trademark) code Means for generating a possible program.

本願第4の発明のコンパイル装置は、第1,第2または第3の発明において前記ビジネスプロセス定義は、Business Process Execution Language for Web Services(BPEL4WS)で記述される、ことを特徴とする。   The compiling device according to a fourth invention of the present application is characterized in that, in the first, second or third invention, the business process definition is described in Business Process Execution Language for Web Services (BPEL4WS).

本願第5の発明のコンパイル装置は、第3または第4の発明において前記Java(登録商標)コードは、実行時にオブジェクトの永続化を行うことができるJava(登録商標)の仕組みに対応したJava(登録商標)コードである、ことを特徴とする。   The compiling device according to the fifth invention of the present application is the Java (registered trademark) code corresponding to the Java (registered trademark) mechanism capable of persisting the object at the time of execution in the third or fourth invention. It is a registered trademark) code.

本願第6の発明のコンパイル装置は、第3,第4または第5の発明において前記実行時にオブジェクトの永続化を行うことができるJava(登録商標)の仕組みは、Java(登録商標) 2 Plartform, Enterprise Edition(J2EE)のEnterprise Java(登録商標)Beans(EJB)である、ことを特徴とする。   The compiling device according to the sixth invention of the present application is a Java (registered trademark) mechanism that can perform object persistence at the time of execution in the third, fourth, or fifth invention. The Java (registered trademark) 2 Platform, It is characterized by being Enterprise Java (registered trademark) Beans (EJB) of Enterprise Edition (J2EE).

本願第7の発明のコンパイル方法は、ビジネスプロセス定義を入力して実行可能なプログラムを生成するコンパイル方法であって、前記ビジネスプロセス定義に記述された要素群を解析するステップと、前記要素が短時間で完了する処理(ショートタスクイベント)の場合には連続して実行することを表す中間コードを生成するステップと、前記要素が長い待ち時間が発生し得る処理(ロングタスクイベント)の場合には前記ロングタスクイベントの実行時にデータの保存を行うことを表す中間コードを生成するステップと、前記生成した中間コードをコンパイルして実行可能なプログラムを生成するステップと、を含む、ことを特徴とする。   A compiling method according to a seventh aspect of the present invention is a compiling method for generating an executable program by inputting a business process definition, the step of analyzing an element group described in the business process definition; In the case of processing that completes in time (short task event), a step of generating intermediate code indicating continuous execution, and in the case of processing (long task event) in which the element can generate a long waiting time Generating an intermediate code indicating that data is stored when the long task event is executed; and generating an executable program by compiling the generated intermediate code. .

本願第8の発明のコンパイル方法は、第7の発明において前記ロングタスクイベントをイベント開始処理とイベント終了処理に分割して実行することを表す中間コードおよび前記イベント開始処理と前記イベント終了処理との間でデータの保存を行うことを表す中間コードを生成するステップを含む、ことを特徴とする。   The compiling method according to the eighth invention of the present application is the intermediate code representing that the long task event is divided into an event start process and an event end process in the seventh invention, and the event start process and the event end process. And generating an intermediate code representing data storage between them.

本願第9の発明のコンパイル方法は、第7または第8の発明において前記生成した中間コードからJava(登録商標)コードを生成するステップと、前記生成したJava(登録商標)コードをコンパイルして実行可能なプログラムを生成するステップと、を含む、ことを特徴とする。   The compiling method of the ninth invention of the present application is a step of generating Java (registered trademark) code from the generated intermediate code in the seventh or eighth invention, and compiling and executing the generated Java (registered trademark) code Generating a possible program.

本願第10の発明のコンパイル方法は、第7,第8または第9の発明において前記ビジネスプロセス定義は、Business Process Execution Language for Web Services(BPEL4WS)で記述される、ことを特徴とする。   A compiling method according to a tenth invention of the present application is characterized in that, in the seventh, eighth or ninth invention, the business process definition is described in Business Process Execution Language for Web Services (BPEL4WS).

本願第11の発明のコンパイル方法は、第9または第10の発明において前記Java(登録商標)コードは、実行時にオブジェクトの永続化を行うことができるJava(登録商標)の仕組みに対応したJava(登録商標)コードである、ことを特徴とする。   The compiling method of the eleventh invention of the present application is the Java (registered trademark) code in the ninth or tenth invention, wherein the Java (registered trademark) code corresponds to a Java (registered trademark) mechanism capable of persisting an object at the time of execution. It is a registered trademark) code.

本願第12の発明のコンパイル方法は、第9,第10または第11の発明において前記実行時にオブジェクトの永続化を行うことができるJava(登録商標)の仕組みはJava(登録商標) 2 Plartform, Enterprise Edition(J2EE)のEnterprise Java(登録商標)Beans(EJB)である、ことを特徴とする。   The compiling method of the twelfth invention of the present application is the Java (registered trademark) mechanism that can perform the persistence of the object at the time of execution in the ninth, tenth, or eleventh invention. Java (registered trademark) 2 Platform, Enterprise It is an Enterprise Java (registered trademark) Beans (EJB) of Edition (J2EE).

本願第13の発明のプログラムは、ビジネスプロセス定義を入力して実行可能なプログラムを生成するコンパイル装置のプログラムであって、コンパイラ装置に、前記ビジネスプロセス定義に記述された要素群を解析する機能、前記要素が短時間で完了する処理(ショートタスクイベント)の場合には連続して実行することを表す中間コードを生成する機能、前記要素が長い待ち時間が発生し得る処理(ロングタスクイベント)の場合には処理の実行時にデータの保存を行うことを表す中間コードを生成する機能、前記生成した中間コードをコンパイルして実行可能なプログラムを生成する機能、を実現させる。   A program of a thirteenth invention of the present application is a program of a compiling device that inputs a business process definition and generates an executable program, and the compiler device has a function of analyzing an element group described in the business process definition, In the case of a process that completes the element in a short time (short task event), a function that generates an intermediate code indicating continuous execution, a process that can cause a long waiting time for the element (long task event) In some cases, a function of generating an intermediate code indicating that data is saved at the time of execution of processing and a function of generating an executable program by compiling the generated intermediate code are realized.

本願第14の発明のプログラムは、第13の発明において前記ロングタスクイベントをイベント開始処理とイベント終了処理に分割して実行することを表す中間コードおよび前記イベント開始処理と前記イベント終了処理との間でデータの保存を行うことを表す中間コードを生成する機能、を実現させる。   According to a fourteenth aspect of the present invention, there is provided a program according to a thirteenth aspect of the present invention, in which the long task event is divided into an event start process and an event end process and is executed, and between the event start process and the event end process. This realizes a function for generating an intermediate code indicating that data is stored.

本願第15の発明のプログラムは、第13または第14の発明において前記生成した中間コードからJava(登録商標)コードを生成する機能、前記生成したJava(登録商標)コードをコンパイルして実行可能なプログラムを生成する機能、を実現させる。   The program of the fifteenth aspect of the present application is a function for generating Java (registered trademark) code from the intermediate code generated in the thirteenth or fourteenth aspect of the invention, and can be executed by compiling the generated Java (registered trademark) code Realize the function to generate the program.

本発明の効果は、データ保存とビジネスプロセスの処理性能のバランスを考慮した実行可能なプログラムを生成することができることである。   An advantage of the present invention is that an executable program can be generated in consideration of the balance between data storage and business process performance.

その理由は、短時間で処理が完了するイベントは連続実行し、長い待ち時間が発生し得るイベントはその実行タイミングに合わせてデータの保存を行うことを表す中間コードを生成するようにしたからである。   The reason is that events that complete processing in a short time are executed continuously, and events that can generate a long waiting time are generated as intermediate code indicating that data is stored in accordance with the execution timing. is there.

企業内でのナレッジマネジメントや情報の共有化が進む中で、業務効率の向上や新しいサービスを立案するために、既存システムやパートナ企業のシステムとの連携が図られている。近年、このようなシステム連携を行うために、既存のシステムやサービスを利用するためのWebサービスが提供されるようになり、これらのWebサービスを組み合わせて、新たなサービスを記述するビジネスプロセス定義とそれを解釈し、処理を実行するシステムが求められている。   As knowledge management and information sharing are progressing within the company, cooperation with existing systems and partner company systems is being pursued in order to improve operational efficiency and plan new services. In recent years, in order to perform such system cooperation, Web services for using existing systems and services have been provided, and business process definitions that describe new services by combining these Web services and There is a need for a system that interprets this and performs processing.

ビジネスプロセス定義は、利用するWebサービスと交換するデータの処理や実行制御を記述し、プロセス実行制御部は、ビジネスプロセス定義に基づいた処理を実行する。特に、プロセス実行制御部には、サービスの信頼性を向上させるために、異常や障害時の処理およびそのリカバリが速やかに行えることへの要求が高まっている。そこで、長期間にわたるビジネスプロセスの実行を実現するために、ビジネスプロセスの実行途中でプロセス実行プログラムの実行時のデータをデータベースや記憶装置に保存することが行われている。   The business process definition describes processing and execution control of data exchanged with the Web service to be used, and the process execution control unit executes processing based on the business process definition. In particular, there is an increasing demand for the process execution control unit to be able to promptly perform processing and recovery in the event of an abnormality or failure in order to improve service reliability. Therefore, in order to realize execution of a business process over a long period of time, data at the time of execution of a process execution program is stored in a database or a storage device during execution of the business process.

本発明は、ビジネスプロセス定義を解析して中間コードを生成し、中間コードからJava(登録商標)コードを生成してコンパイルし、実行可能プログラムを生成する。このとき、ビジネスプロセス定義を解析して障害発生により失われる情報量と実行速度との最適なバランス点を見つけ出し、それを反映した中間コードを生成することを特徴としている。   The present invention analyzes a business process definition to generate an intermediate code, generates Java (registered trademark) code from the intermediate code, compiles it, and generates an executable program. At this time, the business process definition is analyzed to find an optimal balance point between the amount of information lost due to the occurrence of a failure and the execution speed, and an intermediate code reflecting that is generated.

このように、障害発生により失われる情報を最小限にし、実行速度を確保する実行可能なプログラムを生成するので、生成したプログラム実行時のデータ保存の最適化が行える。   As described above, since an executable program that minimizes information lost due to the occurrence of a failure and secures an execution speed is generated, data storage at the time of execution of the generated program can be optimized.

なお、本発明で取り扱うビジネスプロセス定義は、短時間で終了する処理(ショートタスク)と長い待ち時間が発生し得る処理(ロングタスク)とを表現できる言語であるものとする。その1例がBusiness Process Execution Language for Web Services(BPEL4WS)である。BPEL4WSについては後述する。また、生成するJava(登録商標)コードは、実行時にオブジェクトの永続化を行うことができるJava(登録商標)の仕組みに対応したJava(登録商標)コードであるものとする。実行時にオブジェクトの永続化を行うことができるJava(登録商標)の仕組みの1例として、Java(登録商標) 2 Plartform, Enterprise Edition(J2EE)のEnterprise Java(登録商標)Beans(EJB)が挙げられる。   Note that the business process definition handled in the present invention is a language that can express a process that ends in a short time (short task) and a process that can generate a long waiting time (long task). One example is Business Process Execution Language for Web Services (BPEL4WS). BPEL4WS will be described later. Further, the Java (registered trademark) code to be generated is Java (registered trademark) code corresponding to the Java (registered trademark) mechanism capable of persisting the object at the time of execution. An example of a Java (registered trademark) mechanism capable of persisting an object at runtime is Enterprise Java (registered trademark) Beans (EJB) of Java (registered trademark) 2 Platform, Enterprise Edition (J2EE). .

次に、本発明を実施するための最良の形態について、図面を用いて詳細に説明する。
図1は本発明の構成を示す図である。
図2はBPEL4WSに従って記述されたビジネスプロセス定義の例を示す図である。
Next, the best mode for carrying out the present invention will be described in detail with reference to the drawings.
FIG. 1 is a diagram showing the configuration of the present invention.
FIG. 2 is a diagram showing an example of a business process definition described according to BPEL4WS.

本実施例のコンパイル装置の構成を説明する前に、先ず、本コンパイル装置が扱うビジネスプロセス定義について説明する。ビジネスプロセス定義にはWebサービスの呼び出しやデータのコピーなどのイベントが記述される。その書式は特に指定はないが、本実施例が取り扱うビジネスプロセス定義の書式として、OASIS Web Services Business Process Execution Language TCで標準化が進められているBusiness Process Execution Language for Web Services(以降、BPEL4WSと称す)を用いる。図2に、BPEL4WSに従って記述されたビジネスプロセス定義の例を示す。   Before describing the configuration of the compiling device of this embodiment, first, the business process definition handled by the compiling device will be described. In the business process definition, events such as a web service call and data copy are described. The format is not particularly specified, but as the format of the business process definition handled by this embodiment, OASIS Web Services Business Process Language Language TC, Business Process Execution Language Language Web Service, and the Web Service Services Web Service, 4 and 4 Is used. FIG. 2 shows an example of a business process definition described according to BPEL4WS.

BPEL4WSでは、ビジネスプロセス定義のルート要素としてprocess要素が定義され、その中にイベントや変数を表す要素を記述していく。   In BPEL4WS, a process element is defined as a root element of a business process definition, and elements representing events and variables are described therein.

本実施例では、BPEL4WSで定義されるvariable要素,partnerLink要素およびcorrelationSet要素を永続対象変数として扱うこととする。また、アクティビティとして定義されている要素をイベントとして扱うこととする。   In the present embodiment, variable elements, partnerLink elements, and correlationSet elements defined in BPEL4WS are treated as persistent target variables. Also, elements defined as activities are handled as events.

以降の説明では、BPEL4WSのアクティビティのうち、以下のものをショートタスクのイベントとして扱う。
・sequence要素(子要素に定義されたアクティビティを記述された順番に実行する)。
・flow要素(子要素に定義されたアクティビティを並列実行する)。
・while要素(指定された条件の間、子要素に定義されたアクティビティを繰り返し実行する)。
・switch要素(指定された条件により分岐されたアクティビティを実行する)。
・assign要素(指定されたデータを一方から他方へコピーする)。
・reply要素(指定されたメッセージをreceive要素で受信したメッセージの送信元へ返信する)。
・empty要素(何もしない)。
・terminate要素(ビジネスプロセスを終了する)。
In the following description, among the activities of BPEL4WS, the following are handled as short task events.
Sequence element (executes activities defined in child elements in the order described).
Flow element (executes activities defined in child elements in parallel).
• While element (repeatedly executes the activity defined in the child element during the specified condition).
Switch element (executes an activity branched according to a specified condition).
Assign element (copy specified data from one to the other).
Reply element (returns the specified message to the transmission source of the message received by the receive element).
Empty element (does nothing).
Terminate element (ends a business process)

また、以下のものをロングタスクのイベントとして扱う。
・receive要素(指定されたメッセージを受信する)。
・invoke要素(指定されたメッセージを送信し、応答を受信する)。
・wait要素(指定された時間、期間待機する)。
The following are handled as long task events.
Receive element (receives the specified message).
Invoke element (sends a specified message and receives a response).
Wait element (waits for a specified period of time).

また、中間コードから生成されるJava(登録商標)コードは、Java(登録商標) 2 Plartform, Enterprise Edition(以降、J2EEと称す)のEnterprise Java(登録商標)Beans(以降、EJBと称す)に対応するJava(登録商標)コードであるものとする。   The Java (registered trademark) code generated from the intermediate code corresponds to Enterprise Java (registered trademark) Beans (hereinafter referred to as EJB) of Java (registered trademark) 2 Platform, Enterprise Edition (hereinafter referred to as J2EE). Java (registered trademark) code.

続いて、図1を用いて、本実施例のコンパイル装置の構成を説明する。   Next, the configuration of the compiling device of this embodiment will be described with reference to FIG.

図1を参照すると、本発明のコンパイル装置の一実施例は、キーボード等の入力装置1と、実行可能なプログラムを生成するコンパイル手段2と、ディスプレイ装置や印刷装置等の出力装置3と、情報を記憶する記憶装置4とを備えている。また、コンパイル装置は、全体を制御するCPU(中央処理装置、図示せず)と、CPUによって実行されるプログラムや各種データ等を格納する主記憶装置(図示せず)とを備え、プログラム制御により動作する。また、コンパイル装置は、生成した実行可能なプログラムを実行するプログラム実行手段(図示せず)を備えるようにしてもよい。   Referring to FIG. 1, an embodiment of a compiling device according to the present invention includes an input device 1 such as a keyboard, a compiling unit 2 that generates an executable program, an output device 3 such as a display device and a printing device, and information. Is stored. The compiling device also includes a CPU (central processing unit, not shown) that controls the whole and a main storage device (not shown) that stores programs executed by the CPU and various data. Operate. In addition, the compiling device may include program execution means (not shown) for executing the generated executable program.

入力装置1は、ビジネスプロセス定義を入力する装置で、キーボード装置等である。   The input device 1 is a device for inputting a business process definition, and is a keyboard device or the like.

コンパイル手段2は、入力されたビジネスプロセス定義から中間コード、Java(登録商標)コードを生成し、実行可能なプロセス実行プログラムを生成する。コンパイル手段2は、ビジネスプロセス定義解析手段21と、中間コード生成手段22と、Java(登録商標)コード生成手段23と、Java(登録商標)コードコンパイル手段24とを有している。なお、本実施例では、ビジネスプロセス定義の書式として、BPEL4WSを用いる。   The compiling unit 2 generates intermediate code and Java (registered trademark) code from the input business process definition, and generates an executable process execution program. The compiling unit 2 includes a business process definition analyzing unit 21, an intermediate code generating unit 22, a Java (registered trademark) code generating unit 23, and a Java (registered trademark) code compiling unit 24. In this embodiment, BPEL4WS is used as the format of the business process definition.

ビジネスプロセス定義解析手段21は、入力装置1から入力されたビジネスプロセス定義を解析し、中間コード生成手段22が使用するデータ(ビジネスプロセス定義変換データ)に変換して記憶装置4に格納する。図2に示すBPEL4WSに従って記述されたビジネスプロセス定義の例では、先頭データとしてprocess要素の情報があり、そのprocess要素は、process要素の属性の値と、その子要素にpartnerLinks要素,variables要素およびsequence要素を保持することを示している。ビジネスプロセス定義変換データは、記述されたビジネスプロセス定義を内部で処理しやすい形に変換したものである(例えば、記号化などの処置を施したものである)。ビジネスプロセス定義解析手段21は、図2に示すBPEL4WSで表現されたビジネスプロセス定義から、ルート要素のprocess要素を先頭に、partnerLinkやvariableなどの変数要素ならびにreceiveやassginなどのイベント要素がビジネスプロセス定義に記述された入れ子構造と同じ関係を保持したデータ(ビジネスプロセス定義変換データ)を生成する。また、ビジネスプロセス定義解析手段21は、解析中にビジネスプロセス定義の文法ミスなどを検出した場合、出力装置3にメッセージを表示する。   The business process definition analysis unit 21 analyzes the business process definition input from the input device 1, converts the business process definition into data (business process definition conversion data) used by the intermediate code generation unit 22, and stores the data in the storage device 4. In the example of the business process definition described in accordance with BPEL4WS shown in FIG. 2, there is information of a process element as head data, and the process element includes an attribute value of the process element, and a partnerLinks element, variables element, and sequence element as child elements thereof. To hold. The business process definition conversion data is obtained by converting the described business process definition into a form that can be easily processed internally (for example, a process such as symbolization). The business process definition analysis means 21 includes a business process definition represented by BPEL4WS shown in FIG. 2 with a process element of the root element, a variable element such as partnerLink or variable, and an event element such as receive or assert as the business process definition. Data that retains the same relationship as the nested structure described in (Business process definition conversion data) is generated. Further, the business process definition analyzing means 21 displays a message on the output device 3 when a grammatical error in the business process definition is detected during the analysis.

中間コード生成手段22は、ビジネスプロセス定義変換データを記憶装置4から読み出し、ビジネスプロセス定義変換データに基づいて、Java(登録商標)コード生成手段23が使用する中間コードを生成する。生成した中間コードを記憶装置4に格納する。例えば、図2に示すビジネスプロセス定義から生成されたビジネスプロセス定義変換データを入力して、先頭データとしてprocess要素の情報を取得し、先頭データに対する子要素のデータを取得することで、partnerLinksやvariablesならびにsequence要素の情報を取得する。子要素がなくなるまで中間コード生成処理を行う。また、中間コード生成手段22は、中間コード生成中に、必要なデータの欠落やミスを検出した場合、出力装置3にメッセージを表示する。中間コード生成手段22は、要素判別手段221と、クラス宣言中間コード生成手段222と、永続対象変数定義中間コード生成手段223と、ショートタスク中間コード生成手段224と、ロングタスク中間コード生成手段225とを有している。   The intermediate code generation unit 22 reads the business process definition conversion data from the storage device 4 and generates an intermediate code used by the Java (registered trademark) code generation unit 23 based on the business process definition conversion data. The generated intermediate code is stored in the storage device 4. For example, the business process definition conversion data generated from the business process definition shown in FIG. 2 is input, the process element information is acquired as the top data, and the child element data with respect to the top data is acquired, whereby partnerLinks and variables are acquired. In addition, information on the sequence element is acquired. Intermediate code generation processing is performed until there are no child elements. Further, the intermediate code generation means 22 displays a message on the output device 3 when detecting missing or mistakes of necessary data during intermediate code generation. The intermediate code generation unit 22 includes an element determination unit 221, a class declaration intermediate code generation unit 222, a permanent variable definition intermediate code generation unit 223, a short task intermediate code generation unit 224, and a long task intermediate code generation unit 225. have.

要素判別手段221は、ビジネスプロセス定義に記述される要素を、以下のように分類する。なお、ショートタスクとロングタスクの分類の方針は、メッセージの送受信に関係する処理とタイマ処理に着目している。
(1)ルート要素。
(2)永続対象変数要素。
(3)ネットワークを介したメッセージの交換やタイマの起動待ちなどの長期にわたって実行されるイベント(ロングタスクイベント)。
(4)データのコピーやデータの値の評価など短時間で処理が完了するイベント(ショートタスクイベント)。
The element discriminating unit 221 classifies the elements described in the business process definition as follows. Note that the short task and long task classification policies focus on processing related to message transmission and reception and timer processing.
(1) Root element.
(2) Permanent target variable element.
(3) An event (long task event) executed over a long period of time, such as message exchange via the network or waiting for the timer to start.
(4) An event (short task event) in which processing is completed in a short time such as data copying or data value evaluation.

クラス宣言中間コード生成手段222は、要素判別手段221がルート要素と判別した要素から、Java(登録商標)のクラス宣言に相当するコードを出力する中間コードを生成する。   The class declaration intermediate code generation unit 222 generates intermediate code for outputting a code corresponding to a Java (registered trademark) class declaration from the element determined by the element determination unit 221 as a root element.

永続対象変数定義中間コード生成手段223は、要素判別手段221が永続対象変数要素と判別した要素から、永続すべきデータの宣言を行う中間コードを生成する。   The persistent target variable definition intermediate code generation unit 223 generates intermediate code for declaring data to be persisted from the elements determined by the element determination unit 221 as the persistent target variable elements.

ショートタスク中間コード生成手段224は、要素判別手段221がショートタスクであると判別したイベント要素から、イベント要素が処理すべき内容に対応する中間コードを生成し、更に連続して実行する意味を表す中間コードを生成する。   The short task intermediate code generation means 224 represents the meaning of generating an intermediate code corresponding to the contents to be processed by the event element from the event elements determined by the element determination means 221 as a short task, and executing them continuously. Generate intermediate code.

ロングタスク中間コード生成手段225は、要素判別手段221がロングタスクであると判別したイベント要素から、イベント要素が処理すべき内容に対応する中間コードをイベント開始処理とイベント終了処理とに分割して実行することを表す中間コードを生成する。   The long task intermediate code generation unit 225 divides the intermediate code corresponding to the content to be processed by the event element into event start processing and event end processing from the event element determined by the element determination unit 221 as a long task. Generate intermediate code that represents execution.

Java(登録商標)コード生成手段23は、中間コード生成手段22が処理すべき要素がなくなったら、中間コード生成手段22によって生成された中間コードを記憶装置4から入力し、中間コードからJava(登録商標)コードを生成する。生成したJava(登録商標)コードを記憶装置4に格納する。Java(登録商標)コード生成中に、必要なデータの欠落やミスを検出した場合、出力装置3にメッセージを表示する。Java(登録商標)コード生成手段23は、J2EEのEJBに対応するJava(登録商標)コードを生成する。   When there are no more elements to be processed by the intermediate code generation unit 22, the Java (registered trademark) code generation unit 23 inputs the intermediate code generated by the intermediate code generation unit 22 from the storage device 4, and the Java (registered) from the intermediate code. (Trademark) code. The generated Java (registered trademark) code is stored in the storage device 4. A message is displayed on the output device 3 when a missing or missing data is detected during Java (registered trademark) code generation. The Java (registered trademark) code generation means 23 generates a Java (registered trademark) code corresponding to J2EE EJB.

Java(登録商標)コードコンパイル手段24は、Java(登録商標)コード生成手段23によって生成されたJava(登録商標)コードを記憶装置4から入力してコンパイルし、実行可能なプロセス実行プログラムを生成する。生成した実行可能なプロセス実行プログラムを記憶装置4に格納する。コンパイル時にエラーが発生した場合、出力装置3にメッセージを表示する。なお、生成されたプロセス実行プログラムが実行される場合、生成されたプロセス実行プログラムは、ショートタスクに分類されるイベントの終了時には、実行時のデータの保存処理を行わないで次のイベントを連続して実行するように動作する。また、ロングタスクに分類されるイベントの場合には、イベントの開始処理とイベントの終了処理の間で処理が一時中断され、このタイミングで実行時のデータの保存が行われるように動作する。   The Java (registered trademark) code compiling unit 24 inputs the Java (registered trademark) code generated by the Java (registered trademark) code generating unit 23 from the storage device 4 and compiles it to generate an executable process execution program. . The generated executable process execution program is stored in the storage device 4. If an error occurs during compilation, a message is displayed on the output device 3. In addition, when the generated process execution program is executed, the generated process execution program continues the next event without performing data storage processing at the end of the event classified as a short task. To run. In the case of an event classified as a long task, the process is temporarily interrupted between the event start process and the event end process, and data is stored at the time of execution.

出力装置3は、コンパイル手段2がメッセージを出力する装置で、例えばプリンタ装置やディスプレイ装置等である。   The output device 3 is a device from which the compiling means 2 outputs a message, such as a printer device or a display device.

記憶装置4は、コンパイル手段2に含まれる各手段が各種データを格納する装置で、例えば磁気ディスク装置等である。Java(登録商標)コードコンパイル手段24がコンパイルして生成した実行可能なプロセス実行プログラムも格納される。   The storage device 4 is a device in which each means included in the compiling means 2 stores various data, such as a magnetic disk device. An executable process execution program generated by compiling by the Java (registered trademark) code compiling means 24 is also stored.

次に、本発明を実施するための最良の形態の動作について、図1〜図12を参照して詳細に説明する。   Next, the operation of the best mode for carrying out the present invention will be described in detail with reference to FIGS.

先ず、コンパイル手段2の動作概要について、図1および図3を用いて説明する。
図3はコンパイル手段2のフローを示す図である。
First, an outline of the operation of the compiling means 2 will be described with reference to FIGS.
FIG. 3 is a diagram showing the flow of the compiling means 2.

ステップA1において、ビジネスプロセス定義解析手段21は、入力装置1から供給されたビジネスプロセス定義を解析し、中間コード生成手段22が処理するデータに変換する。   In step A <b> 1, the business process definition analyzing unit 21 analyzes the business process definition supplied from the input device 1 and converts it into data processed by the intermediate code generating unit 22.

ステップA2において、ビジネスプロセス定義解析手段21は、ステップA1で解析した結果を評価する。供給されたビジネスプロセス定義の書式や文法が誤っている場合、出力装置3にその誤り内容を表示し(ステップA10)、以後の処理を実行しない。   In step A2, the business process definition analyzing means 21 evaluates the result analyzed in step A1. If the format or grammar of the supplied business process definition is incorrect, the error content is displayed on the output device 3 (step A10), and the subsequent processing is not executed.

ステップA3において、中間コード生成手段22は、ビジネスプロセス定義解析手段21から供給されたビジネスプロセス定義を表す解析済みデータを用いて、Java(登録商標)コード生成手段23が扱う中間コードを生成する。   In step A <b> 3, the intermediate code generation unit 22 generates intermediate code handled by the Java (registered trademark) code generation unit 23 using the analyzed data representing the business process definition supplied from the business process definition analysis unit 21.

ステップA4において、中間コード生成手段22が中間コードの生成に成功したかを評価する。失敗した場合は、出力装置3にその内容を表示し(ステップA10)、以後の処理を実行しない。   In step A4, it is evaluated whether the intermediate code generation means 22 has succeeded in generating the intermediate code. If it fails, the contents are displayed on the output device 3 (step A10), and the subsequent processing is not executed.

ステップA5において、Java(登録商標)コード生成手段23は、中間コード生成手段22が生成した中間コードから、J2EEのEJBに対応するJava(登録商標)コードを生成する。   In step A5, the Java (registered trademark) code generation unit 23 generates a Java (registered trademark) code corresponding to the J2EE EJB from the intermediate code generated by the intermediate code generation unit 22.

ステップA6において、Java(登録商標)コード生成手段23がJava(登録商標)コードの生成に成功したかを評価する。失敗した場合は、出力装置3にその内容を表示し(ステップA10)、以後の処理を実行しない。   In step A6, it is evaluated whether the Java (registered trademark) code generation unit 23 has successfully generated the Java (registered trademark) code. If it fails, the contents are displayed on the output device 3 (step A10), and the subsequent processing is not executed.

ステップA7において、Java(登録商標)コードコンパイル手段24は、Java(登録商標)コード生成手段23が生成したJava(登録商標)コードをコンパイルし、実行可能プログラムを生成する。   In step A7, the Java (registered trademark) code compiling unit 24 compiles the Java (registered trademark) code generated by the Java (registered trademark) code generating unit 23 to generate an executable program.

ステップA8において、Java(登録商標)コードコンパイル手段24が実行可能プログラムの生成に成功したかを評価する。失敗した場合は、出力装置3にその内容を表示し(ステップA10)、以後の処理を実行しない。   In step A8, it is evaluated whether the Java (registered trademark) code compiling means 24 has successfully generated the executable program. If it fails, the contents are displayed on the output device 3 (step A10), and the subsequent processing is not executed.

ステップA9において、Java(登録商標)コードコンパイル手段24は、生成した実行可能プログラムを記憶装置4に保存する。   In step A9, the Java (registered trademark) code compiling means 24 stores the generated executable program in the storage device 4.

次に、中間コード生成手段22が中間コードを生成する動作について、図1,図4および図10を用いて説明する。
図4は中間コード生成手段22が中間コードを生成するフローを示す図である。
図10は中間コードの構成例を示す図である。
Next, the operation of the intermediate code generation means 22 for generating the intermediate code will be described with reference to FIG. 1, FIG. 4, and FIG.
FIG. 4 is a diagram showing a flow in which the intermediate code generation means 22 generates an intermediate code.
FIG. 10 is a diagram illustrating a configuration example of the intermediate code.

中間コードは、1つのクラス宣言メソッドと複数のタスクメソッドからなり、クラス宣言メソッドおよびタスクメソッドにはフラグメントが格納されている構成をとる。図10に中間コードの構成例を示す。   The intermediate code includes one class declaration method and a plurality of task methods, and the class declaration method and the task method have a configuration in which fragments are stored. FIG. 10 shows a configuration example of the intermediate code.

図4のステップB1で、中間コード生成手段22は、ビジネスプロセス定義解析手段21が生成したデータ(ビジネスプロセス定義変換データ)を取得する。   In step B1 of FIG. 4, the intermediate code generation unit 22 acquires the data (business process definition conversion data) generated by the business process definition analysis unit 21.

ステップB2,ステップB4およびステップB6で、要素判別手段221は、取得したデータからビジネスプロセス定義の要素を取り出し、BPEL4WSのprocess要素,永続対象変数要素,ショートタスクイベントあるいはロングタスクイベントのいずれかであるかを評価する。   In step B2, step B4, and step B6, the element determination unit 221 takes out the element of the business process definition from the acquired data, and is one of the BPEL4WS process element, persistent target variable element, short task event, or long task event. To evaluate.

取り出した要素がprocess要素であった場合、ステップB3へ遷移する。   If the extracted element is a process element, the process proceeds to step B3.

取り出した要素が永続対象変数要素であった場合、ステップB5へ遷移する。   If the extracted element is a permanent target variable element, the process proceeds to step B5.

取り出した要素がロングタスクイベント(例えば、BPE4WSのreceive要素)であった場合、ステップB7へ処理が遷移する。   If the extracted element is a long task event (for example, a receive element of BPE4WS), the process proceeds to step B7.

取り出した要素がショートタスクイベント(例えば、BPEL4WSのassign要素)であった場合、ステップB8へ処理が遷移する。   If the extracted element is a short task event (for example, an assign element of BPEL4WS), the process proceeds to step B8.

ステップB3では、クラス宣言中間コード生成手段222による処理を行う。すなわち、Java(登録商標)のクラス宣言に相当するコードを出力する中間コードを生成する(図10に示す中間コードのクラス宣言メソッドを参照)。   In step B3, processing by the class declaration intermediate code generation means 222 is performed. That is, an intermediate code that outputs a code corresponding to a Java (registered trademark) class declaration is generated (see the intermediate code class declaration method shown in FIG. 10).

ステップB5では、永続対象変数定義中間コード生成手段223による処理を行う。すなわち、永続すべきデータの宣言を行う中間コードを生成する(図10に示す中間コードのH2,H3を参照)。   In step B5, processing by the persistent target variable definition intermediate code generation means 223 is performed. That is, an intermediate code for declaring data to be persisted is generated (see intermediate codes H2 and H3 shown in FIG. 10).

ステップB7では、ロングタスク中間コード生成手段225による処理を行う。すなわち、ロングタスクイベントをイベント開始処理とイベント終了処理に分割して実行することを表す中間コードを生成する(図10に示す中間コードのH4〜H5,H6〜H7等を参照)。   In step B7, processing by the long task intermediate code generation means 225 is performed. That is, an intermediate code indicating that a long task event is divided into an event start process and an event end process is generated (see H4 to H5, H6 to H7, etc. of the intermediate code shown in FIG. 10).

ステップB8では、ショートタスク中間コード生成手段224による処理を行う。すなわち、ショートタスクイベントを連続して実行する意味を表す中間コードを生成する(図10に示す中間コードのH14〜H15,H16〜H17等を参照)。   In step B8, processing by the short task intermediate code generation means 224 is performed. That is, an intermediate code representing the meaning of continuously executing the short task event is generated (see intermediate codes H14 to H15, H16 to H17, etc. shown in FIG. 10).

ステップB3,ステップB5,ステップB7あるいはステップB8の処理終了後、ステップB9で、取得したデータに未処理のデータが存在するかを評価する。未処理のデータが存在した場合はステップB4に戻り、同様の処理を繰り返す。未処理のデータが存在しなくなった場合に処理を終了する。   After the process of step B3, step B5, step B7 or step B8 is completed, it is evaluated in step B9 whether unprocessed data exists in the acquired data. If unprocessed data exists, the process returns to step B4 and the same process is repeated. The process ends when there is no unprocessed data.

次に、クラス宣言中間コード生成手段222の処理について、図5を用いて説明する。
図5はクラス宣言中間コード生成手段222の処理フローを示す図である。
Next, the processing of the class declaration intermediate code generation unit 222 will be described with reference to FIG.
FIG. 5 is a diagram showing a processing flow of the class declaration intermediate code generation means 222.

図5のステップC1で、クラス宣言中間コード生成手段22Bは、中間コードにクラス宣言メソッドを生成する。   In step C1 of FIG. 5, the class declaration intermediate code generation means 22B generates a class declaration method in the intermediate code.

ステップC2で、メソッド選択フラグメントを生成する。このメソッド選択フラグメントは、イベント要素によって生成されるタスクメソッドの選択処理を行うものである。   In step C2, a method selection fragment is generated. This method selection fragment is used to select a task method generated by an event element.

ステップC3で、ステップC1で生成したクラス宣言メソッドにステップC2で生成したメソッド選択フラグメントを追加する。   In step C3, the method selection fragment generated in step C2 is added to the class declaration method generated in step C1.

ステップC4で、中間コードに新規タスクメソッドを生成する。   In step C4, a new task method is generated in the intermediate code.

ステップC5で、中間コードが持つ編集中メソッドとして、ステップC4で生成したタスクメソッドを指定し、処理を終了する。   In step C5, the task method generated in step C4 is designated as the editing method of the intermediate code, and the process ends.

次に、永続対象変数定義中間コード生成手段223の処理について、図6を用いて説明する。
図6は永続対象変数定義中間コード生成手段223の処理フローを示す図である。
Next, the processing of the persistent target variable definition intermediate code generation unit 223 will be described with reference to FIG.
FIG. 6 is a diagram showing a processing flow of the persistent target variable definition intermediate code generation means 223.

図6のステップD1で、永続対象変数定義中間コード生成手段223は、永続対象変数定義フラグメントを生成する。この永続対象変数定義フラグメントは、ロングタスクイベントのイベント開始処理とイベント終了処理の間に永続化されるデータを表すものである。   In step D1 of FIG. 6, the persistent target variable definition intermediate code generating unit 223 generates a persistent target variable definition fragment. This persistent target variable definition fragment represents data that is made permanent between the event start process and the event end process of the long task event.

ステップD2で、ステップD1で生成した永続対象変数定義フラグメントをクラス宣言メソッドの最後に追加し、処理を終了する。   In step D2, the persistent target variable definition fragment generated in step D1 is added to the end of the class declaration method, and the process ends.

次に、ショートタスク中間コード生成手段224の処理について、図7を用いて説明する。
図7はショートタスク中間コード生成手段224がショートタスクイベント実行中間コードを生成するフローを示す図である。
Next, the processing of the short task intermediate code generation means 224 will be described with reference to FIG.
FIG. 7 is a diagram showing a flow in which the short task intermediate code generation means 224 generates a short task event execution intermediate code.

図7のステップE1で、ショートタスクイベントのうち、BPEL4WSのswitch要素のように条件分岐するイベントであるかを判別する。   In step E1 in FIG. 7, it is determined whether the short task event is an event that causes conditional branching, such as a BPEL4WS switch element.

ステップE1で条件分岐イベントと評価した場合、ステップE2へ遷移する。   If it is evaluated as a conditional branch event in step E1, the process proceeds to step E2.

ステップE1で条件分岐でないイベントであると判別した場合、ステップE3へ遷移する。   If it is determined in step E1 that the event is not a conditional branch, the process proceeds to step E3.

ステップE3では、対応するイベントの処理を表すイベント実行フラグメントを生成する。例えば、BPEL4WSのassign要素が指定された場合、データのコピーを行うフラグメントが生成される。   In step E3, an event execution fragment representing the processing of the corresponding event is generated. For example, when the assign element of BPEL4WS is designated, a fragment for copying data is generated.

ステップE4では、ステップE3で生成したイベント実行フラグメントを中間コードが持つ編集中メソッドの最後に追加して、処理を終了する。   In step E4, the event execution fragment generated in step E3 is added to the end of the editing method of the intermediate code, and the process ends.

ステップE2では、条件分岐イベント実行フラグメントの生成を行う。   In step E2, a conditional branch event execution fragment is generated.

次に、ステップE2で行う条件分岐イベント実行フラグメントの生成処理について、図8を用いて説明する。
図8は条件分岐イベント実行フラグメントの生成処理フローを示す図である。
Next, the conditional branch event execution fragment generation process performed in step E2 will be described with reference to FIG.
FIG. 8 is a diagram showing a processing flow for generating a conditional branch event execution fragment.

図8のステップF1で、中間コードが持つ編集中メソッドを記憶しておく。   In step F1 of FIG. 8, the editing method possessed by the intermediate code is stored.

ステップF2で、新規タスクメソッドを生成する。ここで生成したタスクメソッドは、この条件評価イベントが成立した場合、その子要素のイベント実行後に連続して実行されるものである。   In step F2, a new task method is generated. The task method generated here is executed continuously after the event of the child element is executed when the condition evaluation event is established.

ステップF3で、ステップF2で生成したタスクメソッドを呼ぶノーウェイトロングタスクフラグメントを生成する。このノーウェイトロングタスクフラグメントは、タスクメソッドが分割されていても、永続対象変数の永続処理を行わずに、続けて指定されたタスクメソッドを実行し、イベント連続実行することをあらわす中間コードである。   In step F3, a no-wait long task fragment that calls the task method generated in step F2 is generated. This no-wait long task fragment is an intermediate code that indicates that the specified task method is continuously executed and the event is continuously executed without performing the persistence processing of the persistence target variable even if the task method is divided. .

ステップF4で、条件評価を開始する条件評価開始フラグメントを生成する。   In step F4, a condition evaluation start fragment for starting condition evaluation is generated.

ステップF5で、ステップF4で生成した条件評価開始フラグメントをステップF1で記憶したタスクメソッドの最後に追加する。   In step F5, the condition evaluation start fragment generated in step F4 is added to the end of the task method stored in step F1.

ステップF6で、新規タスクメソッドを生成する。ここで生成したタスクメソッドは、この条件評価イベントが成立した場合、その子要素のイベントのフラグメントが格納されるもので、条件評価成立後、連続して実行される。   In step F6, a new task method is generated. The task method generated here stores the event fragment of the child element when the condition evaluation event is established, and is executed continuously after the condition evaluation is established.

ステップF7で、ステップF6で生成したタスクメソッドを中間コードが持つ編集中メソッドに指定する。   In step F7, the task method generated in step F6 is designated as the editing method of the intermediate code.

ステップF8で、条件評価イベントの子要素のフラグメント生成を行う。ステップF8の処理は、図4のステップB6以降の処理と同じものとなる(入れ子処理を行う)。   In step F8, a fragment of a child element of the condition evaluation event is generated. The processing in step F8 is the same as the processing after step B6 in FIG. 4 (nesting processing is performed).

ステップF9で、ステップF3で生成したノーウェイトロングタスクフラグメントを中間コードが持つ編集中メソッドの最後に追加する。   In step F9, the no-wait long task fragment generated in step F3 is added to the end of the editing method of the intermediate code.

ステップF10で条件評価の終了を表す条件評価終了フラグメントを生成する。   In step F10, a condition evaluation end fragment representing the end of the condition evaluation is generated.

ステップF11で、ステップF10で生成した条件評価終了フラグメントをステップF1で記憶したタスクメソッドの最後に追加する。   In step F11, the condition evaluation end fragment generated in step F10 is added to the end of the task method stored in step F1.

ステップF12で、条件分岐イベントがその他の条件分岐を保持しているかを評価する。その他の条件分岐が存在した場合、ステップF4からの処理を繰り返す。その他の条件分岐が存在しない場合は処理を終了する。   In Step F12, it is evaluated whether the conditional branch event holds other conditional branches. If another conditional branch exists, the processing from step F4 is repeated. If no other conditional branch exists, the process ends.

次に、ロングタスク中間コード生成手段225の処理について、図9を用い説明する。
図9はロングタスク中間コード生成手段225がロングタスクイベント実行中間コードを生成するフローを示す図である。
Next, the processing of the long task intermediate code generation means 225 will be described with reference to FIG.
FIG. 9 is a diagram showing a flow in which the long task intermediate code generation means 225 generates a long task event execution intermediate code.

図9のステップG1で、イベント開始処理実行フラグメントを生成する。イベント開始処理実行フラグメントは、例えば、BPEL4WSのreceive要素が指定された場合、指定された宛先のメッセージが到着するまで待機する処理を表すものである。   In step G1 of FIG. 9, an event start process execution fragment is generated. The event start process execution fragment represents, for example, a process of waiting until a message of a specified destination arrives when a BPEL4WS receive element is specified.

ステップG2で、ステップG1で生成したイベント開始処理実行フラグメントを中間コードが持つ編集中メソッドの最後に追加する。   In step G2, the event start process execution fragment generated in step G1 is added to the end of the editing method of the intermediate code.

ステップG3で、中間コードの編集中メソッドを終了させる。コンパイルされたコードの実行時、このメソッドの終了とともに、永続対象変数の内容が永続化される。   In step G3, the intermediate code editing method is terminated. When the compiled code is executed, the contents of the persistent target variable are persisted when this method ends.

ステップG4で、新規タスクメソッドを生成する。このタスクメソッドは、ロングタスクイベントのイベント終了処理に相当するフラグメントが格納されるものである。   In step G4, a new task method is generated. This task method stores a fragment corresponding to event end processing of a long task event.

ステップG5で、中間コードが持つ編集中メソッドにステップG4で生成したタスクメソッドを指定する。   In step G5, the task method generated in step G4 is designated as the editing method of the intermediate code.

ステップG6で、ロングタスクイベントのイベント終了処理フラグメントを生成する。例えば、BPEL4WSのreceive要素に対して生成されたイベント終了処理フラグメントは、受信したメッセージを永続対象変数に格納する。   In step G6, an event end processing fragment of the long task event is generated. For example, the event end processing fragment generated for the receive element of BPEL4WS stores the received message in the persistent target variable.

ステップG7で、ステップG6で生成したイベント終了処理フラグメントを中間コードが持つ編集中メソッドの最後に追加して処理を終了する。   In step G7, the event end process fragment generated in step G6 is added to the end of the method being edited in the intermediate code, and the process ends.

次に、中間コードについて、図10を用いて説明する。   Next, the intermediate code will be described with reference to FIG.

中間コード生成手段22が、図2で示されるBPEL4WSで記述したビジネスプロセス定義から生成した中間コードの模式図は、図10のようになる。   A schematic diagram of the intermediate code generated by the intermediate code generation unit 22 from the business process definition described in BPEL4WS shown in FIG. 2 is as shown in FIG.

中間コード生成手段22がロングタスクイベントを見つけ、処理をイベント開始と終了に分けて中間コードを生成する処理について、図2のreceive要素を例に図10を参照して説明する。イベント開始処理実行フラグメント(図10のH4)とイベント終了処理フラグメント(図10のH5)に分割され、それぞれタスクメソッド0とタスクメソッド1に格納されている部分で表現されている。   A process in which the intermediate code generation unit 22 finds a long task event and generates an intermediate code by dividing the process into event start and end will be described with reference to FIG. 10 using the receive element of FIG. 2 as an example. It is divided into an event start process execution fragment (H4 in FIG. 10) and an event end process fragment (H5 in FIG. 10), which are represented by portions stored in task method 0 and task method 1, respectively.

ノーウェイトロングタスクフラグメント(図10のH9,H12,H15およびH17)は、それが実行されると、指定されたタスクメソッドのフラグメントを続けて実行することを表している。例えば、H15のノーウェイトロングタスクが実行されると、タスクメソッド3に引き続いて、タスクメソッド5のH18のイベント実行フラグメントが実行されることを表している。   The no-wait long task fragment (H9, H12, H15, and H17 in FIG. 10) indicates that when it is executed, the designated task method fragment is continuously executed. For example, when a no-wait long task of H15 is executed, an event execution fragment of H18 of task method 5 is executed following task method 3.

次に、Java(登録商標)コード生成手段23が、中間コード生成手段22が生成した図10の中間コードからJava(登録商標)コードを生成する動作について、図10,図11および図12を用いて説明する。
図11は生成したJava(登録商標)コードの例を示す図である。
図12は生成したJava(登録商標)コードの例を示す図である。
Next, an operation in which the Java (registered trademark) code generation unit 23 generates the Java (registered trademark) code from the intermediate code of FIG. 10 generated by the intermediate code generation unit 22 will be described with reference to FIGS. I will explain.
FIG. 11 is a diagram showing an example of the generated Java (registered trademark) code.
FIG. 12 is a diagram showing an example of the generated Java (registered trademark) code.

Java(登録商標)コード生成手段23が、中間コード生成手段22が生成した図10の中間コードからJava(登録商標)コードを生成した例を図11と図12に示す。   An example in which the Java (registered trademark) code generation unit 23 generates Java (registered trademark) code from the intermediate code of FIG. 10 generated by the intermediate code generation unit 22 is shown in FIGS.

まず、Java(登録商標)コード生成手段23は、中間コード生成手段22が生成した中間コードを受け取ると、図11のJava(登録商標)コードを生成する。生成内容は中間コードによらずほぼ同じで、異なる箇所は、図11のI1中JobFlowCoreというJava(登録商標)クラス名のところだけである。このJobFlowCoreというJava(登録商標)クラスは、Java(登録商標)コード生成手段23が生成する図12のJava(登録商標)コードを示すものであり、Java(登録商標)コード生成手段23によって、図11と図12はペアで生成される。そのほか、Java(登録商標)コード生成手段23は、J2EEのフレームワークに則ったJava(登録商標)コードをいくつか生成するが、Java(登録商標)コード生成手段23の本質ではないので、ここでは説明を割愛する。   First, when receiving the intermediate code generated by the intermediate code generating unit 22, the Java (registered trademark) code generating unit 23 generates the Java (registered trademark) code of FIG. The generated contents are almost the same regardless of the intermediate code, and the only difference is the Java (registered trademark) class name JobFlowCore in I1 of FIG. The Java (registered trademark) class, JobFlowCore, indicates the Java (registered trademark) code of FIG. 12 generated by the Java (registered trademark) code generation unit 23. 11 and FIG. 12 are generated in pairs. In addition, the Java (registered trademark) code generation unit 23 generates some Java (registered trademark) code that conforms to the J2EE framework, but is not the essence of the Java (registered trademark) code generation unit 23. I will omit the explanation.

次に、Java(登録商標)コード生成手段23は、中間コード生成手段22が生成した中間コードに基づいて、図12のJava(登録商標)コードを生成する。Java(登録商標)コード生成手段23は、図10のクラス宣言メソッドから図12のクラス名であるJobFlowCoreの宣言を出力し、図12のJ1のコンストラクタのメソッド宣言を出力する。   Next, the Java (registered trademark) code generation unit 23 generates the Java (registered trademark) code of FIG. 12 based on the intermediate code generated by the intermediate code generation unit 22. The Java (registered trademark) code generation unit 23 outputs the declaration of JobFlowCore which is the class name of FIG. 12 from the class declaration method of FIG. 10, and outputs the method declaration of the constructor of J1 of FIG.

次に、図10のクラス宣言メソッドに格納されるH1〜H3のフラグメントを処理する。H1のフラグメントから、図12のJ2のonMessageメソッド、inivokeメソッド、selectAndInvokeメソッドを出力する。selectAndInvokeメソッド内のcase文は、図10のタスクメソッドの数に合わせて出力される。図10のH2とH3のフラグメントからは、図12のJ1の永続対象変数の定義を出力する。ここで、図10のクラス宣言メソッド内でのH2とH3の並びは図2のビジネスプロセス定義でのpartnerLink、variableの出現順序には依存しないものである。   Next, the fragments H1 to H3 stored in the class declaration method of FIG. 10 are processed. From the fragment of H1, the onMessage method, invoke method, and selectAndInvoke method of J2 in FIG. 12 are output. The case statement in the selectAndInvoke method is output according to the number of task methods in FIG. From the fragment of H2 and H3 in FIG. 10, the definition of the persistent target variable of J1 in FIG. 12 is output. Here, the arrangement of H2 and H3 in the class declaration method of FIG. 10 does not depend on the appearance order of partnerLink and variable in the business process definition of FIG.

次に、図10のタスクメソッド0〜タスクメソッド5にあわせて、図12のJ3で示されるメソッドtaskMethod0〜taskMethod5を出力する。図12のJ3のそれぞれのメソッドの内容は、図10のタスクメソッドに格納されているフラグメントにより決まる。例えば、図10のタスクメソッド0のH4のフラグメントからは、図12のJ3のtaskMethod0のreceive要素で指定されたメッセージの受信要求処理に該当するJava(登録商標)コードが出力される。   Next, in accordance with task method 0 to task method 5 in FIG. 10, methods taskMethod0 to taskMethod5 indicated by J3 in FIG. 12 are output. The contents of each method of J3 in FIG. 12 are determined by the fragments stored in the task method of FIG. For example, a Java (registered trademark) code corresponding to the message reception request process specified by the receive element of taskMethod0 of J3 in FIG. 12 is output from the H4 fragment of task method 0 in FIG.

図11のJava(登録商標)コードは、図12のJava(登録商標)コードで表されるクラスのインスタンスを永続対象としており、図12のJava(登録商標)コードで表されるクラスのインスタンス変数が永続対象となる。つまり、図12のJ1で示される変数が永続データとなる。データが永続されるは、図11のI1のonMessageメソッドが呼ばれて正常に終了したとき、つまり、図12のJ2のonMessageメソッドが正常に終了したときである。図12のJ2のonMessageメソッドが終了する部分は、ビジネスプロセス定義のロングタスクイベントのイベント開始処理を実行の終了相当し、このタイミングで永続対象に指定されたデータが保存される。また、ショートタスクイベントを実行するとき、条件分岐イベントなどでタスクメソッドが分割される場合があるが、図12のJ2のonMessageメソッドは、図12のJ1のmNoWaitLongTaskQueueにデータが残っている限り、図12のJ2のselectMethodAndInvokeメソッドでタスクメソッドを1つ選択して実行する処理を繰り返す。   The Java (registered trademark) code in FIG. 11 is an instance of the class represented by the Java (registered trademark) code in FIG. 12, and the instance variable of the class represented by the Java (registered trademark) code in FIG. Becomes a permanent target. That is, the variable indicated by J1 in FIG. 12 is permanent data. Data is made permanent when the onMessage method of I1 in FIG. 11 is called and ends normally, that is, when the onMessage method of J2 in FIG. 12 ends normally. The part where the onMessage method of J2 in FIG. 12 ends corresponds to the end of execution of the event start process of the long task event of the business process definition, and the data designated as the permanent target is saved at this timing. Also, when executing a short task event, the task method may be divided by a conditional branch event or the like, but the onMessage method of J2 in FIG. 12 is not limited as long as data remains in the mNoWaitLongTaskQueue of J1 of FIG. The process of selecting and executing one task method with the selectMethodAndInvoke method of 12 J2 is repeated.

このようにして、タスクメソッドを連続して実行することができる。これは、中間コードでは、ノーウェイトロングタスクフラグメントによって表現される部分である。   In this way, task methods can be executed continuously. This is a portion expressed by a no-wait long task fragment in the intermediate code.

生成されたプロセス実行プログラムは、ショートタスクに分類されるイベントの終了時には、実行時のデータの保存処理をしないで連続実行し、ロングタスクに分類されるイベントの開始処理とイベントの終了処理の間で処理が一時中断され、このタイミングで実行時のデータの保存を行う。   The generated process execution program is continuously executed at the end of an event classified as a short task, without storing data at the time of execution, and between the start process and the end process of an event classified as a long task The process is temporarily interrupted, and the data at the time of execution is saved at this timing.

このようにして、ロングタスクの実行に着目したデータの永続化のバランス点を検出することで、ビジネスプロセスの実行途中で発生した障害によって失われる情報を少なくし、プロセス実行プログラムの実行速度を確保することが可能となる。より詳細には、コンパイル装置によって生成されたプロセス実行プログラムが、データのコピーや値の評価などの短時間で処理が完了するイベントは連続実行することができることである。また、タイマ処理あるいは外部Webサービスを利用する処理におけるメッセージの送受信などの長い待ち時間が発生し得るイベントは、その実行タイミングに合わせて、データの保存が行えることにある。この結果、プロセス実行プログラムは、データの保存処理の実行数を抑えて実行されるので、保存に費やされる時間がビジネスプロセスの実行に与える影響を抑えることができ、実行速度も向上する効果を奏する。その理由は、一連の処理を記述したビジネスプロセス定義をビジネスプロセス定義の解析手段が解析した後、中間コード生成手段が短時間で終わる処理と長い待ち時間が発生し得る処理を判別して中間コードを生成することができ、この中間コードからJava(登録商標)コード生成手段が長い待ち時間が発生し得る処理を行う箇所でデータの保存を行うJava(登録商標)コードを生成することができることにある。   In this way, by detecting the balance point of data persistence focusing on the execution of long tasks, information lost due to failures occurring during the execution of business processes is reduced, and the execution speed of process execution programs is ensured. It becomes possible to do. More specifically, the process execution program generated by the compiling device can continuously execute events that complete processing in a short time, such as data copying and value evaluation. In addition, an event that may cause a long waiting time such as message transmission / reception in a timer process or a process using an external Web service is that data can be stored in accordance with the execution timing. As a result, since the process execution program is executed with a reduced number of data storage processes, the time spent for storage can be suppressed from affecting the execution of the business process, and the execution speed can be improved. . The reason for this is that after the business process definition describing the series of processes is analyzed by the business process definition analysis means, the intermediate code generation means determines the process that ends in a short time and the process that can cause a long waiting time, and determines the intermediate code From this intermediate code, Java (registered trademark) code generating means can generate Java (registered trademark) code that saves data at a place where a long waiting time can occur. is there.

本発明による上述した実施の形態において、コンパイル装置の処理動作を実行するためのプログラム等を、データとしてコンパイル装置の磁気ディスクやROM等の記録媒体(図示せず)に記録するようにし、記録されたデータを読み出してコンパイル装置を動作させるために用いる。このように、本発明によるコンパイル装置を動作させるデータを記録媒体に記録させ、この記録媒体をインストールすることによりコンパイル装置の機能が実現できるようになる。   In the above-described embodiment according to the present invention, a program or the like for executing the processing operation of the compiling device is recorded as data on a recording medium (not shown) such as a magnetic disk or a ROM of the compiling device. This data is used to read the data and operate the compiling device. As described above, the function of the compiling device can be realized by recording the data for operating the compiling device according to the present invention on the recording medium and installing the recording medium.

本発明によれば、Webサービスを用いたシステム連携装置や、複数のWebサービスを組み合わせて新規のサービスを提供する装置上で動作するプログラムの生成といった用途に適用できる。   INDUSTRIAL APPLICABILITY According to the present invention, the present invention can be applied to the use of a system cooperation device using a web service or the generation of a program that operates on a device that provides a new service by combining multiple web services.

本発明の構成を示す図The figure which shows the structure of this invention BPEL4WSに従って記述されたビジネスプロセス定義の例を示す図The figure which shows the example of the business process definition described according to BPEL4WS コンパイラのフローを示す図Diagram showing compiler flow 中間コード生成手段が中間コードを生成するフローを示す図The figure which shows the flow which an intermediate code production | generation means produces | generates an intermediate code クラス宣言中間コード生成手段の処理フローを示す図Diagram showing the processing flow of the class declaration intermediate code generation means 永続対象変数定義中間コード生成手段の処理フローを示す図The figure which shows the processing flow of the permanent object variable definition intermediate code generation means ショートタスク中間コード生成手段がショートタスクイベント実行中間コードを生成するフローを示す図The figure which shows the flow which the short task intermediate code generation means generates the short task event execution intermediate code 条件分岐イベント実行フラグメントの生成処理フローを示す図The figure which shows the generation processing flow of conditional branch event execution fragment ロングタスク中間コード生成手段がロングタスクイベント実行中間コードを生成するフローを示す図The figure which shows the flow in which long task intermediate code generation means generates long task event execution intermediate code 中間コードの構成例を示す図Diagram showing an example of the structure of the intermediate code 生成したJava(登録商標)コードの例を示す図A diagram showing an example of generated Java (registered trademark) code 生成したJava(登録商標)コードの例を示す図A diagram showing an example of generated Java (registered trademark) code

符号の説明Explanation of symbols

1 入力装置
2 コンパイル手段
3 出力装置
4 記憶装置
21 ビジネスプロセス定義解析手段
22 中間コード生成手段
23 Java(登録商標)コード生成手段
24 Java(登録商標)コードコンパイル手段
221 要素判別手段
222 クラス宣言中間コード生成手段
223 永続対象変数定義中間コード生成手段
224 ショートタスク中間コード生成手段
225 ロングタスク中間コード生成手段
DESCRIPTION OF SYMBOLS 1 Input device 2 Compile means 3 Output device 4 Storage device 21 Business process definition analysis means 22 Intermediate code generation means 23 Java (registered trademark) code generation means 24 Java (registered trademark) code compilation means 221 Element determination means 222 Class declaration intermediate code Generation means 223 Permanent object variable definition intermediate code generation means 224 Short task intermediate code generation means 225 Long task intermediate code generation means

Claims (15)

ビジネスプロセス定義を入力して実行可能なプログラムを生成するコンパイル装置であって、
前記ビジネスプロセス定義に記述された要素群を解析する手段と、
前記要素が短時間で完了する処理(ショートタスクイベント)の場合には連続して実行することを表す中間コードを生成する手段と、
前記要素が長い待ち時間が発生し得る処理(ロングタスクイベント)の場合には処理の実行時にデータの保存を行うことを表す中間コードを生成する手段と、
前記生成した中間コードをコンパイルして実行可能なプログラムを生成する手段と、を備える、
ことを特徴とするコンパイル装置。
A compiling device for generating an executable program by inputting a business process definition,
Means for analyzing an element group described in the business process definition;
Means for generating intermediate code representing continuous execution in the case of a process (short task event) in which the element is completed in a short time;
Means for generating an intermediate code indicating that data is stored at the time of execution of the process when the element is a process (long task event) in which a long waiting time may occur;
Means for compiling the generated intermediate code to generate an executable program,
A compiling device characterized by that.
前記ロングタスクイベントをイベント開始処理とイベント終了処理に分割して実行することを表す中間コードおよび前記イベント開始処理と前記イベント終了処理との間でデータの保存を行うことを表す中間コードを生成する手段を備える、
ことを特徴とする請求項1記載のコンパイル装置。
An intermediate code indicating that the long task event is divided into an event start process and an event end process and executed, and an intermediate code indicating that data is stored between the event start process and the event end process are generated. With means,
The compiling device according to claim 1.
前記生成した中間コードからJava(登録商標)コードを生成する手段と、
前記生成したJava(登録商標)コードをコンパイルして実行可能なプログラムを生成する手段と、を備える、
ことを特徴とする請求項1または2記載のコンパイル装置。
Means for generating Java (registered trademark) code from the generated intermediate code;
Means for compiling the generated Java (registered trademark) code to generate an executable program;
The compiling apparatus according to claim 1 or 2, characterized in that
前記ビジネスプロセス定義は、
Business Process Execution Language for Web Services(BPEL4WS)で記述される、
ことを特徴とする請求項1,2または3記載のコンパイル装置。
The business process definition is
It is described in Business Process Execution Language for Web Services (BPEL4WS).
4. The compiling device according to claim 1, 2, or 3.
前記Java(登録商標)コードは、
実行時にオブジェクトの永続化を行うことができるJava(登録商標)の仕組みに対応したJava(登録商標)コードである、
ことを特徴とする請求項3または4記載のコンパイル装置。
The Java (registered trademark) code is:
Java (registered trademark) code corresponding to a Java (registered trademark) mechanism capable of persisting an object at the time of execution.
The compiling apparatus according to claim 3 or 4, characterized in that
前記実行時にオブジェクトの永続化を行うことができるJava(登録商標)の仕組みは、
Java(登録商標) 2 Plartform, Enterprise Edition(J2EE)のEnterprise Java(登録商標)Beans(EJB)である、
ことを特徴とする請求項3,4または5記載のコンパイル装置。
The Java (registered trademark) mechanism capable of persisting an object at the time of execution is as follows:
It is Enterprise Java (registered trademark) Beans (EJB) of Java (registered trademark) 2 Platform, Enterprise Edition (J2EE).
6. The compiling device according to claim 3, 4 or 5.
ビジネスプロセス定義を入力して実行可能なプログラムを生成するコンパイル方法であって、
前記ビジネスプロセス定義に記述された要素群を解析するステップと、
前記要素が短時間で完了する処理(ショートタスクイベント)の場合には連続して実行することを表す中間コードを生成するステップと、
前記要素が長い待ち時間が発生し得る処理(ロングタスクイベント)の場合には前記ロングタスクイベントの実行時にデータの保存を行うことを表す中間コードを生成するステップと、
前記生成した中間コードをコンパイルして実行可能なプログラムを生成するステップと、を含む、
ことを特徴とするコンパイル方法。
A compilation method for generating an executable program by inputting a business process definition,
Analyzing an element group described in the business process definition;
Generating intermediate code representing continuous execution in the case of a process (short task event) in which the element is completed in a short time; and
When the element is a process (long task event) in which a long waiting time may occur, generating an intermediate code indicating that data is stored when the long task event is executed;
Compiling the generated intermediate code to generate an executable program,
A compiling method characterized by the above.
前記ロングタスクイベントをイベント開始処理とイベント終了処理に分割して実行することを表す中間コードおよび前記イベント開始処理と前記イベント終了処理との間でデータの保存を行うことを表す中間コードを生成するステップを含む、
ことを特徴とする請求項7記載のコンパイル方法。
An intermediate code indicating that the long task event is divided into an event start process and an event end process and executed, and an intermediate code indicating that data is stored between the event start process and the event end process are generated. Including steps,
8. The compiling method according to claim 7, wherein:
前記生成した中間コードからJava(登録商標)コードを生成するステップと、
前記生成したJava(登録商標)コードをコンパイルして実行可能なプログラムを生成するステップと、を含む、
ことを特徴とする請求項7または8記載のコンパイル方法。
Generating Java (registered trademark) code from the generated intermediate code;
Compiling the generated Java (registered trademark) code to generate an executable program,
9. The compiling method according to claim 7 or 8, wherein:
前記ビジネスプロセス定義は、
Business Process Execution Language for Web Services(BPEL4WS)で記述される、
ことを特徴とする請求項7,8または9記載のコンパイル方法。
The business process definition is
It is described in Business Process Execution Language for Web Services (BPEL4WS).
10. The compiling method according to claim 7, 8, or 9.
前記Java(登録商標)コードは、
実行時にオブジェクトの永続化を行うことができるJava(登録商標)の仕組みに対応したJava(登録商標)コードである、
ことを特徴とする請求項9または10記載のコンパイル方法。
The Java (registered trademark) code is:
Java (registered trademark) code corresponding to a Java (registered trademark) mechanism capable of persisting an object at the time of execution.
11. The compiling method according to claim 9 or 10, wherein:
前記実行時にオブジェクトの永続化を行うことができるJava(登録商標)の仕組みは、
Java(登録商標) 2 Plartform, Enterprise Edition(J2EE)のEnterprise Java(登録商標)Beans(EJB)である、
ことを特徴とする請求項9,10または11記載のコンパイル方法。
The Java (registered trademark) mechanism capable of persisting an object at the time of execution is as follows:
It is Enterprise Java (registered trademark) Beans (EJB) of Java (registered trademark) 2 Platform, Enterprise Edition (J2EE).
The compiling method according to claim 9, 10 or 11.
ビジネスプロセス定義を入力して実行可能なプログラムを生成するコンパイル装置のプログラムであって、
コンパイラ装置に、
前記ビジネスプロセス定義に記述された要素群を解析する機能、
前記要素が短時間で完了する処理(ショートタスクイベント)の場合には連続して実行することを表す中間コードを生成する機能、
前記要素が長い待ち時間が発生し得る処理(ロングタスクイベント)の場合には処理の実行時にデータの保存を行うことを表す中間コードを生成する機能、
前記生成した中間コードをコンパイルして実行可能なプログラムを生成する機能、
を実現させるためのプログラム。
A compiling device program that inputs a business process definition and generates an executable program,
In the compiler device,
A function of analyzing a group of elements described in the business process definition;
A function for generating an intermediate code indicating continuous execution in the case of a process (short task event) in which the element is completed in a short time;
A function for generating an intermediate code indicating that data is stored when the process is executed in the case of a process (long task event) in which the element may have a long waiting time;
A function for generating an executable program by compiling the generated intermediate code;
A program to realize
前記ロングタスクイベントをイベント開始処理とイベント終了処理に分割して実行することを表す中間コードおよび前記イベント開始処理と前記イベント終了処理との間でデータの保存を行うことを表す中間コードを生成する機能、
を実現させるための請求項13記載のプログラム。
An intermediate code indicating that the long task event is divided into an event start process and an event end process and executed, and an intermediate code indicating that data is stored between the event start process and the event end process are generated. function,
The program according to claim 13 for realizing the above.
前記生成した中間コードからJava(登録商標)コードを生成する機能、
前記生成したJava(登録商標)コードをコンパイルして実行可能なプログラムを生成する機能、
を実現させるための請求項13または14記載のプログラム。
A function of generating Java (registered trademark) code from the generated intermediate code;
A function for generating an executable program by compiling the generated Java (registered trademark) code;
The program of Claim 13 or 14 for implement | achieving.
JP2004206323A 2004-07-13 2004-07-13 Compilation device and method and its program Pending JP2006031173A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004206323A JP2006031173A (en) 2004-07-13 2004-07-13 Compilation device and method and its program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004206323A JP2006031173A (en) 2004-07-13 2004-07-13 Compilation device and method and its program

Publications (1)

Publication Number Publication Date
JP2006031173A true JP2006031173A (en) 2006-02-02

Family

ID=35897480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004206323A Pending JP2006031173A (en) 2004-07-13 2004-07-13 Compilation device and method and its program

Country Status (1)

Country Link
JP (1) JP2006031173A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527968B2 (en) 2009-03-26 2013-09-03 Nec Corporation Translation device, translation method, and storage medium for program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527968B2 (en) 2009-03-26 2013-09-03 Nec Corporation Translation device, translation method, and storage medium for program

Similar Documents

Publication Publication Date Title
KR101279179B1 (en) Parallel program generation method
US8799881B2 (en) Program parallelization device and program product
US20100023798A1 (en) Error recovery and diagnosis for pushdown automata
JP2009532754A (en) Abstract execution model for continuation-based meta-runtime
US20090328016A1 (en) Generalized expression trees
JP2007179165A (en) Computer program and method for deriving stochastic performance evaluation model from ulm design model
JP2009048252A (en) Program conversion device and compiler program
JP2007304840A (en) Compilation method, debugging method, compilation program, and debugging program
Redding et al. Transforming object-oriented models to process-oriented models
Hauser et al. An incremental approach to the analysis and transformation of workflows using region trees
JP2008276735A (en) Program code converter and program code conversion method
JP2006031173A (en) Compilation device and method and its program
JPH08263299A (en) Method for converting program
JP2008305337A (en) Program converter, program conversion method, program, storage medium, debugging device, debugging method and program development system
EP3906470B1 (en) Techniques for scheduling instructions in compiling source code
KR101658792B1 (en) Computing system and method
CN114816672A (en) Virtual machine creation method and device, electronic equipment and storage medium
JP2007122187A (en) Program code generation device
WO2023007237A1 (en) System and method for batch and scheduler migration in an application environment migration
KR102046622B1 (en) Software service system based on workflow and computer program that performs each step of the system
WO2009128465A1 (en) Service change component generation system, method and recording medium
JP2007226358A (en) Application generation device, application generation method, and application generation program
US20130074037A1 (en) Analytic engine to parallelize serial code
US11789727B2 (en) Conversion apparatus, conversion method and program
JP2006079484A (en) Source program conversion program for system migration

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Effective date: 20070119

Free format text: JAPANESE INTERMEDIATE CODE: A7421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080313

A131 Notification of reasons for refusal

Effective date: 20080527

Free format text: JAPANESE INTERMEDIATE CODE: A131

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080606

A02 Decision of refusal

Effective date: 20080930

Free format text: JAPANESE INTERMEDIATE CODE: A02