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

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

Info

Publication number
JP5134456B2
JP5134456B2 JP2008171233A JP2008171233A JP5134456B2 JP 5134456 B2 JP5134456 B2 JP 5134456B2 JP 2008171233 A JP2008171233 A JP 2008171233A JP 2008171233 A JP2008171233 A JP 2008171233A JP 5134456 B2 JP5134456 B2 JP 5134456B2
Authority
JP
Japan
Prior art keywords
service
web service
external
description document
processing
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
JP2008171233A
Other languages
English (en)
Other versions
JP2010009519A (ja
JP2010009519A5 (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 JP2008171233A priority Critical patent/JP5134456B2/ja
Priority to US12/473,654 priority patent/US20090327454A1/en
Priority to CN200910150062A priority patent/CN101621544A/zh
Publication of JP2010009519A publication Critical patent/JP2010009519A/ja
Publication of JP2010009519A5 publication Critical patent/JP2010009519A5/ja
Application granted granted Critical
Publication of JP5134456B2 publication Critical patent/JP5134456B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0733Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

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)で管理されている。
尚、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サービスに対して送信する。
また、外部WEBサービスが停止している場合に対応するために、外部WEBサービスの状態を管理することで、外部WEBサービスへアクセスするサービスリクエスタの負担を軽減させる提案がなされている。例えば、特許文献1参照。
特開2004−185138号公報 「ビジネス・プロセス:BPEL4WSについて 第1回」http://www.ibm.com/developerworks/jp/webservices/library/ws-bpelcol1/
しかしながら、従来のフロー処理装置では、外部WEBサービスに対してアクセスを行ったときに外部WEBサービスを公開している機器の電源が切られているか、外部WEBサービスが停止していると、フロー処理が停止してしまう。従って、このような場合には、サービスフロー記述文書に記述されている次に予定されていたフロー処理を進めることが困難である、という問題があった。
このような場合、フロー処理を停止させないように、予めサービスフロー記述文書に様々な異常状態を想定し、回避処理内容を記述することが考えられる。しかし、様々な異常状態に対応させるためには、サービスフロー記述文書自体が複雑になり、サービスフロー記述文書を作成する人間の手間が増え、人的コストが増大する。
また、様々な異常状態に対応させるためには、サービスフロー記述文書自体のサイズも膨大になるため、低資源のデバイス機器でサービスフロー記述文書を読み込むと、処理可能な資源のサイズを超える可能性がある。従って、その時点で処理不能となり、サービスフロー記述文書の処理を継続させることが困難である、という問題もあった。
また、外部WEBサービスの状態を管理するサービスブローカーを用意し、必ずサービスブローカーを経由して外部WEBサービスへアクセスする方法が提案されている。
しかし、外部WEBサービスが、サービスブローカーに対して停止予告有りと通知していない状態で、外部WEBサービスが予期せぬトラブルで停止した場合、サービスリクエスタは外部WEBサービスに対してアクセスできず処理が停止してしまう。
また、外部WEBサービスが停止していない状態でも、必ずサービスブローカーを経由するため、外部WEBサービスを呼び出し、処理を行わせ、処理結果を受け取るまでに、直接接続するよりも時間がかかることが想定される。
また、サービスブローカー自体にトラブルが発生した場合、外部WEBサービスが停止していなくても、外部WEBサービスにアクセスできなくなる。
更に、サービスブローカーで外部WEBサービス毎にプロキシを生成し、外部WEBサービスが停止していない場合でも生成したプロキシが存在し続けるため、サービスブローカーを搭載する機器の資源を圧迫することもある。
本発明は、外部サービスの状態に応じて、該外部サービスを実行するか、装置内に生成した内部サービスを実行するかを切り替えることを目的とする。
本発明は、サービスフロー記述文書に記述されたフロー処理を実行するサービスフロー処理装置であって、
部サービスへのアクセスにおいてエラーが発生した場合、前記外部サービスサービスインターフェース記述文書に記述された、前記外部サービスの所在を示すエンドポイントの記述を、前記サービスフロー処理装置の内部に生成された内部サービスの所在を示すエンドポイントの記述に変換する変換手段と
前記変換手段により変換されたサービスインターフェース記述文書に基づいて前記内部サービスを実行する実行手段とを有することを特徴とする。
また、本発明は、サービスフロー記述文書に記述されたフロー処理を実行するサービスフロー処理装置にて実行されるサービスフロー処理方法であって、
変換手段が、外部サービスへのアクセスにおいてエラーが発生した場合、前記外部サービスサービスインターフェース記述文書に記述された、前記外部サービスの所在を示すエンドポイントの記述を、前記サービスフロー処理装置の内部に生成された内部サービスの所在を示すエンドポイントの記述に変換する変換工程と
実行手段が、前記変換工程において変換されたサービスインターフェース記述文書に基づいて前記内部サービスを実行する実行工程とを有することを特徴とする。
本発明によれば、外部サービスの状態に対してサービスフロー記述文書自体に回避処理を記述する必要が無いため、サービスフロー記述文書を作成する手間やスキルなどの人的コストを低減させることができる。
また、回避処理を記述しないで済むので、サービスフロー記述文書自体のサイズも増大しない。更に、外部サービスの異常時に生成する内部サービスは、不必要になった時点で削除する。そのため、サービスフロー記述文書を読み込み実行するデバイス機器の資源の使用量を低減でき、本装置の搭載が可能となる。
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
[第1の実施形態]
第1の実施形態として、外部サービス呼び出し処理自動切り替え処理の概要を、図1を用いて説明する。尚、以下の実施形態においては、外部サービスをWEBサービスとして扱う。
図1は、第1の実施形態におけるWEBサービスフロー処理装置の概略を示す図である。図1において、101はコピー、スキャン、プリントなどの複数の機能を有する複合機である。第1の実施形態では、複合機101はWEBサービスフロー記述文書を読み込み、その記述内容に従ってWEBサービスを順次実行可能なWEBサービスフロー処理装置102として機能する。
更に、WEBサービスフロー処理装置102内部には、外部サービス呼び出し処理自動切り替えサービスフロー処理部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の記述内容を順次実行していく。
次に、リクエストSOAPメッセージA109を生成し、外部WEBサービスA104に送信する。外部WEBサービスA104で処理が行われ、その結果として、レスポンスSOAPメッセージA110が返信される。そのレスポンスSOAPメッセージA110を受信し、そのメッセージから必要なデータを抽出し、リクエストSOAPメッセージB111を生成する。そして、外部WEBサービスB105にアクセスする。
このとき、サービスを搭載したサーバ機器などの電源が切られているため、外部WEBサービスB105が停止していたとする。このような場合、外部WEBサービスB105からの応答112がないため、WEBサービスフロー処理装置102では、エラーと判断する。外部サービスに対してアクセスした結果、エラーが起こった場合は、外部サービス呼び出し処理自動切り替えサービスフロー処理部103に対してエラー通知を行う。
ここで、エラー通知を受信した外部サービス呼び出し処理自動切り替えサービスフロー処理部103は、エラーが起きた外部WEBサービスB105用の外部WEBサービスB用WEBサービスインターフェース記述文書108を取得する。外部WEBサービスB用WEBサービスインターフェース記述文書108に記述されたエンドポイントは、ネットワーク上のサービスの所在を示す。そして、外部WEBサービスB用WEBサービスインターフェース記述文書108に記述されたエンドポイントを、複合機101上の仮想的なサービスである内部サービスの所在を示すエンドポイントに変換する。
この変換前の外部WEBサービスB105のエンドポイントは記憶しておく。そして、エンドポイントを変換した外部WEBサービスB用WEBサービスインターフェース記述文書108から、内部WEBサービスB115を自動生成する。内部WEBサービスB115が自動生成された後、WEBサービスフロー処理装置102は、エラーが起きたときに実行していたフロー処理を再び実行する。ここで、外部WEBサービスB用WEBサービスインターフェース記述文書108を再度読み込み直し、エンドポイントが変更されているため、アクセス先が自動的に変更される。
このように、WEBサービスフロー処理装置102は、内部WEBサービスB115にアクセスし、リクエストSOAPメッセージB116(リクエストSOAPメッセージB111と同一)を送信する。そして、内部WEBサービスB115は、呼び出した相手が解釈できるレスポンスSOAPメッセージ仮想B117を自動生成して返信する。即ち、内部WEBサービスB115は、外部WEBサービスB105の代わりに、仮のレスポンスSOAPメッセージを返信する。
これにより、WEBサービスフロー処理装置102が外部WEBサービスに対してアクセスした時にエラーが起きても、フロー処理を停止することなく、WEBサービスフロー記述文書106に記述された次のフロー処理を実行することが可能となる。その後、外部サービス呼び出し処理自動切り替えサービスフロー処理部103は、外部WEBサービスB105を監視118する。
例えば、外部WEBサービスB用WEBサービスインターフェース記述文書108からスタブを自動生成し、外部サービス呼び出し処理自動切り替えサービスフロー処理部103で記憶されていたエンドポイントにアクセスを繰り返し、反応を確かめる。この動作を外部WEBサービスB105が再び動き出すまで一定間隔或いは不規則に繰り返すことで監視する。
外部WEBサービスB105からアクセスに対して反応があり、再び動き出したことを確認すると、外部WEBサービスB用WEBサービスインターフェース記述文書108のエンドポイントを元に戻す。これにより、WEBサービスフロー処理装置102は、再び外部WEBサービスB105とのやりとりが可能となる。
次に、外部サービス呼び出し処理自動切り替えサービスフロー処理部103の具体的な処理内容を、図2を用いて説明する。
図2は、外部サービス呼び出し処理自動切り替えサービスフロー処理部の内部処理構成を示す図である。外部サービス呼び出し処理自動切り替えサービスフロー処理部103は、エラー通知受信処理部201、サービス自動公開処理部202、外部サービス監視処理部203から構成される。
WEBサービスフロー処理装置102が外部WEBサービスB105にアクセス211したときに、外部WEBサービスB105が機器のトラブルやその他の原因で停止していると、アクセス211に対する応答212が無い。この場合、WEBサービスフロー処理装置102は、外部WEBサービスB105にエラーが発生したと解釈する。そして、エラーが発生したことを、アクセスした外部WEBサービスB105に関する情報と共に、エラー通知受信処理部201に通知する。
エラー通知受信処理部201は、エラーの対象となった外部WEBサービスB105に関する情報をサービス自動公開処理部202に通知する。サービス自動公開処理部202は、まず外部WEBサービスB用WEBサービスインターフェース記述文書108に記述された外部WEBサービスB105のネットワーク上の所在を示すエンドポイントが記述された場所を特定する。次に、そのエンドポイントをWEBサービスフロー処理装置102及び外部サービス呼び出し処理自動切り替えサービスフロー処理部103が搭載された機器に公開する内部WEBサービスのネットワーク上の所在を示すエンドポイントに変換する。この変換前のエンドポイント情報も保存しておく。
ここで、エンドポイントが変換された外部WEBサービスB用WEBサービスインターフェース記述文書108から内部WEBサービスB115を自動生成し、サービスとして公開する。そして、外部サービス監視処理部203に外部WEBサービスB用WEBサービスインターフェース記述文書108と、保存された外部WEBサービスB105を示すエンドポイントの情報を渡す。
これにより、外部サービス監視処理部203は、外部WEBサービスB105の状態の監視を開始する。内部WEBサービスB115が自動生成された後、WEBサービスフロー処理装置102は、エラーが起きたときに実行していたフロー処理を再び実行する。その際に外部WEBサービスB用WEBサービスインターフェース記述文書108を再度読み込み直すので、エンドポイントが変更されたアクセス先へ自動的にアクセスすることができる。よって、内部WEBサービスB115に対してアクセスし、その応答を受け取ることができる。
このように、WEBサービスフロー処理装置102は、外部WEBサービスB105にアクセスしたときにエラーが起きても、フロー処理を停止することなく、WEBサービスフロー記述文書106に記述された次のフロー処理を実行することが可能となる。
その間、外部サービス監視処理部203は、外部WEBサービスB105の監視を継続している。監視方法としては、例えば外部WEBサービスB用WEBサービスインターフェース記述文書108からスタブを自動生成し、サービス自動公開処理部202で記憶したエンドポイントに対してアクセスを繰り返し、反応を確かめる。この動作を外部WEBサービスB105が再び動き出すまで一定間隔で繰り返すことで監視する。
その後、外部WEBサービスB105からアクセスに対して反応があり、再び動き出したことを確認すると、サービス自動公開処理部202に再び動き出したことを通知する。サービス自動公開処理部202は、外部WEBサービスB用WEBサービスインターフェース記述文書108のエンドポイントを、保存しておいた外部WEBサービスB105のネットワーク上の所在を示すエンドポイントに戻す。
更に、内部WEBサービスB115の公開を停止し、内部WEBサービスB115自体の情報を全て削除する。その後、WEBサービスフロー処理装置102は外部WEBサービスB用WEBサービスインターフェース記述文書108を読み込むので、再び動き出した外部WEBサービスB105にアクセスすることができる。その結果、再び正常な応答を受け取ることができる。
ここで、外部サービス呼び出し処理自動切り替えサービスフロー処理部103の詳細な処理を、具体的なデータを用いて説明する。
図3は、WEBサービスフロー記述文書とその具体例を示す図である。図3に示すように、WEBサービスフロー記述文書106は、プログラムで言う変数宣言などを記述する宣言部301と、フロー処理のロジックなどを記述するロジック部302から構成されている。
宣言部301は、WEBサービスフロー記述文書106を特定する情報及び呼び出し先各WEBサービスのインターフェース記述文書を特定する情報311と、WEBサービスフロー処理で用いる変数情報312とが記述されている。
ロジック部302は、本来であればクライアントからリクエストメッセージを受信する記述やクライアントにレスポンスメッセージを返信する記述など全てのフロー処理の内容が記述される。しかし、この例では、本発明を説明するために必要な情報のみを記述することとする。
321は外部WEBサービスAを呼び出し、外部WEBサービスAに処理を行わせ、その処理結果のレスポンスメッセージを受信する処理内容が記述される。322は受信した処理結果のレスポンスメッセージから、処理結果を抽出し、外部WEBサービスBが解釈できるリクエストメッセージを生成する処理内容が記述される。323は外部WEBサービスBを呼び出し、外部WEBサービスBに処理を行わせ、その処理結果のレスポンスメッセージを受信する処理内容が記述される。324は受信した処理結果を含むレスポンスメッセージから処理結果を抽出し、次の外部WEBサービスが解釈できるリクエストメッセージを生成する処理内容が記述される。
303はWEBサービスフロー記述文書106の具体例である。この例では、WSBPELというWEBサービスの処理フローをXML文書で記述するための標準仕様になっている言語で記述されている。WSBPELは、Web Service Business Process Execution Languageの略である。また、XMLは、eXtensible Markup Languageの略である。以下、WEBサービスフロー記述文書106の構成と、WEBサービスフロー記述文書303とを比較する。
331は311の記述内容に対応し、WEBサービスフロー記述文書を特定する情報と呼び出し先の各WEBサービスのインターフェース記述文書(WSDL文書)を特定する情報が記述される。ここでは、<process>タグの属性値としてネームスペースで記述されている。
332は312の記述内容に対応し、フロー処理を行うときに使用するメッセージ変数の型情報がそれぞれ<variable>タグで記述されている。
333は321の記述内容に対応し、外部WEBサービスAを呼び出し、処理を行わせた結果のレスポンスメッセージを受信する処理内容が<invoke>タグで記述されている。
334は322の記述内容に対応し、受信したレスポンスメッセージからXPathを利用して抽出した処理結果とXPathから外部WEBサービスBが解釈できるリクエストメッセージを生成する処理内容が記述される。ここでは、<assign>タグなどで記述されている。
335は323の記述内容に対応し、外部WEBサービスBを呼び出し、処理を行わせた結果のレスポンスメッセージを受信する処理内容が記述される。ここでは、<invoke>タグで記述されている。
336は324の記述内容に対応し、受信したレスポンスメッセージからXPathを利用して抽出した処理結果とXPathから次に呼び出す外部WEBサービスが解釈できるリクエストメッセージを生成する処理内容が記述される。ここでは、<assign>タグなどで記述される。
ロジック部302の記述内容に対応する<assign>、<invoke>タグは、WSBPELではアクティビティと呼ぶ。<assign>タグはメッセージの加工、変換、<invoke>タグは外部のWEBサービスの呼び出しといったように、WEBサービスフロー処理の表現を抽象化したものである。本実施形態においては、335のinvokeアクティビティの実行時に発生したエラーの場合について説明する。
335のinvokeアクティビティを実行し、外部サービスにアクセスした結果、応答がなければ、次の336で示すアクティビティの処理に移ることができず、その時点でフロー処理が停止してしまう。本実施形態においては、このフロー処理が処理の途中で停止してしまうことを防ぐことを目的としている。
次に、サービス自動公開処理部202の処理内容を、外部WEBサービスB用WEBサービスインターフェース記述文書108の具体例としてWSDLで記述された例を用いて説明する。
図4は、外部WEBサービスB用インターフェース記述文書108の具体例401を示す図である。402には外部WEBサービスB105のネットワーク上の所在を指し示すエンドポイントの情報403がWSDLの<address>タグとして記述されている。このエンドポイントの情報を、サービス自動公開処理部202では、自動生成する内部WEBサービスB115のネットワーク上の所在を指し示すエンドポイントの情報404に変換する。内部WEBサービスB115は、複合機101内部に公開するため、404に示すエンドポイントは、複合機101のネットワーク上の所在を指し示すものになる。
次に、内部WEBサービスB115が、WEBサービスフロー処理装置102からのアクセスに対してどのような応答405をするかを説明する。WSDL401には、WEBサービスがリクエスト時に解釈できるメッセージの型と、その応答時に返すメッセージの型に関する情報が、XMLSchema406として記述されている。サービス自動公開処理部202では、実際のWEBサービスとのやりとりと同様に、SOAPメッセージをやりとりできるように内部WEBサービスB115を自動生成する。
そのため、内部WEBサービスB115からの応答405はSOAPメッセージとなる。407に応答時にどのようなメッセージの型にするかが記述されており、その情報から408のSOAPメッセージを自動生成する。内部WEBサービスB115は実際に処理を行うわけではないため、例えば409に示すように、<resultdata>タグだけで中身のデータが空の状態にしてSOAPメッセージを生成する。また、407の<xsd:element name="resultdata" type="xsd:string" />から、<resultdata>タグはString型の情報を持つことができると解釈できる。そこで、適当な文字列を挿入して返すことも可能である。以上のように、内部WEBサービスB115は、外部WEBサービスB105の代わりに、仮の応答SOAPメッセージ408を返信する。
その結果、WEBサービスフロー処理装置102は、応答としてSOAPメッセージ408を受信することができるため、その時点で処理が停止せず、受信した後のフロー処理を実行することが可能となる。
次に、外部サービス監視処理部203における処理の一例を、図5を用いて説明する。
図5は、第1の実施形態における外部サービス監視処理部の処理を示すフローチャートである。まず、S501で、サービス自動公開処理部202から外部WEBサービスB用WEBサービスインターフェース記述文書108と、外部WEBサービスB105を指し示すエンドポイントの情報を取得する。そして、それらの情報に基づいて外部WEBサービスB105にアクセスするためのスタブを生成する。
次に、S502で、S501で生成したスタブを利用して外部WEBサービスB105にアクセスする。そして、S503で、外部WEBサービスB105から応答があったか否かを判定する。ここで応答がなければ、S502に戻り、上述の処理を繰り返す。
一方、S502でアクセスした結果、外部WEBサービスB105が再び起動し、応答があれば、S503で応答ありと判定し、S504へ処理を進める。このS504では、サービス自動公開処理部202に外部WEBサービスB用WEBサービスインターフェース記述文書108のエンドポイント記述を元に戻すように通知する。
第1の実施形態によれば、障害の発生により停止している外部WEBサービスに対してWEBサービスフロー処理装置がアクセスしても、その時点で処理を停止することなく、継続することが可能となる。
また、サービスフロー記述文書にエラー時の複雑な回避処理を記述する必要がないため、サービスフロー記述文書を作成する人の手間が減り、人的コストを低減できる。
[第2の実施形態]
次に、図面を参照しながら本発明に係る第2の実施形態を詳細に説明する。第2の実施形態でも、第1の実施形態と同様に、外部サービスをWEBサービスとして扱う。
第1の実施形態では、外部サービス監視処理部203が外部WEBサービスB105へのアクセスに対して応答があるか否かを監視していた。第2の実施形態では、監視を終了できる判断基準を外部から与えることで、その判断基準に基づき、監視を終了させる場合の処理を説明する。
尚、第2の実施形態における複合機101、WEBサービスフロー処理装置102及び外部サービス呼び出し処理自動切り替えサービスフロー処理部103の構成は第1の実施形態で説明した図1及び図2に示す構成と同じであり、その説明は省略する。
図6は、第2の実施形態における外部サービス監視処理部の処理を示すフローチャートである。第1の実施形態と同様に、S502で、アクセスした結果、外部WEBサービスB105から図6に示すようなSOAPメッセージ611が返ってきたとする。SOAPメッセージ611は、<env:Body>タグの中に<env:Fault>タグ612がある。
つまり、SOAPメッセージ611はSOAPFaultである。SOAPFaultはWEBサービスにアクセスした結果、WEBサービス側はリクエストを受け付けたが、WEBサービス内部で処理している最中にエラーが発生した場合など、アクセスしてきた相手に返すSOAPメッセージである。
SOAPFaultでは、<env:Code>タグ613で、エラーが発生した原因として、リクエストしてきた相手の問題か、WEBサービス側の問題かを示す。この例では<env:Value>タグの値がReceiverなので、WEBサービス側に問題があるということがわかる。また、<env:Value>タグの値がSenderであれば、リクエストしてきた相手側に問題があるということになる。
リクエストしてきた相手側に問題がある場合としては、例えばリクエストしてきた相手が生成したリクエスト用のSOAPメッセージが仕様に適合していないなどがある。このように、SOAPメッセージ611を受信した場合、S503で応答があるか否かを判定する処理では、応答ありと判定する。
図6に示す614はエラー条件設定情報の一例であり、例えばXML形式で記述され、615の<message>タグの値としてSOAPFaultの値が記述され、616の<code>タグの値としてReceiverの値が記述されている。
S601で、エラー条件設定情報614を読み込み、SOAPメッセージがSOAPFaultで、且つ、原因がWEBサービス側であった場合、エラー判定と解釈する。そのため、S602で、エラー判定処理を行い、SOAPメッセージ611とエラー条件設定情報614からSOAPメッセージ611では、まだエラーであると判定する。よって、S502に戻り、上述の処理を繰り返す。
第2の実施形態によれば、第1の実施形態の外部サービス監視処理において、外部からエラー条件設定情報を与えることで、外部サービスから応答があった場合にも監視を継続させるかを制御することが可能となる。
[第3の実施形態]
次に、図面を参照しながら本発明に係る第3の実施形態を詳細に説明する。第1及び第2の実施形態では、外部サービス呼び出し処理自動切り替えサービスフロー処理部の適用場面として、複合機というデバイス機器へ搭載する例を挙げた。しかし、本発明はこれに限らず、情報処理装置(コンピュータ)に適用することも可能である。
図7は、第3の実施形態におけるフロー処理装置として機能する情報処理装置の構成の一例を示す図である。上述した実施形態の機能を実現するソフトウェアを実行する情報処理装置のハードウェア構成の一例を示している。
情報処理装置は、ハードウェア構成として入力装置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サービスフロー記述文書、WEBサービスインターフェース記述文書などを格納する。
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
第1の実施形態におけるWEBサービスフロー処理装置の概略を示す図である。 外部サービス呼び出し処理自動切り替えサービスフロー処理部の内部処理構成を示す図である。 WEBサービスフロー記述文書とその具体例を示す図である。 外部WEBサービスB用インターフェース記述文書の具体例を示す図である。 第1の実施形態における外部サービス監視処理部の処理を示すフローチャートである。 第2の実施形態における外部サービス監視処理部の処理を示すフローチャートである。 第3の実施形態におけるフロー処理装置として機能する情報処理装置の構成の一例を示す図である。
符号の説明
101 複合機
102 WEBサービスフロー処理装置
103 外部サービス呼び出し処理自動切り替えサービスフロー処理部
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
115 内部WEBサービスB
201 エラー通知受信処理部
202 サービス自動公開処理部
203 外部サービス監視処理部

Claims (6)

  1. サービスフロー記述文書に記述されたフロー処理を実行するサービスフロー処理装置であって、
    部サービスへのアクセスにおいてエラーが発生した場合、前記外部サービスサービスインターフェース記述文書に記述された、前記外部サービスの所在を示すエンドポイントの記述を、前記サービスフロー処理装置の内部に生成された内部サービスの所在を示すエンドポイントの記述に変換する変換手段と
    前記変換手段により変換されたサービスインターフェース記述文書に基づいて前記内部サービスを実行する実行手段とを有することを特徴とするサービスフロー処理装置。
  2. 記外部サービスへ一定間隔でアクセスし、該外部サービスから応答が得られるか否かを判定する判定手段を更に有し
    前記判定の結果、前記応答が得られた場合、前記変換手段は、前記変換されたサービスインターフェース記述文書に記述された、前記内部サービスの所在を示すエンドポイントの記述を、前記外部サービスの所在を示すエンドポイントの記述に切り替え、
    前記実行手段は、前記切り替えられたサービスインターフェース記述文書に基づいて前記外部サービスを実行することを特徴とする請求項1に記載のサービスフロー処理装置。
  3. 前記判定の結果、前記応答が得られた場合、前記応答の内容に応じて前記エンドポイントの切り替えを行うか否かを設定する設定手段を更に有することを特徴とする請求項2に記載のサービスフロー処理装置。
  4. サービスフロー記述文書に記述されたフロー処理を実行するサービスフロー処理装置にて実行されるサービスフロー処理方法であって、
    変換手段が、外部サービスへのアクセスにおいてエラーが発生した場合、前記外部サービスサービスインターフェース記述文書に記述された、前記外部サービスの所在を示すエンドポイントの記述を、前記サービスフロー処理装置の内部に生成された内部サービスの所在を示すエンドポイントの記述に変換する変換工程と
    実行手段が、前記変換工程において変換されたサービスインターフェース記述文書に基づいて前記内部サービスを実行する実行工程とを有することを特徴とするサービスフロー処理方法。
  5. 判定手段が、前記外部サービスへ一定間隔でアクセスし、該外部サービスから応答が得られるか否かを判定する判定工程を更に有し、
    前記判定の結果、前記応答が得られた場合、前記変換工程は、前記変換されたサービスインターフェース記述文書に記述された、前記内部サービスの所在を示すエンドポイントの記述を、前記外部サービスの所在を示すエンドポイントの記述に切り替え、
    前記実行工程は、前記切り替えられたサービスインターフェース記述文書に基づいて前記外部サービスを実行することを特徴とする請求項4に記載のサービスフロー処理方法。
  6. コンピュータを請求項1乃至3の何れか1項に記載のサービスフロー処理装置の各手段として機能させるためのプログラム。
JP2008171233A 2008-06-30 2008-06-30 サービスフロー処理装置及びサービスフロー処理方法 Expired - Fee Related JP5134456B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008171233A JP5134456B2 (ja) 2008-06-30 2008-06-30 サービスフロー処理装置及びサービスフロー処理方法
US12/473,654 US20090327454A1 (en) 2008-06-30 2009-05-28 Service flow processing apparatus and method
CN200910150062A CN101621544A (zh) 2008-06-30 2009-06-30 服务流处理设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008171233A JP5134456B2 (ja) 2008-06-30 2008-06-30 サービスフロー処理装置及びサービスフロー処理方法

Publications (3)

Publication Number Publication Date
JP2010009519A JP2010009519A (ja) 2010-01-14
JP2010009519A5 JP2010009519A5 (ja) 2011-08-18
JP5134456B2 true JP5134456B2 (ja) 2013-01-30

Family

ID=41448837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008171233A Expired - Fee Related JP5134456B2 (ja) 2008-06-30 2008-06-30 サービスフロー処理装置及びサービスフロー処理方法

Country Status (3)

Country Link
US (1) US20090327454A1 (ja)
JP (1) JP5134456B2 (ja)
CN (1) CN101621544A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9258391B2 (en) * 2009-05-29 2016-02-09 Canon Kabushiki Kaisha Processing method and apparatus
EP2572291A4 (en) * 2010-05-19 2013-12-11 Akamai Tech Inc RAND SERVER HTTP POST NEWS PROCESSING
US20110295646A1 (en) * 2010-05-26 2011-12-01 Sap Ag Service delivery management for brokered service delivery of service groups
US10560541B2 (en) * 2010-05-26 2020-02-11 Sap Se Service delivery management for brokered service delivery
JP2012053511A (ja) * 2010-08-31 2012-03-15 Canon Inc サーバ装置、情報処理装置、サービス処理装置、ネットワークシステム、ジョブ処理方法及びプログラム
US8719824B2 (en) * 2011-08-03 2014-05-06 Raytheon Company Dynamically configurable command and control systems and methods
JP6244717B2 (ja) * 2013-06-25 2017-12-13 セイコーエプソン株式会社 印刷制御サーバー及び印刷システム
CN107423105A (zh) * 2017-06-19 2017-12-01 上海高顿教育培训有限公司 一种接口文档的自动生成方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6414368B1 (en) * 1982-11-26 2002-07-02 Stmicroelectronics Limited Microcomputer with high density RAM on single chip
US20010037405A1 (en) * 2000-04-07 2001-11-01 Sideek Sinnathambi Mohamed Wireless web generation from conventional web sites by pattern identification and dynamic content extraction
JP2002207601A (ja) * 2001-01-05 2002-07-26 Toshiba Corp 制御装置
US20030005078A1 (en) * 2001-06-28 2003-01-02 Turicchi Thomas Edwin Apparatus and method for providing user-requested content through an alternate network service
US8126959B2 (en) * 2001-06-28 2012-02-28 International Business Machines Corporation Method and system for dynamic redistribution of remote computer boot service in a network containing multiple boot servers
JP2004288067A (ja) * 2003-03-24 2004-10-14 Fuji Xerox Co Ltd 連携処理装置、連携処理方法及びプログラム
US7287179B2 (en) * 2003-05-15 2007-10-23 International Business Machines Corporation Autonomic failover of grid-based services
US7562254B2 (en) * 2003-07-01 2009-07-14 International Business Machines Corporation Checkpointing and restarting long running web services
US7584500B2 (en) * 2003-11-19 2009-09-01 Hughes Network Systems, Llc Pre-fetching secure content using proxy architecture
CN1981463B (zh) * 2004-06-22 2011-11-16 中兴通讯股份有限公司 一种光网络中业务连接建立和业务恢复保护方法
DE602006012773D1 (de) * 2005-10-03 2010-04-22 Sap Ag Datenverarbeitungssystem und Verfahren zur Spiegelung der Bereitstellung von Identifikatoren
JP2007334717A (ja) * 2006-06-16 2007-12-27 Univ Nihon 分散オブジェクトの高信頼化方式
CN101127655B (zh) * 2006-08-18 2012-06-06 国际商业机器公司 集成现有基于万维网的系统的方法和系统
US7840660B1 (en) * 2007-08-29 2010-11-23 Mcafee, Inc. System, method, and computer program product for determining whether a process identified utilizing a first proxy is associated with an additional proxy
US8032588B2 (en) * 2008-06-23 2011-10-04 International Business Machines Corporation System and method for hosting one or more versions of a service using a service proxy

Also Published As

Publication number Publication date
US20090327454A1 (en) 2009-12-31
JP2010009519A (ja) 2010-01-14
CN101621544A (zh) 2010-01-06

Similar Documents

Publication Publication Date Title
JP5134456B2 (ja) サービスフロー処理装置及びサービスフロー処理方法
JP4681968B2 (ja) サービス要求装置、サービス要求方法、サービス要求プログラム、及び記録媒体
US7987278B2 (en) Web services device profile on a multi-service device: dynamic addition of services
JP5159071B2 (ja) 通信システム及び通信装置とその制御方法
JP2012048582A (ja) 印刷ジョブ管理システムおよびその制御方法、情報処理装置、印刷サーバ
JP5444652B2 (ja) ネットワーク装置、処理方法及びコンピュータプログラム
JP2007293603A (ja) 情報処理装置及び情報処理方法及びプログラム
JP5537160B2 (ja) イベント代行通知装置及びその制御方法とそのプログラム
JP2009255390A (ja) 画像形成装置、機能連携制御方法、及び機能連携制御プログラム
JP2010027007A (ja) 処理装置、要求装置、及びそれらの処理方法
US7873647B2 (en) Web services device profile on a multi-service device: device and facility manager
US8688858B2 (en) Image processing device, device management system, and image processing method
US8112766B2 (en) Multi-threaded device and facility manager
JP2009301538A (ja) サービスフロー処理装置及び方法
JP5450678B2 (ja) ネットワークにおけるイベント通知システム
JP5258474B2 (ja) 電子機器及びアプリケーション実行方法
US10095563B2 (en) Method, device, and computer program for improving access to services in a web runtime environment
JP5014095B2 (ja) 複合機
JP5272400B2 (ja) 新たなサービスを装置に動的に追加するための方法、装置及びコンピュータプログラム
JP2004086354A (ja) 画像処理装置
US7529837B2 (en) Device and method for changing instruction description, and storage medium storing program for changing instruction
JP5142773B2 (ja) メッセージ生成処理方法及びメッセージ生成処理装置
JP2008181487A (ja) 装置とファシリティマネージャ内のディスカバリ機能の統合
US8024375B2 (en) Method and apparatus for processing messages
JP2004240864A (ja) 画像処理システム、画像処理システムに用いるプログラム及び同プログラムを記録した媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110630

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121003

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

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

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

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5134456

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees