(57)【要約】【課題】複数のサブコンテンツを出力するためのリソースを効率よく利用することが可能な情報処理装置及びプログラムを提供する。【解決手段】１以上のコンテンツそれぞれに含まれる複数のサブコンテンツを取得する取得部と、取得された前記複数のサブコンテンツを、１以上の前記サブコンテンツの出力に係る処理を実行するための複数のプロセスのうち、少なくともいずれかの前記プロセスに対応付ける管理部と、を備える、情報処理装置。【選択図】図１
2015191507.tif 000002
【特許請求の範囲】
【請求項１】
１以上のコンテンツそれぞれに含まれる複数のサブコンテンツを取得する取得部と、
取得された前記複数のサブコンテンツを、１以上の前記サブコンテンツの出力に係る処理を実行するための複数のプロセスのうち、少なくともいずれかの前記プロセスに対応付ける管理部と、
を備える、情報処理装置。
【請求項２】
前記取得部は、前記コンテンツを取得し、取得した当該コンテンツに含まれる前記複数のサブコンテンツを抽出することで、当該複数のサブコンテンツを取得する、請求項１に記載の情報処理装置。
【請求項３】
前記管理部は、前記サブコンテンツの送信元に応じて、前記複数のサブコンテンツを前記プロセスに対応付ける、請求項１に記載の情報処理装置。
【請求項４】
前記管理部は、前記サブコンテンツの種別に基づき、当該種別が同じサブコンテンツの各々を同じ前記プロセスに対応付ける、請求項１に記載の情報処理装置。
【請求項５】
前記管理部は、前記サブコンテンツの種別に応じて、前記複数のサブコンテンツを重み付けし、当該重みの異なる前記サブコンテンツそれぞれを、互いに異なる前記プロセスに対応付ける、請求項１に記載の情報処理装置。
【請求項６】
前記管理部は、前記複数のサブコンテンツのうち、セキュリティ機能により保護された前記サブコンテンツを、他のサブコンテンツとは異なる前記プロセスに対応付ける、請求項１に記載の情報処理装置。
【請求項７】
前記管理部は、前記複数のサブコンテンツのうち、容量が閾値以上の当該サブコンテンツを、他のサブコンテンツとは異なる前記プロセスに対応付ける、請求項１に記載の情報処理装置。
【請求項８】
前記管理部は、前記複数のサブコンテンツのうち、内部に含まれるスクリプトの動作する頻度が閾値以上の当該サブコンテンツを、他のサブコンテンツとは異なる前記プロセスに対応付ける、請求項１に記載の情報処理装置。
【請求項９】
前記管理部は、前記サブコンテンツに適用される処理の種別に基づき、適用される前記処理の種別が同じサブコンテンツを同じ前記プロセスに対応付ける、請求項１に記載の情報処理装置。
【請求項１０】
前記管理部は、前記複数のサブコンテンツのうち、あらかじめ決められた２以上のサブコンテンツを同じ前記プロセスに対応付ける、請求項１に記載の情報処理装置。
【請求項１１】
前記管理部は、前記複数のサブコンテンツと前記複数のプロセスの対応に基づき、当該複数のサブコンテンツのそれぞれを前記複数のプロセスのうち少なくともいずれかに割り当てる、請求項１に記載の情報処理装置。
【請求項１２】
前記管理部は、前記複数のプロセスそれぞれの処理負荷に応じて、当該複数のプロセスを重み付けし、当該重みに応じて、前記複数のサブコンテンツそれぞれが割り当てられる前記プロセスが決定されるように、当該複数のサブコンテンツを対応付ける、請求項１１に記載の情報処理装置。
【請求項１３】
前記管理部は、前記処理負荷の低い前記プロセスに対して優先的に前記サブコンテンツを対応付ける、請求項１２に記載の情報処理装置。
【請求項１４】
前記管理部は、前記複数のプロセスそれぞれに割り当てられている前記サブコンテンツの数に応じて、当該複数のプロセスを重み付けし、当該重みに応じて、前記複数のサブコンテンツそれぞれが割り当てられる前記プロセスが決定されるように、当該複数のサブコンテンツを対応付ける、請求項１１に記載の情報処理装置。
【請求項１５】
前記管理部は、割り当てられている前記サブコンテンツの数が少ない前記プロセスに対して優先的に前記サブコンテンツを対応付ける、請求項１４に記載の情報処理装置。
【請求項１６】
前記管理部は、前記複数のサブコンテンツを少なくともいずれかの前記プロセスに対応付けた結果を示す管理情報を、当該複数のサブコンテンツを少なくともいずれかの前記プロセスに割り当てる外部装置に通知する、請求項１に記載の情報処理装置。
【請求項１７】
前記プロセスに割り当てられた前記サブコンテンツを、当該プロセスの出力結果に基づき、表示部に表示させる表示制御部を備える、請求項１に記載の情報処理装置。
【請求項１８】
前記表示部を備える、請求項１７に記載の情報処理装置。
【請求項１９】
コンピュータに、
１以上のコンテンツそれぞれに含まれる複数のサブコンテンツを取得することと、
取得された前記複数のサブコンテンツを、１以上の前記サブコンテンツの出力に係る処理を実行するための複数のプロセスのうち、少なくともいずれかの前記プロセスに対応付けることと、
を実行させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年では、文章などのテキスト情報に限らず静止画や動画等の映像情報が、コンテンツ（例えば、Ｗｅｂコンテンツ）として、インターネット等のネットワークを介して提供される場合がある。このようなコンテンツは多様化してきており、複数のサブコンテンツが同一ページ内に埋め込まれたコンテンツが提供される場合も少なくは無く、当該サブコンテンツとしてＷｅｂ広告等の外部コンテンツが埋め込まれている場合もある。
【０００３】
前述のようなコンテンツは、例えば、ＰＣ（Personal  Computer）等のユーザ端末で動作するブラウザ等の閲覧ソフト（以降では、総じて「ブラウザ」と呼ぶ場合がある）により読み出され、当該ユーザ端末の画面上に表示される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２２５７８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方で、コンテンツの多様化に伴い、ブラウザ上に表示されるサブコンテンツの数も増加する傾向にある。そのため、当該コンテンツを出力するために必要とされるプロセスや、当該プロセスが使用するメモリ等のようなリソースの量が増加する場合が少なからずある。
【０００６】
そこで、本開示では、複数のサブコンテンツを出力するためのリソースを効率よく利用することが可能な、新規かつ改良された情報処理装置及びプログラムを提供する。
【課題を解決するための手段】
【０００７】
本開示によれば、１以上のコンテンツそれぞれに含まれる複数のサブコンテンツを取得する取得部と、取得された前記複数のサブコンテンツを、１以上の前記サブコンテンツの出力に係る処理を実行するための複数のプロセスのうち、少なくともいずれかの前記プロセスに対応付ける管理部と、を備える、情報処理装置が提供される。
【０００８】
また、本開示によれば、コンピュータに、１以上のコンテンツそれぞれに含まれる複数のサブコンテンツを取得することと、取得された前記複数のサブコンテンツを、１以上の前記サブコンテンツの出力に係る処理を実行するための複数のプロセスのうち、少なくともいずれかの前記プロセスに対応付けることと、を実行させるための、プログラムが提供される。
【発明の効果】
【０００９】
以上説明したように本開示によれば、複数のサブコンテンツを出力するためのリソースを効率よく利用することが可能な情報処理装置及びプログラムを提供することが可能となる。
【００１０】
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１１】
【図１】本開示の実施形態に係る情報処理システムの概略的なシステム構成の一例について説明するための説明図である。
【図２】同実施形態に係る情報処理システムの利用シーンの一例について説明するための説明図である。
【図３】同実施形態に係る情報処理システムの利用シーンの一例について説明するための説明図である。
【図４】比較例１に係るプロセス管理方法の一例について説明するための説明図である。
【図５】比較例２に係るプロセス管理方法の一例について説明するための説明図である。
【図６】同実施形態に係る情報処理装置によるプロセス管理の概要について説明するための説明図である。
【図７】同実施形態に係る情報処理装置１０の概略的な機能構成について説明する。
【図８】同実施形態に係る情報処理装置の機能構成の一例を示したブロック図である。
【図９】情報処理装置が、取得したコンテンツに含まれるサブコンテンツを分類する際に動作する機能について説明するための説明図である。
【図１０】取得されるコンテンツの一例を模式的に示した図である。
【図１１】図１０に示すコンテンツの解析結果に基づき生成されるコンテキスト（オブジェクト）の一例である。
【図１２】情報処理装置が、分類された各サブコンテンツを、各ページプロセスに割り当てる際に動作する機能について説明するための説明図である。
【図１３】管理情報の一例を示している。
【図１４】情報処理装置が、ユーザ入力に基づきサブコンテンツの内容を更新する際に動作する機能について説明するための説明図である。
【図１５】情報処理装置が、ユーザ入力に基づきサブコンテンツの内容を更新する際に動作する機能について説明するための説明図である。
【図１６】同実施形態に係る情報処理装置１０のハードウェア構成の一例を示した図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１３】
なお、説明は以下の順序で行うものとする。
１．実施形態
１．１．概要
１．２．課題の整理
１．３．プロセス管理方法の概要
１．４．機能構成
１．４．１．サブコンテンツの分類
１．４．２．プロセスへのサブコンテンツの割り当て
１．４．３．入力イベントに基づく処理
２．実施例
２．１．実施例１：配信元に基づく分類
２．２．実施例２：サブコンテンツの種別に基づく分類
２．３．実施例３：処理種別に基づく分類
２．４．実施例４：セキュリティ機能により保護されたサブコンテンツの分類
２．５．実施例５：リソースの占有率にも基づく分類
２．６．実施例６：サブコンテンツ間の重み付け
２．７．実施例７：ページプロセス間の重み付け
３．変形例
４．ハードウェア構成
５．まとめ
【００１４】
＜１．実施形態＞
［１．１．概要］
まず、図１を参照して、本開示の実施形態に係る情報処理システムの概要について説明する。図１は、本実施形態に係る情報処理システムの概略的なシステム構成の一例について説明するための説明図である。
【００１５】
図１に示すように、本実施形態に係る情報処理システムは、例えば、情報処理装置１０と、表示装置２０と、サーバ９０とを含む。情報処理装置１０とサーバ９０とはネットワークｎ１を介して互いに情報を送受信可能に構成されている。ネットワークｎ１は、例えば、インターネット、専用線、ＬＡＮ（Local  Area  Network）、または、ＷＡＮ（Wide  Area  Network）等により構成され得る。なお、異なる装置間を接続するネットワークであれば、ネットワークｎ１の態様は限定されない。
【００１６】
サーバ９０は、所謂、Ｗｅｂサーバ、プロキシサーバ、またはエッジサーバに相当する構成である。サーバ９０は、文章などのテキスト情報に限らず静止画や動画等の映像情報を、コンテンツ（例えば、Ｗｅｂコンテンツ）として、ネットワークｎ１を介して情報処理装置１０に配信する。
【００１７】
情報処理装置１０は、サーバ９０から配信されるコンテンツを閲覧するための、所謂、ブラウザを動作させるための装置である。情報処理装置１０は、ユーザからの指示に基づきブラウザを起動させるとともに、当該ブラウザの表示画面を、後述する表示装置２０の表示部２１に表示させる。そして、情報処理装置１０は、サーバ９０から配信されるコンテンツを取得し、当該コンテンツをブラウザの表示画面上に表示させる。
【００１８】
情報処理装置１０の具体的な一例としては、ＰＣ等のユーザ端末が挙げられる。また、ブラウザを動作させ、当該ブラウザを介してコンテンツをユーザに提示できれば、情報処理装置１０の構成は必ずしもＰＣには限定されない。例えば、情報処理装置１０は、ネットワークｎ１（例えば、インターネットやＬＡＮ）にアクセス可能なテレビジョン装置等の電子機器であってもよい。
【００１９】
表示装置２０は、例えば、ディスプレイ等のような情報を表示させるための装置である。表示装置２０は、情報表示させるための表示部２１（例えば、表示パネル）を備え、情報処理装置１０からの制御に基づき情報を表示部２１に表示させる。なお、情報処理装置１０と表示装置２０とは、別々の構成でもよいし、一体的に構成されていてもよい。
【００２０】
例えば、図２には、本実施形態に係る情報処理システムで使用される表示装置２０の一例が示されている。図２は、本実施形態に係る情報処理システムの利用シーンの一例について説明するための説明図である。図２に示す例では、情報処理システムは、表示装置２０として複数のユーザが同時に参照可能な比較的大きな表示部２１を備えた装置を使用し、当該ユーザが複数のコンテンツｖ１１〜ｖ１４を同時に閲覧可能に構成されている。
【００２１】
なお、表示されるコンテンツの中には、例えば、Ｗｅｂコンテンツのフレームページのように、当該コンテンツを表示するためのフレーム中に、サブフレームとして別途コンテンツが埋め込まれているものもある。具体的な一例として、ＳＮＳ（Social  Networking  Service）が提供するコンテンツ（例えば、Ｗｅｂページ）中には、Ｗｅｂ広告等の外部コンテンツが埋め込まれている場合もある。このように、コンテンツ中に含まれる他のコンテンツ（例えば、コンテンツ中に埋め込まれた他のコンテンツ）を、以降では、「サブコンテンツ」と呼ぶ場合がある。
【００２２】
例えば、図２に示す例の場合には、コンテンツｖ１３は、サブコンテンツｖ１３１及びｖ１３２を含む。このとき、サブコンテンツｖ１３１及びｖ１３２のうちの一方のサブコンテンツは、他方のサブコンテンツとは異なる送信元（ドメイン）から配信されたコンテンツであってもよい。
【００２３】
また、本実施形態に係る情報処理装置１０は、複数のコンテンツを複数のレイヤに分けてそれぞれ表示装置２０の表示部２１に表示させてもよい。例えば、図３は、本実施形態に係る情報処理システムの利用シーンの一例について説明するための説明図であり、複数のコンテンツを複数のレイヤに分けて表示させた場合を模式的に示した図である。
【００２４】
例えば、図３に示す例では、表示部２１に表示される画面の奥行き方向に沿って、レイヤｖ１０〜ｖ３０が仮想的に重畳するように配置されており、各レイヤには割り当てられたコンテンツがそれぞれ表示されている。例えば、レイヤｖ１０には、コンテンツｖ１１〜ｖ１３が割り当てられており、当該レイヤｖ１０上に当該コンテンツｖ１１〜ｖ１３が表示されている。同様に、レイヤｖ２０には、コンテンツｖ２１が割り当てられており、当該レイヤｖ２０上に当該コンテンツｖ２１が表示されている。
【００２５】
図３に示す例の場合には、例えば、情報処理装置１０が、ユーザからの指示に応じて、表示部２１に表示される画面の奥行き方向に沿ったレイヤｖ１０〜ｖ３０の順序を切り替えることで、ユーザに対して提示するコンテンツをレイヤごとに切り替えてもよい。
【００２６】
［１．２．課題の整理］
次に、情報処理装置１０が、各コンテンツを出力（例えば、表示）するための概略的な処理の一例について説明することで、本実施形態に係る情報処理システムの課題について、特に、図１〜図３に示した構成とした場合に着目して以下に整理する。
【００２７】
情報処理装置１０は、各コンテンツ（もしくは、各サブコンテンツ）を出力するための処理を、プロセスと呼ばれる処理単位ごとに管理される。なお、プロセスとは、例えば、情報処理装置１０の各機能を動作させるＯＳ（Operating  System）が、各処理（プログラム）を実行する場合の仮想的なリソースを示す。当該ＯＳは、例えば、コンテンツを出力するための処理をプロセス単位で実行する。なお、情報処理装置１０は、プロセスよりもさらに細かいスレッドと呼ばれるリソースごとに、コンテンツを表示するための処理を実行してもよい。なお、以降では、説明をわかりやすくするために、情報処理装置１０は、各コンテンツの出力に係る処理をプロセス単位で管理するものとして説明する。
【００２８】
近年では、コンテンツの多様化に伴い、ブラウザの画面上に出力されるサブコンテンツの数も増加する傾向にある。そのため、当該コンテンツを出力するために必要とされるプロセスや、当該プロセスが使用するメモリ等のようなリソースの量も増加する傾向にある。
【００２９】
しかしながら、情報処理装置１０が、コンテンツやサブコンテンツを出力するためのリソース（例えば、プロセスや、当該プロセスが使用するメモリ）には、ソフトウェア的またはハードウェア的な要因により制限がある場合が少なくない。具体的な一例として、情報処理装置１０が一度に管理可能なプロセスの数の最大値は、ＯＳによるプロセスの管理方法やメモリの容量に依存して決定される場合がある。
【００３０】
そのため、例えば、図２及び図３に示すように、複数のコンテンツや、複数のサブコンテンツを含むコンテンツを出力させる場合に、情報処理装置１０のリソースを効率よく利用することが可能な仕組みが求められている。
【００３１】
そこで、本実施形態に係る情報処理システムの課題についてより詳細に整理するために、以下に、コンテンツを出力するためのリソース管理の一例として、複数のコンテンツをプロセスに割り当てる方法の一例を比較例１及び２として説明する。
【００３２】
（比較例１）
まず、図４を参照して、比較例１に係るプロセス管理方法の一例について説明する。図４は、比較例１に係るプロセス管理方法の一例について説明するための説明図である。図４において、参照符号ｖ１１〜ｖ１７は、表示部２１に各ページとして出力されるコンテンツの一例を示している。なお、以降では、説明をわかりやすくするために、コンテンツｖ１１〜ｖ１７のそれぞれは、１つのページ（例えば、ブラウザのウィンドゥやタブ単位で管理されるページ）に対応しており、当該ページ内に出力される異なるコンテンツ（例えば、送信元（ドメイン）の異なるコンテンツ）それぞれをサブコンテンツと呼ぶものとする。即ち、本説明では、図４に示すように、１以上のサブコンテンツを含むコンテンツを出力するものとして説明する。
【００３３】
例えば、図４に示す例では、コンテンツｖ１１は、ＳＮＳより提供されるサブコンテンツｖ１１１と、Ｗｅｂ広告のような広告として提供されるサブコンテンツｖ１１３とを含む。具体的には、図４に示す例は、ＳＮＳのサブコンテンツｖ１１１を出力するためのフレームが埋め込まれたページの一部に、広告のサブコンテンツｖ１１３が出力されたサブフレームが埋め込まれている場合の一例を示している。
【００３４】
また、コンテンツｖ１３、ｖ１５、及びｖ１７は、ニュースサイトが提供するサブコンテンツｖ１３１、ｖ１５１、及びｖ１７１をそれぞれ含む。また、コンテンツｖ１３及びｖ１５は、Ｗｅｂ広告のような広告として提供されるサブコンテンツｖ１３３及びｖ１５３をそれぞれ含む。
【００３５】
また、参照符号ｃ１１１〜ｃ１７１は、サブコンテンツｖ１１１〜ｖ１７１それぞれを出力するためのデータや当該データに基づく仮想的なオブジェクト（例えば、ＤＯＭ：Document  Object  Model）のような、当該各サブコンテンツのコンテキストを模式的に示している。
【００３６】
例えば、コンテキストｃ１１１は、ＳＮＳより提供されるサブコンテンツｖ１１１に対応したコンテキストを示している。同様に、コンテンツｃ１１３は、広告として提供されるサブコンテンツｖ１１３に対応したコンテキストを示している。
【００３７】
なお、参照符号ｃ１１〜ｃ１７は、各コンテキストｃ１１１〜ｃ１７１が、コンテンツｖ１１〜ｖ１７のうち、いずれのコンテンツに含まれるサブコンテンツに対応しているかを示している。例えば、参照符号ｃ１１で示されたコンテキストｃ１１１及びｃ１１３は、コンテンツｖ１１に含まれるサブコンテンツｖ１１１及びｖ１１３に対応していることを示している。
【００３８】
図４に示す比較例１は、各サブコンテンツｖ１１１〜ｖ１７１の出力に係る処理が、単一のプロセスｐ１０（単一のスレッド）により管理される場合の一例を示している。即ち、図４に示す例では、サブコンテンツｖ１１１〜ｖ１７１の出力に係る処理が、プロセスｐ１０に割り当てられる。この場合には、プロセスｐ１０は、自身が管理するメモリ空間に、サブコンテンツｖ１１１〜ｖ１７１のそれぞれに対応するコンテキストｃ１１１〜ｃ１７１を展開する。そして、プロセスｐ１０は、当該コンテキストに基づきサブコンテンツｖ１１１〜ｖ１７１それぞれの出力を制御する。
【００３９】
なお、本説明では、プロセスが各サブコンテンツを出力するための処理を実行する場合を例に説明するが、当該サブコンテンツを含むコンテンツについても同様である。なお、コンテンツを出力するための処理を実行する場合については、各サブコンテンツに対する処理に関する説明において、「サブコンテンツ」を「コンテンツ」に適宜読み替えればよい。
【００４０】
図４に示すように単一プロセスｐ１０により、一連のサブコンテンツの出力に係る処理を管理する場合には、例えば、一部のサブコンテンツの出力に係る処理が異常終了した場合に、プロセスｐ１０が処理を終了する場合が少なくない。このような場合には、一部のサブコンテンツの出力に係る処理に加えて、他のサブコンテンツの出力に係る処理があわせて終了することとなる。
【００４１】
また、プロセスｐ１０が、一連のサブコンテンツの出力に係る処理を管理するため、例えば、一部のサブコンテンツの出力に係る処理が無応答となった場合に、当該プロセスｐ１０の処理全体が応答待ちの状態となる場合が少なくない。このような場合には、他のサブコンテンツの出力に係る処理があわせて応答待ちの状態となり、当該サブコンテンツの出力に係るレスポンスが著しく低下する場合がある。
【００４２】
また、一連のサブコンテンツの出力に係る処理が単一プロセスｐ１０により管理されるため、例えば、マルチコアプロセッサのように、並列処理が可能なプロセッサを適用した場合に、各コンテンツの出力に係る処理を並列に処理することが困難である。
【００４３】
また、プロセスｐ１０が、一連のサブコンテンツの出力に係る処理を管理するため、当該一連のサブコンテンツそれぞれのコンテキストが同一のメモリ空間上で管理されることとなる。そのため、例えば、一部のサブコンテンツにセキュリティ上の脆弱性が存在した場合に、当該サブコンテンツの脆弱性を介して、他のサブコンテンツが悪意のある攻撃にさらされる可能性がある。
【００４４】
（比較例２）
次に、図５を参照して、比較例２に係るプロセス管理方法の一例について説明する。図５は、比較例２に係るプロセス管理方法の一例について説明するための説明図である。図５に示す例は、図４に示したコンテンツｖ１１〜ｖ１７の各サブコンテンツそれぞれを、コンテンツごとに、互いに異なるプロセスｐ１１〜ｐ１７に割り当てて管理する場合の一例を示している。
【００４５】
具体的な一例として、プロセスｐ１１には、コンテンツｖ１１に含まれるサブコンテンツｖ１１１及びｖ１１３が割り当てられている。即ち、プロセスｐ１１は、自身が管理するメモリ空間に、サブコンテンツｖ１１１及びｖ１１３のそれぞれに対応するコンテキストｃ１１１及びｃ１１３を展開する。そして、プロセスｐ１１は、当該コンテキストに基づきサブコンテンツｖ１１１及びｖ１１３それぞれの出力を制御する。
【００４６】
また、プロセスｐ１３には、コンテンツｖ１３に含まれるサブコンテンツｖ１３１及びｖ１３３が割り当てられている。同様に、プロセスｐ１５には、コンテンツｖ１５に含まれるサブコンテンツｖ１５１及びｖ１５３が割り当てられ、プロセスｐ１７には、コンテンツｖ１７に含まれるサブコンテンツｖ１７１が割り当てられている。
【００４７】
このように、図５に示す比較例２では、コンテンツｖ１１〜ｖ１７の各サブコンテンツを、コンテンツごとに異なるプロセスに割り当てて管理する。このような構成により、例えば、一部のプロセスが異常終了や応答待ちの状態となった場合においても、当該一部のプロセスに割り当てられたサブコンテンツの出力に係る処理のみに影響範囲を限定することが可能となる。即ち、この場合には、他のプロセスは、当該一部のプロセスの動作（例えば、異常終了や応答待ち）の影響を受けずに、自身に割り当てられたサブコンテンツの出力に係る処理を継続させることが可能となる。
【００４８】
具体的な一例として、サブコンテンツｖ１３３の出力に係る処理が異常終了した場合に、プロセスｐ１３が処理を終了したものとする。この場合には、プロセスｐ１３に割り当てられたサブコンテンツｖ１３１の出力に係る処理があわせて終了する場合があるが、他のプロセスに割り当てられたサブコンテンツの出力に係る処理は継続されることとなる。
【００４９】
一方で、一般的には、プロセス数が増えるほど使用するメモリの容量（換言すると、使用するメモリの容量のオーバーヘッド）が大きくなる傾向にある。即ち、図５に示す比較例２に係るプロセス管理方法を適用した場合には、出力されるページ（コンテンツ）の数が増えるほど、図４に示す比較例１に係るプロセス管理方法を適用した場合に比べて、より多くの容量のメモリが使用されることとなる。
【００５０】
また、前述したように、情報処理装置が一度に管理可能なプロセスの数の最大値は、ＯＳによるプロセスの管理方法やメモリの容量に依存して決定される場合がある。また、当該プロセスは、コンテンツの表示のみに使用されるとは限らず、ＯＳが管理するその他の処理も割り当てられる。そのため、図５に示した比較例２に係るプロセス管理方法においては、同時に動作するプロセスの数が、情報処理装置が管理可能なプロセスの最大数を超えるように、多くのページが開かれた場合に、情報処理装置のレスポンスが著しく低下する可能性がある。特に、比較例２に係るプロセス管理方法の場合には、情報処理装置の処理性能に関わらず、出力されるコンテンツ（ページ）の数に応じて動作するプロセス数が決定されるため、当該情報処理装置の処理性能を超えて、プロセスが生成される可能性が少なからずある。
【００５１】
また、比較例２に係るプロセス管理方法では、コンテンツ（ページ）ごとに、当該コンテンツに含まれるサブコンテンツがプロセスに割り当てられるため、例えば、送信元の異なる複数のサブコンテンツが互いに同じプロセスに割り当てられる場合もある。このような場合には、送信元の異なる（換言すると、配信元の異なる）複数のサブコンテンツそれぞれのコンテキストが互いに同じメモリ空間上で管理されることとなる。そのため、同じプロセスに割り当てられたサブコンテンツのうち、一部のサブコンテンツにセキュリティ上の脆弱性が存在した場合に、当該サブコンテンツの脆弱性を介して、他のサブコンテンツが悪意のある攻撃にさらされる可能性がある。
【００５２】
［１．３．プロセス管理方法の概要］
以上を踏まえて、本実施形態に係る情報処理装置１０は、複数のサブコンテンツを含むコンテンツを出力するためのリソースを効率よく利用可能とする仕組みを提供する。また、本実施形態に係る情報処理装置１０は、例えば、セキュリティ機能により保護されたサブコンテンツが、他のサブコンテンツを介した悪意のある攻撃から保護されるようにリソースを管理することで、セキュリティを向上させる。
【００５３】
具体的には、本実施形態に係る情報処理装置１０は、各コンテンツに含まれるサブコンテンツそれぞれをあらかじめ決められた条件に基づき分類し、当該分類ごとにプロセスに割り当てる。以下に、図６を参照して、本実施形態に係る情報処理装置１０によるプロセス管理の概要について説明する。図６は、本実施形態に係る情報処理装置１０によるプロセス管理の概要について説明するための説明図である。
【００５４】
図６に示す例では、情報処理装置１０は、コンテンツｖ１１〜ｖ１７のそれぞれに含まれるサブコンテンツｖ１１１〜ｖ１７１のコンテキストｃ１１１〜ｃ１７１を、プロセスｐ１０、ｐ２０、及びｐ３０のいずれかに割り当てて管理する。
【００５５】
このとき、情報処理装置１０は、例えば、ニュースサイトが提供するサブコンテンツｖ１３１、ｖ１５１、及びｖ１７１と、広告として提供されるサブコンテンツｖ１１３、ｖ１５３、及びｖ１７３とを互いに異なるプロセスに割り当てている。具体的には、図６に示す例では、情報処理装置１０は、ニュースサイトが提供するサブコンテンツｖ１３１、ｖ１５１、及びｖ１７１をプロセスｐ３０に割り当て、広告として提供されるサブコンテンツｖ１１３、ｖ１５３、及びｖ１７３をプロセスｐ１０に割り当てている。このように、情報処理装置１０は、ニュースサイト等の各種サイトが主コンテンツとして提供するサブコンテンツと、Ｗｅｂ広告等のように、主コンテンツとは異なる配信元が提供するサブコンテンツとを、互いに異なるプロセスに割り当てている。
【００５６】
なお、ニュースサイト等の各種サイトが主コンテンツとして提供するサブコンテンツと、所謂Ｗｅｂ広告のような主コンテンツとは異なる配信元が提供するサブコンテンツとは、例えば、当該サブコンテンツの配信元（ドメイン）に基づき区別することが可能である。
【００５７】
また、情報処理装置１０は、例えば、認証機能等のセキュリティ機能により保護されたサブコンテンツｖ１１１と、他のサブコンテンツとを互いに異なるプロセスに割り当てている。具体的には、図６に示す例では、情報処理装置１０は、サブコンテンツｖ１１１をプロセスｐ２０に割り当て、他のサブコンテンツをプロセスｐ１０及びｐ３０のうちのいずれかに割り当てている。
【００５８】
なお、各サブコンテンツがセキュリティ機能により保護されているか否かについては、例えば、各サブコンテンツを配信するための通信プロトコルに基づき区別することが可能である。なお、セキュリティを保護するためのプロトコルの一例としては、ＳＳＬ（Secure  Sockets  Layer）／ＴＬＳ（Transport  Layer  Security）プロトコルが挙げられる。また、ＳＳＬ／ＴＬＳプロトコルを使用した通信としては、例えば、ＨＴＴＰＳ（Hypertext  Transfer  Protocol  Secure）が挙げられる。また、各サブコンテンツがセキュリティ機能により保護されているか否かを判断できれば、その方法は特に限定されないことは言うまでもない。
【００５９】
このような構成により、本実施形態に係る情報処理装置１０は、例えば、自身の処理性能に応じて、各サブコンテンツを出力するためのプロセスの数を制御することが可能となる。そのため、本実施形態に係る情報処理装置１０は、例えば、図２及び図３に示すように、比較的に多くの数（例えば、小型のディスプレイにコンテンツを出力する場合に比べて多くの数）のコンテンツを出力する場合においても、自身の処理性能を超えてプロセスを動作させる事態を未然に防止し、処理性能の低下を抑止することが可能となる。
【００６０】
また、情報処理装置１０は、各コンテンツに含まれるサブコンテンツを、あらかじめ決められた条件に基づき分類し、当該分類に応じて各サブコンテンツをいずれかのプロセスに割り当てる。これにより、各サブコンテンツと各プロセスとが対応付けられる。
【００６１】
このような構成により、例えば、情報処理装置１０は、セキュリティ機能により保護されたサブコンテンツを、他のサブコンテンツとは異なるプロセスに割り当てることも可能となる。そのため、情報処理装置１０は、セキュリティ機能により保護されたサブコンテンツを、他のサブコンテンツを介した悪意ある攻撃から保護することが可能となる。
【００６２】
また、情報処理装置１０は、動画などの映像を出力するサブコンテンツのように、他のサブコンテンツに比べて出力に要するメモリの容量が大きいサブコンテンツを、他のサブコンテンツとは異なるプロセスに割り当ててもよい。また、他の一例として、情報処理装置１０は、サブコンテンツ内のスクリプトの実行に伴い、他のサブコンテンツに比べてプロセッサの専有頻度の高い（即ち、スクリプトが実行される頻度が高い）サブコンテンツを他のサブコンテンツとは異なるプロセスに割り当ててもよい。
【００６３】
出力に要するメモリの容量が大きいサブコンテンツや、プロセッサの専有頻度の高いサブコンテンツは、プロセスの動作を不安定にする頻度が、他のサブコンテンツに比べて高く、結果としてプロセスを異常終了させる可能性が高い場合がある。一方で、本実施形態に係る情報処理装置１０は、上記に示した構成により、プロセスを異常終了させる可能性の高いサブコンテンツを、他のサブコンテンツと異なるプロセスに割り当てることで、他のサブコンテンツを安定的に出力することが可能となる。
【００６４】
以上、図６を参照しながら、本実施形態に係る情報処理装置１０の概要について説明した。なお、以降では、本実施形態に係る情報処理装置１０の構成や処理についてさらに詳しく説明する。
【００６５】
［１．４．機能構成］
本実施形態に係る情報処理装置１０の機能構成の一例について説明する。まず、図７を参照して、本実施形態に係る情報処理装置１０の概略的な機能構成について説明する。
【００６６】
図７に示すように、本実施形態に係る情報処理装置１０は、管理プロセス１１と、複数のページプロセス１３とを含む。図７に示す例は、ページプロセス１３として、ページプロセス１３ａ〜１３ｃを含む場合を示している。管理プロセス１１は、プロセス管理部１１１と、管理データ記憶部１１３と、入出力管理部１１５とを含む。
【００６７】
ページプロセス１３は、コンテンツ中に含まれる各サブコンテンツの表示に係る処理を実行するためのプロセスを模式的に示したものである。ページプロセス１３は、例えば、図６に示したプロセスｐ１０、ｐ２０、及びｐ３０に相当する。
【００６８】
プロセス管理部１１１は、ページプロセス１３の生成及び破棄と、生成された各ページプロセス１３へのサブコンテンツの割り当てを行う。プロセス管理部１１１は、例えば、情報処理装置１０の性能情報に応じて、動作するページプロセス１３の数を制御してもよい。性能情報としては、情報処理装置１０に搭載されたメモリの容量や、当該メモリの空き容量、及び当該情報処理装置１０のプロセッサ（例えば、ＣＰＵ：Central  Processing  Unit）の使用率等が挙げられる。
【００６９】
具体的な一例として、プロセス管理部１１１は、情報処理装置１０に搭載されたメモリ容量が大きいほど、生成するページプロセス１３の数の最大値が大きくなるように制御してもよい。また、プロセス管理部１１１は、情報処理装置１０のメモリの空き容量が所定値よりも大きい場合には、ページプロセス１３を追加で生成し、当該メモリの空き容量が所定値より小さくなった場合には、使用されていないページプロセス１３の一部を破棄してもよい。
【００７０】
また、プロセス管理部１１１は、各コンテンツに含まれるサブコンテンツを所定の条件に基づき分類し、当該分類の結果に基づき、各サブコンテンツを、動作しているページプロセス１３いずれかに割り当てる。また、プロセス管理部１１１は、各サブコンテンツがどのページプロセス１３に割り当てられているのかを示す情報を、管理情報として管理データ記憶部１１３に記録する。
【００７１】
なお、このような構成により、複数のサブコンテンツを含むコンテンツ（以降では、「親コンテンツ」と呼ぶ場合がある）と、当該複数のサブコンテンツとが互いに異なるページプロセス１３に割り当てられる場合がある。
【００７２】
そのため、入出力管理部１１５が、親コンテンツと各サブコンテンツとの間の情報の入出力（例えば、ユーザ操作に基づくイベント処理等）を、管理データ記憶部１１３に記憶された管理情報に基づき制御する。
【００７３】
例えば、ユーザがあるコンテンツが表示された画面に対して操作を行ったものとする。このとき、入出力管理部１１５は、ユーザの操作内容に基づき操作の対象となったサブコンテンツ（ページ）を特定し、当該サブコンテンツが割り当てられたプロセスを管理データ記憶部１１３に記憶された管理情報に基づき特定する。そして、入出力管理部１１５は、ユーザの操作内容を示す情報（イベント情報）を特定したプロセスに通知する。
【００７４】
また、入出力管理部１１５は、各ページプロセスから、各サブコンテンツの描画結果を取得し、当該描画結果を表示画面として表示装置２０の表示部２１に出力する。
【００７５】
なお、管理プロセス１１の各構成（即ち、プロセス管理部１１１、管理データ記憶部１１３、及び入出力管理部１１５）や、ページプロセス１３の詳細については、別途後述する。
【００７６】
また、管理プロセス１１とページプロセス１３との間や、互いに異なるページプロセス１３間の通信は、例えば、ＯＳが機能として提供するプロセス間通信に基づき実現することが可能である。また、異なるプロセス間で情報を送受信できれば、管理プロセス１１とページプロセス１３との間や、互いに異なるページプロセス１３間で情報を送受信する方法は特に限定されないことは言うまでもない。
【００７７】
次に、図８を参照して、本実施形態に係る情報処理装置１０の機能構成の一例について説明する。図８は、本実施形態に係る情報処理装置１０の機能構成の一例を示したブロック図である。特に、図８は、ページプロセス１３の機能構成の一例について詳細に示している。
【００７８】
図８に示すように、ページプロセス１３は、コンテンツ取得部１３１と、解析部１３２と、コンテキスト保持部１３３と、レイアウト制御部１３４と、描画処理部１３５と、イベント処理部１３６とを含む。
【００７９】
なお、以降では、本実施形態に係る情報処理装置１０の動作をわかりやすくするために、「１．４．１．サブコンテンツの分類」、「１．４．２．プロセスへのサブコンテンツの割り当て」、及び「１．４．３．入力イベントに基づく処理」の３つの処理契機に分けて、管理プロセス１１の各構成と、ページプロセス１３の各構成との詳細について説明する。
【００８０】
＜＜１．４．１．サブコンテンツの分類＞＞
まず、図９を参照して、情報処理装置１０が、サーバ９０から配信されたコンテンツを取得し、当該コンテンツに含まれるサブコンテンツを、各ページプロセス１３に割り当てるために分類する処理に着目して、当該処理時に動作する構成について説明する。図９は、情報処理装置１０が、取得したコンテンツに含まれるサブコンテンツを分類する際に動作する機能について説明するための説明図である。なお、図９では、図８に示すブロック図のうち、情報処理装置１０がコンテンツを取得し、取得した当該コンテンツに含まれるサブコンテンツを分類する際の情報の流れを実線で示し、その他については破線で示している。
【００８１】
まず、サーバ９０からコンテンツが配信されると、当該コンテンツは、ページプロセス１３のコンテンツ取得部１３１により取得される。このとき、最初にコンテンツを取得するページプロセス１３については、運用やブラウザの構成に応じて適宜設定すればよい。例えば、所定のページプロセス１３が、コンテンツを取得してもよい。また、他の一例として、プロセス管理部１１１が、各ページプロセス１３のうちいずれか（例えば、処理負荷の低いページプロセス１３）を選択して、当該ページプロセス１３にコンテンツを取得させてもよい。本説明では、ページプロセス１３ａのコンテンツ取得部１３１が、サーバ９０からコンテンツを取得したものとして説明する。
【００８２】
コンテンツ取得部１３１は、例えば、ユーザ操作に基づき指定された配信元の情報（例えば、ＵＲＬ：Uniform  Resource  Locator）に基づき当該配信元にアクセスし、当該配信元からコンテンツを取得する。
【００８３】
なお、本説明では、コンテンツ取得部１３１は、図１０に示すようなコンテンツｖ５１を取得したものとして説明する。図１０は、本実施形態に係る情報処理装置１０の動作について説明するための説明図であり、取得されるコンテンツの一例を模式的に示している。即ち、コンテンツ取得部１３１は、サブコンテンツｖ５１１、ｖ５１３、ｖ５１５、及びｖ５１７を含むコンテンツｖ５１を取得したものとする。
【００８４】
コンテンツ取得部１３１は、取得したコンテンツｖ５１を解析部１３２に出力する。
【００８５】
解析部１３２は、コンテンツ取得部１３１からコンテンツｖ５１を取得する。解析部１３２は、コンテンツｖ５１の内容を解析することで、コンテンツｖ５１からサブコンテンツｖ５１１、ｖ５１３、ｖ５１５、及びｖ５１７の情報を抽出する。
【００８６】
具体的な一例として、コンテンツｖ５１がＨＴＭＬ（HyperText  Markup  Language）やＳＧＭＬ（Standard  Generalized  Markup  Language）、またはＸＭＬ（Extensible  Markup  Language）等のマークアップ言語で記述されているものとする。この場合には、解析部１３２は、例えば、コンテンツｖ５１の内容を構文解析及び字句解析し、当該解析結果に基づき、コンテンツｖ５１中に含まれる各サブコンテンツを構造化してオブジェクト（例えば、ＤＯＭ）等のコンテキストを生成する。そして、解析部１３２は、生成した当該コンテキストからサブコンテンツｖ５１１、ｖ５１３、及びｖ５１４の情報を抽出すればよい。
【００８７】
例えば、図１１は、図１０に示すコンテンツの解析結果に基づき生成されるコンテキスト（オブジェクト）の一例を模式的に示したものである。図１１において、参照符号ｃ５１は、図１０に示すコンテンツｖ５１のコンテキストの一例を示している。また、参照符号ｃ５１１、ｃ５１３、ｃ５１５、及びｃ５１７は、図１０に示すサブコンテンツｖ５１１、ｖ５１３、ｖ５１５、及びｖ５１７のコンテキストの一例をそれぞれ示している。
【００８８】
例えば、図１０に示す例では、コンテンツｖ５１には、ｖ５１１、ｖ５１３、及びｖ５１５が含まれている。そのため、図１１に示す例では、コンテキストｃ５１を親ノードとし、サブコンテンツｖ５１１、ｖ５１３、及びｖ５１５のコンテキストｃ５１１、ｃ５１３、及びｃ５１５がコンテキストｃ５１の子ノードとして関連付けられている。
【００８９】
また、図１０に示すサブコンテンツｖ５１５及びｖ５１７のように、一部のサブコンテンツ中に他のサブコンテンツが含まれていてもよい。この場合には、コンテキストｃ５１５を親ノードとし、サブコンテンツｖ５１７のコンテキストｃ５１７がコンテキストｃ５１５の子ノードとして関連付けられている。
【００９０】
なお、各コンテキストは、当該コンテキストに対応するサブコンテンツに関するメタ情報（例えば、ＵＲＬ等）を、属性情報として保持する。
【００９１】
以上のようにして、解析部１３２は、コンテンツｖ５１を解析することで当該コンテンツｖ５１のコンテキストを生成し、生成したコンテキストに基づきサブコンテンツｖ５１１、ｖ５１３、ｖ５１５、及びｖ５１７に関するメタ情報を抽出する。なお、メタ情報としては、ＵＲＬ等の各サブコンテンツの取得元、各サブコンテンツに含まれる情報のデータ種別（例えば、静止画や動画等を示す情報）等が挙げられる。
【００９２】
そして、解析部１３２は、コンテンツｖ５１に含まれる各サブコンテンツそれぞれのコンテキストから抽出したメタ情報を、当該サブコンテンツごとに、プロセス管理部１１１に出力する。なお、プロセス管理部１１１は、解析部１３２からサブコンテンツごとに抽出される情報（例えば、メタ情報）に基づき、コンテンツｖ５１に含まれる各サブコンテンツを分類する。そのため、解析部１３２は、プロセス管理部１１１の処理内容に応じて、当該プロセス管理部１１１に通知する情報を精査してもよい。
【００９３】
また、解析部１３２は、各サブコンテンツを含むコンテンツｖ５１のコンテキストから抽出したメタ情報についても、各サブコンテンツと同様に、プロセス管理部１１１に通知してもよい。このような構成により、プロセス管理部１１１は、コンテンツｖ５１を他のサブコンテンツと同様に分類することが可能となる。なお、以降では、説明をわかりやすくするために、主にサブコンテンツを処理の対象とする場合に着目して説明する。
【００９４】
また、解析部１３２は、コンテンツｖ５１に対する解析結果に基づき取得可能なサブコンテンツに関する情報であれば、サブコンテンツごとにプロセス管理部１１１に通知する情報は、必ずしも、各コンテキストに含まれるメタ情報には限定されない。例えば、解析部１３２は、各サブコンテンツに含まれるスクリプトのコードに基づき特定可能な情報（例えば、スクリプトのコード量や、ループ処理の有無等）をプロセス管理部１１１に出力してもよい。
【００９５】
なお、以降では、説明をわかりやすくするために、解析部１３２は、各サブコンテンツに関する情報として、当該各サブコンテンツのコンテキストに含まれるメタ情報を出力するものとして説明する。また、以降では、各サブコンテンツのコンテキストに含まれるメタ情報を、単に「各コンテンツのメタ情報」と記載する場合がある。
【００９６】
プロセス管理部１１１は、コンテンツｖ５１に含まれる各サブコンテンツのメタ情報を、サブコンテンツごとに解析部１３２から取得する。そして、プロセス管理部１１１は、取得したメタ情報を入力情報として、各サブコンテンツを、あらかじめ決められた条件に基づき分類する。
【００９７】
例えば、プロセス管理部１１１は、メタ情報として提示された各サブコンテンツの配信元を示すＵＲＬに基づき、当該配信元ごとに各サブコンテンツを分類してもよい。また、プロセス管理部１１１は、サブコンテンツの配信元を示すＵＲＬに基づき、当該サブコンテンツが、Ｗｅｂ広告等のように、主コンテンツとは異なる配信元が提供するサブコンテンツか否かを判断し、当該判断結果に基づき各サブコンテンツを分類してもよい。具体的な一例として、プロセス管理部１１１は、広告として提供されるサブコンテンツを配信するサイトのＵＲＬをリストとしてあらかじめ記憶しておき、当該リストに基づき、各サブコンテンツが、広告として提供されたサブコンテンツか否かを判断してもよい。
【００９８】
また、他の一例として、プロセス管理部１１１は、各サブコンテンツを配信するための通信プロトコルに基づき、当該サブコンテンツがセキュリティ機能により保護されたサブコンテンツか否かを判断し、当該判断の結果に基づき各サブコンテンツを分類してもよい。具体的な一例として、プロセス管理部１１１は、サブコンテンツの配信元を示すＵＲＬに基づき、当該サブコンテンツを配信するための通信プロトコルを特定してもよい。また、プロセス管理部１１１は、配信元のＵＲＬに限らず、他のメタ情報に基づきサブコンテンツを配信するための通信プロトコルを特定してもよい。
【００９９】
また、他の一例として、プロセス管理部１１１は、メタ情報に示された各サブコンテンツの種別に基づき、各サブコンテンツを分類してもよい。具体的な一例として、プロセス管理部１１１は、動画等のように他の種別（例えば文字情報）に比べて出力に要するメモリの容量が大きいサブコンテンツを、当該他の種別のサブコンテンツとは分けて分類してもよい。
【０１００】
なお、上記に示した各サブコンテンツの分類方法はあくまで一例であり、上記に示す方法に限定するものではない。プロセス管理部１１１による、各サブコンテンツを分類する方法については、別途詳細を後述する。
【０１０１】
以上のようにして、情報処理装置１０は、サーバ９０から配信されるコンテンツを取得し、当該コンテンツに含まれるサブコンテンツを、あらかじめ決められた条件に基づき分類する。
【０１０２】
＜＜１．４．２．プロセスへのサブコンテンツの割り当て＞＞
次に、図１２を参照して、情報処理装置１０が、分類された各サブコンテンツを、各ページプロセス１３に割り当てて、各ページプロセス１３が割り当てられたサブコンテンツを出力する処理に着目して、当該処理時に動作する構成について説明する。図１２は、情報処理装置１０が、分類された各サブコンテンツを、各ページプロセス１３に割り当てる際に動作する機能について説明するための説明図である。なお、図１２では、図８に示すブロック図のうち、情報処理装置１０がサブコンテンツをページプロセス１３に割り当て、当該ページプロセス１３により当該サブコンテンツの内容が出力される際の情報の流れを実線で示し、その他については破線で示している。
【０１０３】
プロセス管理部１１１は、各サブコンテンツをあらかじめ決められた条件に基づき分類すると、当該分類の結果に応じて、各サブコンテンツを動作するページプロセス１３（例えば、ページプロセス１３ａ〜１３ｂ）のいずれかに割り当てる。
【０１０４】
具体的な一例として、プロセス管理部１１１は、Ｗｅｂ広告等のように、主コンテンツとは異なる配信元が提供するサブコンテンツを、互いに同じページプロセス１３に割り当てる。また、他の一例として、プロセス管理部１１１は、セキュリティ機能により保護されたサブコンテンツを、他のサブコンテンツとは異なるページプロセス１３に割り当ててもよい。
【０１０５】
また、プロセス管理部１１１は、ページプロセス１３を新たに起動し、起動した当該ページプロセス１３に各サブコンテンツを割り当ててもよい。
【０１０６】
また、プロセス管理部１１１は、ある分類のサブコンテンツを割り当てるためのページプロセス１３の候補が複数存在する場合には、あらかじめ決められた条件に基づき、サブコンテンツの割り当て先となるページプロセス１３を決定してもよい。
【０１０７】
具体的な一例として、プロセス管理部１１１は、各ページプロセス１３に既に割り当てられているサブコンテンツの数に応じて、当該各ページプロセス１３を重み付けし、重み付けに応じて、新たにサブコンテンツを割り当てるページプロセス１３を決定してもよい。例えば、プロセス管理部１１１は、割り当てられたサブコンテンツの数が少ないページプロセス１３に対して、優先的に新たにサブコンテンツを割り当ててもよい。
【０１０８】
なお、上記に示した、プロセス管理部１１１が、各サブコンテンツを各ページプロセス１３に割り当てる方法は、あくまで一例であり、その内容は上記に示す例には限定されない。プロセス管理部１１１が、各サブコンテンツを各ページプロセス１３に割り当てる方法については、他の例も含めて、詳細を別途後述する。
【０１０９】
以上のようにして、プロセス管理部１１１は、各サブコンテンツを分類した結果に応じて、当該サブコンテンツを、いずれかのページプロセス１３に割り当てる。そして、プロセス管理部１１１は、各サブコンテンツと、当該サブコンテンツが割り当てられたページプロセス１３との対応関係を、管理データ記憶部１１３に記憶された管理情報ｄ１０に記録する。
【０１１０】
例えば、図１３は、管理データ記憶部１１３に記憶された管理情報ｄ１０の一例を示している。図１３に示すように、管理情報は、例えば、メタ情報ｄ１１と、ページプロセスｄ１３とを含む。メタ情報ｄ１１は、各サブコンテンツのコンテキストから抽出された情報のうち、当該サブコンテンツを識別可能な情報を示している。メタ情報ｄ１１としては、例えば、サブコンテンツのＵＲＬが挙げられる。また、ページプロセスｄ１３は、メタ情報ｄ１１が示すサブコンテンツが割り当てられたページプロセス１３を示している。なお、ページプロセスｄ１３として管理する情報としては、例えば、ＯＳが各プロセスを管理するためのプロセスナンバー等が挙げられる。なお、プロセスナンバーについては、例えば、ＯＳのシステムコールを使用することで取得することが可能である。
【０１１１】
図１３に示すように、管理データ記憶部１１３に記憶された管理情報ｄ１０は、サブコンテンツと、当該サブコンテンツが割り当てられたページプロセス１３との対応関係を管理するための情報である。なお、図１３に示す管理情報ｄ１０の構成は、あくまで一例であり、サブコンテンツとページプロセス１３との間の対応関係を管理できれば、その構成は特に限定されない。例えば、管理情報ｄ１０は、ＵＲＬ以外のサブコンテンツのメタ情報を含んでもよい。
【０１１２】
また、プロセス管理部１１１は、サブコンテンツを割り当てたページプロセス１３に対して、当該サブコンテンツを取得するためのメタ情報（例えば、ＵＲＬ）を通知し、当該ページプロセス１３に対して、当該サブコンテンツの出力を指示する。そこで、以降では、プロセス管理部１１１が、図１０に示したサブコンテンツｖ５１５の出力を、ページプロセス１３ｂに指示したものとして説明する。
【０１１３】
ページプロセス１３ｂのコンテンツ取得部１３１は、プロセス管理部１１１からサブコンテンツｖ５１５を取得するためのメタ情報を取得する。コンテンツ取得部１３１は、取得したメタ情報に基づいてサーバ９０にアクセスし、サブコンテンツｖ５１５を取得する。
【０１１４】
コンテンツ取得部１３１は、取得したサブコンテンツｖ５１５を解析部１３２に出力する。
【０１１５】
解析部１３２は、コンテンツ取得部１３１からサブコンテンツｖ５１５を取得する。解析部１３２は、サブコンテンツｖ５１５の内容を解析することで、当該サブコンテンツｖ５１５のコンテキストｃ５１５を生成する。そして、解析部１３２は、生成したコンテキストｃ５１５を、コンテキスト保持部１３３に保持させる。
【０１１６】
コンテキスト保持部１３３は、ページプロセス１３に割り当てられたサブコンテンツのコンテキストを、当該ページプロセス１３内の各機能（例えば、レイアウト制御部１３４やイベント処理部１３６）が参照するために保持するための保持部である。
【０１１７】
なお、生成されるコンテキストｃ５１５には、サブコンテンツｖ５１５中に含まれるサブコンテンツｖ５１７の、当該サブコンテンツｖ５１５中における出力位置等のように、サブコンテンツｖ５１５中にサブコンテンツｖ５１７を出力するための情報が含まれる。一方で、サブコンテンツｖ５１７自体のコンテキストについては、必ずしもコンテキストｃ５１５内に含まれている必要はない。例えば、サブコンテンツｖ５１７がページプロセス１３ｃに割り当てられた場合には、当該サブコンテンツｖ５１７は、当該ページプロセス１３ｃが保持することとなる。
【０１１８】
解析部１３２によるコンテキストｃ５１５の生成が完了すると、レイアウト制御部１３４が、コンテキスト保持部１３３に保持されたコンテキストｃ５１５に基づき、サブコンテンツｖ５１５を画面として表示するためにレイアウトを調整する。
【０１１９】
具体的には、レイアウト制御部１３４は、サブコンテンツｖ５１５中の各コンポーネントの表示位置やサイズを、当該コンポーネントを示すオブジェクトのメタ情報（例えば、表示位置やサイズを示す情報）に基づき調整することで、レイアウトを調整する。なお、コンポーネントとは、例えば、サブコンテンツの画面を構成する部品（例えば、アイコン等）を指し、コンテキストには、当該コンポーネントを出力するための情報が含まれている。
【０１２０】
また、レイアウト制御部１３４は、例えば、ＯＳのシステムコールなどを利用して、ブラウザのウィンドウサイズ等の、コンテンツや各コンテンツを表示させるための情報を取得し、取得した情報に基づきレイアウトを調整してもよい。
【０１２１】
レイアウトの調整が完了すると、レイアウト制御部１３４は、レイアウトの調整結果に基づき、コンテキスト保持部１３３に保持されたコンテキストｃ５１５内に含まれる各コンポーネントの情報（表示位置やサイズ等の情報）を追加または更新する。
【０１２２】
また、レイアウト制御部１３４は、レイアウトの調整結果に基づき更新されたコンテキストｃ５１５を、描画処理部１３５に出力する。
【０１２３】
描画処理部１３５は、レイアウト制御部１３４からコンテキストｃ５１５を取得し、取得したコンテキストｃ５１５に基づき、サブコンテンツｖ５１５の画面を描画する。具体的には、描画処理部１３５は、サブコンテンツｖ５１５に含まれる各コンポーネントを、コンテキストｃ５１５に含まれる当該コンポーネントの情報に基づき配置することで、サブコンテンツｖ５１５の画面を生成する。そして、描画処理部１３５は、生成されたサブコンテンツｖ５１５の画面を描画することで、当該画面が提示された画像（以降では、単に「画面」と呼ぶ場合がある）を生成する。
【０１２４】
なお、サブコンテンツｖ５１５に含まれるサブコンテンツｖ５１７の画面については、ページプロセス１３ｂとは異なるページプロセス１３により生成されている場合がある。その場合には、描画処理部１３５は、後述する入出力管理部１１５を介して、サブコンテンツｖ５１７が割り当てられたページプロセス１３から、当該サブコンテンツｖ５１７の描画結果（画面）を取得する。そして、描画処理部１３５は、取得したサブコンテンツｖ５１７の描画結果を、サブコンテンツｖ５１５中の当該サブコンテンツｖ５１７を出力するための領域に配置すればよい。
【０１２５】
描画処理部１３５は、生成したサブコンテンツｖ５１５の画面を入出力管理部１１５に出力する。
【０１２６】
次に、入出力管理部１１５の処理について、描画処理部１３５の動作とあわせて説明する。ここでは、入出力管理部１１５が、図１０に示すコンテンツｖ５１の画面を、表示装置２０の表示部２１に表示させる場合を例に説明する。
【０１２７】
例えば、コンテンツｖ５１が割り当てられたページプロセス１３（ここでは、ページプロセス１３ａとする）は、コンテンツｖ５１の画面を描画するが、必ずしも、コンテンツｖ５１内に含まれるサブコンテンツｖ５１１、ｖ５１３、及びｖ５１５の描画を行っているとは限らない。そのため、このような場合には、入出力管理部１１５が、各ページプロセス１３から、サブコンテンツｖ５１１、ｖ５１３、及びｖ５１５の描画結果を取得し、取得した描画結果を、コンテンツｖ５１が割り当てられたページプロセス１３ａに出力する。これにより、ページプロセス１３ａが、サブコンテンツｖ５１１、ｖ５１３、及びｖ５１５の描画結果が埋め込まれたコンテンツｖ５１の画面を描画することが可能となる。そこで、本動作の具体的な内容について、以下に、コンテンツｖ５１中にサブコンテンツｖ５１５の出力結果を埋め込む場合を例に説明する。
【０１２８】
例えば、コンテンツｖ５１が割り当てられたページプロセス１３ａの描画処理部１３５は、コンテンツｖ５１に含まれるサブコンテンツｖ５１５を、当該コンテンツｖ５１のコンテキストに基づき特定する。そして、描画処理部１３５は、サブコンテンツｖ５１５を特定するためのメタ情報をコンテンツｖ５１のコンテキストから抽出する。
【０１２９】
描画処理部１３５は、抽出したサブコンテンツｖ５１５のメタ情報を入出力管理部１１５に通知するとともに、当該サブコンテンツｖ５１５の描画結果の出力を依頼する。
【０１３０】
サブコンテンツｖ５１５の描画結果の出力に関する依頼を受けると、入出力管理部１１５は、あわせて通知されたメタ情報と、管理データ記憶部１１３に記憶された管理情報ｄ１０とを照合することで、サブコンテンツｖ５１５が割り当てられたページプロセス１３を特定する。
【０１３１】
具体的な一例として、入出力管理部１１５は、サブコンテンツｖ５１５のメタ情報として「http://www.zzz.….zzz210」で示されたＵＲＬを取得したとする。この場合には、入出力管理部１１５は、例えば、図１３に示した管理情報ｄ１０に基づき、サブコンテンツｖ５１５が、「００１３ｂ」で示されたページプロセス１３ｂに割り当てられていることを認識する。
【０１３２】
この場合には、入出力管理部１１５は、ページプロセス１３ｂにサブコンテンツｖ５１５の描画結果の出力を依頼し、その応答として、当該ページプロセス１３ｂから、サブコンテンツｖ５１５の描画結果を取得する。そして、入出力管理部１１５は、取得したサブコンテンツｖ５１５の描画結果を、依頼元である、コンテンツｖ５１が割り当てられたページプロセス１３ａに出力する。なお、入出力管理部１１５は、サブコンテンツｖ５１５の描画結果をページプロセス１３ｂから既に取得している場合には、必ずしも、ページプロセス１３ｂに対して描画結果の出力を依頼する必要はないことは言うまでもない。
【０１３３】
ページプロセス１３ａの描画処理部１３５は、入出力管理部１１５からサブコンテンツｖ５１５の描画結果を取得すると、当該描画結果をコンテンツｖ５１に埋め込み、当該コンテンツｖ５１の画面を描画する。そして、描画処理部１３５は、サブコンテンツｖ５１５の描画結果が埋め込まれたコンテンツｖ５１の画面を入出力管理部１１５に出力する。
【０１３４】
入出力管理部１１５は、ページプロセス１３ａの描画処理部１３５から、コンテンツｖ５１の画面（描画結果）を取得し、取得した画面を表示装置２０の表示部２１に表示させる。以上により、サブコンテンツｖ５１５が埋め込まれたコンテンツｖ５１の画面が、表示部２１に表示される。
【０１３５】
なお、上記に示す例では、複数のページプロセス１３間の情報（例えば、サブコンテンツの描画結果）の送受信を入出力管理部１１５が仲介する例について説明したが、ページプロセス１３間が直接情報を送受信してもよい。この場合には、入出力管理部１１５が、対象となるサブコンテンツとページプロセス１３との対応関係を、各ページプロセス１３に対して通知し、当該ページプロセス１３は、通知された情報に基づき、対応する他のページプロセス１３との間で情報の送受信を行えばよい。なお、ページプロセス１３間の情報の送受信については、例えば、ＯＳが機能として提供するプロセス間通信に基づき実現できることは前述の通りである。
【０１３６】
＜＜１．４．３．入力イベントに基づく処理＞＞
次に、図１４を参照して、情報処理装置１０が、ユーザ入力に基づき、操作の対象となるサブコンテンツを特定し、特定したサブコンテンツの内容を更新する処理に着目して、当該処理時に動作する構成について説明する。図１４は、情報処理装置１０が、ユーザ入力に基づきサブコンテンツの内容を更新する際に動作する機能について説明するための説明図である。なお、図１４では、図８に示すブロック図のうち、情報処理装置１０が、ユーザ入力に基づき、サブコンテンツの内容を更新する際の情報の流れを実線で示し、その他については破線で示している。また、本説明では、図１０に示すコンテンツｖ５１に対して、ユーザが操作を行ったものとして説明する。
【０１３７】
入出力管理部１１５は、ブラウザ上に表示されたコンテンツｖ５１に対するユーザの操作を受け付けると、当該ユーザの操作内容に基づき、操作対象となったコンテンツを特定する。具体的な一例として、入出力管理部１１５は、ユーザが操作を行ったときにフォーカスされているコンポーネントの情報や、ユーザが操作を行った画面上の位置に基づき、操作対象となるコンテンツを特定する。本説明では、入出力管理部１１５は、前述の通り、コンテンツｖ５１に対して操作が行われたことを認識したものとする。
【０１３８】
入出力管理部１１５は、操作対象となったコンテンツｖ５１が割り当てられたページプロセス１３を、管理データ記憶部１１３に記憶された管理情報ｄ１０に基づき特定する。ここでは、入出力管理部１１５は、コンテンツｖ５１が割り当てられたページプロセス１３として、「ページプロセス１３ａ」を特定したものとする。
【０１３９】
入出力管理部１１５は、特定したページプロセス１３ａのイベント処理部１３６に対して、ユーザによる操作内容（例えば、操作対象の位置や操作の種別）を示す制御情報を入力イベントとして通知する。
【０１４０】
イベント処理部１３６は、入出力管理部１１５から入力イベントを取得すると、コンテキスト保持部１３３に保持されたコンテキストと照合し、操作対象となるコンポーネントを特定する。具体的な一例として、イベント処理部１３６は、入力イベントとして通知される、操作対象の位置を示す情報に基づき、当該操作の対象となったコンポーネントを特定する。
【０１４１】
そして、イベント処理部１３６は、対象となるコンポーネントに対応するコンテキストがコンテキスト保持部１３３に保持されている場合には、入力イベントとして通知された操作の種別に基づき、対象となるコンポーネントのコンテキストを更新する。
【０１４２】
なお、コンテキストが更新された後の処理については、前述したコンテンツ（サブコンテンツ）の描画に係る処理と同様である。即ち、レイアウト制御部１３４が、コンテキスト保持部１３３から更新後のコンテキストを読み出し、読み出したコンテキストを描画処理部１３５に出力する。そして、描画処理部１３５が、当該コンテキストに基づきコンテンツｖ５１の画面を描画して入出力管理部１１５に出力する。入出力管理部１１５は、ページプロセス１３ａの描画処理部１３５から、更新されたコンテンツｖ５１の画面を取得し、取得した画面を表示部２１に出力させる。このような構成により、ユーザ入力に基づき更新されたコンテンツｖ５１の画面が、表示部２１に出力される。
【０１４３】
一方で、コンテンツｖ５１（図１０参照）と、当該コンテンツｖ５１中のサブコンテンツｖ５１５とが、互いに異なるページプロセス１３に割り当てられている場合がある。そこで、図１５を参照して、コンテンツｖ５１とサブコンテンツｖ５１５とが、互いに異なるページプロセス１３に割り当てられている場合において、サブコンテンツｖ５１５に対して操作が行われた場合の、情報処理装置１０の動作の一例について以下に説明する。図１５は、情報処理装置１０が、ユーザ入力に基づきサブコンテンツの内容を更新する際に動作する機能について説明するための説明図であり、コンテンツとサブコンテンツとが互いに異なるページプロセス１３に割り当てられている場合の情報の流れを示している。
【０１４４】
なお、図１５では、図８に示すブロック図のうち、情報処理装置１０が、ユーザ入力に基づき、サブコンテンツの内容を更新する際の情報の流れを実線で示し、その他については破線で示している。また、図１５に示す例では、ページプロセス１３ａは、コンテンツｖ５１が割り当てられたページプロセス１３を示し、ページプロセス１３ｂは、サブコンテンツｖ５１５が割り当てられたページプロセス１３を示している。また、図１５では、説明をわかりやすくするために、図８に示した各構成のうち、管理プロセス１１の各構成の図示を省略している。
【０１４５】
また、ページプロセス１３ａにおけるコンテキスト保持部１３３、レイアウト制御部１３４、描画処理部１３５、及びイベント処理部１３６を、「コンテキスト保持部１３３ａ」、「レイアウト制御部１３４ａ」、「描画処理部１３５ａ」、及び「イベント処理部１３６ａ」と記載する場合がある。同様に、ページプロセス１３ｂにおけるコンテキスト保持部１３３、レイアウト制御部１３４、描画処理部１３５、及びイベント処理部１３６を、「コンテキスト保持部１３３ｂ」、「レイアウト制御部１３４ｂ」、「描画処理部１３５ｂ」、及び「イベント処理部１３６ｂ」と記載する場合がある。
【０１４６】
入出力管理部１１５は、ブラウザ上に表示されたサブコンテンツｖ５１５に対するユーザの操作を受け付けると、まず、その親コンテンツであるコンテンツｖ５１に対する操作として認識する。そして、入出力管理部１１５は、管理データ記憶部１１３に記憶された管理情報ｄ１０に基づき、コンテンツｖ５１が割り当てられたページプロセス１３ａを特定し、入力イベントを当該ページプロセス１３ａのイベント処理部１３６ａに通知する。
【０１４７】
イベント処理部１３６ａは、入出力管理部１１５から入力イベントを取得すると、コンテキスト保持部１３３ａに保持されたコンテキストと照合し、操作対象がサブコンテンツｖ５１５であることを認識する。
【０１４８】
一方で、コンテキスト保持部１３３ａには、サブコンテンツｖ５１５のコンテキストは保持されていない。そのため、イベント処理部１３６ａは、取得した入力イベントが、サブコンテンツｖ５１５に対する入力イベントであることを入出力管理部１１５に通知する。この通知を受けると、入出力管理部１１５は、管理データ記憶部１１３に記憶された管理情報ｄ１０に基づき、サブコンテンツｖ５１５が割り当てられたページプロセス１３ｂを特定し、入力イベントを当該ページプロセス１３ｂのイベント処理部１３６ｂに通知する。以上のようにして、入力イベントが、ページプロセス１３ａのイベント処理部１３６ａから、ページプロセス１３ｂのイベント処理部１３６ｂに転送される。
【０１４９】
また、コンテキスト保持部１３３ａは、描画処理部１３５ａに対して、サブコンテンツｖ５１５の描画結果の取得を指示する。この指示を受けて、描画処理部１３５ａは、入出力管理部１１５に対して、サブコンテンツｖ５１５の描画結果の出力を依頼する。この依頼を受けて、入出力管理部１１５は、ページプロセス１３ｂの描画処理部１３５ｂに対して、サブコンテンツｖ５１５の描画結果の出力を依頼する。以上のようにして、ページプロセス１３ａの描画処理部１３５ａからの、サブコンテンツｖ５１５の描画結果の出力に関する依頼が、ページプロセス１３ｂの描画処理部１３５ｂに転送される。
【０１５０】
イベント処理部１３６ｂは、入出力管理部１１５から入力イベントを取得すると、コンテキスト保持部１３３ｂに保持されたコンテキストと照合し、操作対象となるサブコンテンツｖ５１５中のコンポーネントを特定する。
【０１５１】
そして、イベント処理部１３６ｂは、対象となるコンポーネントに対応するコンテキストがコンテキスト保持部１３３ｂに保持されている場合には、入力イベントとして通知された操作の種別に基づき、対象となるコンポーネントのコンテキストを更新する。
【０１５２】
一方で、ページプロセス１３ｂの描画処理部１３５ｂは、入出力管理部１１５からサブコンテンツｖ５１５の描画結果の出力に係る依頼を受ける。当該依頼を受けると、描画処理部１３５ｂは、入力イベントに基づき更新されたサブコンテンツｖ５１５のコンテキストを、レイアウト制御部１３４ｂを介して、コンテキスト保持部１３３ｂから取得する。そして、描画処理部１３５ｂは、取得したコンテキストに基づきサブコンテンツｖ５１５の画面を描画し、描画結果を入出力管理部１１５に出力する。
【０１５３】
入出力管理部１１５は、ページプロセス１３ｂの描画処理部１３５ｂから、更新されたサブコンテンツｖ５１５の描画結果を取得すると、当該サブコンテンツｖ５１５の描画結果を、依頼元であるページプロセス１３ａの描画処理部１３５ａに出力する。これにより、ページプロセス１３ｂの描画処理部１３５ｂから出力されたサブコンテンツｖ５１５の描画結果が、入出力管理部１１５を介して、ページプロセス１３ａの描画処理部１３５ａに転送される。
【０１５４】
ページプロセス１３ａの描画処理部１３５ａは、取得した更新後のサブコンテンツｖ５１５の描画結果を、コンテンツｖ５１の画面中に埋め込み、当該コンテンツｖ５１の画面を入出力管理部１１５に出力する。入出力管理部１１５は、ページプロセス１３ａの描画処理部１３５から、更新されたコンテンツｖ５１の画面を取得し、取得した画面を表示部２１に出力させる。このような構成により、ユーザ入力に基づきサブコンテンツｖ５１５の内容が更新されたコンテンツｖ５１の画面が、表示部２１に出力される。
【０１５５】
以上、図９〜図１５を参照しながら、本実施形態に係る情報処理装置１０の機能構成の一例について説明した。なお、上記では、ページプロセス１３ａ及び１３ｂが入出力管理部１１５を介して情報を送受信する例について説明したが、前述したように、ページプロセス１３ａとページプロセス１３ｂとが直接情報を送受信してもよいことは前述の通りである。
【０１５６】
以上のように、本実施形態に係る情報処理装置１０は、各サブコンテンツをあらかじめ決められた条件に基づき分類し、当該分類結果に基づき各サブコンテンツを複数のページプロセス１３のうちのいずれかに割り当てる。これにより、各サブコンテンツと各プロセスとが対応付けられる。
【０１５７】
このような構成により、本実施形態に係る情報処理装置１０は、例えば、自身の処理性能に応じて、各サブコンテンツを出力するためのプロセスの数を制御することが可能となる。そのため、本実施形態に係る情報処理装置１０は、例えば、図２及び図３に示すように、より多くの数（例えば、小型のディスプレイにコンテンツを出力する場合に比べて多くの数）のコンテンツを出力する場合においても、自身の処理性能を超えてプロセスを動作させる事態を未然に防止し、処理性能の低下を抑止することが可能となる。
【０１５８】
また、本実施形態に係る情報処理装置１０は、上記に示した構成に基づき、例えば、セキュリティ機能により保護されたサブコンテンツを、他のサブコンテンツとは異なるプロセスに割り当てることも可能である。そのため、情報処理装置１０は、セキュリティ機能により保護されたサブコンテンツを、他のサブコンテンツを介した悪意ある攻撃から保護することが可能となる。
【０１５９】
また、本実施形態に係る情報処理装置１０は、上記に示した構成に基づき、例えば、プロセスを異常終了させる可能性の高いサブコンテンツ（換言すると、動作が不安定になりやすいサブコンテンツ）を、他のサブコンテンツと異なるプロセスに割り当てることも可能である。そのため、情報処理装置１０は、動作が不安定になりやすいサブコンテンツが割り当てられたプロセスの動作状況に関わらず、他のサブコンテンツを安定的に出力することが可能となる。
【０１６０】
＜２．実施例＞
次に、実施例として、本実施形態に係る情報処理装置１０のプロセス管理部１１１が、各コンテンツや各サブコンテンツを分類する方法の一例や、各ページプロセス１３に対してコンテンツやサブコンテンツを割り当てる方法の一例について以下に説明する。なお、本説明では、主にサブコンテンツを対象とした処理を例に説明するが、当該サブコンテンツを含むコンテンツについても同様であり、コンテンツを対象とする場合については、「サブコンテンツ」を「コンテンツ」に適宜読み替えればよい。
【０１６１】
［２．１．実施例１：配信元に基づく分類］
まず、実施例１として、プロセス管理部１１１が、サブコンテンツの配信元に基づき、各サブコンテンツを分類する場合の例について説明する。
【０１６２】
前述したように、プロセス管理部１１１は、各サブコンテンツのメタ情報として、例えば、当該サブコンテンツのＵＲＬを取得し、当該ＵＲＬに基づきサブコンテンツの配信元を認識することができる。
【０１６３】
そのため、プロセス管理部１１１は、メタ情報として取得したＵＲＬに基づき、配信元が異なる各サブコンテンツが、互いに異なるページプロセス１３に割り当てられるように、当該各サブコンテンツを分類することが可能となる。
【０１６４】
このような構成により、コンテンツ内に配信元の異なるサブコンテンツ（例えば、Ｗｅｂ広告）が埋め込まれている場合においても、プロセス管理部１１１は、当該コンテンツと当該サブコンテンツとが互いに異なるページプロセス１３に割り当てられるように分類することが可能となる。
【０１６５】
また、プロセス管理部１１１は、広告として提供されるサブコンテンツを配信するサイトのＵＲＬをリストとしてあらかじめ記憶していてもよい。このようなリストを利用することで、プロセス管理部１１１は、各サブコンテンツのＵＲＬに基づき、当該各サブコンテンツを、広告として提供されるサブコンテンツと、それ以外のサブコンテンツとに分類することが可能となる。そのため、例えば、プロセス管理部１１１は、広告として提供される各サブコンテンツが、互いに同じページプロセス１３に割り当てられるように、各サブコンテンツを分類することが可能となる。
【０１６６】
なお、プロセス管理部１１１にあらかじめ記憶させるＵＲＬのリストは、広告として提供されるサブコンテンツを配信するサイトのＵＲＬのリストに限定されないことは言うまでもない。具体的な一例として、互いに同じページプロセス１３に割り当てられるように、プロセス管理部１１１に分類させたいサブコンテンツのＵＲＬのリストを、当該プロセス管理部１１１にあらかじめ記憶させておいてもよい。これにより、プロセス管理部１１１は、当該リスト中に含まれたＵＲＬに対応する各サブコンテンツが、互いに同じページプロセス１３に割り当てられるように、各サブコンテンツを分類することが可能となる。
【０１６７】
また、他の一例として、他のサブコンテンツとは異なるページプロセス１３に割り当てられるように、プロセス管理部１１１に分類させたいサブコンテンツのＵＲＬのリストを、当該プロセス管理部１１１にあらかじめ記憶させておいてもよい。具体的な一例として、過去に異常終了したページプロセス１３に割り当てられていたサブコンテンツのＵＲＬをリストとして記録し、当該リストをプロセス管理部１１１に記憶させておいてもよい。このような構成により、プロセス管理部１１１は、他のサブコンテンツに比べてページプロセス１３を異常終了させる可能性の高いサブコンテンツ（換言すると、動作が不安定になりやすいサブコンテンツ）を、当該他のサブコンテンツとは異なるページプロセス１３に割り当てることが可能となる。これにより、情報処理装置１０は、動作が不安定になりやすいサブコンテンツが割り当てられたプロセスの動作状況に関わらず、他のサブコンテンツを安定的に出力することが可能となる。
【０１６８】
また、情報処理装置１０が、テレビジョン装置等のように、ＵＲＬ等の入力インタフェースが公開されておらず、提示されるリンク先にのみアクセス可能に構成されている場合がある。このように、情報処理装置１０が、限られたコンテンツのみを取得可能に構成されている場合には、取得されるサブコンテンツの一覧をあらかじめ認識することも可能である。そのため、このような場合には、取得される各サブコンテンツと各ページプロセス１３との対応関係をあらかじめ決めておき、当該対応関係に基づき各サブコンテンツを分類して当該各サブコンテンツのＵＲＬのリストをあらかじめ生成しておいてもよい。
【０１６９】
［２．２．実施例２：サブコンテンツの種別に基づく分類］
次に、実施例２として、プロセス管理部１１１が、サブコンテンツのデータ種別に基づき、各サブコンテンツを分類する場合の例について説明する。
【０１７０】
前述したように、プロセス管理部１１１は、各サブコンテンツのメタ情報として、例えば、当該サブコンテンツのデータ種別を示す情報（例えば、静止画や動画等のデータ形式を示す情報）を取得し、当該情報に基づきサブコンテンツの種別を認識することができる。
【０１７１】
そのため、プロセス管理部１１１は、動画のように他の種別（例えば文字情報）に比べて出力に要するメモリの容量が大きいサブコンテンツが、当該他の種別のサブコンテンツとは異なるページプロセス１３に割り当てられるように、各サブコンテンツを分類してもよい。
【０１７２】
このような構成により、例えば、動画として構成されたサブコンテンツが割り当てられたページプロセス１３が出力に要するメモリが確保できずに異常終了したとしても、情報処理装置１０は、他のサブコンテンツを安定的に出力することが可能となる。
【０１７３】
［２．３．実施例３：処理種別に基づく分類］
次に、実施例３として、プロセス管理部１１１が、サブコンテンツの出力に際し、当該サブコンテンツに対して適用される内部処理の種別に応じて、各サブコンテンツを分類する場合の例について説明する。なお、本説明における「内部処理」とは、例えば、ＯＳがＡＰＩとして提供し、各種アプリケーションが当該ＡＰＩを呼び出すことで実行される機能等が該当する。
【０１７４】
例えば、サブコンテンツが文字情報の場合には、当該文字情報が必ずしも所定の文字コードに基づき記述されたものとは限らず、当該文字コードに応じて、当該サブコンテンツを出力するために適用される内部処理の内容が異なる場合がある。
【０１７５】
また、サブコンテンツの中には、必ずしも即時に出力されるサブコンテンツ（データ）ばかりではなく、想定されるユーザ入力に対して即時に応答するために、あらかじめ読み込まれる先読み用のサブコンテンツ（データ）が含まれる。このように、即時に出力されるサブコンテンツと、先読み用のサブコンテンツとでは、当該サブコンテンツを出力するために適用される内部処理の内容が異なる場合がある。
【０１７６】
そこで、プロセス管理部１１１は、各サブコンテンツのメタ情報に基づき、当該サブコンテンツに対して適用される内部処理を推定する。そして、プロセス管理部１１１は、当該推定結果に基づき、同じ種別の内部処理が適用される可能性の高いサブコンテンツが、互いに同じページプロセス１３に割り当てられるように、各サブコンテンツを分類する。
【０１７７】
具体的な一例として、プロセス管理部１１１は、互いに同じ文字コードで記述された文字情報を含む複数のサブコンテンツが、互いに同じページプロセス１３に割り当てられるように、各サブコンテンツを分類する。このような構成により、当該ページプロセス１３からは、所定の文字コードを対象とした内部処理が実行される頻度が高くなる。そのため、例えば、当該ページプロセス１３が、所定の内部処理を実行する際に、メモリ空間上に展開された各内部処理の中から、実行対象となる内部処理を探索する際のヒット率（例えば、グリフキャッシュのヒット率）を向上させることが可能となる。
【０１７８】
また、プロセス管理部１１１は、各サブコンテンツのメタ情報に基づき、当該サブコンテンツが先読み用のサブコンテンツか否かを区別し、先読み用のサブコンテンツが、他のサブコンテンツとは別のページプロセス１３に割り当てられるように分類してもよい。このような構成により、先読みに伴いページプロセス１３のレスポンスが低下した場合においても、他のサブコンテンツを安定的に出力することが可能となる。
【０１７９】
［２．４．実施例４：セキュリティ機能により保護されたサブコンテンツの分類］
次に、実施例４として、プロセス管理部１１１が、サセキュリティ機能により保護されたサブコンテンツを、他のサブコンテンツとは区別して分類する場合の例について説明する。
【０１８０】
前述したように、本実施形態に係るプロセス管理部１１１は、例えば、認証機能等のセキュリティ機能により保護されたサブコンテンツと、他のサブコンテンツとが互いに異なるプロセスに割り当てられるように、各サブコンテンツを分類してもよい。
【０１８１】
このとき、プロセス管理部１１１は、各サブコンテンツを配信するための通信プロトコルに基づき、セキュリティ機能により保護されたサブコンテンツと、他のサブコンテンツとを区別してもよい。具体的な一例として、プロセス管理部１１１は、各サブコンテンツを配信するための通信プロトコルが、ＳＳＬ／ＴＬＳのような通信経路を保護するためのプロトコルか否かに応じて、当該サブコンテンツが、セキュリティ機能により保護されているか否かを判別してもよい。
【０１８２】
また、上記に示す例は、あくまで一例であり、各サブコンテンツがセキュリティ機能により保護されているか否かをプロセス管理部１１１が判断できれば、その方法は特に限定されないことは言うまでもない。
【０１８３】
このような構成により、例えば、情報処理装置１０は、セキュリティ機能により保護されたサブコンテンツを、他のサブコンテンツとは異なるプロセスに割り当てることが可能となる。そのため、情報処理装置１０は、セキュリティ機能により保護されたサブコンテンツを、他のサブコンテンツを介した悪意ある攻撃から保護することが可能となる。
【０１８４】
［２．５．実施例５：リソースの占有率にも基づく分類］
各サブコンテンツは、データの種別（例えば、文字情報、静止画、動画等）やスクリプトの有無に応じて、出力に要するメモリの容量や、出力時のプロセッサに対する負荷（プロセッサの専有頻度）が異なる場合がある。そこで、実施例５に係る情報処理装置１０は、メモリの容量やプロセッサの専有頻度などのようなリソースの占有率に応じて、各サブコンテンツを分類する。以下に、本実施例に係る情報処理装置１０の概要について説明する。
【０１８５】
例えば、動画などの映像を出力するサブコンテンツのように、他のサブコンテンツに比べて出力に要するメモリの容量が大きい場合が少なくない。そのため、出力に要するメモリの容量が大きいサブコンテンツが、ページプロセス１３に割り当てられたメモリ（ヒープ）の多くを専有し、当該ページプロセス１３に割り当てられた他のサブコンテンツの出力に係る処理の頻度を低下させる場合がある。
【０１８６】
そのため、本実施例に係る情報処理装置１０のプロセス管理部１１１は、他のサブコンテンツに比べて出力に要するメモリの容量が大きいサブコンテンツを、他のサブコンテンツとは異なるページプロセス１３に割り当ててもよい。
【０１８７】
このとき、プロセス管理部１１１は、サブコンテンツの種別に応じて、当該サブコンテンツの出力に要するメモリの容量が大きいか否かを、概略的に判断してもよい。この場合には、例えば、プロセス管理部１１１は、サブコンテンツの種別が動画の場合には、出力に要するメモリの容量が大きいと判断し、他の種別のサブコンテンツは、出力に要するメモリの容量が小さいと判断してもよい。
【０１８８】
また、プロセス管理部１１１は、サブコンテンツ自体の容量に基づき、当該サブコンテンツの出力に要するメモリの容量が大きいか否かを、概略的に判断してもよい。この場合には、例えば、プロセス管理部１１１は、サブコンテンツ自体の容量があらかじめ決められた閾値以上の場合には、出力に要するメモリの容量が大きいと判断し、閾値未満の場合には、出力に要するメモリの容量が小さいと判断してもよい。
【０１８９】
もちろん、プロセス管理部１１１は、サブコンテンツの出力に要するメモリの容量を認識できれば、その方法は特に限定されないことは言うまでもない。
【０１９０】
このような構成により、例えば、情報処理装置１０は、出力に要するメモリの容量が大きいサブコンテンツが、割り当てられたメモリ（ヒープ）の多くを専有し、他のサブコンテンツの出力に係る処理の実行を阻害するといった事態を防止することが可能となる。
【０１９１】
また、情報処理装置１０は、各サブコンテンツの出力に係るプロセッサの専有頻度を、直接または間接的に算出し、当該算出結果に基づき、プロセッサの占有率が高いサブコンテンツを、他のサブコンテンツとは異なるページプロセス１３に割り当ててもよい。なお、この場合の処理の例については、次項にて、サブコンテンツ間を重み付けする場合の例とあわせて別途説明する。
【０１９２】
［２．６．実施例６：サブコンテンツ間の重み付け］
次に、実施例６として、プロセス管理部１１１が、各サブコンテンツを重み付けし、当該重み付けに応じて、当該各サブコンテンツを各ページプロセス１３に割り当てる場合の例について説明する。
【０１９３】
例えば、ブラウザを介して各コンテンツを参照するユーザにとっては、ニュースサイト等の各種サイトが提供する主コンテンツと、Ｗｅｂ広告等のように、主コンテンツとは異なる配信元が提供するサブコンテンツとは優先度が異なる場合が少なくない。一方で、ＯＳは、各プロセスを動作させる場合に、一部のプロセスを優先的に動作させることも可能であり、当該プロセス間の優先付けは、例えば、当該ＯＳが提供するシステムコールを利用することで、ユーザや各種ソフトウェアにより行われる。
【０１９４】
そこで、実施例６に係るプロセス管理部１１１は、ＯＳが提供するシステムコールを利用することで、各ページプロセス１３を重み付けする。そのうえで、プロセス管理部１１１は、各サブコンテンツを重み付けし、当該重み付けに応じて、重みの大きいサブコンテンツほど、ＯＳがより優先して動作させるページプロセス１３に対して優先的に割り当てる。
【０１９５】
具体的な一例として、プロセス管理部１１１は、主コンテンツの重みを、主コンテンツとは異なる配信元が提供するサブコンテンツよりも大きくなるように、各サブコンテンツを分類する。そして、プロセス管理部１１１は、主コンテンツを、優先度の高いページプロセス１３に割り当て、主コンテンツとは異なる配信元が提供するサブコンテンツを、優先度の低いページプロセス１３に割り当てる。
【０１９６】
このような構成により、本実施例に係る情報処理装置１０は、重みの大きいサブコンテンツの出力に係る処理が、他のサブコンテンツに比べて優先的に実行されるように制御することが可能となる。
【０１９７】
なお、主コンテンツと、当該主コンテンツとは異なる配信元が提供するサブコンテンツとは、例えば、各サブコンテンツの配信元を示す情報（ＵＲＬ）に基づき区別可能であることは前述の通りである。
【０１９８】
また、他の一例として、本実施例に係る情報処理装置１０は、各サブコンテンツを種別ごとに重み付けしてもよい。なお、各サブコンテンツの種別の認識方法は前述したお通りである。
【０１９９】
このような構成により、前述した種別ごとの単純な分類に限らず、プロセス管理部１１１は、各サブコンテンツの種別に応じた処理負荷を鑑みて、各サブコンテンツを各ページプロセス１３に割り当てることが可能となる。
【０２００】
具体的な一例として、プロセス管理部１１１は、動画のように他の種別に比べて出力に要するメモリの容量が大きいサブコンテンツが割り当てられたページプロセス１３には、追加で割り当てるサブコンテンツを、文字情報のみを含むものに限定してもよい。
【０２０１】
また、他の一例として、本実施例に係る情報処理装置１０は、サブコンテンツ中に含まれるスクリプトの実行頻度に応じて、各サブコンテンツを重み付けしてもよい。
【０２０２】
例えば、サブコンテンツ中に含まれるスクリプトの実行頻度に応じて、当該サブコンテンツを出力する処理が、プロセッサを専有する頻度が異なる場合がある。具体的な一例として、スクリプトが実行される頻度が高いサブコンテンツは、他のサブコンテンツに比べてプロセッサを専有する頻度が高い場合がある。このような、プロセッサの専有頻度の高いサブコンテンツの出力に係る処理が優先的に実行されると、他のサブコンテンツの出力に係る処理の実行が阻害される場合がある。
【０２０３】
そこで、本実施例に係る情報処理装置１０は、例えば、スクリプトの実行頻度や、プロセッサの専有頻度に応じて、各サブコンテンツを重み付けし、当該重み付けに応じて、当該サブコンテンツを割り当てるページプロセス１３を決定してもよい。具体的な一例として、情報処理装置１０は、プロセッサの専有頻度が高いサブコンテンツほど、優先度の低いページプロセス１３に割り当ててもよい。
【０２０４】
なお、情報処理装置１０は、プロセッサの専有頻度が高いサブコンテンツか否かについては、例えば、過去に当該サブコンテンツを割り当てたページプロセス１３の動作実績に基づき判断してもよい。
【０２０５】
具体的には、プロセス管理部１１１は、各ページプロセス１３によるプロセッサの専有頻度を、例えば、ＯＳのシステムコールを利用してモニタリングし、当該モニタリングの結果に基づき専有頻度が閾値よりも高いページプロセス１３を特定する。そして、プロセス管理部１１１は、専有頻度が閾値よりも高いページプロセス１３に割り当てられたサブコンテンツを管理データ記憶部１１３に記憶された制御情報を基に特定し、リストとして記録しておく。
【０２０６】
これにより、プロセス管理部１１１は、当該リストに記録されたサブコンテンツを新たにページプロセス１３に割り当てる際に、当該リストに基づき、当該サブコンテンツがプロセッサの専有頻度が高いサブコンテンツであることを認識出来る。
【０２０７】
以上のような構成により、本実施例に係る情報処理装置１０は、プロセッサの専有頻度の高いサブコンテンツの出力に係る処理が優先的に実行されることで、他のサブコンテンツの出力に係る処理の実行が阻害されるといった事態を防止することが可能となる。
【０２０８】
［２．７．実施例７：ページプロセス間の重み付け］
次に、実施例７として、プロセス管理部１１１がサブコンテンツをページプロセス１３に割り当てる場合における、ページプロセス１３間の重み付け（優先度付け）の一例について説明する。
【０２０９】
例えば、プロセス管理部１１１が、ある分類のサブコンテンツを割り当てる場合に、割り当て先となるページプロセス１３の候補が複数存在する場合がある。このような場合には、プロセス管理部１１１は、ページプロセス１３間で重み付けを行い、当該重み付けに基づき、サブコンテンツの割り当て先となるページプロセス１３を決定してもよい。
【０２１０】
具体的な一例として、プロセス管理部１１１は、各ページプロセス１３の処理負荷の高さに応じて、当該各ページプロセス１３を重み付けしてもよい。この場合には、例えば、プロセス管理部１１１は、より処理負荷の低いページプロセス１３に対して、優先的にサブコンテンツを割り当ててもよい。
【０２１１】
なお、プロセス管理部１１１は、各ページプロセス１３の処理負荷を、例えば、ＯＳが提供するシステムコールに基づき認識すればよい。
【０２１２】
また、他の一例として、プロセス管理部１１１は、各ページプロセス１３に割り当てられたサブコンテンツの数に応じて、当該各ページプロセス１３を重み付けしてもよい。この場合には、例えば、プロセス管理部１１１は、サブコンテンツを割り当てられた数がより少ないページプロセス１３も対して、優先的にサブコンテンツを割り当ててもよい。
【０２１３】
なお、プロセス管理部１１１は、各ページプロセス１３に割り当てられたサブコンテンツの数を、管理データ記憶部１１３に記憶された管理情報に基づき認識すればよい。
【０２１４】
以上のような構成により、本実施例に係る情報処理装置１０は、処理負荷の低いページプロセス１３を優先的に選択して、各サブコンテンツを割り当てることが可能となる。これにより、本実施例に係る情報処理装置１０は、各サブコンテンツの出力に係る処理を効率よく実行することが可能となる。
【０２１５】
＜３．変形例＞
次に、本実施形態に係る情報処理システムの変形例について説明する。上記に示す実施形態に係る情報処理システムでは、各サブコンテンツの分類に係る処理を情報処理装置１０が実行していた。一方で、各サブコンテンツの分類に係る処理を、例えば、プロキシサーバやエッジサーバのようなサーバ９０（図１参照）が実行してもよい。そこで、本実施形態に係る情報処理システムの変形例として、各サブコンテンツの分類に係る処理をサーバ９０で実行する場合の例について、上述した実施形態とは異なる部分に着目して説明する。
【０２１６】
変形例に係る情報処理システムでは、「１．４．１．サブコンテンツの分類」で示した、プロセス管理部１１１が各サブコンテンツを分類する処理を、サーバ９０が実行する。即ち、サーバ９０は、取得したサブコンテンツに含まれるメタ情報に基づき、各サブコンテンツを分類すればよい。なお、各サブコンテンツを分類する方法については、プロセス管理部１１１が各サブコンテンツを分類する場合の処理と同様である。以上のようにして、サーバ９０は、各サブコンテンツと各プロセスとを対応付ける。
【０２１７】
各サブコンテンツの分類が完了すると、サーバ９０は、当該分類結果を示す情報を情報処理装置１０に通知する。このときに、サーバ９０が、分類結果を示す情報を情報処理装置１０に通知する方法は特に限定されない。
【０２１８】
例えば、サーバ９０は、各サブコンテンツの分類結果を示す情報を、当該サブコンテンツにメタ情報として埋め込むことで、当該情報処理装置１０に対して、分類結果を示す情報を対応するサブコンテンツとあわせて配信してもよい。
【０２１９】
また、他の一例として、サーバ９０は、サブコンテンツと分類結果との対応関係を示す情報を、当該サブコンテンツに関連付けて情報処理装置１０に送信してもよい。
【０２２０】
以上のような構成により、情報処理装置１０のプロセス管理部１１１は、サーバ９０による各サブコンテンツの分類結果を認識することができる。そして、情報処理装置１０のプロセス管理部１１１は、サーバ９０による分類結果に応じて、各サブコンテンツを各ページプロセス１３に割り当てればよい。
【０２２１】
以上、変形例として説明したように、本実施形態に係る情報処理システムは、各サブコンテンツの分類に係る処理をサーバ９０で実行するように構成してもよい。このような構成により、各サブコンテンツの分類に係る処理を情報処理装置１０側で実行する必要がなくなるため、情報処理装置１０の処理負荷を軽減することが可能となる。
【０２２２】
＜４．ハードウェア構成＞
次に、図１６を参照して、本開示の実施形態に係る情報処理装置１０のハードウェア構成の一例について説明する。図１６は、本実施形態に係る情報処理装置１０のハードウェア構成の一例を示した図である。
【０２２３】
図１６に示すように、本実施形態に係る情報処理装置１０は、プロセッサ９０１と、メモリ９０３と、ストレージ９０５と、操作デバイス９０７と、表示デバイス９０９と、通信デバイス９１１と、バス９１３とを含む。
【０２２４】
プロセッサ９０１は、例えばＣＰＵ（Central  Processing  Unit）、ＧＰＵ（Graphics  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）又はＳｏＣ（System  on  Chip）であってよく、情報処理装置１０の様々な処理を実行する。プロセッサ９０１は、例えば、各種演算処理を実行するための電子回路により構成することが可能である。なお、前述した管理プロセス１１及びページプロセス１３の各機能は、プロセッサ９０１により実現され得る。
【０２２５】
メモリ９０３は、ＲＡＭ（Random  Access  Memory）及びＲＯＭ（Read  Only  Memory）を含み、プロセッサ９０１により実行されるプログラム及びデータを記憶する。ストレージ９０５は、半導体メモリ又はハードディスクなどの記憶媒体を含み得る。例えば、前述した管理データ記憶部１１３及びコンテキスト保持部１３３は、メモリ９０３及びストレージ９０５の少なくともいずれか、もしくは、双方の組み合わせにより構成され得る。
【０２２６】
操作デバイス９０７は、ユーザが所望の操作を行うための入力信号を生成する機能を有する。操作デバイス９０７は、例えばボタン及びスイッチなどユーザが情報を入力するための入力部と、ユーザによる入力に基づいて入力信号を生成し、プロセッサ９０１に供給する入力制御回路などから構成されてよい。
【０２２７】
表示デバイス９０９は、出力装置の一例であり、液晶ディスプレイ（ＬＣＤ：Liquid  Crystal  Display）装置、有機ＥＬ（ＯＬＥＤ：Organic  Light  Emitting  Diode）ディスプレイ装置などの表示装置であってよい。表示デバイス９０９は、ユーザに対して画面を表示することにより情報を提供することができる。なお、前述した表示装置２０を、当該表示デバイス９０９として構成してもよいし、表示装置２０とは別に表示デバイス９０９を設けてもよい。
【０２２８】
通信デバイス９１１は、情報処理装置１０が備える通信手段であり、ネットワークを介して外部装置と通信する。通信デバイス９１１は、有線または無線用の通信インタフェースである。通信デバイス９１１を、無線通信インタフェースとして構成するバイには、当該通信デバイス９１１は、通信アンテナ、ＲＦ（Radio  Frequency）回路、ベースバンドプロセッサなどを含んでもよい。
【０２２９】
通信デバイス９１１は、外部装置から受信した信号に各種の信号処理を行う機能を有し、受信したアナログ信号から生成したデジタル信号をプロセッサ９０１に供給することが可能である。
【０２３０】
バス９１３は、プロセッサ９０１、メモリ９０３、ストレージ９０５、操作デバイス９０７、表示デバイス９０９、及び通信デバイス９１１を相互に接続する。バス９１３は、複数の種類のバスを含んでもよい。
【０２３１】
また、コンピュータに内蔵されるプロセッサ、メモリ、及びストレージなどのハードウェアを、上記した情報処理装置１０が有する構成と同等の機能を発揮させるためのプログラムも作成可能である。また、当該プログラムを記録した、コンピュータに読み取り可能な記憶媒体も提供され得る。
【０２３２】
＜５．まとめ＞
以上、説明したように、本実施形態に係る情報処理システムでは、情報処理装置１０は、各サブコンテンツをあらかじめ決められた条件に基づき分類し、当該分類結果に基づき各サブコンテンツを複数のページプロセス１３のうちのいずれかに割り当てる。
【０２３３】
このような構成により、本実施形態に係る情報処理装置１０は、例えば、自身の処理性能に応じて、各サブコンテンツを出力するためのプロセスの数を制御することが可能となる。そのため、本実施形態に係る情報処理装置１０は、例えば、図２及び図３に示すように、比較的に多くの数（例えば、小型のディスプレイにコンテンツを出力する場合に比べて多くの数）のコンテンツを出力する場合においても、自身の処理性能を超えてプロセスを動作させる事態を未然に防止し、処理性能の低下を抑止することが可能となる。
【０２３４】
また、本実施形態に係る情報処理装置１０は、上記に示した構成に基づき、例えば、セキュリティ機能により保護されたサブコンテンツを、他のサブコンテンツとは異なるプロセスに割り当てることも可能である。そのため、情報処理装置１０は、セキュリティ機能により保護されたサブコンテンツを、他のサブコンテンツを介した悪意ある攻撃から保護することが可能となる。
【０２３５】
また、本実施形態に係る情報処理装置１０は、上記に示した構成に基づき、例えば、プロセスを異常終了させる可能性の高いサブコンテンツ（換言すると、動作が不安定になりやすいサブコンテンツ）を、他のサブコンテンツと異なるプロセスに割り当てることも可能である。そのため、情報処理装置１０は、動作が不安定になりやすいサブコンテンツが割り当てられたプロセスの動作状況に関わらず、他のサブコンテンツを安定的に出力することが可能となる。
【０２３６】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０２３７】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０２３８】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
１以上のコンテンツそれぞれに含まれる複数のサブコンテンツを取得する取得部と、
取得された前記複数のサブコンテンツを、１以上の前記サブコンテンツの出力に係る処理を実行するための複数のプロセスのうち、少なくともいずれかの前記プロセスに対応付ける管理部と、
を備える、情報処理装置。
（２）
前記取得部は、前記コンテンツを取得し、取得した当該コンテンツに含まれる前記複数のサブコンテンツを抽出することで、当該複数のサブコンテンツを取得する、前記（１）に記載の情報処理装置。
（３）
前記管理部は、前記サブコンテンツの送信元に応じて、前記複数のサブコンテンツを前記プロセスに対応付ける、前記（１）または（２）に記載の情報処理装置。
（４）
前記管理部は、前記サブコンテンツの種別に基づき、当該種別が同じサブコンテンツの各々を同じ前記プロセスに対応付ける、前記（１）〜（３）のいずれか一項に記載の情報処理装置。
（５）
前記管理部は、前記サブコンテンツの種別に応じて、前記複数のサブコンテンツを重み付けし、当該重みの異なる前記サブコンテンツそれぞれを、互いに異なる前記プロセスに対応付ける、前記（１）〜（４）のいずれか一項に記載の情報処理装置。
（６）
前記管理部は、前記複数のサブコンテンツのうち、セキュリティ機能により保護された前記サブコンテンツを、他のサブコンテンツとは異なる前記プロセスに対応付ける、前記（１）〜（５）のいずれか一項に記載の情報処理装置。
（７）
前記管理部は、前記複数のサブコンテンツのうち、容量が閾値以上の当該サブコンテンツを、他のサブコンテンツとは異なる前記プロセスに対応付ける、前記（１）〜（６）のいずれか一項に記載の情報処理装置。
（８）
前記管理部は、前記複数のサブコンテンツのうち、内部に含まれるスクリプトの動作する頻度が閾値以上の当該サブコンテンツを、他のサブコンテンツとは異なる前記プロセスに対応付ける、前記（１）〜（７）のいずれか一項に記載の情報処理装置。
（９）
前記管理部は、前記サブコンテンツに適用される処理の種別に基づき、適用される前記処理の種別が同じサブコンテンツを同じ前記プロセスに対応付ける、前記（１）〜（８）のいずれか一項に記載の情報処理装置。
（１０）
前記管理部は、前記複数のサブコンテンツのうち、あらかじめ決められた２以上のサブコンテンツを同じ前記プロセスに対応付ける、前記（１）〜（９）のいずれか一項に記載の情報処理装置。
（１１）
前記管理部は、前記複数のサブコンテンツと前記複数のプロセスの対応に基づき、当該複数のサブコンテンツのそれぞれを前記複数のプロセスのうち少なくともいずれかに割り当てる、前記（１）〜（１０）のいずれか一項に記載の情報処理装置。
（１２）
前記管理部は、前記複数のプロセスそれぞれの処理負荷に応じて、当該複数のプロセスを重み付けし、当該重みに応じて、前記複数のサブコンテンツそれぞれが割り当てられる前記プロセスが決定されるように、当該複数のサブコンテンツを対応付ける、前記（１１）に記載の情報処理装置。
（１３）
前記管理部は、前記処理負荷の低い前記プロセスに対して優先的に前記サブコンテンツを対応付ける、前記（１２）に記載の情報処理装置。
（１４）
前記管理部は、前記複数のプロセスそれぞれに割り当てられている前記サブコンテンツの数に応じて、当該複数のプロセスを重み付けし、当該重みに応じて、前記複数のサブコンテンツそれぞれが割り当てられる前記プロセスが決定されるように、当該複数のサブコンテンツを対応付ける、前記（１１）に記載の情報処理装置。
（１５）
前記管理部は、割り当てられている前記サブコンテンツの数が少ない前記プロセスに対して優先的に前記サブコンテンツを対応付ける、前記（１４）に記載の情報処理装置。
（１６）
前記管理部は、前記複数のサブコンテンツを少なくともいずれかの前記プロセスに対応付けた結果を示す管理情報を、当該複数のサブコンテンツを少なくともいずれかの前記プロセスに割り当てる外部装置に通知する、前記（１）〜（１０）のいずれか一項に記載の情報処理装置。
（１７）
前記プロセスに割り当てられた前記サブコンテンツを、当該プロセスの出力結果に基づき、表示部に表示させる表示制御部を備える、前記（１）〜（１５）のいずれか一項に記載の情報処理装置。
（１８）
前記表示部を備える、前記（１７）に記載の情報処理装置。
（１９）
コンピュータに、
１以上のコンテンツそれぞれに含まれる複数のサブコンテンツを取得することと、
取得された前記複数のサブコンテンツを、１以上の前記サブコンテンツの出力に係る処理を実行するための複数のプロセスのうち、少なくともいずれかの前記プロセスに対応付けることと、
を実行させるための、プログラム。
【符号の説明】
【０２３９】
１０    情報処理装置
１１    管理プロセス
１１１  プロセス管理部
１１３  管理データ記憶部
１１５  入出力管理部
１３    ページプロセス
１３１  コンテンツ取得部
１３２  解析部
１３３  コンテキスト保持部
１３４  レイアウト制御部
１３５  描画処理部
１３６  イベント処理部
２０    表示装置
２１    表示部
９０    サーバ
【図１】
2015191507.tif 000003
【図２】
2015191507.tif 000004
【図３】
2015191507.tif 000005
【図４】
2015191507.tif 000006
【図５】
2015191507.tif 000007
【図６】
2015191507.tif 000008
【図７】
2015191507.tif 000009
【図８】
2015191507.tif 000010
【図９】
2015191507.tif 000011
【図１０】
2015191507.tif 000012
【図１１】
2015191507.tif 000013
【図１２】
2015191507.tif 000014
【図１３】
2015191507.tif 000015
【図１４】
2015191507.tif 000016
【図１５】
2015191507.tif 000017
【図１６】
2015191507.tif 000018