JP2003288288A - リンク先圧縮システム - Google Patents
リンク先圧縮システムInfo
- Publication number
- JP2003288288A JP2003288288A JP2002090055A JP2002090055A JP2003288288A JP 2003288288 A JP2003288288 A JP 2003288288A JP 2002090055 A JP2002090055 A JP 2002090055A JP 2002090055 A JP2002090055 A JP 2002090055A JP 2003288288 A JP2003288288 A JP 2003288288A
- Authority
- JP
- Japan
- Prior art keywords
- url
- compressed
- client
- mapping information
- variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
トの間にプロキシサーバを設置し、該プロキシサーバを
経由して通信されるURLを圧縮するリンク先圧縮システ
ムにおいて、利用頻度の高いURLに効率的な圧縮URLを割
当て、圧縮URLの名前空間をできるだけ効率的に使用す
ることができるようにすることを目的とする。 【解決手段】クライアントからのコンテンツ要求に含ま
れるURLとそのURLのアクセス回数をマッピング情報とし
て記録し、アクセス回数が予め設定した回数以上になっ
たときに、そのURLの文字数よりも短い圧縮URLを割り当
て、マッピング情報に記録する。サーバからのコンテン
ツに含まれるリンク先のURLをマッピング情報に基づい
て圧縮URLに変換し、クライアントからのコンテンツ要
求に含まれる圧縮URLをマッピング情報に基づいてURLに
変換する。
Description
ステムのサーバとクライアントの間にプロキシサーバを
設置し、該プロキシサーバを経由して通信されるURLを
圧縮するリンク先圧縮システムに関する。
場合、ハードウェアの制約により、一つのコンテンツ要
求で処理できるURLの文字列長が制限されている。その
ため、制限を超えたURLを扱うことができない。しか
し、携帯電話は、コンテンツ変換サーバを介して、PC向
けに作成されたサーバをアクセスすることがある。この
場合、PC向けに作成されたサーバでは、携帯電話の制限
を超えるURLを記述するコンテンツが作成されることも
ある。
従量課金方式が採用されているため、通信量を減らすこ
とは通信料金を抑えることに役立つ。そのため、サーバ
とクライアントの間で通信されるURLの圧縮が行われ
る。以下に、URL圧縮の従来の技術を示す。まず、プロ
キシサーバは、サーバから送られるコンテンツ内部の接
続先URLを圧縮したURL(圧縮URL)に変換して、クライ
アントに転送する。このとき、プロキシサーバは、接続
先URLと圧縮URLのマッピング情報(対応情報)を記録す
る。プロキシサーバがクライアントからの圧縮URLを受
信したとき、前記マッピング情報から圧縮URLに対応す
る接続先URLを検索して、サーバに転送する。
プロキシサーバはほとんど利用されないURLに対しても
マッピング情報を保持しなければいけないため、リソー
スを多く消費していた。さらに、割当てる圧縮URLの名
前空間を無駄に消費してしまい、利用頻度の高いURLに
効率的な圧縮URLを割当てることができない。
サーバがマッピング情報を一時的に保持する方法が考え
られる。しかし、この方法では、クライアントが圧縮UR
Lを記録した後、ある程度期間を経てから前記記録した
圧縮URLでアクセスした場合、プロキシサーバからマッ
ピング情報が既に削除されているため、目的のコンテン
ツを得ることができない弊害が出てしまう。
コンテンツを提供するサーバでは、通信のセッション管
理をする必要がある。しかし、携帯電話ではセッション
管理にCookieを利用できないものがあるため、URLにセ
ッション識別子を付加してセッション管理を行う方法が
採られている。この場合、クライアント毎に異なるセッ
ション識別子の付加されたURLを利用するため、そのURL
を圧縮しても、別のクライアントはその圧縮URLを利用
できない。
解決し、特に利用頻度の高いURLに効率的な圧縮URLを割
当て、圧縮URLの名前空間をできるだけ効率的に使用す
ることができる圧縮システムを提供することを目的とす
る。
め、請求項1に係る発明は、サーバからのコンテンツを
クライアントに転送し、クライアントからのコンテンツ
要求をサーバに転送するシステムに適用するリンク先圧
縮システムであって、クライアントからのコンテンツ要
求に含まれるURLとそのURLのアクセス回数をマッピング
情報として記録する手段と、前記アクセス回数が予め設
定した回数以上になったとき、そのURLの文字数よりも
短い文字数の圧縮URLをマッピング情報として記録する
手段と、サーバからのコンテンツに含まれるリンク先の
URLを前記マッピング情報に基づいて圧縮URLに変換する
手段と、クライアントからのコンテンツ要求に含まれる
圧縮URLを前記マッピング情報に基づいてURLに変換する
手段とを備えることを特徴とする。
テンツをクライアントに転送し、クライアントからのコ
ンテンツ要求をサーバに転送するシステムに適用するリ
ンク先圧縮システムであって、クライアントからのコン
テンツ要求に含まれるURLを、先頭要素とパラメタ要素
と値要素とに分割する手段と、クライアントからのコン
テンツ要求に含まれるURLを分割した各分割要素とその
分割要素のアクセス回数をマッピング情報として記録す
る手段と、前記アクセス回数が予め設定した回数以上に
なったとき、その分割要素を示す文字数よりも短い文字
数の圧縮ワードをマッピング情報として記録する手段
と、サーバからのコンテンツに含まれるリンク先のURL
を先頭要素とパラメタ要素と値要素とに分割し、前記マ
ッピング情報に基づいて各分割要素を圧縮ワードに変換
することにより圧縮URLを取得し、前記サーバからのコ
ンテンツに含まれるリンク先のURLを前記圧縮URLに書き
換える手段と、クライアントからのコンテンツ要求に含
まれる圧縮URLを先頭要素とパラメタ要素と値要素とに
分割し、前記マッピング情報に基づいて各分割要素の圧
縮ワードを元の分割要素を示す文字列に変換することに
より元のURLを取得し、前記クライアントからのコンテ
ンツ要求に含まれる圧縮URLを元のURLに書き換える手段
とを備えることを特徴とする。
に記載のリンク先圧縮システムにおいて、前記マッピン
グ情報として、当該URLまたは分割要素へのアクセス日
付を記録する手段と、前記マッピング情報のアクセス日
付が、現在日から予め設定したタイムアウト期間だけ過
去に遡った日付よりも古い場合に、当該マッピング情報
を削除する手段とをさらに備えることを特徴とする。
リンク先圧縮システムにおいて、前記タイムアウト期間
を通常データ用と圧縮データ用の2つ用意し、前記マッ
ピング情報のうち、圧縮URLまたは圧縮ワードが登録さ
れているものについては前記圧縮データ用のタイムアウ
ト期間を用いて当該マッピング情報を削除するかどうか
を決定し、圧縮URLまたは圧縮ワードが登録されていな
いものについては前記通常データ用のタイムアウト期間
を用いて当該マッピング情報を削除するかどうかを決定
する手段をさらに備えることを特徴とする。
に記載のリンク先圧縮システムにおいて、クライアント
からサーバへのコンテンツ要求に含まれるURLが、圧縮U
RLでなく、かつ、前記マッピング情報に当該URLに対応
する圧縮URLが登録されている場合、クライアントに圧
縮URLを利用する旨の通知を行う手段をさらに備えるこ
とを特徴とする。
の形態を説明する。なお、同一番号は同様の部品・要素
を示すものとする。これにより本発明が限定されるもの
ではない。
境を示す図である。クライアント101は、コンテンツ
配信システムのクライアントとなるPCやPDA(Personal D
igital Assistant)、または携帯電話などの機器であ
る。サーバ102は、クライアント101の要求に応じ
て、コンテンツを配信するWebサーバである。プロキシ
103は、クライアント101からのコンテンツ要求を
適切なサーバに振り分けるシステムである。また、プロ
キシ103は、サーバ102からのコンテンツに含まれ
るURLを圧縮してクライアント101へ転送し、クライ
アント101からの圧縮したURLでのコンテンツ要求を
伸張してサーバ102に転送するものである。
キシ103は、公衆回線網やインターネット網や携帯電
話網などで構成されるネットワーク104を介してデー
タ通信を行うことができる。ネットワーク104には、
クライアント101やサーバ102と同様の機器やシス
テムが複数接続されている。
を詳細に示す図である。プロキシ103は、プログラム
の実行を行うCPU201と、プログラムやデータをロ
ードするメモリ202と、他の機器と通信回線を確立す
る通信部203と、命令やデータの入力を行う入力部2
04と、クライアント101からのデータを出力する出
力部205と、記憶部206が、バス215で相互に接
続されて構成されている。記憶部206は、転送プログ
ラム207、URL圧縮プログラム208、URL伸張プログ
ラム209、ガベージコレクションプログラム210、
URL変換テーブル211、パラメタ変換テーブル21
2、値変換テーブル213、及び閾値設定テーブル21
4などを記憶する。
ーバ102などを含めネットワーク104に接続してい
る機器との間で通信回線を確立し、データ交換を行う機
能を持つ。入力部204は、キーボード、マウス、ペン
入力、音声入力、ボタン、ジョグダイヤル、または十字
キーなどの入力手段を持つ。出力部205は、ディスプ
レイ、または音声などの出力手段を持つ。
01からのコンテンツ要求をサーバ102へ転送し、サ
ーバ102からのコンテンツをクライアント101に転
送するプログラムである。URL圧縮プログラム208
は、サーバ102からクライアント101へ転送される
コンテンツ内のURLを分割して(分割の仕方については
後述する)、各分割要素の出現回数をカウントし、その
出現回数に基づいて分割要素を圧縮するプログラムであ
る。URL伸張プログラム209は、クライアント101
からサーバ102へ転送されるコンテンツ要求のURLに
ついて、それがURL圧縮プログラム208で圧縮された
ものであるか否かを判断し、圧縮されている場合は伸張
して通常のURLに戻すプログラムである。ガベージコレ
クションプログラム210は、プロキシ103で定期的
に起動して、URL圧縮プログラム208やURL伸張プログ
ラム209で不必要な情報を削除するプログラムであ
る。
ログラム208やURL伸張プログラム209で利用する
変換テーブルを3つ持っている。それぞれの変換テーブ
ルは、圧縮するURLを、「?」と「=」と「&」に基づ
いて分割した各要素を扱っている。URL変換テーブル2
11は、分割した一番目の先頭要素で、URLの先頭から
「?」の直前までの部分を扱っている。パラメタ変換テ
ーブル212は「?」の直後から「=」の直前までのパ
ラメタ要素を扱っている。値変換テーブル213は
「=」の直後の値要素を扱っている。
素が分割される例を示す。URLの例「http://www.hsk.c
o.jp/service.jsp?keyword=1&language=japanese」の中
で、URLの先頭から「?」の直前までの部分「http://ww
w.hsk.co.jp/service.jsp」が先頭要素であり、「?」
や「&」の直後から「=」の直前までの「keyword」や
「language」がパラメタ要素であり、「=」の直後の
「1」や「Japanese」が値要素である。
ーブル212、及び値変換テーブル213は、同じテー
ブル構造を持つ。
す。項番401は、変換テーブル内のレコードを一意に
決定する識別子である。keyword402は、URLの分割要
素を表している。図4はURL変換テーブル211を例示
したものであるので、keyword402の欄にはURLの先頭
要素が格納されている。パラメタ変換テーブル212で
はkeyword402の欄にパラメタ要素が格納され、値変
換テーブル213ではkeyword402の欄に値要素が格
納されることになる。出現回数403は、keyword40
2がクライアント101からサーバ102への転送時に
利用された回数を表している。アクセス日404は、ke
yword402がクライアント101からサーバ102へ
の転送時に利用された最も新しい日付を表している。圧
縮word405は、keyword402に代わってクライアン
ト101へ転送される文字列を表している。
グラム208やURL伸張プログラム209などによる、U
RLの圧縮や伸張、変換テーブルのレコード削除を決定す
るためのパラメタが格納されている。このパラメタはシ
ステムの管理者により予め記述されている。
示す。項番501は、テーブルレコードを一意に識別す
ることができる番号を表している。項目名502は、設
定する項目を一意にする名前を表している。閾値503
は、その項目に設定されている閾値を表している。各レ
コードの閾値503にある()内の内容は、理解を助ける
ために便宜上、単位を記述したものである。
「アクセス数」の閾値は、圧縮をはじめるために必要な
出現回数の下限を表している。項番2である「keyword
保持期間」の閾値は、変換テーブル中の圧縮wordの登録
されていないレコードを削除するために必要な日数の下
限を示している。この日数は、keywordの出現回数がカ
ウントされなくなってからの期間を表している。項番3
の「圧縮word保持期間」の閾値は、変換テーブル中の圧
縮wordの登録されているレコードを削除するために必要
な日数の下限を示している。この日数も、keywordの出
現回数がカウントされなくなってからの期間を表してい
る。
を示す流れ図である。
ト101からのコンテンツ要求を受信する(ステップ6
01)。次に、コンテンツ要求のURLから接続先URLを抽
出する(ステップ602)。
す。この例の接続先URL701の中で、URLの先頭からは
じめの「?」までが、プロキシ103を識別するプロキ
シURL702である。残りの部分は、接続先URL703で
ある。ステップ602では、この接続先URL703を抽
出する。
確認する(ステップ603)。接続先URLを抽出するこ
とができたならば、ステップ604へ進む。接続先URL
を抽出できなかったならば、ステップ608へ進む。ス
テップ604では、ステップ602で抽出した接続先UR
LをURL伸張プログラム209で書き換える(ステップ6
04)。次に、URL伸張プログラム209からの応答が
1であるかどうかを調べる(ステップ605)。応答が
1ならば、ステップ604で書き換えた接続先URLをURL
圧縮プログラム208で書き換える(ステップ60
6)。さらに、ステップ606で書き換えた接続先URL
への転送先を表示するページを生成してクライアント1
01へ送信し(ステップ607)、ステップ601へ戻
る。ステップ605から607の流れは、クライアント
から要求された接続先URLが圧縮されていないkeywordを
含み、該keywordが変換テーブルに既に存在し圧縮word
が割り当てられている場合に、クライアントのユーザに
該圧縮されたURLを知らせる画面を表示するものであ
る。
るページの画面例を示す。このページに表示されている
転送先に、手動的あるいは自動的にページが遷移され
る。クライアントのユーザは、自分が要求した接続先UR
Lに対して、この画面に示された圧縮URLが割当てられて
いることを知ることができ、これ以降は効率的な圧縮UR
Lを使用できる。
とができなかった場合は、クライアント101に接続先
URLを要求するページを送信して(ステップ608)、
ステップ601へ戻る。
イアント101に接続先URLを要求するページの画面例
を示す。
9からの応答が1でない場合は、URL伸張プログラム2
09からの応答が−1(エラー)であるかどうかを調べ
る(ステップ609)。応答が−1である場合は、ステ
ップ604で書き換えた接続先URLへのアクセスエラー
を表示するページを生成してクライアント101へ送信
し(ステップ610)、ステップ601へ戻る。
続先URLのエラーを表示するページの画面例を示す。
9からの応答が−1でない場合は、URLの伸張が成功し
たということであるから、ステップ604のURL伸張プ
ログラム209で書き換えた接続先URLをその接続先URL
のホスト部のサーバへコンテンツ要求として送信する
(ステップ611)。図11に、接続先URLのホスト部
の例を示す。ホスト部は、URLの「//」以降で最初の
「/」までの部分文字列である。
したコンテンツ要求に対する返答のコンテンツを受信す
る(ステップ612)。受信したコンテンツ内にある各
リンク先のURLをURL圧縮プログラム208で書き換える
(ステップ613)。コンテンツ内のリンク先とは、<
A>タグのhref属性値や<input>タグのaction属性値な
どである。さらに、ステップ613で書き換えた各リン
ク先のURLの先頭にプロキシURL702を付加する(ステ
ップ614)。プロキシURL702(図7)とは、プロ
キシ103に接続することができるURLを表しており、
クライアント101が必ずプロキシ103経由でサーバ
102に接続するようにしている。ステップ614まで
で書き換えたコンテンツをクライアント101に転送し
(ステップ615)、ステップ601へ戻る。
作手順を示す流れ図である。この処理では、接続先URL
を1文字づつ調べながら「&」や「?」などの分割の区切
りになる文字を見つけ、それらで分割された文字列に対
して変換ルーチンを施して圧縮を行う。以下、この処理
の詳細を説明する。
得し、変数inURLに接続先URLを代入する(ステップ12
01)。変数iに1を代入し、変数outURLを空にする(ス
テップ1202)。変数startに変数iの値を代入し、変
数keyを空にする(ステップ1203)。
かどうかを調べる(ステップ1204)。これは、変数
inURL[i]が接続先URLの要素分割文字列であるかの確認
である。ここで、表記X[Y]は、変数Xの文字列のY番目の
文字を表している。変数inURL[i]が文字「&」と等しい
場合、変数keyには値が設定されていると考えられるの
で、この変数keyを値要素として処理するために、値変
換ルーチンを実行する(ステップ1205)。値変換ル
ーチンについては後述する。次に、変数outURLの文字列
の後尾に変数inURL[i]を表す文字列を追加し、変数iを1
増やして(ステップ1206)、ステップ1203に戻
る。
本的には変数inURL[i]の文字そのものである。ただし、
変数inURL[i]の文字をそのまま使用すると、URL規格外
のコンテンツ要求のURL701が作成される場合は、エ
スケープ文字列に変換して使用する。ここで、エスケー
ブ文字列に変換された文字は、プロキシ103がクライ
アント101から受信して、接続先URLとして取得され
たときに、元の文字表記に変わる。
「&」と等しくない場合は、変数inURL[i]が文字「?」あ
るいは文字「;」と等しいかどうかを調べる(ステップ
1207)。これは、変数inURL[i]が接続先URLの要素
分割文字列であるかの確認である。変数inURL[i]が文字
「?」あるいは文字「;」と等しい場合、変数startが1で
あるかどうかを調べる(ステップ1208)。これは、
現在の処理が先頭要素に対する処理であるか否かの確認
である。変数startが1なら、変数keyを先頭要素として
処理するために、URL変換ルーチンを実行し(ステップ
1209)、ステップ1206に進む。URL変換ルーチ
ンについては後述する。変数startが1でないなら、ステ
ップ1205に進む。
「?」あるいは文字「;」と等しくない場合は、変数inUR
L[i]が文字「=」と等しいかどうかを調べる(ステップ
1210)。これは、変数inURL[i]が接続先URLの要素
分割文字列であるかの確認である。変数inURL[i]が文字
「=」と等しい場合、変数startが1であるかどうかを調
べる(ステップ1211)。これは、現在の処理が先頭
要素に対する処理であるか否かの確認である。変数star
tが1なら、変数keyを先頭要素として処理するために、U
RL変換ルーチンを実行し(ステップ1209)、ステッ
プ1206に進む。変数startが1でないなら、変数key
をパラメタ要素として処理するために、パラメタ変換ル
ーチンを実行し(ステップ1212)、ステップ120
6に進む。パラメタ変換ルーチンについては後述する。
「=」と等しくない場合は、変数inURL[i]が空であるか
どうかを調べる(ステップ1213)。これは、変数in
URLの文字列の最後まで来たかの確認である。変数inURL
[i]が空の場合、変数startが1であるかどうかを調べる
(ステップ1214)。これは、現在の処理が先頭要素
に対する処理であるか否かの確認である。変数startが1
であるときは、変数keyを先頭要素として処理するため
に、URL変換ルーチンを実行する(ステップ121
5)。そして、転送プログラム207の接続先URLを変
数outURLの値に書き換えて(ステップ1216)、終了
する。
ら、変数keyを値要素として処理するために、値変換ル
ーチンを実行し(ステップ1217)、ステップ121
6に進む。
い場合は、変数inURL[i]が文字「!」と等しいかどうか
を調べる(ステップ1218)。これは、URLに利用さ
れている文字「!」を識別して、文字列「!!」に置き換
えるためである。すなわち、2つ続く「!」で通常の文
字「!」の1文字を表す。本実施の形態では、文字「!」
を特殊文字(これに続く文字が圧縮されたものであるこ
とを示す)として利用するため、通常の文字「!」と区
別する必要がある。変数inURL[i]が文字「!」と等しい
なら、変数keyの文字列の後尾に文字「!」を追加し(ス
テップ1219)、ステップ1220に進む。なお、表
記Add(X,Y)は、変数Xの文字列に、変数Yの文字あるいは
文字列を追加することを表している。ステップ1218
で変数inURL[i]が文字「!」と等しくない場合は、直ち
にステップ1220に進む。次に、変数keyの文字列の
後尾にinURL[i]の文字を追加して、変数iを1増やし(ス
テップ1220)、ステップ1204に戻る。
理で呼出している変換ルーチンの動作手順を説明する。
なお、図12におけるURL変換ルーチンとパラメタ変換
ルーチンと値変換ルーチンは、動作手順が同じであるの
で、図13でまとめて説明するものとする。ただし、UR
L変換ルーチンは変換テーブルとしてURL変換テーブル2
11を、パラメタ変換ルーチンは変換テーブルとしてパ
ラメタ変換テーブル212を、値変換ルーチンは変換テ
ーブルとして値変換テーブル213を、それぞれ参照す
る。これらの変換テーブルについては図4で説明した。
eyであるレコードを検索する(ステップ1301)。ス
テップ1301で検索したレコードがあるかどうかを調
べる(ステップ1302)。これは、変換レコードに変
数keyに関連する要素があるかの確認である。そのよう
なレコードがあるときは、当該レコードの圧縮wordフィ
ールドに値が格納されているかどうかを調べる(ステッ
プ1303)。これは、変数keyが圧縮可能であるかの
確認である。圧縮wordフィールドに値があれば、変数ke
yに圧縮wordフィールドの値を代入する(ステップ13
04)。次に、変数outURLに文字「!」を追加する(ス
テップ1305)。また、変数outURLに変数keyの文字
列を追加して(ステップ1306)、終了する。
い場合、あるいはステップ1303で圧縮wordフィール
ドに値がない場合は、直ちにステップ1306に進み、
変数outURLに変数keyの文字列を追加して、終了する。
ら呼び出されるURL伸張プログラム209の動作手順を
示す流れ図である。この処理では、URL圧縮の逆を行っ
ている。すなわち、接続先URLを1文字づつ調べながら
「&」や「?」などの分割の区切りになる文字を見つけ、
それらで分割された文字列に対して逆変換ルーチンを施
して伸張を行う。以下、この処理の詳細を説明する。
得し、変数inURLに接続先URLを代入する(ステップ14
01)。変数iに1を代入し、変数returnを0にし、変数o
utURLを空にする(ステップ1402)。変数startに変
数iの値を代入し、変数keyを空にする(ステップ140
3)。
かどうかを調べる(ステップ1404)。これは、変数
inURL[i]が接続先URLの要素分割文字列であるかの確認
である。変数inURL[i]が文字「&」と等しいときは、変
数keyを値要素として処理するために、値逆変換ルーチ
ンを実行する(ステップ1405)。値逆変換ルーチン
については後述する。次に、変数outURLの文字列の後尾
にinURL[i]の文字を追加し、変数iを1増やして(ステッ
プ1406)、ステップ1403に戻る。
「&」と等しくない場合は、変数inURL[i]が文字「?」あ
るいは文字「;」と等しいかどうかを調べる(ステップ
1407)。これは、変数inURL[i]が接続先URLの要素
分割文字列であるかの確認である。変数inURL[i]が文字
「?」あるいは文字「;」と等しいときは、変数startが1
であるかどうかを調べる(ステップ1408)。これ
は、現在の処理が先頭要素に対する処理であるか否かの
確認である。変数startが1なら、変数keyを先頭要素と
して処理するために、URL逆変換ルーチンを実行し(ス
テップ1409)、ステップ1406に進む。URL逆変
換ルーチンについては後述する。変数startが1でないな
ら、ステップ1405に進む。
「?」あるいは文字「;」と等しくない場合は、変数inUR
L[i]が文字「=」と等しいかどうかを調べる(ステップ
1410)。これは、変数inURL[i]が接続先URLの要素
分割文字列であるかの確認である。変数inURL[i]が文字
「=」と等しいときは、変数startが1であるかどうかを
調べる(ステップ1411)。これは、現在の処理が先
頭要素に対する処理であるか否かの確認である。変数st
artが1なら、変数keyを先頭要素として処理するため
に、ステップ1409へ進む。変数startが1でないな
ら、変数keyをパラメタ要素として処理するために、パ
ラメタ逆変換ルーチンを実行し(ステップ1412)、
ステップ1406に進む。パラメタ逆変換ルーチンにつ
いては後述する。
「=」と等しくない場合は、変数inURL[i]が空であるか
どうかを調べる(ステップ1413)。これは、変数in
URLの文字列の最後まで来たかの確認である。変数inURL
[i]が空であるときは、変数startが1であるかどうかを
調べる(ステップ1414)。これは、現在の処理が先
頭要素に対する処理であるか否かの確認である。変数st
artが1である場合は、変数keyを先頭要素として処理す
るために、URL逆変換ルーチンを実行する(ステップ1
415)。次に、変数returnが-1(エラー)でないことを
調べる(ステップ1416)。これは、逆変換のエラー
があったかの確認である。変数returnが-1でないなら、
転送プログラム207の接続先URLを変数outURLの値に
書き換える(ステップ1417)。そして、転送プログ
ラム207に変数returnの値を返して(ステップ141
8)、終了する。
ときは、転送プログラム207に変数returnの値を返し
て(ステップ1418)、終了する。また、ステップ1
414で変数startが1でないなら、変数keyを値要素と
して処理するために、値逆変換ルーチンを実行し(ステ
ップ1419)、ステップ1417に進む。
い場合は、変数keyの文字列の後尾にinURL[i]の文字を
追加し、変数iを1増やして(ステップ1420)、ステ
ップ1404に戻る。
理で呼出している逆変換ルーチンの動作手順を説明す
る。なお、図14におけるURL逆変換ルーチンとパラメ
タ逆変換ルーチンと値逆変換ルーチンは、動作手順が同
じであるので、図15でまとめて説明するものとする。
ただし、URL逆変換ルーチンは変換テーブルとしてURL変
換テーブル211を、パラメタ逆変換ルーチンは変換テ
ーブルとしてパラメタ変換テーブル212を、値逆変換
ルーチンは変換テーブルとして値変換テーブル213
を、それぞれ参照する。
01)。変数key[i]が文字「!」と等しいかどうかを調
べる(ステップ1502)。これは、圧縮用の特殊文字
「!」が使われているかを確認する処理である。変数key
[i]が文字「!」と等しいときは、変数iを1増やして(ス
テップ1503)、ステップ1502へ戻る。ステップ
1502で変数key[i]が文字「!」と等しくないなら、
変数iを2で割った数の整数部分の個数だけ文字「!」
を、変数tmpに代入する(ステップ1504)。これは
通常文字の「!」を再現しているものである。ステップ
1504の時点では、iが偶数なら変数keyの先頭から奇
数個の文字「!」が検出されたことになり、iが奇数なら
変数keyの先頭から偶数個の文字「!」が検出されたこと
になる。
を代入する(ステップ1505)。例えば、変数iが2で
変数key="!abc"の場合には、"abc"だけが変数keyに代入
される。変数tmpの文字列の後尾に変数keyの文字列を連
結し、その値を変数keyに代入する(ステップ150
6)。
テップ1507)。これは、変数keyに特殊文字「!」が
含まれているかを確認する処理である。変数iが偶数で
ある場合は、圧縮を示す特殊文字「!」が含まれている
ということであるから、変換テーブルから圧縮word列が
変数keyであるレコードを検索する(ステップ150
8)。ステップ1508で検索したレコードがあるかど
うかを調べる(ステップ1509)。これは、変換テー
ブルに変数keyに関連する要素があるか否かの確認であ
る。あれば、ステップ1510へ進む。ここでは、発見
したレコードの項番をxとする。検索したレコードがな
ければ、ステップ1521へ進む。
フィールドの値を1つ増やし、アクセス日フィールドの
値を現在の日付に変更する(ステップ1510)。ここ
で、表記Y(X)は、項番XのフィールドYの値を表してい
る。次に、変数keyに項番xのkeywordフィールドの値を
代入する(ステップ1511)。また、変数outURLの文
字列に変数keyの文字列を追加して(ステップ151
2)、終了する。ステップ1509で、検索したレコー
ドがない場合は、変数returnに-1(エラー)を代入して
(ステップ1521)、終了する。
い、すなわち変数iが奇数であるなら、圧縮を示す特殊
文字「!」が含まれていないということであるから、変
換テーブルからkeyword列が変数keyであるレコードを検
索する(ステップ1513)。ステップ1513で検索
したレコードがあるかどうかを調べる(ステップ151
4)。これは、変換テーブルに変数keyに関連する要素
があるか否かの確認である。あれば、ステップ1515
へ進む。ここでは、発見したレコードの項番をxとす
る。検索したレコードがなければ、ステップ1519へ
進む。
の圧縮wordフィールドに要素があるかどうかを調べる
(ステップ1515)。これは、変数keyの文字列に対
して既に圧縮が行われ圧縮wordがあるのかを確認する処
理である。項番xのレコードの圧縮wordフィールドに要
素があれば、圧縮wordがあるということだから、変数re
turnに1を代入し(ステップ1520)、ステップ15
16へ進む。ステップ1515で項番xのレコードの圧
縮wordフィールドに要素がなければ、ステップ1516
へ進む。
つ増やし、アクセス日フィールドの値を現在の日付に変
更する(ステップ1516)。項番xの出現回数フィー
ルドの値が、閾値テーブル214のアクセス数の値を超
えているかどうか調べる(ステップ1517)。これ
は、変数keyを圧縮するかどうかを決める処理である。
項番xの出現回数フィールドの値が閾値テーブル214
のアクセス数の値を超えている場合、圧縮割当てルーチ
ンを実行して(ステップ1518)、ステップ1512
へ進む。圧縮割当てルーチンについては、後述する。
い場合は、変換テーブルに新しいレコードを追加する
(ステップ1519)。追加したレコードの項番には、
変換テーブルの既存の項番の値と重複しない、最も小さ
い数を代入する。この値をxとする。追加したレコード
のkeyword(x)フィールドには変数keyの値を、出現回数
(x)フィールドには0を代入する。圧縮wordは空にする。
そして、ステップ1516へ進む。
1518で呼び出される圧縮割当てルーチンの動作手順
を説明する。このルーチン内で利用されている変換テー
ブルは、呼び出し元がURL逆変換ルーチンのときはURL変
換テーブル211を、パラメタ逆変換ルーチンのときは
パラメタ変換テーブル212を、値逆変換ルーチンのと
きは値変換テーブル213を、それぞれ示すものとす
る。
ードを抽出する(ステップ1601)。新しく生成する
圧縮wordの文字列数が、ステップ1601で抽出したす
べてのレコードのどの圧縮wordフィールドの文字列数よ
りも長いかを調べる(ステップ1602)。新しく生成
する圧縮wordの文字列が長ければ、ステップ1603へ
進む。そうでなければ、ステップ1607へ進む。な
お、ステップ1602で用いる新しい圧縮wordは、定め
られた文字集合の組み合わせで生成するものとする。こ
の生成順序は文字数が小さい順に行うものとする。例え
ば、1文字で1,2,…の順に9まで割当て、その次に
2文字で10,11,…と割当てていくような生成方法
でよい。
が最小、かつ、現在の日付から閾値設定テーブル214
の圧縮word保持期間だけ遡った日よりも古いアクセス日
フィールドの値を持つレコードを、ステップ1601で
抽出したレコードの中から検索する(ステップ160
3)。ステップ1603で検索したレコードがあるかど
うかを調べる(ステップ1604)。これは、変換テー
ブルに、決められた期間以上利用されていない圧縮word
を持つレコードがないのかを確認する処理である。検索
したレコードがあれば、ステップ1605へ進む。ここ
では、発見したレコードの項番はyとする。検索したレ
コードがなければ、ステップ1607へ進む。
縮word(y)の文字列を代入する。次に、変換テーブルか
ら項番yのレコードを削除して(ステップ1606)、
終了する。
rdの文字列が、ステップ1601で抽出したすべてのレ
コード中の圧縮wordの最長文字列よりも長くない場合、
またはステップ1604で検索したレコードがない場合
は、圧縮word(x)にステップ1602で生成した新しい
圧縮wordを代入して(ステップ1607)、終了する。
レクションプログラム210の動作手順を説明する。こ
のプログラムは、全ての変換テーブル(URL変換テーブ
ル211、パラメタ変換テーブル212、値変換テーブ
ル213)を対象に定期的に実行するものである。
ードを抽出する(ステップ1701)。現在の日付から
閾値設定テーブル214のkeyword保持期間だけ遡った
日よりも古いアクセス日フィールドの値を持つレコード
を、ステップ1701で抽出したレコードから抽出する
(ステップ1702)。ステップ1702で抽出したレ
コードを削除して(ステップ1703)、終了する。
た各分割要素について圧縮と伸張を行っているが、URL
を単位として圧縮・伸張を行うようにしてもよい。
World Wide WebのようなURLを利用するデータ配信シス
テムにおいて、アクセスの集中するページのURLを統計
情報に基づいて効率的に圧縮することができる。また、
アクセスの少なくなったページに割当てられていた圧縮
URLを、アクセスの多くなったページの圧縮URLに再割当
てすることができる。さらに、クライアントが非圧縮UR
Lへのリンクを記録して、その後プロキシがそのリンク
を圧縮した場合、クライアントが記録している非圧縮UR
Lで直接アクセスしても、プロキシが圧縮されたURLを通
知するので、より効率的なURLをクライアントに知らせ
ることができる。また、分割要素に分けて圧縮・伸張す
るので、セッション情報が付加されたリンク先のURLで
あっても、そのセッション情報以外の部分については圧
縮URLを利用できるので、効率的な利用が可能である。
る。
る。
変換テーブルの構成を示す構成図である。
る。
である。
ある。
る。
である。
値変換ルーチンの動作を説明する流れ図である。
である。
ン・値逆変換ルーチンの動作を説明する流れ図である。
である。
明する流れ図である。
キシ、104…ネットワーク、201…CPU、202
…メモリ、203…通信部、204…入力部、205…
出力部、206…記憶部、207…転送プログラム、2
08…URL圧縮プログラム208、209…URL伸張プロ
グラム、210…ガベージコレクションプログラム、2
11…URL変換テーブル、212…パラメタ変換テーブ
ル、213…値変換テーブル、214…閾値設定テーブ
ル、215…バス。
Claims (5)
- 【請求項1】サーバからのコンテンツをクライアントに
転送し、クライアントからのコンテンツ要求をサーバに
転送するシステムに適用するリンク先圧縮システムであ
って、 クライアントからのコンテンツ要求に含まれるURLとそ
のURLのアクセス回数をマッピング情報として記録する
手段と、 前記アクセス回数が予め設定した回数以上になったと
き、そのURLの文字数よりも短い文字数の圧縮URLをマッ
ピング情報として記録する手段と、 サーバからのコンテンツに含まれるリンク先のURLを前
記マッピング情報に基づいて圧縮URLに変換する手段
と、 クライアントからのコンテンツ要求に含まれる圧縮URL
を前記マッピング情報に基づいてURLに変換する手段と
を備えることを特徴とするリンク先圧縮システム。 - 【請求項2】サーバからのコンテンツをクライアントに
転送し、クライアントからのコンテンツ要求をサーバに
転送するシステムに適用するリンク先圧縮システムであ
って、 クライアントからのコンテンツ要求に含まれるURLを、
先頭要素とパラメタ要素と値要素とに分割する手段と、 クライアントからのコンテンツ要求に含まれるURLを分
割した各分割要素とその分割要素のアクセス回数をマッ
ピング情報として記録する手段と、 前記アクセス回数が予め設定した回数以上になったと
き、その分割要素を示す文字数よりも短い文字数の圧縮
ワードをマッピング情報として記録する手段と、 サーバからのコンテンツに含まれるリンク先のURLを先
頭要素とパラメタ要素と値要素とに分割し、前記マッピ
ング情報に基づいて各分割要素を圧縮ワードに変換する
ことにより圧縮URLを取得し、前記サーバからのコンテ
ンツに含まれるリンク先のURLを前記圧縮URLに書き換え
る手段と、 クライアントからのコンテンツ要求に含まれる圧縮URL
を先頭要素とパラメタ要素と値要素とに分割し、前記マ
ッピング情報に基づいて各分割要素の圧縮ワードを元の
分割要素を示す文字列に変換することにより元のURLを
取得し、前記クライアントからのコンテンツ要求に含ま
れる圧縮URLを元のURLに書き換える手段とを備えること
を特徴とするリンク先圧縮システム。 - 【請求項3】請求項1または2に記載のリンク先圧縮シ
ステムにおいて、 前記マッピング情報として、当該URLまたは分割要素へ
のアクセス日付を記録する手段と、 前記マッピング情報のアクセス日付が、現在日から予め
設定したタイムアウト期間だけ過去に遡った日付よりも
古い場合に、当該マッピング情報を削除する手段とをさ
らに備えることを特徴とするリンク先圧縮システム。 - 【請求項4】請求項3に記載のリンク先圧縮システムに
おいて、 前記タイムアウト期間を通常データ用と圧縮データ用の
2つ用意し、前記マッピング情報のうち、圧縮URLまた
は圧縮ワードが登録されているものについては前記圧縮
データ用のタイムアウト期間を用いて当該マッピング情
報を削除するかどうかを決定し、圧縮URLまたは圧縮ワ
ードが登録されていないものについては前記通常データ
用のタイムアウト期間を用いて当該マッピング情報を削
除するかどうかを決定する手段をさらに備えることを特
徴とするリンク先圧縮システム。 - 【請求項5】請求項1または2に記載のリンク先圧縮シ
ステムにおいて、 クライアントからサーバへのコンテンツ要求に含まれる
URLが、圧縮URLでなく、かつ、前記マッピング情報に当
該URLに対応する圧縮URLが登録されている場合、クライ
アントに圧縮URLを利用する旨の通知を行う手段をさら
に備えることを特徴とするリンク先圧縮システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002090055A JP3916219B2 (ja) | 2002-03-27 | 2002-03-27 | リンク先圧縮システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002090055A JP3916219B2 (ja) | 2002-03-27 | 2002-03-27 | リンク先圧縮システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003288288A true JP2003288288A (ja) | 2003-10-10 |
JP3916219B2 JP3916219B2 (ja) | 2007-05-16 |
Family
ID=29235444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002090055A Expired - Fee Related JP3916219B2 (ja) | 2002-03-27 | 2002-03-27 | リンク先圧縮システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3916219B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306184A (zh) * | 2011-08-30 | 2012-01-04 | 百度在线网络技术(北京)有限公司 | 获得链接压缩地址信息及压缩网页的方法、装置和设备 |
WO2014112727A1 (ko) * | 2013-01-18 | 2014-07-24 | Jung Yang Won | 단축 url의 관리 방법, 관리 장치 및 그 관리를 수행하는 컴퓨터 프로그램을 저장한 저장 매체 |
JP2014526167A (ja) * | 2011-07-06 | 2014-10-02 | エアプラグ インコーポレイテッド | 固定ホストアドレスに基づいて複数の異種網を選択的に用いてデータ送受信を可能にする装置と、そのための方法 |
US9219497B2 (en) | 2012-09-21 | 2015-12-22 | Fujitsu Limited | Compression device, compression method, and recording medium |
US10318483B2 (en) | 2012-09-21 | 2019-06-11 | Fujitsu Limited | Control method and control device |
CN113301175A (zh) * | 2020-07-14 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 服务调用方法及数据存储方法、装置、设备和存储介质 |
-
2002
- 2002-03-27 JP JP2002090055A patent/JP3916219B2/ja not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014526167A (ja) * | 2011-07-06 | 2014-10-02 | エアプラグ インコーポレイテッド | 固定ホストアドレスに基づいて複数の異種網を選択的に用いてデータ送受信を可能にする装置と、そのための方法 |
US9455947B2 (en) | 2011-07-06 | 2016-09-27 | Airplug Inc. | Apparatus and method of enabling to transceive data using a plurality of heterogeneous networks selectively through a fixed host address |
CN102306184A (zh) * | 2011-08-30 | 2012-01-04 | 百度在线网络技术(北京)有限公司 | 获得链接压缩地址信息及压缩网页的方法、装置和设备 |
US9219497B2 (en) | 2012-09-21 | 2015-12-22 | Fujitsu Limited | Compression device, compression method, and recording medium |
US10318483B2 (en) | 2012-09-21 | 2019-06-11 | Fujitsu Limited | Control method and control device |
WO2014112727A1 (ko) * | 2013-01-18 | 2014-07-24 | Jung Yang Won | 단축 url의 관리 방법, 관리 장치 및 그 관리를 수행하는 컴퓨터 프로그램을 저장한 저장 매체 |
CN113301175A (zh) * | 2020-07-14 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 服务调用方法及数据存储方法、装置、设备和存储介质 |
CN113301175B (zh) * | 2020-07-14 | 2022-04-12 | 阿里巴巴集团控股有限公司 | 服务调用方法及数据存储方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP3916219B2 (ja) | 2007-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8700573B2 (en) | File storage service system, file management device, file management method, ID denotative NAS server and file reading method | |
KR20050043689A (ko) | 이진 비교를 사용한 파일 복제 최적화 | |
JPH10133989A (ja) | 対話式アプリケーション実行方法及びシステム | |
JPH1115717A (ja) | 携帯型情報端末のプログラムファイル管理方法 | |
US20040078370A1 (en) | Method and apparatus for real time creation and modification of a change log for multi-server synchronization | |
CN114385091B (zh) | 网盘盘符的实现方法、装置、网盘及存储介质 | |
WO2014161261A1 (zh) | 数据的存储方法及装置 | |
JP2004310371A (ja) | ファイル共有システム及び方法、ファイル共有サーバ、ファイル共有サービスのクライアント端末、ファイル共有プログラム、ファイル共有プログラムを記録した記録媒体 | |
JP2002108671A (ja) | コンピュータ処理システムにおいてカスタマイズした情報を提供する方法とシステム | |
WO2016146009A1 (zh) | Html页面压缩方法及装置 | |
JP3916219B2 (ja) | リンク先圧縮システム | |
US8037067B1 (en) | Systems and methods for tracking user activity at website | |
CN111680247B (zh) | 网页字符串的本地调用方法、装置、设备及存储介质 | |
CN106934066B (zh) | 一种元数据处理方法、装置和存储设备 | |
US20030084062A1 (en) | Method and system for automated web reports | |
JP2009110216A (ja) | サーバ装置、クライアント装置、サーバベースコンピューティングシステムおよびプログラム | |
EP1172988A3 (en) | Server computer and method for sending a virtual character associated with a service provided, and computer readable recording medium that records a program for implementing the method | |
CN111552713A (zh) | 一种数据校验方法及装置 | |
JP2007328750A (ja) | 複合文書作成方法およびブログへの登録方法 | |
JP2006113745A (ja) | インターネット広告システム | |
CN114722784A (zh) | 一种业务流转中同一表单实时同步编辑的方法 | |
JP4179660B2 (ja) | 文字列に対するハッシュ値の計算方法およびその方法を実現するプログラムを記録した機械可読な記録媒体、文字列に対するハッシュ値の計算装置ならびに情報管理装置 | |
CN111310088B (zh) | 一种页面渲染方法及装置 | |
JP2004206406A (ja) | Url情報の変換方法およびプログラム並びにコンテンツ配信方法 | |
CN110569456B (zh) | Web端数据离线缓存方法及装置、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040705 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060915 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061113 |
|
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: 20070205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070205 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |