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

JP7523733B2 - ウェブコンテンツの自動高速表示制御方法 - Google Patents

ウェブコンテンツの自動高速表示制御方法 Download PDF

Info

Publication number
JP7523733B2
JP7523733B2 JP2022524779A JP2022524779A JP7523733B2 JP 7523733 B2 JP7523733 B2 JP 7523733B2 JP 2022524779 A JP2022524779 A JP 2022524779A JP 2022524779 A JP2022524779 A JP 2022524779A JP 7523733 B2 JP7523733 B2 JP 7523733B2
Authority
JP
Japan
Prior art keywords
user terminal
data
web content
processing unit
original data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022524779A
Other languages
English (en)
Other versions
JPWO2021234882A1 (ja
JPWO2021234882A5 (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.)
PRIME STRATEGY CO., LTD.
Original Assignee
PRIME STRATEGY CO., 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 PRIME STRATEGY CO., LTD. filed Critical PRIME STRATEGY CO., LTD.
Publication of JPWO2021234882A1 publication Critical patent/JPWO2021234882A1/ja
Publication of JPWO2021234882A5 publication Critical patent/JPWO2021234882A5/ja
Application granted granted Critical
Publication of JP7523733B2 publication Critical patent/JP7523733B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Description

特許法第30条第2項適用 令和1年12月16日、株式会社バイク王&カンパニーに電子メールにて発明の説明資料の配布(その他の配付先に電子メールにて説明資料の配布273件)
特許法第30条第2項適用 令和2年1月22日、東京都千代田区大手町1-5-1 大手町ファーストスクエア イーストタワー16Fのプライム・ストラテジー株式会社主催のセミナーにて発明の説明資料の配布(その他のセミナーにおいて発明の説明資料の配布14件)
特許法第30条第2項適用 令和1年12月19日、URL https://www.wexal.jp/how-to-useのウェブサイトにて発明の説明資料の公開(その他のウェブサイトにて発明の説明資料の公開43件)
特許法第30条第2項適用 2019年12月12日、URL https://aws.amazon.com/marketplace/pp/Prime-Strategy-New-York-Inc-KUSANAGI-for-AWS-Premi/B082CXKGPFのウェブサイトにて、発明の説明資料の公開(その他のウェブサイト等にて発明の説明資料の公開、配布343件)
特許法第30条第2項適用 令和2年12月19日、URL https://cloud-direct.jp.fujitsu.com/pages/productinfo/2184のウェブサイトにて発明の説明資料の公開
特許法第30条第2項適用 令和1年12月12日、Amazon Web Sevices,Incに発明の実行環境の提供(その他の提供先に発明の実行環境の提供160件)
特許法第30条第2項適用 令和2年12月27日、株式会社LITALICOに営業資料として発明の説明資料の配布
本発明は、ウェブコンテンツの自動高速表示制御方法に関する。
パーソナルコンピュータ(PC)、スマートフォン、タブレットなどの利用者端末を使って、ユーザは知りたい情報を好きな時に検索し、検索結果として利用者端末に表示されたウェブコンテンツをユーザは閲覧することができる。
ユーザは検索結果が利用者端末に速く表示されることを通常希望する。このため、ユーザにウェブコンテンツを提供する速度を向上させることは重要である。
従来、フィーチャーフォン等の携帯情報端末にウェブコンテンツを表示させるための通信規格、携帯情報端末のデータ処理規格等は、通信事業者毎に定める規格に従っていた。
このため同じ通信事業者間で同じ規格のフィーチャーフォン等の携帯情報端末を使う場合であれば、同じウェブコンテンツを問題なく表示できる。この一方で、例えば異なる通信事業者間で通信が行われる場合、ユーザが通信データの規格に合わないフィーチャーフォン等の携帯情報端末を使用する場合には、ユーザの携帯情報端末に正常にウェブコンテンツが表示されない問題が生じていた。
この問題に対応するために、異なる通信事業者間の通信データを、ユーザが使用する携帯情報端末の通信データの規格に合わせて変換する、いわゆる通信データ変換技術が進展してきた。この通信データ変換技術を用いて、表示の互換性を実現できる。
一方、ユーザにウェブコンテンツを高速に提供する方法として、アカマイ社が提供するAKAMAI IMAGE MANAGERの技術が知られている。アカマイ社の技術によれば、ウェブサイトに表示される個々の画像について、ブラウザ、利用者端末に最適なサイズ、品質、ファイル形式の組み合わせを自動的に提供できるとされる(非特許文献1)。
またウェブサーバに保存されているデータをユーザの利用者端末に表示させる方法としてCDN(CONTENT DELIVERY NETWORK)と呼ばれる方法が知られている(特許文献1)。
ウェブサイトの運営者は、CDNを提供する企業と契約して、企業が提供するCDNの方法を使うことができる。この場合、管理者が公開するウェブサイトのドメインは、CDNを提供する企業のドメインではなく、ウェブサイトの運営者が指定するドメインを使うことができる。これにより、ウェブサイトの運営者は自己のドメインを維持したまま、ユーザに対して強力なCDNの方法を提供することができる。
CDNの場合は、複数のウェブサーバ群が準備され、それぞれのウェブサーバに同じデータが保存されている。そしてユーザがCDNの方法を使うと、ユーザの利用者端末に最も近いウェブサーバからデータがユーザの利用者端末に送信される。
一つのウェブサーバに対して一度に多数の利用者端末からのアクセスがあれば、ウェブサーバの処理対応の負荷が大きくなる。ウェブサーバの単位時間当たりの処理能力には限度があるから、一定以上のアクセスが一つのウェブサーバに集中すれば、そのウェブサーバの処理時間は遅延する傾向がある。
CDNの方法によれば、一つのウェブサーバに対して一度に多数の利用者端末からのアクセスが集中した場合でも、複数のウェブサーバ群同士で形成された通信網を通じて余力のあるウェブサーバを活用できるから、ウェブサーバの処理時間の遅延を防止して、ユーザの利用者端末からの多くのデータ要求に高速に対応できる。
一方、ウェブコンテンツを最新の状態に保つ技術として、タスクラナーと呼ばれる方法が知られている(非特許文献2)。
タスクラナーの一つである、GULPと呼ばれる方法を用いた場合、ウェブコンテンツを表示するためのオリジナルデータ常時監視さている。そしてオリジナルデータに改変があったことが検知されると、自動的にオリジナルデータが改変され、ウェブコンテンツが自動的に即時更新される。
特開2015-072694号公報
アカマイ社のホームページ(https://www.akamai.com/us/en/solutions/performance/image-management.jsp) GULPのホームページ(https://gulpjs.com/)
ところでウェブコンテンツがユーザの利用者端末に高速表示されるためには、ユーザの利用者端末に高速表示されるように、ウェブコンテンツを構成するオリジナルデータが調整されていることが必要である。
この様な調整としては、例えば、ユーザの利用者端末の高速表示を妨げる要素が前記オリジナルデータに存在するなら、このオリジナルデータに含まれる要素を削除する、オリジナルデータに含まれる要素処理を後回しにする等の方法、
ユーザの利用者端末に転送されるオリジナルデータの容量削減、圧縮等による、前記オリジナルデータの転送時間の削減等の方法等が挙げられる。
これらの調整は、ウェブコンテンツを提供するウェブサイトの管理者により通常実施される。そしてこれらの調整により、ウェブコンテンツはユーザの利用者端末に高速表示される。
しかしウェブコンテンツがユーザの利用者端末に高速表示されるのはこれらの調整が完了した時点である。一方でウェブコンテンツがユーザの利用者端末に表示される速度は、上記の調整が完了した後に、経時的に遅くなる傾向がある。
通常ウェブコンテンツは日々更新されていくが、更新されたウェブコンテンツの中には、先に調整が完了しているウェブコンテンツの部分以外に、新たなウェブコンテンツの部分が追加されて調整が完了していないウェブコンテンツの部分が増加するからである。
また上記に説明したオリジナルデータに含まれる要素を削除する、オリジナルデータに含まれる要素の処理を後回しにする、オリジナルデータの容量を削減し、圧縮する等の方法についても解決が必要な問題が含まれる。単にこれらの方法が実施されるだけでは、ウェブコンテンツがユーザの利用者端末毎に正常に表示されるとは限らない。利用者端末上でウェブコンテンツを表示するのに必要な要素を削除等した場合には、正しく利用者端末にウェブコンテンツが表示されないことも起こりうる。
またオリジナルデータの表示に要する時間よりも調整後のデータの表示に要する時間が短くなるとは限らない。
一般的に、オリジナルデータ毎にウェブコンテンツの高速表示に必要とされる、改善すべき点が異なる。また利用者端末の種類毎にウェブコンテンツの高速表示に必要とされる、改善すべき点が異なる。
オリジナルデータに対して一律に同じ調整を行ったのではウェブコンテンツを利用者端末毎に表示する際に、不具合が生じる可能性がある。
このため、それぞれのオリジナルデータの内容を個別に把握した上で、それぞれのウェブコンテンツに適した対策を、利用者端末の種類に応じて実施する必要がある。
この結果、ウェブコンテンツを提供するウェブサイトの管理者は、ウェブコンテンツの高速表示のために多くの工程処理を常時要求されることが多い。
そしてこれらの調整は、一回の処理に数日以上の時間を要することもある。
先に説明した従来の通信データ変換技術の場合、単位時間当たりのデータ転送容量を増大できればウェブコンテンツの表示の高速化が達成される。
しかし単位時間当たりのデータ転送容量を増大した場合でも上記の調整に多くの労力と時間がかかる問題は残ったままである。
同様にCDNを用いたデータ処理時間の遅延防止の方法を用いた場合でも、上記の調整に多くの労力と時間がかかる問題が残る。
また先に説明したタスクラナーの技術を用いた場合でも、ウェブコンテンツを表示するためのオリジナルデータに改変があった場合に、その改変内容を一律にウェブコンテンツに反映することはできる。しかしタスクラナーの技術ではオリジナルデータ毎に要求される改善点、利用者端末の種類毎に要求される改善点等、それぞれの個別の問題に応じて対応することが難しい。
本発明の目的は、サーバに対してユーザの利用者端末からリクエストが送信されてから、調整前のウェブコンテンツがユーザの利用者端末上で入力受付可能になるまでに、ユーザの利用者端末毎に、調整前のウェブコンテンツを表示するためのオリジナルデータの処理が完了し、前記時間よりも短い時間内に、調整後のウェブコンテンツをそれぞれの利用者端末に表示することにある。
ユーザが利用者端末により、ウェブコンテンツを閲覧する際には、(1)ネットワークを通じて通信可能な一または二以上のサーバに対して利用者端末からリクエストが送信されるステップと、(2)利用者端末にウェブコンテンツを表示するためのオリジナルデータがサーバから利用者端末に送信されるステップと、(3)前記ウェブコンテンツが利用者端末で入力受付可能になるステップが実施される。
先に説明した課題を解決するため、本発明者が鋭意検討した結果、前記(1)から(3)のステップを実施する際に、ウェブコンテンツを表示するためのオリジナルデータを利用者端末にそのまま送信するのではなく、サーバに設置されたリクエスト処理ユニットに利用者端末からのリクエストの送信があった場合、アプリケーション処理ユニットに保存されたオリジナルデータが、人工知能ユニットが立案した戦略案に基づいてデータ取得・処理ユニットで処理された後に、処理済みデータが利用者端末に送信されるステップを含むウェブコンテンツの自動高速表示制御方法が、本発明の目的に適うことを見出し、本発明を完成するに至った。
すなわち、本発明は、
[1]ネットワークを通じて通信可能な一または二以上のサーバに対して利用者端末からリクエストが送信されてから、利用者端末にウェブコンテンツを表示するためのオリジナルデータがサーバから利用者端末に送信されて、ウェブコンテンツが利用者端末で入力受付可能になるまでに、
前記サーバに設置されたリクエスト処理ユニットに対して、利用者端末から送信されたリクエストが、アプリケーション処理ユニットと人工知能ユニットが受信するステップと、
アプリケーション処理ユニットが、ウェブコンテンツを表示するためのオリジナルデータをデータ取得・処理ユニットに対して送信するステップと、
人工知能ユニットが、ウェブコンテンツを利用者端末毎に表示する戦略案を立案するステップと、
データ取得・処理ユニットが、利用者端末にウェブコンテンツを表示するためのオリジナルデータを受信するステップと、
前記戦略案に基づいて、データ取得・処理ユニットによりオリジナルデータが加工されて、複数の加工済みデータが生成するステップと、
前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースから、利用者端末毎にウェブコンテンツを表示するための処理済みデータが選択されるステップと、
前記利用者端末毎にウェブコンテンツを表示するための処理済みデータが、利用者端末毎に送信されて、利用者端末毎にウェブコンテンツが表示されるステップと、
が実施され、
前記サーバが、一または二以上の物理マシン、一または二以上の仮想マシン、ならびに、一または二以上のコンテナからなる群より選ばれる少なくとも一つの実行環境からなり、
前記戦略案を立案するステップが、
前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースのうち、
利用者端末毎に、利用者端末にウェブコンテンツをより速く表示するための処理済みデータが共通して有する属性を学習するステップと、
利用者端末毎に、前記属性に基づいて、前記オリジナルデータをデータ取得・処理ユニットで処理するステップと、
を含むことを特徴とする、ウェブコンテンツの自動高速表示制御方法を提供するものである。
また、本発明の一つは、
[2]リソースが、オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのデータを含み、
処理済みデータが、オブジェクト置換済みプログラムを含み、
リソース参照部分を有するオリジナルデータが、リソース参照部分をプログラムのオブジェクトに置換されて、オブジェクト置換済みプログラムが、生成するステップと、
前記オブジェクトが、識別情報と共にリソース毎に対応付けられるステップと、
利用者端末毎に、利用者端末に搭載されたブラウザでオブジェクト置換済みプログラムが実行されると、
オブジェクト置換済みプログラムに含まれるオブジェクトが識別情報によりリソースを特定し、そのリソースが実行されるステップと、
を含む、上記[1]に記載のウェブコンテンツの自動高速表示制御方法を提供するものである。
また、本発明の一つは、
[3]利用者端末毎に、前記属性に基づいて、前記オリジナルデータをデータ取得・処理ユニットで処理するステップが、
前記処理済みデータに含まれるプログラムのうち、実行させるプログラムを選択するステップ、
前記処理済みデータに含まれるプログラムのうち、優先して実行させるプログラムを選択するステップ、
前記処理済みデータに含まれるプログラムのうち、遅延して実行させるプログラムを選択するステップ、
前記処理済みデータに含まれるプログラムのうち、実行させるプログラムの実行順序を選択するステップ、
前記処理済みデータに含まれるプログラムのうち、実行させるプログラムの実行タイミングを選択するステップ、
および
前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースから、利用者端末毎にウェブコンテンツを表示するための処理済みデータを選択するステップ、
からなる群より選ばれる少なくとも一つのステップを含む、上記[1]または[2]に記載のウェブコンテンツの自動高速表示制御方法を提供するものである。
また、本発明の一つは、
[4]オリジナルデータが、プログラムデータおよびバイナリデータの少なくとも一つを含み、
プログラムデータが、マークアップ言語、プログラミング言語、スタイルシート、スクリプト言語からなる群より選ばれる少なくとも一つを有するコードを含み、
バイナリデータが、画像ファイル、音ファイルおよび動画ファイルの少なくとも一つを含み、
リソースが、オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つを含み、
加工済みデータが生成されるステップが、
(1)オリジナルデータに含まれる、マークアップ言語、プログラミング言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つを有するコードから、利用者端末の表示環境ごとに不要部分が削除されるステップと、
(2)オリジナルデータに含まれる、マークアップ言語、プログラミング言語、スタイシートおよびスクリプト言語からなる群より選ばれる少なくとも一つを有するコードから、利用者端末の表示環境ごとに必要部分が圧縮されるステップと、
(3)オリジナルデータに含まれる、マークアップ言語、プログラミング言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つを有するコードから、利用者端末の表示環境ごとに実行順序が変更されるステップと、
(4)オリジナルデータに含まれる、マークアップ言語、プログラミング言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つを有するコードから、利用者端末の表示環境ごとに実行タイミングが変更されるステップと、
(5)オリジナルデータに含まれる、バイナリデータから、単位面積当たりの表示画素数、単位時間当たりの録画録音密度、容量および保存形式からなる群より選ばれる少なくとも一つが変換されるステップと、
の(1)~(5)からなる群より選ばれる少なくとも一つのステップを含み、
利用者端末毎にウェブコンテンツが表示されるステップが、
リクエストが利用者端末からネットワークを通じてリクエスト処理ユニットに送信されるステップと、
リクエスト処理ユニットに受信されたリクエストから、利用者端末毎の表示環境が特定されるステップと、
利用者端末のブラウザからリクエストがリクエスト処理ユニットに送信された後に、アプリケーション処理ユニットおよびデータ取得・処理ユニットの少なくとも一つからリソースが利用者端末毎に送信され、利用者端末毎のブラウザに表示されるステップと、
を含む、上記[1]~[3]のいずれかに記載のウェブコンテンツの自動高速表示制御方法を提供するものである。
また、本発明の一つは、
[5]オリジナルデータが加工されて、複数の加工済みデータが生成するステップが、
前記データ取得・処理ユニットが通信可能な記憶領域に保存された利用者端末に関する機種情報データに基づいて、利用者端末毎に複数の加工済みデータが生成されるステップを含み、
前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースから、利用者端末毎にウェブコンテンツを表示するための処理済みデータが選択されるステップが、
利用者端末毎に、機種情報データに基づいて利用者端末の表示画面の表示環境を特定するステップと、
利用者端末毎に、ウェブコンテンツのうち、利用者端末の表示画面の表示環境に合わせて最初に表示されるウェブコンテンツの部分を特定するステップと、
前記利用者端末毎にウェブコンテンツを表示するための処理済みデータが利用者端末毎に送信されて、利用者端末毎にウェブコンテンツが表示されるステップが、ウェブコンテンツのうち、利用者端末の表示画面の表示環境に合わせて最初に表示されるウェブコンテンツに対応する処理済みデータを利用者端末に優先して送信するステップと、
を含む、上記[1]~[4]のいずれかに記載のウェブコンテンツの自動高速表示制御方法を提供するものである。
また、本発明の一つは、
[6]ウェブコンテンツが利用者端末毎に表示されるステップが、
ウェブコンテンツのうち、利用者端末の画面に最初に表示される部分に対応するデータが利用者端末に送信されるステップと、
利用者端末に利用者端末の画面に最初に表示される部分に対応するウェブコンテンツの部分が表示されてから一定時間が経過したことを示すイベント情報、および、ユーザが利用者端末を操作して利用者端末に対して追加の情報を表示させる行動を起こしたことを示すイベント情報の少なくとも一つのイベント情報が、サーバおよびブラウザの少なくとも一つにより検出されるステップと、
前記イベント情報をアプリケーション処理ユニット、人工知能ユニット、データ取得・処理ユニットおよび利用者端末に搭載されたブラウザの少なくとも一つが検出した後に、ウェブコンテンツの残りの一部または全部の部分を表示するためのリソースが、アプリケーション処理ユニットおよびデータ取得・処理ユニットの少なくとも一つから、ネットワークを通じて利用者端末に送信されるステップと、
を含む、上記[1]~[5]のいずれかに記載のウェブコンテンツの自動高速表示制御方法を提供するものである。
また、本発明の一つは、
[7]ウェブコンテンツが利用者端末毎に表示されるステップが、
ウェブコンテンツのうち、利用者端末の画面に最初に表示される部分を表示するためのリソースが利用者端末に送信されるステップと、
ウェブコンテンツのうち、利用者端末の画面に最初に表示される部分が入力受付可能になるまでの時間が伸縮するステップと、
を含む、上記[6]に記載のウェブコンテンツの自動高速表示制御方法を提供するものである。
また、本発明の一つは、
[8]ウェブコンテンツを閲覧するユーザのユーザ体験に基づいて、ユーザとウェブコンテンツとのエンゲージメントのスコアが算出されるステップと、
前記エンゲージメントのスコアに基づいて、利用者端末毎に、ウェブコンテンツのうち、利用者端末の画面に最初に表示される部分が入力受付可能になるまでの時間が伸縮するステップと、
を含む、上記[7]に記載のウェブコンテンツの自動高速表示制御方法を提供するものである。
また、本発明は、
[9]上記[1]~[8]のいずれかに記載のウェブコンテンツの自動高速表示制御方法を実施するためのプログラムであって、
ネットワークを通じて通信可能な一または二以上のサーバに対して利用者端末からリクエストが送信されてから、利用者端末にウェブコンテンツを表示するためのオリジナルデータがサーバから利用者端末に送信されて、ウェブコンテンツが利用者端末で入力受付可能になるまでに、
前記サーバに設置されたリクエスト処理ユニットに対して、利用者端末から送信されたリクエストが、アプリケーション処理ユニットと人工知能ユニットが受信する手段と、
アプリケーション処理ユニットが、ウェブコンテンツを表示するためのオリジナルデータをデータ取得・処理ユニットに対して送信する手段と、
人工知能ユニットが、ウェブコンテンツを利用者端末毎に表示する戦略案を立案する手段と、
データ取得・処理ユニットが、利用者端末にウェブコンテンツを表示するためのオリジナルデータを受信する手段と、
前記戦略案に基づいて、データ取得・処理ユニットによりオリジナルデータが加工されて、複数の加工済みデータが生成する手段と、
前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースから、利用者端末毎にウェブコンテンツを表示するための処理済みデータが選択される手段と、
前記利用者端末毎にウェブコンテンツを表示するための処理済みデータが、利用者端末毎に送信されて、利用者端末毎にウェブコンテンツが表示される手段と、
を備え、
前記サーバが、一または二以上の物理マシン、一または二以上の仮想マシン、ならびに、一または二以上のコンテナからなる群より選ばれる少なくとも一つの実行環境からなり、
前記戦略案を立案する手段が、
前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースのうち、
利用者端末毎に、利用者端末にウェブコンテンツをより速く表示するための処理済みデータが共通して有する属性を学習する手段と、
利用者端末毎に、前記属性に基づいて、前記オリジナルデータをデータ取得・処理ユニットで処理する手段と、
を含む、ウェブコンテンツの自動高速表示制御プログラムを提供するものである。
また、本発明の一つは、
[10]上記[9]に記載されたウェブコンテンツの自動高速表示制御プログラムを記録した、記憶装置を提供するものである。
また、本発明は、
[11]上記[1]~[8]のいずれかに記載のウェブコンテンツの自動高速表示制御方法を実施するためのシステムであって、
ネットワークを通じて通信可能な一または二以上のサーバに対して利用者端末からリクエストが送信されてから、利用者端末にウェブコンテンツを表示するためのオリジナルデータがサーバから利用者端末に送信されて、ウェブコンテンツが利用者端末で入力受付可能になるまでに、
前記サーバに設置されたリクエスト処理ユニットに対して、利用者端末から送信されたリクエストが、アプリケーション処理ユニットと人工知能ユニットが受信する手段と、
アプリケーション処理ユニットが、ウェブコンテンツを表示するためのオリジナルデータをデータ取得・処理ユニットに対して送信する手段と、
人工知能ユニットが、ウェブコンテンツを利用者端末毎に表示する戦略案を立案する手段と、
データ取得・処理ユニットが、利用者端末にウェブコンテンツを表示するためのオリジナルデータを受信する手段と、
前記戦略案に基づいて、データ取得・処理ユニットによりオリジナルデータが加工されて、複数の加工済みデータが生成する手段と、
前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースから、利用者端末毎にウェブコンテンツを表示するための処理済みデータが選択される手段と、
前記利用者端末毎にウェブコンテンツを表示するための処理済みデータが、利用者端末毎に送信されて、利用者端末毎にウェブコンテンツが表示される手段と、
を備え、
前記サーバが、一または二以上の物理マシン、一または二以上の仮想マシン、ならびに、一または二以上のコンテナからなる群より選ばれる少なくとも一つの実行環境からなり、
前記戦略案を立案する手段が、
前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースのうち、
利用者端末毎に、利用者端末にウェブコンテンツをより速く表示するための処理済みデータが共通して有する属性を学習する手段と、
利用者端末毎に、前記属性に基づいて、前記オリジナルデータをデータ取得・処理ユニットで処理する手段と、
を含む、ウェブコンテンツの自動高速表示制御システムを提供するものである。
本発明のウェブコンテンツの自動高速表示制御方法によれば、ネットワークを通じて通信可能な一または二以上のサーバに対して利用者端末からリクエストが送信されてから、利用者端末にウェブコンテンツを表示するためのオリジナルデータがサーバから利用者端末に送信されて、ウェブコンテンツが利用者端末で入力受付可能になるまでに、利用者端末毎にウェブコンテンツを表示するためのオリジナルデータの処理が完了し、利用者端末毎に対して処理済みデータが送信されて利用者端末にウェブコンテンツが表示される。
このため、本発明に係る方法によれば、これまでサーバに対してリクエストを送信していない利用者端末から最初のリクエストがあった場合でも、初回から、オリジナルデータに基づくウェブコンテンツが利用者端末で入力受付可能になる時間よりも短い時間で、処理済みデータに基づくウェブコンテンツが利用者端末毎に受付可能になる状態を実現できる。
またウェブコンテンツを表示するためのオリジナルデータは、データ取得・処理ユニット等によりクロール、監視することができる。このためオリジナルデータに変化があった場合にはその変化に対応して処理済みデータを生成し、オリジナルデータの変化後に、利用者端末からリクエストがあった場合でも、初回から、処理済みデータに対応したウェブコンテンツを提供することができる。
また本発明のウェブコンテンツの自動高速表示制御方法によれば、サーバから送信された、オリジナルデータに基づくウェブコンテンツがそのまま利用者端末に送信される前に、リクエスト処理ユニットを介して、オリジナルデータがアプリケーション処理ユニットからデータ取得・処理ユニットに取り出され、人工知能ユニットにより立案された戦略に基づいてオリジナルデータが加工される。そして処理済みデータが利用者端末毎に送信されて、処理済みデータに基づくウェブコンテンツが利用者端末毎に、利用者端末に表示される。
このため、人間がオリジナルデータの状態や処理済みデータの状態を目視により確認、編集する必要がなく、ウェブコンテンツの自動高速表示が実現される。
加えて本発明のウェブコンテンツの自動高速表示制御方法によれば、リクエスト処理ユニット等を通じてオリジナルデータおよび処理済みデータ等を利用者端末と通信できる。
このためサーバにリクエスト処理ユニットを設置するだけで、また必要に応じてマイグレーションおよびDNSの変更の少なくとも一つを行うだけで、本発明のウェブコンテンツの自動高速表示制御方法を実施できるから、簡単な操作でウェブコンテンツの自動高速表示を実現することができる。
[図1] 図1は、本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムを説明するための模式図である。
[図2] 図2は、本発明に使用するアプリケーション処理ユニットAを説明するための模式図である。
[図3] 図3は、本発明に使用する人工知能ユニットを説明するための模式図である。
[図4] 図4は、本発明に使用するリクエスト処理ユニットを説明するための模式図である。
[図5] 図5は、本発明に使用するデータ取得・処理ユニットを説明するための模式図である。
[図6] 図6は、本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法に使用される利用者端末101のハードウェア構成の一例を説明するための図である。
[図7] 図7は、本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法に使用されるアプリケーション実行サーバのハードウェア構成を説明するための図である。
[図8] 図8は、本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法に使用される、アプリケーション実行サーバ103の記憶装置1101に含まれるハードウェア構成の詳細を説明するための模式図である。
[図9] 図9は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図10] 図10は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図11] 図11は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図12] 図12は、オリジナルデータ200がどのように処理されるかを説明するための概念図である。
[図13] 図13は、オリジナルデータ200がどのように処理されるかを説明するための概念図である。
[図14] 図14は、処理済みデータの生成と、リソースの最適化との関係を説明するためのフローチャートである。
[図15] 図15は、本発明の施形態に使用する、データ取得・処理ユニットDの設定ファイル格納部1523に保存された機種情報ファイル126の一例を示す概念図である。
[図16] 図16は、処理前のHTMLファイルと最適化されたHTMLファイルとの対応関係を説明するための概念図である。
[図17] 図17は、利用者端末の表示環境ごとに不要部分が削除されるステップを説明するためのフローチャートである。
[図18] 図18は、利用者端末の表示環境ごとに必要部分が圧縮されるステップを説明するためのフローチャートである。
[図19] 図19は、HTMLファイル113に記載されたスクリプト言語ファイル部分108a108dが直列的に実行されるステップを説明するための図である。
[図20] 図20は、HTMLファイル113に記載されたスクリプト言語ファイル部分108a108とスクリプト言語ファイル108dとが並列的に実行されるステップを説明するための図である。
[図21] 図21は、HTMLファイル113に記載されたスクリプト言語ファイル108dの実行が後回しにされるステップを説明するための図である。
[図22] 図22は、処理済みデータが生成されるステップを説明するためのフローチャートである。
[図23] 図23は、オリジナルデータ200に追加、移動、削除、変更等の改変があったことを知らせる信号が動作制御部へ送信されるステップを説明するためのフローチャートである。
[図24] 図24は、本発明の実施形態2に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムであり、リバースプロキシ型の構成を記載した概略図である。
[図25] 図25は、本発明の実施形態2に係るウェブコンテンツの自動高速表示制御方法に使用される、リバースプロキシサーバ1703の記憶装置1701に含まれるハードウェア構成の詳細を説明するための図である。
[図26] 図26は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図27] 図27は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図28] 図28は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図29] 図29は、本発明の実施形態3に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムであり、ナノエージェント型の構成を記載した概略図である。
[図30] 図30は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図31] 図31は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図32] 図32は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図33] 図33は、本発明の実施形態に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムであり、SaaS型の構成を記載した概略図である。
[図34] 図34は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図35] 図35は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図36] 図36は、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
[図37] 図37は、利用者端末101にウェブコンテンツ211が高速表示される仕組みを説明するための概念図である。
[図38] 図38は、ユーザ体験がどのようにウェブコンテンツの自動高速表示を実現するステップに反映されるかを説明するためのフローチャートである。
本発明に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムは、アプリケーション処理ユニットA、人工知能ユニットB、リクエスト処理ユニットCおよびデータ取得・処理ユニットDを少なくとも含む。
本発明の開示においては、はじめにA~Dの四つのユニットを組み合わせた複数の実施形態が開示される。本発明に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムの構成については、A~Dの四つのユニットの組み合わせにより、オールインワン型(実施形態1)、リバースプロキシ型(実施形態2)、ナノエージョント型(実施形態3)およびSaS型(実施形態4)の大きく四つに分類される。
以下に、それぞれの実施形態について図面を参照しつつ説明する。なお、本発明は以下の実施形態に限定されるものではない。
[実施形態1:オールインワン型]
図1は、本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムを説明するための模式図である。本発明の実施形態1では、一つの例として、A~Dの四つのユニットが一つの実行環境内に構築されている。
本発明の実施形態1の場合は、実行環境の一つの例として、アプリケーション実行サーバ103が採用されている。
ユーザは利用者端末101を操作して、ネットワーク102を通じて、アプリケーション実行サーバ103と通信できる。
ユーザが操作する利用者端末101から、リクエストが、ネットワーク102を通じてリクエスト処理ユニットCに送信される。
このリクエストは、利用者端末101に搭載されたブラウザ等にウェブコンテンツを表示するためのデータの送信をアプリケーション実行サーバ103に求めるものである。このリクエストは、最初にリクエスト処理ユニットCに送信される。
本発明に使用される利用者端末101は一つに限定されず、二以上を使用することができる。また利用者端末101も、アプリケーション実行サーバ103も、相互にネットワーク102を通じて通信することができればよい。利用者端末101とアプリケーション実行サーバ103との相互の位置関係に、特に限定はない。
本発明の開示においては、リクエスト処理ユニットCは、利用者端末101から送信されるリクエストを最初に受信する機能を有する。下記の実施形態2~6のそれぞれについても同様である。
利用者端末101から送信されたリクエストに基づいて、アプリケーション処理ユニットAに保存されているオリジナルデータが加工される。このオリジナルデータは、ウェブコンテンツを利用者端末101毎に表示するためのデータである。
オリジナルデータの加工は、人工知能ユニットBの立案した戦略案に基づいて、データ取得・処理ユニットDにより実施される。
最初にこれらのAからDの四つのユニットについて説明する。
[A.アプリケーション処理ユニットについて]
図2は、本発明に使用するアプリケーション処理ユニットAを説明するための模式図である。
本発明に使用するアプリケーション処理ユニットAは、ウェブコンテンツを表示するためのオリジナルデータ200等を保存し、利用者端末101、各ユニット等に利用者端末101毎からのリクエスト、オリジナルデータ200に含まれるリソース等を送信する機能を主として担う。
なお本発明の開示における各ファイルの記載は例示であり、データがファイル形式で管理できることを意味する。データをファイル形式で管理することにより、CLI等を通じて、人間が目視等によりデータを管理することができる。
図2では、データがファイル形式で管理できることを模式的に示している。
オリジナルデータ200には、例えば、ウェブコンテンツを利用者端末101に表示するために必要なHTMLファイル113、このHTMLファイル113に関連付けられたリソース等が含まれる。
このHTMLファイル113は、例えば、データベース1106に関連付けられたPHP105等のプログラムにより、動的または静的に生成される。
またアプリケーション処理ユニットAには、HTMLファイル113が参照するCSSファイル107、スクリプト言語ファイル108、画像ファイル109等のリソースが保存されている。
これらのリソースは適宜HTMLファイル113から参照され、実行することができる。また、HTMLファイル113内部に直接記載されたCSSのスタイルシート、JavaScript(登録商標)等のプログラム等を実行することもできる。
例えば、利用者端末101に送信されたHTMLファイル113等を利用者端末101が受信する。そして利用者端末101に受信されたHTMLファイル113等が利用者端末101に搭載されたブラウザ等で実行される。HTMLファイル113等が実行されると、その実行に伴い、HTMLファイル113等に関連付けられたスタイルシートであるCSSファイル107、プログラムであるスクリプト言語ファイル108等のリソース等が実行される。この実行によりオリジナルデータ200等に基づくウェブコンテンツ等を利用者端末101に表示することができる。
[B.人工知能ユニットについて]
図3は、本発明に使用する人工知能ユニットを説明するための模式図である。
本発明に使用する人工知能ユニットBは、それぞれのAからDの各ユニットに対して動作の指針を与える、司令塔としての機能を主として担う。
具体的には、例えば、アプリケーション処理ユニットAに保存されているオリジナルデータ200を、利用者端末101のそれぞれの表示環境に応じて加工する、複数の加工済みデータ201の中から利用者端末101毎に最適なものを選択する、加工済みデータ201に含まれるプログラムの実行順序、実行タイミング等を決定する等の一または二以上の戦略案を生成する。人工知能ユニットBの人工知能制御部1410により、戦略案としての戦略ファイル1412が人工知能記憶領域1430に生成される。
オリジナルデータ200を用いてウェブコンテンツが利用者端末101に表示されて、利用者端末101のブラウザ等で入力受付可能となるまでに、ウェブコンテンツを利用者端末101毎に表示するための戦略案が生成される。そしてこの戦略案に基づいて、オリジナルデータ200の加工、選択、配信等が実施される。その結果、オリジナルデータ200を用いてウェブコンテンツが利用者端末101に表示されて、利用者端末101で入力受付可能となるまでに、処理済みデータを用いてウェブコンテンツを利用者端末101毎に表示することが実現される。
この戦略案は、例えば、戦略ファイル1412として人工知能ユニットBが利用できる保存領域に保存することができる。戦略ファイル1412は、人工知能ユニットB内部に保存される場合に限定されず、例えば、人工知能ユニットBの外部に保存して、人工知能ユニットBが利用できるようにすることもできる。
本発明の実施形態1の場合は、一つの例として戦略案が戦略ファイル1412として説明されているが、戦略案はファイル形式で保存される場合に限定されない。戦略案は、人工知能ユニットBが実行できる形式で保存されればよく、アプリケーション実行サーバ103が利用できるデータベース等に保存して活用することもできる。
[C.リクエスト処理ユニットについて]
図4は、本発明に使用するリクエスト処理ユニットを説明するための模式図である。
本発明に使用するリクエスト処理ユニットCは、先に示した図1に例示されるように、ユーザが操作する利用者端末101のブラウザ等から送信されたリクエストを最初に受信する、いわば通信ゲートとしての機能を主として担う。
図4では、一つの例として、アプリケーション実行サーバ103にアプリケーション処理ユニットA、人工知能ユニットB、リクエスト処理ユニットCおよびデータ取得・処理ユニットDが配置されている場合が図示されている。
本発明の実施形態1では、本発明に使用されるアプリケーション処理ユニットA、人工知能ユニットB、リクエスト処理ユニットCおよびデータ取得・処理ユニットDのそれぞれのユニットが一つの実行環境下で実施される。
本発明の開示においては、実行環境とは、一または二以上の物理マシン、一または二以上の仮想マシン、ならびに一または二以上のコンテナからなる群より選ばれる少なくとも一つにより構築される環境をいう。
本発明の実施形態1の場合は、例えば、一つの実行環境であるアプリケーション実行サーバ103が使用されている。
この実行環境は、例えば、複数の物理マシン、複数の仮想マシン、複数のコンテナ等から構成される場合であっても、一つの物理マシンが実際に存在するかのように運用することができる。
本発明の開示においては、ユーザが操作する利用者端末101のブラウザ等からリクエストが送信される。このリクエストは、ネットワーク102、リクエスト処理ユニットCを通じて、アプリケーション処理ユニットA、人工知能ユニットB、データ取得・処理ユニットD等に受信される。そしてそのリクエストに対応するレスポンスが、アプリケーション処理ユニットA、人工知能ユニットB、データ取得・処理ユニットD等から送信される。そしてそのレスポンスが、ネットワーク102を通じて利用者端末101で受信される。
[D.データ取得・処理ユニットについて]
図5は、本発明に使用するデータ取得・処理ユニットを説明するための模式図である。
本発明に使用するデータ取得・処理ユニットDは、アプリケーション処理ユニットAから、リクエスト処理ユニットCを通じてオリジナルデータ200等を取得し、それぞれの利用者端末101に適したリソースの最適化等を実施する機能を主として担う。
データ取得・処理ユニットDは、例えば、最適化ユニットd100、クローラーユニットd200およびコントロールユニットd300等を含む。
最適化ユニットd100では、人工知能ユニットBが立案した戦略案が記載された戦略ファイル1412に基づいて、例えば、アプリケーション処理ユニットAに保存されているHTMLファイル113の最適化、CSSファイル107、スクリプト言語ファイル108、画像ファイル109等のリソースの最適化が実施される。
クローラーユニットd200では、例えば、アプリケーション処理ユニットAに保存されているHTMLファイル113、CSSファイル107、スクリプト言語ファイル108、画像ファイル109等のリソースをクロールして、それらのデータの取得、保存、監視等を行う。
次に先に示した図4に基づいて、本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムについて説明する。
図4において、利用者端末101と、有線接続または無線接続によりアプリケーション実行サーバ103とが、ネットワーク102を通じて相互に通信できる。
利用者端末101の具体例としては、例えば、スマートフォン、フィーチャーフォン等の携帯情報端末、PDA(PERSONAL DIGITAL ASSISTANT)、タブレット等の情報表示端末、スマートウォッチ、スマートメガネ等のウェアラブル通信端末、PC(PERSONAL COMPUTER)等のコンピュータ等が挙げられる。
図4では、一つの利用者端末101が例示されているが、実際には一または二以上の利用者端末101を使用することができる。
本発明の実施形態1に使用されるネットワーク102としては、例えば、VPN(VIRTUAL PRIVATE NETWORK)、LAN(LOCAL AREA NETWORK)、WAN(WIDE AREA NETWORK)、PSTN(PUBLIC SWITCHED TELEPHONE NETWORK)、インターネット、イントラネット、イーサネット(登録商標)、携帯電話網、公衆交換電話網等の一または二以上を挙げることができる。
ネットワーク102は、光ファイバー・通信用電線等を利用した有線、赤外線・電波等の電磁波等を利用した無線等を通じて、利用者端末101、各種実行環境等に対して相互に通信できる環境を提供できる。
アプリケーション実行サーバ103は、利用者端末101に対して、各国言語による文字、記号、数字等のプログラムデータ、画像、動画、音声等のバイナリデータ等を含むウェブサイト等の情報を提供する機能を有する。
アプリケーション実行サーバ103は、ネットワーク102を通じて、オリジナルデータによるウェブコンテンツを利用者端末101に表示させる機能を有するものであれば、その構成に限定はない。
またアプリケーション実行サーバ103には、アプリケーション処理ユニットA、人工知能ユニットB、リクエスト処理ユニットCおよびデータ取得・処理ユニットDが少なくとも搭載されている。
[実施形態1に使用される各装置のハードウェア構成]
図6は、本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法に使用される利用者端末101のハードウェア構成の一例を説明するための図である。
[利用者端末101のハードウェア構成]
最初に利用者端末101のハードウェア構成について説明する。
利用者端末101は、例えば、中央演算処理装置1000(CPU、CENTRAL PROCESSING UNIT)、記憶装置1001、通信用インターフェイス1002、入力装置1003および表示装置1004等のハードウェア構成を備える。これらのハードウェア構成はそれぞれ接続されていて相互に通信が可能である。
中央演算処理装置1000はプログラムに記載された内容を実行できる回路を搭載していて、各種処理を実行できる。
中央演算処理装置1000の構成は、一つのマイクロプロセッサを搭載するものに限定されず、二以上のプロセッサを搭載するマルチプロセッサを含むものであってもよい。
記憶装置1001は、利用者端末101の動作に必要なデータ、プログラム等を記憶することができる。記憶装置1001は、例えば、主記憶部1001aと補助記憶部1001bとを含む。
主記憶部としては、例えば、RAM等の揮発性メモリが使用される。また補助記憶部としては、例えば、ハードディスク、ソリッドステートディスク、フラッシュメモリ等の不揮発性メモリが使用される。
記憶装置1001には、例えば、利用者端末101で使用することのできるブラウザについてのアプリケーションプログラム等が保存されている。このブラウザによりウェブコンテンツを利用者端末101で閲覧することができる。
通信用インターフェイス1002は、例えば、ネットワーク102を介してリクエスト処理ユニットC等から送信された各種データを受信し中央演算処理装置1000に各種データを転送する。
また通信用インターフェイス1002は、利用者端末101からネットワーク102を介してリクエスト処理ユニットC等に各種データを送信する。
入力装置1003は、利用者端末101に対して各種操作を入力する装置である。入力装置1003は、例えば、表示装置1004と一体化したものを使用してもよいし、入力装置1003と、表示装置1004とが分離したものを使用してもよい。
入力装置1003は、ユーザからの各種データ入力を受け付けることができる。受け付けられた各種データは中央演算処理装置1000に転送される。
入力装置1003としては、例えば、タッチパネル、タッチパッド、マウス、キーボード、カメラ、マイク等が挙げられる。
例えば、タッチパネルやタッチパッドの場合には、ユーザの指による操作、タッチペン等の専用の入力具による操作等により各種データの入力を受け付ける。
マウスの場合は、例えば、マウスの移動、マウスに搭載された左右キーの選択、クリックの回数、タップ、ドラッグ、ドロップ等の操作などにより各種データの入力を受け付ける。
キーボードの場合は、例えば、キーボードに搭載された各種キーの選択、および各種キーを同時に選択する操作などにより各種データの入力を受け付ける。
カメラの場合は、例えば、カメラにより撮影された画像を解析して中央演算処理装置1000に転送できる信号に変換することにより各種データの入力を受け付ける。
マイクの場合は、例えば、マイクにより聴音された音声を解析して中央演算処理装置1000に転送できる信号に変換することにより各種データの入力を受け付ける。
表示装置1004は、中央演算処理装置1000により処理された各種データを表示できる。
表示装置1004としては、例えば、液晶パネル、LEDパネル、有機ELパネル、液晶モニタ、LEDモニタ、有機ELモニタ等が挙げられる。表示装置1004は各種データの入力を受け付けるタッチパネルであってもよい。
[アプリケーション実行サーバ103のハードウェア構成]
次にアプリケーション実行サーバ103のハードウェア構成について説明する。なお、アプリケーション実行サーバ103は全体として一つの実行環境から構築されているものであれば、その構成に特に限定はない。
ここでは、一例として、アプリケーション実行サーバ103のハードウェア構成が物理マシンにより構成される場合を例に挙げて説明する。アプリケーション実行サーバ103の構成は、先に説明した通り、物理マシンにより構成される場合に限定されない。一または二以上の物理マシン、一または二以上の仮想マシンならびに一または二以上のコンテナ等からなる群より選ばれる少なくとも一つの実行環境を選択した場合でも、一つの物理マシンにより構成される実行環境と同様の実行環境を構築して、本発明の実施形態1に使用することができる。
図7は、本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法に使用されるアプリケーション実行サーバのハードウェア構成を説明するための図である。
アプリケーション実行サーバ103は、例えば、中央演算処理装置1100(CPU、CENTRAL PROCESSING UNIT)、記憶装置1101、通信用インターフェイス1102、入力装置1103および表示装置1104等のハードウェア構成を備える。
これらのハードウェア構成はそれぞれ接続されていて相互に通信が可能である。
中央演算処理装置1100は、例えば、記憶装置1101の記憶領域等に保存されたプログラムを実行できる回路を搭載していて、各種処理を実行できる。
中央演算処理装置1100の構成は、一つのマイクロプロセッサを搭載するものに限定されず、二以上のプロセッサを搭載するマルチプロセッサを含むものであってもよい。
記憶装置1101は、例えば、アプリケーション処理ユニットAの動作に必要なデータ、プログラム等を記憶することができる。記憶装置1101は、例えば、主記憶部1101aと補助記憶部1101bとを含む。
主記憶部としては、例えば、RAM等の揮発性メモリが使用される。また補助記憶部としては、例えば、ハードディスク、ソリッドステートディスク、フラッシュメモリ等の不揮発性メモリが使用される。
図7では、一例として記憶装置1101の内部にリクエスト処理ユニットC等の各ユニットが設置されている。AからDの各ユニットは、一つの記憶装置1101に設置してもよいし、AからDの各ユニットが相互に通信可能であれば、異なる記憶装置に分散して設置することもできる。
通信用インターフェイス1102は、ネットワーク102を通じて利用者端末101等から送信された各種データを受信し中央演算処理装置1100等に各種データを転送する。
またリクエスト処理ユニットCからネットワーク102を通じて利用者端末101に各種データを送信する。
入力装置1103は、AからDの各ユニット等に対してデータを入力するための装置である。入力装置1103は、例えば、表示装置1104と一体化したものを使用してもよいし、入力装置1103と、表示装置1104とが分離したものを使用してもよい。
入力装置1103は、アプリケーション実行サーバ103の管理者による各種データの入力を受け付けることができる。受け付けられた各種データは中央演算処理装置1100に転送される。
入力装置1103としては、例えば、タッチパネル、タッチパッド、マウス、キーボード、カメラ、マイク等が挙げられる。
表示装置1104は、中央演算処理装置1100により処理された各種データを表示できる。
表示装置1104としては、例えば、液晶パネル、LEDパネル、有機ELパネル、液晶モニタ、LEDモニタ、有機ELモニタ等が挙げられる。表示装置1104は各種データの入力を受け付けるタッチパネルであってもよい。
アプリケーション実行サーバ103を操作する際には、例えば、アプリケーション実行サーバ103の管理者が、表示装置1104に表示されたCLI(COMMAND LINE INTERFACE)等の入力装置1103により、例えば文字、数字、記号等のデータを入力して行う。
[アプリケーション実行サーバ103の記憶装置1101に含まれるハードウェア構成の詳細]
次にアプリケーション実行サーバ103の記憶装置1101に含まれるハードウェア構成の詳細について説明する。
図8は、本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法に使用される、アプリケーション実行サーバ103の記憶装置1101に含まれるハードウェア構成の詳細を説明するための模式図である。
記憶装置1101にはOS(OPERATING SYSTEM)1105が導入されていて、中央演算処理装置1100、記憶装置1101の各記憶領域、各プログラム等を制御できる。
OS1105は市場から有償または無料で入手できる。
図8で、記憶装置1101はオリジナルデータ記憶領域104およびデータベース1106を備えている。オリジナルデータ記憶領域104には、利用者端末101に表示されるオリジナルデータ200が保存されている。
また記憶装置1101にはアプリケーション処理ユニットA、人工知能ユニットB、リクエスト処理ユニットCおよびデータ取得・処理ユニットDが設置されている。
本発明の実施形態1では、発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法は、例えば、動作環境に含まれるOS1105上で各ユニットに含まれるプログラムを中央演算処理装置1100により動作させて実現される。
[ウェブコンテンツの自動高速表示制御方法に使用されるアプリケーション処理ユニットA]
図8に示されるように、アプリケーション実行サーバ103はアプリケーション処理ユニットAを備えている。
アプリケーション処理ユニットAは、オリジナルデータ200を保存するためのオリジナルデータ記憶領域104およびデータベース1106に加えて、加工済みデータ記憶領域130を備えている。
この加工済みデータ記憶領域130は、アプリケーション処理ユニットAの他に、例えば、データ取得・処理ユニットD内に設けることができる。
アプリケーション実行サーバ103の記憶装置1101に設置されたアプリケーション処理ユニットAは、必要に応じて、例えば、監視制御部1115、動作制御部1116および動作制御記憶部1117等を備えることもできる。
例えば、アプリケーション処理ユニットAの動作制御記憶部1117には、プログラムにより記載された各種のアプリケーションに対応できるように、OS1105の種類、実行環境等に関するデータと共に、動作制御部1116が動作するために必要なデータが保存されている。
また例えば、監視制御部1115は、オリジナルデータ記憶領域104に保存されたオリジナルデータ200に改変があった場合には、自動でその改変を検出することができる。
オリジナルデータ200に改変があったことを知らせる信号は人工知能ユニットBおよびデータ取得・処理ユニットDの少なくとも一方に送信される。
監視制御部1115は、アプリケーション処理ユニットAに保存されているオリジナルデータ200を監視している。例えば、図2の場合であれば、オリジナルデータ200に含まれるPHPファイル105、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108、画像ファイル109等のリソースのいずれかに追加、移動、削除、変更等の改変があれば、この改変を検出できる。
アプリケーション実行サーバ103のOS1105に監視制御部1115を実現できる機能が設置されている場合にはその機能を用いてアプリケーション処理ユニットAに監視制御部1115を設置することができる。アプリケーション実行サーバ103のOS1105に監視制御部1115を実現できる機能が設置されていない場合には、オリジナルデータ200の変更を監視できる機能を有するプログラムをアプリケーション処理ユニットAに設置して対応することもできる。
監視制御部1115は、アプリケーション処理ユニットAに設置することは特に限定されず、アプリケーション処理ユニットAに代えて、またはアプリケーション処理ユニットAと共に、データ取得・処理ユニットDに設置することもできる。アプリケーション処理ユニットAとデータ取得・処理ユニットDの少なくとも一方に設置すればよい。
アプリケーション実行サーバ103の記憶装置1101に設置されているアプリケーション処理ユニットAは、例えば、時間実行制御部1120を備えることもできる。
アプリケーション実行サーバ103の時間実行制御部1120は、ネットワーク102を通じて正確な現在時刻を入手できる。時間実行制御部1120の時間実行記憶部1521に、いつ、どのタイミングで、何を実行するかの情報を記載した実行プログラ1122が保存されている。
時間実行制御部1120は、データ取得・処理ユニットDに設置することもできる。
時間実行制御部1120により、定められた日定められた時刻に実行が必要な各種ステップを実施することができる。
[ウェブコンテンツの自動高速表示制御方法に使用される人工知能ユニットB]
先の図3に例示されるように、アプリケーション実行サーバ103の記憶装置1101に設置された人工知能ユニットBは、人工知能制御部1410を備えている。
人工知能制御部1410は、例えば、Python、C++、JavaScript(登録商標)等のプログラミング言語等により記載されたプログラム等がアプリケーション実行サーバ103に搭載されたOS等を含む実行環境で実行できる。人工知能制御部1410は戦略ファイル1412を生成することができる。生成された戦略ファイル1412は、人工知能記憶領域1430に保存される。また戦略ファイル1412をデータベース1106等に関連付けて保存することができる。
[ウェブコンテンツの自動高速表示制御方法に使用されるリクエスト処理ユニットC]
リクエスト処理ユニットCは、ネットワーク102を通じて利用者端末101等との通信を可能にし、各ユニット間等でデータを通信できる機能を持つ。
図4および図8に示されるように、アプリケーション実行サーバ103の記憶装置 1101に設置されたリクエスト処理ユニットCは、例えば、アプリケーション実行サーバ103の通信用インターフェイス1102を介して、ネットワーク102を通じてデータの入出力が可能な通信データ制御部1510を備えている。
通信データ制御部1510は、JavaScript(登録商標)等のプログラム等によりアプリケーション実行サーバ103に対する外部からのリクエスト、各ユニットからのリクエスト等、またこれらのリクエストに対するレスポンスを処理することができる。
リクエスト処理ユニットCがアプリケーション実行サーバ103に設置されると、アプリケーション処理ユニットA、人工知能ユニットB、データ取得・処理ユニットD等のそれぞれは、リクエスト処理ユニットCと相互に通信可能な状態を維持することができる。
[ウェブコンテンツの自動高速表示制御方法に使用されるデータ取得・処理ユニットD]
先の図5に例示されるように、アプリケーション実行サーバ103の記憶装置1101に設置されたデータ取得・処理ユニットDは、例えば、最適化ユニットd100、クローラーユニットd200およびコントロールユニットd300を含むことができる。
最適化ユニットd100、クローラーユニットd200およびコントロールユニットd300は、Python、C++、JavaScript(登録商標)等のプログラミング言語等によりアプリケーション実行サーバ103に搭載されたOSを含む実行環境上で実行できる。
データ取得・処理ユニットDにより処理されたデータは、データベース1106等に保存することができる。
また例えば、データ取得・処理ユニットDのコントロールユニットd300に記載されたプログラムにより、最適化ユニットd100、クローラーユニットd200等が制御される。
このクローラーユニットd200に搭載されたプログラムにより構成されたクローラーにより、アプリケーション処理ユニットAのオリジナルデータ記憶領域104に保存されているオリジナルデータ200等をクロールして取得し、保存することができる。
またオリジナルデータ200等を監視し、オリジナルデータ200等に変更があった場合には、その変更に応じた加工済みデータ等のリソースが最適化ユニットd100に搭載されたプログラムにより生成される。
また例えば、データ取得・処理ユニットDのコントロールユニットd300はウェブワーカーとしても機能することができる。アプリケーション実行サーバ103の実行に左右されずに、独立してバックグランドで各種プログラムの処理を実行することもできる。
[ウェブコンテンツの自動高速表示制御方法に使用されるオリジナルデータ200]
次に本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法に使用されるオリジナルデータ200について説明する。
本発明に使用されるオリジナルデータ200は、動的または静的に生成されたものがアプリケーション処理ユニットAが設置されているオリジナルデータ記憶領域104に保存されている。
なお、本発明に係るウェブコンテンツの自動高速表示制御方法では、アプリケーション実行サーバ103に対して利用者端末101からリクエストが送信された場合、利用者端末101にウェブコンテンツを表示するためのオリジナルデータ200が、そのまま、前記アプリケーション実行サーバ103から利用者端末101に送信されて、ウェブコンテンツが利用者端末101に表示することもできる。
本発明の実施形態1に係るウェブコンテンツを含め、本発明の開示においては、本発明に係る自動高速表示制御方法を実施する場合と、オリジナルデータ200に基づく本発明に係る自動高速表示制御方法を実施しない場合のウェブコンテンツの配信を、相互に切り替えることができる。
本発明の開示に使用するオリジナルデータ200としては、例えば、プログラムデータ(1)、バイナリデータ(2)等の一つもしくは二以上が挙げられる。
具体的には、プログラムデータ(1)としては、例えば、
HTML、XML等のマークアップ言語、
PHP、Perl、Java(登録商標)、C、Lua等のプログラミング言語、
CSS、SCSS等のスタイルシート、JavaScript(登録商標)、TypeScript(登録商標)、JavaScript(登録商標)のライブラリであるJuery(登録商標)等のスクリプト言語等の一つもしくは二以上を含むデータ等が挙げられる。
また、バイナリデータ(2)としては、例えば、
画像ファイル、音ファイル、動画ファイル等の一つもしくは二以上のデータ等が挙げられる。
プログラムデータ(1)には、例えば、数字データ、記号データ、文字データ等が含まれる。
またバイナリデータ(2)には、例えば、音データ、画像データ、動画データ等の人間の五感で知覚できるデータ等が含まれる。
マークアップ言語は、HTML、XML等、ウェブサイト等の基本構造を記述する文書に使用される。
またPHP、Perl、Java(登録商標)、C、Lua等のプログラミング言語は、実際にアプリケーション実行サーバ103等を動作させ、ウェブコンテンツを利用者端末101毎に表示できる言語である。
CSS、SCSS等のスタイルシートは、主として利用者端末101のブラウザ等に表示される文字、数字、記号、画像等の位置、大きさ、種類等のデザイン構成を制御するプログラムである。
またJavaScript(登録商標)、TypeScript(登録商標)、JavaScript(登録商標)のライブラリであるJuery(登録商標)等のスクリプト言語は、主として、利用者端末101に表示されたウェブサイト等のユーザによるボタン等に対するクリック操作、スクロール操作等の処理をはじめ、ウェブコンテンツを利用者端末101に表示するために必要な多種多様な処理を行うプログラムである。
先に説明した図2は、本発明の実施形態1に使用されるアプリケーション処理ユニットAに設置された記憶装置1101のオリジナルデータ記憶領域104と加工済みデータ記憶領域130に保存される各ファイルの関係を説明するための模式図である。
図2では、一つの具体例として、PHPのプログラミング言語がPHPファイル105のデータとしてオリジナルデータ記憶領域104に保存されている。またデータベース1106にはPHPファイル105の表示に必要なデータが格納されている。
本発明に係る実施形態1の場合では、図2に例示されるように、一例としてプログラミング言語としてPHPファイル105に記載されるPHPが使用されているが、本発明に使用するプログラミング言語はPHPに限定されず、Lua等、ウェブコンテンツの表示を実現できるものであれば適宜選択して使用することができる。
またリソース124の一例として、CSSファイル107、スクリプト言語ファイル108および画像ファイル109についてのデータがオリジナルデータ記憶領域104に保存されている。
PHPファイル105等に記載されたプログラムにより、利用者端末101のブラウザ等にウェブコンテンツを表示するために必要なデータがデータベース1106から参照される。
また、PHPファイル105等にCSSファイル107、スクリプト言語ファイル108および画像ファイル109へのアクセス情報を記載し、PHPファイル105等から、CSSファイル107、スクリプト言語ファイル108および画像ファイル109のデータを用いて、利用者端末101に表示されるウェブコンテンツを生成できる。
PHPファイル105等の中で定義された変数はデータベース1106に保存されている。
データベース1106にはデータ読込手段、データ書込手段、データ保存手段、データ検索手段等が備えられている。
PHPファイル105等に記載された変数に対応するデータをデータベース1106にあらかじめ書き込み保存する。
そしてPHPファイル105等に記載された変数を元に、データベース1106に保存されたデータを呼び出すことができる。
ユーザが操作する利用者端末101に搭載されたブラウザ等がPHPファイル105等に記載されたプログラムを実行して、HTMLファイル113を生成することもできるし、アプリケーション処理ユニットAがPHPファイル105等に記載されたプログラムを実行して、HTMLファイル113を生成することもできる。
HTMLファイル113は、静的に事前に生成されてもよいし、利用者端末101からのリクエストの前、またはリクエスト直後に、動的に生成されてもよい。またPHPファイル105等に記載されたプログラムが実行される度に、都度、動的に生成されてもよい。
通常は、HTMLファイル113は動的に生成される。以下、同様である。
例えば、HTMLファイル113等が参照するCSSファイル107、スクリプト言語ファイル108についても、静的に事前に生成されてもよいし、利用者端末101からのリクエストの前、または直後に、PHPファイル105に記載されたプログラムが実行される度に、都度、動的に生成されてもよい。
[ユーザからのリクエストに対するオールインワン型による処理の流れ]
図9~図11のそれぞれは、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
図9~図11のそれぞれは、縦軸が時間を示し、横軸がデータの流れを示している。
ユーザが操作する利用者端末101のブラウザ等から送信されたリクエストは、ネットワーク102を通じてリクエスト処理ユニットCに送信される。
本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法を実施しない場合には、リクエストを受信したリクエスト処理ユニットCは、リクエストをアプリケーション処理ユニットAに信する。リクエストを受信したアプリケーション処理ユニットAは、ユーザの利用者端末101にウェブコンテンツを表示するためのオリジナルデータ200をレスポンスとしてリクエスト処理ユニットCに送信する。そしてこのレスポンスはリクエスト処理ユニットCからネットワーク102を通じて利用者端末101に送信される。送信されたレスポンスは利用者端末101で受信される。そして利用者端末101に搭載されたブラウザ等により、オリジナルデータ200に基づくウェブコンテンツが利用者端末101に表示される。
本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法の場合は、ユーザが操作する利用者端末101のブラウザ等から送信されたリクエストが、ネットワーク102を通じてリクエスト処理ユニットCに送信された後のオリジナルデータ200の処理動作に加えて、処理済みデータの処理動作が実施される。
図9に例示されるように、ユーザが操作する利用者端末101のブラウザ等から送信されたリクエストは、ネットワーク102を通じてリクエスト処理ユニットCに送信される。
リクエストを受信したリクエスト処理ユニットCは、リクエストをアプリケーション処理ユニットAに送信する。リクエストを受信したアプリケーション処理ユニットAは、ユーザの利用者端末101にウェブコンテンツを表示するためのHTMLファイル113等を、例えば動的に生成する。
HTMLファイル113は、リソースを参照する部分を有するオリジナルデータの一例である。リソースを参照する部分を有するオリジナルデータとしては、例えば、HTMLファイル、XMLファイル、PHPファイル等の一種もしくは二種以上が挙げられる。
この際、利用者端末101に受信されたHTMLファイル113が参照するリソースの利用者端末101に対するダウンロードが始まる動作を実施することもできる。
または人工知能ユニットBで立案された戦略案に基づいてダウンロードを待機することもできる。
このダウンロードは、アプリケーション処理ユニットAのオリジナルデータ記憶領域104に保存されている、HTMLファイル113が参照するリソースが、アプリケーション処理ユニットA、リクエスト処理ユニットCを経て、ネットワーク102を通じて利用者端末101に送信されることを意味する。
リクエスト処理ユニットCはアプリケーション処理ユニットAからリクエスト処理ユニットCを経てネットワーク102を通じて利用者端末101に対してレスポンスとしてのダウンロードが実行される処理に割り込み、図9に示されるようにHTMLファイル113のデータを取得する。
具体的には、利用者端末101のブラウザ等から送信されたリクエストが、ネットワーク102を通じてリクエスト処理ユニットCに送信される。次にリクエスト処理ユニットCからリクエストがアプリケーション処理ユニットAに送信される。
リクエストを受信したアプリケーション処理ユニットAは、レスポンスとして、例えば、HTMLファイル113等のデータをリクエスト処理ユニットCに送信する。
取得されたHTMLファイル113等のデータが、リクエスト処理ユニットCから人工知能ユニットB、データ取得・処理ユニットDの順に送信される。人工知能ユニットBで立案された戦略案に基づいて、データ取得・処理ユニットDがHTMLファイル113等の最適化を行う。
最適化されたHTMLファイル113zについてのデータは、データ取得・処理ユニットD、人工知能ユニットBおよびリクエスト処理ユニットCを経て、ネットワーク102を通じてユーザの利用者端末101に送信される。
例えば、リソースを参照する部分を有するオリジナルデータの一つであるHTMLファイル113は、HTMLファイル113により参照されてウェブコンテンツを利用者端末101のブラウザ等に表示するためのリソースについての情報が記載されている。
データ取得・処理ユニットDで、HTMLファイル113に含まれるリソースを参照する部分が、プログラムのオブジェクトに置換されて、最適化されたHTMLファイル113zが生成する。このオブジェクトのそれぞれには、対応するリソースを特定するための識別情報が付与されている。最適化されたHTMLファイル113zはオブジェクト置換済みプログラムの一例である。
図10に示されるように、利用者端末101毎に搭載されたブラウザ等で最適化されたHTMLファイル113zが実行されると、最適化されたHTMLファイル113zに記載されたオブジェクトに基づいて、ネットワーク102を通じてリクエスト処理ユニットCから、データ取得・処理ユニットDにリクエストが送信される。リクエストを受信したデータ取得・処理ユニットDから最適リソースが選択され、リクエスト処理ユニットCを経て、ネットワーク102を通じて最適リソースが利用者端末101に送信される。
また最適リソースが存在しない場合には、図10に示されるように、リクエスト処理ユニットCはアプリケーション処理ユニットAに保存されているオリジナルデータ200から対応するリソースを取得する。取得されたリソースは、アプリケーション処理ユニットAからリクエスト処理ユニットCを経て利用者端末101に送信される。
最適リソースが存在しない場合には、オリジナルデータ200から対応するリソースが使用される。この一方、データ取得・処理ユニットDで、最適リソースの生成、選択がバックグラウンドで進められる。最適リソースが生成されると、データ取得・処理ユニットDからリクエスト処理ユニットCを経て、ネットワーク102を通じて最適リソースが利用者端末101に送信される。そして利用者端末101毎に使用されていたリソースが、最適リソースにより置換される。
また図11に示されるように、例えば、ユーザによる利用者端末101に搭載されたブラウザ等からリクエストがアプリケーション実行サーバ103に送信される前等、利用者端末101とアプリケーション実行サーバ103が互いに通信をしていない時等に、データ取得・処理ユニットDに設置されたクローラーユニットd200のクロール制御部1510は、アプリケーション実行サーバ103に保存されたオリジナルデータ200等をクロールする。
クロールされたオリジナルデータ200等に基づいて、データ取得・処理ユニットDに設置された最適化ユニットd100の制御部1610により最適化されたリソースが生成され、データベース1106に蓄積される。
データ取得・処理ユニットDに設置されたクローラーユニットd200は定期的にアプリケーション処理ユニットAに保存されたオリジナルデータ200をクロールし、自動的に最適化リソースが生成され、データベース1106に蓄積されるステップが実施される。
オリジナルデータ200の変化を捕捉するために、この変化をデータ取得・処理ユニットDおよびアプリケーション処理ユニットAの少なくとも一方に搭載されたプログラムにより、オリジナルデータ200が監視される。
オリジナルデータ200に変化があると、データ取得・処理ユニットDに設置されたクローラーユニットd200はオリジナルデータ200をクロールし、自動的に最適化リソースが生成される。
クロール、監視等により生成した、最適化リソースは、例えば、利用者端末101毎からリクエストがある毎に継続的に利用者端末101にダウンロードされる。
[オリジナルデータ200の処理の詳細]
図12および図13は、オリジナルデータ200がどのように処理されるかを説明するための概念図である。
本発明の開示では、利用者端末101にウェブコンテンツを表示するためのオリジナルデータ200に含まれるマークアップ言語およびプログラミング言語の少なくとも一方が記載されたプログラムデータに含まれる全てのリソースの参照部分が、プログラムにより定義されたオブジェクトにより置換されて、オブジェクト置換済みプログラムが生成されるステップと、
オブジェクト置換済みプログラムが参照するリソースに対応するリソースが加工されて最適化リソースが生成されるステップと、
が含まれる。
[オブジェクト置換済みプログラムが生成されるステップ]
利用者端末101にウェブコンテンツを表示するためのプログラムデータとしては、例えば、HTML、XML等のマークアップ言語、PHP、Perl、Java(登録商標)、C、Lua等のプログラミング言語の少なくとも一つが記載されたプログラムデータ等が挙げられる。
図12では、利用者端末101にウェブコンテンツを表示するためのオリジナルデータ200に含まれるマークアップ言語およびプログラミング言語の少なくとも一方が記載されたデータの一例として、HTMLファイル113が例示さている。
HTMLファイル113には、例えば、ヘッド部分113iおよびボディ部分113j等が含まれる。
ヘッド部分113iには、例えば、HTMLファイル113の実行に必要なCSS、SCSS等のスタイルシート、JavaScript(登録商標)、TypeScript(登録商標)、JavaScript(登録商標)のライブラリであるJuery(登録商標)等のスクリプト言語等により記載されたプログラム等の参照部分等が記載されている。
ボディ部分113jには、例えば、利用者端末101のブラウザ等に表示されて、利用者端末101を操作するユーザが読むプログラムデータ、画像ファイル、音ファイル、動画ファイル等のバイナリデータ等の参照部分が記載されている。
また例えば、利用者端末101のブラウザ等に表示されて、利用者端末101を操作するユーザが読むプログラムデータ、利用者端末101のブラウザ等の制御に必要な各種プログラム等の参照部分が記載されている。
図13では、一つの例として、置換済みプログラムデータとして新たに生成された、最適化されたHTMLファイル113zが例示さている。置換済みプログラムデータは、例えば、HTMLファイル、XMLファイル等のマークアップ言語等で記載されたデータ、PHPファイル等のプログラミング言語で記載されたデータが含まれる。
図13では、例えば、図12に例示されたHTMLファイル113のうち、参照部分の全てが識別情報と共にオブジェクトに変換されている様子が例示さている。
HTMLファイル113には参照部分が含まれているが、この参照部分は、HTMLファイル113に直接記載されたスタイルシート、プログラム等の参照部分と、HTMLファイル113の外部に記載されたスタイルシート、プログラム等の参照部分等が存在する。
マークアップ言語等には参照部分を記載するときに適用される規則があらかじめ定められている。この規則に従って、HTMLファイル113の中で、どの部分が参照部分に該当するかを見分けることができる。
データ取得・処理ユニットDに設置された最適化ユニットd100により、例えば、それぞれの参照部分の全てが、識別情報と共にプログラムが扱うことのできるオブジェクトにより置換される。
なおこの識別情報は、マークアップ言語等に記載されている参照部分とオブジェクトとの対応関係を定めるものであり、一つの参照部分に対して一つのオブジェクトを特定できる一意の情報である。
また、本発明の開示におけるオブジェクトとは、利用者端末101、AからDの各ユニット等を含む実行環境が扱うことができる実体を意味し、例えば、変数、配列、関数、プログラム等の一種もしくは二種以上を含む概念を指す。
例えば、HTMLファイル113に記載されているそれぞれの参照部分が、識別情報と共にプログラムが扱うことのできるオブジェクトにより置換されるステップは、実際に参照部分がどのような内容であるか、実行するのにどの程度の時間が必要であるか、容量はどの程度の大きさなのか等の実体的な検討を行うことなく実施することができる。
HTMLファイル113の記載内容および人口知能ユニットBが生成した戦略ファイルの内容から規則に従って形式的に置換箇所を決定することができ、識別情報と共にオブジェクトで置換するだけで、最適化されたHTMLファイル113zを高速に生成することができる。
図13に例示されるように、置換済みプログラムデータとしての最適化されたHTMLファイル113zには、オリジナルデータに含まれるHTMLファイル113の各参照部分がオブジェクト113o1、113o2等により置換されている。
最適化されたHTMLファイル113zのヘッド部分113iには、ユーザが操作する利用者端末101のブラウザ等で最初に実行されるオブジェクト113o1、113o2等が置換により挿入されている。
また最適化されたHTMLファイル113zのボディ部分113jには、最適化されたHTMLファイル113zに識別情報と共にオブジェクトを挿入するためのオブジェクト113o10が記載されている。
加えて、最適化されたHTMLファイル113zのボディ部分には、利用者端末101のブラウザ等で実行されるプログラムが、オブジェクト113o20、113o21等として挿入されている。
[最適リソースが生成されるステップ]
次に本発明の実施形態1で使用される最適リソースが生成されるステップについて説明する。
最適リソースとしては、例えば、先に説明したプログラムデータ(1)およびバイナリデータ(2)の少なくとも一つを加工して得られるリソース等が挙げられる。
本発明に係る実施形態1の場合では、一例としてHTMLファイル113が採用されている。
例えば、静的に生成されてアプリケーション処理ユニットAに保存されているか、または動的に生成されてアプリケーション処理ユニットAに保存されているHTMLファイル113は、ウェブコンテンツを利用者端末101に表示するためのCSSファイル107、スクリプト言語ファイル108および画像ファイル109への参照部分等、リソースへの参照部分等が記載されている。
利用者端末101に搭載されたブラウザ等によりHTMLファイル113に記載されたプログラムが実行されると、その実行に伴ってCSSファイル107、スクリプト言語ファイル108にそれぞれ記載されたプログラムも実行される。
このHTMLファイル113に記載されたプログラムの実行に伴い、ウェブコンテンツが生成される。
そして利用者端末101で受信されたウェブコンテンツが利用者端末101に通常は表示される。
例えば、PHPファイル105、HTMLファイル113等に記載されているプログラミング言語等のプログラムデータ、ならびに画像ファイル109による画像データ等のバイナリデータにより表示されるウェブコンテンツは、CSSファイル107、スクリプト言語ファイル108等により、利用者端末101の表示環境に応じて表示位置、表示する大きさ、表示用のレイアウト等が指定される。
先に説明した図2に例示される、本発明に係る実施形態1に使用される一例としてのPHPファイル105、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108および画像ファイル109等についてのデータを含むオリジナルデータ200は、アプリケーション処理ユニットAにアクセスすることが予想されるあらゆる利用者端末101の表示環境に対応してウェブコンテンツを表示できる反面、個々の利用者端末101の表示環境に必要とされないオリジナルデータ200の部分も含む。
例えば、利用者端末101がPCの場合には必要なオリジナルデータ200も、利用者端末101がスマートフォンの場合には必要とされないオリジナルデータ200の部分を含む。
逆に利用者端末101が、例えば、スマートフォン場合には必要なオリジナルデータ200も、利用者端末101がPCの場合には必要とされないオリジナルデータ200の部分を含む。
さらには利用者端末101がスマートフォン場合の場合であっても、異なる複数のスマートフォン間では必要とされるオリジナルデータ200の部分も異なる場合もある。
加えて利用者端末101に搭載されているブラウザの種類によっても、必要とされるオリジナルデータ200の部分が異なる場合がある。
利用者端末101に対して一律に同じオリジナルデータ200をアプリケーション処理ユニットAから利用者端末101に送信すれば、オリジナルデータ200の中に、個々の利用者端末101の表示に必要のないデータが含まれる結果になる。
個々の利用者端末101の表示に必要のないデータがアプリケーション処理ユニットAから個々の利用者端末101に送信されることを防止して、表示完了時間を短くするために、オリジナルデータ200がデータ取得・処理ユニットDで処理されて、複数の加工済みデータ201が生成される。
オリジナルデータ200は、プログラムデータおよびバイナリデータの少なくとも一つを含む。
オリジナルデータ200にはマークアップ言語により記載されたデータが含まれる。
またマークアップ言語の記載には、直接記載されたスタイルシート、プログラミング言語、スクリプト言語等の参照情報が含まれる。
またマークアップ言語の記載には、外部のスタイルシート、外部のスクリプト言語、外部のバイナリデータ等への参照情報が含まれる。
なお、ここでいう「外部」とは、マークアップ言語の記載に直接記載はされていないが、マークアップ言語の記載から参照することによりウェブコンテンツとして活用できるものをいう。
具体的には、例えば、マークアップ言語が記載されているファイルの一つであるHTMLファイル113には、HTMLファイル113に直接記載されたHTMLファイルの複数のコード部分、CSSファイル107の複数のコード部分およびスクリプト言語ファイル108の複数のコード部分等の参照情報が含まれる。
また、HTMLファイル113が参照する複数のCSSファイル107の外部のファイル部分および複数のスクリプト言語ファイル108の外部のファイル部分等が含まれる。
画像ファイル、音ファイル、動画ファイルなどの一種もしくは二種以上の外部のファイルに関する参照部分もHTMLファイル113に記載されている。
オリジナルデータ200がネットワーク102を経由して、表示環境が特定された全ての利用者端末101に送信できる。このオリジナルデータ200を受信したそれぞれの利用者端末101のブラウザ等で、HTMLファイル113を実行すれば、オリジナルデータ200に基づくウェブコンテンツ211が表示される。
次に、本発明に係る実施形態1の全体像を示すため、加工済みデータの生成と、リソースの最適化について説明する。
図14は、処理済みデータの生成と、リソースの最適化との関係を説明するためのフローチャートである。
前提として、機種情報ファイルに記載された全てのユーザの利用者端末101にオリジナルデータ200は通常表示可能である。
通常は、利用者端末101の表示に不具合が生じないように、オリジナルデータ200が作成されているからである。
仮にオリジナルデータ200に不具合がある場合には、例えば、データ取得・処理ユニットDに搭載されたヘッドレスブラウザ等のエミュレータ等により、不具合が検出される。この検出された不具合についての情報を元に、個別に不具合を修正することができる。
例えば、最初に、オリジナルデータ200に含まれるプログラムデータおよびバイナリデータを処理する。
オリジナルデータ200に含まれるプログラムデータおよびバイナリデータは、人工知能ユニットB、データ取得・処理ユニットDの順に送信される。
データ取得・処理ユニットDで受信されたプログラムデータおよびバイナリデータは、データ取得・処理ユニットDのオリジナルデータ保存領域1530に保存することができる。
先の図2で示した通り、プログラムデータには、例えば、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108等の一種もしくは二種以上が含まれる。
またバイナリデータには、例えば、画像ファイル、音ファイル、動画ファイル等の一種もしくは二種以上が含まれる。
本発明における実施形態1では、プログラムデータに含まれるマークアップ言語が記載されているファイルの一例として、HTMLファイル113が採用されている。
オリジナルデータ200により、利用者端末101に表示されるウェブコンテンツは、通常、複数のウェブページを有する。この一つひとつのウェブページに、それぞれ複数のプログラムデータとしてのHTMLファイル113が対応する。図2の場合では、HTMLファイル113で示されている。
HTMLファイル113のそれぞれは、利用者端末101のブラウザで再読込操作を必要とせずに表示できる単位となっている。
続いて処理に必要なプログラムデータの全部または一部のデータがデータ取得・処理ユニットDに送信される(ステップS1021、S1022)。
データ取得・処理ユニットDに送信されたプログラムデータの全部または一部のデータは、データ取得・処理ユニットDにより処理される(ステップS1023)。
データ取得・処理ユニットDによるプログラムデータの全部または一部のデータの処理としては、例えば、プログラムデータに含まれる、省略可能なプログラム等の削除、プログラム等の圧縮、処理順序の変更、処理タイミングの変更等が挙げられる。
プログラムデータに関する全部または一部のデータの処理には、例えば、HTMLファイル113等が参照するプログラムデータ、バイナリデータ等のリソースのそれぞれをオブジェクトとして扱う場合が含まれる。HTMLファイル113が参照するプログラムデータ、HTMLファイル113が参照するバイナリデータ等のそれぞれの部分を、HTMLファイル113の中で定義されるオブジェクトとして扱うことにより、簡便に処理済みデータを特定することができる。
同様に、例えば、HTMLファイル113等が参照するスタイルシート、スクリプト言語等についても、データ取得・処理ユニットDで処理される(ステップS1023)。
また、例えば、HTMLファイル113等が参照するバイナリデータ等が処理される(ステップS1024)。
ステップS1023とステップS1024の処理は直列に実施されているが、同時に並行して実施することもできる。
ステップS1023からステップS1024までの処理は、オリジナルデータ200に含まれるそれぞれのリソースに対する処理である。すなわち、オリジナルデータ200に含まれるプログラムデータ、バイナリデータに対する処理である。
オリジナルデータ200に含まれるそれぞれのリソースに対する処理は、同じリソースについて、一回もしくは複数回実施される。
それぞれのリソースに対する処理が実施された回数に対応する、加工済みプログラムデータ、加工済みバイナリデータが得られる。
次に、複数の加工済みデータの中から、利用者端末101に表示可能な処理済みデータ210が選択される(ステップS1025)。
先のステップS1023およびステップS1024はオリジナルデータ200に含まれるそれぞれのリソースに対する処理である。
これに対し、ステップS1025では、加工されたリソースを組み合わせることにより、一つの処理済みデータ210が生成される。この一つの処理済みデータ210が一つのウェブページに該当する。利用者端末101毎に、表示完了時間の異なる複数の処理済みデータ210が生成される。ウェブページのそれぞれは、利用者端末101のブラウザで再読込操作を行うことなくブラウザに表示される一つの単位になっている。
同様に、全てのオリジナルデータ200に含まれる、それぞれのウェブページについて、それぞれ複数の処理済みデータ210が生成される。
続いて、オリジナルデータ200と、複数の処理済みデータ210の中から、一種類の利用者端末101に表示可能なものについて、この利用者端末101に対する表示完了時間を基準に順位付けが実施される(ステップS1026)。
同様のステップにより、順位付けが、全ての処理済みデータ210について実施される。
なお、本発明の開示においては、「表示完了時間」とは、利用者端末101からリクエストが送信されてから、利用者端末101に搭載されているブラウザ等で、そのリクエストに対応するウェブページがユーザにより入力受付可能になるまでの時間をいう。
また「入力受付可能」とは、利用者端末101に搭載されているブラウザが、ユーザによるタップ、クリック、ドラッグ、ドロップ等の操作、テキスト入力等の操作に対して反応する状態になることをいう。
表示完了時間は、後述する予備試験、また予備試験により得られたデータを用いた機械学習等の学習済みモデルを用いた解析により見積もることができる。この見積もりを用いて、表示完了時間を基準とする順位付けが実行できる。
上記のステップを経て、それぞれの利用者端末101に対応する処理済みデータ210が準備される。準備された処理済みデータ210は、データ取得・処理ユニットDからリクエスト処理ユニットCを介してアプリケーション処理ユニットA内部にある加工済みデータ記憶領域130に保存することもできる。
次に利用者端末101からネットワーク102を経て、リクエスト処理ユニットCに送信されたリクエストから、その利用者端末101に表示されるウェブコンテンツが選択される(S1027)。
実際にユーザの利用者端末101から、リクエスト処理ユニットCがリクエストを受信した直後に、リクエストが人工知能ユニットB、データ取得・処理ユニットDの順に信される。
データ取得・処理ユニットDの制御部1512でリクエストの内容が解析される。リクエストの内容に応じて、それぞれの利用者端末101に表示されるウェブコンテンツが選択される。
本発明の開示においては、「リクエスト処理ユニットCがリクエストを受信した直後」とは、リクエスト処理ユニットCが利用者端末101からリクエストを受信してから0.2秒以内、すなわち、200m秒以内を意味する。この時間は、100m秒以内であれば好ましい。
またリクエスト処理ユニットCがリクエストを受信してから利用者端末101が入力受付可能になるまでの時間は200m秒以内であれば好ましく、100m秒以内であればさらに好ましい。
人間が視覚、聴覚等の五感により情報を受け取ってから、実際に行動に移るまでの時間は通常0.2秒程度である。200m秒以内にリクエスト処理ユニットC等が応答すれは、利用者端末101を利用するユーザは、ウェブコンテンツがリアルタイムに利用者端末101のブラウザ等に表示されていると感じることができる。
実際には利用者端末101からリクエスト処理ユニットCを経てデータ取得・処理ユニットDに送信されたリクエストから、その利用者端末101に表示されるウェブコンテンツを構成する処理済みデータ210が選択される(S1027)。
オブジェクト置換済みプログラムとしての最適化されたHTMLファイル113zには、事前に識別情報とともにオブジェクトが準備されている。識別情報に基づいて処理済みデータ210をオブジェクトと対応させるだけで、最適化されたHTMLファイル113zの準備が完了する。
アプリケーション処理ユニットAおよびデータ取得・処理ユニットDの少なくとも一つのユニットに一括保存または分散保存された処理済みデータ210は、ネットワーク102を通じて利用者端末101に送信されて、利用者端末101側でダウンロードされる。
利用者端末101のブラウザ等で最適化されたHTMLファイル113zを実行すると、利用者端末101毎にダウンロードされたリソース等を実行することができる。
また利用者端末101にダウンロードされていなくても、利用者端末101のブラウザ等からネットワーク102を通じて参照することが可能なリソース等を利用者端末101のブラウザ等で実行することもできる。
これらのリソースは先に説明したオブジェクトにより最適化されたHTMLファイル113zで管理されているため、その取捨選択を高速で実施できる。
利用者端末101のブラウザ等で最適化されたHTMLファイル113zを実行して、それぞれの利用者端末101で、処理済みデータ210に基づくウェブコンテンツが表示される(S1028)。
上記の各ステップを経て、本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法を実施することができる。
[処理済みデータが生成されるステップ]
次にオリジナルデータ200から、処理済みデータ210が生成されるステップについて詳しく説明する。
処理済みデータ210が生成されるステップは、例えば、リクエスト処理ユニットCが利用者端末101からリクエストを受信する前、リクエスト処理ユニットCが利用者端末101からリクエストを受信した直後およびアプリケーション実行サーバ103と利用者端末101との通信が終了した後の少なくとも一つのタイミング等で実施される。
プログラムデータに含まれるマークアップ言語には、利用者端末101に表示されてユーザが直接読み取ることができる、文字、数字、記号等を有する文書が含まれる。またこの文書には利用者端末101に表示するのに必要な、DOM(Document Object Model)およびDOMのツリー構造を構成するNodeオブジェクト等も含まれる。
Nodeオブジェクトには、段落、見出し、箇条書き等を識別する記号であるマークアップが含まれる。
マークアップ言語に含まれるマークアップの中で、どのマークアップがプログラミング言語、スタイルシート、スクリプト言語等に指定されているかを追跡することにより、マークアップ言語に含まれる文書のどの部分が、例えば、HTMLファイル、CSSファイル、スクリプト言語ファイル等に記載されたコード部分により制御されているのかをデータ取得・処理ユニットDの制御部1512により自動で検出することができる。
例えば、マークアップ言語から、文書以外のデータ、すなわち、マークアップ言語を含むHTMLファイル113に直接記載されているHTMLファイルの複数のコード部分、マークアップ言語の一つであるHTMLファイル113に直接記載されているスタイルシートの複数のコード部分、マークアップ言語の一つであるHTMLファイル113に直接記載されているスクリプト言語の複数のコード部分、マークアップ言語の一つであるHTMLファイル113に記載されている外部のスタイルシートへの参照部分、マークアップ言語の一つであるHTMLファイル113に記載されている外部のスクリプト言語への参照部分、マークアップ言語の一つであるHTMLファイル113に記載されている外部のバイナリデータへの参照部分等のそれぞれが、識別情報ともにオブジェクトとなる。そしてこれらを扱うオブジェクトが、最適化されたHTMLファイル113zの中で使用される。
これらのオブジェクトは、識別情報と共にアプリケーション実行サーバ103の処理済みデータ記憶領域130(図8参照)に保存される。
なお本発明の開示においては、定義したオブジェクトを扱うプロラミング言語としてJavaScript(登録商標)が使用されている。オブジェクトを扱うプログラムについては、上記目的を達成できるものであれば、特に限定はない。
そして、参照部分が、プロラムのオブジェクトに置換された、最適化されたHTMLファイル113zが生成される。この最適化されたHTMLファイル113zは、オリジナルデータ200が含むウェブコンテンツ211を構成する複数のウェブページのそれぞれに対応して複数生成される。
複数生成される最適化されたHTMLファイル113zは、静的に生成されてもよいし、動的に生成されてもよい。
複数生成される最適化されたHTMLファイル113zは、ブラウザを再読込せずに表示される一つのウェブページに対応して一または二以上存在する。
また利用者端末101の種類に応じて一または二以上存在する。
本発明の開示では、それぞれの最適化されたHTMLファイル113zの中で使用されるオブジェクトは、それぞれ識別情報が付与されてデータ取得・処理ユニットDの処理済みデータ記憶領域130に保存される。これらの識別情報により処理の対象となるコード部分等の参照部分等を特定できる。
またプログラムで定義されたオブジェクトとしてのデータに記載されている、外部のバイナリデータへの参照部分から、処理の対象となる、オリジナルデータ200に含まれる画像ファイル、音ファイル、動画ファイル等のバイナリデータを特定できる。
本発明の実施形態1では、オリジナルデータ200および複数の加工済みデータ201の少なくとも一つのリソースは、プログラムデータおよびバイナリデータの少なくとも一つを含む。
またプログラムデータは、マークアップ言語、プログラミング言語、スタイルシート、スクリプト言語などの一種もしくは二種以上で記載されたプログラム等を含む。
一方、バイナリデータは、画像ファイル、音ファイル、動画ファイルなどの一種もしくは二種以上のファイルを含む。
これらのプログラム等から、実行させるプログラムの部分および実行させないプログラムの部分が利用者端末101の表示環境ごとにそれぞれ特定される。
一方、利用者端末101の表示環境は、利用者端末101の表示装置1104に表示可能な環境であり、利用者端末101の種類、OSの種類、ブラウザの種類、表示装置1104の大きさ、単位面積当たりの表示画素数等により利用者端末101ごとに定まる。
図15は、データ取得・処理ユニットDの記憶装置1501の設定ファイル格納部1523に保存された機種情報ファイル126を説明するための模式図である。
利用者端末101としては、スマートフォン、フィーチャーフォン等の携帯情報端末、PDA、タブレット等の情報表示端末、スマートウォッチ、スマートメガネ等のウェアラブル通信端末、PC等のコンピュータ等ごとに種類の違いがある。
また例えば、同じスマートフォンでも、搭載されるOSの違い、搭載されるブラウザの違い、表示画面の大きさ、表示画面の素子数等の表示環境の違い等もある。
これらの表示環境の違いはそれぞれの利用者端末101についての公開された入手可能な機種情報により特定される。
利用者端末101の表示環境については、利用者端末101毎に製造メーカー等がその仕様を公開している。この公開情報に基づいて、利用者端末101についての表示環境が整理される。この表示環境は利用者端末101毎に複数存在する。
図15に示す通り、利用者端末101を特定する識別情報、利用者端末101が、携帯情報端末であるか、情報表示端末であるか、またはコンピュータであるか等を示す機種情報、利用者端末101に搭載されているOSの種類についてのOS情報、利用者端末101に搭載されているブラウザ情報、利用者端末101の表示画面の画素数、表示画面のサイズ等を示す表示環境情報等に対応する情報がデータ取得・処理ユニットDの機種情報ファイル126に格納されている。
なお、図15では説明の便宜上、表形式でデータが模式的に表現されているが、実際には、JSON,CSV,TSV等の各種ファイル形式等、データベース形式等でデータが保存されている。
通常、利用者端末101は大量生産され市場に供給される。このため、利用者端末101の表示環境は概ね規格化されている。データ取得・処理ユニットDの設定ファイル格納部1523にある機種情報ファイル126に格納されている表示環境の情報は無限にあるわけではなく、有限時間内に機種情報ファイル126に対して整理できる。
機種情報ファイル126は、個々の全ての利用者端末101についての情報を含んでもよいし、一定のカテゴリーに属する利用者端末101についての情報をグループ化して、そのグループ情報を含んでもよい。グループ情報は任意の一つの利用者端末101を選択した際に、グループ情報から機種情報ファイル126に基づいて、その利用者端末101の表示環境を特定できるものであれば、その表現形式に特に限定はない。
データ取得・処理ユニットDの制御部1512は、機種情報ファイル126に記載された全ての利用者端末101の表示環境に基づいて、先に説明したプログラムおよびファイル等から、実行させるプログラムの部分および実行させないプログラムの部分を利用者端末101の表示環境ごとにそれぞれ特定する。
実行させるプログラムの部分の具体例としては、例えば、利用者端末101の表示装置1104に表示される部分に寄与するプログラムの部分等が挙げられる。
実行させないプログラムの部分の具体例としては、例えば、利用者端末101の表示装置1104に表示されない部分に寄与するプログラムの部分等が挙げられる。
例えば、スマートフォンのみで使用されるプログラムの部分は、スマートフォン以外の利用者端末101では使用されないから、スマートフォン以外の利用者端末101では、スマートフォンのみで使用されるプログラムの部分は実行されないプログラムの部分に該当する。
実行させるプログラムの部分および実行させないプログラムの部分は、利用者端末101毎に通常異なる。
利用者端末101毎に実行させるプログラムの部分および実行させないプログラムの部分を特定するためには、例えば、機種情報ファイル126に記載された全ての利用者端末101の情報に基づいて、利用者端末101毎に、事前に実際に予備試験を行って決定する。また本願発明の実施、予備試験等により得られたデータを学習して得られた学習済みモデルに従って決定する等の手法が採用される。
予備試験や実際の本願発明の実施により得られたデータを用いて、人工知能ユニットによる機械学習等によってモデルを形成することができる。形成された学習済みモデルから得られる、リスク許容度内の予測は、予備試験の結果と同等に扱うことができる。
この予備試験およびモデル形成の少なくとも一方のステップを繰り返せば、概ね、オリジナルデータ200のどの部分が利用者端末101毎の実行に必要なプログラムの部分に該当するかの傾向が分かる。
オリジナルデータ200のどの部分が利用者端末101の実行に必要なプログラムに該当するかどうかの許容度の判断については、全ての利用者端末101または任意に抽出された利用者端末101について、事前に実際に予備試験等を行って検証することもできる。
なお、本発明の開示において「事前に」との意味は、利用者端末101からユーザが実際にリクエスト処理ユニットCに対してリクエストを送信する前に、という意味である。
本発明の開示では、例えば、データ取得・処理ユニットDの制御部1512に、ヘッドレスブラウザ等のエミュレータと呼ばれる利用者端末101に搭載されたブラウザ環境と同様の環境が搭載されている。例えば、このエミュレータ等を用いて、予備試験および機械学習等によるモデル形成を行うことができる。
本来なら実行させるプログラムの部分に該当するのに、間違って実行させないプログラムの部分と判断されて削除された場合には、利用者端末101の表示に不具合が生じる。
不具合が生じるかどうかについては、例えば、データ取得・処理ユニットDに搭載された利用者端末101に対応するヘッドレスブラウザ等のエミュレータを用いた予備試験等により、エラー信号が生じるかどうかを手がかりに、事前に調べることができる。このエラー信号がデータ取得・処理ユニットの制御部1512で検出されると、実行させないプログラムの部分を選択する際に、どの段階で不具合が生じたのかを特定することができる。
予備試験等により、ある程度オリジナルデータ200のどの部分に実行させないプログラムの部分があるのかは判明する。しかしこれまでプログラムを実行したことがない場合等、予備情報が存在しない状況では、予備試験ではオリジナルデータ200のどの部分が実行させないプログラムに該当するのかは詳細にはわからない。
そこで、例えば、一つの利用者端末101に搭載されたブラウザがエラーを発生させていない状態から、一つずつ実行させないプログラムの部分をプログラムの中から外す操作を繰り返す。そして利用者端末101に搭載されたブラウザがエラー信号を発したことを最初に検出した時点で、最後に外した実行させないプログラムの部分が、本来なら実行させるプログラムの部分に該当することが分かる。
上記の予備試験等で得られたデータを利用して、機械学習等によるモデル形成を行い、学習済みモデルを用いてブラウザのエラー発生状況を検証することによっても、エラーを生じさせる部分を特定するとが可能である。
また例えば、一つずつ、もしくは関連する複数の組み合わせ毎に、実行させないプログラムの部分をプログラムの中から外しては、エミュレータ中で再現された利用者端末101の表示内容をキャプチャ画面として逐次画像ファイルに保存する操作を繰り返す。
オリジナルデータ200に基づくキャプチャ画面と、その後のキャプチャ画面とを比較し、両者が一致しなくなった時点で最後に外した実行させないプログラムの部分が、本来なら実行させるプログラムの部分に該当すことが分かる。
この操作を機械学習等を通じてモデルを形成することにより、問題を生じさせるプログラムの部分を検出することができる。
上記の操作により、一つの利用者端末101について、実際にオリジナルデータ200のどの部分が利用者端末101の実行に必要なプログラムの部分に該当するかが分かる。
この操作を実現させるプログラムがデータ取得・処理ユニットの制御部1512に保存されている。このデータ取得・処理ユニットの制御部1512に保存されているプログラムを実行することにより、上記の操作が自動で実施される。
上記の操作を繰り返して、機種情報ファイル126に記載された利用者端末101の情報に基づいて、事前に実際に予備試験を行う。またこの予備試験を通じて学習済みモデルによるモデル形成を行う。この予備試験およびモデル形成等の結果から、全ての利用者端末101について、利用者端末101毎に実行させるプログラムの部分および実行させないプログラムの部分の情報が特定される。特定された情報は、機種情報ファイル126に関連付けられて、識別情報と共にデータ取得・処理ユニットDの設定ファイル格納部1523に保存される。
次に、利用者端末101毎に複数の特定された実行させるプログラムの部分のうち、優先して実行させるプログラムの部分と遅延して実行させるプログラムの部分の実行順序を決定するステップについて説明する。
一つの例として、ここではファーストビューと呼ばれる利用者端末101の画面に最初に表示されるウェブコンテンツ211の部分の表示が優先される場合を取り上げて説明する。
ユーザがウェブコンテンツ211に含まれるウェブページを閲覧するときにもっとも重要なのは、ファーストビューに含まれるコンテンツである。
ファーストビューを構成するリソースはできるだけ早く配信して、それ以外のファーストビューを構成しないリソースは遅く配信、場合によっては削除する。
ファーストビューの表示に関連しないデータがアプリケーション処理ユニットAおよびデータ取得・処理ユニットDからなる群より選ばれる少なくとも一つから選択されて利用者端末101に先に送信されると、利用者端末101のファーストビューの表示に関連しないデータ処理に時間を要するため、利用者端末101のファーストビューの表示が遅延する。
この遅延を防止するために、例えば、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108等に含まれるプログラムのうち、ファーストビューの表示に関係がないプログラム部分の実行を後回しにし、ファーストビューに関係するプログラムの実行を優先させる。またそれぞれのプログラムの実行タイミングも調整される。
このようにプログラムの実行順序および実行タイミングを変更することにより、ファーストビューの表示を速く完結することができ、ウェブサイトからのユーザの離脱を軽減することができる。
なお、ファーストビューの表示がどのように実現されるかについては、本発明に係る実施形態5で、さらに詳細に説明する。
次に、処理済みデータ210が生成されるステップについて、具体的に説明する。
処理済みデータ210が生成されるステップは、オリジナルデータに含まれるリソース、すなわち、マークアップ言語、プログラミング言語、スタイルシート、スクリプト言語等の一種もしくは二種以上を有するプログラムデータと、オリジナルデータに含まれる画像ファイル、音ファイル、動画ファイルなどの一種もしくは二種以上のバイナリデータのそれぞれについて実施される。
オリジナルデータに含まれる、マークアップ言語、プログラミング言語、スタイルシート、スクリプト言語等の一種もしくは二種以上により記載されたプログラムデータに含まれるプログラムの部分は、先に説明したとおり、最適化されたHTMLファイル113zの中で、識別情報と共にプログラムのそれぞれのオブジェクトを構成する。
同様に、プログラムの部分が参照するオリジナルデータに含まれる、画像ファイル、音ファイル、動画ファイルなどの一種もしくは二種以上のファイルに関する参照部分も、最適化されたHTMLファイル113zの中で、識別情報と併せてプログラムのオブジェクトを構成する。
図16は、処理前のHTMLファイルと最適化されたHTMLファイルとの対応関係を説明するための概念図である。
先の図13では、処理前のHTMLファイル113に記載されたプログラムデータ、バイナリデータ等の参照部分が、プログラムの関数に使用されるオブジェクトに置換されることを説明した。
図16では、処理前のHTMLファイル113に記載されたプログラムデータ、バイナリデータ等の参照部分が具体的にどのように最適化されたHTMLファイル113zに対応して反映されるかについて説明する。
本発明の開示では、オリジナルデータ200に含まれるそれぞれのリソースを加工することにより、利用者端末101の表示環境ごとに複数の加工済みリソースからなる複数の加工済みデータ201が生成される。
つまり、一つの利用者端末101について、複数の加工済みデータ201が生成される。この加工済みデータ201の生成は、識別情報を指定して、プログラムにより定義されたオブジェクトから、それぞれのプログラムの部分を呼び出し、呼び出されたプログラムの部分に対して、追加、移動、削除、変更等の改変を行うことにより実施される。
図16に示されるように、オリジナルデータ200に含まれるHTMLファイル113は、例えば、HTMLコード部分113a,113b,113c、CSSコード部分10
7a,107b,107c、スクリプト言語コード部分108a,108b,108c等を含む。
CSSコード部分107a,107b,107cのそれぞれは、オブジェクトとして、識別情報と共に、それぞれ、オブジェクトF107a,F107b,F107c等に定義される。
同様に、スクリプト言語コード部分108a,108b,108cのそれぞれは、オブジェクトとして、識別情報と共に、それぞれ、オブジェクトF108a,F108b,F108c等に定義される。
処理済みデータ210が生成されるステップは、プログラムデータから不要部分が削除されるステップ、必要部分が圧縮されるステップ、実行順序が変更されるステップ、実行タイミングが変更されるステップ、重複実行時間が短縮されるステップ等の一種もしくは二種以上、
バイナリデータから、単位面積当たりの表示画素数、単位時間当たりの録画録音密度、容量の大きさ、保存形式等の一種もしくは二種以上が変換されるステップ等の一種もしくは二種以上を含む。
[利用者端末の表示環境ごとに不要部分が削除されるステップ]
図17は、利用者端末の表示環境ごとに不要部分が削除されるステップを説明するためのフローチャートである。
なお、一定回数処理を行っても対応する処理が実行できない場合には、そのステップを終了して次のステップの処理が実行される。以下のステップについても同様である。
機種情報ファイル126の識別情報に基づいて特定された利用者端末101毎に、例えば、利用者端末101が利用するHTMLファイル113ならびに、HTMLファイル113の実行時に参照されるCSSファイル107、スクリプト言語ファイル108等が特定される。これらの特定は、図15に示すオブジェクトについての識別情報を指定することにより実施される。
そしてHTMLファイル113のうち、例えば、利用者端末101が使用しないHTMLファイル113の部分113x、CSSファイル107のうち、利用者端末101が使用しないCSSファイル107の部分107xおよびスクリプト言語ファイル108のうち、利用者端末101が使用しないスクリプト言語ファイル108の部分108xがそれぞれ特定される。
これらのファイルのうち、利用者端末101に使用されない部分113x、107xおよび108xが削除される。
例えば、実際の削除は、オブジェクトとして何も指定しないことにより簡単に実施できる。
具体的には、例えば、機種情報ファイル126の識別情報に基づいて特定された利用者端末101がPCの場合には、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108等のいずれかに含まれる、PCではない携帯情報端末、情報表示端末等に対応する部分の情報は削除される。
逆に、例えば、機種情報ファイル126の識別情報に基づいて特定された利用者端末101がスマートフォンの場合には、HTMLファイル113、CSSファイル107およびスクリプト言語ファイル108のいずれかに含まれる情報のうち、スマートフォンに使用されない部分の情報は削除される。
HTMLファイル113は、例えば、段落、見出し、箇条書き等を識別する記号であるマークアップを含む。
HTMLファイル113に含まれるマークアップの中で、どのマークアップが指定されているかを追跡することにより、CSSファイル107、スクリプト言語ファイル108等が指定するマークアップを手がかりに、それぞれHTMLファイル113のどの部分がCSSファイル107、スクリプト言語ファイル108等により制御されているのかが分かる。
HTMLファイル113のどの部分がCSSファイル107、スクリプト言語ファイル108等により制御されているかの情報を手がかりに、データ取得・処理ユニットDのコントロルユニットD300により、機種情報ファイル126に記載された全ての利用者端末101の表示環境に基づいて、データ取得・処理ユニットDのコントロールユニットD300により、処理済みデータの不要部分の削除が実現される。
次にユーザは、HTMLファイル113、CSSファイル107およびスクリプト言語ファイル108のそれぞれを直接閲覧しない。
ユーザは、HTMLファイル113等により生成されたウェブコンテンツ211を利用者端末101のブラウザを通して閲覧する。
一方、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108等のそれぞれは、例えば、これらのファイルに記載された内容をCLIなどに表示した時に人間が内容を理解できるように工夫された表示情報が含まれている。これらの表示情報は、アプリケーション実行サーバ103等の管理者にとっては必要な情報であるが、ウェブコンテンツ211には反映されないため、利用者端末101を使うユーザにとっては不要な情報である。
例えば、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108等に含まれる表示情報のうち、削除しても、ウェブコンテンツ211の表示に影響を与えないものが存在する。これらの表示情報が削除される。
削除される表示情報としては、例えば、ウェブコンテンツ211の表示に影響を与えないスペース、タブ、改行や段落の区切りを示す改行情報、各ファイルに記載された保守管理上の注意書き等のテキスト情報等が挙げられる。
HTMLファイル113、CSSファイル107、スクリプト言語ファイル108等に含まれる表示情報を解析することにより、データ取得・処理ユニットDのコントロールユニットD300により、機種情報ファイル126に記載された全ての利用者端末101の表示環境に基づいて、処理済みデータの不要部分の削除が実現される。
なお、実際には最適化されたHTMLファイル113zの中では、識別情報と併せてプログラムのオブジェクトが指定されている。削除される該当部分のオブジェクトを何もない(null)を指定することにより、利用者端末101のブラウザで最適化されたHTMLファイル113zを実行すれば、削除が実現される。
[利用者端末の表示環境ごとに必要部分が圧縮されるステップ]
図18は、利用者端末の表示環境ごとに必要部分が圧縮されるステップを説明するためのフローチャートである。
一般に、一つの同じ情報を表現する方法は複数存在する。例えば、数字の百万を意味する「1,000,000」との表記は、「10E6」と表記できる。これは10の6乗との意味である。前者は桁の区切りを示すコンマも含めて9文字が必要なのに対し、後者はアルファベット文字も含めて4文字で表現可能である。
一つの同じ情報を、アプリケーション実行サーバ103に搭載されるアプリケーション処理ユニットA等の各ユニット、利用者端末101等がより速く処理できる別の表現形式に変換する操作を本発明の開示では圧縮という。
このような圧縮操作は、例えば、LHA、ZIP、GZIP、BROTLI等の既存の可逆圧縮技術等の一種もしくは二種以上を利用して実施することができる。
HTMLファイル113、CSSファイル107、スクリプト言語ファイル108等のプログラムデータならびにこれらの処理済みデータの一種もしくは二種以上について、データ取得・処理ユニットDの制御部1512により、必要部分の圧縮が実現される。
なお、必要部分が圧縮されるステップにおいては、圧縮形式は、一種もしくは二種以上を使用することができる。また必要部分が圧縮されるステップでは、全てを圧縮してもよいし、一部を圧縮してもよい。画像ファイル109等のバイナリデータの圧縮についても同様である。
[実行順序が変更されるステップ]
ウェブコンテンツ211のうち、例えば、ファーストビューと呼ばれる利用者端末101の画面に最初に表示されるウェブコンテンツ211の部分に関連するプログラムの部分の実行を先に行う。続いて、ウェブコンテンツ211のうち、ファーストビューと呼ばれる利用者端末101の画面に最初に表示されるウェブコンテンツ211の部分以外に関連するプログラムの部分の実行を後に行う。
実行順序については、先に説明した通り、ファーストビューと呼ばれる利用者端末101の画面に最初に表示されるウェブコンテンツ211の部分の表示が優先される。
オリジナルデータに含まれる、マークアップ言語、プログラミング言語、スタイルシート、スクリプト言語等の一種もしくは二種以上のプログラムデータが有するプログラムの部分は、通常、記載された順番に利用者端末101側でそれぞれ実施される。
しかし、先に実行されるはずのプログラムの部分に、後から実行されるプログラムの部分の参照があった場合には、後から実行されるプログラムの部分が利用者端末101で実行が完了するまでは、先に実行されるはずのプログラムの部分が待機することになる。
この待機の時間は、一つひとつのプログラムの部分については十分無視できるほどに通常は短いため、見過ごされやすい。
ところがオリジナルデータ200の規模が大きくなるに従って、待機時間の影響は大きくなる傾向がある。待機時間の影響を放置するとユーザがウェブサイトから離脱を起こす一つの要因となりうる。このため実行順序が変更されて、無駄な待機時間が発生しないように処理される。
具体的には、プログラムの部分が、先に実行されるプログラムの部分の前に、後から実行されるプログラムの部分を参照している場合には、後から実行されるプログラムの部分を繰り上げて先に実行させる場合等が挙げられる。
またプログラムの部分が、実行できない要素を参照している場合、例えば、過去には存在したが現在は存在していないコード部分等を参照している場合、現在は存在していない変数を参照している場合等が挙げられる。この場合には、問題のあるコード部分を実行せず、例えば、順番を飛ばして後のコード部分を先行して実施させる。
ファーストビューに関連するプログラムの部分以外のプログラムについても実行順序が変更されて、遅延実行される。
遅延実行されるプログラムについては、これらのプログラムのうち、同期して実行するのか、非同期に実行するのか、優先して実行するのか等が、データ取得・処理ユニットDに搭載されたコントロールユニットd300に記載されているプログラムにより制御される。
[実行タイミングが変更されるステップ]
実行タイミングについては、例えば、ファーストビューと呼ばれる利用者端末101の画面に最初に表示されるウェブコンテンツ211の部分の表示に関連するプログラムの部分の実行が完了した後に、ファーストビュー以外のウェブコンテンツ211の部分の表示に関連するプログラムの実行が開始される。
DOMの形成、DOMのツリー構造に関連付けられたコンテンツの利用者端末101へのダウンロード、画像ファイル、音ファイル、動画ファイル等の主要なリソースのダウンロード等の実行タイミングが調整される。
互いに影響を及ぼし合うプログラムの部分については、一つのプログラムの部分の実行が終了してから、次のプログラムの部分の実行が開始されるように、同期してプログラムの部分の実行タイミングが調整される。
また互いに影響を及ぼさないプログラムの部分については、それぞれ非同期にプログラムの部分の実行タイミングが調整される。
[重複実行時間が短縮されるステップ]
一方、例えば、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108等のそれぞれのプログラムデータについて、これらのファイルに記載されたプログラムの実行時間の調整も実施される。
図19は、HTMLファイル113で参照されるスクリプト言語ファイル部分108a108dが直列的に実行されるステップを説明するための図である。
HTMLファイル113に複数のスクリプト言語ファイル部分108a~108dの参照情報が記載されている。
例えば、HTMLファイル113が利用者端末101で実行されると、スクリプト言語ファイル部分108a~108dのそれぞれは、通常はこの順番に、直列的に実行される。
ここで例えば、スクリプト言語ファイル108dの表示完了時間の相対値が仮に100であり、スクリプト言語ファイル部分108a~108cの表示完了時間の相対値がそれぞれ仮に5、10および15であったとする。
ここでスクリプト言語ファイル部分108a~108dがこの順番に実行されたとすると、利用者端末101の表示が完了するまでに、表示完了時間の相対値を基準に5+10+15+100=130に相当する表示完了時間の処理が必要になる。
図20は、HTMLファイル113に記載されたスクリプト言語ファイル部分108a~108cとスクリプト言語ファイル108dとが並列的に実行されるステップを説明するための図である。
この場合には、スクリプト言語ファイル108の実行順序を整理して、ウェブコンテンツ211の生成時間の短縮が可能である。
図20の場合であれば、例えば、スクリプト言語ファイル108dが実行されると同時に、スクリプト言語ファイル部分108a~108cが並行して処理されるようにHTMLファイル113を処理する。
この処理により、スクリプト言語ファイル108dの表示完了時間の相対値100に対応する処理が実行されている間に、表示完了時間の相対値を基準に5+10+15=30に相当する表示完了時間の処理を完結できる。
そうするとスクリプト言語ファイル部分108a~108dの表示完了時間を、相対値を基準に130から100に削減することができる。
図21は、HTMLファイル113に記載されたスクリプト言語ファイル108dの実行が後回しにされるステップを説明するための図である。
先にスクリプト言語ファイル部分108a~108cのみを参照する情報をHTMLファイル113に記載しておき、HTMLファイル113の最後にスクリプト言語ファイル108dを参照するように処理することもできる。
このように処理すれば、相対的に実行時間の長いスクリプト言語ファイル108dの処理を待つことなく他のスクリプト言語ファイル108a~108cの実行を開始することができる。
どのファイルをどの順番に処理すれば最適になるかは、実際に順番を変化させて、それぞれの利用者端末101毎に、ウェブコンテンツ211の表示完了時間を計測して比較することにより決定することができる。
最適化されたHTMLファイル113z、処理済みCSSファイル132および処理済みスクリプト言語ファイル133が生成されるステップは、機種情報ファイル126に記載された全ての利用者端末101について実施される。
HTMLファイル113が複数のスクリプト言語ファイル部分108a~108c等をどの順番でどのように処理するのか追跡することにより、データ取得・処理ユニットDのコントロールユニットd300により、機種情報ファイル126に記載された内容に該当する全ての利用者端末101の表示環境に基づいて、処理済みデータ210の新たな生成が実現される。
上記のステップを経て、オリジナルデータ200に含まれる、マークアップ言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つ有するデータを処理することができる。
[バイナリデータから、単位面積当たりの表示画素数、単位時間当たりの録画録音密度、容量の大きさ、保存形式からなる群より選ばれる一つを変換して容量が削減されるステップ]
次に例えば、HTMLファイル113、CSSファイル107およびスクリプト言語ファイル108が参照する全ての画像ファイル109等について、機種情報ファイル126の識別情報に基づいて特定された利用者端末101毎に表示サイズ、容量および種類の異なる処理済み画像ファイル134がそれぞれ生成される。
画像ファイル109の表示サイズの変更は、例えば、縦と横の長さの比を変更せずに、縦と横の長さが異なる処理済み画像ファイル134が複数生成されることにより実施される。
画像ファイル109の容量の変更は、例えば、画像ファイル109の単位面積当たりの画素数の変更、単位時間当たりの録画録音密度の変更等により実施される。
画像ファイル109の種類の変更は、例えば、画像ファイル109の種類がPNGであった場合には、JPEG、WEBP、JPEG2000等への種類の変更により実施される。
処理済み画像ファイル134が生成されるステップは、機種情報ファイル126に記載された全ての利用者端末101について実施される。
上記のステップを経て、新たな複数の変換済みバイナリデータを含む処理済みデータ210が生成される。
バイナリデータが動画ファイル、音ファイル等の場合も、同様の手順を経て、新たな複数の変換済みバイナリデータを含む処理済みデータ210を生成することができる。
図22は、処理済みデータが生成されるステップを説明するためのフローチャートである。
例えば、オリジナルデータの表示完了時間の測定に加えて、最適化されたHTMLファイル113z、処理済みCSSファイル132および処理済みスクリプト言語ファイル133等のそれぞれについて、表示完了時間が測定される。
利用者端末101毎、ウェブページ毎等に複数ある最適化されたHTMLファイル113zは、参照するプログラムのオブジェクトを変化させた場合に、処理前のHTMLファイル113と比較して、どの程度の表示完了時間がかかるのかが測定される。
処理済みCSSファイル132は、処理前のCSSファイル107と比較して、要素として、どの程度の表示完了時間がかかるのかが測定される。
複数ある処理済みスクリプト言語ファイル133は、処理前のスクリプト言語ファイル108と比較して、要素として、どの程度の表示完了時間がかかるのかが測定される。
バイナリデータについても、複数ある加工済み画像ファイル等と、加工前の画像ファイル等と比較して、要素として、どの程度の表示完了時間がかかるのかが測定される。
これらの測定は、機種情報ファイル126の情報に従って、利用者端末101の表示環境ごとに、アプリケーション処理ユニットAが利用者端末101からリクエストを受信する前、アプリケーション処理ユニットAが利用者端末101からリクエストを受信した直後の少なくとも一方の間に実施される。
なお図22では直列処理が例示されているが、それぞれの処理は並列に実施することもできる。
上記のステップにより、それぞれの利用者端末101について、オリジナルデータ200および複数の加工済みデータ201が準備される。
なお、オリジナルデータ200および複数の加工済みデータ201に含まれる、それぞれの要素についての表示完了時間の最も短いものを選択すれば、全体としてのオリジナルデータ200および複数の加工済みデータ201の中で最も表示完了時間の短いものが得られるか、というと、そうとは限らない。
要素の組み合わせによっても、それぞれの要素が互いに影響を及ぼし合って、オリジナルデータ200および複数の加工済みデータ201のそれぞれについての表示完了時間が変動するからである。
オリジナルデータ200および複数の処理済みデータ210のうち、どの組み合わせが最も表示完了時間が短くなるかについて不明なものについて、利用者端末101毎に、実際に事前に予備試験を行って決定される。
またこの予備試験のデータに基づいて、機械学習によるモデル形成を行うことにより、オリジナルデータ200および複数の処理済みデータ210のうち、どの組み合わせが最も表示完了時間が短くなるかについて決定される。
[ウェブコンテンツの自動高速表示制御方法に使用されるオリジナルデータ200の更新]
図23は、オリジナルデータ200に追加、移動、削除、変更等の改変があったことを知らせる信号が動作制御部へ送信されるステップを説明するためのフローチャートである。
また図23は、オリジナルデータ200の改変の信号により、加工済みデータが新たに生成されるステップを説明するためのフローチャートである。
オリジナルデータ200を監視して、オリジナルデータ200に追加、移動、削除、変更等の改変があったことを検出した時点で、加工済みデータが新たに生成される。
ウェブコンテンツ211の自動高速表示制御方法に使用されるオリジナルデータ200は、最初にアプリケーション処理ユニットAの記憶装置1101にあるオリジナルデータ記憶領域104に保存されたものをそのまま使用し続けることができる。
一方、ユーザは古い情報に加えて最新の情報の入手も通常希望する。このユーザの希望に応えてサーバ管理者はオリジナルデータ200を更新する作業が通常発生する。
オリジナルデータ200に改変があったことを検出するためは、一定時間経過後にオリジナルデータ200に変化が生じているかを追跡すればよい。
オリジナルデータ200はアプリケーション処理ユニットAのオリジナルデータ記憶領域104に保存されている。一定時間経過後にオリジナルデータ200に改変があった場合には、改変後の内容がオリジナルデータ記憶領域104に保存される。
そして先に保存された内容と、後に保存された内容のそれぞれを、例えば、データ取得・処理ユニットDに搭載されたコントロールユニットd300に記載されたプログラム等に基づいて、アプリケーション処理ユニットAの監視制御部1115で監視する。先に保存された内容と、後に保存された内容とをそれぞれ比較すればオリジナルデータ200のどの部分に差異が生じたかを、例えば、図7等に示される監視制御部1115等に記載されたプログラムにより検出することができる。
差異の有無を調べる時間間隔を短く設定することにより、瞬時に変更があったことを検出できる。
オリジナルデータ200に改変があった場合には、アプリケーション処理ユニットAの監視制御部1115は、例えば、オリジナルデータ200に含まれるHTMLファイル113、CSSファイル107、スクリプト言語ファイル108および画像ファイル109のうち、改変のあった部分を特定する。
そして改変があったことを知らせる信号が監視制御部1115から動作制御部1116およびデータ取得・処理ユニットDに搭載されたコントロールユニットd300に送信される。
改変を知らせる信号を受信したデータ取得・処理ユニットDに搭載されたコントロールユニットd300は、オリジナルデータ200のうち改変があった部分について利用者端末101の表示環境に応じた加工済みデータ201を処理して、新たな加工済みデータ202を生成する。
アプリケーション処理ユニットAの加工済みデータ記憶領域114に保存されている処理済みデータ210のうち、改変があった部分に対応するデータが、データ取得・処理ユニットDに搭載されたコントロールユニットd300により、処理済みデータ202により置換される。
本発明の開示においては、オリジナルデータ200に関連するデータについてのタイムスタンプと呼ばれる、最新保存時間についての情報が変更されたものについて、実際にオリジナルデータ200等について改変があったかどうかを検証せずに、動的に生成された処理済みデータ202により、先に存在する処理済みデータ210等の該当部分を置換することもできる。
オリジナルデータ200が改変されると、その改変とほぼ同時に、オリジナルデータ200の改変に伴って新たに生成された処理済みデータ202により、先に生成されている処理済みデータ210が置換される動作が継続的に実施される。
データ取得・処理ユニットDのコントロールユニットd300に記載されたプログラムが動作し、利用者端末101の表示環境に応じた処理済みデータ202が抽出処理されて、動作制御記憶部1517に保存される。
上記のステップを経て、アプリケーション処理ユニットAが利用者端末101からリクエストを受信する前に、アプリケーション処理ユニットAが利用できる記憶領域に保存されたオリジナルデータ200から利用者端末の表示環境に応じた処理済みデータ210が新たに生成される。
[利用者端末の表示環境を特定するステップ]
次にリクエスト処理ユニットCが利用者端末101からリクエストを受信した後に、データ取得・処理ユニットDが、利用者端末101の表示環境を特定するステップについて説明する。
ネットワーク102を通じて利用者端末101がネットワーク102を通じてリクエスト処理ユニットCに接続可能な状態になると、利用者端末101から送信されたリクエストはネットワーク102を経由してリクエスト処理ユニットCに受信される。そしてそれぞれのユニットに受信される。
このリクエストは利用者端末101に搭載されるブラウザを経由して行われる。
データ取得・処理ユニットDが受信したリクエストには、例えば、利用者端末101の機種情報、ブラウザの種類、OSの種類等を示すユーザエージェント、利用者端末101のブラウザに表示されるウェブサイトのどのページからリクエストが送信されたかを示すリファラ等が含まれる。
これらのユーザエージェント、リファラ等の情報を利用して、アクセプトヘッダー、クッキー等によりデータ取得・処理ユニットは、利用者端末101の表示環境を特定できる。
[利用者端末の表示環境に表示可能なデータを含むウェブコンテンツが生成されるステップ]
次に、利用者端末101の表示環境に表示可能なデータを含むウェブコンテンツ211が生成されるステップについて説明する。
既に、先に説明したステップにより、事前に利用者端末101毎に表示できるウェブコンテンツ211は生成されている。このウェブコンテンツ211と、利用者端末101との対応付けを行う。
利用者端末101のブラウザからのリクエストがネットワーク102を通じてリクエスト処理ユニットCに送信されると、このリクエストはアプリケーション処理ユニットAと人工知能ユニットBに送信される。このリクエストは人工知能ユニットBの監視制御部1415で受信される。
またデータ取得・処理ユニットDに対して、人工知能ユニットBの監視制御部1415から、リクエストが送信される。
利用者端末101の表示環境に表示可能なデータを含むウェブコンテンツ211が選択されるステップは、利用者端末101のブラウザからのリクエストがリクエスト処理ユニットCに送信された後に実施される。
データ取得・処理ユニットDに対して利用者端末101のブラウザからのリクエストがリクエスト処理ユニットCに送信されたことをデータ取得・処理ユニットDの制御部1512が検出する。
利用者端末101の個別の表示環境の特定は、アクセプトヘッダー、クッキー等の情報を、先に説明した機種情報ファイル126と照合することにより実現される。
利用者端末101の表示環境が特定されると、この表示環境を使って表示できるオリジナルデータ200が特定される。具体的には、オリジナルデータ200に含まれる、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108、画像ファイル109等が特定される。
同様に、利用者端末101の表示環境が特定されると、この表示環境を使って表示できる処理済みデータ210が特定される。具体的には最適化されたHTMLファイル113z、処理済みCSSファイル132、処理済みスクリプト言語ファイル133、画像ファイル109、処理済み画像ファイル134が特定される。
実際には最適化されたHTMLファイル113zの中で定義されたプログラムのオブジェクトの形でそれぞれのコード部分、ファイル部分等は処理済みデータ記憶領域130に保存されている。
どのオブジェクトを用いた場合に、どの程度の表示完了時間を要するかは事前の予備試験、予備試験等のデータを利用して機械学習等で形成された学習済みモデル等による検討で判明している。
このため、リクエスト処理ユニットCが利用者端末101からリクエストを受信した直後に、利用者端末の表示環境に表示可能なデータを含むウェブコンテンツ211が、データ取得・処理ユニットDに搭載されたコントロールユニットd300により選択される。この段階では、利用者端末101に表示可能なウェブコンテンツ211は複数存在する。
そして予備試験によりあらかじめ判明している個々の利用者端末101に表示される表示完了時間が最も短い順番、およびこのデータを用いた機械学習により得られている学習済みデータの少なくとも一方に基づいて、それぞれの利用者端末101に表示されるウェブコンテンツ211がデータ取得・処理ユニットDの制御部1512でそれぞれ一つに決定される。
このウェブコンテンツ211を利用者端末101で表示するためのプログラムデータとなる加工済みデータ201が、データ取得・処理ユニットDの制御部1512からアプリケーション処理ユニットAに送信される。そして加工済みデータ201の内容がアプリケーション処理ユニットAに配置されたオリジナルデータ200の内容を反映するHTMLファイル113に代えて、最適化されたHTMLファイル113zに反映される。
最適化されたHTMLファイル113zは、アプリケーション処理ユニットA、リクエスト処理ユニットCを経て、ネットワーク102を通じて表示環境が特定された全ての利用者端末101についてそれぞれの利用者端末101にダウンロードされる。
この最適化されたHTMLファイル113zを受信した利用者端末101毎のブラウザ等で、最適化されたHTMLファイル113zを実行して、それぞれの利用者端末101に対応したウェブコンテンツ211が利用者端末101毎のブラウザ等に表示される。
[表示完了時間に基づく最適リソースの順位付けのステップ]
次に、これらのオリジナルデータ200および複数の加工済みデータ201について、実際にこれらのオリジナルデータ200および複数の加工済みデータ201を含むウェブコンテンツ211がそれぞれの利用者端末101について選択されるか説明する。
ウェブコンテンツ211を表示するために、オリジナルデータ200および複数の加工済みデータ201のうちどれを選択するかは、事前に予備試験によりウェブコンテンツ211の表示完了時間を計測して比較する。そしてこれらの表示完了時間のデータを用いて機械学習を行い学習済みモデルを形成する。
予備試験および学習済みモデル形成の少なくとも一方によりウェブコンテンツ211の表示完了時間を計測等して比較するステップはデータ取得・処理ユニットDで実施される。
ウェブコンテンツ211の表示完了時間を計測等して比較するステップにより、一つの利用者端末101に関する、オリジナルデータ200および複数の加工済みデータ201のそれぞれのデータについての表示完了時間に関連して、どれが優位かについての情報が、データ取得・処理ユニットDのオリジナルデータ保存領域104および処理済みデータ保存領域130にそれぞれ保存される。
ウェブコンテンツ211の表示完了時間は、オリジナルデータ200および複数の加工済みデータ201に含まれるプログラムの部分に大きく依存する。
プログラムの部分は容量がより削減されたものが、容量がそれほど削減されていないものよりも通常は表示完了時間が短くなるので好ましい。
ただし、容量が小さいもの全てが、表示完了時間が短くなるとは限らない。さらにはバイナリデータについても、容量が小さいものが表示完了時間が短くなるとは限らない。
場合によっては、どの複数の加工済みデータ201よりも、オリジナルデータ200が、表示が速く完了する可能性もある。
そこで本発明の開示においては、オリジナルデータ200および複数の加工済みデータ201を用いて、それぞれの利用者端末101における表示完了時間を事前に予備試験等を実施して計測することにより、それぞれのデータについて実際に表示完了時間が短い順番を特定できる。またこれらのデータを用いて機械学習を行い、学習済みモデルを形成することができる。この学習済みモデルを用いて実際に表示完了時間が短い順番を特定することができる。
オリジナルデータ200は、ウェブコンテンツ211を構成する複数のウェブページにそれぞれ対応する複数のHTMLファイル113と、複数のHTMLファイル113のそれぞれから参照実行される各種プログラムデータおよびバイナリデータを含む。
また加工済みデータ201は、ウェブコンテンツ211を構成する複数のウェブページにそれぞれ対応する複数の最適化されたHTMLファイル113zと、複数の最適化されたHTMLファイル113zのそれぞれから参照されて実行される各種処理済みプログラムデータおよび処理済みバイナリデータを含む。
これらのオリジナルデータ200および加工済みデータ201がそれぞれウェブコンテンツ211の表示に必要なリソースである。
またこれらのリソースの中から、ユーザの利用者端末101毎に利用者端末101の表示に必要となるリソースが、最適リソースである。最適リソースは、一つの利用者端末101毎に複数存在する。
処理済みデータの生成は、ユーザの利用者端末101の表示環境ごと、ウェブコンテンツ211の表示に必要なリソースごとに行われる。
また、ユーザの利用者端末101の表示環境ごとに実行可能な最適リソースが選択された場合、その最適リソースが、保存されている各種ファイルの容量、各種ファイルの種類を指定する拡張子等が同じ場合でも、その最適リソースを実現するために必要な表現形式は一つと限らない。このため、複数の最適リソースの中に、見かけが同じ最適リソースに見える複数の最適リソースが存在した場合でも、実際に実行した場合に表示完了時間に差が生じる最適リソースが含まれる場合がある。
明らかに他の最適リソースよりも表示完了時間が短いことが判明している最適リソースを除き、一つの利用者端末101に対する最適リソース同士の表示完了時間に関する情報は、例えば、実際に事前に予備試験を行い決定される。また予備試験等により得られた表示完了時間に関するデータを用いた機械学習等によるモデル形成を用いた方法によっても、表示完了時間を比較的正確に決定することができる。
[データのバックアップ]
先に説明した、データ取得・処理ユニットDの記憶装置1501は時間実行制御部1520を備えることもできる。
時間実行制御部1520に接続された時間実行記憶部1521に保存された実行プログラム1522により、一定時間経過後に、例えばアプリケーション処理ユニットAのオリジナルデータ200、処理済みデータ210,202等の本発明の実施形態1に係るウェブコンテンツの自動高速表示制御方法を実施するために必要なデータやプログラムの予備保存データが複製され、データ取得・処理ユニットDの時間実行記憶部1521に保存される。
また一定時間経過後に、例えば、予備保存データの中から一定期間を経過した古いものが削除される。
データ取得・処理ユニットDの時間実行記憶部1521に保存された予備保存データは、データ取得・処理ユニットDに加えて、アプリケーション処理ユニットAの補助記憶部1105にネットワーク102を通じて転送し、保存することもできる。
またオリジナルデータ200に改変があった場合、先に説明したアプリケーション処理ユニットAでオリジナルデータ200を監視して、対応することができる。
本発明の開示においては、例えば、オリジナルデータ200の監視はデータ取得・処理ユニットDにより実施することもできる。
例えば、オリジナルデータ200の一部に改変があると、オリジナルデータ200の改変部分が特定され、この改変部分に対応した加工済みデータ201が生成される。
先に説明した予備試験等により、オリジナルデータ200および複数の加工済みデータ201等の中から、利用者端末101毎に、最も表示完了時間が短い処理済みデータ210が特定される。
次にデータ取得・処理ユニットDに搭載されたコントロールユニットd300により、利用者端末101に表示可能な、オリジナルデータ200ならびに複数の加工済みデータ201の中から選ばれた処理済みデータ210が特定される。
そして処理済みデータ210が、データ取得・処理ユニットDからアプリケーション処理ユニットAの順番に送信され、ネットワーク102を通じて利用者端末101で受信される。
受信された処理済みデータ210が利用者端末101のブラウザで表示される。
同様に、オリジナルデータ200の全てに改変がある場合には、データ取得・処理ユニットDのコントロールユニットd300により、利用者端末101に表示可能な処理済みデータ202が、データ取得・処理ユニットDからアプリケーション処理ユニットAを経て送信され、ネットワーク102を介して利用者端末101で受信される。
受信された処理済みデータ202が、利用者端末101のブラウザで表示される。
またオリジナルデータ200に変更、追加、削除等の改変があれば、利用者端末101からリクエストがリクエスト処理ユニットCに受信されると、データ取得・処理ユニットDの制御部1512により制御されたアプリケーション処理ユニットAを経て、利用者端末101にウェブコンテンツ211のうち更新されたウェブコンテンツ212を含む処理済みデータ202が都度送信される。
例えば、オリジナルデータ200の全てに改変がある場合には、ウェブコンテンツ211の全てが更新されたウェブコンテンツ212に置換される。
利用者端末101では、更新されたウェブコンテンツ212を含むウェブコンテンツ211を表示することができる。
上記一連のステップにより、アプリケーション処理ユニットAからリクエスト処理ユニットC、ネットワーク102を経て送信されたウェブコンテンツ212を表示するための処理済みデータ202を受信した利用者端末101は、利用者端末101に搭載されたブラウザにウェブコンテンツ212を、初回から、高速に表示することができる。
本発明の開示においては、例えば、アプリケーション実行サーバ103で最適化されたHTMLファイル113zが利用者端末101毎にダウンロードされ、利用者端末101のブラウザ等で最適化されたHTMLファイル113zが実行される。最適化されたHTMLファイル113zに基づくウェブコンテンツが利用者端末101のブラウザ等に表示される。
最初にユーザが利用者端末101のブラウザ等からネットワーク102を通じてアプリケーション実行サーバ103にリクエストを送信した場合、レスポンスとしてアプリケーション実行サーバ103は、オリジナルデータ200に含まれるHTMLファイル113等を利用者端末101に送信することができる。その一方で、アプリケーション実行サーバ103は最適化されたHTMLファイル113z等も送信する。
HTMLファイル113と最適化されたHTMLファイル113zはそれぞれ併存して利用者端末101に保存されてもよいが、通常は、HTMLファイル113は最適化されたHTMLファイル113zが利用者端末101毎にダウンロードされる。
最適化されたHTMLファイル113zに含まれるプログラムのそれぞれのオブジェクトとして、HTMLファイル113と同じ内容を再現するようにオブジェクトを選択すれば最適化されたHTMLファイル113zを用いてHTMLファイル113を簡単に再現することもできる。
例えば、利用者端末101にダウンロードされた最適化されたHTMLファイル113zは、最適化されたHTMLファイル113zに直接記載されたリソースに関する参照部分、最適化されたHTMLファイル113zが参照する外部のリソースに関する参照部分等のリソース情報の全てが、全てプログラムのオブジェクトとして扱うことのできる形式に変換されている。それぞれのオブジェクトには識別情報が関連付けられていて、どのオブジェクトが最適化されたHTMLファイル113zのどの部分で使用されるオブジェクトなのかを、例えば、データ取得・処理ユニットDのデータベース1106等により管理することができる。
利用者端末101のブラウザ等は、人工知能ユニットBの立案した戦略案、つまり戦略ファイル1412に従って、最適化されたHTMLファイル113zが参照する全てのリソースについてのオブジェクトをデータ取得・処理ユニットDからリクエスト処理ユニットCを介して、ネットワーク102を経由して受け取ることができる。
これらのリソースを最適化されたHTMLファイル113zのそれぞれのオブジェクトに対応付けることにより、瞬時に利用者端末101のブラウザ等にウェブコンテンツを表示することができる。そして利用者端末101で表示に使用されるリソースの利用者端末101毎に対するダウンロードの順番、タイミングが、人工知能ユニットBにより立案された戦略案に基づいて実施される。
[人工知能ユニットBが戦略案を立案するステップ]
次に人工知能ユニットBが、ウェブコンテンツを利用者端末101に表示する戦略案を立案するステップについて説明する。
リクエスト処理ユニットCを介してアプリケーション処理ユニットAと人工知能ユニットBとが相互に通信可能となる。
また人工知能ユニットBとデータ取得・処理ユニットDも相互に通信可能となる。
リクエスト処理ユニットCを介して、アプリケーション処理ユニットAと通信可能になったデータ取得・処理ユニットDは、アプリケーション処理ユニットAのオリジナルデータ記憶領域104に保存されたオリジナルデータ200をデータ取得・処理ユニットDに保存して加工する。加工されたデータはデータ取得・処理ユニットDの加工済みデータ記憶領域1540に保存される。
またアプリケーション処理ユニットAのオリジナルデータ記憶領域104に保存されたオリジナルデータ200を読取りながら加工し、加工された結果をアプリケーション処理ユニットAの工済みデータ記憶領域130に保存することもできる。
実際にはアプリケーション処理ユニットAに保存されているオリジナルデータ200は頻繁に更新されたり、動的に生成されたりする。つまりオリジナルデータ200は経時的に変化する。
オリジナルデータ200が経時的に変化するたびに、先に説明した各ステップが実施されて、新たな処理済みデータ210が生成される。
人工知能ユニットBはこの過程をそれぞれの利用者端末101にウェブコンテンツを表示させる時間との関係、ウェブコンテンツを利用者端末101のブラウザに表示させることを妨げる結果となるエラーが発生する可能性、期待通りのウェブコンテンツが利用者端末101のブラウザに表示されているかについての表示の完全性等のそれぞれのデータに関して学習する。
これらのデータが共通して持つ属性を、例えば統計処理により解析して、ウェブコンテンツの表示完了時間の長短と関連付ける。
例えば、オリジナルデータ200に含まれるHTMLファイル113は、HTMLコード部分113a,113b,113c、CSSコード部分107a,107b,107c、スクリプト言語コード部分108a,108b,108c等を含む。
本発明の実施形態1では、オリジナルデータ200および複数の処理済みデータ210の少なくとも一つは、プログラムデータおよびバイナリデータの少なくとも一つを含む。
またプログラムデータは、マークアップ言語、プログラミング言語、スタイルシート、スクリプト言語などの一種もしくは二種以上で記載されたプログラムを含む。
一方、バイナリデータは、画像ファイル、音ファイル、動画ファイルなどの一種もしくは二種以上のファイルを含む。
これらのプログラムデータ、バイナリデータ等から、実行させるプログラムの部分および実行させないプログラムの部分が利用者端末101の表示環境ごとにそれぞれ特定される。
例えば、オリジナルデータ200が、プログラムデータおよびバイナリデータの少なくとも一つを含み、
プログラムデータが、マークアップ言語、プログラミング言語、スタイルシート、スクリプト言語からなる群より選ばれる少なくとも一つの記載を含み、
バイナリデータが、画像ファイル、音ファイルおよび動画ファイルの少なくとも1つを含む場合、
オリジナルデータ200に含まれる、マークアップ言語、プログラミング言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つの記載を含むデータから、利用者端末101の表示環境ごとに不要部分が削除されるステップが実施されたデータ取得・処理ユニットDに関する情報601、
オリジナルデータ200に含まれる、マークアップ言語、プログラミング言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つのデータから、利用者端末の表示環境ごとに必要部分が圧縮されるステップが実施されたデータ取得・処理ユニットDに関する情報602、
オリジナルデータ200に含まれる、マークアップ言語、プログラミング言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つのデータから、利用者端末の表示環境ごとに実行順序が変更されるステップが実施されたデータ取得・処理ユニットDに関する情報603、
オリジナルデータ200に含まれる、マークアップ言語、プログラミング言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つのデータから、利用者端末の表示環境ごとに実行タイミングが変更されるステップが実施されたデータ取得・処理ユニットDに関する情報604、
オリジナルデータ200に含まれる、バイナリデータから、単位面積当たりの表示画素数、単位時間当たりの録画録音密度、容量および保存形式からなる群より選ばれる一つが変換されるステップが実施されたデータ取得・処理ユニットDに関する情報605、
オリジナルデータ200ならびに複数の加工済みデータの中から、どのデータを組み合わせて処理済みデータ210が生成されたかについての情報606、
オリジナルデータ200ならびに複数の加工済みデータからなる群より選ばれる少なくとも一つを含む処理済みデータ210と、処理済みデータ210が利用者端末101で入力受付可能になるまでの時間に関する情報607
利用者端末101毎に、アプリケーション処理ユニットA、データ取得・処理ユニットDおよびクラウド配信サーバ608のいずれから利用者端末101に送信されたかに関する情報608等について、人工知能ユニットBは学習する。
予備試験により、どのデータ取得・処理ユニットDにどのステップを担当させたか、その結果、どのような加工済みデータ201が生成したか、オリジナルデータ200ならびに複数の加工済みデータ201を組み合わせて生成された処理済みデータ210について、仮に利用者端末101からリクエスト処理ユニットCにリクエストがあった場合に、どの程度の表示完了時間で処理済みデータ210に基づくウェブコンテンツが利用者端末101で入力受付可能になるか等についての情報、利用者端末101のIPアドレスから推測できるユーザの位置情報等が既に得られている。
これらの情報を元に、利用者端末101からネットワーク102を通じてリクエスト処理ユニットCにリクエストがあった場合に、処理済みデータ210に基づくウェブコンテンツが利用者端末101で入力受付可能になるまでの時間と、それぞれに要したステップとの相関関係を人工知能ユニットBは学習し、学習済みモデルを形成する。
学習済みモデルを形成する際には、利用者端末101毎にウェブコンテンツをより速く表示するための処理済みデータが共通して有する属性に着目して人工知能ユニットBに学習させることが好ましい。
人工知能ユニットBが学習した相関関係に基づいて、一つの利用者端末101に表示させるために必要なオリジナルデータ200が特定されると、オリジナルデータ200に含まれる、マークアップ言語、プログラミング言語、スタイルシート、スクリプト言語等を、データ取得・処理ユニットDで、どのように加工すれば処理済みデータ210に基づくウェブコンテンツが利用者端末101で入力受付可能になるまでの時間を最短にできるかを予測することができる。
同様に、人工知能ユニットBが学習した相関関係に基づいて、一つの利用者端末101に表示させるために必要なオリジナルデータ200が特定されると、オリジナルデータ200に含まれる、バイナリデータ等を、データ取得・処理ユニットDで、どのように加工すれば処理済みデータ210に基づくウェブコンテンツが利用者端末101で入力受付可能になるまでの時間を最短にできるかを予測することができる。
また、人工知能ユニットBが学習した相関関係に基づいて、オリジナルデータ200ならびにデータ取得・処理ユニットDで処理された複数の加工済みデータ201のうち、どのデータを組み合わせれば処理済みデータ210に基づくウェブコンテンツが利用者端末101で入力受付可能になるまでの時間を最短にできるかを予測することができる。
さらに、人工知能ユニットBが学習した相関関係に基づいて、データ取得・処理ユニットで生成された処理済みデータ210を、利用者端末101にダウンロードさせてから、利用者端末101毎のブラウザ等で実行させるのか、またはデータ取得・処理ユニットで生成された処理済みデータ210を利用者端末101毎のブラウザからネットワーク102を通じてアプリケーション実行サーバ103側で実行すればよいのかを予測することができる。
そして人工知能ユニットBが上記の情報を学習して得られた予測が実際に正しいかどうかを、利用者端末101に搭載されたブラウザ環境と同様の環境を再現可能なヘッドレスブラウザ等のエミュレータを用いて予備試験により検証できる。例えば、このエミュレータはデータ取得・処理ユニットDの制御部1512に搭載することができる。
予備試験の結果、予測通り、処理済みデータ210に基づくウェブコンテンツが利用者端末101で入力受付可能になるまでの時間を短縮することができれば加点する。逆に処理済みデータ210に基づくウェブコンテンツが利用者端末101で入力受付可能になるまでの時間が遅延する結果になれば減点する。
この加点と減点についての情報が、人工知能ユニットBの人工知能制御部1410にフィードバックされる。フィードバックされた情報を元に、人工知能ユニットBはその結果を人工知能ユニットBが立案した戦略案に反映することができる。このステップを繰り返して行うことにより、学習済みモデルが形成される。
人工知能ユニットBの学習の方法に特に限定はない。公知の人工知能に関する方法を適宜選択して採用することができる。
このような人工知能を活用する方法としては、例えば、機械学習、深層学習等の方法が挙げられる。本発明の開示においてはニューラルネットワーク、強化学習によるモデル形成と予測、ベイズ推定による予測、DBスキャン法によるクラスタリング等が利用される。必要に応じてKNN法、決定木法、MT法等の人工知能アルゴリズムを併用することもできる。
[オリジナルデータ200から加工済みデータ201の生成の具体例]
先に説明した図16に示されるように、例えば、オリジナルデータ200に含まれるHTMLファイル113は、HTMLコード部分113a,113b,113c、CSSコード部分107a,107b,107c、スクリプト言語コード部分108a,108b,108c等を含む。
人工知能ユニットBの立案した戦略案により、HTMLファイル113に含まれるCSSコード部分107a,107b,107cに代えて、オブジェクトとしてのF107a1,F107b1,F107c1のそれぞれのスタイルシートが代入されている。
これらのCSSコード部分F107a1,F107b1,F107c1等は、例えば、データ取得・処理ユニットDに保存されている。
これらのスタイルシートF107a1,F107b1,F107c1等のコード部分のデ
ータは、最初に利用者端末101からアプリケーション実行サーバ103にリクエストが送信された際に、アプリケーション実行サーバ103からネットワーク102を通じて利用者端末101にダウンロードされて保存されている。
利用者端末101のブラウザ等で最適化されたHTMLファイル113zが実行されると、CSSコード部分F107a1,F107b1,F107c1等の内容が実行される。
CSSコード部分F107a1,F107b1,F107c1等は、利用者端末101にダウンロードしてから実行することもできるし、利用者端末101に搭載されたブラウザ等から、ネットワーク102を通じて、アプリケーション実行サーバ103等に保存されているものを用いて実行することもできる。
スクリプト言語コード部分についてもCSSコード部分の場合と同様である。
人工知能ユニットBの立案した戦略案により、HTMLファイル113に含まれるスクリプト言語コード部分108a,108b,108cに代えて、オブジェクトとしてのF108a1,F108b1,F108c1のそれぞれのスクリプト言語プログラムが代入されている。
スクリプト言語プログラムF108a1,F108b1,F108c1等は、例えば、データ取得・処理ユニットDに保存されている。
これらのスクリプト言語プログラムのコード部分は、利用者端末101にダウンロードしてから実行することもできるし、利用者端末101に搭載されたブラウザ等から、ネットワーク102を通じて、アプリケーション実行サーバ103等に保存されているものを用いて実行することもできる。
最適化されたHTMLファイル113zに含まれるオブジェクトとしてのF107a1,F107b1,F107c1のそれぞれのスタイルシート等、
最適化されたHTMLファイル113zに含まれるオブジェクトとしてのF108a1,F108b1,F108c1のそれぞれのスクリプト言語プログラム等について、
利用者端末101にダウンロードさせてから実行させるのか、または、データ取得・処理ユニットD等に保存しておき、利用者端末101のブラウザからネットワーク102を通じて実行させるのか等の各ステップは、人工知能ユニットBの立案した戦略案に従って実施される。
オリジナルデータ200に含まれるHTMLファイル113に変更があった場合、動的に生成されてその内容が時間の経過と共に変化する場合でも、本発明に係る実施形態1で対応できる。
先に説明した図16におけるHTMLファイル113と最適化されたHTMLファイル113zとの関係は、ある瞬間に切り出された状態として理解することができる。
HTMLファイル113と最適化されたHTMLファイル113zとの関係はオブジェクトとして、識別情報と共に対応付けられている。
HTMLファイル113に変化があった場合には、過去のHTMLファイル113の内容と現在のHTMLファイル113の内容が異なる。例えば、アプリケーション処理ユニットAはHTMLファイル113に変更があった場合には、タイムスタンプが変更される、変更内容の差分を出力する等の機能を備えている。この機能を利用して、HTMLファイル113のうち変更のあった部分に対応する、最適化されたHTMLファイル113zのオブジェクトを識別情報により特定することができる。
変更されたオブジェクトのそれぞれに対して、加工済みデータをデータ取得・処理ユニットDが準備して識別情報により対応づける。そのオブジェクトが最適化されたHTMLファイル113zに代入される。
具体的にどのオブジェクトをどのように最適化されたHTMLファイル113zに反映させるかは、先に説明した場合と同様に、人工知能ユニットBの立案した戦略案に従って実施される。
上記に説明したステップによりデータ取得・処理ユニットDにより、アプリケーション処理ユニットAに保存されたオリジナルデータ200を加工した履歴を保存することができる。
アプリケーション処理ユニットAにリクエストを送信することが予想される全ての利用者端末101毎に個別に表示可能な複数の加工済みデータ201を生成しておき、事前にオリジナルデータ200ならびに複数の加工済みデータ201の中から、最速で利用者端末101に対してウェブコンテンツが入力受付可能になる処理済みデータ210を予備試験、学習済みモデル等により特定する。
処理済みデータ210が特定されるまでに、アプリケーション処理ユニットAに保存されているオリジナルデータ200をデータ取得・処理ユニットDで、どのように加工したか、得られた加工済みデータ201等をどのように組み合わせたか等の知見から、最速で利用者端末101に対してウェブコンテンツが入力受付可能になる処理済みデータ210にはどの属性に着目すればよいかの相関関係に関するデータが人工知能ユニットBのデータベース1406に蓄積される。
アプリケーション処理ユニットAに保存されているオリジナルデータ200等の処理に関連する相関関係を解析することにより、上記属性に関連する統計的な指標が得られる。
この属性を人工知能ユニットBが立案する戦略案に反映させることにより、データ取得・処理ユニットDが全ての場合について検討を試みた、最速で利用者端末101に対してウェブコンテンツが入力受付可能になる処理済みデータ210と全く同じデータが適用できない場合が仮に生じたとしても、その状況を人工知能ユニットBの戦略案を用いて新たなデータを作成して対応することができる。
本発明に係る発明の実施形態1のウェブコンテンツの自動高速表示制御方法によれば、利用者端末101にウェブコンテンツを表示させるためのオリジナルデータ200が保存されたアプリケーション処理ユニットAにアクセスできるリクエスト処理ユニットCを設置すれば本発明に係る発明の実施形態1のウェブコンテンツの自動高速表示制御方法の実施準備が整う。
アプリケーション処理ユニットAに対して特別な仕様変更は必要ないから、簡単に本発明に係るウェブコンテンツの自動高速表示制御方法を実施することができる。
実際にアプリケーション処理ユニットAに利用者端末101からリクエストがあれば、それぞれのリクエストに応答してオリジナルデータ200をネットワーク102を通じて利用者端末101に送信し、オリジナルデータ200に基づくウェブコンテンツが利用者端末101のブラウザ等に表示され、利用者端末101上で受付可能になるまでの時間よりも短い時間で、オリジナルデータ200が各ユニットにより処理されて処理済みデータ210に置換されて、利用者端末101に送信される。
そしてオリジナルデータ200に基づくウェブコンテンツが利用者101毎に表示され、利用者端末101上で受付可能になるまでに、処理済みデータ210に基づくウェブコンテンツが利用者101に表示され、利用者端末101上で受付可能にすることができる。
本発明に係る発明の実施形態1のウェブコンテンツの自動高速表示制御方法の場合、ユーザによる利用者端末101からのリクエストを、ネットワーク102を通じて受信できるアプリケーション実行サーバ103であって、そのリクエストに対応したオリジナルデータ200をレスポンスとして、ネットワーク102を通じて利用者端末101に送信し、オリジナルデータ200によるウェブコンテンツを利用者端末101に表示できる機能を備えたアプリケーション実行サーバ103が使用される。
この機能を備えたアプリケーション実行サーバ103であれば、アプリケーション処理ユニットAとしての機能を実現することができる。
本発明に係る発明の実施形態1のウェブコンテンツの自動高速表示制御方法は、例えば、従来運用されているウェブコンテンツを表示するためのサーバに組み込むことができる。この場合、アプリケーション実行サーバ103に動作環境の変更等のマイグレーションを行うことにより実施できる。
本発明の実施形態1の場合、オリジナルデータ200が最適化され、表示完了時間の短い最適リソースを含む加工済みデータ201を用いて、オリジナルデータ200を使用した場合よりも短い表示完了時間で利用者端末101毎のブラウザ等に高速にウェブコンテンツを表示することができる。
[実施形態2:リバースプロキシ型]
図24は、本発明の実施形態2に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムであり、リバースプロキシ型の構成を記載した概略図である。
本発明に係る発明の実施形態2のリバースプロキシ型は、先に説明した実施形態1のオールインワン型と比較して、アプリケーション実行サーバ103に加えてリバースプロキシサーバ1703を使用する点、
またリバースプロキシサーバ1703に、人工知能ユニットB、リクエスト処理ユニットCおよびデータ取得・処理ユニットDが設置されている点以外は、実施形態1のオールインワン型の場合と同様である。
アプリケーション実行サーバ103およびリバースプロキシサーバ1703は、ネットワーク102を通じて互いにデータを送受信することができる。アプリケーション実行サ
ーバ103およびリバースプロキシサーバ1703にはそれぞれ通信用インターフェイス1102および通信用インターフェイス1702が設置されていて、ネットワーク102を通じてデータを送受信できる。
以下に、実施形態1のオールインワン型と異なる点を中心に説明する。
リバースプロキシサーバ1703のハードウェア構成は、実施形態1に使用したアプリケーション実行サーバ103の場合と全く同様である。
本発明の実施形態2の場合において、実施形態1に使用したアプリケーション実行サーバ103の場合と同様、リバースプロキシサーバ1703についても一または二以上の物理マシン、一または二以上の仮想マシンならびに一または二以上のコンテナからなる群より選ばれる少なくとも一つの実行環境を採用することができる。
図25は、本発明の実施形態2に係るウェブコンテンツの自動高速表示制御方法に使用される、リバースプロキシサーバ1703の記憶装置1701に含まれるハードウェア構成の詳細を説明するための図である。
記憶装置1701にはOS(OPERATING SYSTEM)1705が導入されていて、中央演算処理装置1700、記憶装置1701の各記憶領域、各プログラム等を制御できる。
図25に示されるように、リバースプロキシサーバ1703の記憶装置1701には人工知能ユニットB、リクエスト処理ユニットC、データ取得・処理ユニットDおよびデータベース1706設置されている。
またアプリケーション実行サーバ103の記憶装置1101にはアプリケーション処理ユニットA、オリジナルデータ記憶領域104およびデータベース1106を備えている。オリジナルデータ記憶領域104には、利用者端末101に表示されるオリジナルデータ200が保存されている。
上記以外のハードウェア構成については実施形態1のオールインワン型の場合と同様である。
[ユーザからのリクエストに対するリバースプロキシ型による処理の流れ]
図26~図28のそれぞれは、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
ユーザが操作する利用者端末101のブラウザ等から送信されたリクエストは、ネットワーク102を通じてリバースプロキシサーバ1703のリクエスト処理ユニットCで受信される。
このリクエストは、リクエスト処理ユニットCから、アプリケーション実行サーバ103のアプリケーション処理ユニットAに送信される。
リクエストを受信したアプリケーション処理ユニットAはレスポンスとして例えば、HTMLファイル113等のオリジナルデータ200を、リクエスト処理ユニットCに送信する。HTMLファイル113等のオリジナルデータ200は、リクエスト処理ユニットCを通じて人工知能ユニットB、データ取得・処理ユニットDの順に送信される。
人工知能ユニットBで立案された戦略案に基づいて、データ取得・処理ユニットDがHTMLファイル113等のオリジナルデータ200の最適化を行う。
最適化されたHTMLファイル113z等の加工済みデータ201は、データ取得・処理ユニットDおよびリクエスト処理ユニットCを経て、ネットワーク102を通じてユーザの利用者端末101に送信される。
最適化されたHTMLファイル113z等の加工済みデータ201には、HTMLファイル113z等により参照されてウェブコンテンツを利用者端末101のブラウザ等に表示するためのオブジェクトが記載されている。
図27に示されるように、利用者端末101のブラウザ等で最適化されたHTMLファイル113z等が実行される。この場合、最適化されたHTMLファイル113z等に記載されたオブジェクトに基づいて、オブジェクトの識別情報により対応する最適リソースを選択することができる。データ取得・処理ユニットDから最適リソースが取得され、リクエスト処理ユニットCから利用者端末101に最適リソースが送信される。
図27に示されるように、最適リソースが存在しない場合には、リクエスト処理ユニットCは、オリジナルデータ200から対応するリソースを取得する。取得されたリソースは、リクエスト処理ユニットCから利用者端末101に送信される。最適リソースが存在しない場合には、バックグランドでデータ取得・処理ユニットDで最適リソースが生成されて、オリジナルデータによるリソースと置換される。
この場合、バックグランドでデータ取得・処理ユニットDが最適リソースの生成を進める。最適リソースが生成されるとオリジナルデータによるリソースは、最適リソースにより置換される。
また図28に示されるように、例えば、ユーザによる利用者端末101に搭載されたブラウザ等からリクエストがリバースプロキシサーバ1703等に送信される前等、利用者端末101とリバースプロキシサーバ1703が互いに通信をしていない時に、データ取得・処理ユニットDに設置されたクローラーユニット200、アプリケーション実行サーバ103に保存されたオリジナルデータ200等をクロールする。
クロールされたオリジナルデータ200等に基づいて、データ取得・処理ユニットDに設置された最適化ユニットd100により最適化されたリソースが生成され、リバースプロキシサーバ1703のデータベース1706に蓄積される。
データ取得・処理ユニットDに設置されたクローラーユニットd200は定期的にアプリケーション処理ユニットAに保存されたオリジナルデータ200をクロールし、自動的に最適化されたリソースが生成され、データベース1706に蓄積されるステップが実施される。またオリジナルデータ200を監視し、オリジナルデータ200に変化があればオリジナルデータ200をクロールし、自動的に最適化されたリソースが生成され、利用者端末101の最適リソースとして活用される点は、先に説明した実施形態1の場合と同様である。
利用者端末101毎にどの最適リソースが選択されるかは、先に説明した実施形態1の場合と同様、人工知能ユニットBが立案した戦略案に基づいて決定される。
本発明の実施形態2に係るウェブコンテンツの自動高速表示制御方法を実施しない場合には、リバースプロキシサーバ1703のリクエスト処理ユニットCを経由してアプリケーション実行サーバ103に送信されたリクエストを受信したアプリケーション処理ユニットAは、ユーザの利用者端末101にウェブコンテンツを表示するためのオリジナルデータ200をレスポンスとして送信する。このレスポンスはリバースプロキシサーバ1703のリクエスト処理ユニットCを経て、ネットワーク102を通じて利用者端末101に受信される。そして利用者端末101に搭載されたブラウザ等により、オリジナルデータ200に基づくウェブコンテンツが利用者端末101に表示される。
本発明に係る発明の実施形態2のウェブコンテンツの自動高速表示制御方法によれば、利用者端末101にウェブコンテンツを表示させるためのオリジナルデータ200が保存されたアプリケーション処理ユニットAを含むアプリケーション実行サーバ103を運用しつつ、新たにリバースプロキシサーバ1703を導入することにより実施形態2のリバースプロキシ型を実施することができる。
実施形態2のリバースプロキシ型では、オリジナルデータ200等のマイグレーションの必要がない。またアプリケーション実行サーバ103のDNSをリバースプロキシサーバ1703に変更することにより、簡単に本発明の実施形態2に係るウェブコンテンツの自動高速表示制御方法を実施することができる。
本発明の実施形態2の場合も、先に説明した実施形態1の場合と同様、オリジナルデータ200が最適化され、表示完了時間の短い最適リソースを含む加工済みデータ201を用いて、オリジナルデータ200を使用した場合よりも短い表示完了時間で利用者端末101毎のブラウザ等に高速にウェブコンテンツを表示することができる。
[実施形態3:ナノエージェント型]
図29は、本発明の実施形態3に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムであり、ナノエージェント型の構成を記載した概略図である。
本発明に係る発明の実施形態3のナノエージェント型は、先に説明した実施形態1のオールインワン型と比較して、アプリケーション実行サーバ103に加えて人工知能サーバ1403およびデータ取得サーバ1603を使用する点が異なる。
またアプリケーション実行サーバ103にアプリケーション処理ユニットAおよびリクエスト処理ユニットCが設置されている点が異なる。
また人工知能サーバ1403に人工知能ニットBが設置されている点、および、データ取得サーバ1603にデータ取得・処理ユニットDが設置されている点が異なる。
人工知能サーバ1403およびデータ取得サーバ1603のそれぞれのハードウェア構成は、先に説明した実施形態1のオールインワン型に使用したアプリケーション実行サーバ103の場合と同様である。
アプリケーション実行サーバ103、人工知能サーバ1403およびデータ取得サーバ1603のそれぞれは、ネットワーク102を通じて互いにデータを送受信することができる。アプリケーション実行サーバ103、人工知能サーバ1403およびデータ取得サーバ1603にはそれぞれ通信用インターフェイス1102、1402および1602が設置されていて、ネットワーク102を通じて互いにデータを送受信できる。
以下に、実施形態1のオールインワン型と異なる点を中心に説明する。
本発明の実施形態3の場合において、実施形態1に使用したアプリケーション実行サーバ103の場合と同様、人工知能サーバ1403およびデータ取得サーバ1603のそれぞれについても、物理マシン、仮想マシンおよびコンテナからなる群より選ばれる少なくとも一つの実行環境を用いて実行することができる。
[ユーザからのリクエストに対するナノエージェント型による処理の流れ]
図30~図32のそれぞれは、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
ユーザが操作する利用者端末101のブラウザ等から送信されたリクエストは、ネットワーク102を通じてリクエスト処理ユニットC、アプリケーション処理ユニットAの順に送信される。
本発明の実施形態3に係るウェブコンテンツの自動高速表示制御方法を実施しない場合には、利用者端末101毎からネットワーク102を通じてアプリケーション実行サーバ103に送信されたリクエストは、リクエスト処理ユニットC、アプリケーション処理ユ
ニットAの順に受信される。アプリケーション処理ユニットAはユーザの利用者端末101にウェブコンテンツを表示するためのオリジナルデータ200をレスポンスとしてリクエスト処理ユニットCを通じて送信する。このレスポンスはネットワーク102を通じて利用者端末101に受信される。そして利用者端末101に搭載されたブラウザ等により、オリジナルデータ200に基づくウェブコンテンツが利用者端末101に表示される。
本発明の実施形態3に係るウェブコンテンツの自動高速表示制御方法の場合は、アプリケーション処理ユニットAが生成したHTMLファイル113を利用者端末101に送信することもできる。
一方でリクエスト処理ユニットCはアプリケーション処理ユニットAからネットワーク102を通じて利用者端末101にレスポンスが実行される処理に割り込み、HTMLファイル113等のオリジナルデータ200を取得する。
取得されたHTMLファイル113等のオリジナルデータ200に基づいて、リクエスト処理ユニットCからリクエストが、ネットワーク102を通じて人工知能サーバ1403の人工知能ユニットB、データ取得サーバ1603のデータ取得・処理ユニットDの順に送信される。人工知能サーバ1403の人工知能ユニットBで立案された戦略案に基づいて、データ取得サーバ1603のデータ取得・処理ユニットDがHTMLファイル113等のオリジナルデータ200の最適化を行う。
最適化されたHTMLファイル113z等の加工済みデータ201は、データ取得・処理ユニットDが設置されたデータ取得サーバ1603、人工知能サーバ1403を経て、アプリケーション実行サーバ103のリクエスト処理ユニットC、ネットワーク102を通じてユーザの利用者端末101に送信される。
最適化されたHTMLファイル113z等の加工済みデータ201には、例えば、HTMLファイル113z等により参照されてウェブコンテンツを利用者端末101のブラウザ等に表示するためのオブジェクトが記載されている。
最適化されたHTMLファイル113z等に記載されたプログラムのオブジェクトによる参照情報に基づいて、リクエスト処理ユニットCは、データ取得・処理ユニットDから最適リソースを取得し、データ取得サーバ1603、人工知能サーバ1403およびアプリケーション実行サーバ103を経て、ネットワーク102を通じて利用者端末101に送信する。
最適リソースが存在しない場合には、アプリケーション実行サーバ103のアプリケーション処理ユニットAは、オリジナルデータ200から対応するリソースを取得する。取得されたリソースは、アプリケーション実行サーバ103のリクエスト処理ユニットCからネットワーク102を通じて利用者端末101に送信される。最適リソースが存在しない場合には、バックグランドでデータ取得・処理ユニットDで最適リソースが生成されて、オリジナルデータによるリソースと置換される。
また例えば、ユーザによる利用者端末101に搭載されたブラウザ等からリクエストがアプリケーション実行サーバ103に送信される前等、利用者端末101とアプリケーション実行サーバ103が互いに通信をしていない時に、データ取得サーバ1603のデータ取得・処理ユニットDに設置されたクローラーユニットd200は、アプリケーション実行サーバ103に保存されたオリジナルデータ200等をクロールする。
クロールされたオリジナルデータ200等に基づいて、データ取得サーバ1603のデータ取得・処理ユニットDに設置された最適化ユニットd100により最適化されたリソースが生成され、データベース1606に蓄積される。またオリジナルデータ200を監視し、オリジナルデータ200に変化があればオリジナルデータ200をクロールし、自
動的に最適化されたリソースが生成され、利用者端末101の最適リソースとして活用される点は、先に説明した実施形態1の場合と同様である。
本発明に係る発明の実施形態3のウェブコンテンツの自動高速表示制御方法によれば、利用者端末101にウェブコンテンツを表示させるためのオリジナルデータ200が保存されたアプリケーション処理ユニットAを含むアプリケーション実行サーバ103に対してリクエスト処理ユニットCを設置することにより、ネットワーク102を通じて利用できる、世界中に分散配置された、それぞれ一または二以上の人工知能サーバ1403およびデータ取得サーバ1603を利用することができる。
実施形態3のナノエージェント型では、オリジナルデータ200等のマイグレーションの必要がない。またアプリケーション実行サーバ103のDNSを変更する必要もないことから、簡単に本発明の実施形態3に係るウェブコンテンツの自動高速表示制御方法を実施することができる。
また必要に応じて、例えば、データ取得サーバ1603のデータ取得・処理ユニットDと同じユニットを備えたサーバをアプリケーション実行サーバ103の近距離に追加して設置して、データ取得サーバ1603のデータ取得・処理ユニットDと同じ処理を実施させることにより、通信速度の低下を防止することもできる。
本発明の実施形態3のナノエージェント型の場合は、特別なマイグレーション、DNSの変更を必要としないため、既に稼働しているウェブコンテンツを配信するシステムに簡単に適用することができる。
本発明の実施形態3の場合も、先に説明した実施形態1の場合と同様、オリジナルデータ200が最適化され、表示完了時間の短い最適リソースを含む加工済みデータ201を用いて、オリジナルデータ200を使用した場合よりも短い表示完了時間で利用者端末101毎のブラウザ等に高速にウェブコンテンツを表示することができる。
[実施形態4:SaaS型]
図33は、本発明の実施形態4に係るウェブコンテンツの自動高速表示制御方法を実施するための自動高速表示制御システムであり、SaaS型の構成を記載した概略図である。
本発明に係る発明の実施形態4のSaaS(Software as a Service)型は、先に説明した実施形態1のオールインワン型と比較して、アプリケーション処理ユニットA、人工知能ニットB、リクエスト処理ユニットCおよびデータ取得・処理ユニットDのそれぞれがクラウド1803上に設置されている点が異なる。
先の実施形態1のオールインワン型の場合は一つの実行環境内でそれぞれのユニットAからDが相互に通信可能であった。
に対して実施形態のSaaS型の場合は、ネットワーク102を通じてそれぞれのユニットAからDが相互に通信可能となっている。
それ以外は実施形態1の場合と同様である。
クラウド環境下では、ネットワーク102を通じて通信可能な一または二以上の物理マシン、一または二以上の仮想マシン、ならびに一または二以上のコンテナからなる群より選ばれる少なくとも一つからなる実行環境をネットワーク102上に構築することができる。
本発明の実施形態4に係るウェブコンテンツの自動高速表示制御方法は、このクラウド環境下に構築することもできる。このクラウド環境下に構築されているものがSaas型である。
本発明の実施形態4の場合には、使用するクラウドプラットフォームの種類、提供する企業の相違、クラウド環境を実行するためのデータセンターが自国にあるか外国にあるか等の相違に関係なく、実行環境を選択して構築することができる。
[ユーザからのリクエストに対するSaaS型による処理の流れ]
図34~図36のそれぞれは、ユーザからのリクエストがどのように処理されるのかを説明するための模式図である。
ユーザが操作する利用者端末101のブラウザ等から送信されたリクエストは、ネットワーク102を通じてリクエスト処理ユニットCに送信される。
本発明の実施形態4に係るウェブコンテンツの自動高速表示制御方法を実施しない場合には、クラウド1803に送信されたリクエストを受信したリクエスト処理ユニットCは、アプリケーション処理ユニットAを通じて、ユーザの利用者端末101にウェブコンテンツを表示するためのオリジナルデータ200をレスポンスとして送信する。このレスポンスはネットワーク102を通じて利用者端末101に受信される。そして利用者端末101に搭載されたブラウザ等により、オリジナルコンテンツが利用者端末101に表示される。
本発明の実施形態4に係るウェブコンテンツの自動高速表示制御方法の場合は、例えば、アプリケーション処理ユニットAで動的に生成されて保存されているHTMLファイル113等のオリジナルデータを利用者端末101に送信することもできる。
一方で図34に示されるように、リクエスト処理ユニットCはアプリケーション処理ユニットAからネットワーク102を通じて利用者端末101にレスポンスが実行される処理に割り込み、HTMLファイル113等を取得する。
例えば、取得されたHTMLファイル113等に基づいて、リクエスト処理ユニットCからリクエストがネットワーク102を通じて人工知能ユニットB、データ取得・処理ユニットDに送信される。人工知能ユニットBで立案された戦略案に基づいて、データ取得・処理ユニットDがHTMLファイル113等の最適化を行う。
例えば、最適化されたHTMLファイル113zは、データ取得・処理ユニットD、人工知能ユニットBおよびリクエスト処理ユニットCを経て、ネットワーク102を通じてユーザの利用者端末101に送信される。
最適化されたHTMLファイル113z等には、HTMLファイル113zに記載されたプログラムにより定義されたオブジェクトにより参照されてウェブコンテンツを利用者端末101のブラウザ等に表示するためのオブジェクトが記載されている。
最適化されたHTMLファイル113z等に記載されたそれぞれのオブジェクトが指定する参照情報に基づいて、リクエスト処理ユニットCは、データ取得・処理ユニットDから最適リソースを取得し、人工知能ユニットBを経て利用者端末101に送信する。
図35に示されるように、最適リソースが存在しない場合には、リクエスト処理ユニットCは、オリジナルデータ200から対応するリソースを取得する。取得されたリソースは、アプリケーション処理ユニットAからリクエスト処理ユニットCを経て利用者端末101に送信される。最適リソースが存在しない場合には、バックグランドでデータ取得・処理ユニットDで最適リソースが生成されて、オリジナルデータによるリソースと置換される。
また、図36に示されるように、例えば、ユーザによる利用者端末101に搭載されたブラウザ等からリクエストがリクエスト処理ユニットCに送信される前等、利用者端末101とリクエスト処理ユニットCが互いに通信をしていない時に、データ取得・処理ユニットDに設置されたクローラーユニットd200は、アプリケーション処理ユニットAに保存されたオリジナルデータ200等をクロールする。
クロールされたオリジナルデータ200等に基づいて、データ取得・処理ユニットDに設置された最適化ユニットd100により最適化されたリソースが生成され、クラウド1803に設置されたデータベース1706に蓄積される。
データ取得・処理ユニットDに設置されたクローラーユニットd200は定期的にアプリケーション処理ユニットAが利用することができるオリジナルデータ200をクロールし、自動的に最適化されたリソースが生成され、データベース1706に蓄積されるステップが実施される。またオリジナルデータ200を監視し、オリジナルデータ200に変化があればオリジナルデータ200をクロールし、自動的に最適化されたリソースが生成され、利用者端末101の最適リソースとして活用される点は、先に説明した実施形態1の場合と同様である。
本発明に係る発明の実施形態4のウェブコンテンツの自動高速表示制御方法を実施するには、ウェブコンテンツを利用者端末101に表示するために運用されている従来のサーバとは別に、クラウド環境にオリジナルデータ200等、これらのオリジナルデータ200等を利用者端末に表示させるための環境等のマイグレーションを実施する。
またウェブコンテンツを利用者端末101に表示するために運用されている従来のサーバのDNSをクラウド1803に変更する。
このようにマイグレーションとDNSを実施するだけで、ウェブコンテンツを利用者端末101に表示するために運用されている従来のサーバの環境に変更を加えることなくクラウド上に実施形態4のSasS型を実施できる。
本発明の実施形態4の場合も、先に説明した実施形態1の場合と同様、オリジナルデータ200が最適化され、表示完了時間の短い最適リソースを含む加工済みデータ201を用いて、オリジナルデータ200を使用した場合よりも短い表示完了時間で利用者端末101毎のブラウザ等に高速にウェブコンテンツを表示することができる。
[実施形態5]
次に本発明の実施形態5に係るウェブコンテンツの自動高速表示制御方法について説明する。
実施形態5に係るウェブコンテンツの自動高速表示制御方法を実現するために必要なステップは、先に説明した本発明の実施形態1から4のいずれの場合でも以下に説明するステップに従って実施できる。
ここでは、一つの例として、先に説明した実施形態1のオールインワン型を例に挙げて説明する。実施形態5に使用するオールインワン型のハードウェア構成は、先に説明いた実施形態1の場合と同様である。
以下に、先の実施形態1と異なる点を中心に説明する。
本発明の実施形態5では、一例として、利用者端末101としてスマートフォンが採用されている。下記に説明するウェブコンテンツ211の生成ステップは、本発明の実施形態1の場合と同様である。
図37は、利用者端末101にウェブコンテンツ211が高速表示される仕組みを説明するための概念図である。
利用者端末101にウェブコンテンツ211が高速表示されることを妨げる要因として、大きく二つの要素が存在する。
一つは、通信の渋滞401であり、残る一つは描画の渋滞402である。
通常、オリジナルデータ200(図37の参照符号400)には、個別の利用者端末101には不要なデータも含まれる。このため、オリジナルデータ200がそのまま利用者端末101に送信されると、利用者端末101にオリジナルデータの送信完了まで余分な時間がかかることになる。
先の実施形態1の場合では、主として、図37における通信の渋滞401を改善する配信最適化に関するものであった(図37の参照符号403)。
実施形態5の場合では、通信の渋滞401の解消に加えて、描画の渋滞402の解消を実現する。
本発明の開示において、描画とは、利用者端末101にウェブコンテンツ211等が表示されることをいう。
図37に示される描画の渋滞402が生じる理由の一つは、雑多な多量の情報が、一気にリクエスト処理ユニットCから利用者端末101に送信されようとするからである。
本発明に係る実施形態5の場合では、ウェブコンテンツ211の表示に必要なリソースの中から、最初に利用者端末101に送信すべき情報として、ファーストビューに対応する部分の描画が優先される(図37の参照符号404)。
次に、通信規制を行い、利用者端末101がユーザからの入力受付可能な状態に移行することを優先する(図37の参照符号404)。
続いて、通信整理を行い、ウェブコンテンツ211の表示に必要なりソースの中から、ファーストビューに対応する部分以外が秩序立てられて利用者端末101に送信される(図37の参照符号405)。
ここで利用者端末101がユーザからの入力受付可能な状態に移行する、とは、利用者端末101がユーザによる、スクロール、タップ、クリック、ドラッグ等の画面操作、各種テキスト入力、音声入力、画像入力等の入力操作を受け付けることができる状態になることをいう。
またウェブコンテンツ211の表示に必要なリソースの中から、ファーストビューに対応する部分以外が秩序立てられて利用者端末101に送信される、とは、例えば、ファーストビューに対応する部分以外の描画に必要なプログラムの部分が二以上ある場合、互いにプログラムの部分同士が干渉しあう場合には、一方を優先させて実施し、優先させて実施させたプログラムの部分の完了を待ってから、次のプログラムの部分の実行に移る同期実行の場合、
互いにプログラムの部分同士が干渉しない場合には、他のプログラムの部分の完了を待たずに、プログラムの部分の実行を開始する非同期実行の場合等を意味する。
次に本発明に係る実施形態5について詳細に説明する。
利用者端末101に搭載されるブラウザ等からリクエスト処理ユニットCにリクエストが送信される前に、全てのアプリケーション処理ユニットAに保存されたそれぞれのオリジナルデータ200が、データ取得・処理ユニットDにより加工されて、複数の加工済みデータ201が生成されている。
この複数の加工済みデータ201は、リクエスト処理ユニットCにアクセスすることが予想される全ての利用者端末101に対応して、利用者端末101からアプリケーション実行サーバ103に対してリクエストが送信される前に、自動で生成される。
加工済みデータ201は、それぞれの利用者端末101に対して、利用者端末101のブラウザにおける初期表示画面Aに対応する、ファーストビューと呼ばれるウェブコンテンツ211aに対応する複数の加工済みデータ201と、利用者端末101のブラウザにおける初期表示画面Aに対応しない、ファーストビューとは異なるウェブコンテンツ211bに対応する複数の加工済みデータ201とに分割されて生成されている。
利用者端末101からアプリケーション処理ユニットAにリクエストが送信されてから、利用者端末101でウェブコンテンツ211aが利用者端末101で入力受付可能になるまでの時間が最短になることを基準に、オリジナルデータ200と複数の加工済みデータ201の中からファーストビューに表示されるウェブコンテンツに対応する処理済みデータ210が選択される。
それぞれの利用者端末101について、データ取得・処理ユニットDで、どのように加工するか、どのように組み合わせるか等の情報と、それぞれの利用者端末101で最短でウェブコンテンツ211aが入力受付可能になるまでの時間に関する処理済みデータ210との相関関係を、予備試験により、人工知能ユニットBは既に学習している。
予備試験により得られたデータを用いて統計処理を行い、最適な処理済みデータ210を選択する戦略案を人工知能ユニットBは立案することができる。
アプリケーション処理ユニットAに保存されているオリジナルデータ200が動的に生成された場合でも、変更を受けた場合でも、オリジナルデータ200に変更があった場合には、これまでの人工知能ユニットBが立案した戦略案に基づき、新たな処理済みデータ210が生成される。
実際に利用者端末101からリクエスト処理ユニットCにリクエストがあった場合には、ウェブコンテンツ211の全てが利用者端末101に送信されるのではなく、利用者端末101のブラウザにおける初期表示画面Aに対応する、ファーストビューと呼ばれるウェブコンテンツ211aを表示するために必要な加工済みデータ201を含む最小限の部分が最初に分割されて送信される。
利用者端末101に搭載されるブラウザ等からリクエスト処理ユニットCにリクエストが送信されると、リクエストを受信したリクエスト処理ユニットCからアプリケーション処理ユニットAと人工知能ユニットに送信される。またそのリクエストは人工知能ユニットBを経由して、または人工知能ユニットBを経由せずに直接、データ取得・処理ユニットDにネットワーク102を通じて送信される。
[利用者端末101の初期表示画面に対応するデータを特定するステップ]
利用者端末101の表示環境は、利用者端末101からアプリケーション処理ユニットAに送信された信号に含まれるユーザエージェント、リファラ等の情報を、データ取得・処理ユニットDの設定ファイル格納部1523に保存された機種情報ファイル126と照合して特定できる。
実際に、利用者端末101毎に、ウェブコンテンツ211のうち、どの部分がファーストビューに対応するかどうかは、事前に予備試験、また予備試験により得られたデータによる機械学習により形成された学習済みモデルを用いて決定することができる。
利用者端末101のブラウザにおける初期表示画面Aの表示環境は、機種情報ファイル126に記載された情報に基づいて特定できる。
例えば、先に図16により説明したHTMLファイル113および最適化されたHTMLファイル113zに記載された文字、数字、記号等のプログラムデータの情報、
CSSファイル107および処理済みCSSファイル132に記載されたプログラムデータの大きさ等の情報、
画像ファイル109および処理済み画像ファイル134の大きさ、配置位置等の情報から、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108、最適化されたHTMLファイル113z、処理済みCSSファイル132、処理済みスクリプト言語ファイル133、画像ファイル109および処理済み画像ファイル134等のうち、どの部分が利用者端末101のブラウザにおけるファーストビューに対応する初期
表示画面Aに表示されるかが特定される。
利用者端末101の表示環境が特定されると、この表示環境を使って表示できる、それぞれファーストビューに対応した、HTMLファイル113、CSSファイル107、スクリプト言語ファイル108、最適化されたHTMLファイル113z、処理済みCSSファイル132、処理済みスクリプト言語ファイル133、画像ファイル109、処理済み画像ファイル134等が特定される。
これらの特定は、データ取得・処理ユニットDに搭載された、コントロールユニットd300に記載されたプログラムにより実施される。
[利用者端末の初期表示画面以外に対応するデータを特定するステップ]
利用者端末101のブラウザにおける初期表示画面Aに表示されるデータが特定されれば、それに伴って、利用者端末101のファーストビューに対応する初期表示画面A以外に対応するデータを特定できる。
ウェブコンテンツ211、ウェブコンテンツ212の中から、利用者端末101のブラウザにおける初期表示画面Aに表示されるデータを除いたデータが、利用者端末101の初期表示画面A以外に対応するデータとなる。
具体例に従って説明する。
例えば、ウェブコンテンツ211は、ファーストビューに対応するウェブコンテンツ211aおよびファーストビューに対応しないウェブコンテンツ211bを含む。
ウェブコンテンツ211を表示するためのリソースは、HTMLファイル113または最適化されたHTMLファイル113zのうち、ファーストビューに対応するHTMLデータ301を含む。
またCSSファイル107および処理済みCSSファイル132のうち、ファーストビューに対応するCSSデータ302を含む。
スクリプト言語ファイル108および処理済みスクリプト言語ファイル133のうち、ファーストビューに対応するスクリプト言語データ303を含む。
画像ファイル109および処理済み画像ファイル134のうち、ファーストビューに対応する画像データ304を含む。
利用者端末101のファーストビューに対応したウェブコンテンツ211aを表示するためのリソースを受信した利用者端末101は、利用者端末101に搭載されたブラウザにウェブコンテンツ211aを短い表示完了時間で表示することができる。
次に、ファーストビューに対応しないウェブコンテンツ211bのうち、利用者端末101がユーザからの入力受付を可能にするためのコード部分が優先されて利用者端末101に送信される(図37の参照符号404)。
次に利用者端末101にファーストビューに対応するウェブコンテンツ211aが表示された後のステップについて、ユーザの行動に沿って説明する。
利用者端末101のユーザは、利用者端末101のブラウザに表示されたウェブコンテンツ211aに興味を示す場合には、利用者端末101のブラウザに対して追加の情報を表示させる行動を起こす。
逆に利用者端末101のユーザは、利用者端末101のブラウザに表示されたウェブコンテンツ211aに興味を示さない場合には、いわゆる離脱と呼ばれる行動を起こす。
利用者端末101のユーザが、利用者端末101のブラウザに表示されたファーストビューに対応するウェブコンテンツ211aに興味を示す場合に、そのユーザが利用者端末101に対して追加の情報を表示させる行動を起こす場合の具体例は次の通りである。
例えば、利用者端末101のユーザは、利用者端末101のブラウザに表示されたボタン等をクリックする、利用者端末101のブラウザにおける初期表示画面Aをスクロールすれば表示される情報を見るために、ユーザが利用者端末101のブラウザをスクロールする、利用者端末101のブラウザにおける初期表示画面Aの表示から一定時間経過したにも関わらず初期表示画面Aから離脱せず、表示された内容を読み進める等の行動を起こす。
ユーザのクリック、スクロール等の利用者端末101に対する行動があると利用者端末101に搭載されたブラウザがイベント情報を検出する。
この一方、ユーザが最初に利用者端末101のブラウザ等からリクエストを送信した際に、例えば、そのリクエストに対応して、最適化されたHTMLファイル113z等が最初に利用者端末101にダウンロードされている。
この最適化されたHTMLファイル113z等には、リソースについての参照情報がプログラムの関数としてのオブジェクトとして記載されている。
また最適化されたHTMLファイル113z等には、オブジェクトを最適化されたHTMLファイル113z等にプログラムの関数として挿入するためのオブジェクトも記載されている。
すなわち、最適化されたHTMLファイル113z等のオブジェクトを利用して、任意のプログラムコードを追加して記載することが可能である。
この仕組みにより、利用者端末101に搭載されたブラウザがイベント情報を検出した際に動作するプログラムコードを記載することができる。
利用者端末101に搭載されたブラウザがイベント情報を検出すると、最適化されたHTMLファイル113z等に追加されたプログラムコードにより、ただちに残りのウェブコンテンツ211bを表示するための残りのリソースが、ネットワーク102を経由して利用者端末101に送信される。
このように、利用者端末101毎のブラウザ等のファーストビューに必要なリソースとファーストビューに必要のないリソースについて、利用者端末101毎にダウンロードを順位付けすることにより、利用者端末101毎のブラウザ等での描画の渋滞を避けることができる。
ウェブコンテンツ211bを表示するためのリソースを受信した利用者端末101は、利用者端末101に搭載されたブラウザにウェブコンテンツ211bを高速に表示することができる。
なおウェブコンテンツ211bを表示するためのリソースは、利用者端末101に対して一度に送信されてもよいし、分割して送信されてもよい。
ウェブコンテンツ211bを表示するためのリソースの送信については、利用者端末101に対してウェブコンテンツ211bの表示に関連するプログラムの部分同士が干渉する場合には、同期して一つのプログラムの部分の実施が完了した後に、続くプログラムの部分の実施が開始される。
逆に利用者端末101に対してウェブコンテンツ211bの表示に関連するプログラムの部分同士が干渉しない場合には、非同期にそれぞれのプログラムの部分の実施が開始される。
またどのプログラムの実施を優先するか、遅延させるか等についての制御が、人工知能ユニットBが立案した戦略案に従って、データ取得・処理ユニットに搭載された、コントロールユニットd300に記載されたプログラムにより実現される。このプログラムを最適化されたHTMLファイル113z等のオブジェクトに反映させることにより、ウェブコンテンツの自動高速表示が実現される。
本発明に係る実施例5の場合は、利用者端末101に対して、必要なデータを必要な時に供給することができる。このため個々の利用者端末101に対するデータ送信の渋滞、利用者端末101上でウェブコンテンツを表示するためのデータ処理の渋滞、描画の渋滞が解消される。これにより、ウェブコンテンツの自動高速表示が実現される。
ユーザの利用者端末101に最適化されたHTMLファイル113z等がダウンロードされると、最適化されたHTMLファイル113zに定義付けられているオブジェクトに対応するリソースが利用端末101にダウンロードされるか、またはネットワーク102を通じて参照可能な状態になる。
以降はユーザの利用者端末101に搭載されたブラウザ等の操作により、ユーザは自由に利用者端末101のブラウザ等によりウェブコンテンツを閲覧することができる。
[実施形態6]
次に本発明の実施形態6に係るウェブコンテンツの自動高速表示制御方法について説明する。
実施形態6に係るウェブコンテンツの自動高速表示制御方法を実現するために必要なステップは、先に説明した本発明の実施形態5の場合と同様である。
以下に、先の実施形態5と異なる点を中心に説明する。
本発明の実施形態6では、一例として、利用者端末101としてスマートフォンが採用されている。下記に説明するウェブコンテンツ211の生成ステップは、本発明の実施形態1の場合と同様である。
ウェブコンテンツの自動高速表示を実現する際には、単にウェブコンテンツをそれぞれのユーザの利用者端末101に高速表示するだけではなく、誰に対して何を高速表示するかが問題となる。
本発明の実施形態6では、ウェブコンテンツを閲覧するユーザのユーザ体験と、ウェブコンテンツをユーザが閲覧することにより生じるユーザとウェブサイトとの間に生じるエンゲージメントに基づいて、ウェブコンテンツの自動高速表示を実現するステップが変化する。
本発明の開示で使用される「ユーザ体験」とは、利用者端末に表示されたウェブコンテンツを閲覧したユーザが体験する内容を意味する。
具体的には、例えば、ユーザがウェブコンテンツに表示されているテキスト情報を読む、テキスト情報をさらに読み進めるために、利用者端末に搭載されたブラウザをスクロールする、ウェブコンテンツに関連付けられたリンクをクリックしてリンク先の内容を閲覧する、ウェブコンテンツに関連付けられた動画ファイルを再生する、音楽ファイルを再生する、画像ファイルを閲覧する、フォーム欄にテキスト情報を入力してテキスト情報を送信する、ウェブコンテンツに表示された商品を購入する等の行為の一種もしくは二種以上が挙げられる。
実際の個々のユーザ体験は、利用者端末101毎に搭載されたブラウザ等によりイベント情報として捕捉できる。
ウェブコンテンツを閲覧するユーザが、ウェブコンテンツに興味がないか、またはウェブコンテンツに求める情報が掲載されていないと判断した場合には、ユーザは離脱と呼ばれる行動を起こす。
ユーザがウェブコンテンツを一目見ただけで離脱して、再びウェブコンテンツを閲覧することがないとすれば、そのユーザについてのユーザ体験に関連するスコアはゼロである。
ウェブサイトのウェブコンテンツに一つまたは複数含まれるウェブページのうち、ユーザが許容できる表示完了時間は2秒以内といわれている。
どの表示完了時間なら許容されるかについては、ユーザのウェブサイトに対するエンゲージメントによって異なる。
例えば、ユーザがウェブサイトを信頼しており、そこに必要な情報があると確信しているのであれば、表示完了時間に対するユーザの許容時間は増加する。反対の場合は、1秒であってもユーザは待てない。
逆にユーザが離脱せず、ユーザの利用者端末に表示されたウェブコンテンツを読み進める等の行為をした場合には、ユーザ体験が増加する。
そしてユーザの利用者端末に表示されているウェブコンテンツの提供者、ウェブサイトの管理者が提供しているウェブコンテンツに関連する行動の全てをユーザが実行すると、その時点におけるそのユーザについてのユーザ体験は最大化する。
特定されたユーザについてのユーザ体験が最大化した場合は、そのユーザ体験に関連するスコアの相対値を100として位置づけることができる。
また本発明の開示で使用される「エンゲージメント」とは、利用者端末に表示されたウェブコンテンツを閲覧したユーザと、ウェブサイトの運営者との間に、ウェブコンテンツを介して育成される信頼関係を意味する。
本発明の開示においては、この信頼関係はユーザ体験と関連があるものとして扱う。
つまり、ユーザとウェブサイトの運営者との間にエンゲージメントがない場合、例えば、ユーザがウェブコンテンツを閲覧していない場合は、エンゲージメントは相対値としてゼロに対応する。
ただし、一度でもリクエスト処理ユニットC等に対して利用者端末101からリクエストが送信された後は、ウェブコンテンツにアクセスしたユーザ体験がエンゲージメントスコアとして加算される。このため、リクエスト処理ユニットC等にアクセスした履歴が利用者端末101等に保存されている利用者端末101に関するエンゲージメントスコアはゼロより大きい値が記録されている。
一方、あるユーザについてのユーザ体験が最大化した場合には、そのユーザとウェブサイトの運営者との間には十分な信頼関係が育成されたと考えることができるので、エンゲージメントは相対値として100に対応する。
つまり、それぞれのユーザについてのユーザ体験に基づくエンゲージメントの値は、相対値として0から100の間で変化する。
本発明者の知見によれば、ウェブコンテンツに興味がないユーザについてはエンゲージメントの値は小さくなり、逆にウェブコンテンツに興味を示すユーザについてはエンゲージメントの値は大きくなる傾向があることが本発明者によるこれまでの検討により判明している。
本発明の実施形態6の場合では、ユーザのエンゲージメントスコアに応じて、それぞれのユーザが閲覧する利用者端末に表示されるウェブコンテンツの表示処理が調整されて、ウェブサイトを閲覧するユーザの満足度が最大化する方法が開示される。
最初にユーザとウェブコンテンツとのエンゲージメントのスコアが算出される。
本発明の実施形態6に使用されるリクエスト処理ユニットC等にこれまでリクエストを送信したことがないユーザに関するエンゲージメントのスコアについては最低のエンゲージメントのスコアが、相対値0として割当てられる。
一度でもリクエスト処理ユニットC等にリクエストを送信したことがあるユーザに関するエンゲージメントのスコアについては、リクエストをアプリケーション処理ユニットAに送信した行為が一つのユーザ体験となるので、エンゲージメントのスコアが加算される。
またウェブサイトへの訪問回数が多い、ウェブサイトでの滞在時間が長い、ウェブサイトを訪問する間隔が短い、ウェブサイトに実装されているリンク、ボタン等をクリックする回数が多い、動画ファイル・音ファイル等の再生時間が長い、動画ファイル・音ファイル等のクリック回数が多い等のユーザ体験が充実しているユーザに関してはこれらの行為の度にエンゲージメントのスコアが加算されていく。結果として、ユーザ体験が充実しているユーザに関しては、高いエンゲージメントのスコアが割当てられる。ユーザ体験が最大化したユーザに対しては、エンゲージメントのスコアが相対値100として割り当てられる。
このエンゲージメントのスコアは相対値として、0から100の間で変動する。
まずユーザの利用者端末101の表示環境ごとに、それぞれ利用者端末101に表示されるウェブコンテンツが、エンゲージメントのスコアに基づいて選択される。
一種類の利用者端末101について、例えば、最も表示完了時間が短いウェブコンテンツ211が、最もエンゲージメントスコアの低いユーザに割り当てられる。また例えば、最も表示完了時間が長い内容が充実したウェブコンテンツ211が、最もエンゲージメントスコアの高いユーザに割り当てられる。
[利用者端末毎にエンゲージメントのスコアを算出するステップ]
次に利用者端末101毎にエンゲージメントのスコアを算出するステップについて説明する。
本発明に係る実施形態6に使用するエンゲージメントのスコアは、利用者端末101毎に、リクエスト処理ユニットCに対してリクエストを送信した利用者端末101を特定する識別データと、前記識別データに関連付けられた利用者端末毎の履歴データと、に関連付けられたユーザ体験に基づいて算出される。
利用者端末101が、リクエスト処理ユニットCにリクエストを送信すると、利用者端末101を特定するアクセプトヘッダー、クッキー等のデータが、データ取得・処理ユニットDの制御部1512に記載されたプログラムを通じて、データベース506に記録される。これらのデータは利用者端末101を特定するための識別データとなる。
また利用者端末101に搭載されたブラウザにより、ユーザが行うクリック、スクロール、ドラッグ、テキストの入力等の行為は、イベントとして利用者端末101毎のクッキー等に保存される。
この情報に基づいて、先の実施形態5の場合で説明したのと同様、利用者端末101毎にダウンロードされた、最適化されたHTMLファイル113z等に追加されたプログラムによりエンゲージメントのスコアを管理できる。
エンゲージメントのスコアの管理は、利用者端末101で実施されるが、エンゲージメントのスコアの管理は、例えば、アプリケーション実行サーバ103等の実行環境側で管理することもできる。
例えば、イベントに関するデータは、リクエスト処理ユニットC、処理ユニットAを経由して、データ取得・処理ユニット側で検出することもできる。これらのイベント情報を信号としてデータ取得・処理ユニットDに搭載された制御部1512に送信することもできる。
ネットワーク102を介してデータ取得・処理ユニットDに送信されるイベント情報を、例えば、図4に示すデータ取得・処理ユニットDのコントロールユニットd300に定義されたイベントハンドラと対応させて解析する。このイベント情報は利用者端末101毎の履歴データとして、利用者端末101毎、および必要に応じてデータベース1106に記録される。
利用者端末101毎の履歴データとしては、例えば、ブラウザから送信されたユーザによるリクエストの回数、ブラウザから送信されたユーザによるリクエストの種類、ユーザによるウェブサイトの滞在時間ならびにブラウザから送信されたリクエスト間の期間等の一種もしくは二種以上が挙げられる。
具体的な履歴データを挙げると、次の通りである。
利用者端末101毎の履歴データとしては、例えば、ユーザがウェブコンテンツ211に表示されているテキスト情報を読む時間301、
ウェブコンテンツ211に関連付けられたリンクをクリックしてリンク先の内容を閲覧したリンク302およびリンク302をクリックした回数303、
ウェブコンテンツ211に関連付けられた動画ファイルのうち、再生された動画ファイル304、動画ファイル304を再生した回数305および動画ファイル304を閲覧した時間305、
ウェブコンテンツ211に関連付けられた音楽ファイルのうち、再生された音楽ファイル306、音楽ファイル306を再生した回数307および音楽ファイル306を閲覧した時間307、
ウェブコンテンツ211に関連付けられたフォーム欄に入力したテキスト情報308およびテキスト情報308を送信した回数309、
ウェブコンテンツ211に表示された商品のうち、購入した商品310および商品310を購入した回数311、
ウェブコンテンツ211に表示された役務のうち、提供を依頼した役務312および役務312を依頼した回数313、
アプリケーション処理ユニットAにリクエストを送信した回数313、
アプリケーション処理ユニットAにリクエストを最初に送信してから最後に送信した時までの期間314、
アプリケーション処理ユニットAにリクエストを前回送信してから今回送信した時までの期間315、
利用者端末101のブラウザ画面をスクロールした回数、タッチした回数等の回数316、
利用者端末101のブラウザ画面で移動したマウス等の距離317等が挙げられる。
利用者端末101毎の履歴データは、一種もしくは二種以上を選択して使用することができる。
データベース1106に保存された利用者端末101毎の履歴データは、ユーザ毎のユーザ体験に対応する。
利用者端末101毎にエンゲージメントのスコアを算出するステップは次のように実施される。
Figure 0007523733000001
数式(A)は、利用者端末101毎にエンゲージメントのスコアを算出するための式である。
fiは利用者端末101毎の履歴データに対応する関数であり、aiは、各関数に対する係数を示す。iは自然数であり、それぞれの値はそれぞれの履歴データに対応する。kは履歴データの総数である。
利用者端末101毎の履歴データは、変数iとしてデータベース1106に保存されてい
る。
例えば、i=1に対応するオブジェクトFiには、各ユーザの一回のウェブサイト訪問当たりのテキスト情報を読む平均時間に対する、特定ユーザの一回のウェブサイト訪問当たりのテキスト情報を読む時間301の割合が対応する。
また例えば、i=2は、ウェブコンテンツ211に存在する総リンク数に対する、特定の
ユーザがクリックしたリンク302の種類の割合が対応する。
また例えば、i=3は、各ユーザの一回のウェブサイト訪問当たりのリンククリック平均
回数に対する、特定のユーザがクリックしたリンク302をクリックした回数303の割合が対応する。
以下、同様に、個々のユーザ体験毎に、それぞれの平均の履歴データに対する割合を変数fiにより対応させる。
次に、ウェブコンテンツ211を利用者端末101により閲覧したが、例えば、2秒未満で離脱して、その後再び閲覧履歴がないユーザのエンゲージメントのスコアをゼロに設定する。
上記数式(A)の係数aiの全ての初期値を1としたときに、数式(A)により算出されるもっとも大きい値を示すユーザについての上記数式(A)の値を100とする。
なお係数aiは、どの項目を重視するかの指標である。これらの係数を変化させた場合に、どの係数の組み合わせが最も短時間で全員のエンゲージメントスコアを高めることができるかを基準に、人工知能ユニットBの戦略に基づいて自動で調整される。
上記のステップにより、サーバにリクエストを送信した全てのユーザが使用した利用者端末101毎に、0から100の値が相対値として得られる。
このそれぞれの値が、ウェブコンテンツ211を公開してから現在までのエンゲージメントのスコアである。
ユーザがウェブコンテンツ211を閲覧するたびにエンゲージメントのスコアは加算されていく。このため、エンゲーメントスコアは各ユーザについて一定ではなく、各ユーザについて経時的に変化する。
[エンゲージメントのスコアに応じたウェブコンテンツが選択されるステップ]
次にエンゲージメントのスコアに応じたウェブコンテンツ211が選択されるステップについて説明する。
ユーザ毎の履歴情報と、この履歴情報に結びつけられた利用者端末101の識別情報基づいて、利用者端末101毎の表示環境に利用可能なファイルの組み合わせが特定されていて、利用者端末101毎に表示完了時間の異なる複数のウェブコンテンツ211をデータ取得・処理ユニットDで生成することができる。
ここでエンゲージメントのスコアが一定値未満のユーザに対しては、ウェブコンテンツの表示完了時間が最も短いウェブコンテンツ211に対応するリソースが選択される。
この際、例えば、テキストファイルの段落を削除する、参照するCSSファイル107および処理済みCSSファイル132、スクリプト言語ファイル108および処理済みスクリプト言語ファイル133、画像ファイル109および処理済み画像ファイル134のそれぞれの種類を、利用者端末101の表示に不具合が生じないところまで削除されたリソースが選択される。
また例えば、動画ファイル、動画ファイルを再生するためのンク、広告ファイル・広告リンク等の広告を表示するためのリンク等が削除されたリソースが選択される。
同様に、CSSファイル107および処理済みCSSファイル132、スクリプト言語ファイル108および処理済みスクリプト言語ファイル133、画像ファイル109および処理済み画像ファイル134のそれぞれについて表示完了時間が最も短いものが特定される。
例えば、処理済みCSSファイル132、処理済みスクリプト言語ファイル133、処理済み画像ファイル134等について、削除された動画ファイル、動画ファイルへのリンク、広告ファイル・広告リンク等に関連する内容が削除されたリソースが特定される。
複数の処理済みデータ210と、複数の処理済みデータ210に対応するオリジナルデータ200のうち、最も表示完了時間が短い組み合わせデータが特定される。
最も表示完了時間が短い組み合わせデータにより表示されるウェブコンテンツ211の処理は、事前に完了しているため、実際には、ユーザエージェント、リファラ等の情報を、機種情報ファイル126と照合して得られた利用者端末101の表示環境に表示完了時間として0.2秒以内、好ましくは100m秒以内に対応可能である。
上述のステップにより、エンゲージメントのスコアが一定値以下のユーザに対して,データ取得・処理ユニットD等を経由して、リクエスト処理ユニットCが送信する、特定された利用者端末101の表示環境に表示可能なウェブコンテンツ211が得られる。
事前の予備試験、および予備試験により得られたデータに基づく機械学習により形成された学習済みモデル等により、最も表示完了時間が短いウェブコンテンツ211を表示するためのリソースが選択されているので、リクエスト処理ユニットCから利用者端末101へウェブコンテンツ211の送信完了まで掛かる時間を短縮することができる。
次にエンゲージメントのスコアが一定値以上のユーザに対しては、ウェブコンテンツ211が速く表示されつつ、省略されているものがないウェブコンテンツ211を選択する。
具体的には、例えば、動画ファイル、動画ファイル等を再生するためのリンク、広告ファイル・広告リンク等の広告を表示するためのリンクが削除されていないものが選択される。
この場合は、利用者端末101の表示環境に利用可能なファイルのうち、表示可能な情報が掲載されたウェブコンテンツ211を表示するためのリソースが選択される。
具体的には、特定された、利用者端末101の表示環境に利用可能なファイル群の中から、それぞれのファイルの種類に応じて、表示完了時間が短く、かつ、省略した情報がないファイルの組み合わせが抽出される。
例えば、HTMLファイル113および最適化されたHTMLファイル113zを比較し、省略した情報がないものの中から表示完了時間が短いものが採用される。
同様に、CSSファイル107および処理済みCSSファイル132、スクリプト言語ファイル108および処理済みスクリプト言語ファイル133、画像ファイル109および処理済み画像ファイル134のそれぞれについて省略した情報がないものの中から表示完了時間が短いものが採用される。
抽出処理された複数の処理済みデータと、抽出処理された複数の加工済みデータに対応するオリジナルデータ200のうち、省略した情報がないものの中から表示完了時間の短いデータの組み合わせが特定される。
省略した情報がないものの中から表示完了時間が短いものを組み合わせたデータを含むウェブコンテンツ211は、ユーザエージェント、リファラ等の情報を、機種情報ファイル126と照合して得られた利用者端末101の表示環境を元に選択されているので、利用者端末101の表示画面に対応可能である。
次に個々のユーザのエンゲージメントスコアに応じて、どのようにウェブコンテンツの高速表示を実現するステップが変化するかについて説明する。
図37、個々のユーザのエンゲージメントスコアに応じて、利用者端末101からアプリケーション処理ユニットAにリクエストが送信されてから、利用者端末101でウェブコンテンツ211が入力受付可能になるまでの時間が調整されるステップを説明するための模式図である。
図37に示されるように、ユーザのエンゲージメントスコアが最も低い場合には、利用者端末101からリクエスト処理ユニットC等にリクエストが送信されてから、利用者端末101でウェブコンテンツ211が入力受付可能になるまでの時間が最も短くなる処理済みデータ210が選択される。
逆にユーザのエンゲージメントスコアが最も高い場合には、利用者端末101からアプリケーション処理ユニットAにリクエストが送信されてから、利用者端末101でウェブコンテンツ211が入力受付可能になるまでの時間が最も長くなる処理済みデータ210が選択される。
ユーザのエンゲージメントスコアが最も高い場合と最も低い場合の中間の場合には、利用者端末101からアプリケーション処理ユニットAにリクエストが送信されてから、利用者端末101でウェブコンテンツ211が入力受付可能になるまでの時間が最も短くなる場合と最も長くなる場合との中間の時間となる処理済みデータ210が選択される。
図38は、ユーザ体験がどのようにウェブコンテンツの自動高速表示を実現するステップに反映されるかを説明するためのフローチャートである。
最初にユーザが利用者端末101からリクエストアプリケーション処理ユニットAに送信する(ステップS3001)。
リクエスト処理ユニットCおよびアプリケーション処理ユニットAから、リクエストが、人工知能ユニットBおよびデータ取得・処理ユニットDに送信される(ステップS3002)。
データ取得・処理ユニットDは、リクエストに含まれるアクセプトヘッダー、クッキー等の情報から利用者端末101の表示環境を特定する(ステップS3003)。
またアクセプトヘッダー、クッキー等の情報から利用者端末101に関連付けられた識別情報に基づいて、これまでのエンゲージメントスコアを特定することができる(ステップS3004)。
得られたエンゲージメントスコアに応じた処理済みデータ210が選択され、その処理済みデータ210に対応するオブジェクトがデータ取得・処理ユニットD、人口知能ユニットB、アプリケーション処理ユニットA、リクエスト処理ユニットCに送信される。そして処理済みデータ210のリソースが、最適化されたHTMLファイル113zのオブジェクトに対応づけられる(ステップS3005)。
利用者端末101のブラウザ等で最適化されたHTMLファイル113zが実行される。そして利用者端末101でウェブコンテンツ211が表示される(ステップS3008)。
図38のステップS3006で、利用者端末101に関連付けられたユーザについてのエンゲージメントスコアから、利用者端末101に送信される処理済みデータ210が選択される。
エンゲージメントスコアが低いユーザについては、ファーストビューの描画を優先する(図37の参照符号410参照)。
ファーストビューの描画を優先することにより、エンゲージメントスコアの低いユーザが離脱することを防止できる。
逆にエンゲージメントスコアが高いユーザについては、利用者端末101のブラウザ等が入力受付可能になるまでの時間を遅延させず、最初から内容が充実したコンテンツを配信する(図37の参照符号430参照)。
このように、利用者端末101で入力受付可能になるまでの時間を変化させて、利用者端末101毎にエンゲージメントスコアに応じて、配信内容を振り分けることができる。
この振り分けが正しいかどうかは、ユーザが利用者端末101から早期に離脱するかしないかにより判断することができる。
例えば、ユーザが離脱せず、ウェブコンテンツ211を閲覧する動作を続けた場合には、ステップS3006の選択は正しいことが分かる。逆にユーザがウェブコンテンツ211を閲覧する動作を続けず、早期に離脱した場合には、ステップS3006の選択は正しくないことが分かる。
ステップS3006の選択が正しい場合にはエンゲージメントスコアを加算し、ステップS3006の選択が正しくない場合にはエンゲージメントスコアを減算する。
この操作により、ユーザ体験に基づいて、よりきめ細やかにユーザのウェブコンテンツに対する満足度を自動的に高めることができる。
本発明に係るウェブコンテンツの自動高速表示制御方法は、従来使用されているネットワークを利用者したウェブコンテンツを表示するシステムに簡単に設置することができる。また、ウェブコンテンツを表示する速度を向上させることができるから、ネットワークを利用したウェブコンテンツを扱う通信分野で広く応用することができる。
101 利用者端末
102 ネットワーク
103 アプリケーション実行サーバ
A アプリケーション処理ユニット
B 人工知能ユニット
C リクエスト処理ユニット
D データ取得・処理ユニット
d100 最適化ユニット
d200 クローラーユニット
d300 コントロールユニット
1523 設定ファイル格納部
104 オリジナルデータ記憶領域
105 PHPファイル
107 CSSファイル
107a,b,c CSSコード部分
107x,108x,113x 利用者端末に使用されない部分
F107a~F107c,F108a~F108c オブジェクト
108 スクリプト言語ファイル
108a~108d スクリプト言語コード部分
109 画像ファイル
113 HTMLファイル
113a~113d HTMLコード部分
113o1,113o2 オブジェクト
113o10,113o20,113o21 オブジェクト
113i ヘッド
113j ボディ
113z 最適化されたHTMLファイル
1115,1715 監視制御部
1116,1716 動作制御部
1117,1717 動作制御記憶部
1120,1720 時間実行制御部
1121,1721 時間実行記憶部
124 リソース
125 設定ファイル
126 機種情報ファイル
130 加工済みデータ記憶領域
132 処理済みCSSファイル
133 処理済みスクリプト言語ファイル
134 処理済み画像ファイル
200 オリジナルデータ
201,202 処理済みデータ
203 CLI
211,212 ウェブコンテンツ
401 通信の渋滞
402 描画の渋滞
403 配信最適化
404 ファーストビューに対応する部分の描画
405 ファーストビューに対応する部分以外の描画
410 エンゲージメントのスコアが最小の場合
420 エンゲージメントのスコアが中間の場合
430 エンゲージメントのスコアが最大の場合
1000,1100 中央演算処理装置
1001,1101,1701 記憶装置
1001a,1101a,1701a 主記憶部
1001b,1101b,1701b 補助記憶部
1002,1102 通信用インターフェイス
1003,1103 入力装置
1004,1104 表示装置
1105,1705 OS
1106,1706 データベース
1403 人工知能サーバ
1410 人工知能御部
1412 戦略ファイル
1430 人工知能記憶領域
1510 通信データ制御部
03 データ取得サーバ
1703 リバースプロキシサーバ
1803 クラウド

Claims (11)

  1. ネットワークを通じて通信可能な一または二以上のサーバに対して利用者端末からリクエストが送信されてから、利用者端末にウェブコンテンツを表示するためのオリジナルデータがサーバから利用者端末に送信されて、ウェブコンテンツが利用者端末で入力受付可能になるまでに、
    前記サーバに設置されたリクエスト処理ユニットに対して、利用者端末から送信されたリクエストが、アプリケーション処理ユニットと人工知能ユニットが受信するステップと、
    アプリケーション処理ユニットが、ウェブコンテンツを表示するためのオリジナルデータをデータ取得・処理ユニットに対して送信するステップと、
    人工知能ユニットが、ウェブコンテンツを利用者端末毎に表示する戦略案を立案するステップと、
    データ取得・処理ユニットが、利用者端末にウェブコンテンツを表示するためのオリジナルデータを受信するステップと、
    前記戦略案に基づいて、データ取得・処理ユニットによりオリジナルデータが加工されて、複数の加工済みデータが生成するステップと、
    前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースから、利用者端末毎にウェブコンテンツを表示するための処理済みデータが選択されるステップと、
    前記利用者端末毎にウェブコンテンツを表示するための処理済みデータが、利用者端末毎に送信されて、利用者端末毎にウェブコンテンツが表示されるステップと、
    が実施され、
    前記サーバが、一または二以上の物理マシン、一または二以上の仮想マシン、ならびに、一または二以上のコンテナからなる群より選ばれる少なくとも一つの実行環境からなり、
    前記戦略案を立案するステップが、
    前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースのうち、
    利用者端末毎に、利用者端末にウェブコンテンツをより速く表示するための処理済みデータが共通して有する属性を学習するステップと、
    利用者端末毎に、前記属性に基づいて、前記オリジナルデータをデータ取得・処理ユニットで処理するステップと、
    を含むことを特徴とする、ウェブコンテンツの自動高速表示制御方法。
  2. リソースが、オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのデータを含み、
    処理済みデータが、オブジェクト置換済みプログラムを含み、
    リソース参照部分を有するオリジナルデータが、リソース参照部分をプログラムのオブジェクトに置換されて、オブジェクト置換済みプログラムが、生成するステップと、
    前記オブジェクトが、識別情報と共にリソース毎に対応付けられるステップと、
    利用者端末毎に、利用者端末に搭載されたブラウザでオブジェクト置換済みプログラムが実行されると、
    オブジェクト置換済みプログラムに含まれるオブジェクトが識別情報によりリソースを特定し、そのリソースが実行されるステップと、
    を含む、請求項1に記載のウェブコンテンツの自動高速表示制御方法。
  3. 利用者端末毎に、前記属性に基づいて、前記オリジナルデータをデータ取得・処理ユニットで処理するステップが、
    前記処理済みデータに含まれるプログラムのうち、実行させるプログラムを選択するステップ、
    前記処理済みデータに含まれるプログラムのうち、優先して実行させるプログラムを選択するステップ、
    前記処理済みデータに含まれるプログラムのうち、遅延して実行させるプログラムを選択するステップ、
    前記処理済みデータに含まれるプログラムのうち、実行させるプログラムの実行順序を選択するステップ、
    前記処理済みデータに含まれるプログラムのうち、実行させるプログラムの実行タイミングを選択するステップ、
    および
    前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースから、利用者端末毎にウェブコンテンツを表示するための処理済みデータを選択するステップ、
    からなる群より選ばれる少なくとも一つのステップを含む、請求項1または2に記載のウェブコンテンツの自動高速表示制御方法。
  4. オリジナルデータが、プログラムデータおよびバイナリデータの少なくとも一つを含み、
    プログラムデータが、マークアップ言語、プログラミング言語、スタイルシート、スクリプト言語からなる群より選ばれる少なくとも一つを有するコードを含み、
    バイナリデータが、画像ファイル、音ファイルおよび動画ファイルの少なくとも一つを含み、
    リソースが、オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つを含み、
    加工済みデータが生成されるステップが、
    (1)オリジナルデータに含まれる、マークアップ言語、プログラミング言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つを有するコードから、利用者端末の表示環境ごとに不要部分が削除されるステップと、
    (2)オリジナルデータに含まれる、マークアップ言語、プログラミング言語、スタイシートおよびスクリプト言語からなる群より選ばれる少なくとも一つを有するコードから、利用者端末の表示環境ごとに必要部分が圧縮されるステップと、
    (3)オリジナルデータに含まれる、マークアップ言語、プログラミング言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つを有するコードから、利用者端末の表示環境ごとに実行順序が変更されるステップと、
    (4)オリジナルデータに含まれる、マークアップ言語、プログラミング言語、スタイルシートおよびスクリプト言語からなる群より選ばれる少なくとも一つを有するコードから、利用者端末の表示環境ごとに実行タイミングが変更されるステップと、
    (5)オリジナルデータに含まれる、バイナリデータから、単位面積当たりの表示画素数、単位時間当たりの録画録音密度、容量および保存形式からなる群より選ばれる少なくとも一つが変換されるステップと、
    の(1)~(5)からなる群より選ばれる少なくとも一つのステップを含み、
    利用者端末毎にウェブコンテンツが表示されるステップが、
    リクエストが利用者端末からネットワークを通じてリクエスト処理ユニットに送信されるステップと、
    リクエスト処理ユニットに受信されたリクエストから、利用者端末毎の表示環境が特定されるステップと、
    利用者端末のブラウザからリクエストがリクエスト処理ユニットに送信された後に、アプリケーション処理ユニットおよびデータ取得・処理ユニットの少なくとも一つからリソースが利用者端末毎に送信され、利用者端末毎のブラウザに表示されるステップと、
    を含む、請求項1~3のいずれかに記載のウェブコンテンツの自動高速表示制御方法。
  5. オリジナルデータが加工されて、複数の加工済みデータが生成するステップが、
    前記データ取得・処理ユニットが通信可能な記憶領域に保存された利用者端末に関する機種情報データに基づいて、利用者端末毎に複数の加工済みデータが生成されるステップを含み、
    前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースから、利用者端末毎にウェブコンテンツを表示するための処理済みデータが選択されるステップが、
    利用者端末毎に、機種情報データに基づいて利用者端末の表示画面の表示環境を特定するステップと、
    利用者端末毎に、ウェブコンテンツのうち、利用者端末の表示画面の表示環境に合わせて最初に表示されるウェブコンテンツの部分を特定するステップと、
    前記利用者端末毎にウェブコンテンツを表示するための処理済みデータが利用者端末毎に送信されて、利用者端末毎にウェブコンテンツが表示されるステップが、ウェブコンテンツのうち、利用者端末の表示画面の表示環境に合わせて最初に表示されるウェブコンテンツに対応する処理済みデータを利用者端末に優先して送信するステップと、
    を含む、請求項1~4のいずれかに記載のウェブコンテンツの自動高速表示制御方法。
  6. ウェブコンテンツが利用者端末毎に表示されるステップが、
    ウェブコンテンツのうち、利用者端末の画面に最初に表示される部分に対応するデータが利用者端末に送信されるステップと、
    利用者端末に利用者端末の画面に最初に表示される部分に対応するウェブコンテンツの部分が表示されてから一定時間が経過したことを示すイベント情報、および、ユーザが利用者端末を操作して利用者端末に対して追加の情報を表示させる行動を起こしたことを示すイベント情報の少なくとも一つのイベント情報が、サーバおよびブラウザの少なくとも一つにより検出されるステップと、
    前記イベント情報をアプリケーション処理ユニット、人工知能ユニット、データ取得・処理ユニットおよび利用者端末に搭載されたブラウザの少なくとも一つが検出した後に、ウェブコンテンツの残りの一部または全部の部分を表示するためのリソースが、アプリケーション処理ユニットおよびデータ取得・処理ユニットの少なくとも一つから、ネットワークを通じて利用者端末に送信されるステップと、
    を含む、請求項1~5のいずれかに記載のウェブコンテンツの自動高速表示制御方法。
  7. ウェブコンテンツが利用者端末毎に表示されるステップが、
    ウェブコンテンツのうち、利用者端末の画面に最初に表示される部分を表示するためのリソースが利用者端末に送信されるステップと、
    ウェブコンテンツのうち、利用者端末の画面に最初に表示される部分が入力受付可能になるまでの時間が伸縮するステップと、
    を含む、請求項6に記載のウェブコンテンツの自動高速表示制御方法。
  8. ウェブコンテンツを閲覧するユーザのユーザ体験に基づいて、ユーザとウェブコンテンツとのエンゲージメントのスコアが算出されるステップと、
    前記エンゲージメントのスコアに基づいて、利用者端末毎に、ウェブコンテンツのうち、利用者端末の画面に最初に表示される部分が入力受付可能になるまでの時間が伸縮するステップと、
    を含む、請求項7に記載のウェブコンテンツの自動高速表示制御方法。
  9. 請求項1~8のいずれかに記載のウェブコンテンツの自動高速表示制御方法を実施するためのプログラムであって、
    ネットワークを通じて通信可能な一または二以上のサーバに対して利用者端末からリクエストが送信されてから、利用者端末にウェブコンテンツを表示するためのオリジナルデータがサーバから利用者端末に送信されて、ウェブコンテンツが利用者端末で入力受付可能になるまでに、
    前記サーバに設置されたリクエスト処理ユニットに対して、利用者端末から送信されたリクエストが、アプリケーション処理ユニットと人工知能ユニットが受信する手段と、
    アプリケーション処理ユニットが、ウェブコンテンツを表示するためのオリジナルデータをデータ取得・処理ユニットに対して送信する手段と、
    人工知能ユニットが、ウェブコンテンツを利用者端末毎に表示する戦略案を立案する手段と、
    データ取得・処理ユニットが、利用者端末にウェブコンテンツを表示するためのオリジナルデータを受信する手段と、
    前記戦略案に基づいて、データ取得・処理ユニットによりオリジナルデータが加工されて、複数の加工済みデータが生成する手段と、
    前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースから、利用者端末毎にウェブコンテンツを表示するための処理済みデータが選択される手段と、
    前記利用者端末毎にウェブコンテンツを表示するための処理済みデータが、利用者端末毎に送信されて、利用者端末毎にウェブコンテンツが表示される手段と、
    を備え、
    前記サーバが、一または二以上の物理マシン、一または二以上の仮想マシン、ならびに、一または二以上のコンテナからなる群より選ばれる少なくとも一つの実行環境からなり、
    前記戦略案を立案する手段が、
    前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースのうち、
    利用者端末毎に、利用者端末にウェブコンテンツをより速く表示するための処理済みデータが共通して有する属性を学習する手段と、
    利用者端末毎に、前記属性に基づいて、前記オリジナルデータをデータ取得・処理ユニットで処理する手段と、
    を含む、ウェブコンテンツの自動高速表示制御プログラム。
  10. 請求項9に記載されたウェブコンテンツの自動高速表示制御プログラムを記録した、記憶装置。
  11. 請求項1~8のいずれかに記載のウェブコンテンツの自動高速表示制御方法を実施するためのシステムであって、
    ネットワークを通じて通信可能な一または二以上のサーバに対して利用者端末からリクエストが送信されてから、利用者端末にウェブコンテンツを表示するためのオリジナルデータがサーバから利用者端末に送信されて、ウェブコンテンツが利用者端末で入力受付可能になるまでに、
    前記サーバに設置されたリクエスト処理ユニットに対して、利用者端末から送信されたリクエストが、アプリケーション処理ユニットと人工知能ユニットが受信する手段と、
    アプリケーション処理ユニットが、ウェブコンテンツを表示するためのオリジナルデータをデータ取得・処理ユニットに対して送信する手段と、
    人工知能ユニットが、ウェブコンテンツを利用者端末毎に表示する戦略案を立案する手段と、
    データ取得・処理ユニットが、利用者端末にウェブコンテンツを表示するためのオリジナルデータを受信する手段と、
    前記戦略案に基づいて、データ取得・処理ユニットによりオリジナルデータが加工されて、複数の加工済みデータが生成する手段と、
    前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースから、利用者端末毎にウェブコンテンツを表示するための処理済みデータが選択される手段と、
    前記利用者端末毎にウェブコンテンツを表示するための処理済みデータが、利用者端末毎に送信されて、利用者端末毎にウェブコンテンツが表示される手段と、
    を備え、
    前記サーバが、一または二以上の物理マシン、一または二以上の仮想マシン、ならびに、一または二以上のコンテナからなる群より選ばれる少なくとも一つの実行環境からなり、
    前記戦略案を立案する手段が、
    前記オリジナルデータならびに複数の加工済みデータからなる群より選ばれる少なくとも一つのリソースのうち、
    利用者端末毎に、利用者端末にウェブコンテンツをより速く表示するための処理済みデータが共通して有する属性を学習する手段と、
    利用者端末毎に、前記属性に基づいて、前記オリジナルデータをデータ取得・処理ユニットで処理する手段と、
    を含む、ウェブコンテンツの自動高速表示制御システム。
