JP2009301538A - サービスフロー処理装置及び方法 - Google Patents

サービスフロー処理装置及び方法 Download PDF

Info

Publication number
JP2009301538A
JP2009301538A JP2009089583A JP2009089583A JP2009301538A JP 2009301538 A JP2009301538 A JP 2009301538A JP 2009089583 A JP2009089583 A JP 2009089583A JP 2009089583 A JP2009089583 A JP 2009089583A JP 2009301538 A JP2009301538 A JP 2009301538A
Authority
JP
Japan
Prior art keywords
service flow
processing
service
message
web 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.)
Withdrawn
Application number
JP2009089583A
Other languages
English (en)
Other versions
JP2009301538A5 (ja
Inventor
Shingo Iwasaki
晋吾 岩崎
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 JP2009089583A priority Critical patent/JP2009301538A/ja
Publication of JP2009301538A publication Critical patent/JP2009301538A/ja
Publication of JP2009301538A5 publication Critical patent/JP2009301538A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Educational Administration (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】フロー処理を他のサービスフロー処理装置に移譲可能なフロー処理装置を提供する。
【解決手段】サービスフロー処理装置は、サービスフロー記述文書に記述された処理に従ってネットワーク上のサービスからメッセージを受信する。そして、受信したメッセージを他のサービスフロー処理装置が処理する場合、受信したメッセージを用いて行われる処理の記述をサービスフロー記述文書から抽出する。サービスフロー処理装置は、抽出された処理の記述を含むサービス部分フロー記述文書と受信されたメッセージとを他のサービスフロー処理装置に送信する。
【選択図】図1

Description

本発明は、サービスフロー処理装置及び方法に関する。
従来、WEBサービスを順次実行させるためのWEBサービスフロー記述文書(構造化文書)を読み込み、その記述内容に従ってWEBサービスを順次実行させる技術が知られている。WEBサービスフロー記述文書は、例えばWSBPEL(Web Service Business Process Execution Language)に従って記述されている。
WEBサービスフロー記述文書の記述内容に応じて不特定多数のWEBサービスを順番に呼び出す際、フロー処理装置は以下の流れで処理を進めて実行させていくのが一般的である。
SOAPメッセージをWEBサービスへ送信し、WEBサービスからの応答をSOAPメッセージで受信し、受信したSOAPメッセージからデータを抽出、或いはメッセージの加工などの処理を行う。この処理結果をSOAPメッセージとして、次のWEBサービスに対して送信する。
このようなWEBサービスを実行手順に基づいて順次実行させる処理に関しては、複数のWEBサービスの実行手順を如何にして効率的に生成するかを課題とした開発がなされている。
特許文献1には、比較的小さな処理を行うための単位フローを柔軟に組み合わせて、全体として論理的な1つのWEBサービスフローを動的に組み立て実行させることが記載されている。また、特許文献2には、個々のサービスの手順が記述された複数の指示書から、どのような組み合わせで処理を実行させるかを指示する指示書を生成する技術が開示されている。
特開2004−361993号公報 特開2005−173892号公報
しかしながら、上記従来の技術では、フロー処理装置から呼び出したWEBサービスの応答として大容量のSOAPメッセージが返信される可能性がある。また、実際に大容量のSOAPメッセージが返信された場合、そのSOAPメッセージをフロー処理装置内部で抱え込み、データの抽出、加工などを行うことになる。つまり、処理できる資源のサイズを超える可能性があり、その時点で処理不能となり、WEBサービスフロー記述文書に記述されたそれ以降の処理を進めることが困難であるという問題があった。大容量のSOAPメッセージが返信された場合にも、処理の内容によっては、処理不能になったり、処理に長時間かかったりすることが考えられる。
逆に、WEBサービスフロー記述文書の中に条件式などを多用することで、起こり得る様々な場合に備えて特別な処理内容を記述しておくことは、WEBサービスフロー記述文書自体が肥大化かつ複雑になってしまうという問題もあった。
本発明は、フロー処理を他のサービスフロー処理装置に対して移譲することができるフロー処理装置及び方法を提供することを目的とする。
本発明は、サービスフロー処理装置であって、
サービスフロー記述文書に記述された処理に従ってネットワーク上のサービスからメッセージを受信する受信手段と、
前記受信されたメッセージを他のサービスフロー処理装置が処理する場合、前記受信されたメッセージを用いて行われる処理の記述を前記サービスフロー記述文書から抽出する抽出手段と、
前記抽出された前記処理の記述を含むサービス部分フロー記述文書と前記受信手段により受信されたメッセージとを前記他のサービスフロー処理装置に送信する送信手段と、
を有することを特徴とする。
本発明によれば、フロー処理を他のサービスフロー処理装置に対して移譲することができる。
本実施形態におけるWEBサービスフロー処理部分転送処理を説明するための図である。 図1に示すWEBサービスフロー処理装置(フロー処理装置)の構成の一例を示す図である。 WEBサービスフロー記述文書の構成の一例を示す図である。 レスポンスSOAPメッセージの具体例を示す図である。 WEBサービスフロー処理記述文書の具体例を示す図である。 WSDLを生成する方法を示す図である。 変形例1におけるWEBサービスフロー処理装置(フロー処理装置)の構成の一例を示す図である。 情報処理装置のハードウェア構成の一例を示す図である。
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。まず、WEBサービスフロー処理装置が外部サービス(WEBサービス)から受信したSOAPメッセージを処理できない場合、他のWEBサービスフロー処理装置にフロー処理を移譲するWEBサービスフロー処理部分転送処理の概要を説明する。尚、以下の実施形態では、WEBサービスフロー処理装置を単にフロー処理装置とも呼称する。
図1は、本実施形態におけるWEBサービスフロー処理部分転送処理を説明するための図である。図1において、101はプリンタである。102はWEBサービスフロー記述文書の記述内容に従ってWEBサービスを順次実行可能なフロー処理装置であり、プリンタ101内に搭載されている。フロー処理装置102は、サービスフロー記述文書を解釈し、内容に応じてフロー処理を実行するサービスフロー処理装置である。
図1は、プリンタ101がネットワーク上のWEBサービスを利用するWEBサービスフローを処理する機能を有することを示す。本実施形態では、プリンタがWEBサービスフロー処理装置を有する形態を説明するが、本発明は、このような形態に限定されるものではない。
103はWEBサービスフロー処理部分転送部であり、WEBサービスから受信したSOAPメッセージを処理できない場合、そのSOAPメッセージを後述する複合機112に搭載されたフロー処理装置に転送する。また、この場合、そのSOAPメッセージを参照して処理を行うWEBサービスフロー記述文書の部分も、他のフロー処理装置に転送する。104は複数の文書105、109〜111と、WEBサービスフロー処理の転送先である複合機112の場所を示すエンドポイントの情報が記述された複合機エンドポイント情報113とを1つにまとめたパッケージである。105は複数のWEBサービスフローを記述したWEBサービスフロー記述文書である。109は検索処理サービス用WSDL(Web Services Description Language)であり、検索処理サービス106が公開するWEBサービスインターフェース記述文書である。
尚、検索処理サービス106は、例えばニュース検索サービスや書籍検索サービスなどである。また、WSDLはWEBサービスを識別するインターフェースとして記述された文書である。
110はレイアウト処理サービス用WSDLであり、レイアウト処理サービス107が公開するWEBサービスインターフェース記述文書である。111はストレージ処理サービス用WSDLであり、ストレージ処理サービス108が公開するWEBサービスインターフェース記述文書である。検索処理サービス106、レイアウト処理サービス107、ストレージ処理サービス108は、外部サービスである。112はコピー、スキャン、プリントなどの複数の機能を備えた複合機である。114は複合機112内に搭載されているフロー処理装置である。115はパーソナルコンピュータ等のクライアントであり、WEBサービスフロー処理の開始指示を出す。116はプリンタ101が公開するプリンタ搭載WEBサービスフロー処理サービス用WSDLである。
以上の構成において、WEBサービスフロー処理部分転送部103の処理を説明する。まず、プリンタ101に搭載されたフロー処理装置102がパッケージ104に含まれるそれぞれのファイルを読み込み、WEBサービスフロー記述文書105に従って、WEBサービスフロー処理の開始を準備する。プリンタ101は、不図示のネットワークを介して、パッケージ104に含まれるそれぞれのファイルを読み込む。そして、クライアント115がプリンタ101に対してプリンタ搭載WEBサービスフロー処理サービス用WSDL116を利用して必要なキーワードを含むリクエストメッセージを送ることでWEBサービスフロー処理の開始を指示する。
この開始の指示により、フロー処理装置102はWEBサービスフロー記述文書105に記述された内容でWEBサービスフロー処理の実行を始める。クライアント115から受け付けたキーワードを含むリクエストSOAPメッセージA(リクエストメッセージ)117を生成し、検索処理サービス106に送信し、検索結果としてレスポンスSOAPメッセージA(レスポンスメッセージ)118を受け取る。即ち、フロー処理装置102は、フロー処理を実行中に、検索処理サービス106に対して行ったリクエストに対するレスポンスのメッセージを受信する。受け取った検索結果を含むリクエストSOAPメッセージB(リクエストメッセージ)119を生成し、レイアウト処理サービス107に送信し、レイアウト結果としてレスポンスSOAPメッセージB(レスポンスメッセージ)120を受け取る。
ここで、レイアウト処理サービス107は検索結果をレイアウトし、PDFファイルやSVGファイルとして出力するが、本実施形態では、PDFファイルを出力するものとする。この例では、PDFファイルを含むため、サイズが非常に大きい場合があり、プリンタ101では、読み込む時点で、自分が処理できるメモリ使用量を超えてしまい、その後のフロー処理を続けられなくなる場合がある。
そのため、フロー処理装置102は、大容量のレスポンスメッセージが返送されてきても、フロー処理を続けられるように、WEBサービスフロー処理部分転送部103がレスポンスを受け付ける。そして、レスポンスメッセージのサイズを計測しながら内部に読み込み、自分が処理できるメモリの使用量を越えると判断した時点で、次に行うべきフロー処理を複合機112に移譲する。
即ち、WEBサービスフロー処理部分転送部103は、受信したレスポンスメッセージの処理サイズが設定値以上か否かを判断し、受信したメッセージが設定値以上である場合、次に行うべきフロー処理を他のフロー処理装置114に移譲する。
WEBサービスフロー処理部分転送部103には、フロー処理を移譲すべきレスポンスメッセージのサイズが予め設定されている。フロー処理を移譲する他のフロー処理装置である複合機112のアドレスは、複合機エンドポイント情報113に設定されている。
具体的には、レイアウト処理サービス107から受信したレスポンスメッセージ120を用いて処理を行うはずであったフロー処理部分をWEBサービスフロー記述文書105から特定する。そして、特定したフロー処理の記述を含むWEBサービス部分フロー記述文書121を生成する。また、WEBサービス部分フロー記述文書121の内容を実行するために必要で且つ複合機112を起動させるのに必要な複合機搭載WEBサービスフロー処理サービス用WSDL122も生成する。即ち、WEBサービスフロー処理部分転送部103は、レスポンスメッセージ120を使用して処理を行う部分フロー記述をWEBサービスフロー記述文書105から抽出する。そして、生成した文書121、WSDL122と、次のフロー処理に必要と判断したWSDL110、111とを複合機112に送信する。即ち、抽出した部分フロー記述は、構造化文書であるWEBサービス部分フロー記述文書121として、複合機112に送信される。
一方、複合機112は、これらの文書を受け取って読み込むことでWEBサービス部分フロー記述文書121の内容を処理できる状態に移行し、レスポンスメッセージ120が送られてくるのを待つ。そして、プリンタ101内のフロー処理装置102(具体的には、WEBサービスフロー処理部分転送部103)が複合機112にレスポンスメッセージ120を送信する。即ち、WEBサービスフロー処理部分転送部103は、レスポンスメッセージ120を、部分フロー記述を実行可能な複合機112に転送する。
ここで、複合機112はWEBサービス部分フロー記述文書121に記述された内容でフロー処理を開始する。そして、レスポンスメッセージ120に含まれるレイアウト結果であるPDFファイルを含むリクエストSOAPメッセージC(リクエストメッセージ)123を生成し、ストレージ処理サービス(受信したデータの保存などを行う)108に送信する。その後、保存完了通知を含むレスポンスSOAPメッセージC(レスポンスメッセージ)124を受け取ると、そのまま、プリンタ101へそのレスポンスメッセージ124を返す。
一方、プリンタ101がレスポンスメッセージ124を受け取ると、フロー処理装置102は複合機112に移譲したフロー処理に関して処理を行わず、そのフロー処理部分を飛ばしてその次の処理を行う。そして、最終的なWEBサービスフロー処理の結果をクライアント115に返す。
以上のように、大容量のレスポンスメッセージ120を受信しても、途中で処理が止まることなく、最後までフロー処理を行うことが可能となる。尚、レスポンスメッセージ120のサイズは、クライアント115からのリクエストメッセージに含まれるキーワードによって、異なる。従って、そのキーワードによって、WEBサービスフロー処理装置102単体で処理可能の場合と、WEBサービスフロー処理装置102単体で処理不可能の場合がある。したがって、WEBサービスフロー処理装置102は、クライアント115からリクエストメッセージが受信されるごとに、WEBサービスフロー処理装置114に処理を移譲するか、判断する。
ここでは、レスポンスSOAPメッセージのサイズによって、WEBサービスフロー処理装置114に処理を移譲するか、判断した。しかしながら、WEBサービスフロー処理装置114に処理を移譲するかの判断基準は、レスポンスSOAPメッセージのサイズに限定されるものではない。WEBサービスフロー処理装置102、114の種々の能力に基づき、WEBサービスフロー処理装置102で処理が不可能と、あるいは、WEBサービスフロー処理装置114に処理を移譲した方が良いと判断することが可能である。
次に、図1に示すプリンタ101に搭載されたフロー処理装置102のWEBサービスフロー処理部分転送部103の詳細な構成を、図2を用いて説明する。図2は、図1に示すWEBサービスフロー処理装置(フロー処理装置)の構成の一例を示す図である。図2に示すように、フロー処理装置102は、WEBサービスフロー処理部分転送部103、WEBサービスフロー処理部201、情報格納領域202を有する。情報格納領域202には、パッケージ104など、WEBサービスフロー記述文書、WSDL、その他必要となる情報などが格納され、情報格納領域202はWEBサービスフロー処理部201とWEBサービスフロー処理部分転送部103とで共有される。
WEBサービスフロー処理部分転送部103の構成及び処理を説明する。WEBサービスフロー処理部分転送部103は、メッセージサイズ上限設定処理部211、メッセージ受信処理部212、メッセージサイズ判断処理部213、部分フロー記述抽出処理部214、転送処理部215から構成される。
まず、メッセージサイズ上限設定処理部211は情報格納領域202などから上限値設定ファイル203を読み込み、自分が処理可能なメモリ使用量の上限値として設定しておく。設定値としては、例えば256MB、512MBなどの数値が設定されている。
メッセージ受信処理部212は、WEBサービス(例えばレイアウト処理サービス107)からのレスポンスSOAPメッセージをストリームで受信し、メッセージサイズ判断処理部213へ出力する。メッセージサイズ判断処理部213は、メッセージサイズ上限設定処理部211から上限値を取得しておき、レスポンスSOAPメッセージをストリームから読み込み、バッファに格納していきながら、メッセージサイズを確認する。バッファに格納している最中に、取得してある上限値を超える(または設定値以上)と判断した場合は、バッファに格納するのを停止し、フロー処理を他のフロー処理装置114に移譲する。この場合、後述するように、レイアウト処理サービス107からのレスポンスメッセージ120の受信は継続するが、並行して、バッファに格納済みのレスポンスメッセージ120を他のフロー処理装置114に送信する。
部分フロー記述抽出処理部214は、現在どこまでフロー処理を実行したかという内容221をWEBサービスフロー処理部201から取得する。そして、現在実行中のフロー処理の内容が記述されたWEBサービスフロー記述文書222を情報格納領域202から取得する。更に、受信したレスポンスSOAPメッセージを使用して処理を行う次のフロー処理記述部分を特定し、抽出して新たにWEBサービス部分フロー処理記述文書を生成する。この処理は、WEBサービス部分フロー記述文書の内容を実行するために必要である。また、転送先のフロー処理装置がフロー処理を行うWEBサービスとして起動させるために必要なWEBサービスフロー処理サービス用WSDLも生成する。
また、抽出した部分フロー処理に関しては実行しないで、処理を次に飛ばす指示223をWEBサービスフロー処理部201に送る。そして、WEBサービスフロー処理部201は、情報格納領域202に移譲先からのレスポンスSOAPメッセージが書き込まれるのを監視して待つ。
次に、転送処理部215は、部分フロー記述抽出処理部214が生成したWEBサービス部分フロー処理記述文書とWEBサービスフロー処理サービス用WSDLとを他のWEBサービスフロー処理装置114に送信する。尚、部分フローを実行するために必要となるWSDLや移譲先のフロー処理装置の位置を特定するエンドポイント情報などは情報格納領域202から取得する。それらの情報を利用して、転送処理部215は、レスポンスSOAPメッセージを、途中まで読み込んだバッファの内容と、メッセージサイズ判断処理部213が途中まで読んだ残りのストリームを、ストリームとして他のフロー処理装置114に送信する。
他のフロー処理装置114で部分フロー処理が実行され、処理の結果としてレスポンスメッセージ124が返送されると、メッセージ受信処理部212が受信し、メッセージサイズ判断処理部213が処理を行う。レスポンスSOAPメッセージのサイズが上限値を超えなければ、情報格納領域202にそのレスポンスSOAPメッセージを格納する。一方、移譲先からのレスポンスSOAPメッセージが情報格納領域202に書き込まれると、WEBサービスフロー処理部201は、書き込まれたメッセージを利用して次の処理を行う。
上述した処理の流れを実現することにより、WEBサービスフロー処理部の処理が受信したレスポンスSOAPメッセージのサイズによって、処理不能になるということを防ぐことが可能となる。
次に、WEBサービスフロー処理部分転送部103の処理内容をWEBサービスフロー記述文書の具体例を用いて説明する。
図3は、WEBサービスフロー記述文書の構成の一例を示す図である。図3において、301はWEBサービスフロー記述文書105の記述例である。図3に示す例では、プログラムで言う変数宣言などを記述する宣言部302と、フロー処理のロジックなどを記述するロジック部303から構成されている。
宣言部302において、304はWEBサービスフロー記述文書301を特定する情報、及び呼び出し先各WEBサービスのWSDL109、110、111を特定する情報である。305はWEBサービスフロー処理で用いる変数情報である。
一方、ロジック部303において、306はクライアントからリクエストメッセージを受信する処理内容である。307は受信したクライアントリクエストメッセージから検索キーワードを抽出し、検索処理サービス用WSDL109の情報を基に、検索キーワードを付加した形で検索処理サービス106へのリクエストメッセージ117を生成する処理内容である。308は生成したリクエストメッセージ117を用いて検索処理サービス106を呼び出し、検索処理を行わせ、検索結果のレスポンスメッセージ118を受信する処理内容である。
309は検索処理サービス106から受信したレスポンスメッセージ118から検索結果を抽出し、レイアウト処理サービス用WSDL110の情報に基づき、検索結果を付加した形でリクエストメッセージ119を生成する処理内容である。また、このリクエストメッセージ119はレイアウト処理サービス107へ送信される。310は生成したリクエストメッセージ119を用いてレイアウト処理サービス107を呼び出し、レイアウト処理を行わせ、レイアウト結果のレスポンスメッセージ120を受信する処理内容である。311はレイアウト処理サービス107から受信したレスポンスメッセージ120からレイアウト結果を抽出する。そして、ストレージ処理サービス用WSDL111の情報に基づきレイアウト結果を付加した形でストレージ処理サービス108へのリクエストメッセージを生成する処理内容である。
312は生成したリクエストメッセージを用いてストレージ処理サービス108を呼び出し、ストレージ処理を行わせ、ストレージ処理結果のレスポンスメッセージを受信する処理内容である。313はストレージ処理サービス108から受信したレスポンスメッセージからストレージ処理結果を抽出し、その結果を付加した形でクライアントへのレスポンスメッセージを生成する処理内容である。314は生成したレスポンスメッセージを用いて、クライアントへ返信する処理内容である。
また、315はWEBサービスフロー記述文書の記述例301に基づく具体的なWEBサービスフロー記述文書である。この例では、WSBPELというWEBサービスの処理フローをXML文書で記述するための標準仕様の方式で記述されている。ここで、WSBPELはWeb Service Business Process Execution Languageの略、XMLはeXtensible Markup Languageの略である。ここで、WEBサービスフロー記述文書の記述例301と、WEBサービスフロー記述文書315とを比較する。
316は情報304の記述内容に対応し、WEBサービスフロー記述文書315を特定する情報及び呼び出し先各WEBサービスのWSDL109、110、111を特定する情報が<process>タグの属性値としてネームスペースで記述されている。317は変数情報305の記述内容に対応し、フロー処理を行うときに使用するメッセージ変数の型情報がそれぞれ<variable>タグで記述されている。
318は処理内容306の記述内容に対応し、クライアントからリクエストメッセージを受信する処理内容が<receive>タグで記述されている。319は処理内容307の記述内容に対応し、検索処理サービス用WSDL109の情報に基づき、検索キーワードを付加した形で検索処理サービス106へのリクエストメッセージ117を生成する処理内容が<assign>タグなどで記述されている。320は処理内容308の記述内容に対応し、生成したリクエストメッセージ117を用いて検索処理サービス106を呼び出し、検索処理を行わせ、検索結果のレスポンスメッセージ118を受信する処理内容が<invoke>タグで記述されている。
321〜325は処理内容309〜313にそれぞれ対応している。326は処理内容314の記述内容に対応し、クライアントにレスポンスメッセージを返信する処理内容が<reply>タグで記述されている。
以上のように、ロジック部303の記述内容に対応する<receive>、<assign>、<invoke>、<reply>タグは、WSBPELではアクティビティと呼ばれる。これらのタグはWEBサービスフロー処理の表現を抽象化したものである。例えば、<receive>タグはメッセージの受信を、<assign>タグはメッセージの加工、変換を、<invoke>タグは外部のWEBサービスの呼び出しを、<reply>タグはメッセージの返信を示す。
次に、レスポンスSOAPメッセージの具体例を用いてメッセージサイズ判断処理部の処理を説明する。図4は、レスポンスメッセージ120の具体例を示す図である。401はレスポンスSOAPメッセージの具体例であり、<Body>タグ以下の402に示す部分がWEBサービスフロー処理装置102で利用される。403に示す部分に、レイアウト処理サービス107でレイアウトされて生成されたPDFの情報がBase64binary形式で埋め込まれている。
メッセージサイズ判断処理部213では、404に示すように、SOAPメッセージがストリームとして渡され、メッセージの上部からバッファ405に読み込んでいく(406)。
407は上限設定値であり、408で示すところまで読み込むと、409に示すようにバッファの使用容量が上限設定値407に達するので、その時点で、WEBサービスフロー処理装置102では処理を続けられないと判断する。そして、転送処理部215は、バッファ405からSOAPメッセージを読み出し、WEBサービスフロー処理装置114に送信する。WEBサービスフロー処理装置114に送信したSOAPメッセージをバッファに保存しておく必要はないので、新たに受信したSOAPメッセージをバッファに格納することが可能である。この新たに受信したSOAPメッセージも、WEBサービスフロー処理装置114に順次送信される。すなわち、転送処理部215が、バッファ405の内容409と、残りの情報が含まれるストリーム410とを、ストリームとして移譲先のWEBサービスフロー処理装置114に送信する。
ここで、部分フロー記述抽出処理部214の具体的な処理内容を、図5を用いて説明する。図5は、WEBサービスフロー処理記述文書の具体例を示す図である。図5において、501は315に示すWEBサービスフロー記述文書の具体例と同じである。
WEBサービスフロー処理部201は、このWEBサービスフロー記述文書501の内容を順に実行していく。そして、502のレイアウト処理サービス107へのinvokeアクティビティの処理で、上限設定値407を超えるレスポンスSOAPメッセージ401が返される。更にメッセージサイズ判断処理部213から部分フロー記述抽出処理部214に部分フロー記述抽出処理が指示される。
この指示により、部分フロー記述抽出処理部214は、この502のinvokeアクティビティの処理で受け取るはずであった503に示すlayoutoutputという変数が示すデータに関連した処理部分を特定する。そして、部分的に抽出するフロー記述を特定する。
この場合、503に示すlayoutoutputという変数は、504に示すようにmessageTypeがlayoutwsdl:Response型であると定義されている。また、このlayoutoutputという変数503の型のプレフィックスlayoutwsdlは505に示すhttp://www.sample.com/LayoutService.wsdlのネームスペースを指す。したがって、このネームスペースにより必要なWSDLを特定することができ、Response型がどのような型であるかがわかる。
これらの情報から、layoutoutput変数からstorageinput変数にメッセージのデータをコピーするassignアクティビティの処理が、関連すると判断できる。更に、メッセージのデータをコピーされたstorageinput変数を使用したinvokeアクティビティの処理も関連すると判断できる。これらの関連する処理を、506で示す。
506に示すinvokeアクティビティの処理で一旦外部に処理が移るので、この部分までを部分フロー記述として抽出することができると判断する。WEBサービスフロー処理部201は、507に示すメッセージ変数の情報が情報格納領域202に格納されたかどうかを確認しながら待機する。この情報は、WEBサービスフロー処理装置114により情報格納領域202に格納される。
部分フロー記述抽出処理部214は、部分フロー記述部分を特定すると、506の部分フロー記述の内容を、転送先の例えば他のフロー処理装置114で実行させるために必要な情報を生成する。
まず、この部分フロー記述部分を508に示す新たなWEBサービスフロー記述文書として生成する。この例では、506の部分フロー記述は、509に示す部分に記述され、その前に、510に示す処理を追加し、その後ろに、511に示す処理を追加する。
510には、メッセージの転送先でメッセージを受け取るreceiveアクティビティの処理と、layoutoutput変数にメッセージのデータをコピーするassignアクティビティの処理を追加する。
一方、511には、509のinvokeアクティビティの処理によって受け取ったメッセージのデータをコピーするassignアクティビティの処理と、メッセージの転送元に509の処理結果を返信するreplyアクティビティの処理を追加する。そして、これらの処理を行うために必要な情報を512に示すように付加することで、新たなWEBサービスフロー記述文書を生成する。更に、この文書の生成と同時に、転送先でフロー処理を行うWEBサービスとして起動させるために必要な513に示すWEBサービスフロー処理サービス用WSDLも自動生成する。このWSDLは、例えば図1に示す複合機搭載WEBサービスフロー処理サービス用WSDL122に相当する。
部分フロー記述抽出処理部214が513に示すWEBサービスフロー処理サービス用WSDLを自動生成する処理を説明する。WSDL513は、図1中の複合機112が、プリンタ101から、部分フローの実行を開始する指示を、Webサービスのリクエストとして受け付けられるようにするために利用される。
WSDL513は、部分フロー記述抽出処理部214が、予め用意したテンプレートに、必要な情報を埋めることで生成する。図6の601にある点線による四角囲み部分以外はテンプレートとして元々用意している。
本実施形態では、このテンプレートに値を埋めるために、図1中のレイアウト処理サービス用WSDL110と、ストレージ処理サービス用WSDL111を使用する。図6にある602は、レイアウト処理サービス用WSDL110の具体例の記述であり、603は、ストレージ処理サービス用WSDL111の具体例である。
レイアウト処理サービスの返りのレスポンスメッセージ120が大容量の場合、次のストレージ処理サービス108への処理を委譲するので、まずレイアウト処理サービス用WSDL602から604に示される、返りの値の型を宣言している部分を参照する。部分フロー記述抽出処理部214は、605にあるように返りの値の型はbase64binaryであると解釈する。つまり、レイアウト処理サービス107の処理結果が、レイアウト処理されたPDFのようなバイナリデータであると判断することができる。よって、図1の中のWEBサービスフロー処理装置114が、このバイナリデータが含まれるSOAPメッセージをリクエストとして受け付けるようにするため、リクエスト時の型を宣言する606に605と同じ型を挿入する。
そして、ストレージ処理サービス108の処理結果を図1中のプリンタ101に返すので、ストレージ処理サービスのWSDL603にある607に記述してある返りの値の型を宣言している部分を参照する。部分フロー記述抽出処理部214は、608にあるように返りの値の型はstringであると解釈する。よって、図1中のWEBサービスフロー処理装置114が、このstringが含まれるSOAPメッセージをレスポンスとして返すようにするため、レスポンス時の型を宣言する609に608と同じ型を挿入する。
部分フロー記述抽出処理部214は、その他の値としては、610にこのWSDL601を特定するためのネームスペースを決めて挿入する。
以上のようにして、部分フロー記述抽出処理部214は図5中のWSDL513を自動生成する。
本実施形態によれば、資源(例えばハードディスクやメモリ)の少ないデバイス機器において、大容量のSOAPメッセージを受信しても、他の資源豊富なデバイス機器に一部の処理を移譲する。これにより、一連のWEBサービスフロー処理を停止させずそのまま継続させることが可能となる。
次に、本実施形態の変形例1について説明する。本実施形態では、上限値設定ファイル203に設定される値は、256MB、512MBなどの定数であった。変形例1では、上限値設定ファイル203に設定する値を、例えば20%、30%などの割合を設定することで、デバイス機器のそのときのハードウェア資源の使用状況に応じてフロー処理中に扱うメッセージサイズの上限を可変する場合を説明する。
図7は、変形例1におけるWEBサービスフロー処理装置(フロー処理装置)の構成の一例を示す図である。尚、図2に示す構成と同じものには同一の符号を付し、その説明は省略する。
上限値設定ファイル203に、例えば30%の割合が設定されるとする。メッセージサイズ上限設定処理部211において、メッセージサイズ判断処理部213から上限値の確認の指示がきた時点で、情報格納領域202に対して空き容量がどれぐらいあるかを確認する処理を行う(671)。情報格納領域202の全体の要領が512MBとして、現在412MBを使用中で、残りの空き容量が100MBであった場合、100MBの30%までを残り使用できると判断し、412MBに30MBを追加した442MBを上限値として設定する。
変形例1によれば、デバイス機器のそのときのハードウェア資源の使用状況に応じて、フロー処理中に扱うメッセージサイズの上限を変更することが可能となる。
次に、本実施形態の変形例2について説明する。本実施形態では、メッセージサイズ判断処理部213でメッセージの処理サイズをどのように判断するかをメッセージにBase64binary形式、つまり、テキストの情報が埋め込まれている例を説明した。変形例2では、メッセージにテキストではなく、バイナリが埋め込まれた場合の処理を説明する。
メッセージに、例えば圧縮されたバイナリ情報が埋め込まれていた場合、そのままではサイズを判断することができない。そのため、メッセージサイズ判断処理部213では、圧縮されたバイナリ情報を1度解凍し、解凍したバイナリ情報のサイズを計測することによりメッセージの処理サイズを判断する。
変形例2によれば、メッセージの処理サイズとして、テキストだけでなく、バイナリを扱うことも可能となる。
WEBサービスフロー処理部分転送部を、プリンタなどの資源の少ないデバイス機器へ搭載する例を挙げたが、パーソナルコンピュータなどの情報処理装置に搭載しても良い。その場合、上述した本発明の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を情報処理装置に供給し、情報処理装置のコンピュータ(CPU又はMPU)が記録媒体に格納されたプログラムコードを読み出して実行する。
図8は、情報処理装置のハードウェア構成の一例を示す図である。図8に示すように、情報処理装置は、入力装置701と、表示装置702と、記憶媒体ドライブ装置703と、ROM705と、RAM706と、CPU又はMPU707と、インターフェース装置708と、HD(ハードディスク)709とを含む。
入力装置701は、情報処理装置の操作者(オペレータ)が操作するキーボード及びマウスなどで構成され、情報処理装置に各種操作情報などを入力するのに用いられる。表示装置702は、情報処理装置の操作者が利用するディスプレイなどで構成され、各種情報(又は画面)などを表示するのに用いられる。インターフェース装置708は、情報処理装置をネットワークなどに接続するインターフェースである。前述した処理のフローなどに係るプログラムは、例えばCD−ROMなどの記憶媒体704によって情報処理装置に提供されるか、ネットワークなどを通じてダウンロードされる。記憶媒体704は、記憶媒体ドライブ装置703にセットされ、プログラムが記憶媒体704から記憶媒体ドライブ装置703を介してHD709にインストールされる。ROM705は情報処理装置の電源投入時に最初に読み込まれるプログラムなどを格納する。RAM706は、情報処理装置のメインメモリである。CPU707は、HD709よりプログラムを読み出して、RAM706に格納し、プログラムを実行することで、前述の処理内容を実現したりする。また、HD709は、プログラム以外に、例えば、WEBサービスフロー記述文書、WSDL文書などを格納する。
尚、本発明は複数の機器(例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用しても良い。
また、他の形態では、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータが記録媒体に格納されたプログラムコードを読出し実行する。
この形態では、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現し、そのプログラムコードを記憶した記録媒体は本発明を構成する。

Claims (7)

  1. サービスフロー処理装置であって、
    サービスフロー記述文書に記述された処理に従ってネットワーク上のサービスからメッセージを受信する受信手段と、
    前記受信されたメッセージを他のサービスフロー処理装置が処理する場合、前記受信されたメッセージを用いて行われる処理の記述を前記サービスフロー記述文書から抽出する抽出手段と、
    前記抽出された前記処理の記述を含むサービス部分フロー記述文書と前記受信手段により受信されたメッセージとを前記他のサービスフロー処理装置に送信する送信手段と、
    を有することを特徴とするサービスフロー処理装置。
  2. 前記送信手段は、前記他のサービスフロー処理装置が前記処理の記述に従って実行した結果を前記サービスフロー処理装置に返送する処理を含むサービス部分フロー記述文書を前記他のサービスフロー処理装置に送信することを特徴とする請求項1に記載のサービスフロー処理装置。
  3. 前記送信手段は、前記受信されたメッセージに基づいて前記他のサービスフロー処理装置がネットワーク上のサービスを利用して行う処理の記述を含むサービス部分フロー記述文書を、前記他のサービスフロー処理装置に送信することを特徴とする請求項1に記載のサービスフロー処理装置。
  4. 前記送信手段は、前記ネットワーク上のサービスを利用するためのサービスインターフェース記述文書を、前記他のサービスフロー処理装置に送信することを特徴とする請求項3に記載のサービスフロー処理装置。
  5. 前記送信手段は、前記サービス部分フロー記述文書を前記他のサービスフロー処理装置に送信するか否かを、前記受信したメッセージのサイズに基づいて判断することを特徴とする請求項1に記載のサービスフロー処理装置。
  6. サービスフロー処理方法であって、
    サービスフロー記述文書に記述された処理に従ってネットワーク上のサービスからメッセージを受信する受信工程と、
    前記受信されたメッセージを他のサービスフロー処理装置が処理する場合、当該受信されたメッセージを用いて行われる処理の記述を前記サービスフロー記述文書から抽出する抽出工程と、
    前記抽出された前記処理の記述を含むサービス部分フロー記述文書と、前記受信工程において受信されたメッセージとを前記他のサービスフロー処理装置に送信する送信工程と、
    を有することを特徴とするサービスフロー処理方法。
  7. 請求項1乃至5の何れか1項に記載のサービスフロー処理装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2009089583A 2008-05-12 2009-04-01 サービスフロー処理装置及び方法 Withdrawn JP2009301538A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009089583A JP2009301538A (ja) 2008-05-12 2009-04-01 サービスフロー処理装置及び方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008124972 2008-05-12
JP2009089583A JP2009301538A (ja) 2008-05-12 2009-04-01 サービスフロー処理装置及び方法

Publications (2)

Publication Number Publication Date
JP2009301538A true JP2009301538A (ja) 2009-12-24
JP2009301538A5 JP2009301538A5 (ja) 2012-04-19

Family

ID=41267787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009089583A Withdrawn JP2009301538A (ja) 2008-05-12 2009-04-01 サービスフロー処理装置及び方法

Country Status (3)

Country Link
US (1) US20090282150A1 (ja)
JP (1) JP2009301538A (ja)
CN (1) CN101582921B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10597235B2 (en) 2016-10-20 2020-03-24 Intelligrated Headquarters, Llc Carton unloader tool for jam recovery
US10597234B2 (en) 2016-10-20 2020-03-24 Intelligrated Headquarters, Llc Carton unloader tool for jam recovery

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5224964B2 (ja) * 2008-07-31 2013-07-03 キヤノン株式会社 受信装置の受信方法及び受信装置並びにプログラム
US9369528B2 (en) * 2013-04-08 2016-06-14 Xerox Corporation Multi-function device application catalog with integrated discovery, management, and application designer
US9563613B1 (en) * 2015-01-23 2017-02-07 Sprint Communications Company L.P. System and method for dynamic portable document file generation

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321605A (en) * 1990-06-01 1994-06-14 Motorola, Inc. Process flow information management system
JP3747133B2 (ja) * 1999-04-14 2006-02-22 キヤノン株式会社 携帯端末及びその制御方法及びその記憶媒体
US7102773B1 (en) * 2000-07-19 2006-09-05 Sharp Laboratories Of America, Inc. Method for multicast of documents
US20040158655A1 (en) * 2003-02-12 2004-08-12 Karl Heinz Kremer Automatic insertion of special pages into black & white digital printing jobs
US7528976B2 (en) * 2003-09-25 2009-05-05 Ricoh Co., Ltd. Stand alone printer with hardware/software interfaces for sharing multimedia processing
EP1643374A3 (en) * 2004-09-29 2007-03-21 Sap Ag A data processing system and method for automatic entry of user data
JP4677355B2 (ja) * 2006-03-03 2011-04-27 キヤノン株式会社 Webサービス装置及び順次処理移譲方法
JP4958481B2 (ja) * 2006-06-01 2012-06-20 キヤノン株式会社 Webサービス実行方法及び情報処理装置
US8161096B2 (en) * 2007-02-21 2012-04-17 Canon Kabushiki Kaisha Method of executing service on a network, and flow processing apparatus with document that describes a flow for controlling services on the network

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10597235B2 (en) 2016-10-20 2020-03-24 Intelligrated Headquarters, Llc Carton unloader tool for jam recovery
US10597234B2 (en) 2016-10-20 2020-03-24 Intelligrated Headquarters, Llc Carton unloader tool for jam recovery
US10906742B2 (en) 2016-10-20 2021-02-02 Intelligrated Headquarters, Llc Carton unloader tool for jam recovery

Also Published As

Publication number Publication date
US20090282150A1 (en) 2009-11-12
CN101582921A (zh) 2009-11-18
CN101582921B (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
JP5199761B2 (ja) 情報処理装置と画像入力装置、文書配信システムとそれらの制御方法
JP2006306021A (ja) データ処理装置、データ処理システム、データ処理装置の制御方法、データ変換機能付加方法、プログラム及び記録媒体
JP5927950B2 (ja) 制御装置
JP2005196751A (ja) プリントサブシステムのデスプーリングバックプレーン
JP2010018004A (ja) ワークフロー実行装置及びワークフロー実行方法
JP2009301538A (ja) サービスフロー処理装置及び方法
JP5134456B2 (ja) サービスフロー処理装置及びサービスフロー処理方法
JP2011019197A (ja) データ処理装置、データ処理処理方法、プログラム
JP2009129340A (ja) ジョブフロー処理装置
JP2012216147A (ja) データ処理装置、データ処理方法およびプログラム
JP2011035675A (ja) データ処理システム及びその制御方法
JP5691270B2 (ja) 画像処理システムおよび画像処理装置
JP2015108857A (ja) システム、その制御方法、情報処理装置、その制御方法及びプログラム
JP2005080018A (ja) 画像処理装置
US9032040B2 (en) Receiving device and method
JP2005080019A (ja) 画像処理装置
JP5168398B2 (ja) 装置、データ処理方法及びプログラム
JP2010061212A (ja) データ配信方法、データ配信プログラムおよび記憶媒体
JP2005080017A (ja) 画像処理装置
JP4965726B2 (ja) データ処理システム、データ処理装置、情報処理装置、プログラム及び記録媒体
JP2009044232A (ja) 画像処理装置、スキャンデータ分割送信方法及びスキャンデータ分割送信プログラム
JP2008124902A (ja) 画像処理装置および画像処理プログラム
JP2006140812A (ja) 情報処理装置及びデータ送信プログラム
JP5211877B2 (ja) 画像形成装置、ファクス送信データ処理方法、及びプログラム
JP6188368B2 (ja) 印刷装置および情報処理装置、制御方法、プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120305

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120305

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20130509