以下、図面を参照し、本発明の実施形態について説明する。なお、以下の説明では、内部のネットワークから外部のネットワークへ通信する実施形態と、外部のネットワークから内部のネットワークに通信する実施形態、そして、実際に異なるネットワーク間で印刷を行う実施例の順に説明する。また、内部のネットワークと外部のネットワークとの間には、ファイアウォールが設けられている。従って、内部と外部の通信は、ファイアウォール越えの通信となる。
図3は、内部のネットワークから外部のネットワークへ接続する場合の全体構成図である。図3には、対外通信希望者PC200と、承認者PC201と、メールサーバ202と、対外通信許可サーバ203と、Firewall204と、Internet205と、対外通信対象ホスト206とが示されている。
対外通信希望者PC200とは、内部のネットワーク内の端末であり、外部のネットワーク内の端末である対外通信対象ホスト206との通信を希望するPCである。承認者PC201は、外部のネットワークとの通信を承認するものである。対外通信許可サーバ203は、対外通信希望者PC200からのその要求を受け取り、承認者PC201による承認を取り付け、Firewall204に特定の通信許可を実施する。
また、平行して、対外通信希望者PC200では、自らに搭載されたIPsec設定プログラムが対外通信許可サーバ203からのIPsec設定依頼を受信して、自身のIPsecの設定が行われる。
以上により、対外通信希望者PC200と対外通信対象ホスト206とがIPsecによって通信できるようになる。
次に、図4を用いて対外通信希望者PC200の内部構成について説明する。対外通信希望者PC200は、図4に示されるように、アクセス希望提示機能210と、IPsec自己設定機能211と、IPsecSPD212とを含む。
アクセス希望提示機能210は、対外通信希望者PC200がIPsec通信により、外部のネットワークと通信したいということを対外通信許可サーバ203に対して表明する機能である。IPsecSPD212は、どのPCとの通信でIPsec通信を実現するか、その時のIPsec通信はどのように行うかを記載しているものである。IPsec自己設定機能211は、IPsecSPD212など、IPsec通信に必要な情報を自己設定する機能である。
次に、図5を用いて対外通信許可サーバ203の内部構成について説明する。対外通信許可サーバ203は、図5に示されるように、許可テンプレート提供機能215と、アクセス許可受信機能216と、アクセス許可承認/Firewall設定機能217と、許可テンプレート218と、承認者メールアドレス219とを含む。
許可テンプレート218は、複雑なIPsec通信に必要な諸元を抽象化した情報である。承認者メールアドレス219は、承認者PC210宛のメールアドレスである。許可テンプレート提供機能215は、IPsec通信を希望してきた端末に対して許可テンプレートを提供する機能である。アクセス許可承認/Firewall設定機能217は、承認者からアクセス許可を受信する機能と、パケットフィルタリング型Firewallの設定をする機能である。なお、Firewall設定機能は、Firewallを制御するFirewall制御機能を有する。
次に、図6を用いて上記許可テンプレートについて説明する。許可テンプレートは、図6に示されるように、「通信目的」と、「AHの使用/不使用」と、「ESPの使用/不使用」と、「Cypher」と、「hmac」という情報を含むテンプレートである。これらの情報からなる許可テンプレートは、通信目的ごとに設けられる。
「通信目的」は、対外通信をする目的で、図6の場合外部ネットワークにあるプリンタへの印刷となっている。「ESPの使用/不使用」と「AHの使用/不使用」は、それぞれ、その通信目的に適したカプセル化モード(ESP(Encapsulating Security Payload)/AH(Authentication Header))を使用するかどうか示すものである。「Cypher」は、その通信目的に適したCypher(暗号化演算手法)を示すものである。「hmac(Keyed-Hashing for Message Authentication)」は、鍵つきハッシュアルゴリズムを示すものである。
以上が構成に関する説明である。次に、上記構成による動作について説明する。図7は、対外通信希望者PCが目的の通信を行い、通信を終了するまでの処理を示すフローである。また、このフローは、対外通信希望者PC200と、対外通信許可サーバ203と、メールサーバ202と、承認者PC201と、対外通信対象ホスト206で行われる処理を示すものであり、各処理を囲む楕円は、その処理を実行する機能を示すものである。この楕円は、これからの説明で用いられるフローでも同じ意味で用いられる。
まず、ステップS501で、対外通信希望者PC200は、対外通信を希望することが入力される。次のステップS202で、それを受け付けたアクセス希望提示機能は対外通信許可サーバ203に対して許可テンプレートを要求する。
ステップS503で、対外通信許可サーバ203はテンプレート要求を受信し、ステップS504で、テンプレートを対外通信希望者PC200に対して通知する。そのテンプレートはステップS505で読み込まれ、ユーザに提示される。ステップS506で、対外通信目的が、そのテンプレートの中からユーザにより選択される。そして、対外通信希望者PC200は、ステップS507で、選択されたテンプレートにより通信を希望する旨が示されるアクセス許可依頼を対外通信許可サーバ203に送信する。
対外通信許可サーバ203のアクセス許可受信機能216は、ステップS508で、アクセス許可依頼を受信する。アクセス許可受信機能216は、ステップS509で、承認者PC201に対して、アクセス許可依頼を受信している旨を表すメールを送信する。このメールには、対外通信許可サーバ203が提供しているWebページへのURLが記載されている。
このメールは、ステップS510で、メールサーバにより管理される。ステップS511で、承認者PC201は、POPによりメールを受信する。ステップS512で、承認者PC201のWebブラウザは、メールに記載されたURLで示されるページにHTTPによりアクセスする。対外通信許可サーバ203は、ステップS514で、アクセス許可/拒否ページを提示する。ステップS513で、このページ内で、承認者によりアクセス許可または拒否が入力され、それがステップS515で、対外通信許可サーバ203に入力される。
ステップS516は、アクセスが拒否されたかどうかの判断である。アクセスが拒否された場合、ステップS517で、対外通信許可サーバ203は、対外通信希望者PC200にアクセス拒否メールを通知し、処理を終了する。このメールは、ステップS519でメールサーバ202に管理される。そして、図示しないが、対外通信希望者PC200はPOPによりこのメール受信し、処理を終了する。
アクセスが許可された場合、対外通信許可サーバ203は、ステップS518で、IPsec設定ページへのURLをメールに添付して、対外通信希望者PC200に通知する。
このメールは、ステップS519でメールサーバ202に管理され、対外通信希望者PC200は、ステップS521で、POPによりこのメール受信する。ステップS522で、対外通信希望者PC200によりIPsecの設定が実施される。
一方、対外通信許可サーバ203では、ステップS520で、Firewall制御機能により、Firewallを制御する。
以上により、対外通信希望者PC200は対外通信対象ホスト206と通信できるようになる。
この通信が終了するか、あるいは一定期間が経過したら、対外通信許可サーバ203はステップS523で、自動的にFirewallの設定を原状回復し、通信を禁止する。また、このことを、対外通信希望者PC200に対してメールで通知する。このメールは、ステップS524で、メールサーバ202で管理される。ステップS525で、対外通信希望者PC200はそのメールを取得して、そのメールの通知内容に応じて自身のIPsec設定を原状回復し、処理を終了する。
次に、図8を用いて、承認者PC201を介さず、許可テンプレートに記載されたIPsecの設定で任意に外部と通信することを許す場合の処理について説明する。この場合、Firewallの許可設定は通信時のみ設定され、通信の終了後すぐに許可が解除されなければならない。
図8に示されるフローは、対外通信希望者PC200と、対外通信許可サーバ203と、対外通信対象ホスト206で行われる処理を示すものである。なお、このフローのステップS601からステップS608までの処理は、図7のステップS501からステップS508までの処理と同じであるので説明を省略する。
ステップS609で、対外通信許可サーバ203は、利用者情報と希望する許可テンプレートから許可するかどうか判断する。なお、利用者情報とは、例えば、ユーザIDとパスワード名と、対外通信希望者PC200の利用者を特定する情報である。
ステップS610は、アクセスを許可するかどうかの判断である。アクセスを許可しない場合、ステップS611で、対外通信許可サーバ203は、対外通信希望者PC200にアクセス拒否を通知し、処理を終了する。そして、図示しないが、対外通信希望者PC200はその通知を受け、処理を終了する。
なお、アクセスを拒否した場合は、何者かが本来のIPsec通信を許可された希望者に成り代わって、セキュリティホールを実現するためにアクセス許可依頼を提示したものと見做し、Firewallを跨いだIPsec通信を許可しない。
アクセスが許可された場合、対外通信許可サーバ203は、ステップS612で、アクセスが許可されたことを対外通信希望者PC200に通知する。この通知をステップS614で、対外通信希望者PC200は受信する。次のステップS615で、対外通信希望者PC200によりIPsecの設定が実施される。
一方、対外通信許可サーバ203では、ステップS613で、Firewall制御機能により、Firewallを制御する。
以上により、対外通信希望者PC200は対外通信対象ホスト206と通信できるようになる。
この通信が終了するか、あるいは一定期間が経過したら、対外通信許可サーバ203はステップS523で、自動的にFirewallに設定された許可設定を戻し、通信を禁止する。また、このことを、対外通信希望者PC200に対して通知する。この通知内容に応じ、対外通信希望者PC200は、ステップS617で自身のIPsec設定を戻し、処理を終了する。
次に、対外通信を許可したPCがDoS攻撃(Denial of Service attack)を受けたときに、適切にそれを回避する処理について説明する。
図9は、不正アクセス攻撃を示す図であり、図3と同様の図に攻撃者220を加えたものである。対外通信希望者PC200は外部の対外通信対象ホスト206からの通信を既に受け付けている状態である。このため、対外通信対象ホスト206から対外通信希望者PC200までの経路はFirewall204が透過している。また、このアクセスの許可などを実施するため、対外通信許可サーバ203があり、承認管理やFirewall204の設定を実施しているとする。
このような状況で、対外通信希望者PC200がInternet205から、IPアドレスを詐称したパケットが多数届く状態になったとする。
このような状態に対応可能な構成を説明する。図10は、対外通信希望者PC200の内部構成を示す図である。対外通信希望者PC200は、図4で示した構成に加え、侵入検知機能221と、自己IPアドレス更新機能222と、相手IPアドレス更新機能223を含む。
侵入検知機能221は、不正なアクセスを検知するものである。自己IPアドレス更新機能222は、IPアドレスの変更に伴うIPsecの設定の修正などを行うものである。
図11は、対外通信許可サーバ203の内部構成を示す図である。対外通信許可サーバ203は、図5で示した構成に加え、対外IPアドレス更新許可通知機能223を含む。
対外IPアドレス更新許可通知機能223は、新たなサフィクスの算出などを行うものである。
図12は、対外通信対象ホスト206の内部構成を示す図である。対外通信対象ホスト206は、相手IPアドレス更新機能224を有する。相手IPアドレス更新機能224は、通信相手のIPアドレスの変更に伴い、自らのIPsecの設定の修正などを行うものである。
対外通信希望者PC200が対外通信対象ホスト206と通信中に、Internet205からの攻撃があった場合、その侵入を検知する例を、図13を用いて説明する。まず、対外通信希望者PC200は、パケットフィルタを有し、常に自身に届くパケットを監視する。
それと平行して、図13に示される処理が行われる。図13のフローチャートは、監視しているパケットに対する処理を示すものである。まず、ステップS701で、一定頻度以上のpingがあったかどうか判断され、ステップS702で、SYNスキャンがあったかどうか判断され、ステップS703で、FINスキャンがあったかどうか判断され、ステップS704で、NULLスキャンがあったかどうかが判断される。
これらの判断での結果で、いずれか1つでも真となる結果がある場合、ステップS703で、侵入を検知したと判断し、他のプログラムに侵入を検知したことを通知する。全ての判断の結果が偽の場合、再びステップS701の処理が行われる。
次に、図14を用いて、侵入ないしは侵入準備操作があった場合に、自身のIPアドレスを変更して、攻撃を防ぐ処理について説明する。
まず、対外通信希望者PC200が外部からの接続を許している状態であるとする。その状態で、ステップS801で、対外通信希望者PC200が侵入または侵入の可能性を検知すると、対外通信希望者PC200は、ステップS802で、サフィクス変更依頼を対外通信許可サーバ203に依頼する。
対外通信許可サーバ203は、ステップS803でサフィクス変更依頼を受信し、ステップS804で、その依頼の本人性確認を行う。本人性確認の結果、ステップS805で、正規の依頼ではないと判断した場合、ステップS806で、サフィクス変更を拒否するメッセージを対外通信希望者PC200に送信して、処理を終了する。
ステップS805で、正規の依頼であると判断した場合、対外通信許可サーバ203は、ステップS807で、新たなサフィクスを算出し、ステップS808で、対外通信希望者PC200に本人性確認に成功した旨と、新サフィクスを通知する。
次に、対外通信許可サーバ203は、ステップS809で、内部の許可者リストのデータベースを更新し、ステップS810で、Firewall204に新IPアドレスの通信を許可するように設定を変更する。また、対外通信許可サーバ203は、ステップS811で、対外通信希望者PC200のサフィクス変換が十分に完了したと思われる一定の時間を置いて、侵入が検知された旧IPアドレスへのアクセスを禁止するようにFirewall204の設定を変更する。
一方、対外通信希望者PC200は、ステップS812で、対外通信許可サーバ203からの依頼結果を受信する。依頼結果が変更許可ではなかった場合、対外通信希望者PC200は、ステップS814で、許可されなかった内容のエラーをユーザに通知し、処理を終了する。
依頼結果が変更許可の場合、対外通信希望者PC200は、ステップS815で、対外通信対象ホスト206にIPアドレス変更を通知する。次に、対外通信希望者PC200は、ステップS816で、IPsec通信の修正を行い、ステップS817で、アプリケーションにIPアドレスの変更を通知して、処理を終了する。
対外通信対象ホスト206は、ステップS818で、対外通信希望者PC200からのIPアドレス変更通知を受信し、ステップS819で、自身のIPsec設定を変更し、ステップS820で、アプリケーションに相手側のIPアドレスが変更された旨を通知して処理を終了する。
以上の手順により、侵入ないしは侵入準備操作があった場合に、自身のIPアドレスを変更して、攻撃を未然に防ぐ機能が実現できる。
以上が内部のネットワークから外部のネットワークへ通信する実施形態の説明である。次に、外部のネットワークから内部のネットワークに接続する実施形態について説明する。なお、この説明においては、既に説明したものの説明は省略する。
図15は、外部のネットワークから内部のネットワークへ接続する場合の全体構成図である。図15には、対内通信希望者PC230と、対内通信許可サーバ231と、Firewall204と、Internet205と、内部ネットワーク232とが示されている。
対内通信希望者PC230とは、外部の端末であり、内部ネットワーク232内の端末との通信を希望するPCである。この対内通信希望者PC230は対内通信許可サーバ231に対内通信の許可希望を通知する。それと同時に対内通信希望者PC230はIPsecの設定を自身で行い、IPsec通信が可能となるようにする。
対内通信許可サーバ231は対内通信希望者PC230を認証し、認証に成功したら、Firewall204を制御して、対内通信希望者PC230からのIPsec通信を許可する。
次に、図16を用いて対内通信希望者PC230の内部構成について説明する。対内通信希望者PC230は、図16に示されるように、接続依頼機能234と、IPsec自己設定機能211と、IPsecSPD212とを含む。
接続依頼機能234は、IPsec通信により、組織内のホストと通信したいということを対内通信許可サーバ231に対して表明する機能である。
次に、図17を用いて対内通信許可サーバ231の内部構成について説明する。対内通信許可サーバ231は、図17に示されるように、許可テンプレート提供機能215と、アクセス許可承認/Firewall設定機能217と、許可者リスト237と、許可テンプレート219とを含む。許可者リスト237は、許可者とその認証鍵からなるリストである。
以上が構成に関する説明である。次に、上記構成による動作について説明する。図18は、対内通信希望者PCが目的の通信を行い、通信を終了するまでの動作を示すフローである。また、このフローは、対内通信希望者PC230と、対内通信許可サーバ231で行われる処理を示すものである。
まず、ステップS901で、対内通信希望者PC230は、対内通信を希望することが入力される。次のステップS902で、それを受け付けた接続依頼機能は対内通信許可サーバ231に対して許可テンプレートを要求する。
ステップS903で、対内通信許可サーバ231はテンプレート要求を受信し、ステップS904で、テンプレートを対内通信希望者PC230に対して通知する。そのテンプレートはステップS905で読み込まれ、ユーザに提示される。ステップS906で、対内通信目的が、そのテンプレートの中からユーザにより選択される。そして、対内通信希望者PC230は、ステップS907で、選択されたテンプレートにより通信を希望する旨が示されるアクセス許可依頼を対内通信許可サーバ231に送信する。
ステップS908で、対内通信許可サーバ231は、アクセス許可依頼を受信する。次のステップS909で、対内通信許可サーバ231は、ユーザが規定の許可者であるかどうかを許可者リストから判断し、公知の認証手法でそのユーザの認証を行う。
対内通信許可サーバ231は、ステップS910で、既定の許可者で認証に成功したかどうか判断する。もし、認証に失敗した場合、対内通信許可サーバ231は、ステップS911で、対内通信希望者PC230にアクセス拒否をする旨を通知する。
また、認証に成功した場合、対内通信許可サーバ231は、ステップS912で、対内通信希望者PC230にアクセスを許可する旨を通知する。また、ステップS913で、対内通信許可サーバ231は、アクセス許可依頼を送信してきたソースアドレス、すなわち対内通信希望者PC230のIPアドレスと、内部ネットワーク232の通信を許可するように、Firewall制御機能を利用して、Firewall204を制御する。
一方、対内通信希望者PC230は、ステップS914で、対内通信許可サーバ231からの通知を受信する。ステップS915で、対内通信希望者PC230は、アクセスが許可されたかどうか判断する。
アクセスが許可されなかったと判断された場合、対内通信希望者PC230は、ステップS916で、アクセスが拒否された旨をユーザに通知する。アクセスが許可された場合、対内通信希望者PC230は、ステップS917で、選択された許可テンプレートに合わせてIPsecの設定をする。
以上でInternet205からローカルネットワークに対して、トンネリングを使用しないでIPsec通信が可能となる。
次に、攻撃者が対内通信希望者PC230のIPアドレスを詐称して内部ネットワーク232に通信しようとしたときに、適切にそれを回避する処理について説明する。図19は、不正アクセス攻撃を示す図であり、図5に攻撃者220を加えたものである。
このような攻撃者220に対応可能な構成を説明する。図20は、対内通信許可サーバ231の内部構成を示す図である。対内通信許可サーバ231は、図17で示した構成に加え、侵入検知情報受信IPアドレス更新要求機能240と、Firewall自動設定機能241を含む。
侵入検知情報受信IPアドレス更新要求機能240は、Firewall204から通知される侵入検知情報を受信するとともに、対内通信希望者PC230にIPアドレス更新要求を行うものである。Firewall自動設定機能241は、Firewall204に対する設定を行うものである。
図21は、Firewall204の内部構成を示す図である。Firewall204は、侵入検知機能221を含む。この侵入検知機能221は既に説明済みである(図13参照)。図22は、対内通信希望者PC230の内部構成を示す図である。対内通信希望者PC230は、図16に示した構成に加え、自己IPアドレス更新機能222を含む。自己IPアドレス更新機能222は、対内通信希望者PC230のIPアドレスの更新を行うものである。
この構成により、Firewall204が侵入を検知した旨をから対内通信許可サーバ231に通知して、対内通信許可サーバ231が対内通信希望者PC230のIPアドレスを変更させて、攻撃のあったこれまで通信していたFirewall204の通信許可を無効にすることが可能となる。
次に、図23を用いて、侵入ないしは侵入準備操作があった場合に、自身のIPアドレスを変更して、攻撃を防ぐ処理について説明する。
まず、対内通信希望者PC230に内部ネットワークへの接続を許可している状態であるとする。ステップS1001で、Firewall204が侵入を検知すると、Firewall204は、ステップS1002で侵入検知情報を対内通信許可サーバ231に通知し、処理を終了する。
対内通信許可サーバ231は、ステップS1003で、侵入検知情報を受信し、ステップS1004で、対内通信希望者PC230のIPv6アドレスの新たなサフィクスを算出し、ステップS1005で、対外通信対内通信希望者PC230に新IPアドレスを通知する。
次に、対内通信許可サーバ231は、ステップS1006で、新IPアドレスへのアクセスを許可するようにFirewall204の設定を変更する。ステップS1007で、対内通信許可サーバ231は、一定時間後に旧IPアドレスへのアクセスを禁止するように、Firewall204の設定を変更し、処理を終了する。
一方、ステップS1008で、新IPアドレスを通知された対内通信希望者PC230は、ステップS1009でIPアドレスを変更し、ステップS1010で、IPsec設定を修正する。
このように、外部からの攻撃パケットの検出に応じて対内通信希望者PC230のIPアドレスを自動的に書き換えることにより、自動的に攻撃を避けることができるようになる。
上記説明において、ステップS504、ステップS904は、許可情報提供段階に対応する。ステップS506、ステップS906は、許可情報選択段階に対応する。ステップS515、ステップS909は、アクセス可否選択段階に対応する。ステップS520、ステップS913は、ファイアウォール設定段階に対応する。ステップS522、ステップS917は、IPsec設定段階に対応する。ステップS523は、ファイアウォール設定回復段階に対応する。ステップS525は、通信端末設定回復段階に対応する。ステップS801、ステップS1001は、不正侵入検知段階に対応する。ステップS815、1009は、IPアドレス変更段階に対応する。
また、対外通信許可サーバ203、対内通信許可サーバ231は、通信許可サーバに対応する。許可テンプレートは、許可情報に対応し、許可テンプレート提供機能215は、許可情報提供手段に対応する。アクセス許可承認/Firewall設定機能217は、ファイアウォール設定手段とファイアウォール設定回復手段に対応する。相手IPアドレス更新機能223と侵入検知情報受信IPアドレス更新要求機能240は、IPアドレス変更手段に対応する。
次に、実際に異なるネットワーク間で印刷を行う実施例の順に説明する。図24は、ネットワークシステムの全体構成図を示すものである。図24には、ネットワーク100と、LM101と、LR102と、AM104と、AR105と、ルータ103と、宛先DB106、107、108、109、110とが示されている。
LM101と、LR102と、AM104と、AR105は端末であり、パソコンまたはプリンタである。また、LM101とLR102は、セグメント111に属し、AM104と、AR105はセグメント112に属する。これらの異なるセグメントの間には通常ファイアウォールが設けられるが、この実施例では、必ずしもファイアウォールを必要としない。
この図24の場合では、LM101が印刷要求をする端末とし、AM104が印刷を実行する端末とする。従って、LM101は、印刷を実行可能な端末である必要はないため、パソコンであっても良い。
また、LR102とAR105は、それぞれ各セグメントの代表端末である。この代表端末とは、端末情報である宛先DBを参照可能な端末である。
なお、LMはLocal Machineを表し、LRはLocal Representationを表す。また、AMはAnother Machineを表し、ARはAnother Representationを表す。
ルータ103は、2つのセグメント間に位置する。そして、2つのセグメント間での通信は、IPsecを用いて行われる。従って、2つのセグメント間での通信のセキュリティは確保されている。
このように、図24に示されるネットワークシステムは、複数のセグメントが接続され、セグメントに属する端末に関する情報である端末情報を有し、前記端末情報を参照可能な端末である代表端末を前記セグメントごとに有する。
なお、図24では、セグメントが2つであるが、複数であればよい。また、セグメントに属する端末も2つであるが、代表端末を含む複数の端末で構成されていればよい。
次に、宛先DBについて説明する。図24において、宛先DBは、全部で5つ示されているが、図24は宛先DBの3種類の配置方法を含むものである。この3種類の方法について、図25を用いて説明する。
図25には、代表端末であるLRを用いて3種類の方法A、B、Cが示されている。このうち、方法A、Bは、各セグメントごとに宛先DBを有する場合の方法であり、方法Cは、ネットワークシステムで1つの宛先DBを有する場合の方法である。
まず、方法A120は、代表端末内部に宛先DBを配置する方法である。方法Aの例として、宛先DBを端末が有する記憶装置に保持させる方法が挙げられる。方法Aは、図24における宛先DB107、109に対応している。
方法B121は、代表端末の外部にアクセス可能な宛先DBを配置する方法である。方法Bの例として、宛先DBを搭載し、セグメントの代表端末がアクセス可能なデータベースサーバを配置する方法が挙げられる。方法Bは、図24における宛先DB108、110に対応している。
方法C122は、各セグメントの代表端末がアクセス可能な宛先DBを一つ配置する方法である。方法Cの例として、宛先DBを搭載し、各代表端末がアクセス可能なデータベースサーバを配置する方法が挙げられる。方法Cは、図24における宛先DB106に対応している。
次に、宛先DBの内容について説明する。上記3種類の方法において、宛先DBの内容として実質的に異なるのは、方法Cとそれ以外の方法であり、宛先DBは2種類に分類される。これは、方法A、Bの宛先DBは、その位置が異なるだけの違いなので、方法A、Bにおける宛先DBの内容は実質的に同じものとなるためである。
まず、方法A、Bにおける宛先DBの内容について説明する。図26は、図24におけるセグメント111の宛先DBを示し、図27は、図24におけるセグメント112の宛先DBを示している。これらの宛先DBは、各セグメントごとに設けられるため、そのセグメントに属する端末の情報と、他のセグメントの代表端末の情報とを有する。
また、セグメント111は東京にあるとし、セグメント112は大阪にあるとする。他のセグメントとして、福岡にあるものもある。
図26、27に示される宛先DBは、1つの端末に関する情報の項目として、「セグメント」、「ユーザ名」、「IPアドレス」、「メールアドレス」を有する。
「セグメント」は、原則としてその端末が属するセグメントを示す。代表端末の場合、セグメントは、その代表端末が属するセグメント名である。代表端末以外の端末の場合、セグメントは「LM」である。
「ユーザ名」は、その端末を使用するユーザの名称や端末の名称を示す。端末が代表端末の場合、ユーザ名は代表となる。端末が代表端末でない場合、図に示されるように、Lさんを示す「L」やAさんを示す「A」などとなる。なお、「会議」とは、例えば会議室にあるような端末のユーザ名であり、会議のための資料を印刷するときなどに用いられる端末を示している。
「IPアドレス」は、その端末のIPアドレスを示す。このIPアドレスは、IPv6でのIPアドレスである。例えば、「2001::1」や「fe80::2」などとなる。
「メールアドレス」は、その端末のメールアドレスを示す。
以上が、方法A、Bの場合の宛先DBである。このように宛先DBは、各セグメントごとに設けられ、セグメントに属する端末のIPアドレスと、他のセグメントの代表端末のIPアドレスとを有する。
次に、方法Cの場合の宛先DBについて、図28を用いて説明する。方法Cの場合の宛先DBの項目も、図26、27で示した項目と同じ項目となるが、「セグメント」の内容がことなる。方法Cの場合、全てのセグメントに属する端末に関する情報が存在するため、図26、27のように単に「LM」と示すだけでは、どのセグメントに端末が属するか不明となる。従って、代表端末以外の端末にもセグメント名を含む内容となる。また、この宛先DBは、全ての端末のIPアドレスを有する。
次に、端末のソフトウェアブロックを、図29を用いて説明する。図29には、宛先DB131、135と、アプリケーション132と、宛先判定部133と、ネットワーク制御部134と、OS136と、ネットワークプロトコル137と、ネットワーク通信ドライバ138とが示されている。なお、宛先DB131、135の2つが描かれているが、これは上述した方法A、Bの場合に対応させたものである。
アプリケーション132は、プリンタなどのアプリケーションである。宛先判定部133は、宛先DBを参照して、宛先を判定する。ネットワーク制御部134は、セグメント内の端末を、マルチキャストパケットを用いて調査し、宛先DBを更新したり、宛先判定部133が判定した通信相手に情報を送信する。OS136はオペレーティングシステムである。ネットワークプロトコル137は、ネットワークプロトコルに対応するためのOS136に組み込まれているサービスである。ネットワーク通信ドライバ138は、NICのドライバなどである。
次に、図30を用いてプロトコルスタックについて説明する。図30に示されるプロトコルスタックは、下から物理140、IPv4 142とIPv6 141、TCP/UDP143、アプリケーション144となっている。
この図に示されるように、IP層は、IPv4とIPv6のデュアルスタックとなっている。従って、いずれのプロトコルにも対応可能となっている。もっとも、セグメント間の通信をIPsecで可能であれば、いずれのプロトコルであっても良い。
次に、図31、32を用いてLM101(図24参照)の印刷要求が、AM104へ通知されるまでの処理を示すシーケンス図を説明する。なお、図31は、LM101がIPsecを用いた通信ができない場合の処理を示し、図32は、LM101がIPsecを用いた通信ができる場合の処理を示している。
図31の説明をする。印刷を要求する端末であるLM101が、LM101が属するセグメントの代表端末であるLR102に、他のセグメントに属するAM104に印刷させるための印刷要求を、ステップS101で通知する。この印刷要求には、印刷データと、印刷先セグメントと、印刷先とが含まれる。今の場合、印刷先セグメントは大阪であり、印刷先はAM104となっている。
次に、LR102が、印刷要求を通知するセグメントの代表端末であるAR105のIPアドレスを、宛先DB108をステップS102、103で参照することで取得する。
次に、LR102が、取得したAR105のIPアドレス宛に、ステップS104で印刷要求を通知する。この印刷要求は、IPsecを用いた通信で行われ、印刷データと印刷先とが含まれる。
次に、LR102が、印刷を実行する端末であるAM104のIPアドレスを、宛先DB110をステップS105、106で参照することで取得する。
AR105が、取得したAM104のIPアドレス宛に、印刷要求を通知する。この印刷要求には、印刷データが含まれる。
次に、図32の説明をする。印刷を要求する端末であるLM101が、印刷要求を通知するセグメントの代表端末であるAR105のIPアドレスを、LM101が属するセグメントの代表端末であるLR102に、ステップS201で要求する。
LR102が、AR105のIPアドレスを、宛先DB108をステップS202、203で参照することで取得する。
LR102が、取得したAR105のIPアドレスを、ステップS204でLM101に通知する。
LM101が、通知されたAR105のIPアドレス宛に、ステップS205で印刷要求を通知する。この印刷要求は、IPsecを用いた通信で行われ、印刷データと印刷先とが含まれる。
AR105が、印刷を実行する端末であるAM104のIPアドレスを、宛先DB110をステップS206、207で参照することで取得する。
AR105が、取得したAM104のIPアドレス宛に、ステップS208で印刷要求を通知する。この印刷要求には、印刷データが含まれる。
以上説明した処理は、基本シーケンスである。次の図33、34に示すフローチャートは、チェック処理を設けた処理を示すものである。このチェック処理は、事後チェックと事前チェックがあり、図33が事後チェックであり、図34が事前チェックである。事後チェックとは、AR105が、印刷データを通知された後にAM104が宛先DBに登録されているかどうか確認することである。事前チェックとは、印刷データを通知される前にAM104が宛先DBに登録されているかどうか確認することである。
まず、図33のフローチャートについて説明する。ステップS301は、印刷要求の通知である。このとき、印刷データと印刷先セグメントと印刷先も通知される。ステップS302は、宛先DBの参照が行われる。ステップS303で、印刷先セグメントが宛先DBに登録されているかどうか判断される。登録されていない場合、ステップS304で、要求元のLM101に印刷できないという内容のメールが送信され処理が終了する。
印刷先セグメントが登録されている場合、印刷要求により印刷データが転送される。ステップS305は、この印刷データの転送に成功したかどうかの判断が行われる。転送に失敗した場合、ステップS306で、LM101に印刷できないという内容のメールが送信され処理が終了する。
転送が成功すると、ステップS307で宛先DBの参照が行われる。ステップS308で、AM104のアドレスが宛先DBに登録されているかどうか判断される。AM104のアドレスが登録されていない場合、ステップS309で、AR105が印刷し、LM101またはLR102にAM104で印刷できないため、AR105が印刷したという内容のメールが送信され、AM104には印刷要求があったという内容のメールが送信され、処理が終了する。
AM104のアドレスが登録されている場合、ステップS310で、AM104に印刷要求が通知され、処理が終了する。
次に、図34のフローチャートについて説明する。ステップS401は、印刷要求の通知である。このとき、印刷データと印刷先セグメントと印刷先も通知される。ステップS402は、宛先DBの参照が行われる。ステップS403で、印刷先セグメントが宛先DBに登録されているかどうか判断される。登録されていない場合、ステップS404で、要求元のLM101に印刷できないという内容のメールが送信され処理が終了する。
印刷先セグメントが登録されている場合、LR102は、AM104が宛先DBに登録されているかどうかAR105に問い合わせる。AM104が登録されていない場合、LR102は、ステップS406でLM101に印刷できないという内容のメールを送信し、処理が終了する。
AM104が登録されている場合、印刷要求とともに印刷データが転送される。ステップS407は、この印刷データの転送に成功したかどうかの判断が行われる。転送に失敗した場合、ステップS408で、LR102に印刷できないという内容のメールが送信され処理が終了する。
転送が成功すると、ステップS409で、AM104に印刷要求が通知され、処理が終了する。
次に、本実施の形態の適用した画像形成装置の一実施例のソフトウェア構成図と、一実施例のハードウェア構成図を説明する。
図35を用いて、画像形成装置1に搭載されているソフトウェアについて説明する。図35には、画像形成装置1のプログラム群2と、画像形成装置起動部3と、ハードウェア資源4とが示されている。
画像形成装置起動部3は画像形成装置1の電源投入時に最初に実行され、アプリケーション層5およびコントローラ層6を起動する。例えば画像形成装置起動部3は、アプリケーション層5およびコントローラ層6のプログラムを、ハードディスク装置(以下、HDDと記す)などから読み出し、読み出した各プログラムをメモリ領域に転送して起動する。ハードウェア資源4は、スキャナ51と、プロッタ52と、オペレーションパネル53と、ファクシミリなどのハードウェアリソース50とを含む。
また、プログラム群2は、UNIX(登録商標)などのOS上に起動されているアプリケーション層5とコントローラ層6とを含む。アプリケーション層5は、プリンタ、コピー、ファックスおよびスキャナなどの画像形成に係るユーザーサービスにそれぞれ固有の処理を行うプログラムを含む。また、ネットワークプロトコル137、ネットワーク通信ドライバ138(いずれも図29参照)はOSに含まれる。
アプリケーション層5は、プリンタ用のアプリケーションであるプリンタアプリ20と、コピー用アプリケーションであるコピーアプリ21と、ファックス用アプリケーションであるファックスアプリ22と、スキャナ用アプリケーションであるスキャナアプリ23とを含む。これらアプリは、アプリケーション132(図24参照)に対応する。
また、コントローラ層6は、アプリケーション層5からの処理要求を解釈してハードウェア資源4の獲得要求を発生するコントロールサービス層7と、1つ以上のハードウェア資源4の管理を行ってコントロールサービス層7からの獲得要求を調停するシステムリソースマネージャ(以下、SRMと記す)40と、SRM40からの獲得要求に応じてハードウェア資源4の管理を行うハンドラ層8とを含む。
コントロールサービス層7は、ネットワークコントロールサービス(以下、NCSと記す)30、デリバリーコントロールサービス(以下、DCSと記す)31、オペレーションパネルコントロールサービス(以下、OCSと記す)32、ファックスコントロールサービス(以下、FCSと記す)33、エンジンコントロールサービス(以下、ECSと記す)34、メモリコントロールサービス(以下、MCSと記す)35、認証サービス(以下、CCSと記す)36、ユーザインフォメーションコントロールサービス(以下、UCSと記す)37、システムコントロールサービス(以下、SCSと記す)38など、一つ以上のサービスモジュールを含むように構成されている。
なお、コントローラ層6は予め定義されている関数により、アプリケーション層5からの処理要求を受信可能とするAPI43を有するように構成されている。OSは、アプリケーション層5およびコントローラ層6の各プログラムをプロセスとして並列実行する。
NCS30のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
例えばNCS30は、ネットワークを介して接続されるネットワーク機器とのデータ通信をhttpd(HyperText Transfer Protocol Daemon)により、HTTP(HyperText Transfer Protocol)で制御する。このNCS30は、ネットワーク制御部134に対応する。
DCS31のプロセスは、蓄積文書の配送などの制御を行う。OCS32のプロセスは、保守点検などを行うサービスマンやユーザと本体制御との間の情報伝達手段となる操作部の制御を行う。FCS33のプロセスは、アプリケーション層5からPSTNまたはISDN網を利用したファックス送受信、バックアップ用のメモリで管理されている各種ファックスデータの登録/引用、ファックス読み取り、ファックス受信印刷などを行うためのAPIを提供する。
ECS34のプロセスは、スキャナ51、プロッタ52、ハードウェアリソース50などのエンジンの制御を行う。MCS35のプロセスは、メモリの取得および解放、HDDの利用などのメモリ制御を行う。CCS36は、画像形成装置における認証一般を処理し、宛先判定部133(図24参照)に対応する。UCS37のプロセスは、ユーザ情報の管理を行う。
SCS38のプロセスは、アプリケーション管理、操作部制御、システム画面表示、LED表示、ハードウェア資源管理、割り込みアプリケーション制御などの処理を行う。
SRM40のプロセスは、SCS38と共にシステムの制御およびハードウェア資源4の管理を行うものである。例えばSRM40のプロセスは、スキャナ51やプロッタ52などのハードウェア資源4を利用する上位層からの獲得要求に従って調停を行い、実行制御する。
具体的に、SRM40のプロセスは獲得要求されたハードウェア資源4が利用可能であるかを判定し、利用可能であれば獲得要求されたハードウェア資源4が利用可能である旨を上位層に通知する。また、SRM40のプロセスは上位層からの獲得要求に対してハードウェア資源4を利用するためのスケジューリングを行い、例えば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成などの要求内容を直接実施している。
また、ハンドラ層8は後述するファックスコントロールユニット(以下、FCUと記す)の管理を行うファックスコントロールユニットハンドラ(以下、FCUHと記す)41と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリの管理を行うイメージメモリハンドラ(以下、IMHと記す)42とを含む。SRM40およびFCUH41は、予め定義されている関数によりハードウェア資源4に対する処理要求を送信可能とするエンジンI/F44を利用して、ハードウェア資源4に対する処理要求を行う。
このように、画像形成装置1は、各アプリケーションで共通的に必要な処理をコントローラ層6で一元的に処理することができる。
次に、画像形成装置1のハードウェア構成について説明する。
図36は、画像形成装置1の一実施例のハードウェア構成図を示す。画像形成装置1は、コントローラボード60と、オペレーションパネル53と、FCU68と、エンジン71と、スキャナ51と、プロッタ52とを含む。また、FCU68は、G3規格対応ユニット69と、G4規格対応ユニット70とを有する。
また、コントローラボード60は、CPU61と、ASIC66と、HDD65と、ローカルメモリ(MEM−C)64と、システムメモリ(MEM−P)63と、ノースブリッジ(以下、NBと記す)62と、サウスブリッジ(以下、SBと記す)73と、NIC74(Network Interface Card)と、USBデバイス75と、IEEE1394デバイス76と、セントロニクスデバイス77とを含む。
オペレーションパネル53は、コントローラボード60のASIC66に接続されている。また、SB73と、NIC74と、USBデバイス75と、IEEE1394デバイス76と、セントロニクスデバイス77は、NB62にPCIバスで接続されている。
また、FCU68と、エンジン71と、スキャナ51と、プロッタ52は、コントローラボード60のASIC66にPCIバスで接続されている。
なお、コントローラボード60は、ASIC66にローカルメモリ64、HDD65などが接続されると共に、CPU61とASIC66とがCPUチップセットのNB62を介して接続されている。このように、NB62を介してCPU61とASIC66とを接続すれば、CPU61のインタフェースが公開されていない場合に対応できる。
なお、ASIC66とNB62とはPCIバスを介して接続されているのでなく、AGP(Accelerated Graphics Port)67を介して接続されている。このように、図29のアプリケーション層5やコントローラ層6を形成する一つ以上のプロセスを実行制御するため、ASIC66とNB62とを低速のPCIバスでなくAGP35を介して接続し、パフォーマンスの低下を防いでいる。
CPU61は、画像形成装置1の全体制御を行うものである。CPU61は、NCS30、DCS31、OCS32、FCS33、ECS34、MCS35、CCS36、UCS37、SCS38、SRM40、FCUH41およびIMH42をOS上にそれぞれプロセスとして起動して実行させると共に、アプリケーション層5を形成するプリンタアプリ20、コピーアプリ21、ファックスアプリ22、スキャナアプリ23、外部アプリ中継モジュール24を起動して実行させる。
NB62は、CPU61、システムメモリ63、SB73およびASIC66を接続するためのブリッジである。システムメモリ63は、画像形成装置1の描画用メモリなどとして用いるメモリである。SB73は、NB62とPCIバス、周辺デバイスとを接続するためのブリッジである。また、ローカルメモリ64はコピー用画像バッファ、符号バッファとして用いるメモリである。
ASIC66は、画像処理用のハードウェア要素を有する画像処理用途向けのICである。HDD65は、画像データの蓄積、文書データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積などを行うためのストレージである。また、オペレーションパネル53は、ユーザからの入力操作を受け付けると共に、ユーザに向けた表示を行う操作部である。
以上説明した画像形成装置であれば、ネットワークへ接続し、宛先の指定をオペレーションパネルで行い、印刷もすることができる。また、HDD65に宛先DBを格納することも可能である。