特許第6643760号(P6643760)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アリババ グループ ホウルディング リミテッドの特許一覧

特許6643760ショートリンクの処理方法、デバイス、及びサーバ
<>
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000003
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000004
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000005
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000006
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000007
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000008
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000009
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000010
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000011
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000012
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000013
  • 特許6643760-ショートリンクの処理方法、デバイス、及びサーバ 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6643760
(24)【登録日】2020年1月9日
(45)【発行日】2020年2月12日
(54)【発明の名称】ショートリンクの処理方法、デバイス、及びサーバ
(51)【国際特許分類】
   G06F 16/955 20190101AFI20200130BHJP
   H04M 11/00 20060101ALI20200130BHJP
【FI】
   G06F16/955
   H04M11/00 302
【請求項の数】15
【全頁数】27
(21)【出願番号】特願2018-534847(P2018-534847)
(86)(22)【出願日】2016年12月19日
(65)【公表番号】特表2019-504412(P2019-504412A)
(43)【公表日】2019年2月14日
(86)【国際出願番号】CN2016110699
(87)【国際公開番号】WO2017114205
(87)【国際公開日】20170706
【審査請求日】2018年9月3日
(31)【優先権主張番号】201511021330.X
(32)【優先日】2015年12月30日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】505032849
【氏名又は名称】アリババ グループ ホウルディング リミテッド
(74)【代理人】
【識別番号】100097320
【弁理士】
【氏名又は名称】宮川 貞二
(74)【代理人】
【識別番号】100155192
【弁理士】
【氏名又は名称】金子 美代子
(74)【代理人】
【識別番号】100131820
【弁理士】
【氏名又は名称】金井 俊幸
(74)【代理人】
【識別番号】100215049
【弁理士】
【氏名又は名称】石川 貴志
(74)【代理人】
【識別番号】100100398
【弁理士】
【氏名又は名称】柴田 茂夫
(72)【発明者】
【氏名】ジョウ,ヂュイン
【審査官】 齊藤 貴孝
(56)【参考文献】
【文献】 特開2002−024117(JP,A)
【文献】 特表2013−522736(JP,A)
【文献】 特開2007−041632(JP,A)
【文献】 特開2012−174205(JP,A)
【文献】 国際公開第2015/062491(WO,A1)
【文献】 特開2015−076698(JP,A)
【文献】 特開2007−304652(JP,A)
【文献】 特開2003−141002(JP,A)
【文献】 米国特許第08499099(US,B1)
【文献】 米国特許出願公開第2014/0018105(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
H04M 11/00
(57)【特許請求の範囲】
【請求項1】
分散型サーバクラスタにおける任意のサーバによって実行される、ショートリンクを処理する方法であって、
リクエスタから、第1のロングリンクURLを含むショートリンク申請要求を受信するステップと(210);
前記第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を計算するステップと(220);
前記第1のデータベーステーブル識別子に対応する第1のデータベースが、前記サーバのアクセス圏内にあるか否かを特定するステップと(230);
前記第1のデータベースが前記サーバの前記アクセス圏内にあると特定された場合、対応する第1のショートリンクURLを前記第1のデータベースから取得するステップと(240);
前記第1のショートリンクURLを前記リクエスタへ送信するステップと(240);を備える、
ショートリンクを処理する方法。
【請求項2】
前記第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を計算するステップは:
前記第1のロングリンクURLに基づき、対応する第1のダイジェスト値を計算するステップと(310)
前記第1のダイジェスト値に基づき、対応する前記第1のデータベーステーブル識別子を計算するステップと(320);を備える、
請求項1に記載の方法。
【請求項3】
前記第1のロングリンクURLに基づき、対応する第1のダイジェスト値を計算するステップは:
メッセージダイジェストアルゴリズムを用いて前記第1のロングリンクURLに対応する前記第1のダイジェスト値を計算するステップであって、前記第1のダイジェスト値は前記メッセージダイジェストアルゴリズムのダイジェスト値である、計算するステップ;又は
セキュアハッシュアルゴリズムを用いて、前記第1のロングリンクURLに対応する前記第1のダイジェスト値を計算するステップであって、前記第1のダイジェスト値は前記セキュアハッシュアルゴリズムのダイジェスト値である、計算するステップ;を備える、
請求項2に記載の方法。
【請求項4】
前記第1のデータベーステーブル識別子は、数字又は文字として表現される、
請求項2に記載の方法。
【請求項5】
対応する第1のショートリンクURLを前記第1のデータベースから取得し、前記第1のショートリンクURLを前記リクエスタへ送信するステップは:
前記第1のダイジェスト値に対応する第1の簡略ショートリンクについて前記第1のデータベースを探索するステップと(400)
前記第1の簡略ショートリンクが見つかり、見つかった前記第1の簡略ショートリンクに対応する第2のロングリンクURLが、前記申請要求が含む前記第1のロングリンクURLと同一である場合、見つかった前記第1の簡略ショートリンクに基づき前記第1のショートリンクURLを形成し、前記第1のショートリンクURLを前記リクエスタへ送信するステップと(410,420);を備える、
請求項2に記載の方法。
【請求項6】
対応する第1のショートリンクURLを前記第1のデータベースから取得し、前記第1のショートリンクURLを前記リクエスタへ送信するステップは:
前記第1の簡略ショートリンクが見つからない場合、又は、見つかった前記第1の簡略ショートリンクに対応する前記第2のロングリンクURLが、前記申請要求が含む前記第1のロングリンクURLと異なる場合、前記第1のデータベーステーブル識別子に基づき、対応する第2の簡略ショートリンクを生成するステップと(410,440)
前記第2の簡略ショートリンクは用いられていないと特定された場合、前記第2の簡略ショートリンクに基づき第2のショートリンクURLを形成し、前記第2のショートリンクURLを前記リクエスタへ送信するステップと(450);を備える、
請求項5に記載の方法。
【請求項7】
前記申請要求が前記ショートリンクの有効期間を更に含み、
前記申請要求が含む前記有効期間を前記第1の簡略ショートリンクまたは前記第2の簡略ショートリンクの有効期間として設定するステップと(510)
前記有効期間が満了となったとき、対応する記憶情報を削除するステップと(520);を更に備える、
請求項5または請求項6に記載の方法。
【請求項8】
前記第2の簡略ショートリンクと、対応する前記第1のロングリンクURLと、対応する前記第1のダイジェスト値と、対応する有効期間とを結合し、前記第1のデータベースに記憶するステップを更に備える、
請求項に記載の方法。
【請求項9】
前記第1のデータベーステーブル識別子に対応する第1のデータベースが、前記サーバのアクセス圏内にあるか否かを特定する前記ステップの後:
前記第1のデータベースが前記サーバの前記アクセス圏内にないと特定された場合、前記第1のデータベースにアクセスできるサーバが前記申請要求に基づき前記第1のデータベースから対応する前記第1のショートリンクURLを取得し、前記第1のショートリンクURLを前記リクエスタへ送信するよう、前記申請要求を前記第1のデータベースにアクセスできる前記サーバへ転送するステップ(230)を更に備える、
請求項1に記載の方法。
【請求項10】
前記リクエスタから、第3のショートリンクURLを含むショートリンクアクセス要求を受信するステップと(610)
前記第3のショートリンクURLに基づき、対応する第2のデータベーステーブル識別子を計算するステップと(620)
前記第2のデータベーステーブル識別子に対応する第2のデータベースが前記サーバの前記アクセス圏内にあるか否かを特定するステップと(630)
前記第2のデータベースが前記サーバの前記アクセス圏内にあると特定された場合、対応する第3のロングリンクURLを前記第2のデータベースから取得し、前記第3のロングリンクURLへジャンプするステップと(640);を更に備える、
請求項1乃至請求項のいずれか1項に記載の方法。
【請求項11】
前記第3のショートリンクURLに基づき、対応する第2のデータベーステーブル識別子を計算するステップは:
前記第3のショートリンクURLから第3の簡略ショートリンクを抽出するステップと(710)
前記第3の簡略ショートリンクに基づき、対応する前記第2のデータベーステーブル識別子を生成するステップと(720);を備える、
請求項10に記載の方法。
【請求項12】
対応する第3のロングリンクURLを前記第2のデータベースから取得し、前記第3のロングリンクURLへジャンプする前記ステップは:
前記第3の簡略ショートリンクについて前記第2のデータベースを探索するステップと;
前記第3の簡略ショートリンクが見つかり、前記第3の簡略ショートリンクの有効期間が満了になっていない場合、前記第3の簡略ショートリンクに対応する前記第3のロングリンクURLへジャンプするステップと(810);を備える、
請求項11に記載の方法。
【請求項13】
対応する第3のロングリンクURLを前記第2のデータベーステーブル識別子に対応する前記第2のデータベースから取得し、前記第3のロングリンクURLへジャンプするステップは:
前記第3の簡略ショートリンクが見つからない場合、又は、見つかった前記第3の簡略ショートリンクの前記有効期間が満了になっている場合、特定のURLへジャンプするステップ(820)を更に備える、
請求項12に記載の方法。
【請求項14】
前記第2のデータベーステーブル識別子に対応する第2のデータベースが前記サーバの前記アクセス圏内にあるか否かを特定する前記ステップの後に:
前記第2のデータベースが前記サーバの前記アクセス圏内にないと特定された場合、前記第1のデータベースにアクセスできるサーバが前記アクセス要求に基づき前記第2のデータベースから、対応する前記第3のショートリンクURLを取得し、前記第3のロングリンクURLへジャンプするよう、前記アクセス要求を前記第1のデータベースにアクセスできる前記サーバへ転送するステップ(830)を更に備える、
請求項10に記載の方法。
【請求項15】
請求項1乃至請求項14のいずれか1項に記載の方法を実行するように構成された複数のユニットを備える、
ョートリンク処理する装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、インターネット技術の分野に関し、特に、ショートリンクの処理方法、装置、及びサーバに関する。
【背景技術】
【0002】
ショートリンクは、文字スペースを節約するために、長いURL(Uniform Resource Locator:統一資源位置指定子)をプログラム計算等により変換して得られる短縮URL文字列である。
【0003】
従来の技術では、多数のショートリンクの申請及びアクセスをサポートするために、通常、複数のサーバが必要である。それに加え、より多くの記録(レコード)をサポートするために、簡略化されたショートリンク(以後、簡略ショートリンク)の文字数を増やす必要がある。
【0004】
しかしながら、同一の長いURLに対して複数のショートリンクが申請された場合、複数のショートリンクの記録が生成され、それにより記憶スペースが空費される。単一のデータベースに複数のショートリンクの記録を記憶し、簡略ショートリンクの文字数を増やし、より大きなサイズの記憶容量をサポートする場合、単一のデータベースへのアクセス効率が制限されてしまう。
【発明の概要】
【0005】
本開示は、ショートリンクの処理方法、装置、及びサーバを提供し、従来の技術における、以下の課題、即ち、同一の長いURLに対して複数のショートリンク申請がなされた場合、複数のショートリンクの記録が生成されることになり、記憶スペースが空費されること、そして、単一のデータベースに複数のショートリンクの記録を記憶し、簡略ショートリンクの文字数を増加させ、より大きなサイズの記憶容量をサポートする場合、単一のデータベースへのアクセス効率が制限されてしまうことを解決する。
【0006】
本開示の実施の第1の態様によれば、ショートリンクの処理方法が提供され、
前記方法は分散型サーバクラスタにおける任意のサーバに適用され:リクエスタから、第1のロングリンクURLを含むショートリンク申請要求を受信するステップと;前記第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を計算するステップと;前記第1のデータベーステーブル識別子に対応する第1のデータベースが、前記サーバのアクセス圏内にあるか否かを特定するステップと;前記第1のデータベースが前記サーバの前記アクセス圏内にあると特定された場合、対応する第1のショートリンクURLを前記第1のデータベースから取得し、前記第1のショートリンクURLを前記リクエスタへ送信するステップと;を含む。
【0007】
本開示の実施の第2の態様によれば、ショートリンクの処理装置が提供され、
前記装置は:リクエスタから、第1のロングリンクURLを含むショートリンク申請要求を受信するよう構成された第1の受信ユニットと;前記第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を取得するよう構成された第1の計算ユニットと;前記第1のデータベーステーブル識別子に対応する第1のデータベースが、前記サーバのアクセス圏内にあるか否かを特定するよう構成された第1の特定ユニットと;前記第1のデータベースが前記サーバの前記アクセス圏内にあると特定された場合、対応する第1のショートリンクURLを前記第1のデータベースから取得し、前記第1のショートリンクURLを前記リクエスタへ送信するよう構成された第1の処理ユニットと;を含む。
【0008】
本開示の実施の第3の態様によれば、サーバが提供され、
前記サーバは:プロセッサと、前記プロセッサが実行可能な命令を記憶するよう構成されたメモリとを含み、
前記プロセッサは:リクエスタから、第1のロングリンクURLを含むショートリンク申請要求を受信するように構成され;前記第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を計算するように構成され;前記第1のデータベーステーブル識別子に対応する第1のデータベースが、前記サーバのアクセス圏内にあるか否かを特定するように構成され;前記第1のデータベースが前記サーバの前記アクセス圏内にあると特定された場合、対応する第1のショートリンクURLを前記第1のデータベースから取得し、前記第1のショートリンクURLを前記リクエスタへ送信するように構成される。
【0009】
本開示の実施によれば、リクエスタからのショートリンク申請要求は受信され、申請要求には第1のロングリンクURLが含まれる。対応する第1のデータベーステーブル識別子が第1のロングリンクURLに基づき計算され、これを用いて第1のデータベーステーブル識別子に対応する第1のデータベースがサーバのアクセス圏内にあるか否かが特定される。第1のデータベースがサーバのアクセス圏内にあると特定された場合、対応する第1のショートリンクURLを第1のデータベースから取得し、第1のショートリンクURLをリクエスタへ送信する。このように、データベース/テーブルシャーディング(database and table sharding)モードにおいて、サーバが、ロングリンクURLを、対応するショートリンクURLに変換する。また、対応するショートリンクURLは一意であり且つ短いので、ショートリンクの記憶スペースの水平スケーラビリティが向上し、ショートリンクの処理速度が更に向上する。
【図面の簡単な説明】
【0010】
図1図1は、本開示の実施に係るショートリンク処理のシナリオを例示する概略図である。
【0011】
図2図2は、本開示に係るショートリンク処理方法の実施を例示するフローチャートである。
【0012】
図3図3は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。
【0013】
図4図4は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。
【0014】
図5図5は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。
【0015】
図6図6は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。
【0016】
図7図7は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。
【0017】
図8図8は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。
【0018】
図9図9は、本開示に係るショートリンク処理装置が配置されるデバイスのハードウェアの構成図である。
【0019】
図10図10は、本開示に係るショートリンク処理装置の実施を例示するブロック図である。
【0020】
図11図11は、本開示に係るショートリンク処理装置の他の実施を例示するブロック図である。
【0021】
図12図12は、本開示に係るショートリンク処理装置の他の実施を例示するブロック図である。
【発明を実施するための形態】
【0022】
ここで、実施の例について詳細に述べる。添付図面は実施の例を示す。以下の記載が添付図面に関するものである場合、別段の定めがない限り、複数の異なる添付図面における同一の符号は、同一の要素又は類似の要素を表す。以下の実施の例で記載される実施は、本開示と合致する全ての実施を表すものではない。むしろ、それらは、付帯する特許請求の範囲において詳述され、本開示の幾つかの態様と合致する、装置及び方法の例に過ぎない。
【0023】
本開示において用いられる用語は実施を例示するために用いられるに過ぎず、本開示を限定することを意図するものではない。本開示及び付帯の特許請求の範囲において用いられる、単数形の「或る(a)」、「当該(said)」、「前記(the)」との表現は、文脈おいて別段の定めが明記されない限り、複数形も含むことを意図している。また、ここで用いられる表現「及び/又は」は、記載され、関連付けられた1以上の用語の、任意の又は全ての可能な組み合わせを示し包含することも理解すべきである。
【0024】
なお、本開示において、種々の情報を記載するにあたって、表現「第1の」、「第2の」、「第3の」が用いられ得るものの、当該情報がこれらの表現によって限定されるものではないことを理解すべきである。これらの表現は、同じ種類の情報を区別するために用いられるに過ぎない。例えば、本開示の範囲から逸脱せずに、第1の情報を第2の情報と称してもよいし、同様に、第2の情報を第1の情報と称してもよい。文脈によって、例えば、ここで用いられる「〜の場合」の語は、「〜の最中」又は「〜の際」又は「〜と特定したことに応じて」として解釈してもよい。
【0025】
図1を参照するに、図1は、本開示の実施に係るショートリンク処理のシナリオを例示する概略図である。
【0026】
図1のシナリオは、リクエスタと分散型サーバクラスタとを含む。図1のシナリオのリクエスタは、ショートリンク申請要求又はショートリンクアクセス要求を開始してよい。また、リクエスタは、システムのエンドデバイス、一般ユーザの端末デバイス、パートナーのデバイス等であってよい。一般ユーザの端末デバイスとして、種々のスマートフォン、タブレット型コンピュータ、パソコン(PC)等を挙げることができる。
【0027】
図1におけるシナリオの分散型サーバクラスタの任意のサーバは、リクエスタからショートリンク申請要求又はショートリンクアクセス要求を受信できる。
【0028】
本開示では、データベース/テーブルシャーディングモードの分散型サーバ転送機構が用いられる。その詳細を以下に述べる。
【0029】
各サーバによりアクセス可能な、限定されたデータベースのみが、サーバに割り当てられる。サーバにより受信されたショートリンク申請要求又はショートリンクアクセス要求が、サーバによりアクセス可能なデータベースの圏内にない場合、サーバは、申請要求又はアクセス要求を、対応するデータベースにアクセスできるサーバへ転送する。各サーバには、1以上のデータベースが割り当てられてよい。
【0030】
リクエスタは、分散型サーバクラスタにおける任意のサーバへショートリンク申請要求を送信してよい。申請要求は長いURLを含み、長いURLは、変換対象である実際のURLであってよい。申請要求の目的は、ショートリンクサーバに、対応するショートリンクURLを返信させることである。
【0031】
また、リクエスタは、分散型サーバクラスタにおける任意のサーバへ、ショートリンクアクセス要求を送信できる。アクセス要求は、ショートリンクURLを含む。アクセス要求の目的は、サーバに、ショートリンクURLに基づき、対応する長いURLを取得させ、長いURLへジャンプさせることである。例えば、ショートリンクURLは、https://m.alipay.com/t9Yv3MZである。
【0032】
サーバがショートリンクURLに基づき取得する、対応する長いURLは、https://cmspromo.alipay.com/finance/fullyear.htmであってよい。説明を容易にするため、本開示のこの実施では「長いURL」を「ロングリンクURL」と定義する。この定義は本開示の以下の実施全てに適用される。以下、本開示の実施を詳細に述べる。
【0033】
図2を参照するに、図2は、本開示に係るショートリンク処理方法の実施を例示するフローチャートである。この方法は、分散型サーバクラスタにおける任意のサーバに適用でき、以下の各ステップを含む。
【0034】
ステップ210:リクエスタから、第1のロングリンクURLを含むショートリンク申請要求を受信する。
【0035】
本開示のこの実施において、サーバは、リクエスタからショートリンク申請要求を受信できる。申請要求の目的は、リクエスタに、第1のロングリンクURLのショートリンクURLを取得させることである。また、サーバが受信する申請要求は、複数のショートリンク申請要求パラメータを含んでよい。
【0036】
例えば、表1に示す通り、ショートリンク申請要求は、変換対象である実際のURL(第1のロングリンクURL)と、ショートリンクの有効期間とを含む。
【0037】
ステップ220:第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を計算する。
【0038】
本開示のこの実施において、データベーステーブル識別子を用いて、データベース内の同一の論理テーブルに対応する異なる物理テーブルの一意の識別子を表す。例えば、00はショートリンクテーブル00を表し、01はショートリンクテーブル01を表す、等である。
【0039】
データベーステーブル識別子は、00から99まで(100個のサブテーブルを表す、計100個の数字)の範囲内の数字、又は、1以上の文字であってもよく、ショートリンクテーブルのサブテーブル名を表すのに用いられる。
【0040】
サーバは、所定のアルゴリズムを用いて第1のロングリンクURLに対し対応する計算を行い、対応する第1のデータベーステーブル識別子を取得してよい。例えば、所定のアルゴリズムは、メッセージダイジェストアルゴリズム5(MD5)である。また、申請要求が、第1のロングリンクURLに対応する第1のデータベーステーブル識別子を含む場合、サーバは、第1のデータベーステーブル識別子を申請要求から直接取得してよい。
【0041】
ステップ230:第1のデータベーステーブル識別子に対応する第1のデータベースが、サーバのアクセス圏内にあるか否かを特定する。
【0042】
例えば、第1のデータベーステーブル識別子が67である場合、対応する第1のデータベースはデータベース67である。この場合、申請要求を受信するサーバがデータベース67にアクセスできるか否かを特定する必要がある。サーバは、データベース67にアクセスできる場合、対応するショートリンクURLをデータベース67から直接取得してよい。或いは、サーバがデータベース67にアクセスできない場合、サーバは、受信した申請要求をデータベース67にアクセスできるサーバへ転送する必要がある。そして、データベース67にアクセスする当該サーバが、申請要求の処理を担う。
【0043】
ステップ240:第1のデータベースがサーバのアクセス圏内にあると特定された場合、対応する第1のショートリンクURLを第1のデータベースから取得し、第1のショートリンクURLをリクエスタへ送信する。
【0044】
第1のデータベースは、ロングリンクURL、対応するダイジェスト値、対応する有効期間、対応する簡略ショートリンク、対応するショートリンクURL等、同じショートリンクの複数のデータを含んでよい。或いは、第1のデータベースは、対応する簡略ショートリンクのみを含んでもよく、対応する簡略ショートリンクは対応するショートリンクURLを形成する。これにより、データベースの記憶スペースを節約できる。
【0045】
また、第1のデータベーステーブル識別子に対応する第1のデータベースが、サーバのアクセス圏内にあるか否かを特定するステップ230の実行後、この方法は更に、第1のデータベースがサーバのアクセス圏内にないと特定された場合、第1のデータベースにアクセスできるサーバが申請要求に基づき第1のデータベースから対応する第1のショートリンクURLを取得し、第1のショートリンクURLをリクエスタへ送信するよう、受信した申請要求を第1のデータベースにアクセスできるサーバへ転送するステップを含む。
【0046】
上記の実施から分かることは、ショートリンク申請要求がリクエスタから受信され、申請要求は第1のロングリンクURLを含むことである。対応する第1のデータベーステーブル識別子が第1のロングリンクURLに基づき計算され、それを用いて第1のデータベーステーブル識別子に対応する第1のデータベースがサーバのアクセス圏内にあるか否かが特定される。第1のデータベースがサーバのアクセス圏内にあると特定された場合、対応する第1のショートリンクURLを第1のデータベースから取得し、第1のショートリンクURLをリクエスタへ送信する。このように、データベース/テーブルシャーディングモードにおいて、サーバはロングリンクURLを、対応するショートリンクURLへ変換する。また、対応するショートリンクURLは一意であり且つ短いので、ショートリンクの記憶スペースの水平スケーラビリティが向上し、ショートリンクの処理速度が更に向上する。
【0047】
図3を参照するに、図3は本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。この方法は、分散型サーバクラスタにおける任意のサーバに適用でき、図2に示す方法に基づく。第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を計算するステップ220を実行するとき、この方法は以下の各ステップを含んでよい。
【0048】
ステップ310:第1のロングリンクURLに基づき、対応する第1のダイジェスト値を計算する。
【0049】
本開示のこの実施において、第1のロングリンクURLに対応する第1のダイジェスト値を、異なるアルゴリズムを用いて計算してよい。本開示は、以下の2つのアルゴリズムを含む。ただし、これらに限定されるものではない。
【0050】
(1)メッセージダイジェストアルゴリズムを用いて第1のロングリンクURLに対応する第1のダイジェスト値を計算し、第1のダイジェスト値はメッセージダイジェストアルゴリズムのダイジェスト値である。メッセージダイジェストアルゴリズムはMD5であってよい。
【0051】
例えば、第1のロングリンクURLはhttps://cmspromo.alipay.com/finance/fullyear.htmである。MD5アルゴリズムに基づき計算されるMD5ダイジェスト値は、429C92076FC4DF64F20EBE0D392B9F27である。
【0052】
(2)セキュアハッシュアルゴリズムを用いて第1のロングリンクURLに対応する第1のダイジェスト値を計算し、第1のダイジェスト値はセキュアハッシュアルゴリズムのダイジェスト値である。セキュアハッシュアルゴリズムは、セキュアハッシュアルゴリズム1(SHA1)であってよい。
【0053】
ステップ320:第1のダイジェスト値に基づき対応する第1のデータベーステーブル識別子を計算する。
【0054】
本開示のこの実施において、第1のダイジェスト値に対応する第1のデータベーステーブル識別子を、異なるアルゴリズムを用いて計算してよい。アルゴリズムを選択する基準は、計算した第1のデータベーステーブル識別子が均一に分配できることである。例えば、第1のダイジェスト値はMD5ダイジェスト値であり、429C92076FC4DF64F20EBE0D392B9F27である。
【0055】
先ず、MD5ダイジェスト値の各文字のASCII(情報交換用米国標準コード)コードを取得する。次いで、取得したASCIIコードの合計を計算する。最終的に、数式(1)に示す通り、計算した合計値を用いて100に対し剰余(REM)演算を行い、剰余を求める。この剰余が第1のデータベーステーブル識別子IDとなる。
【0056】
ID =[ASCII(´4´)+ ASCII(´2´)+・・・+ ASCII(´7´)]%100=67...(1)
【0057】
67は、計算された第1のデータベーステーブル識別子であり、第1のデータベーステーブル識別子は数字として表現される。さらに、第1のデータベーステーブル識別子は任意の1以上の文字として表現され、ショートリンクテーブルのサブテーブル名を表すのに用いられる。
【0058】
上記の実施から、メッセージダイジェストアルゴリズム又はセキュアハッシュアルゴリズムを用いて第1のロングリンクURLに対応する第1のダイジェスト値と、対応する第1のデータベーステーブル識別子とが計算されることにより、同一のロングリンクURLに対応する複数のショートリンク記録が一意であり且つ有効であること、及びショートリンク作成の繰り返しが回避されることが保証され、よって、ショートリンクの処理速度が向上する。
【0059】
図4を参照するに、図4は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。この方法は、分散型サーバクラスタにおける任意のサーバに適用でき、図3に示す方法に基づく。対応する第1のショートリンクURLを第1のデータベースから取得し、第1のショートリンクURLをリクエスタへ送信するステップ240を実行するとき、この方法は以下の各ステップを含んでよい。
【0060】
ステップ400:第1のダイジェスト値に対応する第1の簡略ショートリンクについて第1のデータベースを探索する。
【0061】
本開示のこの実施において、簡略ショートリンクは、ショーリンクにおける、予め合意した数の文字から成るランダム文字列である。
【0062】
ステップ410:第1の簡略ショートリンクが見つかったか否かを特定し、第1の簡略ショートリンクが見つかり、見つかった第1の簡略ショートリンクに対応する第2のロングリンクURLが申請要求に含まれる第1のロングリンクURLと同一である場合、ステップ420を実行する、又は、第1の簡略ショートリンクが見つからなかった場合、若しくは見つかった第1の簡略ショートリンクに対応する第2のロングリンクURLが申請要求に含まれる第1のロングリンクURLと異なる場合、ステップ440を実行する。
【0063】
本開示のこの実施において、第1のデータベースは、ロングリンクURL、対応するダイジェスト値、対応する有効期間、対応する簡略ショートリンク等、同一のショートリンクの複数のデータを含んでよい。
【0064】
ステップ420:見つかった第1の簡略ショートリンクに基づき第1のショートリンクURLを形成し、第1のショートリンクURLをリクエスタへ送信する。
【0065】
ステップ430:申請要求がショートリンクの有効期間を更に含む場合、第1の簡略ショートリンクの有効期間を申請要求に含まれる有効期間で以って更新し、手続きを終了する。
【0066】
ステップ420及びステップ430を行う順序は本開示において限定されておらず、これらのステップは同時に実行されてもよいし、順次に実行されてもよい。
【0067】
ステップ440:第1のデータベーステーブル識別子に基づき、対応する第2の簡略ショートリンクを生成する。第2の簡略ショートリンクは、一定数の文字、例えば7文字、から成る簡略識別子である。
【0068】
本開示のこの実施において、異なるルールを用いて対応する第2の簡略ショートリンクを生成してよい。生成のルールは、簡略識別子の最初の2文字が、第1のデータベーステーブル識別子と、予め合意したアルゴリズムとに基づき計算され、簡略識別子の後続の5文字、Y、v、3、M、及びZはランダムな文字であってよい。
【0069】
例えば、第1のデータベーステーブル識別子が67であるとする。ASCII(´X´)%100を用いて得られる結果が6であり、ASCII(´Y´)%100を用いて得られる結果が7であるアルゴリズムによれば、Xの値は[8|j|t|B|L|V]のうちのランダムな文字であってよく、Yの値は[9|a|k|u|C|M|W]のうちのランダムな文字であってよい。よって、t及び9が簡略識別子の最初の2文字としてランダムに選択されてよく、Y、v、3、M及びZが簡略識別子の後続の5文字としてランダムに選択されてよい。これにより得られる第2の簡略ショートリンクは、t9Yv3MZとなる。
【0070】
また、他のアルゴリズムを用いて簡略識別子の最初の2文字を計算してもよい。アルゴリズムを選択する基準は、文字を均一に分配でき、計算された文字に基づき第1のデータベーステーブル識別子を推測できることである。もちろん、第1のデータベーステーブル識別子は必ずしも簡略識別子の最初の2文字によって表される必要はなく、任意の位置における、予め合意した簡略識別子の文字であってよい。
【0071】
ステップ450:第2の簡略ショートリンクは用いられていないと特定された場合、第2の簡略ショートリンクに基づき第2のショートリンクURLを形成し、第2のショートリンクURLをリクエスタへ送信する。
【0072】
本開示のこの実施において、第1のデータベーステーブル識別子に基づき、対応する第2の簡略ショートリンクを生成した後、生成した第2の簡略ショートリンクが用いられているか否かを更に特定する必要がある。第2の簡略ショートリンクが用いられている場合、新たに生成された第2の簡略ショートリンクが用いられていなくなるまで、第2の簡略ショートリンクを生成する必要がある。
【0073】
ステップ460:申請要求がショートリンクの有効期間を更に含む場合、申請要求に含まれる有効期間を第2の簡略ショートリンクの有効期間として設定する。
【0074】
ステップ470:第2の簡略ショートリンクと、対応する第1のロングリンクURLと、対応する第1のダイジェスト値と、対応する有効期間とを結合し、これらを第1のデータベースに記憶する。
【0075】
ステップ450、ステップ460、及びステップ470を行う順序は本開示において限定されておらず、これらのステップは同時に実行されてもよいし、順次に実行されてもよい。
【0076】
上記の実施から分かることは、第1のダイジェスト値に対応する第1の簡略ショートリンクについて第1のデータベースが探索される際、探索を通じて取得した異なる結果に基づき異なる処理方法を用いることができる。特に、第1の簡略ショートリンクが見つからなかった場合、又は見つかった第1の簡略ショートリンクに対応する第2のロングリンクURLが申請要求に含まれる第1のロングリンクURLと異なる場合、第1のデータベーステーブル識別子に基づき、対応する第2の簡略ショートリンクを更に生成する必要がある。生成された第2の簡略ショートリンクは一定数の文字を有する。このように、同じロングリンクURLに対応する複数のショートリンクの記録が一意であり且つ有効であることが保証されている状態で、サーバは可能な限り短い簡略ショートリンクを生成でき、よって、ショートリンクを送信するためのコンテンツのスペースを節約できる。
【0077】
図5を参照するに、図5は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。この方法は、分散型サーバクラスタにおける任意のサーバに適用でき、図2乃至図4のうち任意の1つに示される方法に基づく。この方法は、以下の各ステップを更に含んでよい。
【0078】
ステップ510:第1のデータベース内の各ショートリンクの有効期間を検出する。
【0079】
本開示の本実施において、第1のデータベース内の各ショートリンクの有効期間を周期的に検出してよい。
【0080】
ステップ520:有効期間が満了になったとき、対応する記憶情報を削除する。
【0081】
例えば、サーバは、第1のデータベース内の各ショートリンクの有効期間を5分毎に検出し、満了ショートリンクの記録を直接削除することにより、記憶スペースの効果的な利用を高め、ショートリンクの記憶スペースの良好な拡張を保つ。
【0082】
上記の実施から分かることは、第1のデータベース内の各ショートリンクの有効期間が検出され、有効期間が満了となったとき、対応する記憶情報は削除され、それにより、記憶スペースの効果的な利用が高まり、ショートリンクの記憶スペースの良好な拡張を保つということである。
【0083】
図6を参照するに、図6は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。この方法は、分散型サーバクラスタにおける任意のサーバに適用でき、図2乃至図4のうち任意の1つに示される方法に基づく。この方法は以下の各ステップを更に含んでよい。
【0084】
ステップ610:リクエスタから、第3のショートリンクURLを含むショートリンクアクセス要求を受信する。
【0085】
本開示のこの実施において、サーバは、リクエスタからショートリンクアクセス要求を受信してよい。アクセス要求の目的は、リクエスタに、第3のショートリンクURLに対応するロングリンクURLを取得させることである。
【0086】
ステップ620:第3のショートリンクURLに基づき、対応する第2のデータベーステーブル識別子を計算する。
【0087】
本開示のこの実施において、サーバは、所定のアルゴリズムを用いて第3のショートリンクURLに対し対応する計算を行い、対応する第2のデータベーステーブル識別子を取得してよい。また、第3のショートリンクURLが、対応する第2のデータベーステーブル識別子を含む場合、サーバは、第2のデータベーステーブル識別子を第3のショートリンクURLから直接取得してよい。
【0088】
ステップ630:第2のデータベーステーブル識別子に対応する第2のデータベースがサーバのアクセス圏内にあるか否かを特定する。
【0089】
ステップ640:第2のデータベースがサーバのアクセス圏内にあると特定された場合、対応する第3のロングリンクURLを第2のデータベースから取得し、第3のロングリンクURLへジャンプする。
【0090】
本開示のこの実施において、第2のデータベースは、ロングリンクURL、対応するダイジェスト値、対応する有効期間、対応する簡略ショートリンク、対応するショートリンクURL等、同じショートリンクの複数のデータを含んでよい。或いは、第2のデータベースは、対応する簡略ショートリンクのみを含んでもよく、対応する簡略ショートリンクは対応するショートリンクURLを形成する。これにより、データベースの記憶スペースを節約できる。
【0091】
上記の実施から分かることは、ショートリンクアクセス要求はリクエスタから受信され、アクセス要求は第3のショートリンクURLを含む。対応する第2のデータベーステーブル識別子は第3のショートリンクURLに基づき計算され、それを用いて第2のデータベーステーブル識別子に対応する第2のデータベースがサーバのアクセス圏内にあるか否かが特定される。第2のデータベースがサーバのアクセス圏内にあると特定された場合、対応する第3のロングリンクURLを第2のデータベースから取得し、第3のロングリンクURLへジャンプする。このように、データベース/テーブルシャーディングモードにおいて、サーバはショートリンクURLから対応するロングリンクURLへジャンプする。また、対応するロングリンクURLが一意であるため、ショートリンク処理の精度が向上する。
【0092】
図7を参照するに、図7は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。この方法は、分散型サーバクラスタにおける任意のサーバに適用でき、図6に示される方法に基づく。第3のショートリンクURLに基づき対応する第2のデータベーステーブル識別子を計算するステップ620を実行するとき、この方法は以下の各ステップを含んでよい。
【0093】
ステップ710:第3のショートリンクURLから第3の簡略ショートリンクを抽出する。
【0094】
例えば、第3のショートリンクURLはhttps://m.alipay.com/t9Yv3MZであり、t9Yv3MZが第3の簡略ショートリンクである。
【0095】
ステップ720:第3の簡略ショートリンクに基づき、対応する第2のデータベーステーブル識別子を生成する。
【0096】
本開示のこの実施において、簡略ショートリンクに基づき、対応するデータベーステーブル識別子を生成するアルゴリズムは、データベーステーブル識別子に基づき、対応する簡略ショートリンクを生成するアルゴリズムに対応する。
【0097】
例えば、第3の簡略ショートリンクはt9Yv3MZであり、t及び9は予め合意したアルゴリズムに基づき計算され、簡略識別子の後続の5文字、Y、v、3、M及びZはランダムな文字である。サーバは、t及び9に基づき、対応する第2のデータベーステーブル識別子を計算できる。すなわち、t及び9のASCIIコードを用いて10に対し剰余(REM)演算を行い、対応する第2のデータベーステーブル識別子76を取得する。
【0098】
上記の実施から分かることは、第3の簡略ショートリンクが第3のショートリンクURLから抽出され、対応する第2のデータベーステーブル識別子が第3の簡略ショートリンクに基づき生成されることである。また、簡略ショートリンクに基づき、対応するデータベーステーブル識別子を生成するアルゴリズムは、データベーステーブル識別子に基づき、対応する簡略ショートリンクを生成するアルゴリズムに対応する。よって、簡略ショートリンクとデータベーステーブル識別子との間の一意性が保証される。
【0099】
図8を参照するに、図8は、本開示に係るショートリンク処理方法の他の実施を例示するフローチャートである。この方法は、分散型サーバクラスタにおける任意のサーバに適用でき、図6に示される方法に基づく。対応する第3のロングリンクURLを第2のデータベースから取得し、第3のロングリンクURLへジャンプするステップ640を実行するとき、この方法は以下の各ステップを含んでよい。
【0100】
ステップ800:第3の簡略ショートリンクについて第2のデータベースを探索する。
【0101】
ステップ810:第3の簡略ショートリンクが見つかったか否か、及び、第3の簡略ショートリンクの有効期間が満了していないか否かを特定し、第3の簡略ショートリンクが見つり、第3の簡略ショートリンクの有効期間が満了していない場合、ステップ820を実行する、又は、第3の簡略ショートリンクが見つからなかった場合、若しくは第3の簡略ショートリンクの有効期間が満了となっている場合、ステップ830を実行する。
【0102】
ステップ820:第3の簡略ショートリンクに対応する第3のロングリンクURLへジャンプする。
【0103】
例えば、第3のロングリンクURLはhttps://cmspromo.alipay.com/finance/fullyear.htmである。
【0104】
ステップ830:特定のURLへジャンプする。
【0105】
本開示のこの実施において、特定のURLは、一般的なデフォルトのURLであってよい。例えば、一般的なデフォルトのURLはhttps://d.alipay.comである。
【0106】
上記の実施から分かることは、第3の簡略ショートリンクについて第2のデータベースを探索する際、異なるURLが探索を通じて取得した異なる結果に基づくURLへジャンプでき、それにより、リクエスタからの異なるアクセス要求を満たし、ショートリンクの処理速度が向上することである。
【0107】
本開示のショートリンク処理方法の実施に対応して、本開示は、ショートリンク処理装置の実施を更に提供する。
【0108】
ショートリンク処理装置の実施は、分散型サーバクラスタにおける任意のサーバに適用できる。この装置は、ソフトウェア若しくはハードウェア、又はその両方を用いて実施できる。ソフトウェアによる実装を例にとる。論理的な装置としてのこの装置は、この装置が配置されるデバイスのプロセッサにより、不揮発性メモリ内の対応するコンピュータプログラムの命令をメモリに読み込むことによって、形成される。ハードウェアの観点から、図9に示されるように、図9は、ショートリンク処理装置が配置されるデバイスのハードウェアの構成図である。この実施の装置が配置されるデバイスは、デバイスの実際の機能に基づき、図9に示されるプロセッサ、メモリ、ネットワークインターフェース、及び不揮発性メモリに加え、他のハードウェアを含んでよい。例えば、端末について、装置は、カメラ、タッチスクリーン、通信コンポーネント等を含んでよく、サーバについて、装置は、パケットの処理を担う転送チップ等を含んでよい。
【0109】
図10を参照するに、図10は、本開示に係るショートリンク処理装置の実施を例示するブロック図である。ショートリンク処理装置はショートリンク処理システムに適用でき、上記実施におけるショートリンク処理方法を行うよう構成できる。この装置は、第1の受信ユニット101と、第1の計算ユニット102と、第1の特定ユニット103と、第1の処理ユニット104とを含む。
【0110】
第1の受信ユニット101は、リクエスタから、第1のロングリンクURLを含むショートリンク申請要求を受信するよう構成される。
【0111】
第1の計算ユニット102は、第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を取得するよう構成される。
【0112】
第1の特定ユニット103は、第1のデータベーステーブル識別子に対応する第1のデータベースが、システムのアクセス圏内にあるか否かを特定するよう構成される。
【0113】
第1の処理ユニット104は、第1のデータベースがシステムのアクセス圏内にあると特定された場合、対応する第1のショートリンクURLを第1のデータベースから取得し、第1のショートリンクURLをリクエスタへ送信するよう構成される。
【0114】
任意の実施において、第1の計算ユニット102は、第1の計算サブユニットと第2の計算サブユニット(図10では不図示)とを含んでよい。
【0115】
第1の計算サブユニットは、第1のロングリンクURLに基づき、対応する第1のダイジェスト値を計算するよう構成される。
【0116】
第2の計算サブユニットは、第1のダイジェスト値に基づき、対応する第1のデータベーステーブル識別子を計算するよう構成される。
【0117】
また、第1の計算サブユニットは、メッセージダイジェストアルゴリズムを用いて、第1のロングリンクURLに対応する第1のダイジェスト値であって、メッセージダイジェストアルゴリズムのダイジェスト値である第1のダイジェスト値を計算する、又は、セキュアハッシュアルゴリズムを用いて、第1のロングリンクURLに対応する第1のダイジェスト値であって、セキュアハッシュアルゴリズムのダイジェスト値である第1のダイジェスト値を計算するよう具体的に構成される。
【0118】
また、第1のデータベーステーブル識別子は数字又は文字として表現される。
【0119】
他の任意の実施において、第1の処理ユニット103は、第1の探索サブユニットと、第1の処理サブユニット(図10では不図示)とを含んでよい。
【0120】
第1の探索サブユニットは、第1のダイジェスト値に対応する第1の簡略ショートリンクについて第1のデータベースを探索するよう構成される。
【0121】
第1の処理サブユニットは、第1の簡略ショートリンクが見つかり、見つかった第1の簡略ショートリンクに対応する第2のロングリンクURLが申請要求に含まれる第1のロングリンクURLと同一である場合、見つかった第1の簡略ショートリンクに基づき第1のショートリンクURLを形成し、第1のショートリンクURLをリクエスタへ送信するよう構成される。
【0122】
他の任意の実施において、申請要求はショートリンクの有効期間を更に含み、第1の処理ユニット103は更新サブユニット(図10では不図示)を更に含んでよい。
【0123】
更新サブユニットは、第1の簡略ショートリンクの有効期間を申請要求に含まれる有効期間で以って更新するよう構成される。
【0124】
他の任意の実施において、第1の処理ユニット103は生成サブユニットと第2の処理サブユニット(図10では不図示)とを更に含んでよい。
【0125】
生成サブユニットは、第1の簡略ショートリンクが見つからなかった場合、又は、見つかった第1の簡略ショートリンクに対応する第2のロングリンクURLが申請要求に含まれる第1のロングリンクURLと異なる場合、第1のデータベーステーブル識別子に基づき、対応する第2の簡略ショートリンクを生成するよう構成される。
【0126】
第2の処理サブユニットは、第2の簡略ショートリンクは用いられていないと特定された場合、第2の簡略ショートリンクに基づき第2のショートリンクURLを形成し、第2のショートリンクURLをリクエスタへ送信するよう構成される。
【0127】
他の任意の実施において、申請要求はショートリンクの有効期間を更に含み、第1の処理ユニット103は設定サブユニット(図10では不図示)を更に含んでよい。
【0128】
設定サブユニットは、申請要求に含まれる有効期間を第2の簡略ショートリンクの有効期間として設定するよう構成される。
【0129】
他の任意の実施において、第1の処理ユニット103は記憶サブユニット(図10では不図示)を更に含んでよい。
【0130】
記憶サブユニットは、第2の簡略ショートリンクと、対応する第1のロングリンクURLと、対応する第1のダイジェスト値と、対応する有効期間とを結合し、第1のデータベースに記憶するよう構成される。
【0131】
他の任意の実施において、ショートリンク処理装置は第2の処理ユニット(図10では不図示)を更に含む。
【0132】
第2の処理ユニットは、第1のデータベースがシステムのアクセス圏内にないと特定された場合、第1のデータベースにアクセスできるサーバが申請要求に基づき第1のデータベースから対応する第1のショートリンクURLを取得し、第1のショートリンクURLをリクエスタへ送信するよう、申請要求を第1のデータベースにアクセスできるサーバへ転送するよう構成される。
【0133】
図11を参照するに、図11は、本開示に係るショートリンク処理装置の他の実施を例示するブロック図である。ショートリンク処理装置はショートリンク処理システムに適用でき、図10に示した装置に基づく。装置は、検出ユニット111と削除ユニット112とを更に含んでよい。
【0134】
検出ユニット111は、第1のデータベース内の各ショートリンクの有効期間を検出するよう構成される。
【0135】
削除ユニット112は、有効期間が満期となった際、対応する記憶情報を削除するよう構成される。
【0136】
図12を参照するに、図12は、本開示に係るショートリンク処理装置の他の実施を例示するブロック図である。ショートリンク処理装置はショートリンク処理システムに適用でき、図10に示した装置に基づいてよい。この装置は、第2の受信ユニット121と、第2の計算ユニット122と、第2の特定ユニット123と、第2の処理ユニット124とを更に含んでよい。
【0137】
第2の受信ユニット121は、リクエスタから、第3のショートリンクURLを含むショートリンクアクセス要求を受信するよう構成される。
【0138】
第2の計算ユニット122は、第3のショートリンクURLに基づき、対応する第2のデータベーステーブル識別子を計算するよう構成される。
【0139】
第2の特定ユニット123は、第2のデータベーステーブル識別子に対応する第2のデータベースがシステムのアクセス圏内にあるか否かを特定するよう構成される。
【0140】
第3の処理ユニット124が、第2のデータベースがシステムのアクセス圏内にあると特定された場合、対応する第3のロングリンクURLを第2のデータベースから取得し、第3のロングリンクURLへジャンプするよう構成される。
【0141】
任意の実施において、第2の計算ユニット122は抽出サブユニットと生成サブユニット(図12では不図示)とを含んでよい。
【0142】
抽出サブユニットは、第3のショートリンクURLから第3の簡略ショートリンクを抽出するよう構成される。
【0143】
生成サブユニットは、第3の簡略ショートリンクに基づき、対応する第2のデータベーステーブル識別子を生成するよう構成される。
【0144】
他の任意の実施において、第2の処理ユニット123は探索サブユニットと第3の処理サブユニット(図12では不図示)とを含んでよい。
【0145】
探索サブユニットは、第3の簡略ショートリンクについて第2のデータベースを探索するよう構成される。
【0146】
第3の処理サブユニットは、第3の簡略ショートリンクが見つかり、第3の簡略ショートリンクの有効期間が満了となっていない場合、第3の簡略ショートリンクに対応する第3のロングリンクURLへジャンプするよう構成される。
【0147】
他の任意の実施において、第3の処理ユニット123は第4の処理サブユニット(図12では不図示)を更に含んでよい。
【0148】
第4の処理サブユニットは、第3の簡略ショートリンクが見つからない場合、又は、第3の簡略ショートリンクの有効期間が満了となっている場合、特定のURLへジャンプするよう構成される。
【0149】
他の任意の実施において、ショートリンク処理装置は第4の処理ユニット(図12では不図示)を更に含む。
【0150】
第4の処理ユニットは、第2のデータベースがシステムのアクセス圏内にないと特定された場合、第1のデータベースにアクセスできるサーバがアクセス要求に基づき第2のデータベースから対応する第3のショートリンクURLを取得し、第3のロングリンクURLへジャンプするよう、アクセス要求を、第1のデータベースにアクセスできるサーバへ転送するよう構成される。
【0151】
装置における各ユニットの機能及び役割の詳細な実施工程については、前記方法の対応するステップの実施工程を参照されたい。ここでは詳細を述べない。
【0152】
装置の実施は基本的に方法の実施に対応する。よって、関連する部分については、方法の実施の関連する記載を参照されたい。記載された装置の実施は一例に過ぎない。別体部分として記載された各ユニットは物理的に別体であってもそうでなくてもよい。また、ユニットとして提示された部分は物理的なユニットであってもなくてもよく、一箇所に配置されていてもよいし、複数のネットワークユニットに分散されていてもよい。一部又は全てのモジュールは、本開示の解決の目的を実現するため、実際の要件に基づき選択してよい。当業者であれば、創造的な努力を伴わずとも本開示の実施を理解し実施できるであろう。
【0153】
本開示の実施はサーバを更に提供し、サーバは、プロセッサと、プロセッサが実行可能な命令を記憶するよう構成されたメモリとを含む。
【0154】
プロセッサは、リクエスタから、第1のロングリンクURLを含むショートリンク申請要求を受信し、第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を計算し、第1のデータベーステーブル識別子に対応する第1のデータベースが、サーバのアクセス圏内にあるか否かを特定し、第1のデータベースがサーバのアクセス圏内にあると特定された場合、対応する第1のショートリンクURLを第1のデータベースから取得し、第1のショートリンクURLをリクエスタへ送信するよう構成される。
【0155】
上記の実施から分かることは、ショートリンク申請要求はリクエスタから受信され、申請要求は第1のロングリンクURLを含むことである。対応する第1のデータベーステーブル識別子が第1のロングリンクURLに基づき計算され、これを用いて第1のデータベーステーブル識別子に対応する第1のデータベースがサーバのアクセス圏内にあるか否かが特定される。第1のデータベースがサーバのアクセス圏内にあると特定された場合、対応する第1のショートリンクURLを第1のデータベースから取得し、第1のショートリンクURLをリクエスタへ送信する。このように、データベース/テーブルシャーディングモードにおいて,サーバはロングリンクURLを対応するショートリンクURLへ変換する。また、対応するショートリンクURLは一意であり且つ短いので、ショートリンクの記憶スペースの水平スケーラビリティが向上し、ショートリンクの処理速度が更に向上する。
【0156】
当業者であれば、本明細書を検討し、本開示を実施した後に、本開示の別の実施形態を容易に理解することができる。本開示は、本開示の任意の変形、機能、または適応的な変更を包含するように意図されている。これらの変形、機能、または適応的変更は、本開示の一般原則に従うものであり、本開示では開示されていない技術分野における共通知識または一般的に使用される技術的手段を含む。明細書および実施例は単なる例として考えられており、本開示の実際の範囲および精神は、添付の特許請求の範囲によって記載される。
【0157】
本開示は、上記に記載され、添付の図面に示されている精密な構造に限定されず、本開示の範囲から逸脱することなく修正および変更を行うことができることを理解されたい。本開示の範囲は、添付の特許請求の範囲によってのみ限定される。
[第1の局面]
分散型サーバクラスタにおける任意のサーバに適用されるショートリンク処理方法であって:
リクエスタから、第1のロングリンクURLを含むショートリンク申請要求を受信するステップと;
前記第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を計算するステップと;
前記第1のデータベーステーブル識別子に対応する第1のデータベースが、前記サーバのアクセス圏内にあるか否かを特定するステップと;
前記第1のデータベースが前記サーバの前記アクセス圏内にあると特定された場合、対応する第1のショートリンクURLを前記第1のデータベースから取得し、前記第1のショートリンクURLを前記リクエスタへ送信するステップと;を備える、
分散型サーバクラスタにおける任意のサーバに適用されるショートリンク処理方法。
[第2の局面]
前記第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を計算する前記ステップは:
前記第1のロングリンクURLに基づき、対応する第1のダイジェスト値を計算するステップと;
前記第1のダイジェスト値に基づき、対応する前記第1のデータベーステーブル識別子を計算するステップと;を備える、
第1の局面に記載の方法。
[第3の局面]
前記第1のロングリンクURLに基づき、対応する第1のダイジェスト値を計算する前記ステップは:
メッセージダイジェストアルゴリズムを用いて前記第1のロングリンクURLに対応する前記第1のダイジェスト値を計算するステップであって、前記第1のダイジェスト値は前記メッセージダイジェストアルゴリズムのダイジェスト値である、計算するステップ;又は
セキュアハッシュアルゴリズムを用いて、前記第1のロングリンクURLに対応する前記第1のダイジェスト値を計算するステップであって、前記第1のダイジェスト値は前記セキュアハッシュアルゴリズムのダイジェスト値である、計算するステップ;を備える、
第2の局面に記載の方法。
[第4の局面]
前記第1のデータベーステーブル識別子は、数字又は文字として表現される、
第2の局面に記載の方法。
[第5の局面]
対応する第1のショートリンクURLを前記第1のデータベースから取得し、前記第1のショートリンクURLを前記リクエスタへ送信する前記ステップは:
前記第1のダイジェスト値に対応する第1の簡略ショートリンクについて前記第1のデータベースを探索するステップと;
前記第1の簡略ショートリンクが見つかり、見つかった前記第1の簡略ショートリンクに対応する第2のロングリンクURLが、前記申請要求が含む前記第1のロングリンクURLと同一である場合、見つかった前記第1の簡略ショートリンクに基づき前記第1のショートリンクURLを形成し、前記第1のショートリンクURLを前記リクエスタへ送信するステップと;を備える、
第2の局面に記載の方法。
[第6の局面]
前記申請要求が前記ショートリンクの有効期間を更に含み、
前記第1の簡略ショートリンクの有効期間を、前記申請要求が含む前記有効期間で以って更新するステップを更に備える、
第5の局面に記載の方法。
[第7の局面]
対応する第1のショートリンクURLを前記第1のデータベースから取得し、前記第1のショートリンクURLを前記リクエスタへ送信する前記ステップは:
前記第1の簡略ショートリンクが見つからない場合、又は、見つかった前記第1の簡略ショートリンクに対応する前記第2のロングリンクURLが、前記申請要求が含む前記第1のロングリンクURLと異なる場合、前記第1のデータベーステーブル識別子に基づき、対応する第2の簡略ショートリンクを生成するステップと;
前記第2の簡略ショートリンクは用いられていないと特定された場合、前記第2の簡略ショートリンクに基づき第2のショートリンクURLを形成し、前記第2のショートリンクURLを前記リクエスタへ送信するステップと;を備える、
第5の局面に記載の方法。
[第8の局面]
前記申請要求が前記ショートリンクの有効期間を更に含み、
前記申請要求が含む前記有効期間を前記第2の簡略ショートリンクの有効期間として設定するステップを更に備える、
第7の局面に記載の方法。
[第9の局面]
前記第2の簡略ショートリンクと、対応する前記第1のロングリンクURLと、対応する前記第1のダイジェスト値と、対応する有効期間とを結合し、前記第1のデータベースに記憶するステップを更に備える、
第7の局面に記載の方法。
[第10の局面]
前記第1のデータベーステーブル識別子に対応する第1のデータベースが、前記サーバのアクセス圏内にあるか否かを特定する前記ステップの後:
前記第1のデータベースが前記サーバの前記アクセス圏内にないと特定された場合、前記第1のデータベースにアクセスできるサーバが前記申請要求に基づき前記第1のデータベースから対応する前記第1のショートリンクURLを取得し、前記第1のショートリンクURLを前記リクエスタへ送信するよう、前記申請要求を前記第1のデータベースにアクセスできる前記サーバへ転送するステップを更に備える、
第1の局面に記載の方法。
[第11の局面]
前記第1のデータベース内の各ショートリンクの有効期間を検出するステップと;
前記有効期間が満了となったとき、対応する記憶情報を削除するステップと;を更に備える、
第1の局面乃至第10の局面のいずれか1項に記載の方法。
[第12の局面]
前記リクエスタから、第3のショートリンクURLを含むショートリンクアクセス要求を受信するステップと;
前記第3のショートリンクURLに基づき、対応する第2のデータベーステーブル識別子を計算するステップと;
前記第2のデータベーステーブル識別子に対応する第2のデータベースが前記サーバの前記アクセス圏内にあるか否かを特定するステップと;
前記第2のデータベースが前記サーバの前記アクセス圏内にあると特定された場合、対応する第3のロングリンクURLを前記第2のデータベースから取得し、前記第3のロングリンクURLへジャンプするステップと;を更に備える、
第1の局面乃至第10の局面のいずれか1項に記載の方法。
[第13の局面]
前記第3のショートリンクURLに基づき、対応する第2のデータベーステーブル識別子を計算する前記ステップは:
前記第3のショートリンクURLから第3の簡略ショートリンクを抽出するステップと;
前記第3の簡略ショートリンクに基づき、対応する前記第2のデータベーステーブル識別子を生成するステップと;を備える、
第12の局面に記載の方法。
[第14の局面]
対応する第3のロングリンクURLを前記第2のデータベースから取得し、前記第3のロングリンクURLへジャンプする前記ステップは:
前記第3の簡略ショートリンクについて前記第2のデータベースを探索するステップと;
前記第3の簡略ショートリンクが見つかり、前記第3の簡略ショートリンクの有効期間が満了になっていない場合、前記第3の簡略ショートリンクに対応する前記第3のロングリンクURLへジャンプするステップと;を備える、
第13の局面に記載の方法。
[第15の局面]
対応する第3のロングリンクURLを前記第2のデータベーステーブル識別子に対応する前記第2のデータベースから取得し、前記第3のロングリンクURLへジャンプする前記ステップは:
前記第3の簡略ショートリンクが見つからない場合、又は、見つかった前記第3の簡略ショートリンクの前記有効期間が満了になっている場合、特定のURLへジャンプするステップを更に備える、
第14の局面に記載の方法。
[第16の局面]
前記第2のデータベーステーブル識別子に対応する第2のデータベースが前記サーバの前記アクセス圏内にあるか否かを特定する前記ステップの後に:
前記第2のデータベースが前記サーバの前記アクセス圏内にないと特定された場合、前記第1のデータベースにアクセスできるサーバが前記アクセス要求に基づき前記第2のデータベースから、対応する前記第3のショートリンクURLを取得し、前記第3のロングリンクURLへジャンプするよう、前記アクセス要求を前記第1のデータベースにアクセスできる前記サーバへ転送するステップを更に備える、
第12の局面に記載の方法。
[第17の局面]
分散型サーバクラスタにおける任意のサーバに適用されるショートリンク処理装置であって:
リクエスタから、第1のロングリンクURLを含むショートリンク申請要求を受信するよう構成された第1の受信ユニットと;
前記第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を取得するよう構成された第1の計算ユニットと;
前記第1のデータベーステーブル識別子に対応する第1のデータベースが、前記サーバのアクセス圏内にあるか否かを特定するよう構成された第1の特定ユニットと;
前記第1のデータベースが前記サーバの前記アクセス圏内にあると特定された場合、対応する第1のショートリンクURLを前記第1のデータベースから取得し、前記第1のショートリンクURLを前記リクエスタへ送信するよう構成された第1の処理ユニットと;を備える、
分散型サーバクラスタにおける任意のサーバに適用されるショートリンク処理装置。
[第18の局面]
前記第1の計算ユニットは:
前記第1のロングリンクURLに基づき、対応する第1のダイジェスト値を計算するよう構成された第1の計算サブユニットと;
前記第1のダイジェスト値に基づき、対応する前記第1のデータベーステーブル識別子を計算するよう構成された第2の計算サブユニットと;を備える、
第17の局面に記載の装置。
[第19の局面]
前記第1の計算サブユニットは、メッセージダイジェストアルゴリズムを用いて、前記第1のロングリンクURLに対応する前記第1のダイジェスト値であって、前記メッセージダイジェストアルゴリズムのダイジェスト値である前記第1のダイジェスト値を計算する、又は、セキュアハッシュアルゴリズムを用いて、前記第1のロングリンクURLに対応する前記第1のダイジェスト値であって、前記セキュアハッシュアルゴリズムのダイジェスト値である前記第1のダイジェスト値を計算するよう構成された、
第18の局面に記載の装置。
[第20の局面]
前記第1のデータベーステーブル識別子が数字又は文字として表現される、
第18の局面に記載の装置。
[第21の局面]
前記第1の処理ユニットは:
前記第1のダイジェスト値に対応する第1の簡略ショートリンクについて前記第1のデータベースを探索するよう構成された第1の探索サブユニットと;
前記第1の簡略ショートリンクが見つかり、見つかった前記第1の簡略ショートリンクに対応する第2のロングリンクURLが、前記申請要求が含む前記第1のロングリンクURLと同一である場合、見つかった前記第1の簡略ショートリンクに基づき前記第1のショートリンクURLを形成し、前記第1のショートリンクURLを前記リクエスタへ送信するよう構成された第1の処理サブユニットと;を備える、
第18の局面に記載の装置。
[第22の局面]
前記申請要求が前記ショートリンクの有効期間を更に含み、
前記第1の処理ユニットは、前記第1の簡略ショートリンクの有効期間を前記申請要求が含む前記有効期間で以って更新するよう構成された更新サブユニットを更に備える、
第21の局面に記載の装置。
[第23の局面]
前記第1の処理ユニットは:
前記第1の簡略ショートリンクが見つからない場合、又は、見つかった前記第1の簡略ショートリンクに対応する前記第2のロングリンクURLが、前記申請要求が含む前記第1のロングリンクURLと異なる場合、前記第1のデータベーステーブル識別子に基づき、対応する第2の簡略ショートリンクを生成するよう構成された生成サブユニットと;
前記第2の簡略ショートリンクは用いられていないと特定された場合、前記第2の簡略ショートリンクに基づき第2のショートリンクURLを形成し、前記第2のショートリンクURLを前記リクエスタへ送信するよう構成された第2の処理サブユニットと;を更に備える、
第21の局面に記載の装置。
[第24の局面]
前記申請要求が前記ショートリンクの有効期間を更に備え、
前記第1の処理ユニットが、前記申請要求が備える前記有効期間を前記第2の簡略ショートリンクの有効期間として設定するよう構成された設定サブユニットを更に備える、
第23の局面に記載の装置。
[第25の局面]
前記第1の処理ユニットが、前記第2の簡略ショートリンクと、対応する前記第1のロングリンクURLと、対応する前記第1のダイジェスト値と、対応する有効期間とを結合し、前記第1のデータベースに記憶するよう構成された記憶サブユニットを更に備える、
第23の局面に記載の装置。
[第26の局面]
前記第1のデータベースが前記サーバの前記アクセス圏内にないと特定された場合、前記第1のデータベースにアクセスできるサーバが前記申請要求に基づき前記第1のデータベースから対応する前記第1のショートリンクURLを取得し、前記第1のショートリンクURLを前記リクエスタへ送信するよう、前記申請要求を前記第1のデータベースにアクセスできる前記サーバへ転送するよう構成された第2の処理ユニットを更に備える、
第17の局面に記載の装置。
[第27の局面]
前記第1のデータベース内の各ショートリンクの有効期間を検出するよう構成された検出ユニットと;
前記有効期間が満了となったとき、対応する記憶情報を削除するよう構成された削除ユニットと;を更に備える、
第17の局面乃至第26の局面のいずれか1項に記載の装置。
[第28の局面]
前記リクエスタから、第3のショートリンクURLを備えるショートリンクアクセス要求を受信するよう構成された第2の受信ユニットと;
前記第3のショートリンクURLに基づき、対応する第2のデータベーステーブル識別子を計算するよう構成された第2の計算ユニットと;
前記第2のデータベーステーブル識別子に対応する第2のデータベースが前記サーバの前記アクセス圏内にあるか否かを特定するよう構成された第2の特定ユニットと;
前記第2のデータベースが前記サーバの前記アクセス圏内にあると特定された場合、対応する第3のロングリンクURLを前記第2のデータベースから取得し、前記第3のロングリンクURLへジャンプするよう構成された第3の処理ユニットと;を更に備える、
第17の局面乃至第26の局面のいずれか1項に記載の装置。
[第29の局面]
前記第2の計算ユニットは:
前記第3のショートリンクURLから第3の簡略ショートリンクを抽出するよう構成された抽出サブユニットと;
前記第3の簡略ショートリンクに基づき対応する前記第2のデータベーステーブル識別子を生成するよう構成された生成サブユニットと;を備える、
第28の局面に記載の装置。
[第30の局面]
前記第3の処理ユニットは:
前記第3の簡略ショートリンクについて前記第2のデータベースを探索するよう構成された探索サブユニットと;
前記第3の簡略ショートリンクが見つかり、前記第3の簡略ショートリンクの有効期間が満了になっていない場合、前記第3の簡略ショートリンクに対応する前記第3のロングリンクURLへジャンプするよう構成された第3の処理サブユニットと;を備える、
第29の局面に記載の装置。
[第31の局面]
前記第3の処理ユニットは、前記第3の簡略ショートリンクが見つからない場合、又は、見つかった前記第3の簡略ショートリンクの前記有効期間が満期となっている場合、特定のURLへジャンプするよう構成された第4の処理サブユニットを更に備える、
第30の局面に記載の装置。
[第32の局面]
前記第2のデータベースが前記サーバの前記アクセス圏内にないと特定された場合、前記第1のデータベースにアクセスできるサーバが前記アクセス要求に基づき前記第2のデータベースから対応する前記第3のショートリンクURLを取得し、前記第3のロングリンクURLへジャンプするよう、前記アクセス要求を前記第1のデータベースにアクセスできる前記サーバへ転送するよう構成された第4の処理ユニットを更に備える、
第28の局面に記載の装置。
[第33の局面]
分散型サーバクラスタにおける任意のサーバであって:
プロセッサと、前記プロセッサが実行可能な命令を記憶するよう構成されたメモリとを備え、
前記プロセッサは:
リクエスタから、第1のロングリンクURLを備えるショートリンク申請要求を受信するように構成され;
前記第1のロングリンクURLに基づき、対応する第1のデータベーステーブル識別子を計算するように構成され;
前記第1のデータベーステーブル識別子に対応する第1のデータベースが、前記サーバのアクセス圏内にあるか否かを特定するように構成され;
前記第1のデータベースが前記サーバの前記アクセス圏内にあると特定された場合、対応する第1のショートリンクURLを前記第1のデータベースから取得し、前記第1のショートリンクURLを前記リクエスタへ送信するように構成された;
分散型サーバクラスタにおける任意のサーバ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12