JP5668342B2 - コンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバ - Google Patents

コンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバ Download PDF

Info

Publication number
JP5668342B2
JP5668342B2 JP2010154972A JP2010154972A JP5668342B2 JP 5668342 B2 JP5668342 B2 JP 5668342B2 JP 2010154972 A JP2010154972 A JP 2010154972A JP 2010154972 A JP2010154972 A JP 2010154972A JP 5668342 B2 JP5668342 B2 JP 5668342B2
Authority
JP
Japan
Prior art keywords
content
server
conversion
cache
client
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
JP2010154972A
Other languages
English (en)
Other versions
JP2012018525A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010154972A priority Critical patent/JP5668342B2/ja
Priority to US13/095,675 priority patent/US8898336B2/en
Publication of JP2012018525A publication Critical patent/JP2012018525A/ja
Application granted granted Critical
Publication of JP5668342B2 publication Critical patent/JP5668342B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2528Translation at a proxy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • 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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Description

本発明は、コンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバに関する。
近年、多様な種別の端末が利用されており、端末の種別は増える傾向にある。また、このような端末が利用可能なデータの形式は、端末の種別ごとに異なる。このため、端末からデータ(例えば、コンテンツ)の配信を要求された場合には、コンテンツの配信を要求した端末の種別に応じて、コンテンツの形式を変換するコンテンツ変換システムが知られている。
このようなコンテンツ変換システムは、コンテンツの形式をクライアントの端末が利用可能な形式に変換する変換サーバを有する。このような変換サーバは、例えば、コンテンツサーバに記憶されたHTML(Hyper Text Markup Language)形式のコンテンツを、携帯端末が利用可能なcHTML(Compact HTML)形式のコンテンツに変換する。
また、変換サーバは、処理を効率的に実行するため、コンテンツの形式を変換した場合には、変換後のコンテンツをキャッシュメモリ(以下、キャッシュと言う)に記憶する。そして、変換サーバは、同一種別の端末から同一コンテンツの要求を受信した場合には、キャッシュに記憶された変換後のコンテンツをクライアントの端末に送信することで、効率的な処理を実行する。
ここで、図36を用いて、変換サーバが実行する処理の具体例を説明する。例えば、変換サーバは、端末種別が「CL_A」であるクライアントの端末からコンテンツ「C#2」の要求を受信する(図36中(1)参照)。そして、変換サーバは、コンテンツ「C#2」の形式を端末種別が「CL_A」である端末が利用可能な形式に変換した変換後のコンテンツが自装置のキャッシュに記憶されているか否かを判別する。
この結果、変換サーバは、変換後のコンテンツが自装置のキャッシュに記憶されていないと判別した場合には、コンテンツサーバ#2に対して、コンテンツ「C#2」のリクエストを送信する(図36中(2)参照)。また、変換サーバは、コンテンツサーバ#2から送信されたコンテンツ「C#2」を取得する(図36中(3)参照)。そして、変換サーバは、取得されたコンテンツ「C#2」の形式を端末種別が「CL_A」である端末が利用可能な形式に変換し、変換後のコンテンツをクライアントの端末へ送信する(図36中(4)参照)。
また、変換サーバは、変換後のコンテンツをキャッシュに記憶し、端末種別が「CL_A」であるクライアントの端末からコンテンツ「C#2」の要求を再度受信した場合には、キャッシュに記憶された変換後のコンテンツをクライアントへ送信する。つまり、変換サーバは、コンテンツ「C#2」の変換処理を行わずに変換後のコンテンツをクライアントへ送信する。
このような変換サーバを有するコンテンツ変換システムにおいて、コンテンツ変換システム全体の処理能力を増加させるため、クライアントからの送信要求を複数の変換サーバに振り分けるスケールアウト構成を採用したコンテンツ変換システムが知られている。
例えば、図37に示す例では、コンテンツ変換システムは、レイヤ4スイッチ、複数の変換サーバ#1〜#3、複数のコンテンツサーバ#1〜#3を有する。そして、コンテンツ変換システムでは、レイヤ4スイッチが各クライアントからの要求を各変換サーバ#1〜#3に振り分け、各変換サーバ#1〜#3に処理を実行させることで、システム全体の処理能力を増加させる。
例えば、図37に示す例では、レイヤ4スイッチは、端末種別が「CL_A」であるクライアントの端末からコンテンツ「C#2」の要求を受信した場合には、変換サーバ#1〜#3の中から要求を振り分ける変換サーバをランダムに選択する。そして、レイヤ4スイッチは、ランダムに選択された変換サーバ#1に対して、端末種別が「CL_A」であるクライアントの端末から受信された要求を振り分ける。
特開2003−28935号公報
しかしながら、上述したスケールアウト構成のコンテンツ変換システムでは、各変換サーバに対して各クライアントからの要求をランダムに振り分けるので、各変換サーバに記憶されたキャッシュを適切に利用することができないという問題があった。
例えば、コンテンツ変換システムは、クライアントの端末から要求を受信した際に、変換結果となるキャッシュが変換サーバ#2に記憶されている場合にも、クライアントの端末からの要求を変換サーバ#1へ振り分ける場合がある。このような場合には、コンテンツ変換システムは、変換サーバ#2に記憶されたキャッシュを利用できないため、キャッシュヒット率を低下させ、キャッシュを適切に利用することができない。
また、コンテンツ変換システムが有する各変換サーバのキャッシュを同期させ、キャッシュヒット率を改善することも考えられるが、変換サーバ数が多くなるにつれて、キャッシュを同期させるための処理負荷が増大するという問題がある。例えば、図38に示す例では、変換サーバ#1は、キャッシュを同期させるため、コンテンツの形式を変換するたびに、変換済みのコンテンツを他の変換サーバ#2及び#3へ送信し、他の変換サーバ#2及び#3に変換済みのコンテンツを記憶させる。このため、コンテンツ変換システムは、変換サーバの数が増えるにつれて、変換済みのコンテンツを送信する処理の負荷が増大する。
本願に開示のコンテンツ変換プログラムは、上述した問題に鑑みてなされたものであって、各変換サーバに記憶されたキャッシュを適切に利用することができる効果を奏する。
本願に開示の技術は、クライアント端末から、該クライアント端末の種別を示すクライアント情報と、送信を要求するコンテンツを示すコンテンツ情報とを含むコンテンツ送信要求を受信し、所定のクライアント種別が利用可能な形式に所定のコンテンツを変換し、変換済コンテンツをキャッシュする変換サーバを示すサーバ情報、クライアント情報、および、コンテンツ情報を対応付けて記憶した記憶部を参照し、受信した前記コンテンツ送信要求に対応するサーバ情報を取得し、取得した前記サーバ情報が示す変換サーバに対して、前記クライアント情報と前記コンテンツ情報とを通知する処理をコンピュータに実行させることを特徴とするコンテンツ変換プログラム
本願に開示のコンテンツ変換プログラムは、各変換サーバに記憶されたキャッシュを適切に利用することができるという効果を奏する。
図1は、実施例1に係る変換サーバを説明するための図である。 図2は、実施例2に係るコンテンツ変換システムを説明するための図である。 図3は、レイヤ4スイッチを説明するための図である。 図4は、実施例2に係るレイヤ4スイッチを説明するための図である。 図5は、アドレス変換テーブルの一例を説明するための図である。 図6は、振分先サーバ情報の一例を説明するための図である。 図7は、レイヤ4スイッチが受信するコネクション制御メッセージの一例を説明するための図である。 図8は、レイヤ4スイッチが受信するパケットの一例を説明するための図である。 図9は、実施例2に係る変換サーバを説明するための図である。 図10は、宛先決定テーブル部に記憶された情報の一例を説明するための図である。 図11は、担当サーバ管理テーブルの一例を説明するための図である。 図12は、レイヤ4スイッチ制御用アドレス情報の一例を説明するための図である。 図13は、キャッシュ管理テーブルの一例を説明するための図である。 図14は、コンテンツ変換テーブルの一例を説明するための図である。 図15は、リクエストメッセージの一例を説明するための図である。 図16は、委任要求メッセージの一例を説明するための図である。 図17は、委任応答メッセージの一例を説明するための図である。 図18は、委任先変換サーバから委任元変換サーバへ送信されるAckの一例を説明するための図である。 図19は、レスポンスメッセージの一例を説明するための図である。 図20は、コンテンツ変換システムの処理の流れを説明するための図である。 図21は、データの流れを説明するための図である。 図22は、レイヤ4スイッチの処理の流れを説明するためのフローチャートである。 図23は、制御メッセージを受信したレイヤ4スイッチの処理の流れを説明するためのフローチャートである。 図24は、リクエストメッセージを受信した変換サーバの処理の流れを説明するためのフローチャートである。 図25は、委任要求メッセージを受信した変換サーバの処理を説明するためのフローチャートである。 図26は、各装置の処理の流れを説明するためのシーケンス図(1)である。 図27は、各装置の処理の流れを説明するためのシーケンス図(2)である。 図28は、従来の処理の流れを説明するためのシーケンス図である。 図29は、実施例3に係る変換サーバを説明するための図である。 図30は、キャッシュがある場合の委任応答メッセージの一例を説明するための図である。 図31は、キャッシュが存在しない場合の委任応答メッセージの一例を説明するための図である。 図32は、リクエストメッセージを受信した変換サーバが実行する処理の流れを説明するためのフローチャートである。 図33は、委任要求メッセージを受信した変換サーバの処理を説明するためのフローチャートである。 図34は、実施例3に係るコンテンツ変換システムが実行する処理の一例を説明するための図である。 図35は、変換プログラムを実行するコンピュータの一例を説明するための図である。 図36は、従来のコンテンツ変換システムを説明するための図である。 図37は、従来のスケールアウトを説明するための図である。 図38は、従来のデータの流れを説明するための図である。
以下に添付図面を参照して本願に係るコンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバとについて説明する。
以下の実施例1では、図1を用いて、変換サーバの一例を説明する。図1は、実施例1に係る変換サーバを説明するための図である。
図1に示すように、変換サーバ1は、サーバ情報記憶部2、取得部3、検索部4、通知部5、判定部6、送信部7およびキャッシュ8を有する。また、変換サーバ12、13は、変換サーバ1と同様の構成を有する変換サーバである。
サーバ情報記憶部2は、クライアント端末の種別を示すクライアント情報とコンテンツを示すコンテンツ情報との組と、変換サーバを一意に示すサーバ情報とを対応付けて記憶する。キャッシュ8は、クライアント端末が利用可能な形式に変換されたコンテンツを記憶するキャッシュメモリである。
判別部3は、クライアント端末10からコンテンツの送信要求を受信した場合には、受信された送信要求を解析し、送信要求を送信したクライアント端末10の種別を示すクライアント情報と送信を要求されたコンテンツを示すコンテンツ情報とを判別する。
取得部4は、判別部3によって判別されたクライアント情報とコンテンツ情報との組に対応するサーバ情報をサーバ情報記憶部2から取得する。通知部5は、取得部4によって取得されたサーバ情報が示す変換サーバ12に対して、取得部4によって取得されたクライアント情報およびコンテンツ情報を通知する。
判定部6は、他の変換サーバ13から通知されたコンテンツ情報が示すコンテンツの形式を当該通知されたクライアント情報が示す種別のクライアント端末が利用可能な形式に変換された変換済みコンテンツが自装置のキャッシュ8に記憶されているか否かを判定する。
送信部7は、判別部6によって変換済みコンテンツが自装置のキャッシュ8に記憶されていると判別された場合には、自装置のキャッシュ8に記憶されている変換済みコンテンツをクライアント端末11へ送信する。
例えば、図1の例では、端末種別「CL_A」とコンテンツ「C#2」との組に変換サーバ12を示すサーバ情報があらかじめ対応付けられて記憶されている。そして、変換サーバ1は、端末種別が「CL_A」であるクライアント端末10からコンテンツ「C#2」の送信要求を受信した場合には、コンテンツ「C#2」の形式を端末種別「CL_A」のクライアント端末が利用可能な形式に変換することを担当する変換サーバ12を識別する。そして、変換サーバ1は、変換サーバ12に端末種別「CL_A」とコンテンツ「C#2」とを送信して変換処理を委任する。
そして、変換サーバ12は、コンテンツ「C#2」の形式を端末種別「CL_A」のクライアント端末が利用可能な形式に変換した変換済みコンテンツがキャッシュ8に記憶されているか否かを判別する。そして、変換サーバ12は、変換済みコンテンツがキャッシュ8に記憶されている場合には、クライアント端末10に対して、キャッシュ8に記憶されていた変換済みコンテンツを送信する。
つまり、コンテンツ「C#2」と端末種別「CL_A」との組と、変換サーバ12を示すサーバ情報とがあらかじめ対応付けて記憶されている。そして、変換サーバ1は、端末種別が「CL_A」であるクライアント端末10からコンテンツ「C#2」の送信要求を受信した場合には、処理を変換サーバ12に対して常に委任する。このように、コンテンツとクライアント端末の種別との組み合わせに対して担当する変換サーバを固定化しているので、システム内にキャッシュが存在する場合は必ずキャッシュにヒットする。この結果、各変換サーバ1、12、13は、各変換サーバのキャッシュを同期させることなく、キャッシュヒットを保証するとともに、変換サーバの数に応じた処理能力を発揮する。
このように、各変換サーバ1、12、13は、形式を変換するコンテンツとクライアント端末の種別との組とサーバ情報とをあらかじめ対応付けて記憶する。そして、変換サーバ1は、送信要求を受信した場合には、受信された送信要求の送信元であるクライアント端末の種別と送信を要求されたコンテンツとの組に対応付けられた変換サーバに処理を委任する。このため、変換サーバ1は、受信された送信要求にかかわるキャッシュ8が他の変換サーバ12,13に記憶されている場合には、キャッシュを有する変換サーバに処理を委任することができる。結果として、各変換サーバ1、12、13は、処理負荷を増大させることなく各変換サーバに記憶されたキャッシュを適切に利用することができる。
以下の実施例2では、クライアントの要求に応じてコンテンツを配信する変換サーバを複数有するコンテンツ変換システムを説明する。
[コンテンツ変換システム]
まず、図2を用いて、コンテンツ変換システムの構成について説明する。図2は、実施例2に係るコンテンツ変換システムを説明するための図である。図2に示す例では、コンテンツ変換システムは、レイヤ4スイッチ21、複数の変換サーバ22〜24、複数のコンテンツサーバ25〜27を有する。
クライアント15〜17は、レイヤ4スイッチ21および変換サーバを介して、各コンテンツサーバ25〜27に記憶されたコンテンツを要求する端末である。例えば、図2に示す例では、クライアント15は、端末種別が「CL_A」の端末であり、クライアント16は、端末種別が「CL_B」の端末であり、クライアント17は、端末種別が「CL_C」の端末である。また、クライアント15〜17は、コンテンツサーバ25〜27に記憶されたコンテンツの送信要求であるリクエストメッセージを、レイヤ4スイッチ21へ送信する。
コンテンツサーバ25〜27は、コンテンツを記憶するサーバである。例えば、図2に示す例では、コンテンツサーバ25は、コンテンツ「A1」を記憶し、コンテンツサーバ26は、コンテンツ「B1」を記憶し、コンテンツサーバ27は、コンテンツ「C1」を記憶する。
レイヤ4スイッチ21は、クライアント15〜17から送信されたリクエストメッセージを変換サーバ22〜24のいずれかに振り分けるスイッチである。具体的には、レイヤ4スイッチ21は、クライアント15〜17から送信されたリクエストメッセージを受信した場合には、リクエストメッセージの振分先となる変換サーバをランダムに選択する。そして、レイヤ4スイッチ21は、クライアントから受信されたリクエストメッセージを選択された変換サーバへ送信する。
変換サーバ22は、コンテンツの形式をクライアントが利用可能な形式に変換する変換サーバである。具体的には、変換サーバ22は、あらかじめ、コンテンツを示す情報と端末種別を示す情報との組に変換サーバを示す情報とを対応付けて記憶する。例えば、変換サーバ22は、コンテンツ「B1」とクライアント15の端末種別「CL_A」との組に自装置のIPアドレスを対応付けて記憶する。また、変換サーバ22は、を端末種別が「CL_A」である端末15が利用可能な形式にコンテンツ「B1」の形式を変更する。
次に、変換サーバが実行する処理の流れについて説明する。例えば、図2に示す例では、変換サーバ23は、クライアント15からコンテンツ「B1」の送信を要求するリクエストメッセージを受信した場合には、リクエストメッセージを解析する。そして、変換サーバ23は、クライアント15の端末種別を示すクライアント情報「CL_A」と送信を要求されたコンテンツを示すコンテンツ情報「B1」とを判別する。また、変換サーバ23は、クライアント情報「CL_A」とコンテンツ情報「B1」とに対応付けられた変換サーバ22を特定する。そして、変換サーバ23は、コンテンツ情報「B1」が示すコンテンツをクライアント15が利用可能な形式に変換する処理とクライアント15へ変換済みのコンテンツを送信する処理とを特定された変換サーバ22に委任する。
また、変換サーバ22は、変換サーバ23から各処理を委任された場合には、変換済みのコンテンツがキャッシュに記憶されているか否かを判定する。そして、変換サーバ22は、変換済みのコンテンツがキャッシュに記憶されていると判定した場合には、キャッシュに記憶された変換済みのコンテンツをクライアント15へ送信する。
また、変換サーバ22は、変換済みのコンテンツがキャッシュに記憶されていないと判別した場合には、コンテンツ「B1」をコンテンツサーバ26から取得する。そして、変換サーバ22は、取得されたコンテンツ「B1」を端末種別「CL_A」のクライアント15が利用可能な形式に変換し、変換済みのコンテンツをクライアント15へ送信する。また、変換サーバ22は、変換済みのコンテンツをキャッシュに記憶する。
つまり、各変換サーバ22〜24は、クライアントからリクエストメッセージを受信した場合には、リクエストメッセージの送信元であるクライアントの種別と送信を要求したコンテンツとの組に対応付けられた変換サーバへ処理を委任する。例えば、変換サーバ22〜24は、端末種別が「CL_A」であるクライアント15からコンテンツ「B1」の送信を要求するリクエストメッセージを受信した場合には、処理を変換サーバ22のみに委任する。
このため、変換サーバ22〜24は、端末種別「CL_A」のクライアントからコンテンツ「B1」の送信を要求する送信要求を再度受信した場合には、変換サーバ22に記憶された変換済みのコンテンツを利用することができる。つまり、変換サーバ22〜24は、変換サーバ22〜24のいずれかにキャッシュが存在する場合には、キャッシュヒットを保証することができる。
このように、変換サーバ22〜24は、クライアントの種別と送信を要求したコンテンツとの組に対応付けられた変換サーバへ処理を委任するので、各変換サーバのキャッシュの同期を行わずとも、キャッシュヒットを保証する。結果として、変換サーバ22〜24は、キャッシュヒットを保証しつつ、各変換サーバのキャッシュの同期を不用とし、変換サーバの数に応じた処理能力を発揮することができる。
次に、図面を用いて、コンテンツ変換システムが有する各部について説明する。以下の説明では、まず、レイヤ4スイッチ21の処理、続いてレイヤ4スイッチ21が有する各部について説明する。その後、各変換サーバ22〜24が有する各部について具体的に説明し、変換サーバが有する各部の処理例を説明する。
まず、図3を用いて、レイヤ4スイッチ21の処理について説明する。図3は、レイヤ4スイッチを説明するための図である。図3に示す例では、レイヤ4スイッチ21は、NAPT(Network Address Port Translation)を用いて、クライアント15と変換サーバ23とを接続する。
例えば、レイヤ4スイッチ21は、クライアント15からレイヤ4スイッチ21に対する3 Way HandshakeのSYNパケットを受信した場合には、振分け先の変換サーバとして変換サーバ23を選択する。そして、レイヤ4スイッチ21は、SYNパケットに宛先として格納されたレイヤ4スイッチ21のIPアドレスを選択された変換サーバ23のIPアドレスに変換する。その後、レイヤ4スイッチ21は、SYNパケットを変換サーバ23へ送信する。
また、レイヤ4スイッチ21は、SYNパケットを送信した変換サーバ23からACKパケットを受信した場合には、受信されたACKパケットの送信元をレイヤ4スイッチ21のIPアドレスに変換し、ACKパケットをクライアント15へ送信する。そして、レイヤ4スイッチ21は、クライアント15から送信されたACKパケットの宛先を変換サーバ23のIPアドレスに変換し、ACKパケットを変換サーバ23へ送信する。
その後、レイヤ4スイッチ21は、クライアント15から送信されたリクエストの宛先を変換サーバ23のIPアドレスに変換し、リクエストを変換サーバ23へ送信する。つまり、レイヤ4スイッチ21は、クライアント15と選択された変換サーバ23との間のコネクションを論理的に一つに保ちつつ、アドレスの変換を実行する。
次に、図4を用いて、レイヤ4スイッチ21が有する各部について説明する。図4は、実施例2に係るレイヤ4スイッチを説明するための図である。図4に示す例では、レイヤ4スイッチ21は、変換テーブル管理部30、アドレス変換テーブル記憶部31、変換処理部32、振分先サーバ情報記憶部33を有する。
なお、以下の説明では、レイヤ4スイッチ21は、クライアント15と変換サーバ22とを論理的に一つのコネクションで接続するものとする。また、クライアント15は、コンテンツサーバ26に記憶されたコンテンツのリクエストを送信するものとする。
アドレス変換テーブル記憶部31は、アドレス変換テーブルを記憶する。ここで、アドレス変換テーブルとは、クライアント側のIPアドレス、クライアント側のポート番号、サーバ側の変換元IPアドレス、サーバ側の変換元ポート番号、サーバ側の変換後IPアドレス、サーバ側の変換後ポート番号を対応付けて格納するテーブルである。
例えば、図5に示す例では、アドレス変換テーブルには、クライアント側のIPアドレス「192.0.2.254」、クライアント側のポート番号「10000」、サーバ側の変換前IPアドレス「192.0.2.1」が対応付けて格納される。また、アドレス変換テーブルには、サーバ側の変換前ポート番号「80」、サーバ側の変換後IPアドレス「10.10.10.22」、サーバ側の変換後ポート番号「80」が対応付けて格納される。図5は、アドレス変換テーブルの一例を説明するための図である。
図4に戻って、振分先サーバ情報記憶部33は、振分先サーバとなる変換サーバの情報を記憶する。具体的には、振分先サーバ情報記憶部33は、振分先サーバを示す符号と各サーバのIPアドレスとポート番号とを対応付けて記憶する。例えば、図6に示す例では、振分先サーバ情報記憶部33は、振分先サーバを示す符号「#1」とIPアドレス「10.10.10.22」とポート番号「80」とを対応づけて記憶する。図39は、振分先サーバ情報の一例を説明するための図である。
図4に戻って、変換テーブル管理部30は、アドレス変換テーブル記憶部31を管理する。具体的には、変換テーブル管理部30は、各変換サーバ22〜24からコネクション制御メッセージを取得する。また、変換テーブル管理部30は、各変換サーバ22〜24からコネクション制御メッセージを取得した場合には、取得されたコネクション制御メッセージに応じて、アドレス変換テーブル記憶部31に記憶されたアドレス変換テーブルを変更する。
ここで、コネクション制御メッセージについて説明する。例えば、図7に示す例では、コネクション制御メッセージには、レイヤ4スイッチを示すIPヘッダ、レイヤ4スイッチを示すTCPヘッダ、サーバ側変換後IPアドレス(変更前)、クライアント側IPアドレスが格納される。また、コネクション制御メッセージには、サーバ側変換後ポート番号(変更前)、クライアント側ポート番号、サーバ側変換後IPアドレス(変更後)、サーバ側変更後ポート番号(変更後)が格納される。図7は、レイヤ4スイッチが受信するコネクション制御メッセージの一例を説明するための図である。
次に、変換テーブル管理部30が、コネクション制御メッセージに応じてアドレス変換テーブルを変更する処理について説明する。例えば、変換テーブル管理部30は、コネクション制御メッセージを受信した場合には、コネクション制御メッセージに格納されたサーバ側変更後IPアドレス(変更前)とクライアント側IPアドレスとが一致するエントリをアドレス変換テーブルから検索する。あわせて、変換テーブル管理部30は、コネクション制御メッセージに格納されたサーバ側変更後ポート番号(変更前)とクライアント側ポート番号が一致するエントリをアドレス変換テーブルから検索する。
そして、変換テーブル管理部30は、アドレス変換テーブルのうち、検索されたエントリのサーバ側変換後IPアドレスを受信されたコネクション制御メッセージのサーバ側変更後IPアドレス(変更後)に書き換える。また、変換テーブル管理部30は、アドレス変換テーブルのうち、検索されたエントリのサーバ側変換後ポート番号を受信されたコネクション制御メッセージのサーバ側変更後ポート番号(変更後)に書き換える。
図4に戻って、変換処理部32は、クライアント15〜17からパケットを受信した場合には、アドレス変換テーブル記憶部31に記憶されたアドレス変換テーブルに応じて、受信されたパケットに格納されたアドレスを変換する。また、変換処理部32は、変換サーバ22〜24からパケットを受信した場合には、アドレス変換テーブル記憶部31に記憶されたアドレス変換テーブルに応じて、受信されたパケットに格納されたアドレスを変換する。
例えば、変換処理部32は、図8に例示するパケットをクライアント15から受信する。図8に示す例では、変換処理部32は、IPヘッダとTCPヘッダとデータが格納されたパケットを受信する。また、IPヘッダには、バージョン、ヘッダ長、サービスタイプ、パケットの全長、識別子、フラグ、フラグメントオフセット、生存期間、プロトコル、ヘッダチェックサム、送信元IPアドレス、宛先IPアドレスを示す情報が格納される。また、TCPヘッダには、送信元ポート番号、宛先ポート番号、シーケンス番号、確認応答番号等が格納される。またデータには、リクエストメッセージが格納される。図8は、レイヤ4スイッチが受信するパケットの一例を説明するための図である。
変換処理部32は、クライアント15からパケットを受信した場合には、受信したパケットに格納された送信元IPアドレス、パケットの送信元ポート番号、パケットの宛先IPアドレス、パケットのポート番号を識別する。そして、変換処理部32は、識別されたIPアドレス及びポート番号をキーとして、アドレス変換テーブルのクライアント側IPアドレス及びポート番号とパケットの宛先IPアドレス及びポート番号とを検索する。その後、変換処理部32は、キーと一致するエントリがヒットした場合には、ヒットしたエントリのサーバ側変換後IPアドレスとサーバ側変換後ポート番号とを取得する。
また、変換処理部32は、受信されたパケットの宛先IPアドレス及びポート番号を取得されたサーバ側変換後IPアドレスとサーバ側変換後ポート番号に変換する。そして、変換処理部32は、宛先IPアドレス及びポート番号を変換したパケットを送信する。
一方、変換処理部32は、各IPアドレス及び各ポート番号が一致するエントリがヒットしなかった場合には、振分先サーバ情報記憶部33に記憶された振分先サーバ情報を参照する。そして、変換処理部32は、振分先サーバ情報に記憶された変換サーバの中から、パケットの振分先となる変換サーバをランダムに選択する。なお、この例では、パケットの振分先となる変換サーバをランダムに選択することとしたが、変換サーバの選択の仕方は任意であり、他の方法を用いて変換サーバを選択しても良い。
また、変換処理部32は、パケットの振分先となる変換サーバを選択した場合には、選択された変換サーバのIPアドレス及びポート番号を振分先サーバ情報記憶部33に記憶された振分先サーバ情報より取得する。そして、変換処理部32は、受信されたパケットの送信元IPアドレス及びポート番号をクライアント側IPアドレス及びポート番号とするエントリを生成する。
また、変換処理部32は、受信されたパケットに格納されていた宛先IPアドレスをサーバ側変換前IPアドレスとして、生成されたエントリに格納する。また、変換処理部32は、受信されたパケットに格納されていた宛先ポート番号をサーバ側変換前ポート番号として、生成されたエントリに格納する。また、変換処理部32は、振分先サーバとして選択された変換サーバのIPアドレスをサーバ側変換後IPアドレスとして、生成されたエントリに格納する。また、変換処理部32は、受信されたパケットに格納されていた変換サーバのポート番号をサーバ側変換後ポート番号として、生成されたエントリに格納する。その後、変換処理部32は、生成されたエントリをアドレス変換テーブルに格納する。
一方、変換処理部32は、変換サーバ22から送信されたパケットを受信した場合には、受信したパケットの送信元IPアドレス及びポート番号とパケットの宛先IPアドレス及びポート番号を識別する。そして、変換処理部32は、識別された各IPアドレス及びポート番号をキーとして、アドレス変換テーブルのサーバ側変換後IPアドレス及びポート番号とクライアント側IPアドレス及びポート番号を検索する。
その後、変換処理部32は、キーと一致するエントリがヒットした場合には、ヒットしたエントリのサーバ側変換前IPアドレスとサーバ側変換前ポート番号とを取得する。また、変換処理部32は、受信されたパケットの送信元IPアドレス及びポート番号を取得されたサーバ側変換前IPアドレスとサーバ側変換前ポート番号に変換する。そして、変換処理部32は、変換前IPアドレス及びポート番号を変換したパケットを送信する。
このように、レイヤ4スイッチは、クライアント側から送信されたパケットの宛先IPアドレス及び宛先ポート番号を振分先となる変換サーバのIPアドレス及びポート番号に変換する。また、レイヤ4スイッチは、変換前の宛先IPアドレス及び宛先ポート番号を記憶し、変換サーバ側から送信されたパケットの送信元アドレス及び送信元ポート番号を記憶された変換前の宛先IPアドレス及び宛先ポート番号に変換する。
つまり、レイヤ4スイッチは、クライアントと変換サーバとの間のコネクションを論理的に一つに保ったままで、クライアントと変換サーバとの間で送受信されるパケットを中継する。
次に、図9を用いて、実施例2に係る変換サーバを説明する。図9は、実施例2に係る変換サーバを説明するための図である。以下の説明では、変換サーバ22が有する各部について説明するものとし、変換サーバ22と同様の各部を有する変換サーバ23、及び変換サーバ24については、説明を省略するものとする。
また、以下の説明では、コンテンツサーバ25に記憶されたコンテンツを要求するリクエストメッセージをクライアント15が送信したものとする。また、クライアント15によって送信されたメッセージが変換サーバ22に振り分けられたものとする。また、コンテンツサーバ26に記憶されたコンテンツを要求するリクエストメッセージをクライアント16が送信し、クライアント16によって送信されたメッセージが変換サーバ24に振り分けられたものとする。また、変換サーバ22は、後述する委任要求メッセージを変換サーバ24から取得し、コンテンツサーバ26に記憶されたコンテンツを変換するものとする。
図9に示すように、変換サーバ22は、宛先決定テーブル部34、担当サーバ管理テーブル部35、レイヤ4スイッチ制御用アドレス情報記憶部36、キャッシュ管理テーブル部37、コンテンツ変換テーブル部38、キャッシュ記憶部47を有する。また、変換サーバ22は、TCP管理部39、宛先決定部40、担当サーバ管理部41、委任制御部42、委任受け付け部43、キャッシュ管理部44、コンテンツ変換処理部45、TCP管理部46を有する。
宛先決定テーブル部34は、宛先決定テーブルを記憶する記憶部である。例えば、宛先決定テーブル部34は、図10に示すように、Request−URI(Uniform Resource Identifier)とコンテンツを記憶するコンテンツサーバのIPアドレス及びポート番号とを対応付けた宛先決定テーブルを記憶する。図10は、宛先決定テーブル部に記憶された情報の一例を説明するための図である。
ここで、Request−URIとは、各クライント15〜17から送信を要求されるコンテンツを一意に示す情報である。例えば、宛先決定テーブル部34は、Request−URI「/contents/A1」とIPアドレス「10.10.100.25」とポート番号「80」とを対応付けた宛先決定テーブルを記憶する。
図9に戻って、担当サーバ管理テーブル部35は、クライアントの種別を示す種別情報とコンテンツを示すコンテンツ情報との組を記憶する。また、担当サーバ管理テーブル部35は、種別情報とコンテンツ情報との組に、種別情報が示す種別のクライアントが利用可能な形式にコンテンツ情報が示すコンテンツの形式を変換する変換サーバを一意に示すサーバ情報を対応付けて記憶する。
具体的には、担当サーバ管理テーブル部35は、Request−URI、User−Agent、キャッシュID、担当サーバIPアドレス、担当サーバ受信ポート番号、及び担当サーバ制御用ポート番号を対応付けた担当サーバ管理テーブルを記憶する。
ここで、User−Agentとは、クライアントの種別を示す情報であり、例えば、クライアントが使用するブラウザを示す情報である。キャッシュIDとは、クライアントが利用可能な形式に変換したコンテンツのキャッシュを一意に示す番号である。
例えば、図11に示す例では、担当サーバ管理テーブル部35は、Request−URI「/contents/A1」、User−Agent「XXX/1.0/xxx」、及びキャッシュID「1」を対応付けた担当サーバ管理テーブルを記憶する。また、担当サーバ管理テーブル部35は、キャッシュID「1」に、担当サーバIPアドレス「10.10.10.23」、担当サーバ受信ポート番号「80」、及び担当サーバ制御用ポート番号「1111」を対応付けた担当サーバ管理テーブルを記憶する。なお、図40は、担当サーバ管理テーブルの一例を説明するための図である。
ここで、キャッシュIDについて詳しく説明する。キャッシュIDは、変換済みコンテンツを一意に示す番号であり、Request−URIとUser−Agentから一意に決まる番号である。例えば、図11の例では、IPアドレス「10.10.100.25」の「/contents/A1」に格納されたコンテンツを「XXX/1.0/xxx」が利用できる形式に変換した変換済みコンテンツをキャッシュID「1」として記憶する。
つまり、変換済みコンテンツは、クライアントの種別と変換元のコンテンツとの組ごとに記憶するキャッシュが異なるので、コンテンツのリクエストを送信したクライアントの種別と変換元のコンテンツとの組ごとにキャッシュIDが予め定められる。
図9に戻って、レイヤ4スイッチ制御用アドレス情報記憶部36は、レイヤ4スイッチのIPアドレスとレイヤ4スイッチの制御用ポート番号とを記憶する。例えば、図12に示す例では、レイヤ4スイッチ制御用アドレス情報記憶部36は、レイヤ4スイッチのIPアドレス「10.10.10.254」とレイヤ4スイッチ制御用ポート番号「1111」とを対応付けて記憶する。図12は、レイヤ4スイッチ制御用アドレス情報の一例を説明するための図である。
図9に戻って、キャッシュ管理テーブル部37は、コンテンツをクライアントの種別に応じて変換したキャッシュを記憶する。例えば、図13に示す例では、キャッシュ管理テーブル部37は、キャッシュID「1」、キャッシュの有無「1」、及びキャッシュの格納領域「/cache/1」を対応付けて記憶する。図41は、キャッシュ管理テーブルの一例を説明するための図である。
ここで、キャッシュの有無には、変換サーバ22のキャッシュに変換後のコンテンツが記憶されている場合には、「1」が格納され、変換サーバ22のキャッシュに変換後のコンテンツが記憶されていない場合には、「0」が格納される。例えば、図13の例では、キャッシュ管理テーブル部37は、キャッシュID「1」で示される変換後のコンテンツが変換サーバ22が有するキャッシュ記憶部47の格納領域「/cache/1」に記憶されていることを記憶する。
図9に戻って、コンテンツ変換テーブル部38は、コンテンツ変換テーブルを記憶する記憶部である。具体的には、コンテンツ変換テーブル部38は、キャッシュIDと変換前のコンテンツの種別と変換後のコンテンツの種別とを対応付けて記憶する。例えば、図14に示す例では、コンテンツ変換テーブル部38は、キャッシュID「1」と変換元コンテンツの種別「HTML(HyperText Markup Language)」と変換後コンテンツの種別「CHTML(Compact HTML)」とを対応付けて記憶する。図42は、コンテンツ変換テーブルの一例を説明するための図である。
図9に戻って、キャッシュ記憶部47は、変換後のコンテンツを記憶するキャッシュである。例えば、キャッシュ記憶部47、クライアント15が実行可能な形式に変換されたコンテンツを記憶する。
図9に戻ってTCP管理部39は、後述する委任制御部42、及び後述する委任受付部43、及びキャッシュ管理部44による制御に従って、TCP通信を行う終端装置である。具体的には、TCP管理部39は、レイヤ4スイッチを介して、クライアント15から送信されたパケットを受信する。そして、TCP管理部39は、受信されたパケットの終端処理を行い、パケットに格納されたデータを宛先決定部40へ送信する。また、TCP管理部39は、受信されたパケットの送信元であるクライアント15のIPアドレス及びポート番号と受信されたパケットに格納されたシーケンス番号と確認応答番号とを委任制御部42へ通知する。
また、TCP管理部39は、後述する委任制御部42、委任受付部43及びキャッシュ管理部44からデータを受信する。そして、TCP管理部39は、取得したデータをレイヤ4スイッチ21を介して、クライアント15〜17へ送信する。
例えば、TCP管理部39は、レイヤ4スイッチ21を介して、図15に例示するリクエストメッセージをクライアント15から受信する。図43は、リクエストメッセージの一例を説明するための図である。ここで、図15に示す例では、リクエストメッセージには、IPヘッダ、TCPヘッダ、及びレイヤ7プロトコルヘッダが格納される。TCP管理部39は、IPヘッダとTCPヘッダの終端処理を実行し、レイヤ7プロトコルヘッダを宛先決定部40へ送信する。
図9に戻って、宛先決定部40は、クライアント15からコンテンツの送信を要求するリクエストメッセージを受信した場合には、受信されたリクエストメッセージを解析する。そして、宛先決定部40は、クライアント15の種別を示すUser−Agentとクライアント15が送信を要求したコンテンツを示すRequest−URIとを判別する。具体的には、宛先決定部40は、レイヤ7プロトコルヘッダをTCP管理部39から受信する。また、宛先決定部40は、受信したレイヤ7プロトコルヘッダを解析し、レイヤ7プロトコルヘッダに含まれるUser−AgentとRequest−URIとを判別する。
また、宛先決定部40は、判別されたRequest−URIと対応づけて記憶されたコンテンツサーバ25のIPアドレスとポート番号とを宛先決定テーブルから取得する。そして、宛先決定部40は、判別されたUser−Agent、Request−URI、及び取得されたコンテンツサーバ25のIPアドレスとポート番号とを担当サーバ管理部41に送信する。
例えば、宛先決定部40は、図15に例示するレイヤ7プロトコルヘッダを受信した場合には、受信したレイヤ7プロトコルヘッダからUser−Agent「XXX/1.0/xxx/12345」を判別する。また、宛先決定部40は、受信したレイヤ7プロトコルヘッダからRequest−URI「/contents/A1」を判別する。
また、宛先決定部40は、図10に例示する宛先決定テーブルから「/contents/A1」と対応付けられたコンテンツサーバ25のIPアドレス「10.10.100.25」とポート番号「80」とを取得する。そして、宛先決定部40は、User−Agent「XXX/1.0/xxx/12345」、Request−URI「/contents/A1」を担当サーバ管理部41へ送信する。また、宛先決定部40は、コンテンツサーバ25のIPアドレス「10.10.100.25」、ポート番号「80」を担当サーバ管理部41へ送信する。
図9に戻って、担当サーバ管理部41は、宛先決定部40は、宛先決定部40によって判別されたUser−AgentとRequest−URIとの組に対応付けて記憶された変換サーバのIPアドレスを担当サーバ管理テーブルから特定する。具体的には、担当サーバ管理部41は、宛先決定部40から、User−AgentとRequest−URIと、コンテンツサーバ25のIPアドレス及びポート番号とを受信する。
そして、担当サーバ管理部41は、受信されたUser−AgentとRequest−URIとに対応付けて記憶された変換サーバのIPアドレスと受信ポート番号と制御用ポート番号とを担当サーバ管理テーブル部35から特定する。また、担当サーバ管理部41は、User−AgentとRequest−URIとに対応付けられたキャッシュIDを担当サーバ管理テーブル部35から取得する。
また、担当サーバ管理部41は、特定された変換サーバのIPアドレスが自装置のIPアドレスであるか否かを判別する。そして、担当サーバ管理部41は、特定されたIPアドレスが自装置のIPアドレスであると判別した場合には、取得されたキャッシュIDをキャッシュ管理部44に送信する。
一方、担当サーバ管理部41は、特定されたIPアドレスが自装置のIPアドレスではないと判別した場合には、特定されたIPアドレス、受信ポート番号、制御用ポート番号、及び取得されたキャッシュIDを委任制御部42へ通知する。また、担当サーバ管理部41は、特定されたIPアドレスが自装置のIPアドレスではないと判別した場合には、コンテンツサーバ25のIPアドレス及びポート番号とを委任制御部42へ通知する。
以下に、変換サーバ22が有する担当サーバ管理部41が実行する処理の具体例を説明する。以下の説明では、変換サーバ22のIPアドレスは、「10.10.10.22」であり、変換サーバ23のIPアドレスは、「10.10.10.23」であるものとする。
例えば、担当サーバ管理部41は、宛先決定部40からUser−Agent「XXX/1.0/xxx/12345」とRequest−URI「/contents/A1」とを受信する。また、担当サーバ管理部41は、宛先決定部40からコンテンツサーバ25のIPアドレス「10.10.100.25」とポート番号「80」とを受信する。
そして、担当サーバ管理部41は、User−Agent「XXX/1.0/xxx/12345」とRequest−URI「/contents/A1」との組に対応付けられた変換サーバのIPアドレス、受信ポート番号、制御用ポート番号を特定する。図11に示す例では、「XXX/1.0/xxx/12345」と「/contents/A1」との組が、担当サーバ管理テーブルの初めに格納されている。
この例では、担当サーバ管理部41は、検索された組と対応付けられた担当サーバである変換サーバ23のIPアドレス「10.10.10.23」、担当サーバの受信ポート番号「80」、及び担当サーバの制御用ポート番号「1111」を取得する。
また、担当サーバ管理部41は、取得されたIPアドレス「10.10.10.23」が自装置のIPアドレスであるか否かを判別する。ここで、担当サーバ管理部41は、変換サーバ22のIPアドレスが「10.10.10.22」であるので、取得された担当サーバのIPアドレスが自装置のIPアドレスではないと判別する。
このため、担当サーバ管理部41は、取得されたキャッシュID「1」、担当サーバのIPアドレス「10.10.10.23」、担当サーバの受信ポート番号「80」、及び担当サーバの制御用ポート番号「1111」を委任制御部42へ通知する。
図9に戻って、委任制御部42は、担当サーバ管理部41によって特定されたIPアドレスが示す変換サーバに対して、担当サーバ管理部41によって特定されたキャッシュIDを通知する。また、委任制御部42は、担当サーバ管理部41によって特定されたIPアドレスが示す変換サーバに対して、クライアントとの間に確立したコネクションを示すコネクション情報を送信する。
また、委任制御部42は、担当サーバ管理部41によって特定されたIPアドレスが示す変換サーバからコネクション情報を受信した場合には、受信された情報を用いて、クライアント15から受信したリクエストメッセージをコンテンツサーバ25へ送信する。
具体的には、委任制御部42は、変換サーバ23のIPアドレス、受信ポート番号、制御用ポート番号、及び担当サーバ管理部41によって取得されたキャッシュIDを示す通知を担当サーバ管理部41から取得する。また、委任制御部42は、コンテンツサーバ25のIPアドレス及びポート番号とを示す通知を担当サーバ管理部41から取得する。また、委任制御部42は、リクエストメッセージの送信元であるクライアント15のIPアドレス及びポート番号を示す通知をTCP管理部39から取得する。そして、委任制御部42は、取得した各種情報を格納した委任要求メッセージを生成する。
ここで、図16は、委任要求メッセージの一例を説明するための図である。図16に示す例では、委任制御部42は、変換サーバ23のIPアドレスを委任要求メッセージのIPヘッダに格納し、変換サーバ23の受信ポート番号を委任要求メッセージのTCPヘッダに格納する。また、委任制御部42は、コンテンツサーバ25のIPアドレスを委任要求メッセージの宛先コンテンツサーバIPアドレスに格納し、コンテンツサーバ25のポート番号を委任要求メッセージの宛先コンテンツサーバポート番号に格納する。
また、委任制御部42は、クライアント15のIPアドレスを委任要求メッセージのクライアント側IPアドレスに格納し、クライアント15のポート番号を委任要求メッセージのクライアント側ポート番号に格納する。また、委任制御部42は、シーケンス番号、確認応答番号、キャッシュIDおよびリクエストメッセージ長を委任要求メッセージに格納する。
また、委任制御部42は、委任要求メッセージを生成した場合には、委任要求メッセージを、担当サーバへ送信する。つまり、委任制御部42は、クライアント15の種別とクライアント15が送信を要求したコンテンツとの組に対応付けられた変換サーバ23へ委任要求メッセージを送信する。
また、委任制御部42は、委任要求メッセージを送信した変換サーバ23から、委任要求メッセージに対する応答である委任応答メッセージを受信する。そして、委任制御部42は、委任応答メッセージを受信した場合には、受信された委任応答メッセージからサーバ側コネクション情報を取得する。
ここで、委任応答メッセージとは、委任要求メッセージに対する応答として、委任要求メッセージを送信した変換サーバ23から送信されるメッセージである。また、委任応答メッセージは、変換サーバ23とコンテンツサーバ25との間に確立されたコネクションの情報であるサーバ側コネクション情報を含む。例えば、図17に示す例では、委任応答メッセージは、変換サーバ22のIPアドレス及びポート番号が格納されたIPヘッダ及びTCPヘッダを含む。また、委任応答メッセージは、サーバ側コネクション情報として、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、シーケンス番号、及び確認応答番号を含む。図17は、委任応答メッセージの一例を説明するための図である。
ここで、サーバ側コネクション情報のうち、送信元IPアドレス、及び送信元ポート番号とは、委任応答メッセージを送信した変換サーバ23のIPアドレス、及びポート番号である。また、宛先IPアドレス、及びポート番号とは、送信要求の対象であるコンテンツを記憶するコンテンツサーバのアドレス、及びポート番号である。また、シーケンス番号とは、変換サーバ23とコンテンツサーバ25との間で確立されたコネクションでのシーケンス番号である。確認応答番号とは、変換サーバ23とコンテンツサーバ25との間で確立されたコネクションでの確認応答番号である。
また、委任制御部42は、取得されたサーバ側コネクション情報を用いて、コネクション制御メッセージを生成する。また、委任制御部42は、レイヤ4スイッチ制御用アドレス情報記憶部36よりレイヤ4スイッチ制御用アドレスを取得する。そして、委任制御部42は、取得されたレイヤ4スイッチ制御用アドレスを用いて、生成したコネクション制御メッセージを送信する。
また、委任制御部42は、取得されたサーバ側コネクション情報をTCP管理部46に設定する。また、委任制御部42は、クライアント15から受信されたリクエストメッセージをパケットに分割して、TCP管理部46に送信する。つまり、委任制御部42は、TCP管理部46を介して、クライアント15から受信されたリクエストメッセージをコンテンツサーバ25へ送信する。
また、委任制御部42は、委任要求メッセージを送信した変換サーバ23を介して、コンテンツサーバ25へ送信したリクエストメッセージに対する応答であるAck(Acknowledgement)を受信する。委任制御部42は、Ackを受信した場合には、リクエストメッセージを全て変換サーバ25へ送信したか否かを判別し、全て送信したと判別した場合には、Ackの転送を解除させる通知であるACK解除通知を変換サーバ23へ送信する。
また、委任制御部42は、変換サーバ23とコンテンツサーバ25との間に確立されたコネクションを利用して、リクエストメッセージをコンテンツサーバ25へ送信する。このため、コンテンツサーバ25は、Ackを変換サーバ23へ送信する。そこで、変換サーバ22は、変換サーバ23を介して、コンテンツサーバ25から送信されたAckを受信する。
ここで、委任制御部42がリクエストメッセージに対する応答として受信するAckの一例を図18に示す。図18に示す例では、Ackは、変換サーバ22のIPアドレス及びポート番号が格納されたIPヘッダ及びTCPヘッダを含む。また、Ackは、変換サーバ23とコンテンツサーバ25との間に確立されたコネクションの確認応答番号を含む。また、Ackは、コンテンツサーバ25側のウィンドウサイズであるコンテンツサーバ側ウインドウサイズ、及び変換サーバ23のウインドウサイズである委任先変換サーバ側ウインドウサイズを含む。図18は、委任先変換サーバから委任元変換サーバへ送信されるAckの一例を説明するための図である。
次に、委任制御部42が実行する処理の具体例について説明する。まず、委任制御部42が実行する処理のうち、委任要求メッセージを送信する処理についての具体例を説明する。例えば、委任制御部42は、担当サーバ管理部41から、キャッシュID「1」、担当サーバのIPアドレス「10.10.10.23」、担当サーバの受信ポート番号「80」、及び担当サーバの制御用ポート番号「1111」を示す通知を受信する。
また、委任制御部42は、担当サーバ管理部41から、クライアント15のIPアドレス「192.0.2.254」とポート番号「10000」とを示す通知を受信する。また、委任制御部42は、TCP管理部39から、クライアント15とのコネクションに用いられるシーケンス番号「1001」と確認応答番号「0002」とを取得する。
そして、委任制御部42は、宛先コンテンツサーバIPアドレス「10.10.100.25」、クライアント側IPアドレス「192.0.2.254」、及び宛先コンテンツサーバポート番号「80」を格納した委任要求メッセージを生成する。また、委任制御部42は、クライアント側ポート番号「10000」、クライアント側IPアドレス「192.0.2.254」、シーケンス番号「2001」、確認応答番号「5001」を委任要求メッセージに格納する。また、委任制御部42は、キャッシュID「1」、リクエストメッセージ長「50byte」を格納する。
その後、委任制御部42は、担当サーバである変換サーバ23のIPアドレス「10.10.10.23」と担当サーバの受信ポート番号「80」とを委任要求メッセージのTCP/IPヘッダに格納し、委任情報を変換サーバ23へ送信する。
また、委任制御部42は、委任要求メッセージを送信した変換サーバ23から、委任応答メッセージとして、送信元IPアドレス「10.10.10.23」、宛先IPアドレス「10.10.100.25」が格納された委任応答メッセージを受信する。また、委任制御部42は、委任応答メッセージとして、送信元ポート番号「80」、宛先ポート番号「80」、シーケンス番号「5001」、及び確認応答番号「2002」が格納された委任応答メッセージを受信する。
そして、委任制御部42は、サーバ側変換後IPアドレス(変更前)に自装置のIPアドレス「10.10.10.22」を格納したコネクション制御メッセージを生成する。また、委任制御部42は、コネクション制御メッセージのクライアント側IPアドレスにクライアント15のアドレス「192.0.2.254」を格納し、サーバ側変換後ポート番号(変更前)に自装置のポート番号「80」を格納する。
また、委任制御部42は、コネクション制御メッセージのクライアント側ポート番号に「10000」を格納し、サーバ側変換後IPアドレス(変更後)に「10.10.10.23」を格納する。また、委任制御部42は、サーバ側変換後ポート番号(変換後)に「80」を格納する。その後、委任制御部42は、各情報を格納したコネクション制御メッセージをレイヤ4スイッチ21の変換テーブル管理部30へ送信する。
次に、委任制御部42が実行する処理のうち、コンテンツサーバにコンテンツを要求する処理についての具体例を説明する。まず、委任制御部42は、委任応答メッセージを変換サーバ23から受信する。そして、委任制御部42は、受信された委任応答メッセージのうち、サーバ側コネクション情報である宛先IPアドレス「10.10.100.25」、及び宛先ポート番号「80」をTCP管理部46に設定する。
また、委任制御部42は、シーケンス番号「5001」、及び確認応答番号「2002」をTCP管理部46に設定する。そして、委任制御部42は、クライアント15から受信されたリクエストメッセージをパケットに分割して、TCP管理部46に送信する。
後述するように、TCP管理部46は、設定されたサーバ側コネクション情報を用いて、リクエストメッセージを送信する。つまり、TCP管理部46は、変換サーバ23が有するTCP管理部としてリクエストメッセージをコンテンツサーバ25へ送信する。このため、変換サーバ22は、変換サーバ23とコンテンツサーバ25との間に確立されたコネクションを利用して、コンテンツサーバにリクエストを送信することができる。
続いて、委任制御部42は、変換サーバ23を介してコンテンツサーバ25から送信されたAckを受信する。その後、委任制御部42は、リクエストメッセージの全てのパケットの送信が終了した場合には、ACK解除通知を変換サーバ23へ送信する。
図9に戻って、委任受付部43は、変換サーバ24から委任要求メッセージを受信した場合には、受信された委任要求メッセージに格納された宛先コンテンツサーバIPアドレス、宛先コンテンツサーバポート番号とを取得する。また委任受付部43は、委任要求メッセージに格納されたクライアント側コネクション情報、キャッシュID、リクエストメッセージ長を取得する。
そして、委任受付部43は、取得されたキャッシュIDとクライアント側コネクション情報とをキャッシュ管理部44へ送信する。また、委任受付部43は、取得された宛先コンテンツサーバIPアドレスと宛先コンテンツサーバポート番号とをTCP管理部46へ送信する。
また、委任受付部43は、後述するTCP管理部46がコンテンツサーバとの間で確立したコネクションについてのコネクション情報をTCP管理部46から受信する。また、委任受付部43は、委任応答メッセージを生成する。そして、委任受付部43は、委任要求メッセージの送信元である変換サーバ24へ生成した委任応答メッセージを送信する。また、委任受付部43は、ACK転送解除通知を変換サーバ24から受信していない場合には、Ackを変換サーバ24へ送信する。
キャッシュ管理部44は、委任受付部43からキャッシュIDの通知を受ける。また、キャッシュ管理部44は、通知されたキャッシュIDに対応する変換済みコンテンツがキャッシュ管理テーブル部37に記憶されているか否かを判定する。
また、キャッシュ管理部44は、変換済みコンテンツが記憶されていると判定した場合には、変換済みコンテンツをクライアント16へ送信する。また、キャッシュ管理部44は、変換済みコンテンツが記憶されていないと判定した場合には、後述するコンテンツ変換処理部45によって形式を変換されたコンテンツをクライアント16に送信する。また、キャッシュ管理部44は、変換サーバ24とクライアント16との間に確立されたコネクションを示す情報を用いて、変換済みコンテンツをクライアント16へ送信する。
また、キャッシュ管理部44は、後述するコンテンツ変換処理部43がコンテンツの形式を変換した場合には、形式を変換されたコンテンツを変換済みコンテンツとして変換サーバ22のキャッシュ記憶部47に格納する。
具体的には、キャッシュ管理部44は、キャッシュIDを委任受付部43から受信する。そして、キャッシュ管理部44は、キャッシュ管理テーブル部37に記憶されたキャッシュ管理テーブルから、受信されたキャッシュIDを検索する。その後、キャッシュ管理部44は、検索されたキャッシュIDによって示されるキャッシュが、記憶されているか否かを判別する。
また、キャッシュ管理部44は、検索されたキャッシュIDによって示されるキャッシュが記憶されていると判別した場合には、検索されたキャッシュIDによって示されるキャッシュを取得する。そして、キャッシュ管理部44は、取得されたキャッシュを格納したレスポンスメッセージを作成する。
ここで、図19は、レスポンスメッセージの一例を説明するための図である。図19に示す例では、キャッシュ管理部44は、取得されたキャッシュであるHTML文章を格納したレスポンスメッセージを作成する。その後、キャッシュ管理部44は、生成したレスポンスメッセージのデータをTCP管理部39を介して、クライアント16へ送信する。
また、キャッシュ管理部44は、キャッシュIDによって示されるキャッシュが記憶されていないと判別した場合には、コンテンツのリクエストメッセージを生成し、生成されたリクエストメッセージをコンテンツサーバ26へ送信する。つまり、キャッシュ管理部44は、コンテンツサーバ26との間にサーバ側コネクションを確立させる。そして、キャッシュ管理部44は、確立されたサーバ側コネクションの情報を委任受付部43に送信する。
また、キャッシュ管理部44は、変換サーバ24からコンテンツサーバ26へ送信されたリクエストメッセージの応答として、コンテンツサーバ26に記憶されたコンテンツを取得する。そして、キャッシュ管理部44は、後述するコンテンツ変換処理部45によって、取得されたコンテンツの形式が変換された場合には、変換済みのコンテンツをコンテンツ変換処理部45から取得する。そして、キャッシュ管理部44は、取得された変換済みのコンテンツを変換サーバ22のキャッシュ記憶部47に格納する。
また、キャッシュ管理部44は、キャッシュIDと対応付けて格納されたキャッシュの有無を「1」に変換する。その後、キャッシュ管理部44は、変換された変換済みのコンテンツをクライアント16へ送信する。
コンテンツ変換処理部45は、キャッシュ管理部44によって変換済みコンテンツが変換サーバ22のキャッシュに記憶されていないと判定された場合には、コンテンツサーバ26に記憶されたコンテンツをクライアント16が利用可能な形式に変換する。具体的には、コンテンツ変換処理部45は、キャッシュ管理部44によって変換済みコンテンツが記憶されていないと判定された場合には、コンテンツサーバ26に記憶されたコンテンツを取得する。また、コンテンツ変換処理部45は、変換サーバ24から送信されたキャッシュIDを取得する。
そして、コンテンツ変換処理部45は、取得されたキャッシュIDをキーとしてコンテンツ変換テーブル部38を検索し、変換元のコンテンツの形式と変換後のコンテンツの形式とを判別する。その後、コンテンツ変換処理部45は、コンテンツサーバ26から取得されたコンテンツを判別された変換後のコンテンツの形式に変換する。そして、コンテンツ変換処理部45は、変換後のコンテンツをキャッシュ管理部44へ送信する。
TCP管理部46は、委任制御部42から受信したサーバ側コネクション情報に従って、リクエストメッセージをコンテンツサーバ25へ送信する。また、TCP管理部46は、委任受付部43が受信したクライアント側コネクション情報を利用して、コンテンツサーバ26との間にコネクションを確立する。また、TCP管理部46は、コンテンツサーバ26からコンテンツを受信した場合には、受信されたコンテンツをキャッシュ管理部44を介して、コンテンツ変換処理部45に転送する。
次に、図20を用いて、コンテンツ変換システムの処理の流れについて説明する。図20は、コンテンツ変換システムの処理の流れを説明するための図である。図20に示す例では、変換サーバ23は、クライアント15の端末種別を示す種別情報「CL_A」とコンテンツサーバ25に記憶されたコンテンツを示すコンテンツ情報「A1」との組に対応付けられた変換サーバであるものとする。
まず、クライアント15は、リクエストメッセージをレイヤ4スイッチ21へ送信する。レイヤ4スイッチ21は、リクエストメッセージを受信した場合には、ランダムに選択された変換サーバである変換サーバ22へリクエストメッセージを送信する。変換サーバ22は、リクエストメッセージを解析し、宛先コンテンツサーバを判別する。また、変換サーバ22は、種別情報「CL_A」とコンテンツ情報「A1」との組に対応付けられた変換サーバ23のIPアドレスを特定する。
そして、変換サーバ22は、特定された変換サーバ23に委任要求メッセージを送信する。変換サーバ23は、委任要求メッセージを受信した場合には、コンテンツサーバ26との間にコネクションを確立する。そして、変換サーバ23は、確立したコネクションのコネクション情報を含む委任応答メッセージを生成し、生成された委任応答メッセージを変換サーバ22へ送信する。
変換サーバ22は、変換サーバ23から委任応答メッセージを受信した場合には、受信された委任応答メッセージから変換サーバ23とコンテンツサーバ26との間に確立されたコネクションのコネクション情報を解析する。そして、変換サーバ22は、解析されたコネクション情報を用いて、クライアント15から送信されたリクエストメッセージをコンテンツサーバ25へ送信する。つまり、変換サーバ22は、変換サーバ23としてコンテンツサーバ25へリクエストメッセージを送信する。
また、変換サーバ22は、コネクション制御メッセージを用いて、レイヤ4スイッチ21のアドレス変換テーブルを変更する。つまり、変換サーバ22は、変換サーバ23から送信される情報をクライアント15へ送信するようにレイヤ4スイッチ21を設定する。
次に、コンテンツサーバ25は、コンテンツ情報「A1」が示すコンテンツを変換サーバ23へ送信する。変換サーバ23は、コンテンツ情報「A1」が示すコンテンツを受信した場合には、コンテンツ情報「A1」が示すコンテンツの形式をクライアント15が利用可能な形式に変換したコンテンツをキャッシュに記憶しているか否かを判別する。
そして、変換サーバ23は、変換済みのコンテンツをキャッシュに記憶していると判別した場合には、レイヤ4スイッチ21を介して、クライアント15にキャッシュに記憶されていた変換済みのコンテンツを送信する。また、変換サーバ23は、変換済みのコンテンツをキャッシュに記憶していないと判別した場合には、コンテンツサーバ25から受信されたコンテンツの形式をクライアント15が利用可能な形式に変換する。そして、変換サーバ23は、変換済みのコンテンツをレイヤ4スイッチ21を介して、クライアント15へ送信する。
このように、変換サーバ22〜24は、クライアントの端末種別と送信を要求されたコンテンツとに対応付けられた変換サーバに処理の委任を要求する。例えば、図21に示す例では、変換サーバ23には、端末種別「CL_A」とコンテンツサーバ25に記憶されたコンテンツとの組に対応付けられている。図21は、データの流れを説明するための図である。このような例では、変換サーバ22は、端末種別「CL_A」のクライアント15からコンテンツサーバ25に記憶されたコンテンツの送信を要求するリクエストを受信した場合には、処理を変換サーバ23に委任する。
つまり、変換サーバ22〜24は、端末種別「CL_A」の端末からコンテンツサーバ25に記憶されたコンテンツを要求するリクエストを受信した場合には、変換サーバ23に処理を必ず委任することとなる。このため、変換サーバ22〜24は、いずれかの変換サーバがキャッシュを有する場合には、キャッシュを有する変換サーバに処理を委任することとなる。
結果として、変換サーバ22〜24は、キャッシュヒットを保証しつつ、各変換サーバ22〜24のキャッシュの同期を不用とし、変換サーバの数に応じた処理能力を発揮することができる。
また、変換サーバ22は、リクエストメッセージを変換サーバ23に送信するのではなく、変換サーバ23がコンテンツを取得するために必要な情報のみを変換サーバ23に送信する。つまり、変換サーバ22〜24は、2台の変換サーバの間で少ないデータをやり取りするだけで、キャッシュヒットを保証する。
例えば、変換テーブル管理部30、変換処理部32、TCP管理部39、宛先決定部40、担当サーバ管理部41、委任制御部42、委任受付部43、キャッシュ管理部44、コンテンツ変換処理部45、TCP管理部46は、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA (Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、アドレス変換テーブル記憶部31、振分先サーバ情報記憶部33、宛先決定テーブル部34、担当サーバ管理テーブル部35、レイヤ4スイッチ制御用アドレス情報記憶部36、キャッシュ管理テーブル部37、キャッシュ記憶部47は、記憶装置である。また、コンテンツ変換テーブル部38は、記憶装置である。ここで、記憶装置の例として、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ (flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどを適用する。
[レイヤ4スイッチの処理の流れ]
次に、図22及び図23を用いて、レイヤ4スイッチ21の処理の流れについて説明する。図22は、レイヤ4スイッチの処理の流れを説明するためのフローチャートである。図23は、制御メッセージを受信したレイヤ4スイッチの処理の流れを説明するためのフローチャートである。
レイヤ4スイッチ21は、パケットを受信すると(ステップS101)、受信されたパケットのTCP/IPヘッダを変更するためのエントリが変換テーブルに記憶されているか否かを判定する(ステップS102)。レイヤ4スイッチは、エントリが変換テーブルに記憶されていると判別された場合には(ステップS102肯定)、変換テーブルに記憶された変換テーブルのエントリに従って、受信されたレイヤのTCP/IPヘッダの書換を行う(ステップS104)。
一方、レイヤ4スイッチ21は、エントリが変換テーブルに記憶されていないと判別された場合には(ステップS102否定)、新たなエントリを生成する(ステップS103)。次に、レイヤ4スイッチ21は、変換テーブルに記憶された変換テーブルのエントリに従って、受信されたレイヤのTCP/IPヘッダの書換を行う(ステップS104)。その後、レイヤ4スイッチ21は、TCP/IPヘッダの書換を行ったパケットを送信する(ステップS105)。
次に、図23を用いて、制御メッセージを受信したレイヤ4スイッチ21の処理の流れについて説明する。レイヤ4スイッチ21は、変換サーバ23より制御メッセージを受信すると(ステップS201)、変換テーブルのエントリを制御メッセージに従って変更する(ステップS202)。次に、レイヤ4スイッチ21は、エントリ制御メッセージの送信元である変換サーバにAckを送信する(ステップS203)。その後、レイヤ4スイッチ21は、処理を終了する。
次に、複数の図を用いて、コンテンツ変換システムが有する各装置が実行する処理の流れについて説明する。まず、図24を用いて、クライアント15からリクエストメッセージを取得した変換サーバ22の処理について説明する。図24は、リクエストメッセージを受信した変換サーバの処理の流れを説明するためのフローチャートである。
まず、変換サーバ22は、クライアント15からリクエストメッセージを受信すると(ステップS301)、受信されたリクエストメッセージから、要求対象となるコンテンツを記憶する宛先コンテンツサーバ25を決定する(ステップS302)。また、変換サーバ22は、担当サーバとして、クライアント15の端末種別「CL_A」とクライアント15が要求したコンテンツとに対応付けられた担当サーバである変換サーバ23を特定する(ステップS303)。
次に、変換サーバ22は、特定された担当サーバが自装置であるか否かを判別する(ステップS304)。そして、変換サーバ22は、担当サーバが自装置ではないと判別した場合には(ステップS304否定)、担当サーバへ委任要求メッセージを送信する(ステップS305)。つまり、変換サーバ22は、変換サーバ23へ委任要求メッセージを送信する。次に、変換サーバ22は、変換サーバ23から委任応答メッセージを受信する(ステップS306)。また、変換サーバ22は、コネクション制御メッセージをレイヤ4スイッチ21へ送信し、レイヤ4スイッチ21に記憶されたアドレス変換テーブルを制御する(ステップS307)。
次に、変換サーバ22は、ステップS301にて受信されたリクエストメッセージを分割し、分割されたリクエストメッセージを宛先コンテンツサーバ25へ送信する(ステップS308)。次に、変換サーバ22は、分割されたリクエストメッセージを送信するたびに、返答として宛先コンテンツサーバ25より送信されるAckを、変換サーバ23を介して受信する(ステップS309)。また、変換サーバ22は、Ackを受信した場合には、分割されたリクエストメッセージをすべて送信したか否かを判別する(ステップS310)。
そして、変換サーバ22は、分割されたリクエストメッセージを全て送信していないと判別した場合には(ステップS310否定)、まだ送信されていないリクエストメッセージをコンテンツサーバ25へ送信する(ステップS308)。一方、変換サーバ22は、分割されたリクエストメッセージを全て送信したと判別した場合には(ステップS310肯定)、Ack転送解除通知を変換サーバ23へ送信する(ステップS311)。その後、変換サーバ22は、処理を終了する。
また、変換サーバ22は、ステップS304にて、担当サーバが自装置であると判別した場合には(ステップS304肯定)、自装置にキャッシュが記憶されているか否かを判別する(ステップS312)。つまり、変換サーバ22は、クライアント15の端末種別に応じて、リクエスト対象のコンテンツを変換した変換済みコンテンツのキャッシュが自装置に記憶されているか否かを判別する。
変換サーバ22は、自装置にキャッシュが記憶されていないと判別した場合には(ステップS312否定)、コンテンツサーバ25へリクエストを送信する(ステップS313)。次に、変換サーバ22は、コンテンツサーバ25からレスポンスを受信する(ステップS314)。つまり、変換サーバ22は、リクエスト対象のコンテンツを受信する。次に、変換サーバ22は、リクエストメッセージの送信元であるクライアント15の端末種別に応じて、受信されたコンテンツを変換する(ステップS315)。
次に、変換サーバ22は、変換済みコンテンツをキャッシュに記憶する(ステップS316)。また、変換サーバ22は、コンテンツサーバ25から受信したレスポンスメッセージのコンテンツを変換済みコンテンツに置き換える(ステップS317)。そして、変換サーバ22は、レスポンスメッセージをリクエストメッセージの送信元であるクライアント15へ送信する(ステップS319)。その後、変換サーバ22は、処理を終了する。
一方、変換サーバ22は、自装置にキャッシュが記憶されていると判別した場合には(ステップS312肯定)、キャッシュを用いて、レスポンスメッセージを作成する(ステップS318)。その後、変換サーバ22は、作成したレスポンスメッセージをリクエストメッセージの送信元であるクライアント15へ送信する(ステップS319)。その後、変換サーバ22は、処理を終了する。
次に、図25を用いて、委任要求メッセージを変換サーバ24から受信した変換サーバ22が実行する処理の流れについて説明する。図25は、委任要求メッセージを受信した変換サーバの処理を説明するためのフローチャートである。図25に示す例では、変換サーバ22は、変換サーバ24から送信された委任要求メッセージを受信するものとする。
まず、変換サーバ22は、委任元である変換サーバ24から委任要求メッセージを受信すると(ステップS401)、委任要求メッセージに格納されたキャッシュIDを用いて、自装置にキャッシュが記憶されているか否かを確認する(ステップS402)。次に、変換サーバ22は、宛先コンテンツサーバとのコネクションを確立する(ステップS403)。また、変換サーバ22は、委任応答メッセージを作成し、作成した委任応答メッセージを委任元である変換サーバ24へ送信する(ステップS404)。
次に、変換サーバ22は、ステップS403にて確立したコネクションからパケットを受信する(ステップS405)。つまり、変換サーバ22は、宛先コンテンツサーバからレスポンスメッセージのパケットを受信する。次に、変換サーバ22は、宛先コンテンツサーバからパケットを受信した場合には、Ack転送解除通知を変換サーバ24から受信済みであるか否かを判別する(ステップS406)。
変換サーバ22は、Ack転送解除通知を変換サーバ24から受信していないと判別した場合には(ステップS406否定)、宛先コンテンツサーバから受信されたAckを委任元である変換サーバ24へ送信する(ステップS407)。また、変換サーバ22は、Ack転送解除通知を変換サーバから受信したと判別した場合には(ステップS406肯定)、Ackの送信を行わずに、次の処理を実行する。
次に、変換サーバ22は、レスポンスメッセージの受信が完了したか否かを判別する(ステップS408)。変換サーバ22は、レスポンスメッセージの受信が完了していないと判別した場合には(ステップS408否定)、レスポンスメッセージの受信を継続する(ステップS405)。また、変換サーバ22は、レスポンスメッセージの受信が完了したと判別した場合には(ステップS408肯定)、ステップS402にて確認されたキャッシュが自装置に記憶されているか否かを判別する(ステップS409)。
変換サーバ22は、自装置にキャッシュが記憶されていないと判別した場合には(ステップS409否定)、レスポンスメッセージに格納されたコンテンツをクライアントの種別に応じて変換する(ステップS410)。次に、変換サーバ22は、変換結果をキャッシュに記憶する(ステップS411)。また、変換サーバ22は、レスポンスメッセージのコンテンツを変換結果に置き換える(ステップS412)。そして、変換サーバ22は、委任要求メッセージにて通知されたクライアント側コネクション情報に従って、レスポンスメッセージをクライアントへ送信する(ステップS414)。
一方、変換サーバ22は、自装置にキャッシュが記憶されていると判別した場合には(ステップS409肯定)、宛先コンテンツサーバから受信したレスポンスメッセージのコンテンツをキャッシュに置き換える(ステップS413)。その後、変換サーバ22は、委任要求メッセージにて通知されたクライアント側コネクション情報に従って、レスポンスメッセージをクライアントへ送信する(ステップS414)。
次に、図26を用いて、各装置間の処理の流れについて説明する。図26は、各装置の処理の流れを説明するためのシーケンス図(1)である。まず、クライアント15と変換サーバ22とは、レイヤ4スイッチ21を介して、3Way Handshakeを実行し、コネクションを確立する(ステップS501)。次に、クライアント15は、確立したコネクションを用いて、リクエストメッセージを変換サーバ22へ送信する(ステップS502)。変換サーバ22は、リクエスト対象のコンテンツを記憶する宛先コンテンツサーバのIPアドレス、ポート番号、及びクライアント側コネクション情報を変換サーバ23へ送信する(ステップS503)。
次に、変換サーバ23は、通知された宛先コンテンツサーバのIPアドレス、及びポート番号を用いて、コンテンツサーバ26との間にコネクションを確立する(ステップS504)。そして、変換サーバ23は、コンテンツサーバ26との間に確立したコネクション情報を変換サーバ22へ通知する(ステップS505)。
変換サーバ22は、レイヤ4スイッチに対して、コネクション制御メッセージを送信し、TCP/IPヘッダの変換ルールを設定する(ステップS506)。また、変換サーバ22は、変換サーバ23とコンテンツサーバ26との間に確立されたコネクションを利用して、リクエストメッセージをコンテンツサーバ26へ送信する(ステップS507)。コンテンツサーバ26は、リクエストメッセージを受信した場合には(ステップS508)、レスポンスを変換サーバ23へ送信する(ステップS509)。
変換サーバ23は、レスポンスの受信後、自装置にキャッシュが記憶されているか否かを判別し、キャッシュがある場合には、レスポンスに格納されたコンテンツをキャッシュに置き換える。また、変換サーバ23は、自装置にキャッシュが記憶されていないと判別した場合には、レスポンスに格納されたコンテンツを変換する。その後、変換サーバ23は、レスポンスをクライアント15へ送信する。つまり、変換サーバ23は、クライアント15の端末種別に応じて変換されたコンテンツが格納されたレスポンスをクライアント15へ送信する。
ここで、委任元の変換サーバ22と委任先の変換サーバ23とは、コネクション情報にシーケンス番号と確認応答番号とを含め、相互に通知する。このため、図27に示すように、各変換サーバは、シーケンス番号及び確認応答番号に矛盾を生じさせることなく、コンテンツの変換処理を行う事ができる。結果として、変換サーバ22及び変換サーバ23は、クライアント15とコンテンツサーバ26に対して、新たな手段を付加せずとも、キャッシュヒットを保証しつつ変換サーバの台数に応じた処理能力を提供することができる。図27は、各装置の処理の流れを説明するためのシーケンス図(2)である。
また、図28は、従来の処理の流れを説明するためのシーケンス図である。図28に示す例では、変換サーバ#1は、クライアントからリクエストメッセージを受信した場合には、コンテンツサーバに対してコンテンツのリクエストを行う。そして、変換サーバ#1は、取得されたコンテンツを変換し、変換済みコンテンツをクライアントへ送信する。
このような処理の後、同一のリクエストメッセージが変換サーバ#2へ割当てられた場合には、変換サーバ#1にキャッシュがあるにもかかわらず、変換サーバ#2は、コンテンツのリクエストを行い、変換処理を実行する。つまり、変換サーバ#1及び変換サーバ#2は、キャッシュを適切に用いることができなかった。
一方、本実施例の各変換サーバ22〜24は、コンテンツと端末の種別との組に予め対応付けられている。そして、各変換サーバ22〜24は、リクエストメッセージを受信した場合には、リクエストメッセージの送信元であるクライアントの端末種別と送信を要求されたコンテンツとの組に対応付けられた変換サーバへ処理を委任する。このため、各変換サーバは、各変換サーバ22〜24のキャッシュを同期させずとも、キャッシュヒットを保証することができる。結果として、各変換サーバ22〜24は、変換サーバの台数に応じた処理能力を提供することができる。
[実施例2の効果]
上述したように、変換サーバ22は、コンテンツを示す情報と端末の種別を示す情報との組と変換サーバを一意に示すサーバ情報とを対応付けて記憶する。そして、変換サーバ22は、リクエストメッセージを受信した場合には、受信されたリクエストメッセージを解析し、リクエストメッセージを送信したクライアントの種別を示す種別情報と送信を要求されたコンテンツを示すコンテンツ情報を判別する。そして、変換サーバ22は、判別された種別情報とコンテンツ情報との組に対応付けられたサーバ情報を特定する。つまり、変換サーバ22は、変換処理を実行する変換サーバを特定する。そして、変換サーバ22は、特定されたサーバ情報が示す変換サーバに対して、委任要求メッセージを送信する。
つまり、変換サーバ22は、変換処理を振り分ける際に、変換処理の実行結果となるキャッシュがいずれかの変換サーバに記憶されている場合には、実行結果となるキャッシュを有する変換サーバに対して、変換処理を振り分ける。このため、変換サーバ22は、同一のリクエストメッセージを受信した場合には、同一の変換サーバに変換処理を実行させることができる。この結果、変換サーバ22は、各変換サーバ22〜24に記憶されたキャッシュを適切に利用することができる。
また、変換サーバ22は、他の変換サーバ23〜24とキャッシュを同期させずとも、各変換サーバ22〜24のいずれかにキャッシュが存在する場合には、必ずキャッシュヒットさせることができる。この結果、変換サーバ22は、処理負荷を増大させることなく、各変換サーバ22〜24に記憶されたキャッシュを適切に利用することができる。
また、変換サーバ22は、クライアント15からコンテンツの送信を要求するリクエストメッセージを受信した場合には、受信されたリクエストメッセージに含まれるUser−AgentとRequest−URIとを判別する。このため、変換サーバ22は、クライアント15に新たな処理を実行させずとも、クライアント15の端末種別と、クライアント15が送信を要求したコンテンツとを判別することができる。
また、変換サーバ22は、コンテンツサーバ26との間にコネクションを確立させ、確立させたコネクションの情報であるサーバ側コネクション情報を変換サーバ24へ送信する。また、変換サーバ22は、サーバ側コネクション情報を変換サーバ23から受信した場合には、受信されたサーバ側コネクション情報を用いて、リクエストメッセージをコンテンツサーバ25へ送信する。
このため変換サーバ22は、変換サーバ23とコンテンツサーバ25との間のコネクションを保持したままで、コンテンツサーバ25にリクエストメッセージを送信することができる。また、変換サーバ22は、コンテンツサーバ26との間のコネクションを保持したままで、変換サーバ24からリクエストメッセージをコンテンツサーバ26に送信させることが出来る。このため、変換サーバ22は、各クライアント15〜17、及び、各コンテンツサーバ25〜27に新たな処理を実行させる必要がないという効果を奏する。
また、変換サーバ22は、クライアント15との間に確立したコネクションを示すクライアント側コネクション情報を変換サーバ23に通知する。また、変換サーバ22は、クライアント16と変換サーバ24との間に確立したコネクションを示すクライアント側コネクション情報を変換サーバ24から通知される。
このため、変換サーバ22は、変換サーバ23に対して、変換サーバ22とクライアント15との間に確立したコネクションを用いて、変換済みコンテンツをクライアント15に送信させることができる。また、変換サーバ22は、変換サーバ24とクライアント16との間に確立したコネクションを用いて、変換済みコンテンツをクライアント16へ送信することができる。結果として、変換サーバ22は、各クライアント15〜17に新たな処理を実行させる必要がないという効果を奏する。
上述した実施例2では、変換サーバ22は、変換後のコンテンツがキャッシュに記憶されている場合にも、コンテンツサーバからコンテンツを取得していた。しかし、実施例はこれに限定されるものではなく、例えば、変換後のコンテンツがキャッシュに記憶されている場合には、コンテンツの取得をスキップしてもよい。そこで、以下の実施例では、変換後のコンテンツがキャッシュに記憶されている場合には、コンテンツの取得をスキップするコンテンツ変換システムについて説明する。なお、以下の説明では、実施例2に係る変換サーバ22〜24が有する各部と同様の機能を有する部分については、同一の符号を付すものとし、説明を省略する。
まず、図29を用いて、実施例3に係る変換サーバ50について説明する。図46は、実施例3に係る変換サーバを説明するための図である。図29に示す例では、変換サーバ50は、宛先決定テーブル部34、担当サーバ管理テーブル部35、レイヤ4スイッチ制御用アドレス情報記憶部36、キャッシュ管理テーブル部37、コンテンツ変換テーブル部38、キャッシュ記憶部47を有する。また、変換サーバ22は、TCP管理部39、宛先決定部40、担当サーバ管理部41、委任制御部53、委任受付部54、キャッシュ管理部55、コンテンツ変換処理部45、TCP管理部46を有する。
また、以下の説明では、変換サーバ51及び52は、変換サーバ50と同様の構成を有するものとし、説明を省略する。また、宛先決定テーブル部34、担当サーバ管理テーブル部35、レイヤ4スイッチ制御用アドレス情報記憶部36、キャッシュ管理テーブル部37、コンテンツ変換テーブル部38は、実施例2に係る各部と同様の情報を記憶するものとし、説明を省略する。また、TCP管理部39、宛先決定部40、担当サーバ管理部41、コンテンツ変換処理部45、TCP管理部46、キャッシュ記憶部47は、実施例2に係る各部と同様の機能を有するものとし、説明を省略する。
委任制御部53は、実施例2に係る委任制御部42と同様の機能を有する。また、委任制御部53は、委任先変換サーバにキャッシュが存在する場合には、クライアントから受信したリクエストメッセージを委任先変換サーバへ送信する。具体的には、委任制御部53は、委任先変換サーバ51から委任応答メッセージを受信する。
ここで、図30に例示するように、委任先の変換サーバ51は、キャッシュが自装置に記憶されていると判別した場合には、変換サーバ50のIPアドレスとポート番号とが格納されたIPヘッダ及びTCPヘッダを有する委任応答メッセージを生成する。また、委任先の変換サーバ51は、キャッシュIDとキャッシュの有無を示す情報と「Padding」とを格納する。ここで、図30中の「Padding」とは、委任応答メッセージの大きさを一定に保つためのスタッフィングバイトである。図30は、キャッシュがある場合の委任応答メッセージの一例を説明するための図である。
また、図31に例示するように、委任先の変換サーバ51は、キャッシュが記憶されていないと判別した場合には、実施例2に係るサーバ側コネクション情報と同じ情報を委任応答メッセージに格納する。図31は、キャッシュが存在しない場合の委任応答メッセージの一例を説明するための図である。
図29に戻って、委任制御部53は、受信された委任応答メッセージを解析し、委任先の変換サーバにキャッシュが記憶されているか否かを判別する。そして、委任制御部53は、委任先の変換サーバにキャッシュが記憶されていると判別した場合には、クライアントから送信されたリクエストメッセージを委任先のサーバへ転送する。一方、委任制御部53は、委任先のサーバにキャッシュが記憶されていないと判別した場合には、実施例2の委任制御部42と同様に、受信された委任応答メッセージからサーバ側コネクション情報を取得する。
委任受付部54は、実施例2に係る委任受付部43と同様の機能を有する。また、委任受付部54は、検索されたキャッシュIDが示すキャッシュが記憶されていると判別された場合には、検索されたキャッシュIDとキャッシュの有無とを格納した委任応答メッセージを生成する。そして、委任受付部54は、生成された委任応答メッセージを委任元の変換サーバへ送信する。
また、委任受付部54は、クライアントから送信されたリクエストメッセージを委任元のサーバから受信する。そして、委任受付部54は、受信されたリクエストメッセージをキャッシュ管理部55へ送信する。
一方、委任受付部54は、キャッシュ管理部55によって、検索されたキャッシュIDによって示されるキャッシュが記憶されていないと判別された場合には、実施例2に係る委任受付部43と同様に、コンテンツのリクエストメッセージを生成し、生成されたリクエストメッセージをコンテンツサーバ26へ送信する。
キャッシュ管理部55は、実施例2に係るキャッシュ管理部44と同様の機能を有する。また、キャッシュ管理部55は、クライアントから送信されたリクエストメッセージを委任受付部54から受信した場合には、受信されたリクエストメッセージと、キャッシュとを用いて、レスポンスメッセージを生成する。そして、キャッシュ管理部55は、TCP管理部39を介して、生成されたレスポンスメッセージをクライアントへ送信する。
次に、図32を用いて、クライアントからリクエストメッセージを受信した変換サーバ50が実行する処理の流れについて説明する。図32は、リクエストメッセージを受信した変換サーバが実行する処理の流れを説明するためのフローチャートである。
なお、図32に記載した処理のうち、ステップS701〜S706、S708〜S712、S715〜S722については、図24に例示したステップS301〜S306、S307〜S311、S312〜319と同様の処理であるため、説明を省略する。また、以下の例では、変換サーバ50は、クライアント15から送信されたリクエストメッセージを受信したものとし、変換サーバ51に対して、委任要求メッセージを送信したものとする。
変換サーバ50は、変換サーバ51から委任応答メッセージを受信した場合には、受信された委任応答メッセージを用いて、委任先の変換サーバ51にキャッシュが記憶されているか否かを判別する(ステップS707)。そして、変換サーバ50は、委任先の変換サーバ51にキャッシュが記憶されていると判別した場合には(ステップS707肯定)、レイヤ4スイッチの制御を行う(ステップS713)。また、変換サーバ50は、レイヤ4スイッチの制御を行った場合には、クライアント15から送信されたリクエストメッセージを委任先の変換サーバ51へ送信する(ステップS714)。
次に、図33を用いて、委任要求メッセージを受信した変換サーバ50が実行する処理の流れを説明する。図33は、委任要求メッセージを受信した変換サーバの処理を説明するためのフローチャートである。なお、以下の説明では、変換サーバ50は、変換サーバ52から委任要求メッセージを受信するものとする。
また、図33に示す例では、変換サーバ50は、委任元の変換サーバ52から委任要求メッセージを受信したことをトリガとして、処理を開始する。また、委任元の変換サーバ52は、クライアント17から送信されたリクエストメッセージを受信したものとする。
なお、図33に記載した処理のうち、ステップS801〜S802、S804〜S812、S816については、図25に記載したステップS401〜402、S403〜412、S414と同様の処理であるため、処理を省略する。
変換サーバ50は、ステップS802にて確認されたキャッシュが自装置に記憶されていると判別した場合には(ステップS803肯定)、委任応答メッセージを変換サーバ52へ送信する(ステップS813)。次に、変換サーバ50は、クライアント17から送信されたリクエストメッセージを委任元の変換サーバ52から受信する(ステップS814)。
そして、変換サーバ50は、受信されたリクエストメッセージとキャッシュとからレスポンスメッセージを生成する(ステップS815)。その後、変換サーバ50は、生成されたレスポンスメッセージをクライアント17へ送信する(ステップS816)。
次に、図34を用いて、各装置間の処理の流れについて説明する。図34は、実施例3に係るコンテンツ変換システムが実行する処理の一例を説明するための図である。なお、図34に記載した処理のうち、ステップS901〜S903については、図26に記載のステップS501〜S503と同様の処理であるため、説明を省略する。
変換サーバ51は、委任要求メッセージに格納されたキャッシュIDが示すキャッシュが自装置に記憶されていると判別した場合には、キャッシュが記憶されていることを通知する委任応答メッセージを変換サーバ50へ送信する(ステップS904)。変換サーバ50は、キャッシュが記憶されていることを通知する委任応答メッセージを変換サーバ51から取得した場合には、レイヤ4スイッチに対して、コネクション制御メッセージを送信し、TCP/IPヘッダの変換ルールを設定する(ステップS905)。
また、変換サーバ50は、クライアント15から送信されたリクエストメッセージを変換サーバ51へ転送する(ステップS906)。そして、変換サーバ51は、ステップS906にて変換サーバ51より取得したリクエストメッセージと、自装置に記憶されていたキャッシュとを用いて、レスポンスメッセージを生成する。その後、変換サーバ51は、生成されたレスポンスメッセージをクライアント15へ送信する(ステップS907)。
[実施例3の効果]
上述したように、実施例3に係る変換サーバ50は、委任先の変換サーバ51にキャッシュが存在する場合には、クライアント15から送信されたリクエストメッセージを委任先の変換サーバ51へ転送する。また、委任先の変換サーバ51は、自装置にキャッシュが存在する場合には、コンテンツサーバ25とのコネクションを確立せず、キャッシュをクライアント15へ送信する。
このため、実施例3に係る変換サーバ50では、変換サーバ50〜52とコンテンツサーバ25〜27との間で情報を送受信するための処理負荷をさらに削減することができる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例4として本発明に含まれる他の実施例を説明する。
(1)変換サーバの数
上述した実施例2、及び3では、3つの変換サーバを有する変換サーバについて説明した。しかし、実施例はこれに限定されるものではなく、複数の変換サーバであればよい。また、クライアントの数やコンテンツサーバの数も任意である。
(2)変換サーバの構成
上述した実施例2、及び3では、複数の記憶部34〜38、47を有する変換サーバを説明した。しかし、実施例はこれに限定されるものではなく、例えば、変換サーバは、各記憶部34〜38、47の機能を有する一つの記憶装置を有していてもよい。また、実施例2及び3では、変換サーバは、クライアント側とコンテンツ側とで異なるTCP管理部39、46を有していたが、実施例はこれに限定されるものではなく、クライアント側とコンテンツ側とで共用の一つのTCP管理部であってもよい。
(3)プログラム
ところで、実施例1に係る変換ネットワーク、および実施例2〜3に係る変換サーバでは、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを複数のコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図35を用いて、実施例1に示した変換装置と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図35は、変換プログラムを実行するコンピュータの一例を説明するための図である。
図35に例示されたコンピュータ200は、RAM(Random Access Memory)120、ROM(Read Only Memory)130、HDD(Hard Disk Drive)150がバス170で接続される。また、図23に例示されたコンピュータ200は、CPU(Central Processing Unit)140がバス170で接続される。さらにバス170には、他のコンピュータと情報の送受信をおこなうためのI/O(Input Output)160が接続される。
HDD150には、サーバ情報テーブル151が記憶される。ROM130には、判別プログラム131、取得プログラム132、通知プログラム133、があらかじめ保持される。また、ROM130には、判定プログラム134、変換プログラム135、送信プログラム136、キャッシュ実行プログラム137があらかじめ保持される。CPU140が各プログラム131〜133をROM130から読み出して実行することによって、図35に示す例では、各プログラム131〜133は、判別プロセス141、取得プロセス142、通知プロセス143として機能するようになる。また、CPUが各プログラム134〜137をROMから読み出して実行することによって、判定プロセス144、変換プロセス145、送信プロセス146、キャッシュ実行プロセス147として機能するようになる。なお、各プロセス141〜147は、図1に示した各部2〜6と同様の機能を発揮する。また、各プロセス141〜147は、実施例2または実施例3に係る各部と同等の機能を発揮するようにすることも可能である。
なお、本実施例で説明した変換プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto Optical Disc)、DVD(Digital Versatile Disc)などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
1 変換サーバ
2 サーバ情報記憶部
3 判別部
4 取得部
5 通知部
6 判定部
7 送信部
10〜11 クライアント端末
12〜13 変換サーバ

Claims (6)

  1. クライアント端末から、該クライアント端末の種別を示すクライアント情報と、送信を要求するコンテンツを示すコンテンツ情報とを含むコンテンツ送信要求を受信し、
    所定のクライアント種別が利用可能な形式に所定のコンテンツを変換し、変換済コンテンツをキャッシュする変換サーバを示すサーバ情報、クライアント情報、および、コンテンツ情報を対応付けて記憶した記憶部を参照し、受信した前記コンテンツ送信要求に対応するサーバ情報を取得し、
    取得た前記サーバ情報が示す変換サーバに対して、記クライアント情報と前記コンテンツ情報とを通知する
    処理をコンピュータに実行させることを特徴とするコンテンツ変換プログラム。
  2. 前記通知する処理は、前記クライアント端末との間に確立されたコネクションを示すコネクション情報を更に通知することを特徴とする請求項1に記載のコンテンツ変換プログラム。
  3. のコンピュータから、クライアント端末の種別を示すクライアント情報とンテンツを示すコンテンツ情報とを通知された場合には、当該通知されたコンテンツ情報が示すコンテンツの形式を当該通知されたクライアント情報が示す種別のクライアント端末が利用可能な形式に変換して自装置のキャッシュに変換済みコンテンツとして記憶ているか否かを判定し、
    前記変換済みコンテンツが自装置のキャッシュに記憶されていると判定された場合には、当該自装置のキャッシュに記憶されている変換済みコンテンツを前記クライアント端末へ送信し、
    前記変換済みコンテンツが自装置のキャッシュに記憶されていないと判定された場合には、コンテンツサーバとの間にコネクションを確立し、該確立したコネクションを示すコネクション情報を他の変換サーバに通知する
    処理をコンピュータに実行させ、
    前記他の変換サーバとして動作するコンピュータに、
    前記通知したコネクション情報を用いて、前記コンテンツ情報が示すコンテンツを前記コンテンツサーバに対して要求した場合には、当該他の変換サーバが要求したコンテンツを前記コンテンツサーバとの間に確立したコネクションを用いて取得させる処理を実行させる
    理を実行させることを特徴とするコンテンツ変換プログラム。
  4. 前記他の変換サーバとして動作するコンピュータに、
    記変換済みコンテンツが自装置のキャッシュに記憶されていないと判定された場合には、前記他の変換サーバから通知されたコンテンツ情報が示すコンテンツを記憶するコンテンツサーバから当該コンテンツ情報が示すコンテンツを取得し、
    取得された前記コンテンツを前記他の変換サーバから通知されたクライアント情報が示す種別のクライアント端末が利用可能な形式に変換し、
    当該形式を変換された変換済みコンテンツを前記クライアント端末へ送信する処理とともに、当該変換済みコンテンツを自装置のキャッシュに記憶する、
    処理をさらに実行させることを特徴とする請求項3に記載のコンテンツ変換プログラム。
  5. 他のコンピュータから、クライアント端末の種別を示すクライアント情報とコンテンツを示すコンテンツ情報とを通知された場合には、当該通知されたコンテンツ情報が示すコンテンツの形式を当該通知されたクライアント情報が示す種別のクライアント端末が利用可能な形式に変換して自装置のキャッシュに変換済みコンテンツとして記憶しているか否かを判定する判定部と
    前記変換済みコンテンツが自装置のキャッシュに記憶されていると判定された場合には、当該自装置のキャッシュに記憶されている変換済みコンテンツを前記クライアント端末へ送信する送信部と、
    前記変換済みコンテンツが自装置のキャッシュに記憶されていないと判定された場合には、前記コンテンツサーバとの間にコネクションを確立し、該確立したコネクションを示すコネクション情報を第二の変換サーバに通知する通知部と
    を有する第一の変換サーバと、
    前記通知されたコネクション情報を用いて、前記コンテンツ情報が示すコンテンツを前記コンテンツサーバに対して要求した場合には、当該他の変換サーバが要求したコンテンツを前記コンテンツサーバとの間に確立したコネクションを用いて取得する取得部
    を有する前記第二の変換サーバと、
    を有することを特徴とするコンテンツ変換システム。
  6. クライアント端末の種別を示すクライアント情報と、送信を要求するコンテンツを示すコンテンツ情報と、所定のクライアント種別が利用可能な形式に所定のコンテンツを変換し、変換済みコンテンツをキャッシュする変換サーバを示すサーバ情報とを対応付けて記憶する記憶部と、
    ライアント端末から、該クライアント端末の種別を示すクライアント情報と、送信を要求するコンテンツを示すコンテンツ情報とを含むコンテンツ信要求を受信した場合前記記憶部を参照し、受信したコンテンツ送信要求に対応するサーバ情報を取得する取得部と、
    前記取得部によって取得された前記サーバ情報が示す変換サーバに対して、記クライアント情報と前記コンテンツ情報とを通知する通知部と、
    を有することを特徴とするコンテンツ変換サーバ。
JP2010154972A 2010-07-07 2010-07-07 コンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバ Expired - Fee Related JP5668342B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010154972A JP5668342B2 (ja) 2010-07-07 2010-07-07 コンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバ
US13/095,675 US8898336B2 (en) 2010-07-07 2011-04-27 Content conversion system and content conversion server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010154972A JP5668342B2 (ja) 2010-07-07 2010-07-07 コンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバ

Publications (2)

Publication Number Publication Date
JP2012018525A JP2012018525A (ja) 2012-01-26
JP5668342B2 true JP5668342B2 (ja) 2015-02-12

Family

ID=45439392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010154972A Expired - Fee Related JP5668342B2 (ja) 2010-07-07 2010-07-07 コンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバ

Country Status (2)

Country Link
US (1) US8898336B2 (ja)
JP (1) JP5668342B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319362B1 (en) * 2012-01-25 2016-04-19 Solace Systems, Inc. Messaging system with distributed filtering modules which register interests, remove any messages that do not match the registered interest, and forward any matched messages for delivery
JP6102108B2 (ja) * 2012-07-24 2017-03-29 富士通株式会社 情報処理装置、データ提供方法、及びデータ提供プログラム
KR102047495B1 (ko) * 2013-02-22 2019-11-21 삼성전자주식회사 클라이언트에서 캐시를 이용하여 서버의 멀티 미디어 컨텐트를 스트리밍 재생하는 방법 및 이를 위한 장치
JP6190376B2 (ja) * 2013-03-26 2017-08-30 パナソニック株式会社 サーバ、ルータ、受信端末および処理方法
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9825810B2 (en) 2014-09-30 2017-11-21 Nicira, Inc. Method and apparatus for distributing load among a plurality of service nodes
US10225137B2 (en) 2014-09-30 2019-03-05 Nicira, Inc. Service node selection by an inline service switch
JP2016178229A (ja) 2015-03-20 2016-10-06 株式会社東芝 再構成可能な回路
US10594743B2 (en) * 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
WO2017105152A1 (ko) * 2015-12-17 2017-06-22 엘지전자 주식회사 무선 통신 시스템에서 nan 단말이 데이터 교환을 수행하는 제공하는 방법 및 장치
US10797966B2 (en) 2017-10-29 2020-10-06 Nicira, Inc. Service operation chaining
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US11467861B2 (en) 2019-02-22 2022-10-11 Vmware, Inc. Configuring distributed forwarding for performing service chain operations
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11438257B2 (en) 2020-04-06 2022-09-06 Vmware, Inc. Generating forward and reverse direction connection-tracking records for service paths at a network edge
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7012A (en) * 1850-01-15 Improvement in mowing-machines
JP2001117809A (ja) * 1999-10-14 2001-04-27 Fujitsu Ltd メディア変換方法及び記憶媒体
JP2001222491A (ja) * 2000-02-09 2001-08-17 Nec Corp 情報提供システム、情報提供方法およびクライアント
US7574486B1 (en) * 2000-11-06 2009-08-11 Telecommunication Systems, Inc. Web page content translator
JP2002176451A (ja) * 2000-12-07 2002-06-21 Nippon Telegr & Teleph Corp <Ntt> 通信方法、通信装置、クライアント装置、キャッシュサーバ装置及び記録媒体
JP4907788B2 (ja) 2001-07-12 2012-04-04 ルネサスエレクトロニクス株式会社 故障伝搬経路推定システム
JP4221646B2 (ja) * 2002-06-26 2009-02-12 日本電気株式会社 共有キャッシュサーバ
JP2007066161A (ja) * 2005-09-01 2007-03-15 Hitachi Ltd キャッシュシステム
US20070124769A1 (en) * 2005-11-30 2007-05-31 Qwest Communications International Inc. Personal broadcast channels

Also Published As

Publication number Publication date
US20120011281A1 (en) 2012-01-12
US8898336B2 (en) 2014-11-25
JP2012018525A (ja) 2012-01-26

Similar Documents

Publication Publication Date Title
JP5668342B2 (ja) コンテンツ変換プログラム、コンテンツ変換システム及びコンテンツ変換サーバ
EP2294515B1 (en) Request routing using network computing components
Grigorik Making the web faster with HTTP 2.0
US7716306B2 (en) Data caching based on data contents
EP2416542B1 (en) Service virtualization over content-centric networks
EP2266064B1 (en) Request routing
CN105791451B (zh) 一种报文响应方法及装置
US20130268673A1 (en) Method and apparatus for reducing network resource transmission size using delta compression
CN102067094A (zh) 高速缓存优化
US10367871B2 (en) System and method for all-in-one content stream in content-centric networks
EP3588906B1 (en) Multi-path management with http/2
EP2993593A1 (en) System and method for a reliable content exchange of a ccn pipeline stream
CN110958279B (zh) 一种数据处理方法及其装置
EP3389240A1 (en) Method and system for processing cache cluster service
US20180302489A1 (en) Architecture for proactively providing bundled content items to client devices
US11444882B2 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
JP2007299019A (ja) データ通信システム、サーバ装置及びそれに用いるデータ通信方法並びにそのプログラム
EP3518113A1 (en) Server device, transfer device, and program for content distribution system
Grigorik Making the Web Faster with HTTP 2.0: HTTP continues to evolve
CN110798542A (zh) 一种获取ip地址的方法及系统
JP6413543B2 (ja) 負荷分散装置、サーバ、負荷分散システム、負荷分散プログラム
JP6362536B2 (ja) コンテンツ配信ネットワークのクライアント装置及びプログラム
CN114338574A (zh) 一种即时通讯方法、管理节点及系统
WO2015117677A1 (en) Method and software for transmitting website content

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140507

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141201

R150 Certificate of patent or registration of utility model

Ref document number: 5668342

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees