JP2009223439A - メッセージ生成処理方法及びメッセージ生成処理装置 - Google Patents

メッセージ生成処理方法及びメッセージ生成処理装置 Download PDF

Info

Publication number
JP2009223439A
JP2009223439A JP2008064825A JP2008064825A JP2009223439A JP 2009223439 A JP2009223439 A JP 2009223439A JP 2008064825 A JP2008064825 A JP 2008064825A JP 2008064825 A JP2008064825 A JP 2008064825A JP 2009223439 A JP2009223439 A JP 2009223439A
Authority
JP
Japan
Prior art keywords
message
web service
service flow
identification information
description document
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008064825A
Other languages
English (en)
Other versions
JP5142773B2 (ja
JP2009223439A5 (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 JP2008064825A priority Critical patent/JP5142773B2/ja
Priority to EP09002583A priority patent/EP2101260A3/en
Priority to US12/391,982 priority patent/US20090235157A1/en
Priority to CN200910117869A priority patent/CN101534307A/zh
Priority to KR1020090021658A priority patent/KR101065937B1/ko
Publication of JP2009223439A publication Critical patent/JP2009223439A/ja
Publication of JP2009223439A5 publication Critical patent/JP2009223439A5/ja
Application granted granted Critical
Publication of JP5142773B2 publication Critical patent/JP5142773B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/88Mark-up to mark-up conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】 WEBサービスを呼び出すためのSOAPメッセージを生成する際に、デバイス機器の資源の使用量を低減させる。
【解決手段】 サービスフロー処理装置がサービスフロー記述文書に基づいてフロー処理を実行中に、外部サービスに対して行ったリクエストに対するレスポンスのメッセージを受信する。サービスフロー記述文書に記述された、メッセージ内の特定の場所を指し示す識別情報を利用して、受信したレスポンスのメッセージからデータを抽出する。抽出したデータと、識別情報とを対応づけて保持し、その識別情報に対応づけて保持したデータから次の外部サービスへリクエストするためのメッセージを生成する。
【選択図】 図2

Description

本発明は、サービスフロー記述文書に基づいて外部サービスへリクエストするためのメッセージを生成する技術に関する。
従来、WEBサービスを順次実行させるためのWEBサービスフロー記述文書(構造化文書)に従って、WEBサービスを順次実行させる技術が知られている(例えば、非特許文献1参照)。この構造化文書としては、WSBPEL(Web Service Business Process Execution)が広く用いられている。このWSBPELは、拡張可能なマークアップ言語であるXML(eXtensible Markup Language)によって記述されたWEBサービスフロー記述言語である。WSBPELの仕様は、OASIS(organization for the Advancement of Structured Information Standards)で管理されている(非特許文献2参照)。
尚、WSBPELでは、WEBサービスを識別するインターフェースとして、WSDL(Web Services Description Language)を用いている。WSDLは、WEBサービスのインターフェースを記述するために用いる言語であり、仕様はwwwコンソーシアム(W3C)によって公開されている。その内容は、http://www.w3.org/TR/wsdlにて参照可能である。
WEBサービスフロー記述文書を読み込み、その記述内容に従って、WEBサービスを順次実行させるフロー処理装置においては、WEBサービスフロー記述の内容に応じて、WEBサービスを以下の流れで呼び出す。
まず、呼び出し対象となるWEBサービスのWEBサービスインターフェース記述文書(WSDL)を読み込む。そして、対象のWEBサービスが受け取れるメッセージの型を知るために、WSDLに記述された構造定義であるスキーマ言語(XMLSchema)を参照する。XMLSchemaは、W3Cで定義されている。参照したスキーマを利用することで、XML形式であるSOAP(Simple Object Access Protocol)メッセージの骨格を生成する。このSOAPは、W3Cで定義されている。
次に、生成したSOAPメッセージの骨格に対して、送信するデータを、XPath(XML Path Language)を利用して挿入し、SOAPメッセージを完成させ、そのSOAPメッセージを送信する。XPathはW3Cで定義されている。呼び出した結果、WEBサービスからの応答をSOAPメッセージで受信する。
次に、受信したSOAPメッセージからデータを抽出、或いはメッセージの加工などの処理を行う。そして、その処理結果を上述した方法でSOAPメッセージとして生成し、次のWEBサービスに対して送信する。以上のような流れで処理を進めて実行させていくのが一般的である。
通常、XMLなどの構造化文書を扱う場合、W3Cで定義されているDOM(Document Object Model)が利用される。よって、XML形式であるSOAPメッセージを生成する過程においても、DOMインターフェースが利用されるのが一般的である。
また、このようなWEBサービスを順次実行させるフロー処理装置は、本来資源豊富なパーソナルコンピュータやサーバ機器上に搭載するのが一般的である。
「ビジネス・プロセス:BPEL4WSについて 第1回」http://www.ibm.com/developerworks/jp/webservices/library/ws-bpelcol1/ 「Web Service Business Process Execution Language Version 2.0」http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html
しかしながら、SOAPメッセージを生成する際に、DOMを利用してスキーマ全体を1度に読み込む場合、SOAPメッセージ自体のサイズが大きければ、メモリなどの資源をより多く消費してしまう。この場合、低資源のデバイス機器などで、フロー処理装置を実行させると、SOAPメッセージの生成時に、処理可能な資源のサイズを超える可能性がある。そのため、その時点で処理不能となり、WEBサービスフロー記述文書に記述された次以降の処理を進めることが困難であるという問題があった。
また、上述の処理の流れでは、SOAPメッセージの骨格を先に生成し、その後必要な要素に値を挿入するので、実際には値を挿入してない要素をそのままSOAPメッセージとして書き出すこともある。そのため、不必要な情報が、呼び出し先のWEBサービスに送信されるという問題もあった。
本発明は、WEBサービスを呼び出すためのSOAPメッセージを生成する際に、デバイス機器の資源の使用量を低減させることを目的とする。
本発明は、サービスフロー記述文書に基づいてフロー処理を実行するサービスフロー処理装置にて外部サービスへのメッセージを生成するメッセージ生成処理方法であって、フロー処理を実行中に前記外部サービスに対して行ったリクエストに対するレスポンスのメッセージを受信する受信工程と、前記サービスフロー記述文書に記述された、メッセージ内の特定の場所を指し示す識別情報を利用して前記レスポンスのメッセージからデータを抽出する抽出工程と、前記抽出したデータと前記識別情報とを対応づけて保持する保持工程と、前記識別情報に対応づけて保持したデータから次の外部サービスへリクエストするためのメッセージを生成する生成工程と、を有することを特徴とする。
また、本発明は、サービスフロー記述文書に基づいてフロー処理を実行するサービスフロー処理装置にて外部サービスへのメッセージを生成するメッセージ生成処理装置であって、フロー処理を実行中に前記外部サービスに対して行ったリクエストに対するレスポンスのメッセージを受信する受信手段と、前記サービスフロー記述文書に記述された、メッセージ内の特定の場所を指し示す識別情報を利用して前記レスポンスのメッセージからデータを抽出する抽出手段と、前記抽出したデータと前記識別情報とを対応づけて保持する保持手段と、前記識別情報に対応づけて保持したデータから次の外部サービスへリクエストするためのメッセージを生成する生成手段と、を有することを特徴とする。
本発明によれば、外部サービスを呼び出すためのメッセージを生成する際に、サービスフロー記述文書を展開するためのメモリ使用量を低減させることができる。そのため、低資源のデバイス機器でも処理が可能となり、本装置の搭載が可能となる。
また、複数のXPathからXML文書をデータ付きで生成し、SOAPメッセージを生成するようにすれば、値が含まれない要素などの不必要な情報が、呼び出し先のWEBサービスに送信されるということも無くなる。
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
[第1の実施形態]
第1の実施形態として、識別情報による構造化文書形式のメッセージ生成処理の概要を、図1〜図4を用いて説明する。尚、識別情報は、XPath(XML Path Language)として説明する。
図1は、第1の実施形態におけるWEBサービスフロー処理装置の概略を示す図である。図1において、101はコピー、スキャン、プリントなどの複数の機能を有する複合機である。第1の実施形態では、複合機101はWEBサービスフロー記述文書を読み込み、その記述内容に従ってWEBサービスを順次実行可能なWEBサービスフロー処理装置102として機能する。
更に、WEBサービスフロー処理装置102の内部には、XPathによる構造化文書形式のメッセージ生成及び構造検証部103が含まれる。以下、XPathによる構造化文書形式のメッセージ生成及び構造検証部103をメッセージ生成及び構造検証部103と呼称する。
104はWEBサービスフロー処理装置102が呼び出す対象の外部WEBサービスAであり、また105はWEBサービスフロー処理装置102が呼び出す対象の外部WEBサービスBである。
106は外部WEBサービスA104及び外部WEBサービスB105を順次呼び出すための手順が記述されているWEBサービスフロー記述文書である。107は外部WEBサービスA用WEBサービスインターフェース記述文書であり、また108は外部WEBサービスB用WEBサービスインターフェース記述文書である。これらの記述文書の詳細な構成は、更に後述する。
ここで、WEBサービスフロー処理装置102のメッセージ生成及び構造検証部103が識別情報による構造化文書形式のメッセージを生成する処理を説明する。
まず、WEBサービスフロー処理装置102は、不図示のスキャナにてWEBサービスフロー記述文書106を読み込み、その記述内容に従ってフロー処理を開始する。そして、外部WEBサービスA104の呼び出しに関連する記述内容までWEBサービスフロー記述文書106の記述内容を順次実行していく。
次に、メッセージ生成及び構造検証部103がリクエストSOAPメッセージA109を生成する。その際に、WEBサービスフロー記述文書106に記述されたXPathの情報と、検証処理を行う場合には、外部WEBサービスA用WEBインターフェース記述文書107の内容を利用する。尚、メッセージ生成処理及び検証処理の詳細は、更に後述する。
次に、メッセージ生成及び構造検証部103は生成したリクエストSOAPメッセージA109を外部WEBサービスA104に送信する。外部WEBサービスA104で処理が行われ、その結果として、レスポンスSOAPメッセージA110が返信される。そして、メッセージ生成及び構造検証部103がそのレスポンスSOAPメッセージA110を受信する。
次に、メッセージ生成及び構造検証部103がレスポンスSOAPメッセージA110から処理結果の情報を抽出する。ここで抽出した情報と、WEBサービスフロー記述文書106に記述されたXPathの情報と、検証処理を行う場合には、外部WEBサービスB用WEBインターフェース記述文書108の内容を利用してリクエストSOAPメッセージB111を生成する。
次に、メッセージ生成及び構造検証部103は生成したリクエストSOAPメッセージB111を外部WEBサービスB105に送信する。外部WEBサービスB105で処理が行われ、その結果として、レスポンスSOAPメッセージB112が返信される。そして、WEBサービスフロー処理装置102がそのレスポンスSOAPメッセージB112を受信する。
このように、メッセージ生成及び構造検証部103が外部WEBサービスを呼び出す際に、必要なリクエストSOAPメッセージを生成する。その際に、WEBサービスフロー記述文書106の内容と、レスポンスSOAPメッセージの内容と、検証処理を行う場合には、外部WEBサービス用インターフェース記述文書の内容を利用する。
ここで、メッセージ生成及び構造検証部103の具体的な処理の内容を、図2を用いて説明する。尚、図2では、外部WEBサービスB105のWEBサービスを呼び出す際のリクエストSOAPメッセージB111を生成する処理を示している。
図2は、メッセージ生成及び構造検証部103における内部処理構成の一例を示す図である。図2において、201はメッセージ受信処理部であり、レスポンスSOAPメッセージA110を外部WEBサービスA104から受信する。202はデータ抽出処理部であり、WEBサービスフロー記述文書106に記述されたXPathの内容を利用して、レスポンスSOAPメッセージA110から必要なデータを抽出する。
このXpathは、WEBサービスフロー記述文書106に記述されているメッセージの構造情報を含み、メッセージ内の特定の場所を指し示す識別情報である。
203はXPath式関連づけ処理部であり、抽出したデータとWEBサービスフロー記述文書106から次に呼び出すWEBサービスに関連するXPath式を抽出し、それらを関連づけた情報として保持する。次に呼び出すWEBサービスに関連するXPath式は、データ抽出処理部202で抽出されたデータの挿入先を示すWEBサービスフロー記述文書106に記述されたメッセージの構造情報を含み、メッセージ内の特定の場所を指し示す識別情報である。
204はメッセージ生成処理部であり、XPath式関連づけ処理部203で関連づけた情報からリクエストSOAPメッセージを組み立て、メッセージを生成する。ここでは、次に呼び出すWEBサービスに関連するXPath式と、それに対応するデータ抽出処理部202で抽出されたデータとを利用して、リクエストSOAPメッセージB111を生成する。
上述のメッセージ生成及び構造検証部103の処理の流れは以上になるが、次に具体的なWEBサービスフロー記述文書を用いて処理内容を詳細に説明する。
図3は、第1の実施形態におけるWEBサービスフロー記述文書106の構成の一例を示す図である。WEBサービスフロー記述文書106はプログラムで言う変数宣言などを記述する宣言部301、及びフロー処理のロジックなどを記述するロジック部302から構成されている。
尚、ロジック部302には、本来であれば、クライアントからリクエストメッセージを受信する記述やクライアントにレスポンスメッセージを返信する記述など、全てのフロー処理の内容が書かれる。しかし、図3に示す例では、本発明を説明するために必要な情報だけを記述している。
まず、宣言部301において、311はWEBサービスフロー記述文書を特定する情報、及び呼び出し先各WEBサービスのインターフェース記述文書を特定する情報である。312はWEBサービスフロー処理で用いる変数情報である。
そして、ロジック部302において、321は外部WEBサービスAを呼び出し、外部WEBサービスAに処理を行わせ、その処理結果のレスポンスメッセージを受信する処理内容である。322は受信した処理結果のレスポンスメッセージから、処理結果を抽出し、外部WEBサービスBが解釈可能なリクエストメッセージを生成する処理内容である。323は外部WEBサービスBを呼び出し、外部WEBサービスBに処理を行わせ、その処理結果のレスポンスメッセージを受信する処理内容である。
図3において、303はWEBサービスフロー記述文書106の構成に対応する具体的な記述例である。この例では、WSBPELというWEBサービスの処理フローをXML文書で記述するための標準仕様になっている言語で記述している。尚、WSBPELは、Web Service Business Process Execution Languageの略であり、XMLは、eXtensible Markup Languageの略である。
ここで、WEBサービスフロー記述文書106の構成と、記述例303を比較しながら詳細に説明する。331は宣言部301における311の記述内容に対応する。331はWEBサービスフロー記述文書を特定する情報、及び呼び出し先各WEBサービスのインターフェース記述文書(WSDL文書)を特定する情報が<process>タグの属性値としてネームスペースで記述されている。332は宣言部301における312の記述内容に対応する。332はフロー処理を行うときに使用するメッセージ変数の型情報がそれぞれ<variable>タグで記述されている。
333はロジック部302における321の記述内容に対応する。333は外部WEBサービスAを呼び出し、処理を行わせ、処理結果のレスポンスメッセージを受信する処理内容が、<invoke>タグで記述されている。334はロジック部302における322の記述内容に対応する。334は受信したレスポンスメッセージからXPathを利用して処理結果を抽出し、その処理結果とXPathから、外部WEBサービスBが解釈可能なリクエストメッセージを生成する処理内容が、<assign>タグなどで記述されている。
335はロジック部302における323の記述内容に対応する。335は外部WEBサービスBを呼び出し、処理を行わせ、処理結果のレスポンスメッセージを受信する処理内容が、<invoke>タグで記述されている。
ロジック部302の記述内容に対応する<assign>、<invoke>タグは、WSBPELではアクティビティと呼ぶ。<assign>タグはメッセージの加工、変換、<invoke>タグは外部のWEBサービスの呼び出しといったように、WEBサービスフロー処理の表現を抽象化したものである。
次に、図4に示すSOAPメッセージの具体例を用いてメッセージ生成及び構造検証部103の内部処理構成の処理の流れを説明する。
401はレスポンスSOAPメッセージA110の具体例である。402は334で示した部分を抜粋したものである。即ち、受信したレスポンスのメッセージからXPathを利用して、処理結果を抽出し、その処理結果とXPathから外部WEBサービスBが解釈可能なリクエストメッセージを生成する処理内容の抜粋である。
401、402を利用してデータ抽出処理部202の処理を説明する。402の<assing>タグの次の階層には<copy>タグ、その次の階層には<from>タグと<to>タグが記述されている。<copy>タグでは、受信したメッセージから<from>タグで記述されたXPathに対応する場所からデータを抽出し、次に送信するメッセージの<to>タグで記述されたXPathに対応する場所にデータを挿入すると解釈する。
よって、403に示すように、まず、<from>タグに示す「/Response/data/address」を利用して、レスポンスSOAPメッセージAから、<address>タグの「tokyo」というデータを抽出する。また同様に、404では、「abc」というデータを抽出し、405では「03-1234-5678」というデータを抽出する。
即ち、これらのデータの抽出には、サービスフロー記述文書に記述された(レスポンス)メッセージの構造情報を含み、(レスポンス)メッセージ内の特定の場所を指し示す<from>タグを含むXPathが識別情報として使用される。
次に、406を用いてXPath式関連づけ処理部203の処理を説明する。406は403〜405で抽出したデータと、402の<to>タグに記述されたXPathとを対応づけたものである。407では、403で抽出した「tokyo」というデータと、対応する<to>タグに記述された「/Request/address」を対応づけている。また同様に、408では、「abc」と「/Request/person/name」、409では、「03-1234-5678」と「/Request/person/phone」を、それぞれ対応づけて保持している。
この<to>タグに記述されたXPathは、403〜405で抽出したデータの挿入先を示すサービスフロー記述文書に記述されたメッセージの構造情報を含み、メッセージ内の特定の場所を指し示す識別情報である。
次に、406で対応づけた情報を順番に利用してメッセージ生成処理部204において、メッセージを組み立てていく処理を説明する。まず、407の情報から、410に示すように、XPath「/Request/address」から、<Request><address></address></Request>というXMLの構造を組み立てる。そして、<address>タグにデータを入れた411のメッセージを生成する。次に、412に示すように、411のメッセージに、408の情報を埋め込み、<address>タグの次に<person>タグ以下を埋め込んだ413のメッセージを生成する。次に、414に示すように、413のメッセージに、409の情報を埋め込み、<name>タグの次に<phone>タグを埋め込んだ415のメッセージを生成する。そして、生成した415のメッセージを<Body>タグに埋め込む形で、最終的に416のSOAPメッセージを生成する。
第1の実施形態によれば、呼び出し先のWEBサービスが解釈可能なSOAPメッセージの全体骨格をWSDL文書から作り、その後、データを挿入していくよりも、SOAPメッセージ生成時における資源の消費量を抑えることが可能となる。ここで、資源とは、例えばハードディスク、メモリなどである。
また、データが挿入されていない要素だけの情報といった不必要な情報がメッセージに付加されないので、呼び出し先のWEBサービスに対して不必要な情報までも送信される、ということも無くなる。
[第2の実施形態]
次に、図面を参照しながら本発明に係る第2の実施形態を詳細に説明する。第1の実施形態と同様に、第2の実施形態でも、識別情報をXPathとして扱う。第1の実施形態では、メッセージ生成処理部204が、406に示す対応づけ情報から順番にメッセージを組み立てただけであった。第2の実施形態では、メッセージの組み立て時にメッセージとして、より正確か否かを検証する処理が追加された場合を、図5及び図6を用いて説明する。
尚、図5に示すメッセージ生成及び構造検証部103は、図2に示す構成と一部同じであるため、図2中の符号を用いて説明する。また、図6に示すXPathと抽出データの対応づけ情報や、メッセージ生成処理の過程も、図4に示す情報と一部同じなので、図4中の符号を用いて説明する。
501はメッセージ生成及び検証処理部である。メッセージ生成及び検証処理部501は、WEBサービスインターフェース記述文書502から、メッセージの構造を示すスキーマの情報を読み込む。そして、XPath式関連づけ処理部203からの対応づけ情報406と比較し、構造が正しいか検証しながらメッセージを組み立てて生成し、検証済みリクエストSOAPメッセージB503として送信する。
次に、図5に示す処理の流れを、メッセージの具体例を用いて説明する。図6において、411のメッセージを組み立てるまでは、図4で説明した処理と同様である。601はWEBサービスインターフェース記述文書502の例であり、WSDL文書である。このWSDL文書の中にスキーマの情報602が記述されている。スキーマの情報としては、構造定義文書(XMLSchema)が例として記述されている。これらの情報を利用して、スキーマ情報に沿った構造になるように、検証処理を行いながら、メッセージを生成する。
602のスキーマを見ると、603に<person>タグについての情報が<xsd:element name=”person”>と記述されている。また同様に、604に<address>タグについての情報が<xsd:element minOccurs=”0” maxOccurs=”1” name=”address” type=”xsd:string”>と記述されている。これらのスキーマ情報は、605に示す<xsd:sequence>タグに囲まれている。そのため、スキーマの仕様から603の<person>タグの次に604の<address>タグが出現しなければならないと解釈できる。
よって、メッセージ生成及び検証処理部501では、413のメッセージを生成せず、411のメッセージに対して408の情報を挿入させるときに、その挿入位置を確認し、606に示すように、607のメッセージを次に生成するようにする。そして、409の<phone>タグとそのデータの情報を608に示すように、スキーマの情報を確認しながら最適な位置に挿入し、609のメッセージを生成する。そして、生成した609のメッセージを<Body>タグに埋め込む形で、最終的に610のSOAPメッセージとして生成する。
第2の実施形態は、第1の実施形態におけるSOAPメッセージ生成時において、更に検証機能を追加したものとなり、より正確なSOAPメッセージを外部のWEBサービスに送信することが可能となる。
[第3の実施形態]
次に、図面を参照しながら本発明に係る第3の実施形態を詳細に説明する。第1の実施形態及び第2実施形態では、識別情報をXPathとして扱ったが、第3の実施形態では、識別情報をXPath以外の情報として扱う。
図7は、第3の実施形態における識別情報の一例を説明するための図である。例えば、外部サービスが解釈できるメッセージの形式が701に示す形式であった場合を想定する。702は701のメッセージ形式に対して、データの取得や挿入を操作できる識別情報とデータを対応づけた情報である。703、704、705で示す部分がそれぞれサービスフロー記述文書に記述されているものとする。まず、706に示すように、title=baseから[base]、key=nameとデータであるabcからname=abcというように、対応づけた情報を707の形にマッピングする。
また同様に、708に示すように、709のように対応づけた情報をマッピングする。710に示すように、既に[base]は存在するので、その項目を追加する形でaddress=tokyoを711に示す形で挿入し、マッピングする。このような流れで、外部サービスへのメッセージを生成する。
生成したメッセージ711と、例えばデータがまだ挿入されていない骨格だけを示したメッセージ701に対して718に示すように、702の対応づけた情報からデータを挿入した719を比較する。719には、711にはない、age=やe-mail=などのデータが空の情報までも付加されている。よって、外部サービスに対して不必要な情報を与えないですむ。また、701の骨格を示したメッセージ自体が大容量の場合、全体を読み込む時点でメモリを多く消費することが予想される。
よって、上述した流れで、順番にメッセージを組み立てていくことで、メモリの消費量も減らすことが可能となる。
[第4の実施形態]
次に、図面を参照しながら本発明に係る第4の実施形態を詳細に説明する。第1の実施形態では、複合機に本発明を適用した場合を例に挙げて説明したが、本発明はこれだけに限らず、パーソナルコンピュータのような情報処理装置に適用することも可能である。
図8は、WEBサービスフロー処理装置として機能させる情報処理装置のハードウェア構成の一例を示す図である。図8に示すように、情報処理装置は、入力装置801、表示装置802、記録媒体ドライブ装置803、ROM805、RAM806、CPU807、インターフェース装置808、HD(ハードディスク)809を含む。
入力装置801は、操作者(オペレータ)が操作するキーボード及びマウスなどで構成され、情報処理装置に各種操作情報などを入力するのに用いられる。表示装置802は、操作者が利用するディスプレイなどで構成され、各種情報(又は画面)などを表示するのに用いられる。インターフェース装置808は、情報処理装置をネットワークなどに接続するインターフェースである。
前述したメッセージ生成及び構造検証部103の処理などのプログラムは、例えばCD−ROMなどの記録媒体804によって情報処理装置に提供されるか、ネットワークなどを通じてダウンロードされる。記録媒体804は、記録媒体ドライブ装置803にセットされ、プログラムが記録媒体804から記録媒体ドライブ装置803を介してHD809にインストールされる。
ROM805は、情報処理装置の電源投入時に、最初に読み込まれるプログラムなどを格納する。RAM806は、情報処理装置のメインメモリである。CPU807は、HD809よりプログラムを読み出してRAM806に格納し、プログラムを実行することで、前述した処理内容を実現する。また、HD809は、プログラム以外に、例えばWEBサービスフロー記述文書、WEBサービスインターフェース記述文書などを格納する。
尚、本発明は複数の機器(例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用しても良い。
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
第1の実施形態におけるWEBサービスフロー処理装置の概略を示す図である。 メッセージ生成及び構造検証部103における内部処理構成の一例を示す図である。 第1の実施形態におけるWEBサービスフロー記述文書106の構成の一例を示す図である。 第1の実施形態におけるSOAPメッセージの具体例を示す図である。 第2の実施形態におけるメッセージ生成及び構造検証部103の内部処理構成を示す図である。 第2の実施形態におけるSOAPメッセージの具体例を示す図である。 第3の実施形態における識別情報の一例を説明するための図である。 WEBサービスフロー処理装置として機能させる情報処理装置のハードウェア構成の一例を示す図である。
符号の説明
101 複合機
102 WEBサービスフロー処理装置
103 XPathによる構造化文書形式のメッセージ生成及び構造検証部
104 外部WEBサービスA
105 外部WEBサービスB
106 WEBサービスフロー記述文書
107 外部WEBサービスA用WEBサービスインターフェース記述文書
108 外部WEBサービスB用WEBサービスインターフェース記述文書
109 リクエストSOAPメッセージA
110 レスポンスSOAPメッセージA
111 リクエストSOAPメッセージB
112 レスポンスSOAPメッセージB
201 メッセージ受信処理部
202 データ抽出処理部
203 XPath式関連づけ処理部
204 メッセージ生成処理部

Claims (9)

  1. サービスフロー記述文書に基づいてフロー処理を実行するサービスフロー処理装置にて外部サービスへのメッセージを生成するメッセージ生成処理方法であって、
    フロー処理を実行中に前記外部サービスに対して行ったリクエストに対するレスポンスのメッセージを受信する受信工程と、
    前記サービスフロー記述文書に記述された、メッセージ内の特定の場所を指し示す識別情報を利用して前記レスポンスのメッセージからデータを抽出する抽出工程と、
    前記抽出したデータと前記識別情報とを対応づけて保持する保持工程と、
    前記識別情報に対応づけて保持したデータから次の外部サービスへリクエストするためのメッセージを生成する生成工程と、
    を有することを特徴とするメッセージ生成処理方法。
  2. 前記サービスフロー記述文書は、WEBサービスを順次呼び出すための手順を記述したWEBサービスフロー記述文書であることを特徴とする請求項1に記載のメッセージ生成処理方法。
  3. 前記サービスフロー記述文書は、構造化文書であることを特徴とする請求項1に記載のメッセージ生成処理方法。
  4. 前記識別情報は、XPathであることを特徴とする請求項1に記載のメッセージ生成処理方法。
  5. 前記メッセージは、SOAPメッセージであることを特徴とする請求項1に記載のメッセージ生成処理方法。
  6. 前記外部サービスが解釈可能なメッセージの構造を示す構造定義文書の記述に基づいて前記生成したメッセージの構造を検証する工程を更に有することを特徴とする請求項1に記載のメッセージ生成処理方法。
  7. サービスフロー記述文書に基づいてフロー処理を実行するサービスフロー処理装置にて外部サービスへのメッセージを生成するメッセージ生成処理装置であって、
    フロー処理を実行中に前記外部サービスに対して行ったリクエストに対するレスポンスのメッセージを受信する受信手段と、
    前記サービスフロー記述文書に記述された、メッセージ内の特定の場所を指し示す識別情報を利用して前記レスポンスのメッセージからデータを抽出する抽出手段と、
    前記抽出したデータと前記識別情報とを対応づけて保持する保持手段と、
    前記識別情報に対応づけて保持したデータから次の外部サービスへリクエストするためのメッセージを生成する生成手段と、
    を有することを特徴とするメッセージ生成処理装置。
  8. 請求項1乃至6の何れか1項に記載のメッセージ生成処理方法をコンピュータに実行させるためのプログラム。
  9. 請求項8に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2008064825A 2008-03-13 2008-03-13 メッセージ生成処理方法及びメッセージ生成処理装置 Expired - Fee Related JP5142773B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008064825A JP5142773B2 (ja) 2008-03-13 2008-03-13 メッセージ生成処理方法及びメッセージ生成処理装置
EP09002583A EP2101260A3 (en) 2008-03-13 2009-02-24 Service flow process method and apparatus
US12/391,982 US20090235157A1 (en) 2008-03-13 2009-02-24 Service flow process method and apparatus
CN200910117869A CN101534307A (zh) 2008-03-13 2009-03-13 服务流程处理方法和设备
KR1020090021658A KR101065937B1 (ko) 2008-03-13 2009-03-13 서비스 플로우 처리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008064825A JP5142773B2 (ja) 2008-03-13 2008-03-13 メッセージ生成処理方法及びメッセージ生成処理装置

Publications (3)

Publication Number Publication Date
JP2009223439A true JP2009223439A (ja) 2009-10-01
JP2009223439A5 JP2009223439A5 (ja) 2011-04-28
JP5142773B2 JP5142773B2 (ja) 2013-02-13

Family

ID=40796315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008064825A Expired - Fee Related JP5142773B2 (ja) 2008-03-13 2008-03-13 メッセージ生成処理方法及びメッセージ生成処理装置

Country Status (5)

Country Link
US (1) US20090235157A1 (ja)
EP (1) EP2101260A3 (ja)
JP (1) JP5142773B2 (ja)
KR (1) KR101065937B1 (ja)
CN (1) CN101534307A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632904B1 (en) 2013-02-15 2017-04-25 Ca, Inc. Alerting based on service dependencies of modeled processes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196767A (ja) * 2003-12-30 2005-07-21 Internatl Business Mach Corp <Ibm> ウェブ・サービス呼び出しをサポートするスケジューラ
JP2007026150A (ja) * 2005-07-19 2007-02-01 Internatl Business Mach Corp <Ibm> Webサービスを提供する方法、装置、プログラム
JP2007233973A (ja) * 2006-03-03 2007-09-13 Canon Inc 順次処理移譲装置及び順次処理移譲方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590644B2 (en) * 1999-12-21 2009-09-15 International Business Machine Corporation Method and apparatus of streaming data transformation using code generator and translator
JP3943830B2 (ja) 2000-12-18 2007-07-11 株式会社東芝 文書合成方法および文書合成装置
US7120869B2 (en) * 2001-08-16 2006-10-10 Sun Microsystems, Inc. Enhanced mechanism for automatically generating a transformation document
US6859810B2 (en) * 2001-12-10 2005-02-22 Bea Systems, Inc. Declarative specification and engine for non-isomorphic data mapping
WO2005022417A2 (en) * 2003-08-27 2005-03-10 Ascential Software Corporation Methods and systems for real time integration services
JP2005234837A (ja) * 2004-02-19 2005-09-02 Fujitsu Ltd 構造化文書処理方法、構造化文書処理システム及びそのプログラム
JP2005301437A (ja) 2004-04-07 2005-10-27 Hitachi Ins Software Ltd 適応型ウエブページデータ抽出装置および抽出プログラム
US7590685B2 (en) * 2004-04-07 2009-09-15 Salesforce.Com Inc. Techniques for providing interoperability as a service
US7802007B2 (en) * 2004-05-19 2010-09-21 Salesforce.Com, Inc. Techniques for providing connections to services in a network environment
KR20060001392A (ko) * 2004-06-30 2006-01-06 주식회사 한국인식기술 문자 인식을 이용한 내용검색 기반의 문서 이미지 저장 방법
US20070168857A1 (en) * 2006-01-17 2007-07-19 Oracle International Corporation Transformation of Source Data in a Source Markup Language to Target Data in a Target Markup Language
CA2641592A1 (en) * 2006-02-06 2007-08-16 Informatica Corporation Creating and managing xml schema version transformations
JP4958481B2 (ja) * 2006-06-01 2012-06-20 キヤノン株式会社 Webサービス実行方法及び情報処理装置
JP2008041082A (ja) * 2006-07-12 2008-02-21 Hitachi Ltd 処理装置及びプログラム
US7865619B2 (en) * 2006-09-29 2011-01-04 Intuit Inc. Method and apparatus for building centralized middleware

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196767A (ja) * 2003-12-30 2005-07-21 Internatl Business Mach Corp <Ibm> ウェブ・サービス呼び出しをサポートするスケジューラ
JP2007026150A (ja) * 2005-07-19 2007-02-01 Internatl Business Mach Corp <Ibm> Webサービスを提供する方法、装置、プログラム
JP2007233973A (ja) * 2006-03-03 2007-09-13 Canon Inc 順次処理移譲装置及び順次処理移譲方法

Also Published As

Publication number Publication date
EP2101260A2 (en) 2009-09-16
EP2101260A3 (en) 2010-05-05
US20090235157A1 (en) 2009-09-17
JP5142773B2 (ja) 2013-02-13
KR20090098742A (ko) 2009-09-17
CN101534307A (zh) 2009-09-16
KR101065937B1 (ko) 2011-09-19

Similar Documents

Publication Publication Date Title
JP4355639B2 (ja) 画像処理装置およびその制御方法
CN100399323C (zh) 用于检验扩展标记语言文件的有效性的装置和方法
US7197702B2 (en) Web page rendering mechanism using external programmatic themes
KR101150104B1 (ko) 이용 불가능한 폰트로 포맷된 텍스트 구성 요소의 정확한시각적 렌디션을 제공하기 위한 방법
US9122762B2 (en) Method and system to maintain a web page
US7509422B2 (en) System and method for locating web services
US8250103B2 (en) Image log management device, image log management method, image log management program
JP5134456B2 (ja) サービスフロー処理装置及びサービスフロー処理方法
JP2004362183A (ja) プログラム管理方法及び実施装置並びに処理プログラム
CN113419729A (zh) 基于组件化的前端页面搭建方法、装置、设备及存储介质
JP4790043B2 (ja) 画像処理装置およびその制御方法
US8112500B2 (en) Technique of relaying communications between client apparatus and server apparatus
US20080024834A1 (en) Information registration apparatus for registering information onto registering destination on network and method thereof
US8069234B2 (en) Web service execution method, processing method and apparatus
JP5142773B2 (ja) メッセージ生成処理方法及びメッセージ生成処理装置
JP2009301538A (ja) サービスフロー処理装置及び方法
JP4956509B2 (ja) 画像処理装置およびその制御方法
JP5049952B2 (ja) 画像処理装置およびその制御方法
JP5235349B2 (ja) フロー記述文書処理装置、フロー記述文書処理方法及びプログラム
JP2007272443A (ja) 開発支援装置、開発支援方法および開発支援プログラム
US20140245138A1 (en) Document conversion and printing
JP2004145736A (ja) 文字認識装置および文字認識データ出力方法およびプログラムおよび記録媒体
US8024375B2 (en) Method and apparatus for processing messages
US20050010669A1 (en) Method and system for managing programs for web service system
JP2009123116A (ja) 情報処理装置および情報処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110309

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120822

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

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

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

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5142773

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees