(57)【要約】【課題】登録された分類情報に従って分類された宛先情報を効率よく管理する。【解決手段】ネットワークを介して情報を送信する宛先を示す宛先情報を管理するアドレス管理装置において、送信先に送信する際に用いる宛先情報を保持する登録宛先クラスと、登録宛先クラスを実体化したオブジェクトと関連を保持して、送信先の宛先情報を一括して管理するアドレス帳クラスと、所定の分類設計に従って分けられるカテゴリを保持するカテゴリクラスと、アドレス帳クラスが保持している情報を承継し、カテゴリクラスが保持するカテゴリに所属する宛先情報を保持する登録宛先クラスを実体化したオブジェクトと関連を保持することで、当該カテゴリに所属する宛先情報を管理する分類アドレス帳クラスと、を備える。【選択図】        図９
2007082012.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して情報を送信する宛先を示すアドレス情報を管理するアドレス管理装置において、
送信先に送信する際に用いる宛先情報を保持する宛先手段と、
前記宛先手段と関連を保持して、前記宛先情報を一括して管理するアドレス管理手段と、
所定の分類設計に従って分けられる分類情報を保持する分類手段と、
前記アドレス管理手段が保持している情報を承継し、前記分類手段が保持する前記分類情報に所属する前記宛先情報を保持する前記利用者宛先手段と関連を保持することで、前記情報に所属する前記宛先情報を管理する分類アドレス管理手段と、
を備えたことを特徴とするアドレス管理装置。
【請求項２】
前記分類手段は、異なる分類設計に従って分けられる分類情報として、分類設計毎に複数個存在すること、
を特徴とする請求項１に記載のアドレス管理装置。
【請求項３】
前記アドレス管理手段から前記宛先情報を取得して該宛先の一覧を前記利用者に提供し、該利用者により選択された宛先のリストを送信先一覧として生成する選択シート手段と、
をさらに備えたことを特徴とする請求項１又は２に記載のアドレス管理装置。
【請求項４】
前記分類アドレス管理手段から前記分類情報に所属する前記宛先情報を取得し、取得した前記宛先情報から、送信先一覧を生成する選択シート手段と、
をさらに備えたことを特徴とする請求項１又は２に記載のアドレス管理装置。
【請求項５】
ネットワークを介して情報を送信する宛先を示すアドレス情報を管理するアドレス管理方法において、
送信先に送信する際に用いる宛先情報を保持する宛先ステップと、
前記宛先ステップと関連を保持して、前記宛先情報を一括して管理するアドレス管理ステップと、
所定の分類設計に従って分けられる分類情報を保持する分類ステップと、
前記アドレス管理ステップが保持している情報を承継し、前記分類ステップが保持する前記分類情報に所属する前記宛先情報を保持する前記利用者宛先ステップと関連を保持することで、前記情報に所属する前記宛先情報を管理する分類アドレス管理ステップと、
を備えたことを特徴とするアドレス管理方法。
【請求項６】
前記分類ステップは、異なる分類設計に従って分けられる分類情報として、分類設計毎に複数個存在すること、
を特徴とする請求項５に記載のアドレス管理方法。
【請求項７】
前記アドレス管理ステップから前記宛先情報を取得して該宛先の一覧を前記利用者に提供し、該利用者により選択された宛先のリストを送信先一覧として生成する選択シートステップと、
をさらに備えたことを特徴とする請求項５又は６に記載のアドレス管理方法。
【請求項８】
前記分類アドレス管理ステップから前記分類情報に所属する前記宛先情報を取得し、取得した前記宛先情報から、送信先一覧を生成する選択シートステップと、
をさらに備えたことを特徴とする請求項５又は６に記載のアドレス管理方法。
【請求項９】
請求項５乃至請求項８のいずれか１つに記載されたアドレス管理方法をコンピュータで実行させることを特徴とするアドレス管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス管理装置、アドレス管理方法及びアドレス管理プログラムに関するものであり、特に送信先の宛先情報を分類して管理する技術に関するものである。
【背景技術】
【０００２】
従来、プリンタ、コピーおよびスキャナなどの複数の機能を一つの筐体内に収納した複合機が知られている。かかる複合機では、ＵＮＩＸ（登録商標）（Ｒ）などの汎用ＯＳ上に、プリンタアプリ、コピーアプリおよびスキャナアプリと呼ばれる複数のアプリケーションを搭載し、これらのアプリケーションの実行処理を切替えながら複数の機能を実現していた。
【０００３】
ところが、上記プリンタアプリ、コピーアプリおよびスキャナアプリは、それぞれエンジン制御、メモリ制御およびシステム制御などを別個におこなっているので、重複処理という無駄が生じていた。
【０００４】
このため、特許文献１では、複合機に搭載される複数のアプリケーションがそれぞれ担っていたエンジン制御、メモリ制御およびシステム制御などの処理を共通処理部分（プラットホーム）として各アプリケーションから括り出すことにより、アプリケーションの開発効率の向上を図っている。
【０００５】
また、特許文献２では、印刷装置に搭載される印刷制御ソフトウェアを、オブジェクト指向設計による複数のソフトウェア部品から構成し、かかる部品群の協調動作により印刷処理をおこなうこととしている。
【０００６】
【特許文献１】特開２００２−０８４３８３号公報
【特許文献２】特開平１１−３２７８８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、この特許文献１で開示されている発明は、ハードウェアを制御する処理部分を共通化するものであり、各アプリケーションの内部処理全般を共通化するものではないため、内部処理全般の開発効率が良くないという問題がある。つまり、複合機上のアプリケーションには、開発効率の向上を図るためには内部処理を共通化するうえで改善の余地が残されている。
【０００８】
たとえば、ＦＡＸやメールの送受信等に用いられる、利用者のアドレスを管理するアドレス管理処理は、複写機上の各アプリケーションに共通して存在する処理であるが、ハードウェアを直接制御する処理ではないため各アプリケーションで別個に実現されており、共通化することが可能である。
【０００９】
また、特許文献２で開示されている発明は、印刷制御ソフトウェアをオブジェクト指向設計による複数のソフトウェア部品から構成したものであり、アドレス管理して送信処理を制御するソフトウェア部品を開示したものではない。したがって、多機能化により多くのアドレス管理機能を搭載する複合機において、特許文献２で開示されている発明を応用して、アドレスを管理するソフトウェア部品を作成したとしても、送受信を行うアプリケーションの差異や、アドレスを分類する形式等の差異のため、利用者のアドレスを効率よく管理することは容易でない。
【００１０】
これらのことから、複合機に搭載される利用者のアドレスを管理する機能をいかにして効率よく実現するかが大きな課題となっている。なお、かかる課題は複合機についてのみ生じるものではなく、たとえば、ネットワークを介してメールやＦＡＸ等の情報を送受信する際に用いられるアドレスを管理するアドレス管理装置を形成するような場合にも同様に生ずる課題である。
【００１１】
本発明は、上記に鑑みてなされたものであって、登録された分類情報に従って分類された宛先情報を効率よく管理するアドレス管理装置、アドレス管理方法及びアドレス管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、ネットワークを介して情報を送信する宛先を示すアドレス情報を管理するアドレス管理装置において、送信先に送信する際に用いる宛先情報を保持する宛先手段と、前記宛先手段と関連を保持して、前記宛先情報を一括して管理するアドレス管理手段と、所定の分類設計に従って分けられる分類情報を保持する分類手段と、前記アドレス管理手段が保持している情報を承継し、前記分類手段が保持する前記分類情報に所属する前記宛先情報を保持する前記利用者宛先手段と関連を保持することで、前記情報に所属する前記宛先情報を管理する分類アドレス管理手段と、を備えたことを特徴とする。
【００１３】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記分類手段は、異なる分類設計に従って分けられる分類情報として、分類設計毎に複数個存在すること、を特徴とする。
【００１４】
また、請求項３にかかる発明は、請求項１又は２にかかる発明において、前記アドレス管理手段から前記宛先情報を取得して該宛先の一覧を前記利用者に提供し、該利用者により選択された宛先のリストを送信先一覧として生成する選択シート手段とをさらに備えたことを特徴とする。
【００１５】
また、請求項４にかかる発明は、請求項１又は２にかかる発明において、前記分類アドレス管理手段から前記分類情報に所属する前記宛先情報を取得し、取得した前記宛先情報から、送信先一覧を生成する選択シート手段と、をさらに備えたことを特徴とする。
【００１６】
また、請求項５にかかる発明は、ネットワークを介して情報を送信する宛先を示すアドレス情報を管理するアドレス管理方法において、送信先に送信する際に用いる宛先情報を保持する宛先ステップと、前記宛先ステップと関連を保持して、前記宛先情報を一括して管理するアドレス管理ステップと、所定の分類設計に従って分けられる分類情報を保持する分類ステップと、前記アドレス管理ステップが保持している情報を承継し、前記分類ステップが保持する前記分類情報に所属する前記宛先情報を保持する前記利用者宛先ステップと関連を保持することで、前記情報に所属する前記宛先情報を管理する分類アドレス管理ステップと、を備えたことを特徴とする。
【００１７】
また、請求項６にかかる発明は、請求項５にかかる発明において、前記分類ステップは、異なる分類設計に従って分けられる分類情報として、分類設計毎に複数個存在すること、を特徴とする。
【００１８】
また、請求項７にかかる発明は、請求項５又は６にかかる発明において、前記アドレス管理ステップから前記宛先情報を取得して該宛先の一覧を前記利用者に提供し、該利用者により選択された宛先のリストを送信先一覧として生成する選択シートステップとをさらに備えたことを特徴とする。
【００１９】
また、請求項８にかかる発明は、請求項５又は６にかかる発明において、前記分類アドレス管理ステップから前記分類情報に所属する前記宛先情報を取得し、取得した前記宛先情報から、送信先一覧を生成する選択シートステップと、をさらに備えたことを特徴とする。
【００２０】
また、請求項９にかかる発明は、請求項５〜請求項８のいずれか１つに記載されたアドレス管理方法をコンピュータで実行させることを特徴とする。
【発明の効果】
【００２１】
請求項１にかかる発明によれば、アドレス管理手段の情報を承継して、分類情報に所属する宛先情報を管理する分類アドレス管理手段を備えた構成により、登録された分類情報に従って分類された宛先情報を効率よく管理するという効果を奏する。
【００２２】
また、請求項２にかかる発明によれば、分類設計に従って複数個の分類を保持できるので、利用者の要求に応じた分類情報で宛先を管理することができるという効果を奏する。
【００２３】
また、請求項３にかかる発明によれば、管理している宛先情報から、送信先一覧を生成する構成としたことで、ソフトウェア開発者やソフトウェア保守要員が、機能追加や改修を容易におこなうことができるとともに、アドレス帳の管理処理を効率よく実現することができるという効果を奏する。
【００２４】
また、請求項４にかかる発明によれば、分類毎に管理している宛先情報から、送信先一覧を生成する構成としたことで、ソフトウェア開発者やソフトウェア保守要員が、機能追加や改修を容易におこなうことができるとともに、アドレス帳の管理処理を効率よく実現することができるという効果を奏する。
【００２５】
請求項５にかかる発明によれば、アドレス管理ステップの情報を承継して、分類情報に所属する宛先情報を管理する分類アドレス管理ステップを備えた処理手順により、登録された分類情報に従って分類された宛先情報を効率よく管理するという効果を奏する。
【００２６】
また、請求項６にかかる発明によれば、分類設計に従って複数個の分類を保持できるので、利用者の要求に応じた分類情報で宛先を管理することができるという効果を奏する。
【００２７】
また、請求項７にかかる発明によれば、管理している宛先情報から、送信先一覧を生成する構成としたことで、ソフトウェア開発者やソフトウェア保守要員が、機能追加や改修を容易におこなうことができるとともに、アドレス帳の管理処理を効率よく実現することができるという効果を奏する。
【００２８】
また、請求項８にかかる発明によれば、分類毎に管理している宛先情報から、送信先一覧を生成する構成としたことで、ソフトウェア開発者やソフトウェア保守要員が、機能追加や改修を容易におこなうことができるとともに、アドレス帳の管理処理を効率よく実現することができるという効果を奏する。
【００２９】
また、請求項９にかかる発明によれば、コンピュータに読み取らせて実行することによって、請求項５〜８のいずれか一つに記載されたアドレス管理方法をコンピュータの利用で実現することができ、これら各アドレス管理方法と同様の効果を奏する。
【発明を実施するための最良の形態】
【００３０】
以下に添付図面を参照して、この発明にかかるアドレス管理装置、アドレス管理方法及びアドレス管理プログラムの最良な実施の形態を詳細に説明する。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、アドレス管理処理をおこなう各種装置に適用することができる。
【００３１】
まず、本発明の第１の実施の形態に係る画像形成装置（以下「複合機」と言う）１の概要について図１、図２、図３、図４、図１５および図１６を用いて説明する。図１は、本実施の形態に係る複合機１を取り巻くネットワーク環境を説明するためのネットワーク図であり、図２は、図１に示した複合機１のハードウェア構成を示すブロック図であり、図３は、図１に示した複合機１のソフトウェアとハードウェアの関係を説明するための概念図である。図４は、複合機１の操作パネル４００の一例を示した図である。そして、図１５は、複合機に搭載されるソフトウェア構成の変遷を説明するための説明図であり、図１６は、従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。
【００３２】
図１に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたＰＣ（Personal Computer）などの機器は、ＬＡＮ（Local Area Network）などのネットワークに接続され、相互に通信することが通常となった。たとえば、本図に示したように、かかるネットワークには、クライアントＰＣ、ＳＭＴＰ（Simple Mail Transfer Protocol）サーバ、ＦＴＰ（File Transfer Protocol）サーバ、サーバＰＣなどが接続され、電子メールの送受信やファイル転送をすることができ、モデム接続された配信サーバは、オフィス外のファックス装置と通信することができる。
【００３３】
このようなネットワーク化の進展に伴い、複合機１もかかるネットワークに接続され、ＰＣ等の機器と相互に通信することが可能となり、ハードディスク等の記憶装置を内蔵することで、いわゆるネットワーク複合機へと進化し、ユーザの様々なニーズに応えることができるようになった。
【００３４】
具体的には、複合機１は、通常のコピー機能に加えて、クライアントＰＣからの印刷要求により文書データ等を印刷するプリンタ機能、クライアントＰＣからのファックス要求により文書データ等をサーバＰＣに接続されたモデムを経由して他のオフィスのファックス機器に送信するファックス機能、受信したファックス文書やコピー文書を内蔵したハードディスクに蓄積する蓄積機能などを有している。このような多くの機能を実現するために、従来からの複合機に搭載されるソフトウェアは規模が大きくなり、かつ複雑なものとなる。それにともない、それらのソフトウェアの開発と維持管理のための工数も大幅に増大している。そこで本実施の形態にかかる複合機１に搭載されるソフトウェアでは、開発と維持管理のための工数を減少させる。なお、複合機１に搭載されるソフトウェアの構成については後述する。
【００３５】
図２は、かかる複合機１のハードウェア構成を示すブロック図である。本図に示すように、この複合機１は、コントローラ１０とエンジン部（Engine）６０とをＰＣＩ（Peripheral Component Interconnect）バスで接続した構成となる。コントローラ１０は、複合機１全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部６０は、ＰＣＩバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部６０には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
【００３６】
コントローラ１０は、ＣＰＵ１１と、ノースブリッジ（ＮＢ）１３と、システムメモリ（ＭＥＭ−Ｐ）１２と、サウスブリッジ（ＳＢ）１４と、ローカルメモリ（ＭＥＭ−Ｃ）１７と、ＡＳＩＣ（Application Specific Integrated Circuit）１６と、ハードディスクドライブ（ＨＤＤ）１８とを有し、ノースブリッジ（ＮＢ）１３とＡＳＩＣ１６との間をＡＧＰ（Accelerated Graphics Port）バス１５で接続した構成となる。また、ＭＥＭ−Ｐ１２は、ＲＯＭ（Read Only Memory）１２ａと、ＲＡＭ(Random Access Memory)１２ｂとをさらに有する。
【００３７】
ＣＰＵ１１は、複合機１の全体制御をおこなうものであり、ＮＢ１３、ＭＥＭ−Ｐ１２およびＳＢ１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【００３８】
ＮＢ１３は、ＣＰＵ１１とＭＥＭ−Ｐ１２、ＳＢ１４、ＡＧＰ１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ１２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを有する。
【００３９】
ＭＥＭ−Ｐ１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ１２ａとＲＡＭ１２ｂとからなる。ＲＯＭ１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【００４０】
ＳＢ１４は、ＮＢ１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ１４は、ＰＣＩバスを介してＮＢ１３と接続されており、このＰＣＩバスには、ネットワークインターフェース（Ｉ／Ｆ）部なども接続される。
【００４１】
ＡＳＩＣ１６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Integrated Circuit）であり、ＡＧＰ１５、ＰＣＩバス、ＨＤＤ１８およびＭＥＭ−Ｃ１７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ１６は、ＰＣＩターゲットおよびＡＧＰマスタと、ＡＳＩＣ１６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ１７を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のＤＭＡＣ（Direct Memory Access Controller）と、エンジン部６０との間でＰＣＩバスを介したデータ転送をおこなうＰＣＩユニットとからなる。このＡＳＩＣ１６には、ＰＣＩバスを介してＦＣＵ（Fax Control Unit）３０、ＵＳＢ（Universal Serial Bus）４０、ＩＥＥＥ１３９４（the Institute of Electrical and Electronics Engineers 1394）インターフェース５０が接続される。
【００４２】
ＭＥＭ−Ｃ１７は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ＨＤＤ（Hard Disk Drive）１８は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
【００４３】
ＡＧＰ１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ１２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【００４４】
図３は、かかる複合機１のハードウェアおよびソフトウェアの構成を示した概念図であり、具体的には、後述する本実施の形態の特徴部分であるアドレス帳管理部１１２ａを含む統合アプリケーション１１０と、ソフトウェア１００およびハードウェア１５０の階層関係を示している。本図に示すように、ハードウェア１５０は、ハードウェアリソース１５１を有し、このハードウェアリソース１５１は、スキャナ１５１ａ、プロッタ１５１ｂ、ＨＤＤ（Hard Disk Drive）１５１ｃ、ネットワーク１５１ｄおよびその他のリソース１５１ｅを有する。なお、その他のリソース１５１ｅは、１５１ａ〜１５１ｄ以外のハードウェアリソース１５１のことであり、たとえば、操作パネルなどの入出力デバイスを示す。
【００４５】
図４は、複合機１の操作パネル４００の一例を示した図である。本図に示したように、かかる操作パネル４００は、初期設定キー４０１、コピーキー４０２、コピーサーバーキー４０３、プリンタキー４０４、送信キー４０５、テンキー４０６、クリア／ストップキー４０７、スタートキー４０８、予熱キー４０９、リセットキー４１０および液晶タッチパネル４２０を有する。このような構成を有する操作パネル４００でユーザが所定の操作を行った場合に、統合アプリケーション１１０に含まれている本実施の形態の特徴である各クラスを実体化したオブジェクトが動作する。
【００４６】
例えば、初期設定キー４０１をタッチすると、液晶タッチパネル４２０に初期設定用のメニューが表示され、かかるメニューにおいては、収納される用紙サイズなどを設定することができる。また、コピーをしたい場合にはコピーキー４０２を、コピー結果を複合機１に蓄積したい場合にはコピーサーバーキー４０３を、プリンタに係る操作をおこないたい場合には、プリンタキー４０４を、ファックスや蓄積画像などの送信をしたい場合には送信キー４０５を、それぞれタッチすると、液晶タッチパネル４２０に対応したメニューが表示される。
【００４７】
図３に戻り、かかるハードウェア１５０に搭載されるソフトウェア１００は階層化されており、オペレーティングシステム１０３の上層にはサービス層１０２が構築され、このサービス層１０２の上層にはアプリケーション層１０１が構築されている。そして、サービス層１０２は、各ハードウェアリソース（１５１ａ〜１５１ｅ）を制御するドライバーに相当する、スキャナ制御部１０２ａ、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ、配信／メール送受信制御部１０２ｄ、ＦＡＸ送受信制御部１０２ｅ、ネットワーク通信制御部１０２ｆおよびその他の制御部１０２ｇを有する。
【００４８】
ここで、図３に示したソフトウェア１００が、かかる階層構造をとるに至った経緯について、図１５および図１６を用いて説明する。図１５は、複合機に搭載されるソフトウェア構成の変遷を示す説明図である。図１５のサービス層分離前アプリケーション２００１に示すように、多機能化した複合機に搭載されるソフトウェアは、コピーアプリケーション、ＦＡＸアプリケーション、スキャナアプリケーションなどの機能別に独立したアプリケーションとして作成され、図３に示したオペレーティングシステム１０３上で動作していた。
【００４９】
しかしながら、これらのアプリケーションは、ハードウェアリソースを制御するドライバー（サービス層１０２）を含んでいたため、各アプリケーションには重複した処理が存在していた。その結果、各アプリケーションの規模は大きなものとなっていた。
【００５０】
そこで、図１５のサービス層分離後アプリケーション２００２に示すように、サービス層分離前アプリケーション２００１のサービス層相当部分を括りだしてサービス層１０２にするとともに、各アプリケーションは、このサービス層１０２の上層であるアプリケーション層１０１に構築する構成とした。かかる階層化構成をとることで、各アプリケーションはスリム化され開発労力も軽減された。
【００５１】
しかしながら、複合機のネットワーク化、多機能化がさらに進展するに従って、各アプリケーションに共通処理部分が存在することが問題となってきた。具体的には、アプリケーション層１０１の各アプリケーション、たとえば、コピーアプリケーションやスキャナアプリケーションなどは、それぞれ、スキャナ制御部１０２ａや蓄積制御部１０２ｃといったドライバーと通信をおこなう処理や、各種機能が取り扱うデータの流れを制御するアドレス管理などの同様な処理を内部に有していた。このように、同様な処理を各アプリケーションが有していると、各アプリケーションの開発規模が大きくなるとともに、サービス層の仕様変更に対する各アプリケーションの改修規模が大きくなることが問題となってきた。
【００５２】
この問題を解決するため、図１５の共通ルーチン分離アプリケーション２００３に示すように、かかる同様な処理（共通処理部分）を共通ルーチンとして括りだすことも考えられた。しかしながら、かかる共通ルーチンは、各アプリケーションにおいて微妙に異なる処理を共通化しようとするものであるため、共通ルーチン内部の処理は複雑なものとなってしまう。また、たとえば、プリンタアプリケーションなどの新規アプリケーションを追加する場合においては、かかる新規アプリケーションに適応するために、共通ルーチンの改修が必要となる。
【００５３】
しかし、共通ルーチンの内部処理は複雑であるため、改修要員が処理を把握することが困難となり、改修規模の増大や、改修ミスによる他のアプリケーションへの影響が懸念された。
【００５４】
そこで、図１５のオブジェクト指向アプリケーション２００４に示すように、オブジェクト指向による設計手法（オブジェクトモデリング）により、かかる複数のアプリケーションを、統合アプリケーション１１０に統合することとした。具体的には、各アプリケーションの共通処理部分をオブジェクトモデルとして抽出し、このオブジェクトモデルの集合体から、統合アプリケーション１１０を構成する。そして、従来のコピー機能やスキャナ機能といった機能は、かかるオブジェクトモデルの協調関係によって実現する。
【００５５】
このような構成をとることにより、たとえばプリンタ機能のような新規機能の追加は、かかるオブジェクトモデルに属するクラスのサブクラス化などにより対処できる。このため、改修部分が明確となり、改修による他の機能への影響を小さくすることができる。また、オブジェクトモデリングによるプログラムは、従来の手続き型プログラムに比べて、処理の把握が容易であるため、改修要員が処理を把握することも容易となり、改修規模の削減や、改修ミスによる他のアプリケーションへの影響を小さくすることができる。
【００５６】
図１６は、図１５に示したサービス層分離後アプリケーション２００２の段階における従来のアプリケーションの構成と、かかるアプリケーションとサービス層１０２の各ドライバーの関係を示した説明図である。本図に示すように、アプリケーション層１０１Ａは、コピーアプリケーション１２１、スキャナアプリケーション１２２、ファックスアプリケーション１２３およびプリンタアプリケーション１２４を有する。
【００５７】
たとえば、コピーアプリケーション１２１は、コピー機能を実現するために、スキャナ制御部１０２ａ、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃおよびその他の制御部１０２ｇとデータの送受信をおこなう。また、ファックスアプリケーション１２３は、ファックス機能を実現するために、プロッタ制御部１０２ｂ、蓄積制御部１０２ｃ、ＦＡＸ送受信制御部１０２ｅ、ネットワーク通信制御部１０２ｆおよびその他の制御部１０２ｇとデータの送受信をおこなう。このように、アプリケーション層１０１Ａの各アプリケーションとサービス層１０２の各ドライバー間の通信は、複雑なものとなっていた。
【００５８】
図３に戻り、上述したオブジェクトモデリングにより、アプリケーション層１０１に存在した複数のアプリケーションは、統合アプリケーション１１０に統合されている。そして、各アプリケーションが重複しておこなっていた各ドライバーとの通信処理は、統合アプリケーション１１０を構成する所定のオブジェクトモデルにおこなわせるように構成したことにより、アプリケーション層１０１のアプリケーションと、サービス層１０２の各ドライバー間の通信は、図１６と比較して単純になっている。
【００５９】
次に、統合アプリケーション１１０の内部構成について説明する。図５は、統合アプリケーション１１０の内部構成、及び統合アプリケーション１１０内における後述する本実施の形態の特徴的部分であるアドレス帳管理部１１２ａの位置についての説明図である。本図に示すように、統合アプリケーション１１０は、操作系サブシステム１１１と、管理系サブシステム１１２と、実行系サブシステム１１３とを有する。
【００６０】
操作系サブシステム１１１は、マンマシンインタフェースを担当するソフトウェア群である。具体的には、この操作系サブシステム１１１は、ユーザの要求を受け付ける処理と、この要求の実行を指示する処理と、この要求の実行状況と実行結果についての情報をユーザに提供する処理をおこなう。
【００６１】
管理系サブシステム１１２は、画像形成装置１の資源を管理するソフトウェア群である。具体的には、この管理系サブシステム１１２は、ハードウェアリソース１５０およびこのハードウェアリソース１５０が保持するデータ状態を管理するサービスをおこなう。
【００６２】
実行系サブシステム１１３は、ユーザからの要求の実行を担当するソフトウェア群である。具体的には、この実行系サブシステム１１３は、コピー要求がなされた場合には、原稿の読み取りから成果物の出力までの処理をおこなう。
【００６３】
操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３は、必要に応じて相互に処理を依頼してその結果を送り合う。このようにそれぞれのサブシステムが協調し合って、統合アプリケーション１１０全体として複合機１に必要とされるサービスの提供をおこなう。
【００６４】
そして、管理系サブシステム１１２は、本実施の形態の特徴部分であるアドレス帳管理部１１２ａを有する。このアドレス帳管理部１１２ａは、利用者のアドレスを管理して、送信処理を行うアプリケーションの差異を吸収し、利用者に登録されたカテゴリに従って分類されたアドレスを効率よく管理する処理（アドレス管理処理）をおこなう。
【００６５】
図６は、図５に示した各サブシステムを、ＵＭＬ（Unified Modeling Language）のクラス図（ＵＭＬクラス図）に置換えた図である。ここで、ＵＭＬとは、ＯＭＧ（Object Management Group）という団体がまとめたシステムモデリング言語であり、システムモデリングの成果を記述する記法を定義したものである。そして、このＵＭＬは、オブジェクト指向によるソフトウェア開発において、一般的に用いられている。
【００６６】
図６に示すように、統合アプリケーション１１０は複数のパッケージを含み、この統合アプリケーション１１０自体もパッケージととらえることができる。ここで、パッケージとはＵＭＬモデルの各構成要素（シンボル）をグループ化したものであり、このパッケージは、左上にタブのついたフォルダ型のシンボルで表現する。なお、かかるパッケージは、上述したオブジェクトモデルあるいはオブジェクトモデルの集合体ととらえることもできる。
【００６７】
図６に示したように、統合アプリケーション１１０は、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３の３つのパッケージを内部に有するパッケージである。さらに、管理系サブシステム１１２は、アドレス帳管理部１１２ａのパッケージを内部に有するパッケージである。そして、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３を相互に結ぶ直線は、各パッケージ間にメッセージ送受信などの関連があることを示している。なお、操作系サブシステム１１１、管理系サブシステム１１２および実行系サブシステム１１３のタブの右端に記された記号は、かかるパッケージがサブシステムであることを示すＵＭＬのシンボルである。
【００６８】
次に、本実施形態の特徴部分であるアドレス帳管理部１１２ａについて詳細に説明する。アドレス帳管理部１１２ａは、登録宛先をアドレス帳で管理し、このアドレス帳を書棚に格納し、必要に応じて書棚からアドレス帳を取り出し、必要が無くなった時点でアドレス帳を書棚にしまうという概念を導入する。そして、アドレス帳をカテゴリ毎に分類して管理するために、アドレス帳の情報を承継した分類アドレス帳という概念を導入する。これにより利用者の要求に応じてアドレス帳を分類することが容易になる。
【００６９】
図７は、カテゴリにより分類されたアドレス帳を用いた場合に表示されるアドレス選択の画面例を示した図である。本図に示すように、分類アドレス帳という概念を導入したことで、利用者の要求に従ってアドレス帳をカテゴリ毎に分類して、利用者に選択されたカテゴリに含まれるアドレスを表示し、さらに利用者から他のカテゴリが選択された場合に、他のカテゴリに含まれるアドレスを表示することが容易になる。
【００７０】
また、アドレス帳と分類アドレス帳を別のクラスと用意することで、利用者がアイウエオ順でアドレス帳を分類したい場合、「ア行」、「カ行」等のカテゴリで分類された分類アドレス帳を作成することができる。その後、利用者がアドレス帳を事業部毎に分類したい場合に、事業部毎に分類されたアドレス帳を作成することが可能となる。つまり、必要に応じて必要な分類設計で分類されたアドレス帳を追加することができる。
【００７１】
図８は、アドレス帳を登録してから、カテゴリ毎に宛先を登録する際の画面フローを示した図である。本図に示すように、まず図８の（a）において、利用者の必要に応じてアドレス帳を登録する。そして、図８の（ｂ）において、登録されたアドレス帳に対して、カテゴリを登録する。
【００７２】
次に、図８の（ｃ）において、登録されたカテゴリ毎に利用者の宛先を登録する。なお、この登録の際に他のアドレス帳に登録された利用者の宛先を読み込んで登録することができる。これは読込ボタン８０１を押下して、他のアドレス帳を選択等により行うことを可能とする。この際に、図８の（ｂ）で登録されたカテゴリを選択する必要がある。これにより、入力された宛先が所望のカテゴリに登録されることになる。
【００７３】
そして、図８の（ｄ）は、（ｃ）で登録ボタン８０２を押下された場合の画面を示しており、宛先名欄に入力されていた名前が、カテゴリとなるチームＢに登録されていることが理解できる。
【００７４】
そして、以下に、このような処理手順を可能とするアドレス帳管理部１１２ａの構成について説明する。
【００７５】
図９は、上述したオブジェクトモデリングにより設計されたアドレス管理に用いるクラス構成をＵＭＬのクラスで示した図である。本図に示すように、アドレス帳管理部１１２ａは、書棚クラス９１０と、アドレス帳クラス９２０と、登録宛先クラス９３０と、分類アドレス帳クラス９４０と、カテゴリクラス９５０と、選択シートクラス９８０と、送付状クラス９６０と、送付宛先クラス９７０と、を備えている。このような構成を備えたことで、文書処理が容易になる。
【００７６】
また、クラスとは、オブジェクト指向システムを構成するオブジェクトの設計図に相当する概念であり、このクラスは、データと処理を一体化（カプセル化）して内部に有するとともに、継承関係や集約関係といった、他のクラスとの静的な関係を有する。そして、クラス図においては、各クラスが内部に有するデータおよび処理、複数のクラス間の静的な関係が表される。
【００７７】
各クラスを示す矩形は３段の区画を有し、上から、クラス名を示す名前区画、クラスが有するデータ（属性）を示す属性区画およびクラスが有する処理（操作）を示す操作区画と呼ばれる。たとえば、登録宛先クラス９３０を示す矩形の名前区画は、かかるクラスのクラス名が「登録宛先」であることを示し、属性区画は、かかるクラスが有する属性が、「識別子」と「宛先情報」であることを示し、操作区画は、かかるクラスが有する操作が、「設定する（）」と「取得する（）」と「登録する（）」であることを示している。
【００７８】
このように、各クラスは、データ（属性）を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理（操作）を所持するための操作区画とを有している。これらのクラスは、プログラム（統合アプリケーション１１０）の一部として含まれるので、あらかじめＲＯＭ１２ａに格納されたこのプログラムが実行されると、各クラスはＲＡＭ１２ｂの所定領域に実体化され、属性区画に含まれる各データ（属性）がＲＡＭ１２ｂ上に展開される。したがって、クラスを実体化したオブジェクトは、ＲＡＭ１２ｂ上の各データ（属性）の書き込みおよび読み出しをすることが可能となる。
【００７９】
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「＋」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「取得する（）」のように「（）」記号を付することが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
【００８０】
（各クラスの説明）
次に、図９に示した各クラスについて説明する。書棚クラス９１０は、複数のアドレス帳を管理して各アドレス帳間の一貫性を保つクラスであり、複数のアドレス帳オブジェクト９２０Ａの中からキーアドレス帳を指定するとともに、宛先情報の一括更新（アドレス帳の差替え）要求を受け付けたならば、すべてのアドレス帳オブジェクト９２０Ａに、かかる宛先情報の更新を反映させる処理をおこなうクラスである。具体的には、この書棚クラス９１０は、属性として、状態９１０ａを有し、操作として、登録する（）９１０ｂと、差し替える（）９１０ｃと、差し替え終了（）９１０ｄと、取り出す（）９１０ｅと、しまう()９１０ｆと、を有する。なお、かかる書棚クラス９１０を実体化したオブジェクトが生成されると、状態９１０ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。この生成は、すべてのオブジェクトが有する操作であり、この生成を呼び出すことにより各オブジェクトはＲＡＭ１２ｂ上に実体化される。
【００８１】
状態９１０ａは、書棚クラス９１０を実体化したオブジェクトの現在の公開状態を保持している。状態９１０は、状態情報として、「公開中」と「非公開中」のいずれか１つが選択されている。「公開中」は、所有するアドレス帳を取り出し可能な通常の状態を示している。ここで、アドレス帳の取出しとは、書棚クラス９１０が管理するアドレス帳オブジェクト９２０Ａが保持する宛先情報を参照することをいう。「非公開中」は、アドレス帳を取り出せない状態を示しており、例えばアドレス帳の差し替え（一括更新）等を行っている場合が考えられる。
【００８２】
登録する（）９１０ｂは、管理対象となるアドレス帳を登録する。そして、登録する（）９１０ｂが呼び出された場合、アドレス帳クラス９２０を実体化したオブジェクトの生成、またはアドレス帳オブジェクト９２０Ａのサブクラスである分類アドレス帳クラス９４０を実体化したオブジェクトの生成を行う。なお、どちらを生成するかは、登録する（）９１０ｂが呼び出された際に用いられた引数等により判断する。
【００８３】
差し替える（）９１０ｃは、生成されたアドレス帳オブジェクト９２０Ａ又は分類アドレス帳オブジェクト９４０Ａの一括更新を行う。なお、一括更新方法としては、現在知られている方法を問わずどのような方法を用いても良い。これにより、アドレス帳間の共通情報の一貫性が保持されることになる。
【００８４】
差し替え終了（）９１０ｄは、アドレス帳の一括更新終了した際に、差し替えが終了したことを認識するために、書棚クラス９１０自身が呼び出す。これにより、実行系サブシステム１１３に対して通知等がなされ、利用者が差し替えが終了したことを認識することができる。
【００８５】
取り出す（）９１０ｅは、操作系サブシステム１１１から呼び出され、所望するアドレス帳オブジェクト９２０Ａ又は分類アドレス帳オブジェクト９４０Ａを特定する。これにより、当該アドレス帳オブジェクト９２０Ａ又は分類アドレス帳オブジェクト９４０Ａの閲覧等が可能になる。
【００８６】
しまう()９１０ｆは、取り出す（）９１０ｅにより特定されたアドレス帳オブジェクト９２０Ａ又は分類アドレス帳オブジェクト９４０Ａの参照等を終了したことを通知する。
【００８７】
アドレス帳クラス９２０は、アドレス帳に登録された利用者の宛先を管理し、さらに宛先情報の読み書きを管理するクラスである。具体的には、このアドレス帳クラス９２０は、属性として、可能操作９２０ａおよび状態９２０ｂを有し、操作として、作成する（）９２０ｃ、改訂する（）９２０ｄ、編集開始（）９２０ｅ、編集終了（）９２０ｆ、閲覧開始（）９２０ｇ、閲覧終了（）９２０ｈ、破棄通知（）９２０ｉを有する。なお、かかるアドレス帳クラス９２０を実体化したオブジェクトが生成されると、可能操作９２０ａおよび状態９２０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。また、このアドレス帳クラス９２０は、分類アドレス帳クラス９４０の上位クラス（スーパークラス）であり、アドレス帳クラス９２０の属性および操作は、下位クラス（サブクラス）である分類アドレス帳クラス９４０に継承される。
【００８８】
可能操作９２０ａは、当該アドレス帳オブジェクト９２０Ａと関連(リンク情報)を保持している登録宛先オブジェクト９３０Ａが保持する宛先情報で特定される利用者又は複合機１を使用する利用者から、受け付けることが可能な操作を保持している。操作としては、例えば編集・閲覧可能又は閲覧等が考えられるが、あらゆる操作を設定することができる。
【００８９】
状態９２０ｂは、現在のアドレス帳オブジェクト９２０Ａの公開状態を保持している。状態９２０ｂは、状態情報として、「未使用中」と「編集中」と「閲覧中」と「使用不可能」のいずれか１つが選択されている。「未使用中」は、どの利用者からも使用されていない状態を示している。「編集中」は、後述する編集開始（）９２０ｅが呼びだされた状態で、利用者がアドレス帳に登録された宛先情報を編集している状態を示している。「閲覧中」は、後述する閲覧開始（）９２０ｇが呼び出された状態で、利用者がアドレス帳に登録された宛先情報を閲覧している状態を示している。「使用不可能」は、後述する改訂する（）９２０ｄが呼び出されてアドレス帳に登録された宛先情報の一括更新等をしているため、使用できない状態を示している。
【００９０】
作成する（）９２０ｃは、書棚オブジェクト９１０Ａから呼び出され、生成された当該アドレス帳オブジェクト９２０Ａを初期化する。
【００９１】
改訂する（）９２０ｄは、書棚オブジェクト９１０Ａから呼び出され、当該アドレス帳オブジェクト９２０Ａに登録された宛先情報を一括更新する。
【００９２】
編集開始（）９２０ｅは、書棚オブジェクト９１０Ａから呼び出され、当該アドレス帳オブジェクト９２０Ａの編集開始を宣言する。これにより利用者はアドレス帳を編集することができる。また、編集開始を宣言したときに、当該アドレス帳オブジェクト９２０Ａと、関連（リンク情報）を保持する選択シートオブジェクト９８０Ａが生成されている場合、選択シートオブジェクト９８０Ａの取り消す（）９８０ｆを呼び出す。
【００９３】
編集終了（）９２０ｆは、書棚オブジェクト９１０Ａから呼び出され、当該アドレス帳オブジェクト９２０Ａの編集が終了したことを宣言する。
【００９４】
閲覧開始（）９２０ｇは、書棚オブジェクト９１０Ａから呼び出され、当該アドレス帳オブジェクト９２０Ａの閲覧開始を宣言する。また、閲覧開始を宣言したときに、アドレス帳オブジェクト９２０Ａは選択シートオブジェクト９８０Ａを生成する。そして選択シートオブジェクト９８０Ａが、当該アドレス帳オブジェクト９２０Ａから送信先となる宛先情報を取得することになる。
【００９５】
閲覧終了（）９２０ｈは、書棚オブジェクト９１０Ａから呼び出され、当該アドレス帳オブジェクト９２０Ａの閲覧が終了したことを宣言する。
【００９６】
破棄通知（）９２０ｉは、後述する選択シートオブジェクト９８０Ａから呼び出され、情報の送付等が行われた旨を認識する。
【００９７】
分類アドレス帳クラス９４０は、アドレス帳クラス９２０のサブクラスであり、登録された宛先をカテゴリ毎に分類して管理するクラスである。具体的には、この分類アドレス帳クラス９４０は、アドレス帳クラス９２０から、属性として可能操作９２０ａおよび状態９２０ｂを、操作として作成する（）９２０ｃ、改訂する（）９２０ｄ、編集開始（）９２０ｅ、編集終了（）９２０ｆ、閲覧開始（）９２０ｇ、閲覧終了（）９２０ｈ、破棄通知（）９２０ｉを承継し、さらに操作として、分類する（）９４０ａ、宛先を取得する（）９４０ｂ、カテゴリを登録する（）９４０ｃ、宛先を登録する（）９４０ｄを有する。なお、かかる分類アドレス帳クラス９４０を実体化したオブジェクトが生成されると、可能操作９２０ａおよび状態９２０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００９８】
分類する（）９４０ａは、宛先情報を分類する際に用いられるカテゴリを生成する。
【００９９】
宛先を取得する（）９４０ｂは、カテゴリに登録された宛先情報を取得する。具待機には、分類アドレス帳クラス９４０は、カテゴリクラス９５０の取得する（）９５０ｃを呼び出す。
【０１００】
カテゴリを登録する（）９４０ｃは、分類アドレス帳クラス９４０が管理するカテゴリを登録する。カテゴリを登録する（）９４０ｃが呼び出された場合、分類アドレス帳クラス９４０は、宛先情報を分類する際に用いられるカテゴリクラス９５０を実体化したオブジェクトを生成し、関連（リンク情報）を保持する。
【０１０１】
宛先を登録する（）９４０ｄは、登録されたカテゴリに対して宛先を登録する。具体的には、分類アドレス帳クラス９４０は、カテゴリクラス９５０の登録する（）９５０ｂを呼び出す。
【０１０２】
カテゴリクラス９５０は、１つの分類単位を示すクラスである。具体的には、このカテゴリクラス９５０は、属性として、名前９５０ａを有し、操作として、登録する（）９５０ｂと、取得する()９５０ｃと、を有する。なお、かかるカテゴリクラス９５０を実体化したオブジェクトが生成されると、名前９５０ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１０３】
名前９５０ａは、当該カテゴリクラス９５０が実体化されたオブジェクトのカテゴリを識別するための名前を保持している。
【０１０４】
登録する（）９５０ｂは、分類アドレス帳オブジェクト９４０Ａから呼び出され、当該カテゴリに分類される宛先情報を登録する。具体的には、分類アドレス帳オブジェクト９２０Ａが登録する（）９５０ｂを呼び出した際、カテゴリオブジェクト９５０Ａは登録する宛先情報を保持している登録宛先オブジェクト９３０Ａと関連（リンク情報）を保持させ、可能操作９２０ａに、当該登録宛先オブジェクト９３０Ａの識別子９３０ａと、許可する操作を設定することで登録する。
【０１０５】
取得する()９５０ｃは、分類アドレス帳オブジェクト９２０Ａから呼び出され、当該カテゴリに登録された登録宛先オブジェクト９３０Ａが保持する宛先情報を取得する。
【０１０６】
登録宛先クラス９３０は、アドレス帳に登録された宛先の中で操作中のもの、又は登録中の宛先の情報を一時的に保持するクラスである。この登録宛先オブジェクト９３０Ａを生成される際、必要に応じて不揮発記憶領域に記憶された宛先情報を読み出すこととする。具体的には、この登録宛先クラス９３０は、属性として、識別子９３０ａおよび宛先情報９３０ｂを有し、操作として、設定する（）９３０ｃと、取得する()９３０ｄと、登録する（）９３０ｅと、を有する。なお、かかる登録宛先クラス９３０を実体化したオブジェクトが生成されると、識別子９３０ａおよび宛先情報９３０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１０７】
識別子９３０ａは、登録宛先オブジェクト９３０Ａ毎にユニークな識別子を保持している。これによりアドレス帳オブジェクト９２０Ａは、登録された宛先情報を保持する登録宛先オブジェクト９３０Ａを認識することができる。
【０１０８】
宛先情報９３０ｂは、利用者に送信するために必要な情報を保持し、宛先名や、送信先の電話番号や、メールアドレス等を保持する。また、宛先情報９３０ｂは、既に不揮発記憶領域に保存された宛先情報である場合、この宛先情報を読み出して設定される。
【０１０９】
設定する（）９３０ｃは、操作系サブシステム１１１から呼び出され、宛先情報９３０ｂを設定する。なお、設定する（）９３０ｃは、新たに宛先情報を作成する場合に限らず、既に登録された宛先情報を編集する際にも用いられる。
【０１１０】
取得する()９３０ｄは、アドレス帳オブジェクト９２０Ａ又はカテゴリオブジェクト９５０Ａから呼び出され、宛先情報９３０ｂを取得する処理を行う。
【０１１１】
登録する（）９３０ｅは、設定する（）９３０ｃで設定された宛先情報９３０ｂを、ＨＤＤ（Hard Disk Drive）などの不揮発記憶領域に保存する。
【０１１２】
選択シートクラス９８０は、アドレス帳からの宛先選択を管理して選択された宛先を保持する処理をおこなうクラスである。具体的には、この選択シートクラス９８０は、属性として、最大宛先数９８０ａおよび状態９８０ｂを有し、操作として、選択する（）９８０ｃと、選択解除する（）９８０ｄと、確定する（）９８０ｅと、取り消す（）９８０ｆと、破棄する（）９８０ｇと、を有する。なお、かかる選択シートクラス９８０を実体化したオブジェクトが生成されると、最大宛先数９８０ａおよび状態９８０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１１３】
最大宛先数９８０ａは、送信する際に選択可能な宛先の最大数を保持する。
【０１１４】
状態９８０ｂは、状態情報として、「選択中」、「確定中」、「破棄中」及び「取消中」のうちいずれか１つが選択されている。を保持する。「選択中」は、宛先の選択解除を行っている状態を示している。「確定中」は、選択宛先が確定した状態を示している。「破棄中」は、選択宛先の保持が不要になった状態を示している。「取消中」は、選択宛先の選択を取りやめた状態を示した。このような状態９８０ｂが保持する状態情報は、後述する操作と共に変更される。
【０１１５】
選択する（）９８０ｃは、操作系サブシステム１１１から呼び出され、送信先となる宛先を選択する。具体的には、選択する（）９８０ｃが呼び出された場合、選択シートオブジェクト９８０Ａは、既に選択されている宛先数と、最大宛先数９８０ａの比較し、指定された宛先の正当性（例えば、送信先として問題ないか否か）を確認して、選択可能か否か判断する。そして、選択シートオブジェクト９８０Ａが選択可能と判断した場合、新たに送付宛先オブジェクト９７０Ａを生成して、選択シートオブジェクト９８０Ａと、生成した送付宛先オブジェクト９７０Ａとの関連（リンク情報）を保持する。
【０１１６】
選択解除する（）９８０ｄは、操作系サブシステム１１１から呼び出され、指定された宛先情報の選択を解除する。そして、選択シートオブジェクト９８０Ａは、関連（リンク情報）を保持する送信宛先オブジェクト９７０Ａのうち、選択が解除された送付宛先オブジェクト９７０Ａを消去する。そして、選択シートオブジェクト９８０Ａは、選択解除された送付宛先オブジェクト９７０Ａを消去する。
【０１１７】
確定する（）９８０ｅは、操作系サブシステム１１１から呼び出され、宛先情報の選択を確定する。確定した以降、選択シートオブジェクト９８０Ａは、選択する（）９８０ｃや選択を解除する（）９８０ｄが呼び出されても、選択された宛先情報の変更は行わない。そして、選択シートオブジェクト９８０Ａは、送付状オブジェクト９６０Ａを生成して、関連（リンク情報）を保持し、当該送付状オブジェクト９６０Ａに選択された宛先情報を受け渡す。
【０１１８】
取り消す（）９８０ｆは、操作系サブシステム１１１から呼び出され、既に選択された宛先情報の選択を取り消す。そして、選択シートオブジェクト９８０Ａは、関連（リンク情報）を保持する送信宛先オブジェクト９７０Ａを消去する。そして、当該選択シートオブジェクト９８０Ａは、自動的に消去される。
【０１１９】
破棄する（）９８０ｇは、アドレス帳オブジェクト９２０Ａ又は送付状オブジェクト９６０Ａから呼び出され、既に選択されていた宛先情報を取り消す。この廃棄する（）９８０ｇは、選択された宛先情報の保持が不要なった場合に使用する。そして、選択シートオブジェクト９８０Ａは、関連（リンク情報）を保持する送信宛先オブジェクト９７０Ａを消去する。
【０１２０】
送付状クラス９６０は、選択された宛先に文書の送付を管理するクラスである。具体的には、この送付状クラス９６０は、属性として、状態９６０ａを有し、操作として、作成する（）９６０ｂと、送付終了（）９６０ｃと、を有する。なお、かかる送付状クラス９６０を実体化したオブジェクトが生成されると、状態９６０ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。なお、送付状オブジェクト９６０Ａは、生成を行った選択シートオブジェクトＡが関連（リンク情報）を保持する送信宛先オブジェクト９７０Ａと関連（リンク情報）を保持する事とする。
【０１２１】
状態９６０ａは、送信状態として「送付中」及び「送信終了」のうちいずれか１つが選択されている。「送信中」は、送付状に登録された宛先に、文書を送付している状態を示している。「送付終了」は、送付状に登録された宛先への文書送付が終了した状態を示している。
【０１２２】
作成する（）９６０ｂは、選択シートオブジェクト９８０Ａから呼び出され、送付状に宛先を登録する。具体的には、送付状オブジェクト９６０Ａは、作成する（）９６０ｂが呼び出された場合、関連（リンク情報）を保持している送付宛先オブジェクト９７０Ａから、宛先情報を取得し、取得した宛先情報を登録する処理を行う。
【０１２３】
送付終了（）９６０ｃは、操作系サブシステム１１１から呼び出され、送付が終了したことを確認が行われる。この後、送付状オブジェクト９６０Ａは、関連（リンク情報）が保持されている選択シートオブジェクト９８０Ａの廃棄する（）９８０ｇを呼び出す。
【０１２４】
送付宛先クラス９７０は、送付先として選択された各宛先を示すクラスである。具体的には、この送付宛先クラス９７０は、属性として、識別子９７０ａおよび送信情報９７０ｂを有し、操作として、設定する（）９７０ｃと、取得する（）９７０ｄと、を有する。なお、かかる送付宛先クラス９７０を実体化したオブジェクトが生成されると、識別子９７０ａおよび送信情報９７０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１２５】
識別子９７０ａは、宛先情報毎のユニークな識別子を保持している。なお、この識別子９７０ａは、登録宛先クラス９３０の識別子９３０ａと同じ識別子を用いる。
【０１２６】
送信情報９７０ｂは、利用者に送信するために必要な情報を保持し、宛先名や、送信先の電話番号や、メールアドレス等を保持する。
【０１２７】
設定する（）９７０ｃは、選択シートオブジェクト９８０Ａから呼び出され、送信情報９７０ｂを設定する。具体的には、選択シートオブジェクト９８０Ａに対して、アドレス帳オブジェクト９２０Ａで登録されている宛先情報が入力された場合、選択シートオブジェクト９８０Ａが、設定する（）９７０ｃを呼び出して、当該入力された宛先情報を設定する。
【０１２８】
取得する（）９７０ｄは、送付状オブジェクト９６０Ａから呼び出され、送信情報９７０ｂで保持している送信に必要な情報を取得する。
【０１２９】
次に、図９に示した各クラス間の関係について説明する。本図に示したように、各クラスを示す矩形を結ぶ直線は、その両端のクラス間に関係があることを表しており、この直線の両端付近の文字はクラスの役割を、数字はクラスの多重度をそれぞれ示している。ここで、役割とは、かかる直線の両端における、一方のクラスからみた、もう一方のクラスの役割や立場のことであり、多重度とは、かかる直線の両端のクラスから生成されるオブジェクト数の対応関係のことである。
【０１３０】
たとえば、書棚クラス９１０からみたアドレス帳クラス９２０の役割は「抄本」であり、アドレス帳クラス９２０からみた書棚クラス９１０の役割は「原本」であり、書棚クラス９１０の多重度は「１」であり、アドレス帳クラス９２０の多重度は「１．．ｎ」である。ここで、「１．．ｎ」は、かかるアドレス帳クラス９２０の多重度が、１から上限数なしの範囲であることを示している。また、たとえば、「１．．３」の記載をした場合には、かかるクラスの多重度が、１〜３の範囲であることを示す。
【０１３１】
まず、書棚クラス９１０とアドレス帳クラス９２０とのクラス関係について説明する。書棚クラス９１０はアドレス帳クラス９２０を管理するとともに、管理対象となるアドレス帳クラス９２０の中からキーとなるアドレス帳クラス９２０を１つ選択する。したがって、書棚クラス９１０は、すべてのアドレス帳クラス９２０をまとめた「原本」であり、各アドレス帳クラス９２０は、「原本」の一部を抜き出した「抄本」であるという関係をなしている。また、キーとなるアドレス帳クラス９２０は、「キー抄本」の役割を有する。
【０１３２】
また、書棚オブジェクト９１０Ａは１個のみ生成され、キーとなるアドレス帳オブジェクト９２０Ａも１個生成される。ただし、宛先情報が登録されていない場合には、アドレス帳オブジェクト９２０Ａは生成されないので、キーとなるアドレス帳オブジェクト９２０Ａは、０個以上１個以下の範囲で生成されることになる。また、キーとならないアドレス帳オブジェクトは、０個以上ｎ個以下の範囲で存在する。
【０１３３】
次に、アドレス帳クラス９２０と、登録宛先クラス９３０のクラス関係について説明する。アドレス帳クラス９２０は、登録する宛先情報に対応する登録宛先クラス９３０のオブジェクトを生成する。したがって、アドレス帳クラス９２０と登録宛先クラス９３０とは、「登録先」と「登録対象」の関係をなしている。また、１個のアドレス帳に、１個以上ｎ個以下の宛先情報が選択される場合があるので、登録宛先オブジェクト９３０Ａは、１個のアドレス帳オブジェクト９２０Ａに対し、０個以上ｎ個以下の範囲で存在する。
【０１３４】
次に、アドレス帳クラス９２０と、分類アドレス帳クラス９４０の関係について説明する。アドレス帳クラス９２０は、分類アドレス帳クラス９４０の上位クラス（スーパークラス）であり、分類アドレス帳クラス９４０は、アドレス帳クラス９２０の属性および操作を継承する。
【０１３５】
次に、分類アドレス帳クラス９４０と、カテゴリクラス９５０のクラス関係について説明する。分類アドレス帳クラス９４０は、登録する宛先情報を分類するカテゴリクラス９５０のオブジェクトを、カテゴリの数だけ生成する。したがって、分類アドレス帳クラス９４０とカテゴリクラス９５０とは、「全体」と「部分」の関係をなしている。また、１個の分類アドレス帳に、１個以上ｎ個以下のカテゴリで宛先情報を分類する場合があるので、カテゴリオブジェクト９５０Ａは、１個の分類アドレス帳クラス９４０に対して、０以上ｎ個以下の範囲で存在する。
【０１３６】
次に、登録宛先クラス９３０と、カテゴリクラス９５０のクラス関係について説明する。カテゴリクラス９５０は、当該カテゴリに分類されている登録宛先クラス９３０が保持する宛先情報を取得して、分類アドレス帳クラス９４０に受け渡す。したがって、登録宛先クラス９３０とカテゴリクラス９５０は、「登録項目」と「所属カテゴリ」の関係をなしている。また、１個のカテゴリに、１個以上ｎ個以下の宛先情報が選択される場合があるので、登録宛先オブジェクト９３０Ａは、１個の分類アドレス帳クラス９４０に対して、０以上ｎ個以下の範囲で存在する。
【０１３７】
次に、アドレス帳クラス９２０と選択シートクラス９８０の関係について説明する。選択シートクラス９８０は、アドレス帳クラス９２０が保持する宛先情報を取得し、取得した宛先情報を選択候補とする選択一覧を生成する。したがって、アドレス帳クラス９２０と選択シートクラス９８０とは、「選択リソース」と「選択一覧」の関係をなしている。
【０１３８】
また、複数の利用者がおこなった送信要求が並列して処理される場合があるので、１個のアドレス帳オブジェクト９２０Ａに対して複数個の選択シートオブジェクト９８０Ａが存在する。また、処理中の選択要求がない場合には、選択シートオブジェクト９８０Ａは存在しない。したがって、選択シートオブジェクト９８０Ａは、１個のアドレス帳オブジェクト９２０Ａに対して、０個以上ｎ個以下の範囲で存在する。
【０１３９】
次に、選択シートクラス９８０と送付宛先クラス９７０とのクラス関係について説明する。選択シートクラス９８０は、選択された宛先情報に対応する送付宛先クラス９７０のオブジェクトを生成する。したがって、選択シートクラス９８０と送付宛先クラス９７０とは、「選択者」と「選択対象」の関係をなしている。また、１個の選択一覧から、０個以上ｎ個以下の宛先情報が選択される場合があるので、送付宛先オブジェクト９７０Ａは、１個の選択シートオブジェクト９８０Ａに対し、０個以上ｎ個以下の範囲で存在する。
【０１４０】
次に、送付宛先クラス９７０と送付状クラス９６０とのクラス関係について説明する。送付状クラス９６０は、複数の送付宛先クラス９７０を宛先として保持することが可能であり、送付宛先クラス９７０が保持する送信先に対しデータ送信をおこなう。したがって、送付宛先クラス９７０と送付状クラス９６０とは、「送付先」と「送付者」の関係をなしている。また、送付状オブジェクト９６０Ａは、１個以上複数の宛先に対してデータ送信をおこなうので、送付宛先オブジェクト９７０Ａは、１個の送付状オブジェクト９６０Ａに対し、１個以上ｎ個以下の範囲で存在する。
【０１４１】
最後に、選択シートクラス９８０と送付状クラス９６０との関係について説明する。選択シートクラス９８０は、宛先情報の選択処理が確定すると、選択した宛先情報へのデータ送信を担当する送付状クラス９６０のオブジェクトを生成する。また、宛先情報の選択処理が確定していない場合には、送信処理を担当する送付状オブジェクト９６０Ａは存在しない。したがって、送付状オブジェクト９６０Ａは、１個の選択シートオブジェクト９８０Ａに対し、０個以上１個以下の範囲で存在する。
【０１４２】
このように、書棚クラス９１０、アドレス帳クラス９２０、選択シートクラス９８０、送付宛先クラス９７０および送付状クラス９６０の各オブジェクトは、相互に関連しあい、協調して、アドレス帳管理部１１２ａに必要な機能を実現している。
【０１４３】
次に、図９に示した各クラスの操作の実行手順について例をあげて説明する。図１０は、本実施の形態の特徴部分であるアドレス帳管理部１１２ａが宛先情報の登録指示を受け付けた際の操作の実行手順を示すＵＭＬシーケンス図である。このシーケンスの実行手順が行われる前に、利用者が複合機１の操作パネル４００の初期設定キー４０１を押下した際に、液晶タッチパネル４２０に表示される初期設定画面のアドレス帳編集画面から、アドレス帳に登録された宛先の情報の編集又は、新たに宛先の情報を追加する旨の入力を行ったものとする。
【０１４４】
ここで、ＵＭＬシーケンス図について説明しておく。図１０の上部に並んだ矩形は、それぞれがクラスのオブジェクトを示している。各オブジェクトから下方に伸びた線は、各オブジェクトが生存していることを示す線（ライフライン）であり、上方から下方に向かって時間が流れているものとみなされる。この線上に存在する細長い矩形は、当該のオブジェクトが実際に活動している期間（活性期間）を示す。そして、各ライフラインの間を結ぶ横向きの矢印は、オブジェクトに含まれる操作の実行を示す。具体的には、この矢印は、矢印の元のオブジェクトが、矢印の先のオブジェクトに含まれる操作を呼び出すことを示す。
【０１４５】
図１０に示すように、利用者がアドレス帳編集画面から宛先の情報の編集又は、新たに宛先の情報を追加する指示を行うと、サービス利用者（操作系サブシステム１１１）は、アドレス帳オブジェクト９２０Ａの編集開始（）９２０ｅを呼び出す（ステップＳ１００１）。そして、編集開始（）９２０ｅで呼び出されたアドレス帳オブジェクト９２０Ａは、登録宛先オブジェクト９３０Ａを生成する（ステップＳ１００２）。この生成された登録宛先オブジェクト９３０Ａは、新たに追加される宛先に対応するオブジェクトでも良いし、既に不揮発記憶領域に記憶された宛先情報が設定されたオブジェクトでも良い。
【０１４６】
そして、操作系サブシステム１１１は、この生成された登録宛先オブジェクト９３０Ａの設定する()９３０ｃを呼び出して、宛先情報を編集する（ステップＳ１００３）。
【０１４７】
次に、利用者が編集された宛先情報を保存する旨の入力を行った場合、操作系サブシステム１１１は、アドレス帳オブジェクト９２０Ａの編集終了９２０ｆを呼び出す（ステップＳ１００４）。また、操作系サブシステム１１１は、アドレス帳オブジェクト９２０Ａに、引数で登録する旨を受け渡す。
【０１４８】
そして、アドレス帳オブジェクト９２０Ａは、設定が行われた登録宛先オブジェクト９３０Ａの登録する（）９３０ｅを呼び出す（ステップＳ１００５）。これにより、登録宛先オブジェクト９３０Ａが保持していた宛先情報９３０ｂが、不揮発記憶領域に記憶されることになる。
【０１４９】
次に、不揮発記憶領域に記録した後、アドレス帳オブジェクト９２０Ａは、登録宛先オブジェクト９３０Ａを削除する（ステップＳ１００６）。
【０１５０】
また、図１０で示した実行手順と異なる実行手順として保存しない場合について説明する。図１０の実行手順でステップＳ１００１〜ステップＳ１００３まで同様の実行手順を行った後、利用者が編集された宛先情報を保存しないで終了する旨の入力を行った場合、操作系サブシステム１１１は、アドレス帳オブジェクト９２０Ａの編集終了（）９２０ｆを呼び出す。この際、操作系サブシステム１１１は、アドレス帳オブジェクト９２０Ａに、引数で登録しない旨を受け渡す。これによりアドレス帳オブジェクト９２０Ａは、設定が行われた登録宛先オブジェクト９３０Ａを登録せずにそのまま削除して、終了する。
【０１５１】
この図１０で示した実行手順により、宛先情報を設定した後、さらに必要に応じて、不揮発記憶領域に登録するか否か選択可能な構成としたので、設定前の状態に戻す機能の実装を容易にした。
【０１５２】
次に、本実施の形態の特徴部分であるアドレス帳管理部１１２ａが分類アドレス帳に宛先を登録する際の操作の実行手順について図１１を用いて説明する。図１１は、本実施の形態の特徴部分であるアドレス帳管理部１１２ａが分類アドレス帳に宛先を登録する際の操作の実行手順を示すＵＭＬシーケンス図である。
【０１５３】
図１１に示すように、利用者が複合機１の操作パネル４００を操作して宛先情報を分類する新たな分類アドレス帳の生成を要求すると、まず、アドレス帳編集者（操作系サブシステム１１１）は、分類アドレス帳を管理する書棚オブジェクト９１０Ａを生成する（ステップＳ１４０１）
【０１５４】
そして、図８の（ａ）に示すように、利用者によりカテゴリ毎に分類されたアドレス帳を登録する操作が行われた場合、操作系サブシステム１１１は、書棚オブジェクト９１０Ａの登録する()９１０ｂを呼び出す（ステップＳ１４０２）。そして、登録する()９１０ｂが呼び出された書棚オブジェクト９１０Ａは、利用者により登録する操作が行われたアドレス帳に対応する分類アドレス帳オブジェクト９４０Ａを生成する（ステップＳ１４０３）。
【０１５５】
次に、操作系サブシステム１１１は、生成された分類アドレス帳を取出すために、書棚オブジェクト９１０Ａの取り出す（）９１０ｅを呼び出す（ステップＳ１４０４）。これにより書棚オブジェクト９１０Ａと、分類アドレス帳オブジェクト９４０Ａの関連（リンク情報）を保持することになる。
【０１５６】
そして、操作系サブシステム１１１は、取り出す（）９１０ｅにより取得したアドレス帳オブジェクト９２０Ａに対し、編集開始（）９２０ｅを呼び出す（ステップＳ１４０５）。
【０１５７】
次に、図８の（ｂ）で示したように、利用者により入力されたカテゴリを登録していく。操作系サブシステム１１１は、利用者により登録されたカテゴリ毎に、分類アドレス帳オブジェクト９４０Ａのカテゴリを登録する（）９４０ｃを呼び出す（ステップＳ１４０６）。この際、引数でカテゴリ名を受け渡す。そして、分類アドレス帳オブジェクト９４０Ａは、登録されたカテゴリに対応するカテゴリオブジェクト９５０Ａを生成する（ステップＳ１４０７）。この際、生成されたカテゴリオブジェクト９５０Ａの名前９５０ａに、受け渡されたカテゴリ名を保持させる。また、操作系サブシステム１１１は、ステップＳ１４０６〜ステップＳ１４０７迄の処理をカテゴリの数だけ繰り返す。
【０１５８】
そして、図８の（ｃ）で示すように、利用者により編集された宛先情報をカテゴリに登録していく。操作系サブシステム１１１は、利用者によりカテゴリ毎に登録された宛先情報を登録するために、分類アドレス帳オブジェクト９４０Ａの宛先を登録する（）９４０ｃを呼び出す（ステップＳ１４０８）。この際、引数で登録先のカテゴリ名と、宛先情報を受け渡す。そして分類アドレス帳オブジェクト９４０Ａは、カテゴリ名で特定されるカテゴリオブジェクト９５０Ａの登録する（）９５０ｂを呼び出す（ステップＳ１４０９）。
【０１５９】
そして、登録する（）９５０ｂが呼び出されたカテゴリオブジェクト９５０Ａは、登録宛先オブジェクト９３０Ａを生成する（ステップＳ１４１０）。この際、カテゴリオブジェクト９５０Ａは、生成した登録宛先オブジェクト９３０Ａと関連（リンク情報）を保持する。また、生成された登録宛先オブジェクト９３０Ａの宛先情報に、利用者により入力された宛先情報を設定する。また、操作系サブシステム１１１は、ステップＳ１４０８〜ステップＳ１４１０までの処理を登録された宛先の数だけ繰り返す。
【０１６０】
ステップＳ１４０６〜ステップＳ１４１０までの処理が全て終了した後、操作系サブシステム１１１は、分類アドレス帳オブジェクト９４０Ａに対して、編集終了（）９２０ｆを呼び出す（ステップＳ１４１１）。この際に、利用者により保存する旨の入力を受け付けていた場合、分類アドレス帳として不揮発記憶領域に記憶される。
【０１６１】
そして、操作系サブシステム１１１は、書棚オブジェクト９１０Ａのしまう（）９１０ｆを呼び出して、終了する（ステップＳ１４１２）。これにより、分類アドレス帳オブジェクト９４０Ａと、関連（リンク情報）を保持しているオブジェクトの消去が行われる。
【０１６２】
この図１１で示した実行手順により、宛先情報をカテゴリに分類することが可能となる。そして、利用者は上述した実行手順で作成された分類アドレス帳を閲覧することで、カテゴリに分類された宛先情報を取得することができる。
【０１６３】
次に、本実施の形態の特徴部分であるアドレス帳管理部１１２ａが分類された宛先の情報を取得する際の操作の実行手順について図１２を用いて説明する。図１２は、本実施の形態の特徴部分であるアドレス帳管理部１１２ａが分類された宛先の情報を取得する際の操作の実行手順を示すＵＭＬシーケンス図である。
【０１６４】
図１２に示すように、利用者は、閲覧した分類アドレス帳を特定した後に、複合機１の操作パネル４００を操作して宛先情報の分類する要求を行うと、サービス利用者（操作系サブシステム１１１）は、利用者により特定された分類を保持する分類アドレス帳オブジェクト９４０Ａの分類する（）９４０ａを呼び出す（ステップＳ１１０１）。
【０１６５】
そして、分類アドレス帳オブジェクト９４０Ａは、宛先情報を登録するカテゴリオブジェクト９５０Ａを生成する（ステップＳ１１０２）。また、分類アドレス帳オブジェクト９４０Ａは、生成したカテゴリオブジェクト９５０Ａと関連（リンク情報）を保持する。なお、カテゴリは、図１１で示した不揮発記憶領域に記憶された分類アドレス帳が保持するカテゴリに従って生成される。
【０１６６】
次に、分類アドレス帳オブジェクト９４０Ａは、不揮発記憶領域に記憶されている宛先情報から、各カテゴリの分類設定に合致するものを抽出し、この宛先の情報を保持する登録宛先オブジェクト９３０Ａを生成する（ステップＳ１１０３）。例えば、アイウエオ順の分類アドレス帳で、ア行というカテゴリを選択する要求が利用者により行われていた場合、ア行というカテゴリに所属している登録宛先オブジェクト９３０Ａが生成されることになる。
【０１６７】
そして、分類アドレス帳オブジェクト９４０Ａは、カテゴリオブジェクト９５０Ａの登録する（）９３０ｅを呼び出す（ステップＳ１１０４）。これにより、カテゴリオブジェクト９５０Ａと、分類設定で当該カテゴリに所属する登録宛先オブジェクト９３０Ａの間に関連（リンク情報）を保持することになる。このようにして、カテゴリ毎に宛先情報が登録された。
【０１６８】
次に、利用者がカテゴリに登録された宛先情報を取得したい場合、操作系サブシステム１１１が、カテゴリオブジェクト９５０Ａの取得する（）９５０ｃを呼び出す（ステップＳ１１０５）。そして、カテゴリオブジェクト９５０Ａは、関連(リンク情報)を保持する登録宛先オブジェクト９３０Ａに対して取得する（）９３０ｄを呼び出す（ステップＳ１１０６）。
【０１６９】
この図１２で示した実行手順により、宛先情報をカテゴリに分類することが可能となる。そして、利用者はカテゴリに分類された宛先情報を取得することができる。なお、カテゴリに分類する際に用いた分類設定は、ア行、カ行などに限らず、例えば利用者により設定された所定の利用者が所属する複数のグループ等、どのような分類設定でも良い。
【０１７０】
これにより、利用者は、宛先を設定する際に、要求に応じて適切な分類がなされたアドレス帳を利用することができる。
【０１７１】
図１３は、本実施の形態の特徴部分であるアドレス帳管理部１１２ａが送付指示を受け付けた際の操作の実行手順を示すＵＭＬシーケンス図である。
【０１７２】
図１３に示すように、利用者が複合機１の操作パネル４００を操作して文書の送付を指示すると、サービス利用者（操作系サブシステム１１１）は、適したアドレス帳を取出すために、書棚オブジェクト９１０Ａの取出す（）９１０ｅを呼び出す（ステップＳ１２０１）。次に、操作系サブシステム１１１は、取り出す（）９１０ｅの呼び出しにより取得したアドレス帳オブジェクト９２０Ａに対し、閲覧開始（）９２０ｇを呼び出す（ステップＳ１２０２）。閲覧開始（）９２０ｇが呼び出されたアドレス帳オブジェクト９２０Ａは、宛先の選択一覧を作成するために選択シートオブジェクト９８０Ａを生成する（ステップＳ１２０３）。
【０１７３】
次に、利用者が複合機１の操作パネル４００に表示された宛先一覧を操作して、宛先を選択した場合、操作系サブシステム１１１は、選択シートオブジェクト９８０Ａの選択する（）９８０ｃを呼び出す（ステップＳ１２０４）。選択する（）９８０ｃを呼び出された選択シートオブジェクト９８０Ａは、選択された宛先に対応する宛先情報の保持を担当する送付宛先オブジェクト９７０Ａを生成する（ステップＳ１２０５）。
【０１７４】
また、利用者が選択の解除を指示したならば、操作系サブシステム１１１は、選択シートオブジェクト９８０Ａの選択解除する（）９８０ｄを呼び出す(ステップＳ１２０６)。選択解除する（）９８０ｄを呼び出された選択シートオブジェクト９８０Ａは、選択が解除された宛先に対応する宛先情報の保持を担当する送付宛先オブジェクト９７０Ａを削除する（ステップＳ１２０７）。そして、利用者の操作に従って、ステップＳ１２０４〜ステップＳ１２０７を繰り返し、利用者が選択の確定を指示したならば、操作系サブシステム１１１は、選択シートオブジェクト９８０Ａの確定する（）９８０ｅを呼び出す(ステップＳ１２０８)。
【０１７５】
次に、確定する（）９８０ｅを呼び出された選択シートオブジェクト９８０Ａは、選択された宛先に対して送付処理をおこなうために、送付状オブジェクト９６０Ａを生成した後、作成する（）９６０ｂを呼び出す（ステップＳ１２０９）。そして、作成する（）９６０ｂを呼び出された送付状オブジェクト９６０Ａは、選択された宛先に対する送信処理の実行を実行系サブシステム１１３に依頼する。
【０１７６】
そして、送信処理が実行されたことで、宛先情報の選択は行われないので、操作系サブシステム１１１は、アドレス帳オブジェクト９２０Ａに対して、閲覧終了()９２０ｈを呼び出す（ステップＳ１２１０）。さらに、操作系サブシステム１１１は、閲覧終了（）９２０ｈが呼び出されたアドレス帳オブジェクト９２０Ａを片付けるため、書棚オブジェクト９１０Ａのしまう（）９１０ｆを呼び出す（ステップＳ１２１１）。
【０１７７】
次に、操作系サブシステム１１１は、送付処理が完了したか確認するために、送付状オブジェクト９６０Ａの送付終了（）９６０ｃを呼び出す（ステップＳ１２１２）。
【０１７８】
そして、送付の終了が済んでいることを確認した場合、送付状オブジェクト９６０Ａは、送付先の宛先情報を保持していた選択シートオブジェクト９８０Ａの破棄する（）９８０ｇを呼び出す。（ステップＳ１２１３）次に、送付状オブジェクト９６０Ａは、アドレス帳オブジェクト９２０Ａの破棄通知（）９２０ｉを呼び出す（ステップＳ１２１４）。
【０１７９】
そして、アドレス帳オブジェクト９２０Ａは、不要となった選択シートオブジェクト９８０Ａ及び送付状オブジェクト９６０Ａの削除を指示する。
【０１８０】
この図１３で示した実行手順により、アドレス帳オブジェクト９２０Ａを用いることとしたので、改修が容易なアドレス帳管理の仕組みを提供することができる。
【０１８１】
図１４は、本実施の形態の特徴部分であるアドレス帳管理部１１２ａが分類アドレス帳に基づいて送付指示を受け付けた際の操作の実行手順を示すＵＭＬシーケンス図である。
【０１８２】
図１４に示すように、利用者が複合機１の操作パネル４００を操作して文書の送付を指示すると、サービス利用者（操作系サブシステム１１１）は、適したアドレス帳を取出すために、書棚オブジェクト９１０Ａの取出す（）９１０ｅを呼び出す（ステップＳ１３０１）。次に、操作系サブシステム１１１は、取り出す（）９１０ｅの呼び出しにより取得した分類アドレス帳オブジェクト９４０Ａに対し、閲覧開始（）９２０ｇを呼び出す（ステップＳ１３０２）。閲覧開始（）９２０ｇが呼び出された分類アドレス帳オブジェクト９４０Ａは、宛先の選択一覧を作成するために選択シートオブジェクト９８０Ａを生成する（ステップＳ１３０３）。
【０１８３】
次に、利用者が複合機１の操作パネル４００に表示された宛先一覧を操作して、宛先を保持している分類を選択した場合、操作系サブシステム１１１は、選択シートオブジェクト９８０Ａの選択する（）９８０ｃを呼び出す（ステップＳ１３０４）。選択した分類としては、例えばチームなどが、どの様な分類でも良い。
【０１８４】
そして、選択する（）９８０ｃを呼び出された選択シートオブジェクト９８０Ａは、閲覧が開始されている分類アドレス帳オブジェクト９４０Ａに対して、宛先を取得する（）９４０ｄを呼び出す（ステップＳ１３０５）。
【０１８５】
次に、宛先を取得する９４０ｄが呼び出された分類アドレス帳オブジェクト９４０Ａは、カテゴリオブジェクト９５０Ａの取得する（）９５０ｃを呼び出す（ステップＳ１３０６）。
【０１８６】
そして、取得する（）９５０ｃが呼び出されたカテゴリオブジェクト９５０Ａは、関連(リンク情報)が保持されている登録宛先オブジェクト９３０Ａの取得する（）９３０ｅを呼び出す（ステップＳ１３０７）。これにより、選択シートオブジェクト９８０Ａに分類に所属する宛先情報が選択されたことになる。
【０１８７】
そして、選択シートオブジェクト９８０Ａは、選択された宛先に対応する宛先情報の保持を担当する送付宛先オブジェクト９７０Ａを生成する（ステップＳ１３０８）。
【０１８８】
利用者が選択の確定を指示したならば、操作系サブシステム１１１は、選択シートオブジェクト９８０Ａの確定する（）９８０ｅを呼び出す(ステップＳ１３０９)。
【０１８９】
次に、確定する（）９８０ｅを呼び出された選択シートオブジェクト９８０Ａは、選択された宛先に対して送付処理をおこなうために、送付状オブジェクト９６０Ａを生成した後、作成する（）９６０ｂを呼び出す（ステップＳ１３１０）。そして、作成する（）９６０ｂを呼び出された送付状オブジェクト９６０Ａは、選択された宛先に対する送信処理の実行を実行系サブシステム１１３に依頼する。
【０１９０】
そして、送信処理が実行されたことで、宛先情報の選択は行われないので、操作系サブシステム１１１は、分類アドレス帳オブジェクト９４０Ａに対して、閲覧終了()９２０ｈを呼び出す（ステップＳ１３１１）。さらに、操作系サブシステム１１１は、閲覧終了（）９２０ｈが呼び出された分類アドレス帳オブジェクト９４０Ａを片付けるため、書棚オブジェクト９１０Ａのしまう（）９１０ｆを呼び出す（ステップＳ１３１２）。
【０１９１】
次に、操作系サブシステム１１１は、送付処理が完了したか確認するために、送付状オブジェクト９６０Ａの送付終了（）９６０ｃを呼び出す（ステップＳ１３１３）。
【０１９２】
そして、送付の終了が済んでいることを確認した場合、送付状オブジェクト９６０Ａは、送付先の宛先情報を保持していた選択シートオブジェクト９８０Ａの破棄する（）９８０ｇを呼び出す（ステップＳ１３１４）。次に、送付状オブジェクト９６０Ａは、分類アドレス帳オブジェクト９４０Ａの破棄通知（）９２０ｉを呼び出す（ステップＳ１３１５）。
【０１９３】
そして、分類アドレス帳オブジェクト９４０Ａは、不要となった選択シートオブジェクト９８０Ａ及び送付状オブジェクト９６０Ａの削除を指示する。
【０１９４】
この図１４で示した実行手順により、分類アドレス帳オブジェクト９４０Ａを用いることとしたので、分類に所属する宛先情報の設定が容易なアドレス帳管理の仕組みを提供することができる。
【０１９５】
上述してきたように、本実施の形態では、利用者による宛先情報の選択を管理する選択管理を分離してアドレス帳と、アドレス帳を承継して分類毎の宛先情報を管理する分類アドレス帳の仕組みを構築し、さらに、宛先管理を担当するアドレス帳クラス、カテゴリ毎の宛先管理を担当する分類アドレス帳クラス、宛先情報を分類するカテゴリクラス、不揮発記憶領域に記憶された宛先を示す登録宛先クラス、選択管理を担当する選択シートクラス、アドレス帳クラスを束ねる書棚クラス、送付する宛先に対応する送付宛先クラス、選択された宛先への送信を管理する送付状クラスを用いることによりアドレス帳管理部を実現したので、利用者に登録されたカテゴリに従って分類されたアドレスを効率よく管理することができる。
【０１９６】
ソフトウェア開発者やソフトウェア保守要員が、機能追加や改修を容易におこなうことができるとともに、アドレス帳の管理処理を効率よく実現することができる。
【０１９７】
なお、本実施の形態の画像形成装置で実行されるアドレス帳管理プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（CD Recordable）、ＤＶＤ（Digital Versatile Disk）などのコンピュータで読み取り可能な記録媒体に記録して提供するよう構成してもよい。この場合、ＣＰＵ１１が上記記憶媒体から、アドレス帳管理プログラムを読み出してＭＥＭ−Ｐ１２上にロードすることで、画像形成装置に、上述した各ステップ、各手段または各部を実現させる。
【０１９８】
また、アドレス帳管理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかるアドレス帳管理プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【産業上の利用可能性】
【０１９９】
以上のように、本発明にかかるアドレス帳管理プログラムおよび画像形成装置は、宛先情報を参照して送信処理をおこなう各種装置のアドレス帳管理に有用であり、特に、画像形成装置のアドレス帳管理に適している。
【図面の簡単な説明】
【０２００】
【図１】複合機をとりまくネットワーク環境を示すネットワーク図である。
【図２】複合機のハードウェアを説明するための説明図である。
【図３】複合機におけるハードウェアおよびソフトウェアの階層構造を説明するための説明図である。
【図４】複合機の操作パネルを説明するための説明図である。
【図５】統合アプリケーションの構成を説明するための説明図である。
【図６】統合アプリケーションの構成を表したＵＭＬクラス図である。
【図７】カテゴリにより分類されたアドレス帳を用いた場合に表示されるアドレス選択の画面例を示した図である。
【図８】アドレス帳を登録してから、カテゴリ毎に宛先を登録する際の画面フローを示した図である。
【図９】アドレス帳管理部のクラス構成を示すＵＭＬクラス図である。
【図１０】アドレス帳管理部が宛先情報の登録指示を受け付けた際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１１】アドレス帳管理部が分類アドレス帳に宛先を登録する際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１２】アドレス帳管理部が分類された宛先の情報を取得する際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１３】アドレス帳管理部が送付指示を受け付けた際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１４】アドレス帳管理部が分類アドレス帳に基づいて送付指示を受け付けた際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１５】複合機に搭載されるソフトウェア構成の変遷を示す説明図である。
【図１６】従来の複合機におけるハードウェアおよびソフトウェアの階層構造を説明するための説明図である。
【符号の説明】
【０２０１】
１  画像形成装置（複合機）
１０  コントローラ
１１  ＣＰＵ
１２  ＭＥＭ−Ｐ
１２ａ  ＲＯＭ
１２ｂ  ＲＡＭ
１３  ＮＢ
１４  ＳＢ
１５  ＡＧＰ
１６  ＡＳＩＣ
１７  ＭＥＭ−Ｃ
１８  ＨＤＤ
２０  キーボード（オペレーションパネル）
３０  ＦＣＵ
４０  ＵＳＢ
５０  ＩＥＥＥ１３９４
６０  エンジン部（Engine）
１００  ソフトウェア
１０１  アプリケーション層
１０１Ａ  アプリケーション層
１０２  サービス層
１０２ａ  スキャナ制御部
１０２ｂ  プロッタ制御部
１０２ｃ  蓄積制御部
１０２ｄ  配信／メール送受信制御部
１０２ｅ  ＦＡＸ送受信制御部
１０２ｆ  ネットワーク通信制御部
１０２ｇ  その他の制御部
１０３  オペレーティングシステム
１１０  統合アプリケーション
１１１  操作系サブシステム
１１２  管理系サブシステム
１１２ａ  アドレス帳管理部
１１３  実行系サブシステム
１２１  コピーアプリケーション
１２２  スキャナアプリケーション
１２３  ファックスアプリケーション
１２４  プリンタアプリケーション
１５０  ハードウェア
１５０ａ  スキャナ
１５０ｂ  プロッタ
１５０ｃ  ＨＤＤ
１５０ｄ  ネットワーク
１５０ｅ  その他のリソース
４００  操作パネル
４０１  初期設定キー
４０２  コピーキー
４０３  コピーサーバーキー
４０４  プリンタキー
４０５  送信キー
４０６  テンキー
４０７  クリア／ストップキー
４０８  スタートキー
４０９  予熱キー
４１０  リセットキー
４２０  液晶タッチパネル
８０１  読込ボタン
８０２  登録ボタン
９１０  書棚クラス（書棚手段の一例）
９１０Ａ  書棚オブジェクト（書棚手段の一例）
９１０ａ  状態
９１０ｂ  登録する（）
９１０ｃ  差し替える（）
９１０ｄ  差し替え終了（）
９１０ｅ  取り出す（）
９１０ｆ  しまう（）
９２０  アドレス帳クラス（アドレス管理手段の一例）
９２０Ａ  アドレス帳オブジェクト（アドレス管理手段の一例）
９２０ａ  可能操作
９２０ｂ  状態
９２０ｃ  作成する（）
９２０ｄ  改訂する（）
９２０ｅ  編集開始（）
９２０ｆ  編集終了（）
９２０ｇ  閲覧開始（）
９２０ｈ  閲覧終了（）
９２０ｉ  破棄通知（）
９３０  登録宛先クラス
９３０Ａ  登録宛先オブジェクト
９３０ａ  識別子
９３０ｂ  宛先情報
９３０ｃ  設定する（）
９３０ｄ  取得する（）
９３０ｅ  登録する（）
９４０  分類アドレス帳クラス（分類アドレス管理手段の一例）
９４０Ａ  分類アドレス帳オブジェクト（分類アドレス管理手段の一例）
９４０ａ  分類する（）
９４０ｂ  宛先を取得する（）
９４０ｃ  カテゴリを登録する（）
９４０ｄ  宛先を登録する（）
９５０  カテゴリ
９５０ａ  名前
９５０ｂ  登録する（）
９５０ｃ  取得する（）
９６０  送付状クラス
９６０Ａ  送付状オブジェクト
９６０ａ  状態
９６０ｂ  作成する（）
９６０ｃ  送付終了（）
９７０  送信宛先クラス
９７０Ａ  送信宛先オブジェクト（宛先手段の一例）
９７０ａ  識別子
９７０ｂ  送信情報
９７０ｃ  設定する（）
９７０ｄ  取得する（）
９８０  選択シートクラス（選択シート手段の一例）
９８０Ａ  選択シートオブジェクト（選択シート手段の一例）
９８０ａ  最大宛先数
９８０ｂ  状態
９８０ｃ  選択する（）
９８０ｄ  選択解除する（）
９８０ｅ  確定する（）
９８０ｆ  取り消す（）
９８０ｇ  破棄する（）
２００１  サービス層分離前アプリケーション
２００２  サービス層分離後アプリケーション
２００３  共通ルーチン分離アプリケーション
２００４  オブジェクト指向アプリケーション
【図１】
2007082012.tif 000003
【図２】
2007082012.tif 000004
【図３】
2007082012.tif 000005
【図４】
2007082012.tif 000006
【図５】
2007082012.tif 000007
【図６】
2007082012.tif 000008
【図７】
2007082012.tif 000009
【図８】
2007082012.tif 000010
【図９】
2007082012.tif 000011
【図１０】
2007082012.tif 000012
【図１１】
2007082012.tif 000013
【図１２】
2007082012.tif 000014
【図１３】
2007082012.tif 000015
【図１４】
2007082012.tif 000016
【図１５】
2007082012.tif 000017
【図１６】
2007082012.tif 000018