JP4958481B2 - Webサービス実行方法及び情報処理装置 - Google Patents

Webサービス実行方法及び情報処理装置 Download PDF

Info

Publication number
JP4958481B2
JP4958481B2 JP2006153988A JP2006153988A JP4958481B2 JP 4958481 B2 JP4958481 B2 JP 4958481B2 JP 2006153988 A JP2006153988 A JP 2006153988A JP 2006153988 A JP2006153988 A JP 2006153988A JP 4958481 B2 JP4958481 B2 JP 4958481B2
Authority
JP
Japan
Prior art keywords
document
child
processing
description
service
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.)
Expired - Fee Related
Application number
JP2006153988A
Other languages
English (en)
Other versions
JP2007323443A (ja
JP2007323443A5 (ja
Inventor
晋吾 岩崎
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2006153988A priority Critical patent/JP4958481B2/ja
Priority to US11/753,773 priority patent/US8069234B2/en
Publication of JP2007323443A publication Critical patent/JP2007323443A/ja
Publication of JP2007323443A5 publication Critical patent/JP2007323443A5/ja
Application granted granted Critical
Publication of JP4958481B2 publication Critical patent/JP4958481B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Devices For Executing Special Programs (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、WEBサービスを順次実行させる為の記述を持つ構造化文書を読み込んで、その記述内容に従ってWEBサービスを実行する技術に関する。
一般に、WEBサービスを順次実行させる為の記述がなされた構造化文書(以下、順次処理記述文書という)を読み込み、その記述内容に従ってWEBサービスを順次実行させる技術が知られている。順次処理記述文書は、例えばBPEL(Business Process Execution Language)に従って記述されている。情報処理装置が順次処理記述文書を読み込んでWEBサービスを実行するための方法としては、文書をイベントストリームとして扱う逐次処理型のSAX(Simple API for XML)や、文書を木構造として扱うDOM(Document Object Model)等の技術が用いられる。
上記のようなWEBサービスに関しては、複数のWEBサービスの実行手順をいかにして効率的に生成するかを課題とした開発がなされている。特許文献1には、比較的小さな処理を行うための単位フローを柔軟に組み合わせて、全体として論理的な1つのWEBサービスフローを動的に組み立て実行させることが記載されている。又、特許文献2には、個々のサービスの手順が記述された複数の指示書から、どのような組み合わせで処理を実行させるかを指示する指示書を生成する技術が開示されている。
特開2004−361993号公報 特開2005−173892号公報
しかしながら、複数のWEBサービスを利用する手順が記述された順次処理記述文書を用いてWEBサービスを実行する段階に関しては、格別な工夫はなされていない。即ち、順次処理記述文書に基づいてWEBサービスを実行する際には、単に、上述したSAXやDOM等が利用されるのみである。
SAXに代表される、構造化文書の内容を上層部から順に読み込んでいく逐次処理では、読み込んだ文書内容の位置よりも前の位置にある文書内容を参照すること、即ち、文書内の前方参照等が困難であるという課題がある。即ち、順次処理記述文書の構造が複雑になるほどSAXによる対応が困難になる。これは、SAX手法のみを使用して前方参照を行うとなると、参照したい記述内容をどのように保存しておくか(データ保持の為の構造化設計)、またそれをどのように参照するか(I/F設計)等の設計を行わなければならいためである。又、DOMに代表される、順次処理記述文書に示される構造全体を構造モデルとしてメモリに展開してから処理を行う方法では、処理対象の文書内容が膨大になるとメモリ容量を圧迫してしまうという課題がある。
本発明は上記の課題に鑑みてなされたものであり、文書に従ってWEBサービスを実行するにおいて、逐次処理よりも柔軟に文書の記述に対応でき、構造モデルとして展開する手法よりも少ないメモリでWEBサービスの実行を可能にすることを目的とする。
上記の目的を達成するための本発明の一態様によるWEBサービス実行方法は、
複数のWEBサービスを順次呼び出すための文書に記述された処理を、当該文書の記述に従って実行するWEBサービス実行方法であって、
分割手段が、実行すべき処理を記述した文書を逐次的に処理することにより、該文書からWEBサービスの呼び出し処理に関連する複数の部分を抽出し、抽出された複数の部分に基づいて複数の子文書を生成し、前記実行すべき処理を記述した文書において前記抽出された複数の部分のそれぞれ対応する子文書の実行指示の記述に置換して親文書を生成する分割工程と、
処理手段が、前記親文書を構造モデル化してメモリに展開して前記親文書に記述された処理を実行し、該親文書に記述された処理を実行していく過程で子文書の実行指示が検出されると、前記複数の子文書のうちの対応する子文書を構造モデル化してメモリ上に展開し、前記対応する子文書に記述された処理を実行することにより当該子文書に対応するWEBサービスを呼び出す処理工程と、
削除手段が、前記メモリ上に展開された、実行済みの前記対応する子文書の構造モデルを削除する削除工程とを備える。
本発明によれば、文書に従ってWEBサービスを実行するにおいて、逐次処理よりも柔軟に文書の記述に対応でき、構造モデルとして展開する手法よりも少ないメモリでWEBサービスを実行することが可能となる。
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
まず、図1を参照して、WEBサービスを順次呼び出して処理をさせるための構成の概略を説明する。
図1において、WEBサービスTOP101は、順次処理の中心的な役割を担うWEBサービスである。WEBサービスTOP101は、クライアント102から順次処理の指示を受けると、WEBサービスの実行手順を記述した順次処理記述文書103を読み込む。そして、WEBサービスTOP101は、順次処理装置104を利用して、順次処理記述文書103に記述してある通りに、例えば、WEBサービスA105、B106、C107(以下、WEBサービスA,B,Cと記述する)を呼び出して処理をさせていく。WEBサービスA〜Cのそれぞれは、サービスの所在地(アドレス)、サービスを呼び出す為のインターフェース(I/F)を記述したI/F記述文書108〜110(以下、I/F記述文書A〜Cと記述する)を有する。尚、I/F記述文書は、例えば、例えばWSDL(Web Service Description Language)で記述される。WEBサービスTOP101は予めこれらのI/F記述文書を読み込み、他の呼び出すWEBサービスの情報を保持している。
クライアント102は、順次処理記述文書103の内容を実行させるリクエストを発行し、処理対象となるメッセージを送る(111)。WEBサービスTOP101の順次処理装置104は、メッセージに従って実行すべき順次処理記述文書103を取得し、順次処理記述文書103の全体構造及び情報等を読み込み、全体の記述内容を解釈する。そして、順次処理装置104は解釈された記述内容に従ってWEBサービスを実行させていく。順次処理記述文書103がWEBサービスA,B,Cの順に実行するよう記述されていたとすると、順次処理装置104は以下のように動作する。
まず、順次処理装置104は、クライアント102から受け取ったメッセージをWEBサービスA105に送り(112)、WEBサービスAでメッセージを処理させ、その処理結果のメッセージを受け取る(113)。同様にして、114〜117に示すように、WEBサービスB、Cを順番に呼び出してメッセージを処理させる。例えば、WEBサービスB106を実行させるために、それまでの処理結果であるWEBサービスA105のレスポンスを用いることもできる。最後のサービスであるWEBサービスC107からのレスポンス(117)によって取得された処理結果のメッセージをクライアント102に返し(118)、クライアントからのリクエストに対する処理が完結する。
上記の処理において、順次処理装置104が例えばDOMに従って順次処理記述文書を処理する場合は、順次処理装置104は内部のメモリに当該順次処理記述文書の全体構造及び情報を保持してから処理を実行する。このため、順次処理記述文書の記述内容が膨大であると、順次処理装置104内のメモリ容量が圧迫されてしまう。この結果、WEBサービスTOP101となる機器のリソースが十分でない場合等においては対応しきれなくなるなど、様々な不具合が生じる可能性がある。一方、SAXに従った逐次処理を用いれば、メモリリソースの課題は解消できる。しかしながら、当該順次処理記述文書が、WEBサービスの実行に際して前方参照を含む場合、SAXに従った逐次処理では対応が困難である。そこで、本実施形態の順次処理装置104は、以下で詳述するように、順次処理記述文書に記述されている順次処理をWEBサービス単位で分割し、処理していく。
図2は、順次処理記述文書103のデータ構成例及び具体的な記述例を示した図である。記述構成例201は、順次処理記述文書103におけるデータ構成例を示している。記述構成例201は202〜212の記述部分を有する。記述部分202には呼び出し先WEBサービスのI/F情報が記述される。記述部分203には、各WEBサービスに対応したメッセージ変数の型情報が記述される。記述部分204には、クライアントからリクエストメッセージを受信できるようにする為に必要な情報が記述される。
記述部分205には、メッセージの中身からデータを抜き出して、他のメッセージ型へマッピングする等のメッセージ変数操作が記述される。記述部分206には、WEBサービスAを呼び出すために必要な情報が記述される。従って、記述部分205に記述されるメッセージ変換操作は、WEBサービスAに関連する部分を抜き出し、これをWEBサービスAに対応したメッセージ型へマッピングするメッセージ変換操作となる。記述部分207〜210には、WEBサービスAと同様に、WEBサービスB、Cに対応したメッセージ変換操作とWEBサービスB、Cを呼び出すために必要な情報が記述される。
記述部分211には、各WEBサービスを呼び出して処理が行われた最終結果のレスポンスメッセージをクライアントのメッセージ型へマッピングするメッセージ変換操作が記述される。そして、記述部分212には、メッセージ変換操作されたレスポンスメッセージをクライアントへ返信するために必要な情報が記述される。
記述構成例201に基づく具体的な順次処理記述文書の例を213(以下、順次処理記述文書13という)に示す。本例の順次処理記述文書213は、WSBPEL(Web Services Business Process Execution Language)というWEBサービスの処理フローをXML(eXtensible Markup Language)文書で記述するための標準仕様になっている方式で記述されている。以下、記述構成例201に示したデータ構成と順次処理記述文書213を比較する。
図2において、記述部分214は記述部分202に対応し、呼び出し先のWEBサービスに関する情報、例えばWSDL等のI/F情報を特定するためのネームスペース等の情報が記述されている。記述部分215は記述部分203に対応し、メッセージ変数の型情報が〈variables〉タグで記述されている。記述部分215では呼び出し先のWEBサービスに対応するWSDLに記述されているメッセージの型情報などの場所を指し示す記述等がされている。順次処理を実行するときは、この部分の情報を参照しながら処理を行っていく。記述部分216は記述部分204に対応し、クライアントからのリクエストメッセージを受信するために必要な情報が〈receive〉タグで記述されている。
記述部分217は記述部分205に対応し、メッセージの中身からデータを抜き出して、他のメッセージ型へマッピングする、或は、メッセージをそのまま異なる変数に格納する等、メッセージ変数の操作が〈assign〉等のタグで記述されている。記述部分218は記述部分206に対応し、WEBサービスAを呼び出す為に必要な情報、例えば、メソッド名やメッセージ変数への参照などが〈invoke〉タグで記述されている。記述部分219は記述部分211に対応し、記述部分217と同様な形態でメッセージ変数の操作が〈assign〉等のタグで記述されている。記述部分220は記述部分212に対応し、各WEBサービスを呼び出して処理が行われた最終結果のレスポンスメッセージをクライアントへ返信するために必要な情報が〈reply〉タグで記述されている。
以上のように、WEBサービスを順次呼び出しながら処理をさせる為のフローを、XML文書で記述することが可能である。そして、このXML文書を上層部からパースしていき、文書内容を解釈していくことで、記述通りの順番にWEBサービスを呼び出し、実行させることが可能となる。尚、順次処理記述文書213はあくまでもWSBPEL文書の具体例なので、本実施形態では、記述構成例201のデータ構成例を利用して、処理の内容を説明していくことにする。
図3は、本実施形態による情報処理装置である順次処理装置104の全体構成を示すブロック図である。以下、図3を参照してクライアントから受信したリクエストに応じた処理の流れを説明する。尚、順序処理装置104がクライアントから受け付けるリクエストには、以下の2つがある。
(i)順次処理記述文書(103)及びWEBサービス用のI/F記述文書(108〜110)の登録/削除のリクエスト、
(ii)順次処理の実行のリクエスト、である。
まず順次処理記述文書及びWEBサービス用のI/F記述文書の登録、削除をクライアントからリクエストされた場合の処理を説明する。
図3において、登録処理部302は順次処理記述文書103及びI/F記述文書108〜110をファイル格納領域306へ登録する処理を行なう。登録処理部302は、クライアント102から登録リクエストを受け付けると、順次処理記述文書(例えばWSBPEL)103及びI/F記述文書(例えばWSDL)108〜110が記述されたファイルを受信する(309)。そして、ファイル格納領域306に、受信した順次処理記述文書103及びI/F記述文書108〜110を登録する(310)。
又、受信された順次処理記述文書103は、登録処理部302から分割処理部303へも提供される(311)。分割処理部303は、提供された順次処理記述文書の記述内容を、外部WEBサービス(図1の例ではWEBサービスA,B,C)を呼び出す部分の単位で抽出する。そして、分割処理部303は、抽出した部分を子文書とし、順次処理記述文書103を親文書と親文書から呼び出される子文書の形態に分割し、それら親文書と子文書をファイル格納領域306に登録(312)する。更に、分割処理部303は、登録した順次処理記述文書の処理内容を開始するためのリクエストを受け付けるために、サービス化処理部305に順次処理記述文書の内容をサービス化する指示を出す(313)。この指示を受け付けたサービス化処理部305は、対象となる親の順次処理記述文書と、I/F記述文書をファイル格納領域306から取得する。詳細は、後述する。そして、内容をそれぞれパースして、オブジェクトとしてまとめ、メモリ領域307に書き込む(315)。尚、本実施形態では、DOM(Document Object Model)仕様に従って記述文書をサービス化し、サービス化情報(構造モデル)がメモリ領域307に展開されることになる。順次処理部304は、メモリ領域307から情報を読み込む(316)ことで、リクエストをいつでも受け付けることが可能となる。尚、上記ではWEBサービス毎に子文書を作成したが、連続する複数のWEBサービスを含む子文書(例えば、WEBサービスAとB)を作成するようにしてもよい。要は、WEBサービスの呼び出しに関連する部分(例えばメッセージ変数操作とWEBサービスの呼び出しの記述)に基づいて子文書を作成することである。
次に、順次処理の実行がクライアント102からリクエストされた場合の処理を説明する。クライアント102から順次処理の実行リクエストが順次処理部304に受信されると(317)、順次処理部304は、メモリ領域307に格納された、当該リクエストに対応する順次処理(親の順次処理)を実行する。そして、親の順次処理が子の順次処理を呼び出す時に、順次処理部304はサービス化処理部305に呼び出すべき子の順次処理に関してのサービス化を指示する(318)。指示を受けたサービス化処理部305は、指定された子の順次処理に関して必要な順次処理記述文書及びI/F記述文書を、ファイル格納領域306から取得する(314)。そして、サービス化処理部305は、取得した文書をそれぞれパースし、オブジェクトとしてまとめ、メモリ領域307に書き込む(315)。こうして、子のサービスとしてリクエストを受け付けられる状態にする。
順次処理部304から指示された子の順次処理に関してサービス化処理部305によるサービス化が完了すると、順次処理部304は、サービス化された子にリクエストメッセージを送る。この結果、子の処理が行われ、順次処理部304はその処理結果であるレスポンスメッセージを受け取る。順次処理部304はレスポンスメッセージを受け取ると、サービス化処理部305に、メモリ領域307内に書き込まれている呼び出した子の情報を削除する指示を出す。サービス化処理部305は、指示された子に関する情報をメモリ領域307から削除し、メモリを解放する。以上のような、子のサービス化及び子の削除の処理を親が子を呼び出す度に行いながら処理を実行し、最終的な処理結果であるレスポンスメッセージをクライアント102に返すことで一連の処理が終了する。
図4は、上記の分割処理部303における分割処理をより具体的に説明するための図である。図4において、情報401は順次処理を実行させていくために必要な情報であり、上述した順次処理記述文書402やI/F記述文書403〜406を含む。登録処理部302は情報401をファイル格納領域306へ格納することになる。順次処理記述文書402は、図2において示した順次処理記述文書201に対応している。又、I/F記述文書403は順次処理WEBサービス用のI/F記述文書(例えばWSDL)であり、順次処理記述文書に記述された順次処理をWEBサービス化するために必要な文書である。I/F記述文書404〜406は、それぞれ順次処理の実行中に呼び出されるWEBサービスA〜C用のI/F記述文書である。I/F記述文書404〜406は、I/F記述文書108〜110に対応する。尚、順次処理記述文書402は記述内容の構成が示されているが、図2により上述したように、実際にはWSBPELのようなXML文書で記述されており、要素のタグや属性によって文書内のどこにどのような情報が記述されているかを判断することができる。
さて、分割処理部303は、順次処理記述文書402を例えばSAX手法によってパースしていく。そして、外部WEBサービスの呼び出し部分とその直前に記述されているメッセージ変数操作部分(407〜409)をそれぞれ1つの「子の順次処理記述」として抽出し、抽出した部分を独立してサービス化できる部分として判断し、元の文書から分割する。即ち、順次処理記述文書402は、WEBサービスの呼び出し数に応じた数分の「子のサービス」に対応した「子の順次処理記述」と、それら「子のサービス」の呼び出しを含む「親の順次処理記述」に分割される。
情報410は、情報401に含まれる順次処理記述文書402に対して分割処理を行なった後の状態を示している。親の順次処理記述文書411は、順次処理記述文書402において、子の順次処理記述文書になる記述部分(子の順次処理記述)の内容を子のサービスを呼び出す為の記述(412〜414)に置き換えたものとなる。子サービスAに関する情報415は、子の順次処理記述文書416と、当該文書を子サービスAとしてWEBサービス化するための子サービスA用I/F記述文書417と、WEBサービスAを呼び出すためのWEBサービスA用I/F記述文書404等を含む。
子の順次処理記述文書416では、元の順次処理記述文書402内に存在していた記述部分407の記述内容が、子の順次処理記述文書416の記述部分421、422に記述される。そしてこれらの記述を上下に挟む形で、記述部分420と423が設けられる。記述部分420には、親からのリクエストメッセージを受信するために必要な情報が記述される。又、記述部分423には、当該子サービスによる処理結果のレスポンスメッセージを親へ返すために必要な情報が記述される。更に、記述部分418には、順次処理記述部402に記述されている「呼び出し先WEBサービスの情報」から抽出されたWEBサービスAに必要な情報(WEBサービスAに関する呼び出し先WEBサービスの情報)が記述される。記述部分419には、順次処理記述部402の「メッセージ変数の型情報」から当該子サービスAで必要な情報を抽出して記述したメッセージ変数の型情報が記述される。尚、子サービスA用I/F記述文書417は、順次処理記述文書402から子サービスAに必要な情報を抽出し、それらの内容を利用して子サービスAをWEBサービスとして呼び出す為に、新たに自動的に作成(例えばWSDLとして)される。子サービスAに関する情報415と同様に、子サービスB、子サービスCに関する情報424,425が生成される。
サービス化処理部305は、例えば順次処理部304からの順次記述文書402の実行指示に応じて、I/F記述文書403と親の順次処理記述文書411に基づいてサービス化を実行し、メモリ307に親サービスを生成する。順次処理部304は親サービスを実行していく過程で、子サービスの呼び出し(412〜414)を実行する。子サービスの呼び出しにおいて、順次処理部304は、サービス化処理部305に対応する子サービスのサービス化を指示する。サービス化処理部305は、順次処理部304から例えば子サービスAのサービス化の指示を受信すると、ファイル格納領域306から情報415を読み込み、内容をパースして、オブジェクトとして(サービス化して)メモリ307に格納する。又、順次処理部304から削除指示を受信した場合は、例えば、情報415に関してサービス化した内容をメモリ307から削除する。
図5は、順次処理部304の処理内容を示すフローチャートである。ステップS501において、クライアント102から順次処理実行のリクエストメッセージを受信(317)すると、ステップS502において、当該リクエストに対応する順次処理をメモリ領域307に書き込まれている情報(親サービス)を用いて(316)実行する。
親サービスの順次処理を実行していく過程で子呼び出し処理の有無が判断される(ステップS503)。子サービスを呼び出す処理が有れば(子文書の実行指示が検出されると)、ステップS503からステップS504へ進み、サービス化処理部305に対して、呼び出し先の子の順次処理記述文書をサービス化するべく指示を出す。例えばサービスA呼び出しを実行する場合は、情報415を指定してサービス化を指示する。呼び出し先の子サービスがサービス化され、サービス化情報がメモリ領域307に展開されると、ステップS505において、当該子サービスに対して処理の実行を依頼するためのリクエストメッセージを送信する。その後、呼び出し先の子サービスでWEBサービスが実行され、その処理結果が当該子サービスからレスポンスメッセージとして親サービスに返信される。順次処理部304は、ステップS506においてレスポンスメッセージを受信する。レスポンスメッセージ、即ち処理結果が受信されると、当該呼び出し先の子サービスは不要となるので、ステップS507において、サービス化処理部305に対して当該子サービス(呼び出された子サービス)に関する情報の削除を指示する。サービス化処理部305は、指定された子サービスのサービス化情報をメモリ307から削除する。なお、この削除は、次の子サービスの展開前に実行しても良い。すなわち、他の実施形態では、子サービスの展開前に、以前実行した子サービス情報がメモリ307上に残っていたら、その以前の子サービス情報を削除する。その後、ステップS503に戻り、次の子呼び出し処理の有無を判断する。
以上のように、順序処理(親サービス)の実行において、呼び出すべき子サービスの数だけ上記のステップS504〜S507の処理が繰り返される。例えば、順次処理記述文書402(=親の順次処理記述文書411)の場合、ステップS504〜S507の処理がWEBサービスA,B,Cの3回繰り返されることになる。そして、ステップS503で呼び出すべき子サービスが存在しないと判断されると、処理はステップS508へ進む。ステップS508では、リクエストを発行したクライアント102へ最終処理結果レスポンスメッセージを送信して、本処理を終了する。
図6は、サービス化処理部305の処理内容を示すフローチャートである。ステップS601において、サービス化処理部305は、子サービスの登録(サービス化)の指示、或は、子サービスに関するサービス化情報の削除の指示を受信する。ステップS602では、ステップS601で受信した指示が登録の指示か削除の指示かを判断する。登録の指示であった場合、処理はステップS602からステップS603へ進む。ステップS603において、サービス化処理部305は、ファイル格納領域306から登録対象となる子サービスに関する情報(本実施形態では、情報415,424,425のいずれか)を取得する。尚、対象となる子サービスの識別は、順次処理部304からの子サービスの登録の指示に含まれている。上述したように、サービスに関する情報(415)には、順次処理記述文書(416)及びI/F記述文書(404,417)のファイルが含まれている。そして、ステップS604において、順次処理記述文書及びI/F記述文書の内容をDOM手法によってサービス化し、構造を保持したまま子サービスとしてメモリ領域内に格納する。そして、WEBサービスとしてリクエストを受け付けられる状態に子サービスを設定する。一方、ステップS602において削除の指示と判断された場合は、ステップS605へ進み、メモリ領域307から対象となる情報(子サービス)を削除してメモリを解放する。尚、削除対象となるサービス化情報の識別は、順次処理部304からの削除指示に含まれている。以上のようにして、サービス化及び削除処理が行われる。
以上、本実施形態による順次処理装置104の内部処理(登録処理部302、分割処理部303、順次処理部304、サービス化処理部305)について具体的に説明した。次に、上述のような順次処理装置104の適用例を図7を用いて説明する。図7は、WEBサービスから取得したデータを、まとめてレイアウトし、レンダリングし、紙に印刷出力することが可能な複写機の内部構成を示したブロック図である。
図7において、複写機701はコピー、スキャン、プリントなどの処理を行うことができ、順次処理装置702(図1の順次処理装置104と同様の機能、構成を有する)を搭載している。複写機70に付随するUI画面703(例えば液晶等)がクライアント102としての役割を果たす。このUI画面703から順次処理開始のリクエストが出力(704)されると、順次処理装置702は、メモリ領域705(ファイル格納領域306及びメモリ領域307に対応する)からそのリクエストに対応する順次処理記述文書を取得する。そして、順次処理記述文書の内容に従って、例えば、WEBサービスA〜C(706〜708)を順に呼び出す処理を行い、最終的な処理結果データをメモリ領域705に格納し、データマージ処理部709に処理の実行指示を出す。ここで、順次処理装置702は、実行すべきWEBサービスを単位として順次処理記述文書を分割しており、子サービスに対応するサービス化情報は、実行に応じてメモリ領域705に展開され、実行後に消去される。
指示を受けたデータマージ処理部709は、メモリ領域705内の上記処理結果データを、次の処理を行うレイアウト処理部710が解釈できる形態のデータにまとめ、まとめたデータをメモリ領域705に格納する。レイアウト処理部710は、データマージ処理部709によって格納されたデータを用いてレイアウト処理を行い、その処理結果をメモリ領域705に格納する。レンダリング処理部711は、レイアウト処理されたデータに基づいてレンダリングを行い、レンダリング結果をメモリ領域705に格納する。プリント出力処理部712は、レンダリング結果を紙に印刷し、得られた印刷結果713を出力する。その後、WEBサービス順次処理分割処理部702は、処理終了レスポンスをUI画面703(クライアント)へ返す(714)。
以上のようにWEBサービスから取得したデータを複写機内でまとめて印刷する系において、順次処理装置702を用いることにより、以下のような効果が得られる。即ち、
(i)それぞれのWEBサービスに対応したモジュールを作成することなく、使用する順次処理記述文書を切り替えるだけでデータ取得先のWEBサービスを簡単に切り替えることができる、
(ii)順次処理装置702以外の処理系でもメモリ領域705を使用することから利用可能なメモリ容量が制限されるような場合においても、順次処理記述文書が分割実行されるので、メモリ使用量を最小限に押さえることができる。このため、WEBサービスを利用する構成を少リソース機器へ搭載することが可能となる。
以上説明したように、本実施形態によれば、順次処理記述文書がWEBサービスの実行に対応した子サービスに対応する文書と、クライアントと通信したり、子サービスを順次実行したりするための親サービスに対応する文書とに分割される。即ち、複数のWEBサービスを順番に呼び出す為に記述された順次処理記述文書(例えばBPEL文書)を読み込み、逐次処理型の手法(例えばSAX)を用いて、文書内のWEBサービスを呼び出す部分と、その部分に関連する変数の操作の部分を抽出する。そして、抽出された部分を1つにまとめて子の順次処理記述文書とする。このような、子の順次処理記述文書がWEBサービス毎に生成される。又、元の順次処理記述文書では、抽出された部分を子の順次処理記述文書による処理を実行させるための記述に置換され、子の順次処理記述文書を順番に呼び出す親の順次処理記述文書が作成される。
そして、処理の実行においては、親サービスと実行対象の子サービスのみがメモリに展開されるように制御される。即ち、実行すべきWEBサービスを実行するのに必要な変数操作の部分と当該WEBサービスを呼び出す部分の情報を子サービスとしてメモリに展開し、不必要になった子サービスをメモリから削除する。より具体的には、親の文書をまずDOM展開して親サービスとして登録しておき、実行指示によって親の内容を実行させる。そして、親サービスから子サービスを呼び出す時点で、その対象となる子の文書をDOM展開してサービスとして登録し、子サービスにメッセージを送り、結果を受け取ったら子サービスのサービス化情報を削除する。このように、子サービスの為にDOM展開した内容をメモリから解放させながら(子サービスのサービス化情報を削除しながら)順次処理を行う。
以上のように、本実施形態は、逐次型処理と構造モデル化による処理の両者の手法を組み合わせた処理を実現させることにより、メモリを解放しながら順次処理を実行させることを可能としている。例えば、順次処理記述文書内の変数操作とWEBサービスを呼び出す処理において、処理を実行させる時点で必要な情報だけをメモリ展開し、不必要になったら削除してメモリを解放していきながら実行させることが可能となる。この結果、リソースの少ない機器で実行させる場合でも、容量が大きい順次処理記述文書の処理を読み込んで実行することができ、様々な少リソースの機器に本実施形態のWEBサービス実行装置を搭載可能となる。又、実行すべきWEBサービスを単位として構造モデルがメモリに展開されるので、順次記述文書に前方参照が存在しても、これに対応できる。
<他の実施形態>
本発明の目的は前述した実施例の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUまたはMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現される場合に限らない。すなわち、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も本発明に含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
実施形態による順次処理装置の概要を説明する図である。 順次処理記述文書を説明する図である。 実施形態の順次処理装置の詳細な構成を示すブロック図である。 実施形態の順次処理装置の分割処理部による順次処理記述文書の分割処理を説明する図である。 実施形態の順次処理装置における順次処理部の処理を説明するフローチャートである。 実施形態の順次処理装置におけるサービス化処理部の処理を説明するフローチャートである。 実施形態の順次処理装置が適用された複写機の構成例を示すブロック図である。

Claims (3)

  1. 複数のWEBサービスを順次呼び出すための文書に記述された処理を、当該文書の記述に従って実行するWEBサービス実行方法であって、
    分割手段が、実行すべき処理を記述した文書を逐次的に処理することにより、該文書からWEBサービスの呼び出し処理に関連する複数の部分を抽出し、抽出された複数の部分に基づいて複数の子文書を生成し、前記実行すべき処理を記述した文書において前記抽出された複数の部分のそれぞれ対応する子文書の実行指示の記述に置換して親文書を生成する分割工程と、
    処理手段が、前記親文書を構造モデル化してメモリに展開して前記親文書に記述された処理を実行し、該親文書に記述された処理を実行していく過程で子文書の実行指示が検出されると、前記複数の子文書のうちの対応する子文書を構造モデル化してメモリ上に展開し、前記対応する子文書に記述された処理を実行することにより当該子文書に対応するWEBサービスを呼び出す処理工程と、
    削除手段が、前記メモリ上に展開された、実行済みの前記対応する子文書の構造モデルを削除する削除工程とを備えることを特徴とするWEBサービス実行方法。
  2. 複数のWEBサービスを順次呼び出すための文書に記述された処理を、当該文書の記述に従って実行する情報処理装置であって、
    実行すべき処理を記述した文書を逐次的に処理することにより、該文書からWEBサービスの呼び出し処理に関連する複数の部分を抽出し、抽出された複数の部分に基づいて複数の子文書を生成し、前記実行すべき処理を記述した文書において前記抽出された複数の部分のそれぞれ対応する子文書の実行指示の記述に置換して親文書を生成する分割手段と、
    前記親文書を構造モデル化してメモリに展開して前記親文書に記述された処理を実行し、該親文書に記述された処理を実行していく過程で子文書の実行指示が検出されると、前記複数の子文書のうちの対応する子文書を構造モデル化してメモリ上に展開し、前記対応する子文書に記述された処理を実行することにより当該子文書に対応するWEBサービスを呼び出す処理手段と、
    前記メモリ上に展開された、実行済みの前記対応する子文書の構造モデルを削除する削除手段とを備えることを特徴とする情報処理装置。
  3. 複数のWEBサービスを順次呼び出すための文書に記述された処理を、当該文書の記述に従って実行する手順をコンピュータに実行させるためのプログラムであって、
    実行すべき処理を記述した文書を逐次的に処理することにより、該文書からWEBサービスの呼び出し処理に関連する複数の部分を抽出し、抽出された複数の部分に基づいて複数の子文書を生成し、前記実行すべき処理を記述した文書において前記抽出された複数の部分のそれぞれ対応する子文書の実行指示の記述に置換して親文書を生成する分割手順と、
    前記親文書を構造モデル化してメモリに展開して前記親文書に記述された処理を実行し、該親文書に記述された処理を実行していく過程で子文書の実行指示が検出されると、前記複数の子文書のうちの対応する子文書を構造モデル化してメモリ上に展開し、前記対応する子文書に記述された処理を実行することにより当該子文書に対応するWEBサービスを呼び出す処理手順と、
    前記メモリ上に展開された、実行済みの前記対応する子文書の構造モデルを削除する削除手順とをコンピュータに実行させるためのプログラム。
JP2006153988A 2006-06-01 2006-06-01 Webサービス実行方法及び情報処理装置 Expired - Fee Related JP4958481B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006153988A JP4958481B2 (ja) 2006-06-01 2006-06-01 Webサービス実行方法及び情報処理装置
US11/753,773 US8069234B2 (en) 2006-06-01 2007-05-25 Web service execution method, processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006153988A JP4958481B2 (ja) 2006-06-01 2006-06-01 Webサービス実行方法及び情報処理装置

Publications (3)

Publication Number Publication Date
JP2007323443A JP2007323443A (ja) 2007-12-13
JP2007323443A5 JP2007323443A5 (ja) 2009-07-09
JP4958481B2 true JP4958481B2 (ja) 2012-06-20

Family

ID=38791594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006153988A Expired - Fee Related JP4958481B2 (ja) 2006-06-01 2006-06-01 Webサービス実行方法及び情報処理装置

Country Status (2)

Country Link
US (1) US8069234B2 (ja)
JP (1) JP4958481B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5142773B2 (ja) * 2008-03-13 2013-02-13 キヤノン株式会社 メッセージ生成処理方法及びメッセージ生成処理装置
JP2009301538A (ja) * 2008-05-12 2009-12-24 Canon Inc サービスフロー処理装置及び方法
JP5224964B2 (ja) * 2008-07-31 2013-07-03 キヤノン株式会社 受信装置の受信方法及び受信装置並びにプログラム
JP2010218344A (ja) * 2009-03-18 2010-09-30 Hitachi Ltd サービス連携装置、プログラム、サービス連携方法及びサービス提供システム
CN104899247B (zh) * 2015-04-20 2018-09-25 广州华多网络科技有限公司 一种信息订制方法和系统
CN111190727B (zh) * 2019-11-19 2023-06-09 腾讯科技(深圳)有限公司 内存的异步析构方法、装置、计算机设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4045400B2 (ja) * 2001-08-24 2008-02-13 富士ゼロックス株式会社 検索装置及び検索方法
JP3984129B2 (ja) * 2001-09-10 2007-10-03 富士通株式会社 構造化文書処理システム
US20040143577A1 (en) * 2003-01-22 2004-07-22 International Business Machines Corporation System and method for hierarchically invoking re-entrant methods on XML objects
JP3947136B2 (ja) * 2003-05-30 2007-07-18 株式会社東芝 ウェブサービスシステム、フロー展開支援装置およびフロー展開支援プログラム
JP4449398B2 (ja) * 2003-10-03 2010-04-14 セイコーエプソン株式会社 印刷装置および印刷方法並びに印刷装置用のプログラム
US7533383B2 (en) * 2003-11-12 2009-05-12 International Business Machines Corporation Method, system, and apparatus for scheduling pattern based web services
JP2005173892A (ja) * 2003-12-10 2005-06-30 Fuji Xerox Co Ltd サービス連携処理の実行指示方法及びサービス連携処理システム
JP2005234837A (ja) * 2004-02-19 2005-09-02 Fujitsu Ltd 構造化文書処理方法、構造化文書処理システム及びそのプログラム
JP4599950B2 (ja) * 2004-09-14 2010-12-15 セイコーエプソン株式会社 処理装置、及び処理方法
US7590988B2 (en) * 2005-03-08 2009-09-15 Microsoft Corporation Dynamic service generation for legacy components
US7231267B2 (en) * 2005-07-12 2007-06-12 International Business Machines Corporation Implementing production processes

Also Published As

Publication number Publication date
JP2007323443A (ja) 2007-12-13
US20070282857A1 (en) 2007-12-06
US8069234B2 (en) 2011-11-29

Similar Documents

Publication Publication Date Title
KR101221940B1 (ko) 화상처리장치, 화상처리방법, 및 그 프로그램을 기억한 매체
KR20090063636A (ko) Api 서비스 방법과 api 매쉬업 생성 방법, 장치 및기록매체
JP5621336B2 (ja) 情報処理装置、および印刷制御プログラム
CN110275683A (zh) 控制方法和信息处理装置
US8069234B2 (en) Web service execution method, processing method and apparatus
JP2002351625A (ja) プリントシステム及び情報処理装置
JP2010157099A (ja) 印刷制御装置、印刷制御方法、及びコンピュータプログラム
JP2013008172A (ja) フォーマット変換装置、方法、及びプログラム
KR20130066995A (ko) Xml을 이용한 전자문서 레이아웃 편집 방법 및 장치
JP5605228B2 (ja) 画像処理装置及びプログラム
JP4677355B2 (ja) Webサービス装置及び順次処理移譲方法
JP2004362343A (ja) ソースコード変換装置、ソースコード変換方法、およびプログラム
JP2003316543A (ja) 情報処理方法、情報処理装置及びプログラム
JP4845287B2 (ja) フォーム編集装置及び方法及びコンピュータ読取り可能なプログラムが格納された記憶媒体
JP2004145736A (ja) 文字認識装置および文字認識データ出力方法およびプログラムおよび記録媒体
JP2006268828A (ja) 文書管理装置及び方法、プログラム、並びに文書管理システム
US20180196627A1 (en) Data processing apparatus, control method, and storage medium
US20090287733A1 (en) Method for preparing prepress image data
US7620649B2 (en) Method, apparatus, and program for data management
JP4350343B2 (ja) 印刷制御装置、印刷制御方法、プログラム及び記憶媒体
JP5235349B2 (ja) フロー記述文書処理装置、フロー記述文書処理方法及びプログラム
JP4994832B2 (ja) 情報処理装置および情報処理方法およびプログラムおよび記録媒体
JP2000181905A (ja) 電子文書ファイルの作成装置及び記録媒体
JP4401594B2 (ja) 画像処理装置、画像処理方法、プログラム、及び記憶媒体並びに画像形成システム
JP2003087476A (ja) 情報処理システム、方法及び装置、プログラム並びに記憶媒体

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090521

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110603

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110726

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: 20120316

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: 20120319

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

Free format text: PAYMENT UNTIL: 20150330

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4958481

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees