JP6736440B2 - クラウドシステムにおける文書ファイルの生成サービスを提供する装置、方法及びプログラム - Google Patents

クラウドシステムにおける文書ファイルの生成サービスを提供する装置、方法及びプログラム Download PDF

Info

Publication number
JP6736440B2
JP6736440B2 JP2016188119A JP2016188119A JP6736440B2 JP 6736440 B2 JP6736440 B2 JP 6736440B2 JP 2016188119 A JP2016188119 A JP 2016188119A JP 2016188119 A JP2016188119 A JP 2016188119A JP 6736440 B2 JP6736440 B2 JP 6736440B2
Authority
JP
Japan
Prior art keywords
file
server device
original data
document
resources
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
JP2016188119A
Other languages
English (en)
Other versions
JP2018055241A5 (ja
JP2018055241A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2016188119A priority Critical patent/JP6736440B2/ja
Priority to US15/707,107 priority patent/US10747715B2/en
Publication of JP2018055241A publication Critical patent/JP2018055241A/ja
Publication of JP2018055241A5 publication Critical patent/JP2018055241A5/ja
Application granted granted Critical
Publication of JP6736440B2 publication Critical patent/JP6736440B2/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/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • 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/93Document management systems
    • G06F16/94Hypermedia

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Description

クラウドシステム上で文書ファイルを生成する技術に関する。
近年、サーバコンピュータ側で業務データの管理や各種処理を行う形態として、クラウドコンピューティングシステム(以下、「クラウドシステム」)が普及し始めている。ユーザは、クライアント装置のWebブラウザからインターネットを介してクラウドサーバのWebページにアクセスし、そのWebページ上で業務データを生成・閲覧・編集することができる。具体的には、ユーザがWebページを介して業務データをアップロードすると、クラウドサービスによって所定フォーマットの文書ファイルが生成されてWebブラウザ上に表示される。また、生成された文書ファイルはストレージに保存され、ユーザは保存された文書ファイルをダウンロードしてWebブラウザ上に表示させて、当該文書の編集を行うことができる。
クラウドサービスが生成する文書ファイルの所定フォーマットの一例としてSVG(Scalable Vector Graphics)が挙げられる。SVGは、XML (Extensible Markup Language)をベースとした、ベクタ形式で画像を描画するフォーマットであり、Webブラウザでの表示に関して親和性が高いと言われている。また、SVGは、同じベクタ形式のフォーマットであるPDF(Portable Document Format)とは異なり、各種リソースを別ファイルとしても構成できるという特徴を持っている。そのため、同じ描画内容でもSVGの構成によってファイル数が異なるという特徴がある。具体的には、複数のリソースを、インライン方式で記述する場合にはファイル数が少なく、外部参照方式で記述する場合にはファイル数が多くなる。
上述の通り、クラウドサービスによって生成された文書ファイルは、クラウドサーバの構成要素としてのストレージに保存され、クライアント装置はWebブラウザで表示する際にストレージにアクセスして文書ファイルを取得する。ストレージは、クラウドシステム上の複数のクライント端末からのアクセスを受け付けるため、一定以上の負荷が掛かるとアクセスが制限されるようになっている。ストレージに保存されているファイルへのアクセス数が単位時間あたりで一定数を超過してアクセス制限が生じると、ユーザは、現在処理中のファイルの読み込みや書き込み処理が完了するまで待機を余儀なくされてしまう。この点、アクセスが集中しても可能な限りアクセス制限が生じないようにするには、SVG形式で文書ファイルを生成する際にインライン方式を適用すればよいということになる。しかしながら、インライン方式の場合には、ファイル数が少なくなる分だけ1ファイルあたりのデータサイズが大きくなり、生成された文書ファイルのページをクライアント装置で表示する際の処理が重くなるという欠点がある。したがって、クラウドシステム上で文書ファイルを生成・保存するにあたっては、ファイル数の抑制と表示処理のパフォーマンス維持というトレードオフの関係にある事項の両立を図る必要がある。
特開2015−5150号公報
クラウドシステム上で扱われる文書ファイルの構成を条件に基づいて変更する手法としては、例えば、特許文献1がある。これは、PDF形式で文書ファイルを生成する際に、描画データ中のリソースの一種であるフォントの埋め込み指定の有無を判定し、指定があった場合はフォントを文書ファイルに埋め込むというものである。しかし、この特許文献1の手法は、生成される文書ファイルのファイル数に変化はなく、SVGのような構造の文書ファイルを生成するケースにおける、ファイル数の抑制と表示処理パフォーマンスとの両立という課題解決には役立たない。
本発明に係るサーバ装置は、文書ファイルの生成サービスを提供するサーバ装置であって、文書ファイルの元になる元データをクライアント装置から受け取る通信手段と、前記元データに含まれる複数のリソースに基づいて文書ファイルを生成するファイル化手段と、生成された文書ファイルをストレージに保存する保存手段と、を備え、前記ファイル化手段は、前記ストレージへのアクセス状況に応じて、前記元データに含まれる複数のリソースそれぞれに対してインライン方式又は外部参照方式のいずれを適用するか判定し、当該判定の結果に基づいて前記文書ファイルを生成する、ことを特徴とする。
本発明によれば、クラウドシステム上で文書ファイルの生成・保存のサービスを提供する場合において、ストレージへのアクセス状況に応じ、生成する文書ファイルの構成が変更される。これにより、ファイル数の抑制と表示パフォーマンスの維持を両立させることが可能になる。
クラウドシステムの構成例を示す図である。 クラウドサーバ及びクライアント装置のハードウェア構成の一例を示すブロック図である。 クラウドシステムを実現するソフトウェアの構成例を示す図である。 ファイル生成サービスの内部構成を示す図である。 SVG文書のファイル構成の一例を示す図であり、(a)は外部参照方式、(b)はインライン方式を示す。 データストレージがSVG文書を格納する際のデータ構造の一例を示す図である。 実施例1に係る、ファイル化処理の流れを示すフローチャートである。 実施例1に係る、同一の元データから生成される3種類のSVG文書のファイル構成を説明する図である。 実施例1の変形例によって生成される、SVG文書のファイル構成を説明する図である。 実施例2に係る、ファイル化処理の流れを示すフローチャートである。 実施例2によって生成される、SVG文書のファイル構成を説明する図である。 実施例3に係る、ファイル化処理の流れを示すフローチャートである。 実施例3によって生成される、SVG文書のファイル構成を説明する図である。
以下、添付図面を参照して、本発明を好適な実施例に従って詳細に説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
<システム構成>
本実施例では、クライアント装置からの要求に従い、クラウドサーバがSVG形式の文書ファイルを生成・保存するクラウドサービスを提供する場面を前提として説明を行うものとする。図1は、クラウドコンピューティングシステム(クラウドシステム)の構成例を示す図である。クラウドシステム100は、クラウドサービスを提供するサーバ装置(クラウドサーバ)102と、複数のクライアント装置103とで構成され、これらがLAN104とインターネット101を介して相互に接続されている。インターネット101は、ファイアウォールを越えてクラウドサーバ102とクライアント装置103との間で、SVG形式の文書ファイルを生成する際の元になるデータ(以下、「元データ」と呼ぶ。)やユーザ指示をやり取りするための通信回線である。クライアント装置103は、各ユーザに割り当てられたパーソナルコンピュータやタブレット、スマートフォンなどの端末を指す。また、LAN104、インターネット101は、例えば、TCP/IPプロトコルなどをサポートする通信回線網であり有線・無線は問わない。尚、クラウドサーバ102は、1台のコンピュータでもよいし、機能・役割に応じた複数のコンピュータで構成してもよい。例えば、Webサービスを担うWebサーバ、文書ファイルの生成サービスを担うアプリケーションサーバ、データ保存を担うストレージサーバといったように複数のコンピュータで構成してもよい。また、複数のコンピュータでクラウドサーバ102を実現する場合は、その一部が仮想PCとして構成されていても構わない。
図2は、クラウドサーバ102及びクライアント装置103のハードウェア構成の一例を示すブロック図である。CPU201は、ROM206内部のプログラム領域に記憶されたプログラム、ハードディスク203からRAM202にロードされたOS、汎用アプリケーションなどのプログラムを実行する。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。ハードディスク203は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、電子原稿ファイルなどを記憶する。本実施例におけるSVG形式の文書ファイル(以下、単に「SVG文書」と呼ぶ。)の生成・保存サービスを実現するプログラムは、クラウドサーバ102のハードディスク203に記憶されており、RAM202に読み出されCPU201によって実行される。ディスプレイコントローラ204は、不図示のディスプレイの表示制御を行う。ネットワークコントローラ205は、ネットワークに接続された他の機器との通信制御を行う。
図3は、クラウドシステム100を実現するソフトウェアの構成例を示す図である。クライアント装置103は、Webページを閲覧するためのWebブラウザ301と、帳票などの元データを作成・編集するための文書編集アプリケーション(以下、「文書編集アプリ」と呼ぶ。)302とを備える。ユーザは、Webブラウザ301を用いてクラウドサーバ102にアクセスする。そして、SVG文書の生成指示(文書編集アプリ302で作成した元データのアップロード)や、自身のクライアント装置103にSVG文書を表示させる指示(保存されたSVG文書のダウンロード)を、クラウドサーバ102に対して行う。
クラウドサーバ102は、Webサービス311によって、Webブラウザ301と通信し、クライアント装置103からの要求、すなわち、SVG文書の生成や表示といったユーザ指示を処理する。例えばSVG文書の生成が要求された場合、クラウドサーバ102は、当該要求に対応する元データを、SVG形式でのファイル化を指示するジョブ(以下、単に「ジョブ」と呼ぶ。)と共に、ファイル生成サービス312へと渡す。ファイル生成サービス312は、受け取った元データとジョブに基づいてSVG文書を生成する。生成されたSVG文書は、データストレージ313にそのジョブと共に格納される。また、クライアント装置103からの要求がSVG文書の表示(取得)であれば、指定されたSVG文書がデータストレージ313からWebサービス312を介して読み出され、クライアント装置103に送られる。クライアント装置103では、Webブラウザ301を介して受け取ったSVG文書に基づき各ページをその画面上に表示する。ユーザは、自身のクライアント装置103に表示されたページを編集し、編集後の内容で新たなSVG文書の生成をWebブラウザ301を介して再び指示して、再保存させることができる。
<ファイル生成サービス>
次に、本実施例の特徴である、ファイル生成サービス312について詳しく説明する。ファイル生成サービス312は、クライアント装置103からの要求の多寡に応じてその起動数が変動する。つまり、要求が多いほどそれを処理するためにより多くのファイル生成サービス312が起動されることになる。図4は、ファイル生成サービス312の内部構成を示す図である。ファイル生成サービス312は、データ取得モジュール401、アクセス解析モジュール402、ファイル化モジュール403、ファイル保存モジュール404から構成されている。
データ取得モジュール401は、クライアント装置103から送信された元データを、Webサービス311を介して取得するモジュールである。ここで、元データには、例えば帳票のフォームデータや、ユーザがクライアント装置103上で当該帳票のフォームデータに入力した氏名や住所等の情報が含まれる。また、元データの形式は文書編集アプリ302に依存したもの(例えばword等)で構わない。ファイル化モジュール403が処理可能な形式と元データの形式とが異なる場合は、データ取得モジュール401において、所定の中間データ(例えばPDF)に変換するような構成であってもよい。アクセス解析モジュール402は、データストレージ313に対するアクセス状況を解析し、インライン方式でSVG文書を生成する場合におけるリソースの条件を決定するモジュールである。ファイル化モジュール403は、元データからリソースを取得して、インライン方式又は外部参照方式を適用してSVG文書を生成する処理(ファイル化処理)を行うモジュールである。ファイル化処理の詳細は後述する。ファイル保存モジュール404は、生成されたSVG文書を、データストレージ313に保存する処理を行うモジュールである。
<外部参照方式とインライン方式>
ここで、SVG文書のファイル構成について確認しておく。図5はSVG文書のファイル構成の一例を示す図であり、(a)は外部参照方式の場合、(b)はインライン方式の場合を示している。図5の(a)及び(b)において、矩形は1つのファイルを表しており、1つ1つの矩形が何らかの情報を表している。また、矩形同士を結ぶ線はファイル間で参照関係があることを表している。
はじめに、インライン方式と外部参照方式との共通点について説明する。図5の(a)及び(b)から明らかなように、いずれの方式においても、ツリー構造のルートがHTMLファイル501又は511となっている。HTMLファイルは、SVG文書をクライアント装置103のWebブラウザ301で表示するために必要なファイルである。そして、このHTMLファイル501又は511の下流にあるファイルが、SVGファイル502又は512である。ここで、SVGファイルは、拡張子が“.svg”のファイルであり、1ページに付き1つ存在する。
続いて、外部参照方式のファイル構成について説明する。外部参照方式では、描画で使用するリソースがSVGファイル502の外に別のファイル(外部ファイル)503として存在する。そして、当該外部ファイル503がSVGファイル502から参照されるというファイル構成である。図5(a)では、スタイル情報を表す“css”、画像情報を表す“jpg”及び“png”、フォント情報を表す“ttf”が外部ファイルとして個別に存在し、SVGファイル502から参照されている。外部参照方式の特徴として、ファイル1個あたりのデータサイズが小さくなり、且つ、オブジェクト単位で表示が可能である点が挙げられる。その結果、クライアント装置103にページを表示する際に、読み込みが済んだオブジェクトから段階的に表示されるため、インライン方式と比較すると、ユーザが感じるストレスが小さい。一方で合計ファイル数が多くなるため、データストレージ313へのファイルの書き込みや読み出しといったアクセス負荷が高くなってしまう。
次に、インライン方式のファイル構成について説明する。インライン方式では、描画で使用するリソースがSVGファイルの中に含まれている構成である。図5(b)では、図5(a)で外部参照されていたスタイル情報、画像情報、フォント情報がSVGファイル512内に記述されている。インライン方式の特徴として、ファイル1個あたりのデータサイズが大きくなり、1ページを表示するのに全てのリソースを読み込む必要があるという点が挙げられる。そのため、外部参照方式よりも1ページの表示に時間が掛かる。一方、同一内容のデータで比較するとファイル数が外部参照方式より少なくて済むため、データストレージ313へのアクセス負荷は外部参照方式よりも小さくなる。
上述の通り、外部参照方式とインライン方式にはそれぞれに長所と短所があり、両者はトレードオフの関係にある。本実施例に係る発明は、双方の長所を極力生かすために最適な構成でファイル化処理を行うことを目的としている。
続いて、ファイル化モジュール403で生成されたSVG文書が、データストレージ313にどのように格納・管理されるかについて説明する。図6は、データストレージ313がSVG文書を格納する際のデータ構造の一例を示す図である。図6に示すように、生成されたSVG文書は、「ジョブID」601、「ファイル名」602、「URL」603、「アクセス済フラグ」604の4つの項目で管理される。
「ジョブID」601は、ファイル化モジュール403におけるファイル化処理を一意に識別するための識別子である。データストレージ313に保存されている複数のレコードのうち、「ジョブID」601が同一のものは同じファイル化処理で生成されたファイルである。
「ファイル名」602は、ファイル化処理で生成されたSVG文書の名称を表す。「ジョブID」601が同じレコード内に「ファイル名」602が同じファイルは存在しないが、「ジョブID」601が異なる場合は「ファイル名」602が同じファイルが存在する場合がある。
「URL」603は、各ファイルが格納されている位置を表すパスである。この「URL」603は各ファイルで一意である。また、「URL」603によりファイル間の階層関係が表される。Webブラウザ301はこのURLにアクセスすることでSVG文書を表示することができる。
「アクセス済フラグ」604は、各ファイルがクライアント装置103のWebブラウザ301によって既にアクセスされたか否かを表すフラグである。本実施例では、“TRUE”が設定されていればアクセス済みを表し、“FALSE”が設定されていれば未だアクセスされていないことを表す。図6の例では、「ジョブID」601が“1”のジョブに属するファイルはアクセス済みであり、“2”のジョブに属するファイルは未アクセスということになる。ここで、「アクセス済フラグ」604に“TRUE”が設定されているということは、生成・保存されたSVG文書がクライアント装置103上に表示されたことを意味する。クライアント装置103に表示されたSVG文書のページ内容をユーザが編集し、その都度、新たなSVG文書の生成・保存を行うようなユースケースでは、同じファイルに再びアクセスされることはない。したがって、このようなユースケースにおいて、「アクセス済フラグ」604に“FALSE”が設定されている場合は、これから編集のためにアクセスされる可能性の高いSVG文書の構成ファイルであることがわかる。したがって、「アクセス済フラグ」604は、データストレージ313へのアクセスが同時期にどの程度発生し得るか(同時アクセスが一定数以上見込まれるかどうか)を推し量る指標となり得る。
次に、ファイル生成サービス312における、元データからSVG文書を生成し保存するファイル化処理について説明する。図7は、本実施例に係る、ファイル化処理の流れを示すフローチャートである。
ステップ701では、データ取得モジュール401が、クライント端末103から送られた元データを取得する。
ステップ702では、アクセス解析モジュール402が、データストレージ313に対するアクセス状況を解析する。具体的には、前述の「アクセス済フラグ」604及び「ジョブID」601を参照し、“FALSE”が設定されているファイルを有するジョブの数を取得し、当該取得したジョブ数と予め定めた閾値とを比較して、アクセス状況をレベル分け(例えば3段階に分類)する。上述の通り“FALSE”が設定されているファイルは未だクライアント装置103上で表示されていないため、今後表示を行うためにファイルアクセスが発生する可能性が高い。よって、“FALSE”が設定されているファイルを有するジョブの数が多いときは、多くのファイルアクセス数が同じタイミングで発生する可能性が高いことを意味する。ここで、アクセス状況を例えば「多」「中」「少」の3段階に分類するとする。この場合、例えばジョブ数が50以上は「多」、25未満は「少」、その間は「中」といった具合に2つの閾値を用意しておけばよい。仮に「多」と「少」の2段階に分類する場合であれば閾値は1つで済むことになる。もちろん、分類数をもっと多くしても構わない。さらには、ジョブ数に代えて、端的に“FALSE”が設定されているファイル数に基づいてアクセス状況を判定してもよい。この場合の閾値は、入力される元データにも拠るがジョブ数の10倍から100倍程度の値とすればよい。
ステップ703では、アクセス解析モジュール402が、アクセス状況の解析結果に基づき、インライン方式を適用する場合のリソースの条件を決定する。ここでは、データサイズを条件とする場合について説明する。この場合、アクセス状況の解析結果に応じたデータサイズの閾値が決定される。例えば、アクセス状況が「多」であった場合は600KB、「中」であった場合は250KB、「少」であった場合は30KBといった具合である。データサイズの閾値が大きくなるほどインライン方式のファイル構成となるリソースが増え、その結果、SVG文書の総ファイル数が減ることになる。
ステップ704では、ファイル化モジュール403が、元データに含まれるヘッダ情報等を解析し、元データ内のすべてのリソースを取得する。
ステップ705では、ファイル化モジュール403が、注目するページを決定する。通常は、1ページ目が最初の注目ページに決定される。
ステップ706では、ファイル化モジュール403が、注目ページについてのリソースの中から注目するリソースを決定する。
ステップ707では、ファイル化モジュール403が、注目リソースがステップ703で決定した条件を満たすか否かを判定する。ここでは、注目リソースのデータサイズと、アクセス状況に応じて決定された閾値とが比較される。判定の結果、注目リソースのデータサイズが閾値以下であれば、ステップ708に進む。一方、注目リソースのデータサイズが閾値を越える場合は、ステップ709に進む。
ステップ708では、ファイル化モジュール403が、注目リソースに対しインライン方式を適用してファイル化する。すなわち、注目リソースをSVGファイル内に埋め込む。
ステップ709では、ファイル化モジュール403が、注目リソースに対し外部参照方式を適用してファイル化する。すなわち、注目リソースをSVGファイルとは別の外部ファイルとして構成する。
ステップ710では、注目ページについての全リソースについて処理が完了したか否かが判定される。未処理のリソースがあればステップ706に戻って次の注目リソースを決定して処理を続行する。一方、注目ページについての全リソースについて処理が完了していれば、ステップ711に進む。
ステップ711では、元データの全ページについて処理が完了したか否かが判定される。未処理のページがあればステップ705に戻って次の注目ページを決定して処理を続行する。一方、元データの全ページについて処理が完了していれば、ステップ712に進む。
ステップ712では、ファイル保存モジュール404が、出来上がったSVG文書をデータストレージ313に格納する。図8は、本実施例に係る、同一の元データから生成される3種類のSVG文書のファイル構成を説明する図である。図8(a)は、SVG文書生成前の元データの構成を示す図である。図8(a)の元データは2ページで構成され、1ページ目は500KBと100KBの画像情報(jpg1及びjpg2)と50KBのフォント情報(ttf1)の計3つのリソースが含まれている。また、2ページ目には300KBと100KBの画像情報(png1及びpng2)と200KBのフォント情報(ttf2)の3つのリソースが含まれている。このような元データからアクセス状況の解析結果に応じて、図8(b)〜(d)に示す3種類のSVG文書が生成される。図8(b)は、アクセス状況「少」の下でデータサイズ閾値「30KB」の場合に生成されるSVG文書であり、30KB以下のリソースがインライン方式でファイル化される。図8(a)の元データには30KB以下のデータは存在しないため、全てのリソースが外部参照方式でファイル化されている。図8(c)は、アクセス状況「中」の下でデータサイズ閾値「250KB」の場合に生成されるSVG文書であり、250KB以下のリソースがインライン方式でファイル化される。この場合は、1ページ目のjpg1の画像情報と2ページ目のpng1の画像情報のみ外部参照方式でファイル化され、その他のリソースはインライン方式でファイル化されている。図8(d)は、アクセス状況「多」の下でデータサイズ閾値「600KB」の場合に生成されるSVG文書であり、600KB以下のリソースがインライン方式でファイル化される。いま、元データの全てのリソースが600KB以下のサイズであるため、全てのリソースがインライン方式でファイル化されることになる。ここで、図8(b)〜(d)のファイル数を比べてみると、それぞれ9個、5個、3個である。すなわち、データストレージ313へのアクセスが少ない状況ではファイル数は多くても構わないため、外部参照方式が適用されやすくなっている。一方、アクセスが多い状況ではファイル数を少なくしてアクセスされるファイル数が増えないように、インライン方式が適用されやすくなっている。
以上が、本実施例におけるファイル化処理の内容である。
<変形例>
上述の例では、同一内容のリソースが複数存在した場合に、それぞれが別個独立に扱われる結果、別々の外部ファイルとして構成され得た。そこで、同一内容のリソースが複数存在する場合に、リソースの共有を行ってより効率的なファイル構成を実現する態様を変形例として説明する。
本変形例では、上述のステップ704で元データ内のすべてのリソースを取得した段階で同一内容のリソースの有無を判定し、同一内容のリソースがあれば、共有リソースとして1個のリソースに整理・統合する。ステップ705以降の処理は、上述の通りであるので説明を省く。
図9は、本変形例によって生成される、SVG文書のファイル構成を説明する図である。図9(a)は、SVG文書生成前の元データの構成を示す図である。図9(a)の元データは2ページで構成され、1ページ目は500KBと100KBの画像情報(jpg1及びjpg2)と50KBのフォント情報(ttf1)の計3つのリソースが含まれている。2ページ目は1ページ目と同じ500KBの画像情報(jpg1)と100KBの画像情報(png1)と200KBのフォント情報(ttf2)の3つのリソースが含まれている。このように、1ページ目のjpg1の画像情報と2ページ目のjpg1の画像情報とが同一内容のリソースである。この元データから生成されるSVG文書の一例が図9の(b)と(c)に示されている。なお、インライン方式を適用するリソースのデータサイズの閾値はいずれも250KBであるものとする。
そして、図9(b)が上述の実施例によって生成されるSVG文書のファイル構成であり、図9(c)が本変形例によって生成されるSVG文書のファイル構成を示している。図9(b)では各ページのSVGファイルから参照されているjpg1が別々の外部ファイルであるのに対し、図9(c)では1つのjpg1の外部ファイルが共有参照されていることがわかる。その結果、図9(c)のSVG文書ではファイル数が4個になり、ファイル数を削減することができている。ここでは説明の便宜上、最も単純な例を説明したためファイル数の削減効果が大きくないが、同一内容のリソースが3個以上あったり、複数種類、複数ページで存在する場合は効果が大きくなる。また、ここでは共有リソースが外部参照方式による別ファイルとなる場合について説明したが、インライン方式の場合であっても同一ページ内であれば共有は可能である。この場合、ファイル数に変更はないためファイル数の抑制には寄与しないがファイルサイズが小さくなるため、システム上の処理負荷が軽減される。
なお、本実施例では、アクセス状況を判定する際の基準に未表示のジョブ数(或いはファイル数)といったアクセス履歴を用いたが、これに限定されない。例えば、クラウドサーバ102上で起動しているファイル生成サービス312の数を指標としてもよい。あるいは、データストレージ313への単位時間あたりのアクセス数を指標としても構わない。すなわち、データストレージ313にどれだけのアクセスが同時に発生し得るかを判断できるものであればどのような指標でもよい。
また、インライン方式を適用する場合の条件としてリソースのデータサイズを用いたが、例えばリソース数を条件とし、一定のリソース数以下であればSVGファイル内に記述するようにしてもよい。この手法によっても、SVG文書のファイル数を抑制することができる。
以上のとおり本実施例によれば、インライン方式を適用する際のリソースの条件がデータストレージへのアクセス状況に応じて決定される。これにより、クラウドシステム上で生成する文書ファイルの構成を動的に変更することができ、ファイル数の抑制と表示パフォーマンスの維持というトレードオフの関係にある両者のバランスを最適に保つことが可能になる。
実施例1において、図8(b)のようなファイル構成は、保存されている文書ファイルに対する同時多数のアクセスが見込まれない場合に生成されるため、データストレージ313のアクセス制限が発生する可能性は低い。しかしながら、元データのページ数やリソース数によっては想定以上のファイル数でSVG文書が構成されてしまう可能性がある。そこで、保存されている文書ファイルに対する同時多数のアクセスが見込まれない場合において、先頭ページのみを外部参照方式でファイル化する態様について、実施例2として説明する。なお、実施例1と共通する部分は説明を省略ないしは簡略化し、本実施例では差異点を中心に説明するものとする。
図10は、本実施例に係る、ファイル化処理の流れを示すフローチャートである。ステップ1001〜ステップ1005は、実施例1に係る図7のフローのステップ701〜705と同じである。ステップ1005で注目ページが決定されると、ステップ1006において、ファイル化モジュール403が、当該注目ページが先頭ページであるかどうかを判定する。注目ページが先頭ページであれば、ステップ1007に進む。一方、注目ページが先頭ページ以外のページであれば、ステップ1008に進む。ステップ1007では、ステップ1002での判定の結果、多くのファイルアクセスが見込まれない状況であるかどうか(ここでは、アクセス状況が「少」であったかどうか)によって処理が切り分けられる。アクセス状況が「少」であった場合はステップ1013に進み、「少」でなかった場合はステップ1008に進む。
ステップ1008〜ステップ1012は、図7のフローのステップ706〜ステップ710にそれぞれ相当する。すなわち、注目ページについて注目リソース毎にステップ1003で決定した条件を満たすかどうかが判定され、判定結果に応じてインライン方式又は外部参照方式による注目リソースのファイル化処理がなされる。
ステップ1013では、ファイル化モジュール403が、先頭ページ内のすべてのリソースについて、外部参照方式によるファイル化処理を行う。先頭ページについてのファイル化処理が完了すると、ステップ1014に進む。
ステップ1014及びステップ1015は、図7フローのステップ711及びステップ712に相当する。すなわち、元データの全ページについて処理が完了するまでステップ1005以下の処理が繰り返され、出来上がったSVG文書がデータストレージ313に格納される。
図11は、本実施例によって生成される、SVG文書のファイル構成を説明する図である。図11(a)は、SVG文書生成前の元データの構成を示す図である。図11(a)の元データは2ページで構成され、1ページ目は500KBと100KBの画像情報(jpg1及びjpg2)と50KBのフォント情報(ttf1)の計3つのリソースが含まれている。2ページ目は300KBと100KBの画像情報(png1及びpng2)と200KBのフォント情報(ttf2)の3つのリソースが含まれている。この元データから生成されるSVG文書の一例が図11の(b)と(c)に示されている。なお、インライン方式を適用するリソースのデータサイズの閾値はいずれも30KBであるものとする。
そして、図11(b)が実施例1によって生成されるSVG文書のファイル構成であり、図11(c)が本実施例によって生成されるSVG文書のファイル構成を示している。図11(b)では1ページ目と2ページ目ともにすべてのリソースが外部参照方式でファイル化されている。これに対し、図11(c)では先頭ページのみリソースが外部参照方式でファイル化され、2ページ目はインライン方式でSVGファイル内に記述されている。また、図11(b)と(c)とでファイル数を比較してみると、それぞれ9個と6個であり、本実施例を適用した方がよりファイル数を削減することができている。そして、先頭ページ内のリソース数が多いほどその効果は大きくなる。
本実施例によれば、アクセス状況が多くないと判定された場合に先頭ページのみを外部参照方式でファイル化し、先頭ページ以外のページについてはインライン方式でファイル化する。このような制御を行うことで、先頭ページについては表示パフォーマンスの良好なファイル構成となり、迅速に表示させることができる。こうすることで、ユーザが先頭ページを閲覧している間に2ページ目以降の描画データの読み込みができるため、ユーザの感じるストレスが軽減される。また、トータルのファイル数が減るため、ファイルアクセス負荷をさらに抑制することができる。
次に、元データの各ページに含まれる画像リソースについて、スプライト画像を作成する態様について実施例3として説明する。ここで、スプライト画像とは、複数の画像を連結して1つにまとめた画像である。このスプライト画像に対しCSSで表示範囲を指定することによって個々の画像を表示する手法が「CSSスプライト」であり、本実施例はこれを利用するものである。なお、実施例1と共通する部分は説明を省略ないしは簡略化し、本実施例では差異点を中心に説明するものとする。
図12は、本実施例に係る、ファイル化処理の流れを示すフローチャートである。ステップ1201〜ステップ1204は、実施例1に係る図7のフローのステップ701〜704と同じである。ステップ1204で元データからすべてのリソースが取得されると、ステップ1205において、ファイル化モジュール403が、取得されたリソース内に同一種類の画像情報が複数あるかどうかを判定する。この場合において、同一種類とは画像形式が同じであることを意味し、例えばjpgとpngとは異なる画像形式であるため同一種類ではない。同一種類の画像情報が複数あれば、ステップ1206に進む。一方、同一種類の画像情報が複数なければ、ステップ1207に進む。
ステップ1206では、ステップ1204で取得したリソースのうち複数の画像情報に関し、上述のスプライト画像を作成する。作成されたスプライト画像のデータは、以降のステップにおいて1つのリソースとして扱われる。
ステップ1207及びステップ1208は、図7のフローのステップ705及び706に相当し、注目ページと注目リソースがそれぞれ決定される。そして、ステップ1209では、注目リソースが上述のスプライト画像であるかどうかによって処理が切り分けられる。注目リソースがスプライト画像でなければステップ1210に進み、スプライト画像であればステップ1212に進む。
ステップ1210〜ステップ1215は、図7のフローのステップ707〜ステップ710にそれぞれ相当する。すなわち、注目ページについて注目リソース毎にステップ1203で決定した条件を満たすかどうかが判定され、判定結果に応じてインライン方式又は外部参照方式による注目リソースのファイル化処理がなされる。この場合において、スプライト画像については外部参照方式が適用され、外部ファイルとして構成されることになる。そして、元データの全ページについて処理が完了するまで処理が続行され、出来上がったSVG文書がデータストレージ313に格納される。
図13は、本実施例によって生成される、SVG文書のファイル構成を説明する図である。図13(a)は、SVG文書生成前の元データの構成を示す図である。図13(a)の元データは2ページで構成され、1ページ目は500KBと100KBの画像情報(jpg1及びjpg2)と50KBのフォント情報(ttf1)の計3つのリソースが含まれている。2ページ目は300KBと100KBの画像情報(jpg3及びjpg4)と200KBのフォント情報(ttf2)の3つのリソースが含まれている。つまり、1ページ目と2ページ目を合わせて同一種類の画像情報が4個存在している。そして、図13(b)がこの元データから実施例1によって生成されるSVG文書のファイル構成であり、図13(c)が本実施例によって生成されるSVG文書のファイル構成を示している。図13(b)では各画像情報が別々の外部ファイルとして構成されているのに対し、図13(c)では4つの画像情報を結合した1個のスプライト画像ファイルが共有参照されている。そして、図13(b)と(c)とでファイル数を比較してみると、それぞれ7個と4個であり、ファイル数を大きく削減することができている。
本実施例によれば、元データ内に同一種類の画像リソースが含まれる場合に1個のスプライト画像にまとめられるので、同一種類の画像リソースが多いほどファイル数削減の効果が大きい。したがって、元データの構成によっては、トータルのファイル数をより大きく減らせることができ、ファイルアクセス負荷をさらに抑制することができる。
以上、3つの実施形態に分けて説明を行ったが、各実施例はそれぞれが独立しているものではなく、各実施例の内容を組み合わせることも可能である。例えば、実施例1の変形例と実施例2とを組み合わせて、リソースの共有を行うとともに先頭ページのみインライン方式を適用するといったことも可能である。
また上述の各実施例では、SVG形式の文書ファイルを生成する場合を例に説明を行ったが、これに限定されない。さらに、SVGと同様にXMLをベースとしたJDF(Job Definition Format)など、SVG類似の構造を持つフォーマットの文書ファイルの生成に幅広く適用可能である。
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (19)

  1. 文書ファイルの生成サービスを提供するサーバ装置であって、
    文書ファイルの元になる元データをクライアント装置から受け取る通信手段と、
    前記元データに含まれる複数のリソースに基づいて文書ファイルを生成するファイル化手段と、
    生成された文書ファイルをストレージに保存する保存手段と、
    を備え、
    前記ファイル化手段は、前記ストレージへのアクセス状況に応じて、前記元データに含まれる複数のリソースそれぞれに対してインライン方式又は外部参照方式のいずれを適用するか判定し、当該判定の結果に基づいて前記文書ファイルを生成する、
    ことを特徴とするサーバ装置。
  2. 前記アクセス状況を、所定の指標に基づいて判定する解析手段をさらに備えたことを特徴とする請求項1に記載のサーバ装置。
  3. 前記所定の指標は、前記ストレージに保存されている複数の文書ファイルへのアクセス履歴であることを特徴とする請求項2に記載のサーバ装置。
  4. 前記アクセス履歴は、前記ストレージに保存されている複数の文書ファイルのうち、前記クライアント装置から未だアクセスがなされていない文書ファイルについての、前記クライアント装置からのファイル化の要求に対応するジョブの数であることを特徴とする請求項3に記載のサーバ装置。
  5. 前記アクセス履歴は、前記ストレージに保存された複数の文書ファイルのうち、前記クライアント装置から未だアクセスがなされていない文書ファイルを構成するファイルの数であることを特徴とする請求項3に記載のサーバ装置。
  6. 前記通信手段、前記ファイル化手段及び前記保存手段は、前記クライアント装置からの要求の数に応じて起動数が変動するソフトウェアによって実現され、
    前記所定の指標は、前記サーバ装置において起動している前記ソフトウェアの数である
    ことを特徴とする請求項3に記載のサーバ装置。
  7. 前記所定の指標は、前記ストレージへの単位時間あたりのアクセス数であることを特徴とする請求項3に記載のサーバ装置。
  8. 前記ファイル化手段は、前記アクセス状況に応じて、前記元データに含まれる複数のリソースそれぞれに対して、インライン方式又は外部参照方式のいずれを適用するか判定し、各リソースに当該判定結果の方式を適用してファイル化することで、前記生成する文書ファイルの構成を変更することを特徴とする請求項1に記載のサーバ装置。
  9. 前記ファイル化手段は、前記アクセス状況に応じて、前記インライン方式を適用する際の条件を決定し、
    前記ファイル化手段は、前記元データに含まれるリソースが前記条件を満たす場合には前記インライン方式を適用して当該リソースをファイル化し、前記元データに含まれるリソースが前記条件を満たさない場合には前記外部参照方式を適用して当該リソースをファイル化する
    ことを特徴とする請求項8に記載のサーバ装置。
  10. 前記条件は、前記リソースのデータサイズが閾値以下であることを特徴とする請求項9に記載のサーバ装置。
  11. 前記条件は、前記リソースの数が閾値以下であることを特徴とする請求項9に記載のサーバ装置。
  12. 前記ファイル化手段は、前記元データの複数のページに同一内容のリソースが存在する場合、当該リソースが当該複数のページで共有されるようにファイル化することを特徴とする請求項1に記載のサーバ装置。
  13. 前記ファイル化手段は、保存されている文書ファイルに対する同時アクセスが一定数以上見込まれない場合に、先頭ページのみを外部参照方式でファイル化することを特徴とする請求項1に記載のサーバ装置。
  14. 前記リソースは、画像情報、フォント情報、スタイル情報であることを特徴とすることを特徴とする請求項1に記載のサーバ装置。
  15. 前記ファイル化手段は、前記元データに、同一種類の画像情報が複数存在した場合、結合して1つの画像情報としてファイル化することを特徴とする請求項14に記載のサーバ装置。
  16. 前記サーバ装置は、クラウドコンピューティングシステムにおける仮想サーバであることを特徴とする請求項1に記載のサーバ装置。
  17. 前記ストレージは、クラウドコンピューティングシステムにおけるストレージであることを特徴とする請求項1に記載のサーバ装置。
  18. 文書ファイルの生成サービスを提供する方法であって、
    文書ファイルの元になる元データをクライアント装置から受け取るステップと、
    前記受け取るステップにて受け取った前記元データに含まれる複数のリソースに基づいて文書ファイルを生成するステップと、
    前記生成するステップにて生成された文書ファイルをストレージに保存するステップと、
    を含み、
    前記生成するステップでは、前記ストレージへのアクセス状況に応じて、前記元データに含まれる複数のリソースそれぞれに対してインライン方式又は外部参照方式のいずれを適用するか判定し、当該判定の結果に基づいて前記文書ファイルを生成する、
    ことを特徴とする方法。
  19. コンピュータを、請求項1乃至17のいずれか1項に記載のサーバ装置として機能させるためのプログラム。
JP2016188119A 2016-09-27 2016-09-27 クラウドシステムにおける文書ファイルの生成サービスを提供する装置、方法及びプログラム Active JP6736440B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016188119A JP6736440B2 (ja) 2016-09-27 2016-09-27 クラウドシステムにおける文書ファイルの生成サービスを提供する装置、方法及びプログラム
US15/707,107 US10747715B2 (en) 2016-09-27 2017-09-18 Apparatus that provides generation service of document file incloud system, method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016188119A JP6736440B2 (ja) 2016-09-27 2016-09-27 クラウドシステムにおける文書ファイルの生成サービスを提供する装置、方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2018055241A JP2018055241A (ja) 2018-04-05
JP2018055241A5 JP2018055241A5 (ja) 2019-10-10
JP6736440B2 true JP6736440B2 (ja) 2020-08-05

Family

ID=61685427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016188119A Active JP6736440B2 (ja) 2016-09-27 2016-09-27 クラウドシステムにおける文書ファイルの生成サービスを提供する装置、方法及びプログラム

Country Status (2)

Country Link
US (1) US10747715B2 (ja)
JP (1) JP6736440B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11964497B2 (en) * 2018-09-12 2024-04-23 David Wachs Mechanical handwriting quality control method
US11275857B2 (en) * 2019-06-25 2022-03-15 Kyocera Document Solutions Inc. Methods for authenticating user access to a scanned document on a cloud-based server
US10951779B1 (en) 2019-10-03 2021-03-16 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US11128765B2 (en) 2019-10-03 2021-09-21 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US11108920B2 (en) 2019-10-03 2021-08-31 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US10924615B1 (en) 2019-10-03 2021-02-16 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US10848628B1 (en) 2019-10-03 2020-11-24 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US10827082B1 (en) * 2019-10-03 2020-11-03 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US10708358B1 (en) 2019-10-03 2020-07-07 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
WO2021240698A1 (ja) * 2020-05-27 2021-12-02 日産自動車株式会社 相乗り支援方法、相乗り支援装置、ならびに、相乗り支援システム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030180A (ja) * 2001-07-13 2003-01-31 Murata Mach Ltd 構造化文書管理装置とそのプログラム
JP2005031980A (ja) * 2003-07-11 2005-02-03 Dainippon Printing Co Ltd ファイル管理方法、電子文書管理システム
JP4434925B2 (ja) * 2003-11-12 2010-03-17 キヤノン株式会社 情報処理方法、情報処理装置、プログラム及び記憶媒体
US20050125724A1 (en) * 2003-12-03 2005-06-09 Peiro Jose A. PPML to PDF conversion
JP2006252410A (ja) * 2005-03-14 2006-09-21 Canon Inc 文書管理装置、方法および記憶媒体
US8612847B2 (en) * 2006-10-03 2013-12-17 Adobe Systems Incorporated Embedding rendering interface
US8571331B2 (en) * 2009-11-30 2013-10-29 Xerox Corporation Content based image selection for automatic photo album generation
US20110258535A1 (en) * 2010-04-20 2011-10-20 Scribd, Inc. Integrated document viewer with automatic sharing of reading-related activities across external social networks
US9275301B2 (en) * 2012-10-04 2016-03-01 Xerox Corporation Method and system for creating digital image album
JP2015005150A (ja) 2013-06-21 2015-01-08 キヤノン株式会社 文書生成システム
US9213684B2 (en) * 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US10069892B2 (en) * 2014-09-27 2018-09-04 Jianqing Wu Versatile information management system and method thereof
JP6555908B2 (ja) 2015-03-17 2019-08-07 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US10019415B1 (en) * 2015-08-28 2018-07-10 Animoto Inc. System and method for consistent cross-platform text layout
WO2017122981A1 (en) * 2016-01-13 2017-07-20 Samsung Electronics Co., Ltd. Method and system to decrease page load time by leveraging network latency
JP2018063501A (ja) * 2016-10-11 2018-04-19 キヤノン株式会社 情報処理装置及び文書表示方法、文書表示システムおよびプログラム

Also Published As

Publication number Publication date
US20180089202A1 (en) 2018-03-29
US10747715B2 (en) 2020-08-18
JP2018055241A (ja) 2018-04-05

Similar Documents

Publication Publication Date Title
JP6736440B2 (ja) クラウドシステムにおける文書ファイルの生成サービスを提供する装置、方法及びプログラム
US11153402B2 (en) Method and apparatus for automatically optimizing the loading of images in a cloud-based proxy service
US11190624B2 (en) User interface for just-in-time image processing
EP2279602B1 (en) Systems and methods for remoting multimedia plugin calls
US11637796B2 (en) Image matching server network implementing a score between a server and an image store
US8185654B2 (en) Systems and methods for content-aware load balancing
US10025758B2 (en) Support for non-native file types in web application environment
AU2010221620B2 (en) Content rendering on a computer
US20090327460A1 (en) Application Request Routing and Load Balancing
US9432484B1 (en) CIM-based data storage management system having a restful front-end
JP2016506560A (ja) イメージングデバイス用のネットワークに基づくフォントサブセットの管理
JP4925231B2 (ja) 応答集約サロゲートからの要求フラグメントの送信
US20190379748A1 (en) Systems, devices, and methods for presenting customized content through web api
CN109495553A (zh) 一种网页显示控制方法、系统及反向代理服务器
CN113220273B (zh) 微前端应用资源处理方法、装置、设备和介质
AU2020301722B2 (en) Systems and methods of generating a design based on a user search query
US11328030B2 (en) Systems and methods of generating or updating a design based on a universal resource locator (URL)
US20140337708A1 (en) Method and apparatus for providing web browsing service
US11010447B1 (en) Systems, devices, and methods for presenting customized content through web API
US10878187B1 (en) Network-based content rendering
US9519629B1 (en) Style consolidation and optimization with strong ownership
Lee et al. High performance web server architecture with Kernel-level caching
CN115878572A (zh) 一种多格式电子档案智能预览方法和装置以及设备

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190829

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200520

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200715

R151 Written notification of patent or utility model registration

Ref document number: 6736440

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151