[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6039446B2 - Webサーバ装置、制御方法、そのプログラム。 - Google Patents

Webサーバ装置、制御方法、そのプログラム。 Download PDF

Info

Publication number
JP6039446B2
JP6039446B2 JP2013013324A JP2013013324A JP6039446B2 JP 6039446 B2 JP6039446 B2 JP 6039446B2 JP 2013013324 A JP2013013324 A JP 2013013324A JP 2013013324 A JP2013013324 A JP 2013013324A JP 6039446 B2 JP6039446 B2 JP 6039446B2
Authority
JP
Japan
Prior art keywords
web service
web
service
url
web server
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.)
Active
Application number
JP2013013324A
Other languages
English (en)
Other versions
JP2014146114A (ja
JP2014146114A5 (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 JP2013013324A priority Critical patent/JP6039446B2/ja
Priority to DE102014000289.6A priority patent/DE102014000289B4/de
Priority to CN201410028273.7A priority patent/CN103973764B/zh
Priority to US14/160,411 priority patent/US20140211248A1/en
Publication of JP2014146114A publication Critical patent/JP2014146114A/ja
Publication of JP2014146114A5 publication Critical patent/JP2014146114A5/ja
Application granted granted Critical
Publication of JP6039446B2 publication Critical patent/JP6039446B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、IPPサービスを利用するリクエストを処理するWebサーバ装置、制御方法、そのプログラムに関する。
従来、単一のWebサーバ上に複数のWebサービスを動作させるシステムが増加している。例えば、プリンタでは機器設定・管理サービス(以下RemoteUI)、IPP(Internet Printing Protocol)、またはWSD(Web Services on Devices)といったWebベースの印刷サービス等を単一のWebサーバ上で動作させている。
単一のWebサーバ上で複数のWebサービスを動作させる場合、それぞれのWebサービスに対してユニークなURL(Uniform Resource Locator)を割り当てる必要がある。なぜならば、WebサーバはWebサーバ上で動作するWebサービスへのリクエストを受信すると、リクエストデータのHTTPヘッダに含まれるURL情報をもとに、そのリクエストをどのWebサービスに送信し実行させるかを判断する必要があるためである。
よって、WebサービスとURLは1対1で対応づけられなくてはならない。そのため、従来は機器に搭載するWebサービスにはそれぞれ異なるURLが割り当てられるようにシステムを構築する必要があった。
また、特許文献1にはWebサーバの負荷を軽減するために、URLのアプリケーションパスのみ登録する技術が開示されている。
特開2008−176789号公報
しかしながら、単一のWebサーバ上で動作するWebサービスに対して同一のURLを利用したい場合がある。例えば、ユーザの入力を簡略化させるために、画像形成装置を指定する「http://IPアドレス/」のパスと、Webサービスを指定するための単一のIPアドレスから構成されるHTTPパスを規定する。このパスを知っていれば、ルートパス(“/”)でサービスを利用できるようになるので、ユーザはIPアドレスさえ覚えていればWebサービスを利用できるようになり利便性が高い。即ち、異なるWebサービスのURLを単一にすることで、ユーザはそれぞれのWebサービスのURLを覚える必要がなくなる。
しかし、このような形態をとった場合、URLとWebサービスが1対複数の対応となってしまい、Webサーバは受信したURLに対して、どのWebサービスにリクエストを振れば良いのかを特定することができない。
そこで、本願発明の目的の1つは、単一のWebサーバ上で動作する複数のWebサービスが同一のURLで動作する場合、Webサーバは受信したHTTPリクエストからどのWebサービスを呼び出すべきかを特定するWebサーバ装置を提供することにある。
本発明の一実施例に係るウェブサーバ装置は、複数のウェブサービスを有するウェブサーバ装置であって、ネットワークを介して少なくともHTTP(Hypertext Transfer Protocol)リクエストを受信する受信手段と、条件テーブルが記憶された記憶手段と、前記受信手段によって受信されたHTTPリクエストと、前記記憶手段に記憶された条件テーブルに基づいて呼び出すべきウェブサービスを決定する決定手段と、前記決定手段によって決定されたウェブサービスを呼び出す呼び出し手段と、を備え、前記記憶手段が記憶する前記条件テーブルには、前記ウェブサーバ装置が有する少なくとも1つのウェブサービスに対応付けて、URL(Uniform Resource Locator)と所定の判断条件が記憶されており、更に、前記条件テーブルは記憶する所定の判断条件を異ならせることで、互いに異なるウェブサービスに同一のURLを対応付けることが可能であり、前記決定手段は、前記受信手段によって受信されたHTTPリクエストに含まれるリクエストURLとHTTPヘッダー内の情報が、前記条件テーブル内の前記URLと前記所定の判断条件の組み合わせに一致する場合、当該一致する前記URLと前記所定の判断条件の組み合わせに対応付けられたウェブサービスを呼び出すべきウェブサービスとして決定することを特徴とする。
単一のWebサーバ上で動作する複数のWebサービスが同一のURLで動作する場合でも、Webサーバは受信したHTTPリクエストからどのWebサービスを呼び出すべきかを特定することができる。
本発明のシステム構成図 Webサーバ装置100のハードウェア構成図 Webサーバ120の内部モジュール構成図 Webサービス140、150、160、170の内部モジュール構成図 Webサービス管理テーブルを示す図 Webサービス登録部141により実行されるフロー Webサービス登録処理部121により実行されるフロー Webサービス判断処理部124により実行されるフロー Webサーバ120、または各Webサービスへ送信されるリクエストデータを示す図
以下、本発明を実施するための最良の形態について図面を用いて説明する。
実施例1では、複数のWebサービスのURLが重複した場合であっても、Webサーバの機能によりリクエストを処理するWebサービスを特定することを可能にする発明について説明する。
図1は、本実施形態に係るWebサーバ装置とWebサービスクライアント装置の全体構成を示す図である。
図1において、Webサーバ装置100とWebクライアント装置300は、ネットワーク200を介して接続されている。ネットワーク200とは、インターネットであっても、LAN(Local Area Network)であってもよい。
Webサーバ装置100にはネットワーク通信を行う通信部130とWebサーバ機能を提供するWebサーバ120とWebサーバ上で動作してなんらかのサービスを提供するWebサービス140,150,160,170が存在する。ここで言うサービスとは、例えば、上述したRemoteUIサービス、IPPサービスの他にWebDAVサービス等のWebサービスが有する機能のことを指す。Webサーバ120はHTTP通信でHTTPのリクエストを受信し、リクエストで指定されたWebサービスにリクエストを割り振り、Webサービスにサービスを提供させる。Webサービス140,150,160,170は例えばCGI(Common Gateway Interface)やサーブレットに相当する機能である。これらのWebサービスはWebサーバ120に対してWebサービスの判断条件(拡張判断条件)を登録する。そして、Webサーバ120がその拡張判断条件に一致するリクエストを受信するとその条件に合致するWebサービスにリクエストを割り振り、WebサービスがHTTPリクエストで指定された処理を行い、Webサービスを提供する。
Webクライアント装置300はWebサービスクライアント320,330,340,350を有する。Webサービスクライアントには、受信したHTMLデータを表示するWebブラウザ、Webサービスの所有するストレージに対してデータの保存、取得などを行うWebDAVクライアント、Webサービスが提供する印刷サービスを利用した印刷を行うWSD Print、またはHTTPクライアントがある。これらはWebサービスとHTTP通信を行い、Webサービスに対して処理の依頼行い、依頼した処理結果を受信し、受信結果をユーザに提供する機能を備えるものである。
Webサービスクライアントは、Webサービスに処理を依頼する場合、Webクライアント装置300の通信部を利用してWebサーバ120にHTTPリクエストを送信する。Webサーバ120はリクエストを受信するとリクエストのHTTPヘッダ部を解析し、Webサービスが登録した拡張判断条件に合致したリクエストであるか否かを判断する。判断の結果、リクエストがサービス判断条件に合致していると判断された場合、Webサーバ120はWebサービス処理関数を実行する。Webサービスは、Webサーバ120によりWebサービス処理関数が実行されると、必要に応じてHTTPのオペレーションや受信したHTTPボディ部のデータに従ってリクエストの処理を行い、サービスを提供する。
Webサーバ装置100の通信部130、Webサーバ120、Webサービス(140,150,160,170)は図2のWebサーバ装置100のROM(102)、HDD(103)に記録されCPU101により実行さる。
図2は本実施例におけるWebサーバ装置100のハードウェア構成の一例を示すブロック図である。本図はWebサーバ装置100がプリンタ機能を備える場合を代表例として図示する。即ち、Webサーバ装置100はプリンタであって、スキャナ機能(不図示)を備えている複合機であっても良い。ストレージサーバ機能をそなえる装置100は、CPU(中央処理装置)101を備えている。
このCPU101は、ROM(リードオンリーメモリ)102、またはHDD(ハードディスクドライブ)103に格納されているプログラムを実行し、システムバス104に接続される各ユニットを総括的に制御する。103はRAM(ランダムアクセスメモリ)で、CPU101の主メモリ、ワークエリアとして機能する。105はストレージサーバ機能をそなえる装置のコントロールユニットであり、プリントエンジンであるPrinter106、またはHDD103を制御する装置である。
Webサーバ装置100のCPU101は、ROM102、またはハードディスク103に記憶されたプログラムを実行することにより本実施形態のソフトウェア構成が実現される。107は不揮発性のメモリNVRAMであり、Webサーバ装置100の動作を規定する各種設定値を保存するためのものである。パネル制御部108は、オペレーションパネル109を制御し、各種情報の表示、使用者からの指示入力を行なう。ネットワークI/F制御部110は、ネットワーク200とのデータの送受信を制御する。
なお、Webクライアント装置300も図2で示すハードウェア構成であり、図1で示すソフトウェアは、CPU101がROM102、またはHDD103に記憶されたプログラムを実行することで実現される機能である。なお、実施例1で想定しているWebクライアント装置300は一般的なパーソナルコンピュータ、またはスマートフォンを始めとするモバイル端末と言った情報処理装置を想定しおり、プリント機能を始めとする画像形成機能を有していない。よって、Webクライアント装置300は、Printer106、ControlUnit105を備えていない情報処理装置である。
図3はWebサーバ120の内部モジュールを説明する図である。Webサーバ120はWebサービス140からWebサービスの登録要求を受け付けるWebサービス登録処理部121を備える。Webサービスの登録要求とは、Webサーバ120にWebサービスを登録するための要求であり、登録されたWebサービスは、Webサーバ120がWebサービスクライアントから受信したリクエストを実行することが可能になる。Webサービス登録処理部121は、登録要求を送ったWebサービスのURLが重複する場合でもWebサービスを特定することが可能となる拡張判断条件と、Webサービスを呼び出す処理関数をWebサービス管理テーブル122に記録する機能を備える。
Webサービス管理テーブル122は、例えば図5(A)〜図5(D)に示すような構造をもつ。本実施例では、Webサービス管理テーブルはWebサービスが実行されるポート番号毎にテーブルを作成するものとして説明する。これは、例えばTCPポート80番号で提供するWebサービスと、TCPポート88番で提供するWebサービスが存在する場合、管理テーブルはTCPポート80番用とTCPポート88番用の2つが作成されることを意味する。ポート番号毎にWebサービス管理テーブルを作成することで、Webサーバ12は該当するWebサービスをより早く見つけることができる。
リクエスト(HTTPヘッダ)受信部123はネットワークからWebサーバへのリクエストにおけるHTTPヘッダ部を受信する機能を備える。Webサービス判断部124はリクエスト(HTTPヘッダ)受信部123が受信したリクエストのHTTPヘッダ情報を分析し、Webサービス管理テーブル122に登録されたWebサービスの拡張判断条件と一致するWebサービスを特定する機能を備える。
Webサービス実行部125はWebサービス判断部124が特定したWebサービスを実行し、特定されたWebサービスに対するHTTPの通信機能を備える。このHTTPの通信機能とは、例えばHTTP ボディ部の受信で、およびHTTPプロトコルに従ってHTTPレスポンスの送信を行う機能である。
図4はWebサービス140の内部モジュールを説明する図である。Webサービス登録部141はWebサービス起動時にWebサービスが有効か無効かを判断し、有効である場合Webサービス登録処理部121に対してURLと、Webサービスの拡張判断条件と、Webサービスの処理関数を登録する機能を備える。Webサービス処理部142はWebサービスの処理を行う機能を備える。具体的にはWebサービス実行部125から呼ばれるサービス処理関数の処理が相当し、各Webサービス特有の処理を行う機能を備える。
ここでWebサービス登録部141の具体的な処理を図6のフローチャートを用いて説明する。RAM,ROM,HDDのいずれかの記憶手段に記憶され、CPUにより実行されるWebサービス登録部141は、Webサービスが起動すると自身のWebサービスの設定を確認して(S100)Webサービスの有効、無効を判断する。
Webサービスが無効である場合、WebサーバにWebサービス情報を登録する必要が無いため、WebサーバにWebサービス情報を登録することなく処理を終了させる。Webサービスが有効である場合、Webサーバに登録するWebサービスの実行判断条件を確認し、URL情報のみ登録するか、URL情報以外の拡張判断条件も登録するかを判断する(S101)。このサービスの拡張判断条件はWebサービス固有の属性であっても、管理者がWebサービスに対して設定してもどちらでもよい。
URL情報のみを登録する場合、URL情報とWebサービス処理関数を登録する(S102)。もし、URL情報以外にも拡張判断条件が存在する場合、Webサーバに対してURL情報と、拡張判断条件の対応と、Webサービス処理関数とを登録する(S103)。
前述のWebサービスに登録するURL情報について補足する。一般的にURLとはRFC 1738に定められたフォーマットを示す。しかし、ここでのWebサービスに登録するURL情報とはRFC1738で定められた情報ではなく、プロトコル(HTTP/HTTPS)、サービスを提供するTCPポート番号、URL PATH情報を意味する。
また、上述の拡張判断条件とはHTTPヘッダに記載された情報であれば何でもよい。例えばHTTP Operation、HTTPヘッダのContent−Type、UserAgent、RFC822で定義されるようにアプリケーションが拡張したx−で始まるHTTP拡張ヘッダ情報などである。仮に、WebサービスがWebサーバに対して拡張判断条件を登録すると、WebサーバはURL情報が一致した場合であっても、拡張判断条件も一致しない限りそのWebサービスの処理関数を用いてWebサービスを呼び出さない。なお、2つ以上の拡張判断条件を基に判断を行う構成であっても良い。例えば、URL Pathが同一であるためHTTP Operationで判断した結果、HTTP Operationでも同一となってしまう場合は、更にContent−Typeで判断する、と言った構成である。これにより、WebサービスはWebサーバに対してURL以外の拡張判断条件を登録することができる。
次に、WebサーバにおけるWebサービス登録処理について説明する。
Webサービス登録処理部121はRAM,ROM,HDDのいずれかの記憶手段に記憶され、CPUにより実行される。ここではWebサービス登録処理部121の処理フロー(図7)を、図5を用いて説明する。
最初に、(図5(A))の説明をする。図5(A)は次の状態を示したものである。
Webサービス管理テーブルのTCPポート80番のサービスとしてRemoteUIサービス(150)と、WebDAVサービス(170)が登録されている状態である。RemoteUIサービスはURL Pathとして”/”で登録されている。一方、WebDAVサービスはURL Pathのみ”/share”を登録している。Webサーバは拡張判断条件としてHTTP Operationフィールドを設けているが、RemoteUIサービス、WebDAVサービスは共に指定されていない。
Webサービス管理テーブルが図5(A)の状態で、Webサービス登録処理部121がHTTPのWebサービス(140)の登録をリクエストしたものとして、図7のフローチャートを説明する。HTTPのWebサービスはTCPポート番号を”80”で、URL Pathを”/”で指定し、サービス判断条件の1つであるHTTP Operationを”POST”でリクエストしたとする。
Webサービス登録処理部(121)はWebサービス(140)からWebサービス登録要求を受け付けると、HTTPのWebサービス登録部(141)から指定されたURL情報のTCPポート番号を確認する(S200)。
Webサービス登録処理部(121)は指定されたTCPポート番号に対応するWebサービス管理テーブルがWebサービス管理テーブル(122)に存在するかどうかを判断する(S201)。Webサービス管理テーブルが存在しない場合、Webサービス登録処理部(121)は指定TCPポート番号用のWebサービス管理テーブルを新規に作成する(S206)。そしてWebサービス登録処理部(121)は、作成したWebサービス管理テーブルに対して指定されたサービス名と、URL Pathと、拡張判断条件を登録し(S207)、Webサービス登録受付処理は完了となる。このとき、WebサービスからURL情報以外の拡張判断条件が指定されていない場合、拡張判断条件のフィールドはブランクフィールドとなり無視される。拡張判断条件のフィールドがブランクフィールドの場合は、URL Pathが一致した時点でそのWebサービスが、送信されたリクエストを処理するWebサービスとして特定される。拡張判断条件がブランクフィールドのWebサービスが登録された場合、仮にリクエストに含まれる拡張判断条件と登録済みの拡張判断条件が一致することがなくとも、何れかのWebサービスが必ず実行される構成となっている。
ここでは、IPPサービスはTCPポート80番を指定しているため、Webサービス管理テーブル(122)での存在が確認された結果(S201)、図5(A)のWebサービス管理テーブルが検索されることになる。Webサービス管理テーブルを発見すると、そこからWebサービス登録要求と同じURL Pathが登録されているか否かが判断される(S202)。即ち、何れかのWebサービス同士のURLが重複しているか否かの確認が行われる。この結果、同じURL Pathのサービスが存在しない場合はWebサービス登録テーブルの末尾に今回の登録される新規サービス情報を登録する(S207)。今回、IPPサービスのURL Pathは”/”であるため図5(A)のNo1に登録されたRemoteUIのURL Pathと一致することになり、Webサービス登録要求と同じURL Pathが登録されていると判断される(S202)。
URL Pathが一致した場合、さらに拡張判断条件を用いた比較を行う(S203)。今回の例ではWebサーバは拡張判断条件としてHTTP Operationが存在する。そこでRemoteUIサービスのHTTP OperationとIPPサービスが登録しようとしているHTTP Operationを比較する。RemoteUIサービスでは、図5(A)のようにHTTP Operationを指定してない。一方、IPPサービスは”POST”と指定しており、拡張Webサービス判断条件の比較の結果、IPPサービスとRemoteUIサービスのWebサービス判断条件は一致しないためIPPサービスの登録は許可されることになる。このように、受け付けた拡張判断条件がWebサービス管理テーブル122に登録されている拡張判断条件と重複しないことが確認されたことを契機に、WebサービスがWebサービス管理テーブル122に登録される。WebサービスがWebサービス管理テーブル122に登録されると図5に示すように、URLと拡張判断条件の対応と、Webサービス処理関数と、Webサービス名とが関連付けられる。
次に、Webサービスの登録優先度を確認し、実際にWebサービス管理テーブルにWebサービスを登録する手順について説明する。Webサービス登録処理部(121)は、URL Pathが一致した登録済みのWebサービスと、今回の登録で追加されるWebサービスの拡張判断条件の数の比較を行う(S205)。この処理が行われる理由は、Webサービス処理部142がリクエストを基に拡張判断条件に一致するWebサービスを検索する際、管理テーブルの登録番号が小さい方から順番に、リクエストに該当するWebサービスが有るか否かの検索を行うことに起因する。このため、条件の厳しいWebサービスは、条件の緩いWebサービスよりも小さい登録番号としてWebサービス管理テーブルに登録しなければならない。でなければ、拡張判断条件の数が少ないため条件が緩いWebサービスが先に検索されてしまい、拡張判断条件の数が多いため条件が厳しいWebサービスがいつまでも検索されないという状況に陥りかねない。
今回、IPPサービスとRemoteUIサービスの拡張判断条件数を比較するとIPPサービスは1つの条件が設定されているが、RemoteUIサービスは条件が設定されていない。そこで、IPPサービスの検索優先度をRemopteUIサービスよりも高くする必要があるため、IPPサービスを登録番号No1の位置に挿入して登録する(S209)。この結果、RemoteUIサービス,およびWebDAVサービスの登録番号は従来の登録番号よりも1個ずつずれることになり、Webサービス登録テーブルは図5(B)のようになる。拡張判断条件数が比較された結果、新規に登録するWebサービスの拡張判断条件数が登録済みWebサービスの拡張判断条件数と同等、もしくは少ない場合、同じURLで登録されたWebサービスの登録番号の次の登録番号としてWebサービスを登録する(S208)。
ここで、更にWebサービス管理テーブルが図5(C)の状態で、HTTPサービスを登録する場合の例を説明する。図5(C)はWebサービス管理テーブルのTCPポート80番のサービスとしてWSD Printサービス(160)、RemoteUIサービス(150)とWebDAVサービス(170)が登録されている状態である。WSD PrintサービスとRemoteUIサービスはURL Pathとして”/”で登録されている。一方、WebDAVサービスはURL Pathのみ”/share”を登録している。Webサーバは拡張の判断条件としてHTTPのOperationフィールドとContent−Typeのフィールドを設けており、WSD PrintサービスはOperationとして”POST”、Content−Typeに”application/soap+xml”を指定している。RemoteUIサービス、WebDAVサービスは共に拡張の判断条件を指定していない。
この状況で、HTTPのWebサービス(IPPサービス)はTCPポート番号”80”でURL Pathが”/”を指定し、拡張判断条件としてHTTP Operationが”POST”、Content−Typeが”application/ipp”であることを要望するとする。この場合に図7のフローチャートによれば、URL Pathが同じである登録済みのWebサービスと拡張判断条件の比較(S205)を行う。その結果、拡張判断条件として共にHTTP OperationとContent−Typeが指定されているため、拡張判断条件数は同じとなる。以上の結果、WSD Printサービスの次の登録番号の位置にIPPサービスが登録され、Webサービス登録テーブルは図5(D)となる。
最後に、RAM,ROM,HDDのいずれかの記憶手段に記憶され、CPUにより実行されWebサービス判断処理部(124)の処理を図8を用いて説明する。Webサービス判断処理部(124)は受信したWebサービスへのリクエストのHTTPヘッダを基に、各Webサービスにリクエストを振り分ける機能を備える。
リクエスト受信部(123)がWebサービスへのリクエストを受信すると、Webサービス判断部(124)にWebサービスの判断を依頼する。Webサービス判断部(124)はリクエスト受信部(123)からHTTPリクエストを受信した受信TCPポート番号の取得と、リクエストのHTTPヘッダ情報を取得し、ヘッダ情報の解析を行う(S300)。
Webサービス判断部(124)はWebサービス管理テーブル(122)に受信TCPポート番号に合致するWebサービスが存在するかを確認する(S301)。対応するWebサービスが存在しない場合は、該当するWebサービスは存在しない(S307)ということになる。一方、対応するWebサービス管理テーブルが存在する場合、サービス検索開始位置を発見したWebサービス管理テーブルの登録番号の先頭(登録番号No1)に設定する(S302)。
選択したWebサービス管理テーブルの検索開始位置から受信したリクエストのHTTP のURL Pathと同じURL Pathで登録されたサービスを検索する(S303)。その結果、URL Pathが一致するサービスが存在しない場合はリクエストを処理できるWebサービスは存在しない(S307)とみなされ処理を終了する。URL Pathが一致する場合、発見したWebサービスの拡張判断条件とリクエストと共に送信された拡張判断条件が一致するか否かを確認する(S304)。拡張判断条件が一致しない場合、Webサービス管理テーブルの検索開始位置を今回不一致となったWebサービスの次の登録番号に設定する(S305)。その後、再度URL Pathが一致するサービスの検索処理(S303)、拡張判断条件が一致するWebサービスの検索を行い(S304)、該当するWebサービスの検索を継続する。拡張判断条件も一致した場合、該当するWebサービスの発見(S306)となる。
ここで具体例として、Webサービスクライアント300がWebサーバ120に対してリクエストを送信し、Webサービス判断部124によりWebサービスが特定されるまでの処理(図8)を説明する。ここでは、Webサービス管理テーブルは図5(B)の状態と仮定し、図1のシステム構成図と図9のWebサービスへのリクエストデータ例を用いる。
ユーザがWebサービス(RemoteUIサービス150)に対して接続する場合、Webサービスクライアント350(以下、Webブラウザ)のURL入力フィールドに対してRemoteUIサービスのURL情報を入力する。この入力するURL情報は例えばhttp://172.24.29.162/という情報である。この入力手段はWebブラウザの入力フィールドでなくとも、WebブラウザのBookmarkとして登録した情報を選択することで入力する場合もある。なお、「172.24.29.162」は、Webサーバ装置120のIPアドレスを示しており、http://と組み合わせることで各WebサービスクライアントはWebサーバ120にアクセスすることができる。Webブラウザ350は入力されたURL情報に基づいてWebサーバを特定し、HTMLデータの取得を依頼する図9(A)のHTTPリクエストを送信する。この場合のHTTPリクエストは、HTTPヘッダのみであり、HTTPボディは含まれていない。
リクエスト受信部122はリクエストデータ図9(A)のHTTPヘッダを受信すると、Webサービス判断部にWebサービスの特定を依頼する。Webサービス判断部はWebサービス判断処理(図8)に基づいてWebサービスの特定を行う。Webブラウザからのリクエスト(図9(A))はURL Pathが”/”であり、HTTP Operationは”GET”であるため、Webサービス管理テーブル(図5(B))から検索された結果、No2のRemoteUIサービスへの処理依頼であると特定される。そして、RemoteUIサービスが実行され、その処理結果がWebブラウザ350に応答されることになる。WebブラウザはRemoteUIサービスから処理結果としてのHTMLファイルを取得し、受信したHTLMファイルを表示する。
また、別の具体例としてユーザがIPPサービス(140)に対して接続する場合を説明する。IPPサービス(140)はInternet Printing Protocolを意味し、RFCでバージョン1.0、1.1、2.0、2.1、2.2が定義されている。IPPではプリンタの状態、能力の確認、指定したドキュメントの印刷指示、ジョブ状況の確認を行うためのコマンドが定義されており、それらのコマンドはHTTPボディ部に格納される。すなわち、HTTPヘッダなどではIPPのオペレーションを特定することはできない。
ユーザがIPPサービス(140)に対してプリンタの能力情報を確認する場合、IPPクライアント(340)に対してIPPサービス(140)のURLを指定する必要がある。IPPサービス(140)のURLはユーザがIPPサービス(140)のURLを直接指定することが可能である。さらに、mDNS(Multicast DNS)、またはSLP(Service Location Protocol)」などのサービス検索技術を利用してIPPサービス(140)のURLをネットワークから検索する。そして、その検索結果を受けて、利用するIPPサービス(140)のURLを入手してもよい。
ユーザがIPPクライアント(340)に対してIPPサービス(140)のURL情報を検索で入手、もしくは直接入力すると指定されたURLに対して接続を行う。このときのURLは例えばhttp://172.24.29.162/とする。これは、上述したRemote UIサービスと同一のURLであり、この状態でWebサービスの登録が行われるとURLが重複することになる。そしてIPPクライアント(340)はHTTPヘッダ情報と、IPPサービスに対するリクエスト内容を示すコマンドが含まれたHTTPボディ部のリクエスト(図9(B))を送付する。
リクエスト受信部122はリクエストデータ図9(B)のHTTPヘッダを受信すると、Webサービス判断部124にWebサービスの特定を依頼する。Webサービス判断部124はWebサービス判断処理(図8)に基づいてWebサービスの特定を行う。Webブラウザからのリクエスト(図9(B))はURL Pathが”/”であり、HTTP Operationは”POST”であるため、Webサービス管理テーブル(図5(B))から検索した結果、No1のIPPサービスへの処理依頼であると特定される。そして、IPPサービス(140)が実行される。IPPサービス(140)はHTTPボディ部に含まれるIPPリクエストデータを受信することで、IPPサービスに対する具体的なリクエストを確認する。
図9(C)は図9(B)のIPPリクエストデータのデータフォーマットを示す図である。
IPPリクエストはRFC 2910で定義されており、operation−idフィールドにIPPサービスに対する指示が設定される。IPPサービスに対する指示は例えばoperation−idフィールドに0x0002が設定された場合は印刷を要求するPrint−JOBリクエストであり、0x000Bが指定される場合はプリンタの属性を取得するGet−Printer−Attributesリクエストであることを示す。
IPPサービス(140)は図9(C)のフォーマットのリクエスデータを受信すると、operation−idフィールドに含まれるコマンドから指定された指示を実行する。例えば、プリンタの属性を取得するGet−Printer−Attributesリクエストである場合、IPPサービス140はプリンタの能力情報をIPPクライアント340へ応答する。一方、Print−JOBリクエストである場合、IPPサービス140は同じくリクエストのdata部分に設定された印刷データを受信し、その印刷データに基づきPrinter106を介して印刷を行う。
IPPサービス(140)が図9(B)のIPPリクエストデータに指定された処理を完了すると、IPPクライアント(340)に対して要望された処理に対する応答をIPPの規格に則ったフォーマットでHTTPBody部に格納して送信する。
IPPクライアント(340)は受信したレスポンスのHTTPBody部に格納されたデータから依頼の結果を取得することで、IPPサービス(140)との通信は完了となる。
以上、実施例1により、単一のWebサーバ上で動作する複数のWebサービスが同一のURLで動作する場合でも、Webサーバは受信したHTTPリクエストからどのWebサービスを呼び出すべきかを特定することができる。そのHTTPリクエストが、リクエストを送信するWebサービスクライアント毎に異なる可能性があるためURLが同一であってもWebサービスが特定可能なのである。結果、ユーザは、例えば1つのURLのみを記憶するだけで良いので、利便性が保たれつつも多様なWebサービスが実行される。
〔その他の実施例〕
本願発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
100 Webサーバ装置
120 Webサーバ
130 通信部
140、150、160,170 Webサービス
200 ネットワーク
300 Webクライアント装置
310 通信部
320、330,340,350 Webサービスクライアント

Claims (11)

  1. 複数のウェブサービスを有するウェブサーバ装置であって、
    ネットワークを介して少なくともHTTP(Hypertext Transfer Protocol)リクエストを受信する受信手段と、
    条件テーブルが記憶された記憶手段と、
    前記受信手段によって受信されたHTTPリクエストと、前記記憶手段に記憶された条件テーブルに基づいて呼び出すべきウェブサービスを決定する決定手段と、
    前記決定手段によって決定されたウェブサービスを呼び出す呼び出し手段と、
    を備え、
    前記記憶手段が記憶する前記条件テーブルには、前記ウェブサーバ装置が有する少なくとも1つのウェブサービスに対応付けて、URL(Uniform Resource Locator)と所定の判断条件が記憶されており、更に、前記条件テーブルは記憶する所定の判断条件を異ならせることで、互いに異なるウェブサービスに同一のURLを対応付けることが可能であり、
    前記決定手段は、前記受信手段によって受信されたHTTPリクエストに含まれるリクエストURLとHTTPヘッダー内の情報が、前記条件テーブル内の前記URLと前記所定の判断条件の組み合わせに一致する場合、当該一致する前記URLと前記所定の判断条件の組み合わせに対応付けられたウェブサービスを呼び出すべきウェブサービスとして決定することを特徴とするウェブサーバ装置。
  2. 前記決定手段は、前記受信手段によって受信されたHTTPリクエストに含まれる前記リクエストURLと前記HTTPヘッダー内の情報の組み合わせが、前記条件テーブル内の前記URLと前記所定の判断条件の組み合わせのいずれにも一致しない場合であって、前記リクエストURLと同一のURL且つ、前記所定の判断条件が記されていない組み合わせが前記条件テーブルに記憶されている場合は、当該組み合わせに対応付けられたウェブサービスを呼び出すべきウェブサービスとして決定することを特徴とする請求項1に記載のウェブサーバ装置。
  3. 前記条件テーブルに記憶される前記所定の判断条件は、前記ウェブサービスが受け付け可能な前記HTTPリクエストの種類に関する条件であることを特徴とする請求項1又は2に記載のウェブサーバ装置。
  4. 前記条件テーブルにウェブサービスを登録する登録手段を更に備えることを特徴とする請求項1乃至3のいずれか1項に記載のウェブサーバ装置。
  5. 前記登録手段は、ウェブサービスからの登録要求を受け付けたことに応じて、当該ウェブサービスと、前記登録要求に含まれるURLと所定の判断条件を対応付けて、前記条件テーブルに登録することを特徴とする請求項4に記載のウェブサーバ装置。
  6. 前記記憶手段はポート番号ごとに前記条件テーブルを記憶し、
    前記決定手段は、前記リクエストURLに基づいてポート番号を特定し、当該特定されたポート番号に対応する条件テーブルを用いて、呼び出すべきウェブサービスを決定することを特徴とする請求項1乃至5のいずれか1項に記載のウェブサーバ装置。
  7. 前記条件テーブルに記憶されたウェブサービスはIPP(Internet Printing Protocol)サービスを含むことを特徴とする請求項1乃至6のいずれか1項に記載のウェブサーバ装置。
  8. 前記条件テーブルに記憶されたウェブサービスは、リモートUIサービスを含むことを特徴とする請求項1乃至7のいずれか1項に記載のウェブサーバ装置。
  9. 前記ウェブサーバ装置はプリンタであることを特徴とする請求項1乃至8のいずれか1項に記載のウェブサーバ装置。
  10. 条件テーブルが記憶された記憶手段を備え、複数のウェブサービスを有するウェブサーバ装置の制御方法であって、
    ネットワークを介して少なくともHTTP(Hypertext Transfer Protocol)リクエストを受信する受信工程と、
    前記受信工程で受信したHTTPリクエストと、前記記憶手段に記憶された条件テーブルに基づいて呼び出すべきウェブサービスを決定する決定工程と、
    前記決定工程で決定されたウェブサービスを呼び出す呼び出し工程と、
    を有し、
    前記記憶手段が記憶する前記条件テーブルには、前記ウェブサーバ装置が有する少なくとも1つのウェブサービスに対応付けて、URL(Uniform Resource Locator)と所定の判断条件が記憶されており、更に、前記条件テーブルは記憶する所定の判断条件を異ならせることで、互いに異なるウェブサービスに同一のURLを対応付けることが可能であり、
    前記決定工程は、前記受信工程で受信したHTTPリクエストに含まれるリクエストURLとHTTPヘッダー内の情報が、前記条件テーブル内の前記URLと前記所定の判断条件の組み合わせに一致する場合、当該一致する前記URLと前記所定の判断条件の組み合わせに対応付けられたウェブサービスを呼び出すべきウェブサービスとして決定することを特徴とするウェブサーバ装置の制御方法。
  11. 請求項10に記載のウェブサーバ装置の制御方法をコンピュータに実行させるためのプログラム。
JP2013013324A 2013-01-28 2013-01-28 Webサーバ装置、制御方法、そのプログラム。 Active JP6039446B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013013324A JP6039446B2 (ja) 2013-01-28 2013-01-28 Webサーバ装置、制御方法、そのプログラム。
DE102014000289.6A DE102014000289B4 (de) 2013-01-28 2014-01-10 Webservervorrichtung, Steuerverfahren und Programm dafür
CN201410028273.7A CN103973764B (zh) 2013-01-28 2014-01-20 网络服务器装置及其控制方法
US14/160,411 US20140211248A1 (en) 2013-01-28 2014-01-21 Web server apparatus, control method, and program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013013324A JP6039446B2 (ja) 2013-01-28 2013-01-28 Webサーバ装置、制御方法、そのプログラム。

Publications (3)

Publication Number Publication Date
JP2014146114A JP2014146114A (ja) 2014-08-14
JP2014146114A5 JP2014146114A5 (ja) 2016-05-12
JP6039446B2 true JP6039446B2 (ja) 2016-12-07

Family

ID=51163610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013013324A Active JP6039446B2 (ja) 2013-01-28 2013-01-28 Webサーバ装置、制御方法、そのプログラム。

Country Status (4)

Country Link
US (1) US20140211248A1 (ja)
JP (1) JP6039446B2 (ja)
CN (1) CN103973764B (ja)
DE (1) DE102014000289B4 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101534153B1 (ko) * 2013-08-23 2015-07-06 주식회사 엘지씨엔에스 비즈니스 로직 설계 방법, 이를 수행하는 비즈니스 로직 설계 서버 및 이를 저장하는 기록매체
US9843422B2 (en) * 2015-12-30 2017-12-12 Konica Minolta Laboratory U.S.A., Inc. Device control protocol (over IPP)
JP6700894B2 (ja) * 2016-03-25 2020-05-27 キヤノン株式会社 画像処理装置、制御方法、プログラム
US10454886B2 (en) * 2017-07-18 2019-10-22 Citrix Systems, Inc. Multi-service API controller gateway
CN111176587A (zh) * 2018-11-13 2020-05-19 联想图像(天津)科技有限公司 一种远程打印方法及系统
JP2023086048A (ja) * 2021-12-09 2023-06-21 キヤノン株式会社 印刷システム、印刷装置、情報処理装置、印刷装置の制御方法、情報処理装置の制御方法およびプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405223B1 (en) * 1998-01-15 2002-06-11 International Business Machines Corporation System for personal storage of different web source versions
US20020087559A1 (en) * 1999-01-11 2002-07-04 PRATT John Method and system for retrieving documents using hyperlinks
WO2002103547A1 (en) * 2001-06-15 2002-12-27 Advanced Network Technology Laboratories Pte Ltd. Computer networks
US20040044731A1 (en) * 2002-03-22 2004-03-04 Kailai Chen System and method for optimizing internet applications
JP4291855B2 (ja) * 2002-03-25 2009-07-08 株式会社リコー Webサービス機能を有する画像形成装置
EP1489488A3 (en) * 2003-06-20 2009-07-01 Ricoh Company, Ltd. Method and apparatus for providing a service for sharing a printing environment
JP4498045B2 (ja) 2004-07-22 2010-07-07 キヤノン株式会社 画像処理装置及びその制御方法及びプログラム
US7647319B2 (en) 2004-09-06 2010-01-12 Canon Kabushiki Kaisha Information processing apparatus, information processing method, program, and storage medium
EP1710694A3 (en) 2005-04-08 2006-12-13 Ricoh Company, Ltd. Communication apparatus, program product for adding communication mechanism to communication apparatus for providing improved usability and communication efficiency, and recording medium storing program product
KR100739715B1 (ko) * 2005-07-12 2007-07-13 삼성전자주식회사 웹서비스 정책 합의를 수행하는 장치 및 방법
JP4858360B2 (ja) * 2007-08-29 2012-01-18 三菱電機株式会社 情報提供装置
JP4394725B2 (ja) 2008-01-15 2010-01-06 株式会社リコー 組み込み機器、リクエスト振り分け方法、および、リクエスト振り分けプログラム
JP4963110B2 (ja) * 2008-01-25 2012-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション サービス検索システム、方法及びプログラム
JP5123800B2 (ja) * 2008-09-16 2013-01-23 株式会社リコー 情報処理装置、情報処理方法及びプログラム
US20130275957A1 (en) * 2012-04-12 2013-10-17 Microsoft Corporation Customizing appliances

Also Published As

Publication number Publication date
JP2014146114A (ja) 2014-08-14
US20140211248A1 (en) 2014-07-31
DE102014000289A1 (de) 2014-07-31
CN103973764B (zh) 2017-11-14
CN103973764A (zh) 2014-08-06
DE102014000289B4 (de) 2024-06-13

Similar Documents

Publication Publication Date Title
JP6039446B2 (ja) Webサーバ装置、制御方法、そのプログラム。
JP5885410B2 (ja) プルプリントシステム、プリントサーバおよびその制御方法、並びにプログラム
US8570574B2 (en) Processing system, control method, and storage medium therefor
US20120081738A1 (en) Job execution system, job receiving apparatus and computer-readable medium
US9928013B2 (en) Print control system, method of controlling printing, and recording medium
JP2008181427A (ja) シングルサインオンシステム、情報端末装置、シングルサインオンサーバ、プログラム
US20170017448A1 (en) Printer registration apparatus, display apparatus, and method for printer registration
US7752438B2 (en) Secure resource access
US10235112B2 (en) Hot folder creation and management
JP4835661B2 (ja) 利用者情報管理プログラム、利用者情報管理装置及び情報管理システム
JP5279633B2 (ja) 通信装置及びその制御方法、並びにプログラム
US20120191806A1 (en) Accessing functions of a multi-function device
JP2013050783A (ja) 文書データの管理システム、管理方法及びプログラム
JP4097584B2 (ja) Wwwサーバ機能を有する組み込み機器、ウェブページ提供方法、および、ウェブページ提供制御プログラム
JP4394725B2 (ja) 組み込み機器、リクエスト振り分け方法、および、リクエスト振り分けプログラム
JP5678556B2 (ja) ジョブ実行システム、ジョブ実行装置及びプログラム
JP6205982B2 (ja) 中継装置、プログラムおよび中継装置の制御方法
US9549278B2 (en) Communication system, communication apparatus, methods of controlling same, and storage medium
JP2017136780A (ja) 画像形成装置及びその制御方法、画像形成装置のサポートシステム及びその制御方法、並びにプログラム
JP6627301B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2004341732A (ja) 処理装置、データ処理方法、プログラムおよび記憶媒体
JP2006163694A (ja) プロキシサーバ装置
JP4458799B2 (ja) ネットサービス機能を有する情報処理装置およびネットサービス提供方法
JP4602707B2 (ja) WWWサーバ機能を有する組み込み機器、ポート情報共有方法、ポート情報共有プログラム、および、Webシステム
JP4155512B2 (ja) 多重アクセス制御システムおよびその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161104

R151 Written notification of patent or utility model registration

Ref document number: 6039446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151