JP2022524779A 2020-05-20 2020-05-20 ウェブコンテンツの自動高速表示制御方法 Active JP7523733B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/020025 WO2021234882A1 (ja) 2020-05-20 2020-05-20 ウェブコンテンツの自動高速表示制御方法

Publications (3)

Publication Number Publication Date
JPWO2021234882A1 JPWO2021234882A1 (ja) 2021-11-25
JPWO2021234882A5 JPWO2021234882A5 (ja) 2023-05-24
JP7523733B2 true JP7523733B2 (ja) 2024-07-29

Family

ID=78708256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022524779A Active JP7523733B2 (ja) 2020-05-20 2020-05-20 ウェブコンテンツの自動高速表示制御方法

Country Status (3)

Country Link
US (1) US12111876B2 (ja)
JP (1) JP7523733B2 (ja)
WO (1) WO2021234882A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016112354A2 (en) 2015-01-08 2016-07-14 Instart Logic, Inc. Html streaming
US20160205166A1 (en) 2015-01-08 2016-07-14 Instart Logic, Inc. HTML streaming
WO2019072201A1 (zh) 2017-10-13 2019-04-18 华为技术有限公司 网页内容提取方法以及终端设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8010702B2 (en) * 2001-06-14 2011-08-30 Nokia Corporation Feature-based device description and content annotation
US8412812B1 (en) * 2004-12-30 2013-04-02 Google Inc. Client-side measurement of load times
US8069408B2 (en) * 2006-11-16 2011-11-29 Novell, Inc. Representing extensible markup language (XML) as an executable having conditional authentication or policy logic
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
JP5893258B2 (ja) * 2011-03-31 2016-03-23 フェリカネットワークス株式会社 情報処理装置および方法、並びにプログラム
US20140068408A1 (en) * 2012-09-05 2014-03-06 Chegg, Inc. Presentation of layered content documents in multiscreen systems
JP6311726B2 (ja) * 2014-01-22 2018-04-18 株式会社リコー データ伝送システム、端末装置、プログラムおよびデータ伝送方法
US9158656B1 (en) * 2014-07-15 2015-10-13 American Express Travel Related Services Company, Inc. Systems and methods for progressively launching websites
US10212121B2 (en) * 2014-11-24 2019-02-19 Microsoft Technology Licensing, Llc Intelligent scheduling for employee activation
US20200159866A1 (en) * 2018-11-19 2020-05-21 International Business Machines Corporation Perceived Web Page Loading Time
US12069039B2 (en) * 2020-10-23 2024-08-20 EMC IP Holding Company LLC Dynamically unifying disparate user interface applications in a cloud native environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016112354A2 (en) 2015-01-08 2016-07-14 Instart Logic, Inc. Html streaming
US20160205166A1 (en) 2015-01-08 2016-07-14 Instart Logic, Inc. HTML streaming
WO2019072201A1 (zh) 2017-10-13 2019-04-18 华为技术有限公司 网页内容提取方法以及终端设备
CN110020292A (zh) 2017-10-13 2019-07-16 华为技术有限公司 网页内容提取方法以及终端设备

