以下、この発明を実施するための形態を図面に基づいて説明する。
[第1の実施形態]
まず、図1に、この発明の一実施形態であるプリントサーバ200のハードウェアブロック図を示す。図1において、このプリントサーバ200は、CPU220、ROM230、RAM240、通信I/F250、HDD260を備え、これらがシステムバス270に接続されている。
CPU220は、このプリントサーバ200全体を管理及び制御する中央処理装置である。ROM230は、CPU220が実行するプログラムを格納している読み出し専用の記憶手段である。RAM240は、CPU220が実行するプログラムを展開し、各種処理を行う際の作業領域として使用する読み書き可能な記憶手段である。
通信I/F250は、このプリントサーバ200が、後述するメールサーバ100、レンダリングサーバ300、プリンタ400をはじめとする各装置とネットワークを介して通信を行うためのインタフェースである。有線無線を問わず、使用する通信規格に応じたインタフェースを用意すればよい。HDD260は、各種データを記憶する大容量記憶手段である。
そして、CPU220は、ROM230内の各種プログラムを読み出し、RAM240に展開した後、その各種プログラムに従って動作し(各種プログラムを必要に応じて選択的に実行し)、この発明に係わる機能、つまり電子メール受信手段、電子メール解析手段、認証情報取得手段、データ取得手段、データ送信手段、認証手段、ジョブ管理手段及び共有情報管理手段としての機能を含む各種機能を実現することができる。
次に、図1のプリントサーバ200を含むシステム構成について図2を参照しながら説明する。図2は、図1に示したプリントサーバを含むプリントシステムの構成を示す機能ブロック図である。このシステムは、メールサーバ100、プリントサーバ200、レンダリングサーバ300及びプリンタ400を備えている。
このうち、メールサーバ100は、メール受信部101とメール送信部102とメールボックス103とを備えている。
メール受信部101は、利用者端末600から送信されるプリントサーバ200宛の電子メール(以下「メール」という)を受信して、メールボックス103に保存する機能を備える。メール送信部102は、指定された宛先へメールを送信する機能を備える。メールボックス103は、メール受信部101が受信したメールを保存する記憶手段である。
また、プリントサーバ200はデータ送信装置の一形態であって、メール取得部201、登録ユーザ判定部202、解析部203、URL認証有無判断部204、認証情報取得部205、データ取得部206、プリントユーザ認証部207、データ送信部208、ジョブ管理部209、ジョブスプーラ211及び認証情報記憶部212を備えている。
このうち、メール取得部201は、メールサーバ100のメールボックス103を定期的にポーリングして監視しており、メールボックス103に新着メールがあれば、メールサーバ100からその新着メールを取得する機能を備える。なお、このメール取得部201が、電子メール受信手段に対応する。
登録ユーザ判定部202は、メール取得部201が取得したメールの送信者が予めシステムに登録されたユーザか否か判断する機能を備える。解析部203は、メール取得部201が取得したメールを解析し、メール本文に記載されたURL及びメール送信者の情報であるFromに設定されているメールアドレスの情報を取得する機能を備える。また、メール送信先の情報として、To及びCC(カーボンコピー)に設定されているメールアドレスの情報を取得する機能も備える。なお、この解析部203が、電子メール解析手段に対応する。
URL認証有無判断部204は、解析部203がURLを取得した場合に、URLが示すファイルを取得するにあたって認証が必要か否かを判断する機能を備える。認証情報取得部205は、URL認証有無判断部204が認証が必要と判断すると、後述する認証情報記憶部212にアクセスして、認証に用いるアクセス用認証情報を取得する機能を備える。なお、この認証情報取得部205が認証情報取得手段に対応する。
データ取得部206は、認証情報取得部205が取得したアクセス用認証情報を用いて認証を受け、認証が成功した場合に、指定されたURLが示すファイルを取得する機能を備える。また、認証が必要ない場合は、アクセス用認証情報なしでURLが示すファイルを取得する機能を備える。なお、このデータ取得部206が、データ取得手段に対応する。
プリントユーザ認証部207は、プリンタ400のユーザを認証する機能を備える。なお、このプリントユーザ認証部207が、認証手段に対応する。データ送信部208は、データ取得部206が取得したデータをプリンタ400に送信する機能を備える。なお、このデータ送信部208が、データ送信手段に対応する。
ジョブ管理部209は、共有情報管理部210を備えている。このジョブ管理部209は、図15に示すような印刷ジョブ登録テーブルを管理する機能を備える。図15は印刷ジョブ登録テーブルの一例の構成図である。なお、このジョブ管理部209が、ジョブ管理手段に対応する。
図15の印刷ジョブ登録テーブルにおいて、ジョブIDは各ジョブを識別するための一意のジョブ識別情報である。ユーザ名はジョブの投入者を示す識別情報であるユーザ識別情報である。共有ユーザ名はジョブの共有者を示す識別情報である共有者識別情報である。上記ジョブ管理部209は、これらジョブIDとユーザ名と共有ユーザ名とを対応付けて管理する機能を備えている。
また、共有情報管理部210は、図16に示すようなジョブIDと共有ユーザ名とワンタイムパスワードとが対応付けられた共有用パスワードテーブルを管理する機能を備えている。図16は共有用パスワードテーブルの一例の構成図である。
図16の共有用パスワードテーブルにおいて、ワンタイムパスワードは、印刷ジョブの共有者を認証するために用いる共有用認証情報である。
また、共有情報管理部210は、ワンタイムパスワードを、そのワンタイムパスワードを使用させる共有者へメールで通知する機能も備えている。この通知のためのメール送信は、メールサーバ100のメール送信部102に要求して行わせることができる。なお、共有情報管理部210が、共有情報管理手段に対応する。
ジョブスプーラ211は、印刷ジョブ登録テーブルに登録されている印刷ジョブに関する印刷内容を示すファイルを、ジョブIDと対応付けて所要の記憶手段に記憶させる機能を備える。
認証情報記憶部212は、認証に関連する図17〜図19のテーブルを記憶する機能を備える。図17はアドレステーブルの一例の構成図である。図17のアドレステーブルはユーザ名とメールアドレスの対応表を示している。また、該当のユーザが、後述のシステムログイン情報の登録されたユーザであるか否かを示す情報を記憶している。図17のアドレステーブルは、登録ユーザ判定部202において、メール送信者が予め登録されユーザか否か判断する際に参照されるものである。
なお、GuestD及びGuestEのようにユーザ登録が「なし」のデータは、解析部203が未登録の共有者のメールアドレスを検出した場合に、一時的に追加するものである。その用途は、共有情報管理部210が、共有者にメール通知する際に参照するものである。従って、その後、適宜なタイミング(例えば、共有者にメール通知後等)に削除するとよい。上記登録ユーザ判定部202の判断においては、ユーザ登録が「なし」のデータは参照されない。
図18はアクセス用認証情報テーブルの一例の構成図である。図18のアクセス用認証情報テーブルは、URLが示すファイルを取得するにあたっての認証に用いるアクセス用認証情報を、ユーザ名とストレージURLの組み合わせ毎に記憶する。
図18のアクセス用認証情報テーブルにおいて、ストレージURLは、認証が必要なオンラインストレージのURLを示している。なお、アクセス用認証情報テーブルへのアクセス用認証情報の登録は、例えばこのシステムの管理者や利用者が、プリントサーバ200にアクセスして予め行っておく。
図19はシステムログイン情報テーブルの一例の構成図である。図19のシステムログイン情報テーブルは、このシステムを用いてファイルを印刷しようとするプリンタ400のユーザを認証するために参照されるシステムログイン情報を、ユーザ毎に記憶する。図16に示したワンタイムパスワードを用いる場合を除き、図19のシステムログイン情報テーブルに登録されているユーザが、プリントサーバ200の利用権限を有するユーザである。
次に、レンダリングサーバ300は、プリントサーバ200のデータ取得部206が取得したファイルがそのままでは印刷できない形式(例えば、ワードプロセッサで編集した文書データ)だった場合、レンダリング処理部301にてレンダリング処理を行い印刷可能な形式へと変換するものである。
次に、プリンタ400は、画像形成装置であって、プリントサーバ200のデータ送信部208から送信される印刷ジョブのファイルを受信し、その受信したファイルに基づきシート材である用紙に画像を形成するものである。
また、このプリンタ400は、図示しない操作パネルを備え、その操作パネルにログイン画面を表示し、ユーザによるシステムログイン情報(ユーザ名とパスワード)の入力を受け付ける。システムログイン情報のパスワードとしてはワンタイムパスワードを入力してもよい。プリンタ400は、入力されたシステムログイン情報をプリントサーバ200に送信して認証を要求する。
次に、オンラインストレージ500は、ユーザが任意の端末装置からインターネット経由でアクセスしてファイルを蓄積することができる記憶手段となるストレージ501を提供する。このオンラインストレージ500としては例えば、Google Docs、quanp(登録商標)、evernote(登録商報)、dropbox(登録商標)等の、一般に公開されたサービスを利用することもできる。
なお、上記のような一般に公開されたオンラインストレージは、ユーザのアクセスを受け付ける場合、ユーザにログイン名とパスワードを用いた認証を要求する場合が多い。そこで、オンラインストレージ500も、このようにアクセス時に認証を要求するものとする。
プリントサーバ200においては、図18に示したアクセス用認証情報として、このオンラインストレージ500に認証を受けるためのアクセス用認証情報を登録しておく。そして、データ取得部206によるファイル取得を行う際には、オンラインストレージ500にアクセスするために、その登録しておいたアクセス用認証情報を送信して認証を受ける。
なお、図2においては図示の都合上オンラインストレージ500を一つのみ示しているが、複数のオンラインストレージ500を利用することももちろん可能である。図18のアクセス用認証情報テーブル例は、複数のオンラインストレージ500を利用することを前提としたものである。
また、インターネット経由でアクセスするオンラインストレージ500に加えて、またはこれに代えて、社内で共有するような図示しないファイルサーバを利用することもできる。このような場合、ファイル取得時に、ファイルサーバにアクセスするための特別なアクセス用認証情報が必要ないこともあり得る。認証自体必要ないこともあり得る。
次に、利用者端末600は、このシステムの利用者であるメール送信者の端末であって、例えばPC端末や携帯電話等のモバイル端末により構成することができる。メール送信者は、このシステムを利用する場合、メールソフト等を用いてメール本文に予めオンラインストレージ500に蓄積しておいたファイルのURLを記載するとともに、Toの宛先をプリントサーバ200の所定のメールアドレス(例えば、cloud_print@xxx.com)にして、メールを送信する。すると、送信されたメールはメールボックス103に新着メールとして保存される。メール送信者が、共有者を設定したい場合はTOあるいはCCに共有者にしたい人のメールアドレスを加えて送信するようにする。
共有者端末700は、メール送信者が共有者として設定したユーザの端末である。共有者端末700は利用者端末600と同様にPC端末やモバイル端末により構成することができる。
以上、図2を参照しながら説明したシステムでは、プリントサーバ200がファイルの取得や印刷ジョブの登録等の処理を行うことにより、メール送信者がメールにより印刷ジョブを投入することができ、かつその投入した印刷ジョブのファイルをメール送信者本人又は共有者が印刷できるようにしている。
次に、このプリントサーバ200が行う処理について、図3を参照しながら説明する。図3は、プリントサーバ200がメールを受信した場合に実行する処理のフローチャートである。なお、このフローチャートに示した各処理は、プリントサーバ200のCPU220が所定のプログラムを実行することにより、上述した各部の機能を発揮させて行うものである。
プリントサーバ200のCPU220は、定期的に又は任意のタイミングでメールサーバ100へアクセスし、自身のメールアドレスのメールボックス103に新着メールがあると判断すると、そのメールを受信すると共に、図3に示す処理を開始する。複数のメールを受信した場合には、そのそれぞれについて順次図3に示す処理を行う。また、本文あるいはタイトル等に、ジョブの投入を指示するメールである旨の特定の識別子が記載されているメールについてのみ、図3に示す処理を行うようにしてもよい。
図3の処理においてはまず、プリントサーバ200のCPU220は、受信したメールの送信者が予め登録されたユーザか否かを判断する(S11)。
具体的には、CPU220は、図17に示したアドレステーブルに、受信したメールのFromに設定されているメールアドレスに一致するメールアドレスがあり、かつそのユーザのユーザ登録が「あり」であるか否か判断する。この判断がYESであれば、メール送信者が予め登録されたユーザであるとして、そのメールアドレスに対応するユーザ名を、メール送信者を示すユーザ識別情報として用いるようにする。
例えば、メール送信者のFromのメールアドレスがusera@xxx.comである場合は、図17に示したアドレステーブルに一致するメールアドレスがあり、かつユーザ登録が「あり」であるので、メール送信者は予め登録されたユーザ名がUserAのユーザであると判断する。なお、このステップS11は、登録ユーザ判定部202の機能と対応する処理である。
ここで、CPU220は、ステップS11でNoの場合、ジョブの登録を要求してきたメールの送信者にジョブを登録する権限がないと判断して処理を終了するが、Yesの場合、次に受信したメールの本文にURLがあるか否かを判断する(S12)。
ここでのURLは例えば、www.webstorage1.com/test/data1等であり、このシステムの利用者であるメールの送信者が印刷を行いたい対象ファイルの取得先アドレスを示すものである。なお、このステップS12は、解析部203の機能と対応する処理である。
次に、CPU220は、ステップS12でNoの場合、登録すべきジョブがないと判断して処理を終了するが、Yesの場合、発見したURLにアクセスして(S13)、当該URLのファイル取得に認証が必要か否かを判断する(S14)。ファイルにアクセスしようとする場合、まずそのリクエストはホスト(オンラインストレージ500)に届くので、ファイルへのアクセスに認証が必要な場合、ホストが認証を要求してくることが考えられる(上記例の場合、アドレスがwww.webstorage1.comのホスト)。なお、ステップS14は、URL認証有無判断部204の機能と対応する処理である。
次に、CPU220は、ファイル取得に認証が必要と判断すると(S14のYes方向)、その認証に用いるアクセス用認証情報を取得する(S15)。具体的には、CPU220は、ステップS11で特定したユーザ名と、ステップS12で検出したURLとから、図18に示したアクセス用認証情報テーブルを参照してアクセス用認証情報を取得することができる。例えば、メール送信者のユーザ名がUserAであって、URLがwww.webstorage1.com/test/data1(すなわちホストがwww.webstorage1.com)だった場合には、これらの組み合わせと対応するログイン名「a」及びパスワード「A」をアクセス用認証情報として取得する。このステップS15は、認証情報取得部205の機能と対応する処理である。
次に、CPU220は、ステップS15で取得したアクセス用認証情報をオンラインストレージ500に送信して認証を受け、オンラインストレージ500から、ステップS12で発見したURLが示すファイルを取得する(S16)。
一方、CPU220は、ステップS14で認証不要(No)と判断すると、アクセス用認証情報なしで、ステップS12で発見したURLが示すファイルを取得する(S17)。これらのステップS16及びS17の処理は、データ取得部206の機能と対応する処理である。
また、CPU220は、ステップS16又はS17の後、取得したファイルにジョブIDを付してジョブスプーラ211にスプールすると共に、そのファイルに係る印刷ジョブの情報として、ジョブIDと、ステップS11で特定したユーザ名とを対応付けて印刷ジョブ登録テーブルに登録する(S18)。このステップS18は、ジョブ管理部209の機能と対応する処理である。
次に、CPU220は、受信したメールのTO及びCCに他の(プリントサーバ200のアドレス以外の)メールアドレスが設定されているか否かを判断する(S19)。これは解析部203の機能により行われる。
ここでNoの場合、登録したジョブに共有者を設定する必要がないため、そのまま処理を終了する。この場合、処理結果としては、例えば図15の印刷ジョブ登録テーブルのジョブIDが「001」及び「002」のジョブのように、共有者のない印刷ジョブが、印刷ジョブ登録テーブルに登録される。
一方、ステップS19でYesと判断した場合、CPU220は、ステップS19で発見したアドレスと対応するユーザを、S18で登録した印刷ジョブの共有者として図15に示した印刷ジョブ登録テーブルに登録するとともに、その共有者用にワンタイムパスワードを発行する(S20)。これ以降のステップS20乃至S22の処理は、共有者が複数いれば、各共有者についてそれぞれ行う。
なお、共有者の情報は、ユーザ名により登録するが、このユーザ名は、図17に示したアドレステーブルを検索して該当のメールアドレスと対応するユーザ名を取得することによって特定する(ユーザ登録は「あり」でも「なし」でも構わない)。また、図17に対応するユーザ名がない場合、該当のメールアドレスと対応するゲスト用のユーザ名を新規に作成し、ユーザ登録「なし」のユーザとしてアドレステーブルに登録する。また、印刷ジョブ登録テーブルにおける共有者の登録先は、ステップS18で登録した印刷ジョブの情報のうち共有ユーザ名の項目である。
次に、CPU220は、ステップS20で発行したワンタイムパスワードと発行対象の共有者のユーザ名とを、上記ステップS18で登録した印刷ジョブのジョブIDと対応付けて、図16に示した共有用パスワードテーブルに登録する(S21)
さらに、CPU220は、ステップS20で発行したワンタイムパスワード及び共有者のユーザ名を、発行対象の共有者のメールアドレスへメール通知して(S22)、処理を終了する。
この場合、処理結果としては、例えば図15の印刷ジョブ登録テーブルのジョブIDが「003」及び「004」のジョブのように、共有者のある印刷ジョブが登録される。また、当該印刷ジョブに関するワンタイムパスワードの情報が、図16に示した共有用パスワードテーブルに登録される。さらに、必要に応じて、図17に示したアドレステーブルに、共有者のメールアドレス等が新規に登録される。これらステップS20乃至S22の処理は、共有情報管理部210の機能と対応する処理である。
次に、図3の処理により登録された印刷ジョブに係る印刷をユーザの指示に従ってプリンタ400に実行させる際にプリントサーバ200が行う処理について図4を参照しながら説明する。
図4は、プリントサーバ200がプリンタ400からユーザを認証するためのシステムログイン情報を受信した場合に実行する処理のフローチャートである。なお、図4のフローチャートに示した各処理は、プリントサーバ200のCPU220が所定のプログラムを実行することにより、上述した各部の機能を発揮させて行うものである。プリントサーバ200のCPU220は、プリンタ400からシステムログイン情報(ここではユーザ名とパスワード)を受信した場合に図4に示す処理を開始する。
まず、CPU220は、受信したシステムログイン情報が、図19に示したシステムログイン情報テーブルに登録されている何れかの情報と一致するか否かを判断する(S31)。この処理は、プリンタ400を操作するユーザがプリントサーバ200の利用権限を有するユーザであるか否かを認証する処理に該当し、プリントユーザ認証部207の機能と対応する処理である。
そして、ステップS31でYesであると、CPU220は、印刷ジョブ登録テーブル中で、受信したシステムログイン情報中のユーザ名と対応付けられている全ての印刷ジョブを特定し、その特定した印刷ジョブを示すジョブリストをプリンタ400に送信する(S32)。
例えば、システムログイン情報中のユーザ名として「UserA」を受信した場合、図15の印刷ジョブ登録テーブルを参照してUserAと対応付けられているジョブIDが「001」及び「004」の印刷ジョブを含むジョブリストをプリンタ400に送信する。また、ユーザ名と対応する印刷ジョブには、そのユーザ名が「共有ユーザ名」として登録されている印刷ジョブも含み、「UserC」を受信した場合、ジョブIDが「003」及び「004」の印刷ジョブを含むジョブリストをプリンタ400に送信する。
また、ジョブリストには、ジョブIDの他に、印刷するファイルのファイル名、登録者(ジョブ投入を指示するメールの送信者)、投入時刻(メールの送信時刻)等を含め、ユーザが印刷しようする印刷ジョブを識別できるようにするとよい。
そして、このジョブリストを受信したプリンタ400は、図示しない操作パネルにジョブリストを表示し、ユーザから実行を希望する印刷ジョブの選択を受け付け、その受け付けた印刷ジョブのジョブIDをプリントサーバ200へ送信する。
そして、CPU220は、プリンタ400からジョブIDが送信されると、そのジョブIDを受け付けて、その受け付けたジョブIDが示す印刷ジョブに係る印刷対象のファイルをプリンタ400に送信し(S33)、処理を終了する。送信すべきファイルは、ジョブスプーラ211から、該当のジョブIDと対応してスプールされているファイルを読み出して取得することができる。以上のステップS32及びS33は、データ送信部208の機能と対応する処理である。
一方、ステップS31でNoの場合、CPU220は、受信したシステムログイン情報に含まれるパスワードが図16に示した共有用パスワードテーブルのワンタイムパスワードと一致するか否か判断する(S34)。ワンタイムパスワードは一意なはずであるので、ユーザ名は比較に用いなくてもよいが、確認のため用いてもよい。
ステップS34の処理は、プリンタ400を操作するユーザがプリントサーバ200の利用権限を特定の印刷ジョブについて有するユーザであるか否かを認証する処理に該当し、プリントユーザ認証部207の機能と対応する処理である。
なお、図19のシステムログイン情報テーブルに登録されているユーザであっても、共有者用のワンタイムパスワードが発行されていれば、これを用いてプリントサーバ200へアクセスすることができる。
ステップS34でYesの場合、CPU220は次に、その一致したワンタイムパスワードに対応付けられているジョブIDを共有用パスワードテーブルを参照して特定し、そのジョブIDが示す印刷ジョブに係る印刷対象のファイルをプリンタに送信して(S35)、処理を終了する。
例えばワンタイムパスワードが「ABCDEFG」だった場合は、図16に示した共有用パスワードテーブルから対応するジョブIDが「003」であると特定できるので、ジョブスプーラ211から、そのジョブIDと対応してスプールされているファイルを読み出して送信すればよい。このステップS35は、データ送信部208の機能と対応する処理である。一方、ステップS34でNoの場合、CPU220は、プリンタ400にエラー通知をして(S36)、処理を終了する。
そして、以上の処理において、ステップS33又はS35で送信されたファイルに基づきプリンタ400が印刷を行うことにより、ユーザは、オンラインストレージ500に格納しておいたファイルを印刷した印刷物を入手することができる。
次に、プリントサーバ200へのジョブの投入希望者がプリントサーバ200へメールを送信してから最終的に印刷を実行するまでに図2に示した各装置が行う動作について、図5及び図6を参照しながら説明する。図5は、その動作の一例を示すシーケンス図であり、図6は、図5に続くシーケンス図である。
なお、この図5及び図6のシーケンス図は、利用者端末600から送信するメールの送信者がアドレステーブルにユーザ登録「あり」で登録されているユーザであって、メール本文にURLがあり、ファイル取得に認証が必要な場合であって、かつメールのCCにメールアドレスが設定されている場合の動作を示している。
この場合、ユーザが利用者端末600においてプリントサーバ200のアドレス宛の、ジョブ投入を指示するメールの送信を指示すると、利用者端末600からメールサーバ100にメールが送信され、プリントサーバ200はポーリングによりメールを受信する(S41乃至S43)。なお、図示はしていないが、CCに設定されたメールアドレスへも、同様にメールが送信され、これは最終的に共有者端末700へ届く。従って、共有者は、このメールにより、少なくとも自分を共有者とする何らかの印刷ジョブの投入が試みられたことは認識できる。
そして、メールを受信したプリントサーバ200は、図3のステップS11及びS12の判断を順に行って、メール送信者が予め登録されたユーザであって、かつメール本文にURL有と判断すると(S44)、そのURLに含まれるストレージURLが示すオンラインストレージ500にアクセスする(S45)。
このアクセスを受けたオンラインストレージ500は、指定されたURLへのアクセスには認証が必要であると判断し、その旨の応答を返す(S46)。そして、プリントサーバ200は、その応答を受けると、図3のステップS14によりファイル取得に認証必要と判断し、アクセス用認証情報を取得する(S47)。そして、アクセス用認証情報を用いてURLにアクセスして(S48)、認証を受ける。ステップS48でアクセスされたオンラインストレージ500は、受信したアクセス用認証情報を、予め登録されているユーザの認証情報と比較して認証を実行する(S49)。
この認証が成功すると、プリントサーバ200がアクセスしてきた際のURLが示すファイルを読み出して(S50)、その読み出したファイルをプリントサーバ200へ返す(S51)。そのファイルを受信したプリントサーバ200は、取得したファイルにジョブIDを付してジョブスプーラ211にスプールする(S52)と共に、そのファイルに係る印刷ジョブの情報を印刷ジョブ登録テーブルに登録する(S53)。その後、図3のステップS19乃至S22の処理を順に行って、メールのCCの共有者にワンタイムパスワードを通知する(S54)。
続いて、ステップS41でメールを送信したユーザあるいはステップS54でワンタイムパスワードの通知を受けたユーザが、プリンタ400からシステムログイン情報(ユーザ名とパスワードあるいはワンタイムパスワード)を入力する。これを受け付けたプリンタ400は、入力されたシステムログイン情報をプリントサーバ200へ送信する(S55)。
この例では、ステップS41でのメール送信者が持つ正しいユーザ名とパスワードが入力されたとすると、プリントサーバ200は図4のステップS31の判断により、システムログイン情報が一致と判断して(S56)、該当のユーザ名についてのジョブリストをプリンタ400へ送信する(S57)。このジョブリストを受信したプリンタ400は、図示しない操作パネルにジョブリストを表示し、ユーザから実行を希望する印刷ジョブの選択を受け付け、その受け付けた印刷ジョブのジョブIDを送信する(S58及びS59)。
そして、プリントサーバ200は、受信したジョブIDが示す印刷ジョブに係る印刷対象のファイルをプリンタ400に送信して(S60)、プリンタ400は受信したファイルを印刷する(S61)。
なお、図5及び図6では、ファイル取得に認証が必要な場合を例にとって説明したが、認証が必要ない場合は、図5のステップS45でプリントサーバ200がオンラインストレージ500のURLにアクセスすると、オンラインストレージ500は、そのURLが示すファイルを読み出して、その読み出したファイルをプリントサーバ200へ送信する。その後の動作はステップS52以降と同様である。
また、プリントサーバ200は、ステップS55で受信したシステムログイン情報がワンタイムパスワードと一致した場合、ステップS57乃至S59は飛ばして、そのワンタイムパスワートと対応するジョブに係る印刷対象のファイルをプリンタ400に送信する。この場合でも、プリンタ400側での印刷処理は、ステップS61と同様である。
また、プリントサーバ200は、プリンタ400に送信しようとする印刷対象のファイルが印刷可能な形式ではない場合、レンダリングが必要と判断し、適宜なタイミングにおいてレンダリングサーバ300にレンダリング処理を依頼して印刷可能な形式へと変換した後に送信をするようにするとよい。
レンダリングのタイミングとしては、例えば、印刷ジョブをジョブスプーラ211に登録する際、あるいはプリンタ400にファイルを送信する際が考えられる。また、ファイルが印刷可能な形式か否かは、例えばファイルの拡張子やファイルのデータを解析することにより判断することができる。
以上、図1乃至図6を参照しながら説明したプリントサーバ200においては、プリントサーバ200が、受信したメール本文のURLが示すファイルを取得し、その取得したファイルを印刷ジョブに係る印刷対象ファイルとしてジョブスプーラ211に登録するようにしている。
このことにより、システムの利用者であるメール送信者はメール本文にURLを記載して送信するだけでプリントサーバ200に対して、外部からアクセス可能な任意のストレージに保存したファイルを印刷する印刷ジョブの投入ができる。従って、利用者端末600に印刷対象ファイルを保存しておらず、そのままでは電子メールに添付できない場合でも、ファイルをダウンロード等した後にメールに添付して送信するといったことをしなくて済む。従って、電子メールで印刷ジョブを投入する送信者の手間を低減することができる。
また、プリンタ400に対して印刷対象のファイルを送信する場合、プリンタ400から送信されるシステムログイン情報に基づきプリンタ400のユーザを認証し、そのユーザが実行する権限のあるジョブに係るファイルのみ送信するようにしている。
したがって、プリントサーバ200に投入したジョブを、権限のない他人に勝手に実行されることがない。また、この認証の設定も、プリントサーバ200がジョブ投入を指示するメールの送信者あるいは宛先の情報から自動的に行うので、ユーザの操作負荷にはならない。
また、背景技術の項に記載した特許文献1では、電子メールで投入した印刷ジョブに対するアクセス権を、電子メールの受信者にのみ与えるようにしているため、電子メールに添付したファイルの印刷ジョブを複数人で共有することができないという問題があった。
この点、この発明の一実施形態におけるプリントサーバ200においては、メールの送信先としてTOあるいはCCに記載したアドレスの持ち主(プリントサーバ200は除く)を、投入する印刷ジョブの共有者として設定することができる。また、その共有者用にワンタイムパスワードを発行して、予め登録されていない共有者であっても印刷を行うことができるようにしている。
従って、ジョブの投入者は、容易に他のユーザと印刷ジョブを共有することができる。すなわち、ジョブ投入者のログイン情報を知らないためオンラインストレージ500にアクセスできない他のユーザでも、ジョブ投入者が指定したファイルを印刷出力可能な状態とすることができる。さらに、プリントサーバ200は共有者のメールアドレスを当然に取得できるので、これを用いて共有者へのワンタイムパスワードの通知も容易に行うことができる。
なお、図3のフローチャートでは、ステップS15でアクセス用認証情報を取得するようにしているが、予め該当ユーザの認証情報がアクセス用認証情報テーブルに登録されていない場合は、アクセス用認証情報を取得できない。また、アクセス用認証情報が取得できたとしても、登録ミス等により、S16で認証が成功しない場合も起こり得る。
このような場合は、プリントサーバ200のCPU220は、例えばアクセス用認証情報が取得できずファイル取得できなかった旨、あるいは認証が成功せずにファイル取得できなかった旨をジョブの投入者にメールにより通知して処理を終了するようにするとよい。
また、図3においては、S13及びS14で、メールで指定されたURLに実際にアクセスして、URLのファイル取得に認証が必要か否か判断するようにした。しかし、ステップS12でメール本文にURLがあると判断すると、ステップS13及びS14の処理は行わずに、ステップS15のアクセス用認証情報の取得を行うようにしてもよい。
またこのとき、アクセス用認証情報が取得できれば、その取得したアクセス用認証情報を用いてURLが示すファイルを取得するようにし、アクセス用認証情報が取得できなければアクセス用認証情報なしでURLが示すファイルの取得を試みるようにすればよい。
URLのファイル取得に認証が必要な場合、通常はアクセス用認証情報テーブルにアクセス用認証情報が登録されていると考えられるので、アクセス用認証情報テーブルの登録内容が十分正確であれば、事前にアクセスして確認しなくても、認証が必要な場合には必要なアクセス用認証情報が取得できると考えられるためである。
そして、このようにすれば、一旦オンラインストレージ500にアクセスして認証要否を確認する必要がないため、プリントサーバ200及びオンラインストレージ500の処理負荷を軽減することができる。
また、ステップS13及びS14に代える処理として、アクセス用認証情報テーブルを検索して、メール本文のURLに含まれるURLが登録されているか否かを基準に、認証の要否を判断するようにすることも考えられる。
例えば、アクセス用認証情報テーブルに「www.webstorage1.com」が登録されていれば、このホストにアクセスするためにはアクセス用認証情報が必要(だから登録されている)とわかるため、これを含む「www.webstorage1.com/test/data1」のURL、すなわちこのホスト内のファイルにアクセスするためには、認証が必要と判断できる。そして、認証要と判断した場合には、ステップS15でアクセス用認証情報の取得を行う。
また、S20では、予め登録されているユーザか否かに関わらずCCに設定されているメールアドレスのユーザに対してワンタイムパスワードを発行するようにしたが、CCに設定されているメールアドレスが予め登録されているユーザのものである場合(例えば、図15の印刷ジョブ登録テーブルのジョブIDが「004」のジョブにおけるUserCなどの場合)は、ワンタイムパスワードを発行しなくてもよい。UserCは自身のシステムログイン情報をプリンタ400に入力すれば、ジョブIDが「004」のジョブを含むジョブリストを参照して、印刷を指示できるからである。
逆に、ジョブの投入者に対しても、共有者と同様にワンタイムパスワードを発行することも妨げられない。このことにより、ワンタイムパスワードの通知により、ジョブの投入完了通知を兼ねることができるし、処理を共通化することもできる。また、発行するワンタイムパスワードは共有者毎に異なるものとしたが、これに代えて1つの印刷ジョブにつき共有者用の1つの共有パスワードを発行してもよい。
また、図4のS32では、ジョブリストをプリンタ400に送信するようにしたが、これに代えて、ジョブリストに含まれるジョブIDが示す印刷ジョブに係る印刷対象ファイルを全てプリンタ400に送信して、全てのファイルを一度に印刷させてもよい。
また、図3のステップS18の後に、プリントサーバ200が、ジョブの投入者に、ジョブの投入結果をメールで通知するようにしてもよい。このようにすれば、ジョブの投入者は、プリンタ400を操作しなくても、利用者端末600のみで、ジョブ投入の成否を把握することができる。
また、図4のS35の後に、プリントサーバ200が、プリンタ400にファイル送信した旨をジョブの投入者にメールで通知するようにしてもよい。この際、共有者の指示によりファイルを送信した場合には、ワンタイムパスワードから特定した共有者のユーザ名もあわせて通知するように指示するとよい。また、プリントサーバ200が、定期的に又はジョブ投入者からの要求に応じて、印刷ジョブの各共有者へファイルの送信(印刷)を既に行ったか否かを示す情報をジョブ投入者へ通知するようにしてもよい。
これらにより、メール送信者は自身以外の共有者が印刷ジョブのファイルを印刷したことを知ることができ、印刷実行状況を知ることができる。また、共有者の誰が印刷済みで誰が印刷していないということも把握することができる。
〔第1変形例:図7乃至10〕
次に、上述した第1の実施形態の第1変形例について説明する。
この変形例でも、使用するハードウェアは、上述の実施形態で図1及び図2を用いて説明したものと同様である。また、図16乃至図19に示したテーブルも、上述の実施形態で説明したものと同様である。そこで、これら以外の相違点を中心に説明する。
上述した実施形態では、図3に示したように、プリントサーバ200がジョブの投入を指示するメールを受信すると、これに応じて直ちにファイルを取得して印刷ジョブを登録するようにしていた。しかし、印刷ジョブを投入したものの実際は印刷対象のファイルをすぐには印刷しない場合がある。この場合、プリントサーバ200は、実際は印刷しないファイルも取得して長期間保持しておくことになり、記憶容量やセキュリティの面で好ましくない。そこで、この第1変形例では、プリントサーバ200が、プリンタ400から印刷の要求をされたタイミングで印刷対象のファイルを取得するようにしている。
図7は、第1の変形例においてプリントサーバ200がメールを受信した場合に実行する、図3と対応する処理のフローチャートである。なお、この図7の処理においては、メールの受信に応じてファイル取得を行わずに、印刷要求時のファイル取得に備えてURLを保持しておく点が図3と異なるので、この点に関連する処理を中心に説明する。
図7の処理において、ステップS111及びS112は、それぞれ図3のステップS11とS12と同じである。そして、ステップS112でYesの場合、すなわち、受信したメールの送信者が予め登録されたユーザであり、かつメールの本文にURLの記載がある場合、ステップS113に進む。
そして、ステップS111で特定したユーザ名と、ステップS112で発見したURLとを対応付けたジョブ情報を作成し、ジョブIDを付与して図20に示す印刷ジョブ情報テーブルに登録する(S113)。図20は印刷ジョブ登録テーブルの他の例の構成図である。図20の印刷ジョブ登録テーブルは、上述の実施形態で図15に示したものと対応するテーブルである。
次にCPU220は、受信したメールのTO及びCCに他の(プリントサーバ200のアドレス以外の)メールアドレスが設定されているか否かを判断し(S114)、設定されているか否かに応じて、そのまま処理を終了する(No)か、又はステップS115以下に進む(Yes)。
Yesの場合、ステップS114で発見したアドレスと対応するユーザを、S113で登録した印刷ジョブの共有者として図20に示した印刷ジョブ登録テーブルに登録するとともに、その共有者用にワンタイムパスワードを発行する(S115)。その後、発行したワンタイムパスワードと発行対象の共有者のユーザ名とを、ステップS113で登録したジョブのジョブIDと対応付けて、図16に示した共有用パスワードテーブルに登録する(S116)。その後、ステップS115で発行したワンタイムパスワード及び共有者のユーザ名を、発行対象の共有者のメールアドレスへメール通知して(S117)処理を終了する。これらのステップS114乃至S117の処理は、図3のステップS19乃至S22の処理と同様である。
以上の図7の処理の場合、図3の処理においてジョブスプーラ211に印刷対象のファイルをスプールすることに代えて、印刷ジョブ登録テーブルに印刷対象ファイルの取得先URLを格納しておくことになる。
次に、図7の処理により登録された印刷ジョブに係る印刷をユーザの指示に従ってプリンタ400に実行させる際にプリントサーバ200が行う処理について図8を参照しながら説明する。図8は、その処理を示すフローチャートである。
なお、この図8の処理が図4と異なる点は、印刷対象のファイルをプリンタ400に送信する直前にオンラインストレージ500から取得する点であるので、この点に関連する処理を中心に説明する。プリントサーバ200のCPU220は、プリンタ400からシステムログイン情報(ここではユーザ名とパスワード)を受信した場合に図8に示す処理を開始する。
そしてまず、受信したシステムログイン情報が、図19に示したシステムログイン情報テーブルに登録されている何れかの情報と一致していれば(S121でYes)、該当するユーザ名と対応する印刷ジョブを示すジョブリストをプリンタ400に送信する(S122)。これらの処理は、図4のステップS31及びS32と同様である。
次に、CPU220は、プリンタ400から送信される、ユーザがジョブリスト中から選択した印刷ジョブのジョブIDを受け付け、そのジョブIDと対応するURLを、図20に示した印刷ジョブ登録テーブルから取得する(S123)。このURLが、選択された印刷ジョブに係る印刷対象のファイルの取得先を示すアドレスである。
図20の例では、ユーザ名が「UserA」のユーザがジョブIDが「004」のジョブの実行を選択したとすると、URLとして「www.webstorage1.com/test/data1」を取得することになる。
このURLが取得できると、CPU220は、図3のステップS13乃至S17と同様な処理により、必要に応じて図18に示したアクセス用認証情報テーブルに登録されている認証情報を用い、そのURLで示されるファイルを取得する(S127〜S131)。その後、取得したファイルをプリンタ400に送信して(S132)、処理を終了する。
一方、S121でNoの場合、図4のステップS34と同様にワンタイムパスワードの照合を行う(S124)。一致すれば、そのワンタイムパスワードに対応付けられているジョブIDを図16に示した共有用パスワードテーブルから特定し、そのジョブIDと対応するURLを、図20に示した印刷ジョブ登録テーブルから取得する。
例えば、システムログイン情報のうちパスワードとして「abcdefg」を受信していた場合は、共有用パスワードテーブルを参照してジョブID「004」を特定し、次に印刷ジョブ登録テーブルを参照してジョブIDが「004」のジョブについてのURL「www.webstorage1.com/test/data1」を特定する。
この場合も、上述の場合と同様に、取得したURLで示されるファイルを取得して、プリンタ400に送信する(S127〜S132)。ステップS124でNoの場合、図4のステップS36の場合と同様に、プリンタ400にエラー通知をして(S126)処理を終了する。
次に、第1変形例において、プリントサーバ200へのジョブの投入希望者がプリントサーバ200へメールを送信してから最終的に印刷を実行するまでに各装置間が行う動作について、図9及び図10を参照しながら説明する。図9はその通信シーケンスの一例を示すシーケンス図であり、図10は図9に続くシーケンス図である。
なお、これらの図9及び図10のシーケンス図は、利用者端末600から送信するメールの送信者がアドレステーブルにユーザ登録「あり」で登録されているユーザであって、メール本文にURLがあり、ファイル取得に認証が必要な場合であって、かつメールのCCにメールアドレスが設定されている場合の動作を示している。また、図9及び図10のシーケンス図のうち、図5又は図6と共通する部分については説明を簡単にするか省略する。
図9の動作においても、図5の場合と同様、最初に、ユーザが利用者端末600からプリントサーバ200のアドレス宛の、ジョブ投入を指示するメールを送信し、プリントサーバ200がこれを受信する(S161乃至S163)。そして、プリントサーバ200は、図7のステップS111及びS112の判断を順に行って、メール送信者が予め登録されたユーザであって、かつメール本文にURL有と判断すると、そのURLとメール送信者を対応付けた印刷ジョブの情報を登録する(S164)。その後、図7のステップS115乃至S117の処理を順に行って、メールのCCの共有者にワンタイムパスワードを通知する(S165)。
続いて、ステップS161でメールを送信したユーザあるいはステップS165でワンタイムパスワードの通知を受けたユーザが、プリンタ400からシステムログイン情報を入力する。これを受け付けたプリンタ400は、入力されたシステムログイン情報をプリントサーバ200へ送信する(S166)。その後、図6のステップS56乃至S59と同様な手順を経て、プリンタ400は、ユーザが実行を希望する印刷ジョブのジョブIDをプリントサーバ200へ送信する(S167乃至S170)。
これに応じて、プリントサーバ200は受信したジョブIDが示す印刷ジョブに係る印刷実行用のファイルを送信すべく、そのファイルを取得するための処理(S171乃至S178)を行う。この処理は、プリントサーバ200がアクセスするURLが、ステップS170で受信したジョブIDをキーに印刷ジョブ登録テーブルから取得したURLである(S171)点が異なる以外は、図5のステップS45乃至S51と同様である。
そして、プリントサーバ200は、ステップS178でオンラインストレージ500から取得したファイルを、プリンタ400に送信して(S179)、プリンタ400は受信したファイルを印刷する(S180)。
以上、図7乃至図10に示した第1の変形例の処理においては、プリントサーバ200は、ジョブの投入を指示するメールを受信した段階では、図20に示したように、印刷対象のファイルの取得先として指定されたURLを、印刷ジョブの情報の一部として保存しておき、ファイルの取得自体は行わない。そして、プリンタ400に印刷対象のファイルを送信すべきと判断した場合にファイル取得を行うようにしている。
このことにより、メール送信者が実際にはしばらく印刷を行わないファイルをジョブスプーラ211に予めスプールしておくことがなくなるので、プリントサーバ200における記憶手段の容量を節約することができる。また、プリントサーバ200への不正アクセス等によりファイルが取得されてしまうような事態も防止することができる。
〔第2変形例:図11乃至図14〕
次に、上述した実施形態の第2変形例について説明する。
第2の変形例は、投入される印刷ジョブに共有者がいる場合に、可能であれば、印刷対象のファイルを、オンラインストレージ500の、その共有者がアクセス可能な領域に保存する点が、第1の変形例と異なる。そこで、第2の変形例は、第1の変形例との相違点を中心に説明する。なお、使用するハードウェアは、上述の実施形態で図1及び図2を用いて説明したものと同様であり、図16乃至図19に示したテーブルも、上述の実施形態で説明したものと同様である。
まず、図11は、第2の変形例においてプリントサーバ200がメールを受信した場合に実行する、図3及び図7と対応する処理のフローチャートである。図11は、プリントサーバ200がメールを受信した場合に実行する第2変形例に係る処理のフローチャートであり、図12は、図11の続きのフローチャートである。
図11の処理において、ステップS211乃至S214は、図7のステップS111乃至S114と同じであり、ステップS214でYesの場合、すなわち新たに登録する印刷ジョブに共有者を設定する場合に行うステップS215以下の処理が、図7と異なる。
この処理においてはまず、CPU220は、ステップS214で発見したメールアドレスのユーザがユーザ登録「あり」であるか否か判断する(S215)。この判断は、図17に示したアドレステーブルを参照して行うことができる。そして、あり(Yes)であれば、そのユーザについてアクセス用認証情報テーブルにアクセス用認証情報の登録があるか否か判断する(S216)。
ここでもYesであれば、共有者はオンラインストレージ500を利用しており、プリントサーバ200がそのアカウントにアクセス可能であることがわかる。そこで、印刷対象のファイルを共有者のアカウントで利用できる領域に保存すべく、まずジョブ投入者のアクセス用認証情報を用いて印刷対象のファイルを取得する。すなわち、図3のステップS13乃至S17と同様な処理を行う(図12のS217〜S221)。
そして、次にステップS216で発見した共有者のアクセス用認証情報及び対応するURLを用いてオンラインストレージ500にアクセスし、適当な位置に、ステップS220又はS221で取得した印刷対象のファイルを保存して、その保存場所を示すURLを取得する(S222)。このとき、フォルダ名やファイル名はCPU220が所定の規則に従って自動的に定める。また、ステップS216で複数のオンラインストレージについてアクセス用認証情報を発見した場合、その中から任意のオンラインストレージを選択して保存すればよい。
その後、CPU220は、共有者のユーザ名と、ステップS222で取得した保存先のURLとを対応付けたジョブ情報を作成し、ジョブIDを付与して印刷ジョブ登録テーブルに登録する(S223)。その後、利用可能な印刷ジョブが登録された旨を、該当の共有者のメールアドレスへメールにより通知して(S224)、処理を終了する。
一方、ステップS215又はS216でNoの場合、プリントサーバ200は、該当の共有者のアカウントでオンラインストレージ500にアクセスできないことがわかる。そこで、第1変形例の場合と同様、印刷を実行する場合にはジョブ投入者のアカウントでオンラインストレージ500にアクセスして印刷対象のファイルを取得することとする。そして、図7のステップS115乃至S117の場合と同様、該当の共有者に対するワンタイムパスワードの発行及び通知と、共有者の情報の登録を行う(S225〜S227)。
ここで、図20に示したジョブIDが「004」のジョブと同じジョブについて図11及び図12の処理を行うと、印刷ジョブ登録テーブルの内容は、図21に示すようになる。図21は印刷ジョブ登録テーブルの他の例の構成図である。
すなわち、図21において、ジョブIDが「004」のジョブと「005」のジョブは、1通のメールにより投入を指示されたジョブであり、印刷対象のファイルは共通する。そして、メールにおいて、UserBとGuestDのユーザが共有者に設定されていた。しかし、UserBについては、アクセス用認証情報テーブルにアクセス用認証情報が登録されていたため、印刷対象のファイルをUserBのアカウントに保存し直し、その結果保存先のURLがUserA用のファイルと違うものになったため、新たにジョブIDが「005」のジョブのデータを作成して登録したものである。またこのため、UserBは、ジョブIDが「004」のジョブには、共有者として登録されない。
また、第2変形例においてプリントサーバ200のCPU220がプリンタ400からシステムログイン情報を受信した場合に実行する処理は、第1変形例で図8を用いて説明した処理と同じでよい。
図21の印刷ジョブ登録テーブルの例で言えば、ジョブの投入者であるユーザ名が「UserA」のユーザも、ジョブの共有者であるユーザ名が「UserB」のユーザも、自身のシステムログイン情報でプリントサーバ200に認証を受ければ、自身が実行可能なジョブのリストを取得することができる。
そして、UserAの場合にはジョブID「004」が、UserBの場合にはジョブID「005」がそのリストに載ることになり、そのIDを指定すれば、印刷ジョブ登録テーブル及びアクセス用認証情報テーブルの情報に従い、プリントサーバ200がオンラインストレージ500から印刷対象のファイルを取得できる。
この場合に用いるアクセス用認証情報及びURLは、前者の場合にはUserAのもので、後者の場合にはUserBのものだが、ユーザがこの点を意識する必要はない。いずれの場合も、プリンタ400に送信される印刷対象のファイルは同じものだから、印刷結果も同じものである。
次に、第2変形例において、プリントサーバ200へのジョブの投入希望者がプリントサーバ200へメールを送信してからジョブの情報が登録されるまでに各装置間が行う動作について、図13及び図14を参照しながら説明する。図13はその通信シーケンスの一例を示すシーケンス図であり、図14は図13に続くシーケンス図である。
なお、この図13及び図14のシーケンス図は、利用者端末600から送信するメールの送信者がアドレステーブルにユーザ登録「あり」で登録されているユーザであって、メール本文にURLがあり、ファイル取得に認証が必要な場合であって、かつメールのCCにメールアドレスが設定されていて、そのユーザのアクセス用認証情報がアクセス用認証情報テーブルに登録されている場合の動作を示している。プリンタ400がシステムログイン情報をプリントサーバ200へ送信した後の、印刷実行時の動作については、第1変形例と共通であるので図示及び説明を省略する。
図13の動作においても、図5及び図9の場合と同様、最初に、ユーザが利用者端末600からプリントサーバ200のアドレス宛の、ジョブ投入を指示するメールを送信し、プリントサーバ200がこれを受信する(S261乃至S263)。そして、プリントサーバ200は、図11のステップS211及びS212の判断を順に行って、メール送信者が予め登録されたユーザであって、かつメール本文にURL有と判断すると、そのURLとメール送信者を対応付けた印刷ジョブの情報を登録する(S264)。
次に、プリントサーバ200は、図11のステップS215及びS216により、共有者のオンラインストレージ用のアクセス用認証情報がアクセス用認証情報テーブルに登録されていると判断する(S265)。
その後、プリントサーバ200は、ジョブ投入を指示するメールの本文に記載されたURLからファイルを取得するための処理を行ってファイルを取得する(S266乃至S272)。これらの処理は、図5のステップS45乃至S51と共通である。
そして、プリントサーバ200は取得したファイルをオンラインストレージ500の共有者のアカウントで利用できる領域に格納すべく、アクセス用認証情報テーブルから共有者のアクセス用認証情報及びアクセス先のストレージURLを取得する(S273)。
その後、プリントサーバ200は、ステップS273で取得したストレージURLのオンラインストレージ500に、同じく取得したアクセス用認証情報を用いてアクセスする(S274)。そして、オンラインストレージ500が受信したアクセス用認証情報を用いて認証処理を行い(S275)、認証OKの応答を返してくると(S276)、プリントサーバ200は、ステップS272で取得したファイルをオンラインストレージ500に送信して保存を要求する(S277)。オンラインストレージ500はこの要求に応じてファイルを保存し(S278)、保存先URLを返す(S279)。
これを取得したプリントサーバ200は、保存先URLに基づき、図12のステップS223の処理により、共有者用のジョブ情報を生成し、印刷ジョブ登録テーブルに登録する(S280)。以降の、プリンタ400がシステムログイン情報をプリントサーバ200へ送信した後の、印刷実行時の動作については、第1変形例と共通であるので図示及び説明を省略する。
以上、図11乃至図14を参照しながら説明した第2変形例においては、プリントサーバ200は、メールで指示されたジョブを登録する際に、ジョブの共有者となるユーザのアカウントでオンラインストレージ500にアクセス可能な状況であれば、印刷対象のファイルを、ジョブの共有者となるオンラインストレージ500の、共有者のアカウントで利用可能な領域に保存する。そして、ジョブ自体も、その共有者のジョブとして登録する。
このようにしたことにより、第1変形例の効果に加え、共有者がジョブに係る印刷を実行する前に、ジョブの投入者が印刷対象のファイルを移動したり変更したりしてしまった場合でも、共有者は、投入時の状態でジョブを実行することができる。逆に言えば、ジョブの投入者は、共有者のジョブ実行状況を気にすることなく、投入したジョブに係る印刷
対象のファイルを編集することができる。
また、何らかの理由でプリントサーバ200がジョブの投入者のアカウントでオンラインストレージ500にアクセスできなくなった場合(アカウントが無効になった場合や、プリントサーバ200に通知せずにオンラインストレージ500にアクセスするためのアクセス用認証情報が更新された場合)でも、共有者は、その影響を受けることなくジョブを実行することができる。さらに、ジョブの投入者が共有者へ印刷対象のファイルそのものを配布したい場合、印刷ジョブの投入指示を行うだけで、その配布も行うことができるという効果もある。
以上で第1の実施形態の説明を終了するが、図2に示したシステム及びプリントサーバ200の具体的な構成や、各装置が行う具体的な処理の内容等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、認証サーバを設け、図2の構成においてプリントサーバ200に設けていた機能のうち、認証に係る機能をその認証サーバが担うようにすることが考えられる。この場合、図17に示したアドレステーブル、図18に示したアクセス用認証情報テーブル及び図19に示したシステムログイン情報テーブルは、認証サーバに記憶させておくとよい。そして、プリントサーバ200がこれらのテーブルの内容を参照する処理を行う場合、認証サーバにその処理を要求し、認証サーバから処理結果を取得するようにするとよい。
また、メールサーバ100は、メールボックス103に新着メールが保存されると、プリントサーバ200に通知するようにしてもよい。この場合、プリントサーバ200はこの通知を受けると、これに応じてメール取得部201によりメール受信要求を行うとよい。これにより、ポーリングよりも効率よくメール受信を行うことができる。
また、プリントサーバ200がメールを受信した場合に実行する上述した図3、図7及び図11の処理では、S11でメールの送信者が予め登録されたユーザでない場合は(S11のNo方向)、処理を終了するようにしているが、プリントサーバ200がメール送信者のアドレスに対して、予め登録されたユーザでない旨をメール通知するようにメールサーバ100に指示をして処理を終了するようにしてもよい。これにより、通知を受けたメール送信者は自身がこのシステムを利用できないことを認識することができる。
また、S12でメール本文にURLがない場合は(S12のNo方向)、処理を終了するようにしているが、プリントサーバ200がメール送信者のアドレスに対して、URLがメール本文にない旨メール通知するようにメールサーバ100に指示をして処理を終了するようにしてもよい。これにより、メール送信者に対してURLの記載を促すことができる。
また、プリントサーバ200のCPU220は、プリンタ400に印刷ジョブのファイルを送信する場合に(図4のS33、S35及び図8のS132)、このファイルとともに、このファイルに基づいて印刷を行う際に使用させる設定情報を送信するようにしてもよい。この設定情報は、例えば印刷属性であり集約印刷や両面印刷等が考えられる。なお、この印刷属性の設定としては、例えばデフォルトの印刷属性をシステムに予め登録されているユーザ毎に設定しておくことが考えられる。
あるいはメール送信者がメール本文で印刷属性を設定しておき、その印刷属性をプリントサーバ200が解析して、ファイル送信時に適用したりすることが考えられる。このことにより、ユーザの所望する印刷属性をメール送信時に設定することができる。
また、プリンタ400の図示しない操作パネルで印刷属性を設定できるようなユーザインターフェース(UI)を提供し、プリンタ400は受信したファイルをそのUIで指定された印刷属性に基づいて印刷してもよい。このことにより、メール送信者だけでなく共有者も印刷時に印刷属性を変更することができる。
また、操作パネルで印刷属性を設定する場合に、その設定した印刷属性をプリントサーバ200に送信するようにして、プリントサーバ200が受信した印刷属性を印刷ジョブに設定するようにしてもよい。また、上述の実施形態では、プリントサーバ200が、受信したメールのFromのメールアドレスをメール送信者の情報として取得するようにしたが、例えばメール本文に記載されたメール送信者のユーザ名をメール送信者の情報として取得するようにしてもよい。
また、上述の実施形態では、プリントサーバ200はプリンタ400にファイルを送信して、そのプリンタ400は受信したファイルに基づき用紙に印刷を行うようにした。しかし、送信先はプリンタ400には限られないし、送信するファイルを印刷以外の用途に用いてもよい。
例えば、プリントサーバ200が、データ処理装置にファイルを転送してもよい。データ処理装置としては、例えばPC、PDA(Personal Digital Assistant)、タブレット端末、スマートフォン、プロジェクタ、電子ペーパー装置等が考えられる。これらの場合、送信先装置におけるプリントサーバ200から送信されたファイルの用途として、例えば「表示」が考えられるが、他の処理でも構わない。
また、この発明によるプログラムは、コンピュータを、上述したプリントサーバ200として機能させるためのプログラムである。このようなプログラムは、はじめからコンピュータに備えるROM230あるいはHDD260等の記憶手段に格納しておいてもよいが、記録媒体であるCD−ROMあるいはフレキシブルディスク、SRAM、EEPROM、メモリカード等の不揮発性記録媒体(メモリ)に記録して提供することもできる。そのメモリに記録されたプログラムをコンピュータにインストールしてCPU220に実行させるか、CPU220にそのメモリからこのプログラムを読み出して実行させることにより、プリントサーバ200の各機能を実行させることができる。
また、プリントサーバ200の各機能は、1台のプリントサーバが全て備える例について説明したが、ネットワークを介して通信可能な複数の機器により構成されるデータ送信システムにおいて、その複数の機器に分散してそれらの機能が設けられていたり、複数の機器が協働してそれらの機能を実現したりするようにしてもよい。
また、この発明の実施形態において、利用者端末600は共有ジョブの指定に際して電子メールを利用してきたが、他の方法であっても構わない。例えば、直接プリントサーバに自身のユーザ情報と、取得する電子データ(ファイル等)の取得先情報(URL等)と、共有者のユーザ情報とを送信しても構わない。
従って、ユーザのメールアドレスやユーザ(共有者端末)に通知されるワンタイムパスワードはユーザ情報の一例であり、ユーザあるいは複数ユーザから成るグループを特定できるようなユーザ情報であれば、ユーザID、ユーザ名、部門コード、役職情報、ユーザが利用する携帯端末の機器IDや電話番号等といった情報であっても構わない。また、ユーザ情報の少なくとも一部を認証情報として用い、認証情報記憶部に記憶することができる。
上述の記載から理解できるが、この発明は、ストレージサービス等の外部HDD(外部のデータ管理装置)に保持されている電子データを用いた印刷や表示等の出力を、出力機能を備えるデータ出力装置で実行するような利用形態において適用できる。また、電子データが第1の条件情報(アクセス用認証情報等)により管理されており、電子データを利用(取得)するために第1の条件情報を要するような外部のデータ管理装置とネットワークを介して通信可能に接続するネットワークシステムにおいて適用できる。
そしてこの発明により、特定のユーザが電子データを用いた出力をデータ出力装置で実行するときに、その特定のユーザが第1の条件情報を知らなかったとしても、特定のユーザが電子データを取得するためのユーザ情報(ユーザ名やワンタイムパスワード等)を入力することで電子データを用いた出力を選択でき、出力を実行する事が可能となる。
具体的な処理としてまとめると、この発明の情報処理装置は、第1のユーザのユーザ情報(一例として送信元アドレス)と電子データの取得先情報と第2のユーザのユーザ情報(一例として送信先アドレス)とを受信し、第1のユーザのユーザ情報及び第1の条件情報(一例としてアクセス用認証情報)を保持する保持手段から第1のユーザのユーザ情報を用いて第1の条件情報を取得し、第1の条件情報を用いてデータ管理装置から取得先情報に基づく電子データを取得し、第2のユーザのユーザ情報(一例としてシステムログイン情報だが上記送信先アドレスとすることも考えられる)をデータ処理装置から受信し、受信した第2のユーザのユーザ情報により、取得した前記電子データをデータ出力装置に送信する。
第1のユーザのユーザ情報と共に受信する第2のユーザのユーザ情報と、データ出力装置から受信すべき第2のユーザのユーザ情報とを異なる情報とする場合には、それらのユーザ情報の対応関係を管理する管理手段を設ける。後者のユーザ情報は、例えば情報処理装置が生成するワンタイムパスワードである。
なお、電子データを用いた出力とは、情報処理装置がデータ管理装置から取得した電子データをそのままデータ出力装置に送信し、データ出力装置において出力する場合や、情報処理装置がデータ管理装置から取得した電子データに適切なデータ処理(レンダリング等)を施した上でデータ出力装置に送信し、データ出力装置において出力する場合等を含んでいる。つまり、ここで言うデータ出力装置に送信する電子データとは、データ管理装置から取得した電子データおよびデータ管理装置から取得した電子データにデータ処理を施した電子データを含んでいる。
また、以上述べてきた構成及び変形例は、矛盾しない範囲で適宜組み合わせて適用することも可能である。
[第2の実施形態]
第1の実施形態の図2に示したプリントシステムは、図22に示すような構成とすることもできる。
<システム構成>
図22は第2の実施形態に係るシステムの一例の構成図である。図2のシステム1000は、例えばオフィス内ネットワーク等のネットワークN1と、クラウドサービスに代表されるようなサービス提供システムのネットワークN2と、インターネットなどのネットワークN3とを有する。
ネットワークN1は、ファイアウォールFWの内側にあるプライベートなネットワークである。ファイアウォールFWはネットワークN1とネットワークN3との接点に設置され、不正なアクセスを検出及び遮断する。ネットワークN1にはクライアント端末1011、携帯端末1012、複合機などの画像形成装置1013が接続されている。
クライアント端末1011は端末装置の一例である。クライアント端末1011は一般的なOSなどが搭載された情報処理装置(コンピュータシステム)によって実現できる。クライアント端末1011は無線による通信の手段または有線による通信の手段を有する。クライアント端末1011は、タブレットPC、ノートPCなど、ユーザが操作可能な端末である。
携帯端末1012は端末装置の一例である。携帯端末1012は、無線による通信の手段または有線による通信の手段を有している。携帯端末1012は、スマートフォンや携帯電話、タブレットPC、ノートPCなど、ユーザが携帯可能な端末である。
画像形成装置1013は複合機などの画像形成機能を有する装置である。画像形成装置1013は無線による通信の手段または有線による通信の手段を有する。画像形成装置1013は複合機、コピー機、スキャナ、プリンタ、レーザプリンタ、プロジェクタ、電子黒板など、画像形成に係る処理を行う装置である。図22では、一例としてクライアント端末1011、携帯端末1012、画像形成装置1013がそれぞれ一台である例を示しているが複数台であってもよい。
なお、クライアント端末1011、携帯1012は第1の実施形態の利用者端末600及び共有者端末700に対応する。画像形成装置1013は第1の実施形態のプリンタ400に対応する。
ネットワークN2はアクセス制御装置1021によってネットワークN3に接続されている。ネットワークN2はアクセス制御装置1021によってセキュリティが保護されている。ネットワークN2にはプリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024が接続されている。
図22のシステム1000は、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024がサービス提供システムを実現している。なお、サービス提供システムは第1の実施形態のプリントサーバ200及びレンダリングサーバ300に対応する。
アクセス制御装置1021はプリントサービス提供装置1022が提供するプリントサービスやスキャンサービス提供装置1023が提供するスキャンサービスなどへのログインを制御する。
アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は、一台以上の情報処理装置によって実現される。アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は一台の情報処理装置に統合して実現してもよいし、複数の情報処理装置に分散して実現してもよい。
ネットワークN3にはオンラインストレージ1031、メールサーバ1032が接続されている。オンラインストレージ1031は第1の実施形態のオンラインストレージ500に対応する。また、メールサーバ1032は第1の実施形態のメールサーバ100に対応する。
ネットワークN2側のサービスの一部はネットワークN2以外にあってもよい。携帯端末1012は、オフィス内ネットワーク等のネットワークN1以外にあってもよい。図22のシステム1000では携帯端末1012がネットワークN1と、ネットワークN3とにある例を示している。また、図22のシステム1000ではオンラインストレージ1031が1つの例を示しているが複数であってもよい。
<ハードウェア構成>
クライアント端末1011、携帯端末1012、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は、例えば図23に示すハードウェア構成のコンピュータシステムにより実現される。
図23は第2の実施形態に係るコンピュータシステムの一例のハードウェア構成図である。図23に示したコンピュータシステム1500は、入力装置1501、表示装置1502、外部I/F1503、RAM(Random Access Memory)1504、ROM(Read Only Memory)1505、CPU(Central Processing Unit)1506、通信I/F1507、及びHDD(Hard Disk Drive)1508などを備え、それぞれがバスBで相互に接続されている。
入力装置1501はキーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置1502はディスプレイなどを含み、コンピュータシステム1500による処理結果を表示する。
通信I/F1507はコンピュータシステム1500をネットワークN1〜N3に接続するインタフェースである。これにより、コンピュータシステム1500は通信I/F1507を介してデータ通信を行うことができる。
HDD1508はプログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、例えばコンピュータシステム1500全体を制御する基本ソフトウェアであるOS(Operating System)や、OS上において各種機能を提供するアプリケーションソフトウェアなどがある。
HDD1508は格納しているプログラムやデータを所定のファイルシステム及び/又はDB(データベース)により管理している。外部I/F1503は、外部装置とのインタフェースである。外部装置には、記録媒体1503aなどがある。これにより、コンピュータシステム1500は外部I/F1503を介して記録媒体1503aの読み取り及び/又は書き込みを行うことができる。記録媒体1503aにはフレキシブルディスク、CD(Compact Disk)、DVD(Digital Versatile Disk)、SDメモリカード(SD Memory card)、USBメモリ(Universal Serial Bus memory)などがある。
ROM1505は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM1505には、コンピュータシステム1500の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定などのプログラムやデータが格納されている。RAM1504は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
CPU1506は、ROM1505やHDD1508などの記憶装置からプログラムやデータをRAM1504上に読み出し、処理を実行することで、コンピュータシステム1500全体の制御や機能を実現する演算装置である。
クライアント端末1011、携帯端末1012、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、他サービス提供装置1024は、コンピュータシステム1500のハードウェア構成により、後述するような各種処理を実現できる。
<ソフトウェア構成>
《サービス提供システム》
第2の実施形態に係るサービス提供システムは例えば図24に示す処理ブロックにより実現される。図24は第2の実施形態に係るサービス提供システムの一例の処理ブロック図である。
図24のサービス提供システム1100は、プログラムを実行することにより、サービスアプリ1101、プラットフォーム1102、管理データ記憶部1103及びプラットフォームAPI(Application Programming Interface)1104を実現している。
サービスアプリ1101は、プリントサービスアプリ1111、スキャンサービスアプリ1112、1つ以上のその他のサービスアプリ1113を一例として有する。プリントサービスアプリ1111はプリントサービスを提供するアプリケーションである。スキャンサービスアプリ1112はスキャンサービスを提供するアプリケーションである。その他のサービスアプリ1113は何らかのサービスを提供するアプリケーションである。
プラットフォームAPI1104はプリントサービスアプリ1111、スキャンサービスアプリ1112、その他のサービスアプリ1113などのサービスアプリ1101が、プラットフォーム1102を利用するためのインタフェースである。プラットフォームAPI1104はサービスアプリ1101からの要求をプラットフォーム1102が受信するために設けられた予め定義されたインタフェースであり、例えば関数やクラス等により構成される。なお、サービス提供システム1100を複数の情報処理装置に分散して構成する場合、プラットフォームAPI1104にはネットワーク経由で利用可能な例えばWeb APIを利用できる。
プラットフォーム1102は、認証処理部1121、機器通信部1122、メール取得部1123、セッション管理部1124、データ処理部1125を有する。データ処理部1125は、データ取得部1131、アップロード処理部1132、データ形式変換部1133を有する。
認証処理部1121は第1の実施形態の認証情報取得部205、プリントユーザ認証部207に対応する。認証処理部1121はクライアント端末1011や画像形成装置1013などのオフィス機器からのログイン要求に基づいて認証を実行する。なお、オフィス機器はクライアント端末1110、携帯端末1012、画像形成装置1013などの総称である。認証処理部1121は例えば後述するユーザ管理情報記憶部1142にアクセスして、オンラインストレージ1031のログイン情報を取得する。また、認証処理部1121は画像形成装置1013のユーザを認証する。
機器通信部1122はオフィス機器やオンラインストレージ1031、メールサーバ1032との通信を実行する。メール取得部1123は第1の実施形態のメール取得部201に対応する。メール取得部1123はメール取得部201と同様、メールサーバ1032から新着メールを取得する。
セッション管理部1124は、オフィス機器やオンラインストレージ1031、メールサーバ1032とのセッションを管理する。データ処理部1125はサービスアプリ1101からの要求に基づいてデータ処理を実行する。データ処理部1125のデータ取得部1131は第1の実施形態のデータ取得部206に対応する。データ取得部1131はログイン情報を用いてオンラインストレージ1031に認証を受け、指定されたURLが示すデータを取得する。
アップロード処理部1132は第1の実施形態の第2変形例において印刷対象のファイルをオンラインストレージ500の共有者がアクセス可能な領域に保存する処理に対応するものである。アップロード処理部1132はデータをオンラインストレージ1031の共有者がアクセス可能な領域にアップロードする。
データ形式変換部1133は第1の実施形態のレンダリングサーバ300におけるレンダリング処理部301に対応する。データ形式変換部1133はデータ取得部1131が取得したデータがそのままでは出力できない形式だった場合、出力可能な形式へと変換するものである。
管理データ記憶部1103は組織管理情報記憶部1141、ユーザ管理情報記憶部1142、機器管理情報記憶部1143、ストレージ情報記憶部1144、データストレージ1145を有する。
組織管理情報記憶部1141は、後述の組織管理情報を記憶する。ユーザ管理情報記憶部1142は、後述のユーザ管理情報を記憶する。ユーザ管理情報記憶部1142は第1の実施形態の認証情報記憶部212に対応する。機器管理情報記憶部1143は後述の機器管理情報を記憶する。
ストレージ情報記憶部1144は後述のストレージ情報を記憶する。データストレージ1145は出力データIDが付されたデータをスプールする。データストレージ1145は第1の実施形態のジョブスプーラ211に対応する。
サービス提供システム1100は、例えば認証やデータ形式変換といった機能を有するクラウド基盤と、クラウド基盤の機能を利用してプリントサービス等のサービス提供を行うサービス群として機能する。クラウド基盤は、例えばプラットフォーム1102、管理データ記憶部1103、プラットフォームAPI1104によって構成される。サービス群は例えばサービスアプリ1101によって構成される。
サービス提供システム1100のクラウド基盤が有する認証の機能は、例えば認証処理部1121と、認証用データベースにより構成される。認証用データベースは組織管理情報記憶部1141、ユーザ管理情報記憶部1142、機器管理情報記憶部1143などにより構成される。また、サービス提供システム1100のクラウド基盤が有するデータ形式変換部1133、データストレージ1141などにより構成される。
サービス群はサービス提供システム1100のクラウド基盤が有する認証やデータ形式変換といった機能を利用し、サービスの提供を行う。また、サービス群はオンラインストレージ1031からデータを取得する場合、クラウド基盤が有する認証の機能を介してオンラインストレージ1031にアクセスするためのログイン情報を取得する。なお、オンラインストレージ1031は外部サービスシステムの一例である。
外部サービスシステムはサービス提供システム1100以外のシステムであり、オンラインストレージサービスの他、スキャン文書の保管・管理サービスなどが含まれる。第2の実施形態では、外部サービスシステムが提供するサービス(機能)の一例としてオンラインストレージサービスを示している。
また、図24のサービス提供システム1100は複数のサービスアプリ1101が共通に利用する組織管理情報、ユーザ管理情報、機器管理情報、ストレージ情報を有することで、認証機能を集約している。
《プリントサービスアプリ1111》
プリントサービスアプリ1111は、例えば図25に示す処理ブロックにより実現される。図25は第2の実施形態に係るプリントサービスアプリの一例の処理ブロック図である。
プリントサービスアプリ1111はコンピュータシステム1500を、データ解析部1201、出力データ管理部1202、処理要求部1203、登録ユーザ判定部1204、URL認証有無判断部1205、パスワード発行部1206、出力データ管理情報保持部1207として機能させる。
データ解析部1201は第1の実施形態の解析部203に対応する。データ解析部1201はメール取得部1123が取得したメールを解析し、メール本文に記載されたURL及びメール送信者の情報であるFromに設定されているメールアドレスの情報を取得する機能を備える。また、データ解析部1201はメール送信先の情報として、To及びCCに設定されているメールアドレスの情報を取得する機能も備える。
出力データ管理部1202は、第1の実施形態のジョブ管理部209に対応する。出力データ管理部1202は、後述の出力データ管理情報保持部1207を管理する機能を備える。
処理要求部1203は第1の実施形態のデータ送信部208に対応する。処理要求部1203はデータ取得部1131が取得したデータを画像形成装置1013に送信する機能を備える。
登録ユーザ判定部1204は第1の実施形態の登録ユーザ判定部202に対応する。登録ユーザ判定部1204はメール取得部1123が取得したメールの送信者が予めサービス提供システム1100に登録されたユーザか否か判断する機能を備える。
URL認証有無判断部1205は第1の実施形態のURL認証有無判断部204に対応する。URL認証有無判断部1205はデータ解析部1201がメール本文に記載されたURLを取得した場合に、URLが示すデータを取得するにあたって認証が必要か否かを判断する機能を備える。
パスワード発行部1206は第1の実施形態においてワンタイムパスワードを発行する処理に対応するものである。パスワード発行部1206はデータの共有者を認証するために用いる共有用認証情報の一例としてのパスワードを発行する。
出力データ管理情報保持部1207は出力データ管理情報を保持する。出力データ管理情報は第1の実施形態の図15等に示した印刷ジョブ登録テーブル、図16に示した共有用パスワードテーブルに対応する。
図26は出力データ管理情報の一例の構成図である。図26はデータを投入した投入者用のデータを管理する通常ジョブ用テーブルの一例を示している。図26の出力データ管理情報はID、出力データID、組織コード、ユーザ特定情報、書誌情報、変換ステータスをデータ項目として有する。
IDは各ジョブを識別するためのジョブ識別情報である。出力データIDはデータストレージ1145にスプールされているデータを識別するためのデータ識別情報である。組織コードは、企業、部署などの組織を一意に特定する情報である。組織コードは1以上のユーザやデバイス(オフィス機器)の集合を特定することができる情報である。なお、組織コードは組織という言葉に限定されるものではなく、例えばユーザやデバイスなどの集合に対する契約を識別する契約情報などであってもよい。出力データ管理情報は一意な組織コード単位で情報を管理する。
ユーザ特定情報はユーザを特定する情報である。ユーザ特定情報はユーザ名やユーザIDなどでもよい。書誌情報はデータの印刷設定などの情報である。変換ステータスは例えばデータ形式変換部1133におけるデータ形式変換の状態(処理中、完了など)を表す情報である。
図27は出力データ管理情報の他の例の構成図である。図27はデータを共有する共有者用のデータを管理する共有ジョブ用テーブルの一例を示している。図27の出力データ管理情報は図26のデータ項目に加えて、投入ユーザ組織コード、投入ユーザ特定情報をデータ項目として有している。
投入ユーザ組織コードは投入者の組織コードを示している。投入ユーザ特定情報は投入者のユーザ特定情報を示している。なお、図27において、組織コードは共有者の組織を一意に特定する情報となる。また、ユーザ特定情報は共有者を特定する情報となる。
図27の出力データ管理情報では、投入者と共有者とが異なる組織コードである場合にも対応できる。言い換えれば、同一組織コードのユーザ間での共有を許可する場合は投入ユーザ組織コードを省略できる。
また、図27の出力データ管理情報ではユーザ毎に異なる印刷設定でデータを画像形成装置1013から出力できる。例えば図27のID「1」のジョブは「UserB」で特定される共有者の印刷設定に対応したデータを管理するため、出力データIDが図26のID「1」の出力データID「1」から「6」に変更されている。
なお、ユーザ毎に異なる印刷設定でのデータの出力を許容せず、共通した印刷設定で画像形成装置1013からデータを出力する場合、出力データ管理情報は例えば図28に示すようになる。
図28は出力データ管理情報の他の例の構成図である。図28の出力データ管理情報は図27のデータ項目と同様である。図28の出力データ管理情報ではユーザ間で共通した印刷設定で画像形成装置1013からデータを出力するため、ID及び出力データIDが重複する。
例えば図28のID「1」のジョブは、投入者と共通の印刷設定に対応したデータを管理するため、出力データIDが図26のID「1」の出力データID「1」から変更されない。
《管理データ》
図29は組織管理情報の一例の構成図である。図29の組織管理情報はデータ項目として組織コード、組織名、国、言語、アドレス情報などを有する。組織名は組織の名称である。国は組織の属する国名を表している。言語は組織の使用言語を表している。アドレス情報は組織のメールアドレスを表している。
図30はユーザ管理情報の一例の構成図である。図30のユーザ管理情報はデータ項目として組織コード、ユーザ名、パスワード、アドレス情報、1つ以上のログイン情報などを有する。
ユーザ名、パスワードはユーザを特定する情報である。したがって、ユーザ名はユーザID等であってもよい。また、パスワードは必須でない。また、同じ組織コードで管理されるユーザ名、パスワードは一意であるが、組織コードが異なれば重複していてもよい。
アドレス情報はユーザのメールアドレスを表している。1つ以上のログイン情報はオンラインストレージ1031にアクセスするための認証情報であり、第1の実施形態のアクセス用認証情報に対応する。
さらに、ユーザIDはユーザが所持する電子媒体(例えばICカード)を識別する情報を用いてもよい。ユーザが所持する電子媒体としてはICカード、携帯電話、タブレット端末、電子書籍端末等を利用できる。電子媒体を識別する情報としては、カードID、シリアルID、携帯電話の電話番号、端末のプロフィール情報などを利用できる。電子媒体を識別する情報は組み合わせて利用してもよい。
図31は機器管理情報の一例の構成図である。図31の機器管理情報はデータ項目として組織コード、デバイス認証情報、事業所情報、ケーパビリティなどを有する。デバイス認証情報はオフィス機器が特定の条件を備えたものであることを判別するデバイス認証のための情報である。デバイス認証情報はオフィス機器に特定のアプリケーションが搭載されていることを示すIDや、特定のオフィス機器であることを示す機器番号などであってもよい。事業所情報は例えばオフィス機器が設置されている事業所を表している。ケーパビリティは例えばオフィス機器の能力を表している。
図32はストレージ情報の一例の構成図である。図32のストレージ情報は、データ項目としてストレージ名、URLキーワードなどを有する。ストレージ名はオンラインストレージ1031の名称を表している。URLキーワードはオンラインストレージ1031のURLを取得するためのキーワードを表している。URLキーワードはオンラインストレージ1031のURLであってもよい。
《端末装置》
第2の実施形態に係るクライアント端末1011、携帯端末1012などの端末装置1300は例えば図33に示す処理ブロックにより実現される。図33は第2の実施形態に係る端末装置の一例の処理ブロック図である。
端末装置1300はプログラムを実行することにより、入力受付部1301、メール送信部1302、プリントサービス利用アプリ1303を実現している。入力受付部1301はユーザ(投入者)からメール送信指示など、各種入力操作を受け付ける。メール送信部1302はユーザからのメール送信指示によりメールを送信する。
プリントサービス利用アプリ1303はメールに替えてWebアップロードでジョブを投入する機能を提供する。プリントサービス利用アプリ1303はログイン要求部1304、サービス利用要求部1305を有する。ログイン要求部1304は端末装置1300からサービス提供システム1100にログインする機能を提供する。サービス利用要求部1305は端末装置1300からサービス提供システム1100に、Webアップロードでのジョブの投入を要求する機能を提供する。
《画像形成装置1013》
第2の実施形態に係る画像形成装置1013は、例えば図34に示す処理ブロックにより実現される。図34は、第2の実施形態に係る画像形成装置の一例の処理ブロック図である。
画像形成装置1013はプログラムを実行することにより、入力受付部1401、出力部1402、プリントサービス利用アプリ1403、設定情報保持部1406を実現している。入力受付部1401はユーザ(投入者、共有者)からログイン指示など、各種入力操作を受け付ける。出力部1402は受信したデータを出力(例えば印刷)する。
プリントサービス利用アプリ1403はジョブを実行する機能を提供する。ログイン要求部1404は画像形成装置1013からサービス提供システム1100にログインする機能を提供する。また、ログイン要求部1404はログインしたユーザについてのジョブリストをサービス提供システム1100から受信する。
ジョブリストを受信した画像形成装置1013は操作パネルなどにジョブリストを表示して、実行を希望するジョブの選択を入力受付部1401から受け付ける。サービス利用要求部1405は画像形成装置1013からサービス提供システム1100に、ユーザから受け付けたジョブの実行を要求する機能を提供する。なお、設定情報保持部1406は各種設定情報を保持している。
<処理の詳細>
以下では第2の実施形態に係るシステム1000の処理の詳細について説明するが、第1の実施形態に係るシステムと同様な部分について適宜説明を省略する。
《メールによるジョブの投入》
図35はメールによるジョブの投入処理の一例を表したシーケンス図である。ステップS501において、端末装置1300の入力受付部1301はユーザ(投入者)からプリントサービスアプリ1111のアドレス宛に、ジョブ投入を指示するメールの送信要求を受け付ける。
ステップS502において、入力受付部1301は投入者から受け付けたメールの送信要求を、メール送信部1302に通知する。ステップS503において、メール送信部1302は投入者から送信要求のあったメールをメールサーバ1032に送信する。
ステップS504〜S505において、サービス提供システム1100のメール取得部1123は例えばポーリングによりメールサーバ1032からメールを受信する。メールの受信はプリントサービスアプリ1111からの取得要求があったタイミングで行うようにしてもよい。
メールを受信したメール取得部1123はステップS506において、メールに添付ファイルが添付されていれば、メールから添付ファイルを抽出する。添付ファイルは必須ではない。ステップS507において、メール取得部1123はメール本文と、あれば添付ファイルとをメールデータとしてプリントサービスアプリ1111に送信する。
ステップS508において、プリントサービスアプリ1111は受信したメールデータの内容を解析する。具体的に、プリントサービスアプリ1111はメール本文に記載されているURL、投入者のメールドレスである送信元アドレス、メールのTOに設定されている他の(プリントサービスアプリ1111のアドレス以外の)メールアドレスである送信先アドレスを取得する。
ステップS509において、プリントサービスアプリ1111は受信したメールデータの送信元アドレス、送信先アドレスを指定して、認証処理部1121にユーザ管理情報取得要求を行う。
ステップS511において、認証処理部1121はユーザ管理情報記憶部1142を参照して送信元アドレス及び送信先アドレスに対応するユーザ管理情報を取得する。認証処理部1121はステップS512において、送信元アドレス及び送信先アドレスに対応するユーザ管理情報をプリントサービスアプリ1111に送信する。
また、ステップS513において、プリントサービスアプリ1111はメール本文にあったURLを指定して、認証処理部1121にストレージ情報取得要求を行う。認証処理部1121はステップS514において、ストレージ情報記憶部1144を参照してURL(URLキーワード)に対応するストレージ情報を取得する。ステップS515において、認証処理部1121はメール本文にあったURLに対応するストレージ情報をプリントサービスアプリ1111に送信する。
URLに対応するストレージ情報を受信することにより、プリントサービスアプリ1111はURLに対応するストレージ名を取得することができる。プリントサービスアプリ1111はURLに対応するストレージ名を取得することにより、ステップS512で受信した送信元アドレスに対応するユーザ管理情報から一つのオンラインストレージ1031のログイン情報を特定できる。
ステップS516において、プリントサービスアプリ1111はオンラインストレージ1031のログイン情報を指定し、メール本文にあったURLからのデータ取得をデータ処理部1125に要求する。
ステップS517において、データ処理部1125は指定されたログイン情報を用いてオンラインストレージ1031にログインを要求する。ここではオンラインストレージ1031へのログインが成功したものとして説明を続ける。
ステップS518において、オンラインストレージ1031はログインが成功したことを示すログイン応答を行う。ステップS519において、データ処理部1125はメール本文にあったURLからのデータ取得をオンラインストレージ1031に要求する。オンラインストレージ1031はステップS520において、URLが示すデータをデータ処理部1125に送信する。
ステップS521において、データ処理部1125はメール本文にあったURLが示すデータをプリントサービスアプリ1111に送信する。プリントサービスアプリ1111は受信したデータに出力データIDを付してデータストレージ1145にスプールする。
ステップS522において、プリントサービスアプリ1111は受信したメールデータのCC/BCCに設定されているアドレスを指定して、認証処理部1121にユーザ管理情報取得要求を行う。ステップS523において、認証処理部1121はユーザ管理情報記憶部1142を参照してCC/BCCに設定されているアドレスに対応するユーザ管理情報を取得する。認証処理部1121はステップS524において、CC/BCCに設定されているアドレスに対応するユーザ管理情報をプリントサービスアプリ1111に送信する。
ステップS525において、プリントサービスアプリ1111はメールにより投入されたジョブを識別するためのIDと、データストレージ1145にスプールしたデータの出力データIDと、各ユーザの組織コードと、各ユーザのユーザ特定情報とを関連付けた出力データ管理情報を出力データ管理情報保持部1207に保持することで、ジョブ管理を行う。出力データ管理情報は、投入者と、共有者とに対応させて保持する。なお、共有者には、メールのTOに設定されている他のメールアドレスである送信先アドレスの他、CC/BCCに設定されているアドレスが含まれる。
また、プリントサービスアプリ1111はデータ形式変換の必要があれば、ステップS526において、データ処理部1125にデータ形式変換を要求する。データ形式変換の要求は例えば出力データIDを指定してデータ処理部1125に要求できる。ステップS527において、データ処理部1125は出力データIDで指定されたデータのデータ形式変換を行う。
次に、図35のシーケンス図におけるサービス提供システム1100が行う処理について図36を参照しつつ説明する。図36はサービス提供システムが行う処理を表した一例のフローチャートである。なお、図36のフローチャートはプリントサービスアプリ1111が行う処理を中心として示したものである。
ステップS601において、プリントサービスアプリ1111はメール取得部1123からメールデータを受信する。メールデータには、メール本文と、あれば添付ファイルとが含まれる。
ステップS602において、プリントサービスアプリ1111は受信したメールデータの内容を解析し、メール本文に記載されたURL、送信元アドレス、送信先アドレスを取得する。そして、プリントサービスアプリ1111は、受信したメールデータの送信元アドレス及び送信先アドレスに基づくユーザ管理情報を、認証処理部1121に要求して取得する。
ステップS603において、プリントサービスアプリ1111はメール本文にURLがあればステップS604に進み、認証処理部1121にストレージ情報取得要求を行うことにより、URLに対応するストレージ情報が有るか判断する。プリントサービスアプリ1111はURLに対応するストレージ情報が有ればステップS605に進み、そのストレージ情報に含まれるストレージ名を取得する。そして、プリントサービスアプリ1111に送信は、取得したストレージ名に対応するログイン情報が、送信元アドレスに対応するユーザ管理情報に有るか判断する。
取得したストレージ名に対応するログイン情報が、送信元アドレスに対応するユーザ管理情報に有ればステップS606に進み、データ処理部1125は取得したストレージ名に対応するログイン情報でオンラインストレージ1031へのログインが成功するか判断する。ログインが成功すれば、データ処理部1125はステップS607に進み、メール本文にあったURLに基づくデータ取得処理を行う。
ステップS608において、プリントサービスアプリ1111はメール本文にあったURLに基づくデータを取得できたか判断する。メール本文にあったURLに基づくデータを取得できれば、プリントサービスアプリ1111はステップS610に進み、共有者の設定が有るか判断する。共有者の設定が有ればステップS611に進み、プリントサービスアプリ1111は共有者のユーザ管理情報を認証処理部1121に要求して取得する。
データ形式変換の必要があれば、プリントサービスアプリ1111はステップS612において、データ処理部1125にデータ形式変換を要求し、データのデータ形式変換を行う。そして、ステップS613において、プリントサービスアプリ1111はメールにより投入されたジョブを識別するためのIDと、データストレージ1145にスプールしたデータの出力データIDと、各ユーザの組織コードと、各ユーザのユーザ特定情報とを関連付けた出力データ管理情報により、ジョブと出力データとを関連付ける。
なお、ステップS603において、メール本文にURLが無ければ、プリントサービスアプリ1111はオンラインストレージ1031からのデータ取得が必要ないと判断してステップS604〜S609の処理をスキップして、ステップS610に進む。
ステップS604においてURLに対応するストレージ情報が無ければ、認証処理部1121はオンラインストレージ1031からのデータ取得にログイン情報が必要ないと判断してステップS607に進む。ステップS605においてストレージ名に対応するログイン情報が無ければ、プリントサービスアプリ1111はオンラインストレージ1031からのデータ取得にログイン情報が必要ないと判断してステップS607に進む。
また、ステップS606においてログインが成功しなければ、データ処理部1125はステップS609に進み、データを取得できないと判断する。ステップS608においてデータが取得できなければ、プリントサービスアプリ1111はメール本文にあったURLに基づくデータを取得できないと判断する。
さらに、ステップS610において共有者の設定が無ければ、プリントサービスアプリ1111は共有者のユーザ管理情報の取得が必要ないと判断してステップS611の処理をスキップして、ステップS612に進む。
図36に示したフローチャートはステップS611において共有者のユーザ管理情報が取得できることを前提としている。つまり、共有者はユーザ管理情報に予め設定されている必要があった。第2の実施形態では、ユーザ管理情報に設定されていない共有者についても以下のように対応できる。
図37はサービス提供システムが行う処理を表した一例のフローチャートである。図37のフローチャートは一部を除いて図36のフローチャートと同様であるため、適宜説明を省略する。ステップS701〜S710の処理は図36のステップS601〜S610の処理と同様である。
ステップS711において、プリントサービスアプリ1111は共有者のユーザ管理情報を認証処理部1121に要求して取得する。ステップS712に進み、プリントサービスアプリ1111はユーザ管理情報を取得できない共有者がいるか判断する。ユーザ管理情報を取得できない共有者がいない場合は、図36のフローチャートにおけるステップS612〜S613と同様に、ステップS715〜S716の処理を行う。
ユーザ管理情報を取得できない共有者がいれば、プリントサービスアプリ1111はステップS713に進み、ユーザ管理情報を取得できない共有者に対してパスワードを発行する。そして、ステップS714に進み、プリントサービスアプリ1111はユーザ管理情報を取得できない共有者のメールアドレス宛に、発行したパスワードを記載したメールを送信する。
ステップS714に続いてステップS715に進み、プリントサービスアプリ1111はデータ形式変換の必要があれば、図36のステップS612と同様、データ処理部1125にデータ形式変換を要求し、データのデータ形式変換を行う。
そして、ステップS716において、プリントサービスアプリ1111は図38に示す出力データ管理情報によりジョブと出力データとを関連付ける。図38は出力データ管理情報の他の例の構成図である。
図38の出力データ管理情報は図27のデータ項目に加えて、パスワードをデータ項目として有している。ID「4」のジョブはユーザ管理情報を取得できなかった共有者用のジョブであるため、企業コード及びユーザ特定情報に替えて、ステップS713で発行されたパスワードが設定されている。
《Webアップロードによるジョブの投入》
サービス提供システム1100は図35のメールによるジョブの投入に替えて、図39に示すように、Webアップロードによりジョブを投入することも可能である。図39はWebアップロードによるジョブの投入処理の一例を表したシーケンス図である。図40は端末装置に表示される画面の一例のイメージ図である。
ユーザ(投入者)は図40に示すログイン画面2000に企業ID、ユーザID、パスワードを入力してログインボタンを押下することで、サービス提供システム1100に対するログインを要求する。企業IDは企業コードの一例である。ユーザIDはユーザ特定情報の一例である。
ステップS801において、端末装置1300の入力受付部1301は投入者からログイン情報として企業ID、ユーザID、パスワードを受け付ける。ステップS802において、入力受付部1301は投入者から受け付けたログイン要求を、ログイン要求部1304に通知する。ステップS803において、ログイン要求部1304は投入者から受け付けたログイン情報でのログインをサービス提供システム1100の認証処理部1121に要求する。
ステップS804において、認証処理部1121は投入者から受け付けたログイン情報の認証判断を行う。認証処理部1121は認証判断の結果に基づき、投入者のログインOK又はNGを判断する。ここでは、投入者のログインOKと判断されたものとして説明を続ける。
ステップS805において、認証処理部1121はログインOKを示すログイン応答を端末装置1300のログイン要求部1304に対して行う。ログインOKを示すログイン応答があると、端末装置1300は例えば図40に示すサービス一覧選択画面2001を表示して投入者にサービスを選択させる。
投入者はサービス一覧選択画面2001からプリントサービスボタンを押下することでプリントサービスを選択する。ステップS806において、端末装置1300の入力受付部1301は投入者からプリントサービスの利用要求を受け付ける。ステップS807において、入力受付部1301はプリントサービスの利用要求を、サービス利用要求部1305に通知する。
ステップS808において、サービス利用要求部1305は投入者から受け付けたプリントサービスの利用要求をサービス提供システム1100に対して行う。ステップS809におけるセッション確認後、セッション管理部1124はステップS810〜S811においてプリントサービスアプリ1111から図40に示すようなサービス利用画面の一例としてのプリントサービス画面2002のデータを取得する。
ステップS812において、セッション管理部1124はプリントサービス画面2002のデータをサービス利用要求部1305に送信する。端末装置1300は図40のプリントサービス画面2002を表示して、投入者からデータ設定を受け付ける。投入者はプリントサービス画面2002に、ファイルやURL指定によるデータ設定、共有者(共有ユーザ)設定、印刷設定などの条件設定、ワンタイムパスワード発行などのパスワード設定などのデータ設定を行ったあと、送信ボタンを押下する。
ステップS813において、端末装置1300の入力受付部1301はデータ設定を投入者から受け付ける。ステップS814において、入力受付部1301は投入者から受け付けたデータ設定に基づくデータ投入要求をサービス利用要求部1305に通知する。ステップS815において、サービス利用要求部1305は投入者から受け付けたデータ投入要求をサービス提供システム1100に対して行う。
ステップS816におけるセッション確認後、セッション管理部1124はステップS817においてプリントサービスアプリ1111に、投入者から受け付けたデータ設定に基づくデータ投入要求を行う。なお、データ投入要求を受け付けたあとのプリントサービスアプリ1111の処理は、投入者から受け付けたメールにより出力データ管理情報を作成するか、投入者から受け付けたデータ設定に基づき出力データ管理情報を作成するかの違いであるため、説明を省略する。
《ジョブの出力》
投入されたジョブに係る出力をユーザの指示に従って画像形成装置1013に実行させる処理について図41を参照しつつ説明する。
図41はジョブの出力処理の一例を表したシーケンス図である。図42は画像形成装置に表示されるログイン画面の一例のイメージ図である。ユーザは図42に示すログイン画面2100にユーザID、パスワードを入力するか、又は、PINコードを入力してログインボタンを押下することで、サービス提供システム1100に対してログインを要求する。PINコードはパスワードの一例である。
ステップS901において、画像形成装置1013の入力受付部1401はユーザからログイン情報としてユーザID、パスワードを受け付けるか、又は、PINコードを受け付ける。ステップS902において、入力受付部1401はユーザから受け付けたログイン要求を、ログイン要求部1404に通知する。
ステップS903において、ログイン要求部1404はユーザから受け付けたログイン情報と、画像形成装置1013に予め設定されている組織コード、デバイス認証情報とによるログインをサービス提供システム1100の認証処理部1121に要求する。デバイス認証情報はサービス提供システム1100にアクセスする(ログインを試みる)画像形成装置1013のサービス利用の正当性を認証する時に用いる情報である。オフィス機器の種類や利用するサービス/機能によっては、デバイス認証情報を要さずにサービス提供システム1100にアクセス(ログイン)可能であってよい。
このあと、ユーザから受け付けたログイン情報にユーザID、パスワードが含まれる通常ログインの場合は図41のステップS905〜S919の処理を行う。ログイン情報にPINコードが含まれるPINコードログインの場合は図41のステップS921以降の処理を行う。
通常ログインの場合、認証処理部1121はステップS904において、ユーザから受け付けたユーザID、パスワードによる認証判断と、画像形成装置1013に予め設定されている組織コード、デバイス認証情報による認証判断とを行う。ステップS904の認証判断には図29の組織管理情報、図30のユーザ管理情報、図31の機器管理情報が用いられる。
認証処理部1121は認証判断の結果に基づき、ユーザのログインOK又はNGを判断する。ここでは、ユーザのログインOKと判断されたものとして説明を続ける。ステップS905において、認証処理部1121はログインOKを示すログイン応答を画像形成装置1013のログイン要求部1404に対して行う。
ログインOKを示すログイン応答があると、ログイン要求部1404はステップS906において、ユーザIDを指定したデータ一覧要求を行う。セッション管理部1124によるセッション確認後、セッション管理部1124はステップS907において、プリントサービスアプリ1111にデータ一覧を要求する。
プリントサービスアプリ1111は、データ一覧要求により指定されたユーザIDと対応付けられている出力データ管理情報保持部1207の全ての出力データ管理情報を特定する。ステップS908、S909において、プリントサービスアプリ1111は特定したジョブを示すデータ一覧をセッション管理部1124経由でサービス利用要求部1405に送信する。画像形成装置1013はデータ一覧画面を表示して、ユーザに出力したいデータを選択させる。
ステップS910において、入力受付部1401は出力したいデータを指定したデータ出力要求をユーザから受け付ける。ステップS911において、入力受付部1401はユーザから受け付けたデータ出力要求をサービス利用要求部1405に通知する。サービス利用要求部1405はステップS912において、ユーザから受け付けたデータ出力要求をサービス提供システム1100に対して行う。
また、セッション管理部1124によるセッション確認後、セッション管理部1124はステップS913において、プリントサービスアプリ1111に、ユーザから受け付けたデータ出力要求を行う。
ステップS914〜S916において、プリントサービスアプリ1111はデータ出力要求に対応するデータをデータストレージ1145から取得する。そして、ステップS917〜S919において、サービス提供システム1100は画像形成装置1013の出力部1402に、データ出力要求に対応するデータを送信する。そして、ステップS920において、出力部1402はユーザから受け付けたデータ出力要求に対応するデータを出力できる。
一方、PINコードログインの場合、ステップS921において、認証処理部1121はユーザから受け付けたPINコードを指定して、データ取得要求をプリントサービスアプリ1111に対して行う。ステップS922において、プリントサービスアプリ1111は図38の出力データ管理情報を参照し、指定されたPINコード(パスワード)に対応するデータを特定する。データを特定した後のステップS923〜S929の処理はステップS914〜S920の処理と同様であるため、説明を省略する。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。