Also Published As

Publication number Publication date
WO2021234882A1 (ja) 2021-11-25
JPWO2021234882A1 (ja) 2021-11-25
US20230010433A1 (en) 2023-01-12
US12111876B2 (en) 2024-10-08

Similar Documents

Publication Publication Date Title
RU2720899C2 (ru) Способ и система для определения зависящих от пользователя пропорций содержимого для рекомендации
US10936585B1 (en) Unified data processing across streaming and indexed data sets
US20210342125A1 (en) Dual textual/graphical programming interfaces for streaming data processing pipelines
US10607235B2 (en) Systems and methods for curating content
US9396485B2 (en) Systems and methods for presenting content
KR101121280B1 (ko) 내재적 사용자 피드백에 기초한 서치 엔진 결과들 페이지에 대한 동적 레이아웃
US10713666B2 (en) Systems and methods for curating content
US10965766B2 (en) Synchronized console data and user interface playback
KR102504075B1 (ko) 사용자 디바이스 이벤트의 매칭 및 속성
CN104782138A (zh) 识别缩略图图像以呈现视频
TW201118620A (en) Systems and methods for providing advanced search result page content
RU2714594C1 (ru) Способ и система определения параметра релевантность для элементов содержимого
CN106471497A (zh) 使用上下文的辅助浏览
CN1713575A (zh) 动态生成定制菜单页的系统及方法
US9922006B1 (en) Conditional promotion through metadata-based priority hinting
CN108780446A (zh) 时间依赖的机器生成的提示
US9734134B1 (en) Conditional promotion through frame reordering
JP2006053616A (ja) サーバ装置、webサイト推奨方法およびプログラム
US9565224B1 (en) Methods, systems, and media for presenting a customized user interface based on user actions
US9607322B1 (en) Conditional promotion in content delivery
CN103718179A (zh) 信息处理装置、信息处理方法、信息处理程序以及记录有信息处理程序的记录介质
JP7523733B2 (ja) ウェブコンテンツの自動高速表示制御方法
US9984132B2 (en) Combining search results to generate customized software application functions
US20170185656A1 (en) Combining Search Results That Specify Software Application Functions
US9785969B1 (en) Conditional promotion in multi-stream content delivery

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A801

Effective date: 20220707

A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20220707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230515

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240621

R150 Certificate of patent or registration of utility model

Ref document number: 7523733

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150