(57)【特許請求の範囲】
【請求項１】
ネットワークを介して情報を送信するための宛先のアドレス情報を管理するアドレス管理装置であって、
前記アドレス情報を管理するアドレス情報管理手段と、
複数の前記アドレス情報管理手段に管理されているそれぞれのアドレス情報の一貫性を保証する書棚手段とを有し、
前記書棚手段を前記アドレス情報の保存先に応じて有し、前記保存先に応じたそれぞれの前記書棚手段は、当該アドレス管理装置をそれぞれの前記書棚手段として機能させる各オブジェクトが有する同一のインタフェースを介して操作可能であることを特徴とするアドレス管理装置。
【請求項２】
前記アドレス情報管理手段によって管理されている前記アドレス情報の一覧の中から、情報の送信先として選択された前記アドレス情報を管理する選択アドレス情報管理手段と、
前記情報の送信先として、前記アドレス情報管理手段に管理されている前記アドレス情報とは別に新規に入力された前記アドレス情報を管理する入力アドレス情報管理手段と、
前記選択アドレス情報管理手段と前記入力アドレス情報管理手段とを統括し、前記選択されたアドレス情報については当該アドレス情報の管理を前記選択アドレス情報管理手段に指示し、前記新規に入力された前記アドレス情報については当該アドレス情報の管理を前記入力アドレス情報管理手段に指示する複合アドレス情報管理手段とを有することを特徴とする請求項１記載のアドレス管理装置。
【請求項３】
前記選択アドレス情報管理手段又は前記入力アドレス情報管理手段に管理されている前記アドレス情報を、送信する情報に対する宛先として管理する送付宛先管理手段と、
前記アドレス情報のうち複数の宛先がグループ化された宛先に対するアドレス情報を、送信する情報に対する宛先として管理するグループ送付宛先管理手段とを有し、
前記グループ送付宛先管理手段は、当該アドレス管理装置を前記送付宛先管理手段として機能させるオブジェクトが有するインタフェースを介して操作可能であることを特徴とする請求項２記載のアドレス管理装置。
【請求項４】
ネットワークを介して情報を送信するための宛先のアドレス情報を管理するアドレス管理装置を、
前記アドレス情報を管理するアドレス情報管理手段と、
複数の前記アドレス情報管理手段に管理されているそれぞれのアドレス情報の一貫性を保証する書棚手段として機能させるためのアドレス管理プログラムであって、
前記書棚手段を前記アドレス情報の保存先に応じて有し、前記保存先に応じたそれぞれの前記書棚手段は、前記アドレス管理装置をそれぞれの前記書棚手段として機能させる各オブジェクトが有する同一のインタフェースを介して操作可能であることを特徴とするアドレス管理プログラム。
【請求項５】
前記アドレス情報管理手段によって管理されている前記アドレス情報の一覧の中から、情報の送信先として選択された前記アドレス情報を管理する選択アドレス情報管理手段と、
前記情報の送信先として、前記アドレス情報管理手段に管理されている前記アドレス情報とは別に新規に入力された前記アドレス情報を管理する入力アドレス情報管理手段と、
前記選択アドレス情報管理手段と前記入力アドレス情報管理手段とを統括し、前記選択されたアドレス情報については当該アドレス情報の管理を前記選択アドレス情報管理手段に指示し、前記新規に入力された前記アドレス情報については当該アドレス情報の管理を前記入力アドレス情報管理手段に指示する複合アドレス情報管理手段とを有することを特徴とする請求項４記載のアドレス管理プログラム。
【請求項６】
前記選択アドレス情報管理手段又は前記入力アドレス情報管理手段に管理されている前記アドレス情報を、送信する情報に対する宛先として管理する送付宛先管理手段と、
前記アドレス情報のうち複数の宛先がグループ化された宛先に対するアドレス情報を、送信する情報に対する宛先として管理するグループ送付宛先管理手段とを有し、
前記グループ送付宛先管理手段は、前記アドレス管理装置を前記送付宛先管理手段として機能させるオブジェクトが有するインタフェースを介して操作可能であることを特徴とする請求項５記載のアドレス管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドレス管理装置及びアドレス管理プログラに関し、特にネットワークを介して情報を送信するための宛先のアドレス情報を管理するアドレス管理装置及びアドレス管理プログラムに関する。
【背景技術】
【０００２】
従来、プリンタ、コピーおよびスキャナなどの複数の機能を一つの筐体内に収納した複合機が知られている。かかる複合機では、ＵＮＩＸ（登録商標）などの汎用ＯＳ上に、プリンタアプリ、コピーアプリおよびスキャナアプリと呼ばれる複数のアプリケーションを搭載し、これらのアプリケーションの実行処理を切替えながら複数の機能を実現していた。
【０００３】
ところが、上記プリンタアプリ、コピーアプリおよびスキャナアプリは、それぞれエンジン制御、メモリ制御およびシステム制御などを別個におこなっているので、重複処理という無駄が生じていた。
【０００４】
このため、特許文献１では、複合機に搭載される複数のアプリケーションがそれぞれ担っていたエンジン制御、メモリ制御およびシステム制御などの処理を共通処理部分（プラットホーム）として各アプリケーションから括り出すことにより、アプリケーションの開発効率の向上を図っている。
【０００５】
また、特許文献２では、印刷装置に搭載される印刷制御ソフトウェアを、オブジェクト指向設計による複数のソフトウェア部品から構成し、かかる部品群の協調動作により印刷処理をおこなうこととしている。
【特許文献１】特開２００２−０８４３８３号公報
【特許文献２】特開平１１−３２７８８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、この特許文献１で開示されている発明は、ハードウェアを制御する処理部分を共通化するものであり、各アプリケーションの内部処理全般を共通化するものではないため、内部処理全般の開発効率が良くないという問題がある。つまり、複合機上のアプリケーションには、開発効率の向上を図るためには内部処理を共通化するうえで改善の余地が残されている。
【０００７】
たとえば、ＦＡＸやメールの送受信等に用いられる、利用者のアドレスを管理するアドレス管理処理は、複写機上の各アプリケーションに共通して存在する処理であるが、ハードウェアを直接制御する処理ではないため各アプリケーションで別個に実現されており、共通化することが可能である。
【０００８】
また、特許文献２で開示されている発明は、印刷制御ソフトウェアをオブジェクト指向設計による複数のソフトウェア部品から構成したものであり、アドレス管理して送信処理を制御するソフトウェア部品を開示したものではない。したがって、多機能化により多くのアドレス管理機能を搭載する複合機において、特許文献２で開示されている発明を応用して、アドレスを管理するソフトウェア部品を作成したとしても、送受信を行うアプリケーションの差異や、アドレスを分類する形式等の差異のため、利用者のアドレスを効率よく管理することは容易でない。
【０００９】
これらのことから、複合機に搭載される利用者のアドレスを管理する機能をいかにして効率よく実現するかが大きな課題となっている。なお、かかる課題は複合機についてのみ生じるものではなく、たとえば、ネットワークを介してメールやＦＡＸ等の情報を送受信する際に用いられるアドレスを管理するアドレス管理装置を形成するような場合にも同様に生ずる課題である。
【００１０】
本発明は、上記に鑑みてなされたものであって、柔軟性及び拡張性のある宛先情報の管理機能を実現するアドレス管理装置及びアドレス管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
そこで上記課題を解決するため、本発明は、ネットワークを介して情報を送信するための宛先のアドレス情報を管理するアドレス管理装置であって、前記アドレス情報を管理するアドレス情報管理手段と、複数の前記アドレス情報管理手段に管理されているそれぞれのアドレス情報の一貫性を保証する書棚手段とを有し、前記書棚手段を前記アドレス情報の保存先に応じて有し、前記保存先に応じたそれぞれの前記書棚手段は、同一のインタフェースによって操作可能であることを特徴とする。
【００１２】
このようなアドレス管理装置では、柔軟性及び拡張性のある宛先情報の管理機能を実現することができる。
【発明の効果】
【００１３】
本発明によれば、柔軟性及び拡張性のある宛先情報の管理機能を実現するアドレス管理装置及びアドレス管理プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明にかかるアドレス管理装置及びアドレス管理プログラムの最良な実施の形態を詳細に説明する。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、アドレス管理処理をおこなう各種装置に適用することができる。
【００１５】
まず、本発明の第１の実施の形態に係る画像形成装置（以下「複合機」と言う）１の概要について図１、図２、図３、図４、図１５および図１６を用いて説明する。図１は、本実施の形態に係る複合機１を取り巻くネットワーク環境を説明するためのネットワーク図であり、図２は、図１に示した複合機１のハードウェア構成を示すブロック図であり、図３は、図１に示した複合機１のソフトウェアとハードウェアの関係を説明するための概念図である。図４は、複合機１の操作パネル４００の一例を示した図である。そして、図１５は、複合機に搭載されるソフトウェア構成の変遷を説明するための説明図であり、図１６は、従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。
【００１６】
図１に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたＰＣ（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）において、利用者の必要に応じてアドレス帳を登録する。そして、図８の（ｂ）において、登録されたアドレス帳に対して、カテゴリを登録する。
【００５６】
次に、図８の（ｃ）において、登録されたカテゴリ毎に利用者の宛先を登録する。なお、この登録の際に他のアドレス帳に登録された利用者の宛先を読み込んで登録することができる。これは読込ボタン８０１を押下して、他のアドレス帳を選択等により行うことを可能とする。この際に、図８の（ｂ）で登録されたカテゴリを選択する必要がある。これにより、入力された宛先が所望のカテゴリに登録されることになる。
【００５７】
そして、図８の（ｄ）は、（ｃ）で登録ボタン８０２を押下された場合の画面を示しており、宛先名欄に入力されていた名前が、カテゴリとなるチームＢに登録されていることが理解できる。
【００５８】
そして、以下に、このような処理手順を可能とするアドレス帳管理部１１２ａの構成について説明する。
【００５９】
図９は、上述したオブジェクトモデリングにより設計されたアドレス管理に用いるクラス構成をＵＭＬのクラスで示した図である。本図に示すように、アドレス帳管理部１１２ａは、書棚クラス９１０と、ローカル書棚クラス９１１と、配信サーバ書棚クラス９１２と、ＬＤＡＰ（Lightweight Directory Access Protocol）サーバ書棚クラス９１３と、アドレス帳クラス９２０と、登録宛先クラス９３０と、分類アドレス帳クラス９４０と、カテゴリクラス９５０と、選択シートクラス９８０と、既存宛先選択シートクラス９８１と、追加宛先選択シート９８２と、複合選択シートクラス９８３と、送付状クラス９６０と、送付宛先クラス９７０と、グループ送付宛先クラス９７１とを備えている。このような構成を備えたことで、文書処理が容易になる。
【００６０】
また、クラスとは、オブジェクト指向システムを構成するオブジェクトの設計図に相当する概念であり、このクラスは、データと処理を一体化（カプセル化）して内部に有するとともに、継承関係や集約関係といった、他のクラスとの静的な関係を有する。そして、クラス図においては、各クラスが内部に有するデータおよび処理、複数のクラス間の静的な関係が表される。
【００６１】
各クラスを示す矩形は３段の区画を有し、上から、クラス名を示す名前区画、クラスが有するデータ（属性）を示す属性区画およびクラスが有する処理（操作）を示す操作区画と呼ばれる。たとえば、登録宛先クラス９３０を示す矩形の名前区画は、かかるクラスのクラス名が「登録宛先」であることを示し、属性区画は、かかるクラスが有する属性が、「識別子」と「宛先情報」であることを示し、操作区画は、かかるクラスが有する操作が、「設定する（）」と「取得する（）」と「登録する（）」であることを示している。
【００６２】
このように、各クラスは、データ（属性）を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理（操作）を所持するための操作区画とを有している。これらのクラスは、プログラム（統合アプリケーション１１０）の一部として含まれるので、あらかじめＲＯＭ１２ａに格納されたこのプログラムが実行されると、各クラスはＲＡＭ１２ｂの所定領域に実体化され、属性区画に含まれる各データ（属性）がＲＡＭ１２ｂ上に展開される。したがって、クラスを実体化したオブジェクトは、ＲＡＭ１２ｂ上の各データ（属性）の書き込みおよび読み出しをすることが可能となる。
【００６３】
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「＋」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「取得する（）」のように「（）」記号を付することが通例であり、「（引数１，引数２）」のように、かかる操作に引き渡す引数を記述する場合もある。
（各クラスの説明）
次に、図９に示した各クラスについて説明する。書棚クラス９１０は、複数のアドレス帳を管理して各アドレス帳間の一貫性を保つクラスであり、複数のアドレス帳オブジェクト９２０Ａの中からキーアドレス帳を指定するとともに、宛先情報の一括更新（アドレス帳の差替え）要求を受け付けたならば、すべてのアドレス帳オブジェクト９２０Ａに、かかる宛先情報の更新を反映させる処理をおこなうクラスである。具体的には、この書棚クラス９１０は、属性として、状態９１０ａを有し、操作として、登録する（）９１０ｂと、差し替える（）９１０ｃと、差し替え終了（）９１０ｄと、取り出す（）９１０ｅと、しまう()９１０ｆと、を有する。なお、かかる書棚クラス９１０を実体化したオブジェクトが生成されると、状態９１０ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。この生成は、すべてのオブジェクトが有する操作であり、この生成を呼び出すことにより各オブジェクトはＲＡＭ１２ｂ上に実体化される。
【００６４】
状態９１０ａは、書棚クラス９１０を実体化したオブジェクトの現在の公開状態を保持している。状態９１０は、状態情報として、「公開中」と「非公開中」のいずれか１つが選択されている。「公開中」は、所有するアドレス帳を取り出し可能な通常の状態を示している。ここで、アドレス帳の取出しとは、書棚クラス９１０が管理するアドレス帳オブジェクト９２０Ａが保持する宛先情報を参照することをいう。「非公開中」は、アドレス帳を取り出せない状態を示しており、例えばアドレス帳の差し替え（一括更新）等を行っている場合が考えられる。
【００６５】
登録する（）９１０ｂは、管理対象となるアドレス帳を登録する。そして、登録する（）９１０ｂが呼び出された場合、アドレス帳クラス９２０を実体化したオブジェクトの生成、またはアドレス帳オブジェクト９２０Ａのサブクラスである分類アドレス帳クラス９４０を実体化したオブジェクトの生成を行う。なお、どちらを生成するかは、登録する（）９１０ｂが呼び出された際に用いられた引数等により判断する。
【００６６】
差し替える（）９１０ｃは、生成されたアドレス帳オブジェクト９２０Ａ又は分類アドレス帳オブジェクト９４０Ａの一括更新を行う。なお、一括更新方法としては、現在知られている方法を問わずどのような方法を用いても良い。これにより、アドレス帳間の共通情報の一貫性が保持されることになる。
【００６７】
差し替え終了（）９１０ｄは、アドレス帳の一括更新終了した際に、差し替えが終了したことを認識するために、書棚クラス９１０自身が呼び出す。これにより、実行系サブシステム１１３に対して通知等がなされ、利用者が差し替えが終了したことを認識することができる。
【００６８】
取り出す（）９１０ｅは、操作系サブシステム１１１から呼び出され、所望するアドレス帳オブジェクト９２０Ａ又は分類アドレス帳オブジェクト９４０Ａを特定する。これにより、当該アドレス帳オブジェクト９２０Ａ又は分類アドレス帳オブジェクト９４０Ａの閲覧等が可能になる。
【００６９】
しまう()９１０ｆは、取り出す（）９１０ｅにより特定されたアドレス帳オブジェクト９２０Ａ又は分類アドレス帳オブジェクト９４０Ａの参照等を終了したことを通知する。
【００７０】
ところで、アドレス帳の取り扱いは、当該アドレス帳の所在（保存先）に応じて異なる場合がある。そこで、本実施の形態では、管理対象となるアドレス帳の所在に応じて、ローカル書棚クラス９１１、配信サーバ書棚クラス９１２、及びＬＤＡＰサーバ書棚クラス９１３が、書棚クラス９１０のサブクラスとして定義されている。これらのサブクラスは、書棚クラス９１０の性質を継承しつつ、アドレス帳の所在に応じて異なる点については、当該所在に応じた処理を実行する。
【００７１】
ローカル書棚クラス９１１は、複合機１のＨＤＤ１８に保存された複数のアドレス帳を管理して、ＨＤＤ１８に保存された各アドレス帳の一貫性を保つクラスである。ローカル書棚クラス９１１は、書棚クラス９１０のサブクラスであるため、基本的には上述した書棚クラス９１０の属性及び操作を継承する。但し、書棚クラス９１０の操作である、登録する（）９１０ｂ、差し替える（）９１０ｃについては、ＨＤＤ１８に保存されたアドレス帳に特化した処理を実行するために、登録する（）９１１ｂ、差し替える（）９１１ｃによってオーバーライドされている。すなわち、登録する（）９１１ｂは、管理対象となるアドレス帳をＨＤＤ１８に登録する。また、差し替える（）９１１ｃは、ＨＤＤ１８に登録されているアドレス帳の一括更新を行う。
【００７２】
配信サーバ書棚クラス９１２は、複合機１とネットワークを介して接続された配信サーバに保存された複数のアドレス帳を管理して、配信サーバに保存された各アドレス帳の一貫性を保つクラスである。配信サーバ書棚クラス９１２は、書棚クラス９１０のサブクラスであるため、基本的には上述した書棚クラス９１０の属性及び操作を継承する。但し、書棚クラス９１０の操作である、登録する（）９１０ｂ、差し替える（）９１０ｃについては、配信サーバに保存されたアドレス帳に特化した処理を実行するために、登録する（）９１２ｂ、差し替える（）９１２ｃによってオーバーライドされている。すなわち、登録する（）９１２ｂは、管理対象となるアドレス帳を配信サーバに登録する。また、差し替える（）９１２ｃは、配信サーバに登録されているアドレス帳の一括更新を行う。なお、配信サーバとは、例えば、複合機１からの要求に応じ画像データ等を電子メール等によって配信するための機能が実装されたコンピュータをいう。
【００７３】
ＬＤＡＰサーバ書棚クラス９１３は、複合機１とネットワークを介して接続されたＬＤＡＰサーバに保存された複数のアドレス帳を管理して、ＬＤＡＰサーバに保存された各アドレス帳の一貫性を保つクラスである。ＬＤＡＰサーバ書棚クラス９１３は、書棚クラス９１０のサブクラスであるため、基本的には上述した書棚クラス９１０の属性及び操作を継承する。但し、書棚クラス９１０の操作である、登録する（）９１０ｂ、差し替える（）９１０ｃについては、ＬＤＡＰサーバに保存されたアドレス帳に特化した処理を実行するために、登録する（）９１３ｂ、差し替える（）９１３ｃによってオーバーライドされている。すなわち、登録する（）９１３ｂは、管理対象となるアドレス帳をＬＤＡＰサーバに登録する。また、差し替える（）９１３ｃは、ＬＤＡＰサーバに登録されているアドレス帳の一括更新を行う。
【００７４】
アドレス帳クラス９２０は、アドレス帳に登録された利用者の宛先を管理し、さらに宛先情報の読み書きを管理するクラスである。具体的には、このアドレス帳クラス９２０は、属性として、可能操作９２０ａおよび状態９２０ｂを有し、操作として、作成する（）９２０ｃ、改訂する（）９２０ｄ、編集開始（）９２０ｅ、編集終了（）９２０ｆ、閲覧開始（）９２０ｇ、閲覧終了（）９２０ｈ、破棄通知（）９２０ｉを有する。なお、かかるアドレス帳クラス９２０を実体化したオブジェクトが生成されると、可能操作９２０ａおよび状態９２０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。また、このアドレス帳クラス９２０は、分類アドレス帳クラス９４０の上位クラス（スーパークラス）であり、アドレス帳クラス９２０の属性および操作は、下位クラス（サブクラス）である分類アドレス帳クラス９４０に継承される。
【００７５】
可能操作９２０ａは、当該アドレス帳オブジェクト９２０Ａと関連(リンク情報)を保持している登録宛先オブジェクト９３０Ａが保持する宛先情報で特定される利用者又は複合機１を使用する利用者から、受け付けることが可能な操作を保持している。操作としては、例えば編集・閲覧可能又は閲覧等が考えられるが、あらゆる操作を設定することができる。
【００７６】
状態９２０ｂは、現在のアドレス帳オブジェクト９２０Ａの公開状態を保持している。状態９２０ｂは、状態情報として、「未使用中」と「編集中」と「閲覧中」と「使用不可能」のいずれか１つが選択されている。「未使用中」は、どの利用者からも使用されていない状態を示している。「編集中」は、後述する編集開始（）９２０ｅが呼びだされた状態で、利用者がアドレス帳に登録された宛先情報を編集している状態を示している。「閲覧中」は、後述する閲覧開始（）９２０ｇが呼び出された状態で、利用者がアドレス帳に登録された宛先情報を閲覧している状態を示している。「使用不可能」は、後述する改訂する（）９２０ｄが呼び出されてアドレス帳に登録された宛先情報の一括更新等をしているため、使用できない状態を示している。
【００７７】
作成する（）９２０ｃは、書棚オブジェクト９１０Ａから呼び出され、生成された当該アドレス帳オブジェクト９２０Ａを初期化する。
【００７８】
改訂する（）９２０ｄは、書棚オブジェクト９１０Ａから呼び出され、当該アドレス帳オブジェクト９２０Ａに登録された宛先情報を一括更新する。
【００７９】
編集開始（）９２０ｅは、書棚オブジェクト９１０Ａから呼び出され、当該アドレス帳オブジェクト９２０Ａの編集開始を宣言する。これにより利用者はアドレス帳を編集することができる。また、編集開始を宣言したときに、当該アドレス帳オブジェクト９２０Ａと、関連（リンク情報）を保持する選択シートオブジェクト９８０Ａが生成されている場合、選択シートオブジェクト９８０Ａの取り消す（）９８０ｆを呼び出す。
【００８０】
編集終了（）９２０ｆは、書棚オブジェクト９１０Ａから呼び出され、当該アドレス帳オブジェクト９２０Ａの編集が終了したことを宣言する。
【００８１】
閲覧開始（）９２０ｇは、書棚オブジェクト９１０Ａから呼び出され、当該アドレス帳オブジェクト９２０Ａの閲覧開始を宣言する。また、閲覧開始を宣言したときに、アドレス帳オブジェクト９２０Ａは選択シートオブジェクト９８０Ａを生成する。そして選択シートオブジェクト９８０Ａが、当該アドレス帳オブジェクト９２０Ａから送信先となる宛先情報を取得することになる。
【００８２】
閲覧終了（）９２０ｈは、書棚オブジェクト９１０Ａから呼び出され、当該アドレス帳オブジェクト９２０Ａの閲覧が終了したことを宣言する。
【００８３】
破棄通知（）９２０ｉは、後述する選択シートオブジェクト９８０Ａから呼び出され、情報の送付等が行われた旨を認識する。
【００８４】
分類アドレス帳クラス９４０は、アドレス帳クラス９２０のサブクラスであり、登録された宛先をカテゴリ毎に分類して管理するクラスである。具体的には、この分類アドレス帳クラス９４０は、アドレス帳クラス９２０から、属性として可能操作９２０ａおよび状態９２０ｂを、操作として作成する（）９２０ｃ、改訂する（）９２０ｄ、編集開始（）９２０ｅ、編集終了（）９２０ｆ、閲覧開始（）９２０ｇ、閲覧終了（）９２０ｈ、破棄通知（）９２０ｉを継承し、さらに操作として、分類する（）９４０ａ、宛先を取得する（）９４０ｂ、カテゴリを登録する（）９４０ｃ、宛先を登録する（）９４０ｄを有する。なお、かかる分類アドレス帳クラス９４０を実体化したオブジェクトが生成されると、可能操作９２０ａおよび状態９２０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００８５】
分類する（）９４０ａは、宛先情報を分類する際に用いられるカテゴリを生成する。
【００８６】
宛先を取得する（）９４０ｂは、カテゴリに登録された宛先情報を取得する。具待機には、分類アドレス帳クラス９４０は、カテゴリクラス９５０の取得する（）９５０ｃを呼び出す。
【００８７】
カテゴリを登録する（）９４０ｃは、分類アドレス帳クラス９４０が管理するカテゴリを登録する。カテゴリを登録する（）９４０ｃが呼び出された場合、分類アドレス帳クラス９４０は、宛先情報を分類する際に用いられるカテゴリクラス９５０を実体化したオブジェクトを生成し、関連（リンク情報）を保持する。
【００８８】
宛先を登録する（）９４０ｄは、登録されたカテゴリに対して宛先を登録する。具体的には、分類アドレス帳クラス９４０は、カテゴリクラス９５０の登録する（）９５０ｂを呼び出す。
【００８９】
カテゴリクラス９５０は、１つの分類単位を示すクラスである。具体的には、このカテゴリクラス９５０は、属性として、名前９５０ａを有し、操作として、登録する（）９５０ｂと、取得する()９５０ｃと、を有する。なお、かかるカテゴリクラス９５０を実体化したオブジェクトが生成されると、名前９５０ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００９０】
名前９５０ａは、当該カテゴリクラス９５０が実体化されたオブジェクトのカテゴリを識別するための名前を保持している。
【００９１】
登録する（）９５０ｂは、分類アドレス帳オブジェクト９４０Ａから呼び出され、当該カテゴリに分類される宛先情報を登録する。具体的には、分類アドレス帳オブジェクト９２０Ａが登録する（）９５０ｂを呼び出した際、カテゴリオブジェクト９５０Ａは登録する宛先情報を保持している登録宛先オブジェクト９３０Ａと関連（リンク情報）を保持させ、可能操作９２０ａに、当該登録宛先オブジェクト９３０Ａの識別子９３０ａと、許可する操作を設定することで登録する。
【００９２】
取得する()９５０ｃは、分類アドレス帳オブジェクト９２０Ａから呼び出され、当該カテゴリに登録された登録宛先オブジェクト９３０Ａが保持する宛先情報を取得する。
【００９３】
登録宛先クラス９３０は、アドレス帳に登録された宛先の中で操作中のもの、又は登録中の宛先の情報を一時的に保持するクラスである。この登録宛先オブジェクト９３０Ａを生成される際、必要に応じて不揮発記憶領域に記憶された宛先情報を読み出すこととする。具体的には、この登録宛先クラス９３０は、属性として、識別子９３０ａおよび宛先情報９３０ｂを有し、操作として、設定する（）９３０ｃと、取得する()９３０ｄと、登録する（）９３０ｅと、を有する。なお、かかる登録宛先クラス９３０を実体化したオブジェクトが生成されると、識別子９３０ａおよび宛先情報９３０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【００９４】
識別子９３０ａは、登録宛先オブジェクト９３０Ａ毎にユニークな識別子を保持している。これによりアドレス帳オブジェクト９２０Ａは、登録された宛先情報を保持する登録宛先オブジェクト９３０Ａを認識することができる。
【００９５】
宛先情報９３０ｂは、利用者に送信するために必要な情報を保持し、宛先名や、送信先の電話番号や、メールアドレス等を保持する。また、宛先情報９３０ｂは、既に不揮発記憶領域に保存された宛先情報である場合、この宛先情報を読み出して設定される。
【００９６】
設定する（）９３０ｃは、操作系サブシステム１１１から呼び出され、宛先情報９３０ｂを設定する。なお、設定する（）９３０ｃは、新たに宛先情報を作成する場合に限らず、既に登録された宛先情報を編集する際にも用いられる。
【００９７】
取得する()９３０ｄは、アドレス帳オブジェクト９２０Ａ又はカテゴリオブジェクト９５０Ａから呼び出され、宛先情報９３０ｂを取得する処理を行う。
【００９８】
登録する（）９３０ｅは、設定する（）９３０ｃで設定された宛先情報９３０ｂを、ＨＤＤ（Hard Disk Drive）などの不揮発記憶領域に保存する。
【００９９】
選択シートクラス９８０は、宛先の選択を管理して選択された宛先を保持する処理をおこなうクラスである。具体的には、この選択シートクラス９８０は、属性として、最大宛先数９８０ａおよび状態９８０ｂを有し、操作として、選択する（）９８０ｃと、選択解除する（）９８０ｄと、確定する（）９８０ｅと、取り消す（）９８０ｆと、破棄する（）９８０ｇと、を有する。なお、かかる選択シートクラス９８０を実体化したオブジェクトが生成されると、最大宛先数９８０ａおよび状態９８０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１００】
最大宛先数９８０ａは、送信する際に選択可能な宛先の最大数を保持する。
【０１０１】
状態９８０ｂは、状態情報として、「選択中」、「確定中」、「破棄中」及び「取消中」のうちいずれか１つが選択されている。「選択中」は、宛先の選択解除を行っている状態を示している。「確定中」は、選択宛先が確定した状態を示している。「破棄中」は、選択宛先の保持が不要になった状態を示している。「取消中」は、選択宛先の選択を取りやめた状態を示した。このような状態９８０ｂが保持する状態情報は、後述する操作と共に変更される。
【０１０２】
選択する（）９８０ｃは、操作系サブシステム１１１から呼び出され、送信先となる宛先を選択する。具体的には、選択する（）９８０ｃが呼び出された場合、選択シートオブジェクト９８０Ａは、既に選択されている宛先数と、最大宛先数９８０ａの比較し、指定された宛先の正当性（例えば、送信先として問題ないか否か）を確認して、選択可能か否か判断する。そして、選択シートオブジェクト９８０Ａが選択可能と判断した場合、新たに送付宛先オブジェクト９７０Ａを生成して、選択シートオブジェクト９８０Ａと、生成した送付宛先オブジェクト９７０Ａとの関連（リンク情報）を保持する。
【０１０３】
選択解除する（）９８０ｄは、操作系サブシステム１１１から呼び出され、指定された宛先情報の選択を解除する。そして、選択シートオブジェクト９８０Ａは、関連（リンク情報）を保持する送信宛先オブジェクト９７０Ａのうち、選択が解除された送付宛先オブジェクト９７０Ａを消去する。そして、選択シートオブジェクト９８０Ａは、選択解除された送付宛先オブジェクト９７０Ａを消去する。
【０１０４】
確定する（）９８０ｅは、操作系サブシステム１１１から呼び出され、宛先情報の選択を確定する。確定した以降、選択シートオブジェクト９８０Ａは、選択する（）９８０ｃや選択を解除する（）９８０ｄが呼び出されても、選択された宛先情報の変更は行わない。そして、選択シートオブジェクト９８０Ａは、送付状オブジェクト９６０Ａを生成して、関連（リンク情報）を保持し、当該送付状オブジェクト９６０Ａに選択された宛先情報を受け渡す。
【０１０５】
取り消す（）９８０ｆは、操作系サブシステム１１１から呼び出され、既に選択された宛先情報の選択を取り消す。そして、選択シートオブジェクト９８０Ａは、関連（リンク情報）を保持する送信宛先オブジェクト９７０Ａを消去する。そして、当該選択シートオブジェクト９８０Ａは、自動的に消去される。
【０１０６】
破棄する（）９８０ｇは、アドレス帳オブジェクト９２０Ａ又は送付状オブジェクト９６０Ａから呼び出され、既に選択されていた宛先情報を取り消す。この廃棄する（）９８０ｇは、選択された宛先情報の保持が不要なった場合に使用する。そして、選択シートオブジェクト９８０Ａは、関連（リンク情報）を保持する送信宛先オブジェクト９７０Ａを消去する。
【０１０７】
ところで、宛先の選択の取り扱いは、選択される宛先の出所（例えば、アドレス帳から選択されたものであるのか、又は新規に手入力されたものであるのか）に応じて異なる場合がある。そこで、本実施の形態では、宛先の出所に応じて、既存宛先選択シートクラス９８１、追加宛先選択シートクラス９８２、及び複合選択シートクラス９８３が、選択シートクラス９８０のサブクラスとして定義されている。これらのサブクラスは、選択シートクラス９８０の性質を継承しつつ、宛先の出所に応じて異なる点については、当該選宛先に応じた処理を実行する。
【０１０８】
既存宛先選択シートクラス９８１は、既存のアドレス帳の中から選択された宛先を保持するクラスである。既存宛先選択シートクラス９８１は、選択シートクラス９８０のサブクラスであるため、基本的には上述した選択シートクラス９８０の属性及び操作を継承する。但し、選択シートクラス９８０の操作である、選択する（）９８０ｃについては、既存のアドレス帳の中からの選択された宛先に特化した処理を実行するために、選択する（）９８１ｃによってオーバーライドされている。すなわち、選択する（）９８１ｃは、送信先となる宛先を既存のアドレス帳の中から選択する。
【０１０９】
追加宛先選択シートクラス９８２は、新規に入力された宛先を保持するクラスである。追加宛先選択シートクラス９８２は、選択シートクラス９８０のサブクラスであるため、基本的には上述した選択シートクラス９８０の属性及び操作を継承する。但し、選択シートクラス９８０の操作である、選択する（）９８０ｃについては、新規に入力された宛先に特化した処理を実行するために、選択する（）９８２ｃによってオーバーライドされている。すなわち、選択する（）９８２ｃは、新規に入力された宛先を選択する。
【０１１０】
複合選択シートクラス９８３は、複数の選択シート（既存宛先選択シートクラス９８１及び追加宛先選択シートクラス９８２等）を統括及び管理するクラスであり、既存のアドレス帳に登録されている宛先と新規に入力された宛先とが混在して選択されることがある場合を考慮して定義されたものである。複合選択シートクラス９８３は、宛先の選択を直接的には管理せず、自らの管理化にある既存宛先選択シートクラス９８１及び追加宛先選択シート９８２クラスを介して管理する。複合選択シートクラス９８３は、選択シートクラス９８０のサブクラスであるため、基本的には上述した選択シートクラス９８０の属性及び操作を継承する。但し、選択シートクラス９８０の操作である、選択する（）９８０ｃ、選択解除する（）９８０ｄ、確定する（）９８０ｅ、取り消す（）９８０ｆ、破棄する（）９８０ｇについては、選択する（）９８０ｃ、選択解除する（）９８０ｄ、確定する（）９８０ｅ、取り消す（）９８０ｆ、破棄する（）９８０ｇによってオーバーライドされている。
【０１１１】
選択する（）９８３ｃは、選択された宛先の出所に基づいて管理化の選択シートの中から適切な選択シートを選び、当該選択シートに選択処理を行わせる。
【０１１２】
選択解除する（）９８３ｄは、選択が解除された宛先の出所に基づいて管理下の選択シートの中から適切な選択シートを選び、当該選択シートに選択解除処理を行わせる。
【０１１３】
確定する（）９８３ｅは、管理下にある全ての選択シートに確定処理を行わせ、自分自身も確定状態にする。
【０１１４】
取り消す（）９８３ｆは、管理下にある全ての選択シートに取り消し処理を行わせ、自分自身も取り消し状態にする。
【０１１５】
破棄する（）９８３ｇは、管理下にある全ての選択シートに破棄処理を行わせる。
【０１１６】
送付状クラス９６０は、選択された宛先に文書の送付を管理するクラスである。具体的には、この送付状クラス９６０は、属性として、状態９６０ａを有し、操作として、作成する（）９６０ｂと、送付終了（）９６０ｃと、を有する。なお、かかる送付状クラス９６０を実体化したオブジェクトが生成されると、状態９６０ａはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。なお、送付状オブジェクト９６０Ａは、生成を行った選択シートオブジェクトＡが関連（リンク情報）を保持する送信宛先オブジェクト９７０Ａと関連（リンク情報）を保持する事とする。
【０１１７】
状態９６０ａは、送信状態として「送付中」及び「送信終了」のうちいずれか１つが選択されている。「送信中」は、送付状に登録された宛先に、文書を送付している状態を示している。「送付終了」は、送付状に登録された宛先への文書送付が終了した状態を示している。
【０１１８】
作成する（）９６０ｂは、選択シートオブジェクト９８０Ａから呼び出され、送付状に宛先を登録する。具体的には、送付状オブジェクト９６０Ａは、作成する（）９６０ｂが呼び出された場合、関連（リンク情報）を保持している送付宛先オブジェクト９７０Ａから、宛先情報を取得し、取得した宛先情報を登録する処理を行う。
【０１１９】
送付終了（）９６０ｃは、操作系サブシステム１１１から呼び出され、送付が終了したことを確認が行われる。この後、送付状オブジェクト９６０Ａは、関連（リンク情報）が保持されている選択シートオブジェクト９８０Ａの廃棄する（）９８０ｇを呼び出す。
【０１２０】
送付宛先クラス９７０は、送付先として選択された各宛先を示すクラスである。具体的には、この送付宛先クラス９７０は、属性として、識別子９７０ａおよび送信情報９７０ｂを有し、操作として、設定する（）９７０ｃと、取得する（）９７０ｄと、を有する。なお、かかる送付宛先クラス９７０を実体化したオブジェクトが生成されると、識別子９７０ａおよび送信情報９７０ｂはＲＡＭ１２ｂ上に展開されるので、これらのデータ（属性）の書き込みおよび読み出しをすることが可能となる。
【０１２１】
識別子９７０ａは、宛先情報毎のユニークな識別子を保持している。なお、この識別子９７０ａは、登録宛先クラス９３０の識別子９３０ａと同じ識別子を用いる。
【０１２２】
送信情報９７０ｂは、利用者に送信するために必要な情報を保持し、宛先名や、送信先の電話番号や、メールアドレス等を保持する。
【０１２３】
設定する（）９７０ｃは、選択シートオブジェクト９８０Ａから呼び出され、送信情報９７０ｂを設定する。具体的には、選択シートオブジェクト９８０Ａに対して、アドレス帳オブジェクト９２０Ａで登録されている宛先情報が入力された場合、選択シートオブジェクト９８０Ａが、設定する（）９７０ｃを呼び出して、当該入力された宛先情報を設定する。
【０１２４】
取得する（）９７０ｄは、送付状オブジェクト９６０Ａから呼び出され、送信情報９７０ｂで保持している送信に必要な情報を取得する。
【０１２５】
グループ送付宛先クラス９７１は、送付宛先クラス９７０のサブクラスであり、送付先として選択された宛先であって、複数の宛先がグループ化された宛先（以下「グループ宛先」という。）を示すクラスである。グループ送付宛先クラス９７１は、送付宛先クラス９７０のサブクラスであるため、基本的には上述した送付宛先クラス９７０の属性及び操作を継承する。但し、送付宛先クラス９７０の操作である、設定する（）９７０ｃ、取得する（）９７０ｄについては、グループ宛先に特化した処理を実行するために、設定する（）９７１ｃ、取得する（）９７１ｄによってオーバーライドされている。
【０１２６】
設定する（）９７１ｃは、当該グループ宛先を構成する送付宛先（以下「メンバ宛先」という。）、又はメンバ宛先の宛先情報を自らに設定する。
【０１２７】
取得する（）９７１ｄは、当該グループ宛先のメンバ宛先、又はメンバ宛先の宛先情報を集録する。
【０１２８】
次に、図９に示した各クラス間の関係について説明する。本図に示したように、各クラスを示す矩形を結ぶ直線は、その両端のクラス間に関係があることを表しており、この直線の両端付近の文字はクラスの役割を、数字はクラスの多重度をそれぞれ示している。ここで、役割とは、かかる直線の両端における、一方のクラスからみた、もう一方のクラスの役割や立場のことであり、多重度とは、かかる直線の両端のクラスから生成されるオブジェクト数の対応関係のことである。
【０１２９】
まず、書棚クラス９１０とアドレス帳クラス９２０とのクラス関係について説明する。書棚クラス９１０は、アドレス帳クラス９２０と２つの関連を有している。一つは、「原本」としてのアドレス帳に対応するアドレス帳オブジェクト９２０Ａとの関連であり、もう一つは、原本からの抜き書きである「抄本」としてのアドレス帳に対応するアドレス帳オブジェクト９２０Ａとの関連である。原本は、１つしか存在し得ないため、その多重度は、０個以上１個以下とされている。一方、抄本は複数生成され得るため、その多重度は、０個以上ｎ個以下とされている。なお、いずれの関連においても書棚クラス９１０は、アドレス帳クラス９２０に対して「保存場所」としての役割を担う。
【０１３０】
次に、アドレス帳クラス９２０と、登録宛先クラス９３０のクラス関係について説明する。アドレス帳クラス９２０は、登録する宛先情報に対応する登録宛先クラス９３０のオブジェクトを生成する。したがって、アドレス帳クラス９２０と登録宛先クラス９３０とは、「登録先」と「登録対象」の関係をなしている。また、１個のアドレス帳に、１個以上ｎ個以下の宛先情報が選択される場合があるので、登録宛先オブジェクト９３０Ａは、１個のアドレス帳オブジェクト９２０Ａに対し、０個以上ｎ個以下の範囲で存在する。
【０１３１】
次に、アドレス帳クラス９２０と、分類アドレス帳クラス９４０の関係について説明する。アドレス帳クラス９２０は、分類アドレス帳クラス９４０の上位クラス（スーパークラス）であり、分類アドレス帳クラス９４０は、アドレス帳クラス９２０の属性および操作を継承する。
【０１３２】
次に、分類アドレス帳クラス９４０と、カテゴリクラス９５０のクラス関係について説明する。分類アドレス帳クラス９４０は、登録する宛先情報を分類するカテゴリクラス９５０のオブジェクトを、カテゴリの数だけ生成する。したがって、分類アドレス帳クラス９４０とカテゴリクラス９５０とは、「全体」と「部分」の関係をなしている。また、１個の分類アドレス帳に、１個以上ｎ個以下のカテゴリで宛先情報を分類する場合があるので、カテゴリオブジェクト９５０Ａは、１個の分類アドレス帳クラス９４０に対して、０以上ｎ個以下の範囲で存在する。
【０１３３】
次に、登録宛先クラス９３０と、カテゴリクラス９５０のクラス関係について説明する。カテゴリクラス９５０は、当該カテゴリに分類されている登録宛先クラス９３０が保持する宛先情報を取得して、分類アドレス帳クラス９４０に受け渡す。したがって、登録宛先クラス９３０とカテゴリクラス９５０は、「登録項目」と「所属カテゴリ」の関係をなしている。また、１個のカテゴリに、１個以上ｎ個以下の宛先情報が選択される場合があるので、登録宛先オブジェクト９３０Ａは、１個の分類アドレス帳クラス９４０に対して、０以上ｎ個以下の範囲で存在する。
【０１３４】
次に、アドレス帳クラス９２０と選択シートクラス９８０の関係について説明する。選択シートクラス９８０は、アドレス帳クラス９２０が保持する宛先情報を取得し、取得した宛先情報を選択候補とする選択一覧を生成する。したがって、アドレス帳クラス９２０と選択シートクラス９８０とは、「選択リソース」と「選択一覧」の関係をなしている。
【０１３５】
また、複数の利用者がおこなった送信要求が並列して処理される場合があるので、１個のアドレス帳オブジェクト９２０Ａに対して複数個の選択シートオブジェクト９８０Ａが存在する。また、処理中の選択要求がない場合には、選択シートオブジェクト９８０Ａは存在しない。したがって、選択シートオブジェクト９８０Ａは、１個のアドレス帳オブジェクト９２０Ａに対して、０個以上ｎ個以下の範囲で存在する。
【０１３６】
次に、選択シートクラス９８０と送付宛先クラス９７０とのクラス関係について説明する。選択シートクラス９８０は、選択された宛先情報に対応する送付宛先クラス９７０のオブジェクトを生成する。したがって、選択シートクラス９８０と送付宛先クラス９７０とは、「選択者」と「選択対象」の関係をなしている。また、１個の選択一覧から、０個以上ｎ個以下の宛先情報が選択される場合があるので、送付宛先オブジェクト９７０Ａは、１個の選択シートオブジェクト９８０Ａに対し、０個以上ｎ個以下の範囲で存在する。
【０１３７】
次に、送付宛先クラス９７０と送付状クラス９６０とのクラス関係について説明する。送付状クラス９６０は、複数の送付宛先クラス９７０を宛先として保持することが可能であり、送付宛先クラス９７０が保持する送信先に対しデータ送信をおこなう。したがって、送付宛先クラス９７０と送付状クラス９６０とは、「送付先」と「送付者」の関係をなしている。また、送付状オブジェクト９６０Ａは、１個以上複数の宛先に対してデータ送信をおこなうので、送付宛先オブジェクト９７０Ａは、１個の送付状オブジェクト９６０Ａに対し、１個以上ｎ個以下の範囲で存在する。
【０１３８】
次に、選択シートクラス９８０と送付状クラス９６０との関係について説明する。選択シートクラス９８０は、宛先情報の選択処理が確定すると、選択した宛先情報へのデータ送信を担当する送付状クラス９６０のオブジェクトを生成する。また、宛先情報の選択処理が確定していない場合には、送信処理を担当する送付状オブジェクト９６０Ａは存在しない。したがって、送付状オブジェクト９６０Ａは、１個の選択シートオブジェクト９８０Ａに対し、０個以上１個以下の範囲で存在する。
【０１３９】
次に、複合選択シートクラス９８３と選択シートクラス９８０との関係について説明する。複合選択シートクラス９８３は、複数の選択シートを管理するためのものである。本実施の形態ではこの関係を親子関係にたとえ、複合選択シートクラス９８３の役割を「親」とし、選択シートクラス９８０の役割を「子」としている。なお、「子」である選択シートは、複数の「親」によって管理されることは無い。したがって、両者は、１対多の関係にある。
【０１４０】
最後に、グループ送付宛先クラス９７１と、送付宛先クラス９７０との関係について説明する。グループ送付宛先クラス９７１は、当該グループ宛先のメンバ宛先に対応する送付宛先クラス９７０を管理する。すなわち、一つのグループ送付宛先９７１には、メンバ宛先として複数の送付宛先クラス９７０が属し得る。したがって、両者は、１対多の関係にある。
【０１４１】
このように、書棚クラス９１０、ローカル書棚クラス９１１、配信サーバ書棚クラス９１２、ＬＤＡＰサーバ書棚クラス９１３、アドレス帳クラス９２０、登録宛先クラス９３０、分類アドレス帳クラス９４０、カテゴリクラス９５０、選択シートクラス９８０、既存宛先選択シートクラス９８１、追加宛先選択シート９８２、複合選択シートクラス９８３、送付状クラス９６０、送付宛先クラス９７０、及びグループ送付宛先クラス９７１の各オブジェクトは、相互に関連しあい、協調して、アドレス帳管理部１１２ａに必要な機能を実現している。
【０１４２】
次に、図９に示した各クラスの操作の実行手順について例をあげて説明する。図１０は、アドレス帳管理部が宛先情報の登録指示を受け付けた際の操作の実行手順を示すＵＭＬシーケンス図である。図１０の処理は、複合機１の操作パネル４００の初期設定キー４０１が押下されたときに液晶タッチパネル４２０に表示される初期画面設定内のアドレス帳編集画面において、利用者が、アドレス帳に登録された宛先情報の編集や、新規宛先情報の追加を指示した際に実行される。
【０１４３】
ここで、ＵＭＬシーケンス図について説明しておく。図１０の上部に並んだ矩形は、それぞれがクラスのオブジェクトを示している。各オブジェクトから下方に伸びた線は、各オブジェクトが生存していることを示す線（ライフライン）であり、上方から下方に向かって時間が流れているものとみなされる。この線上に存在する細長い矩形は、当該のオブジェクトが実際に活動している期間（活性期間）を示す。そして、各ライフラインの間を結ぶ横向きの矢印は、オブジェクトに含まれる操作の実行を示す。具体的には、この矢印は、矢印の元のオブジェクトが、矢印の先のオブジェクトに含まれる操作を呼び出すことを示す。
【０１４４】
図１０に示すように、利用者が、アドレス帳編集画面において宛先情報の編集又は、新規宛先情報の追加を指示すると、サービス利用者（操作系サブシステム１１１）は、アドレス帳オブジェクト９２０Ａの編集開始（）９２０ｅを呼び出す（ステップＳ１００１）。編集開始（）９２０ｅで呼び出されたアドレス帳オブジェクト９２０Ａは、登録宛先オブジェクト９３０Ａを生成する（ステップＳ１００２）。生成された登録宛先オブジェクト９３０Ａは、新たに追加される宛先に対応するオブジェクトでも良いし、既に不揮発記憶領域に記憶された宛先情報が設定されたオブジェクトでも良い。
【０１４５】
続いて、操作系サブシステム１１１は、登録宛先オブジェクト９３０Ａの設定する()９３０ｃを呼び出して、宛先情報を編集する（ステップＳ１００３）。
【０１４６】
続いて、利用者が編集された宛先情報を保存する旨の入力を行った場合、操作系サブシステム１１１は、アドレス帳オブジェクト９２０Ａの編集終了９２０ｆを呼び出す（ステップＳ１００４）。また、操作系サブシステム１１１は、アドレス帳オブジェクト９２０Ａに、引数で登録する旨を受け渡す。
【０１４７】
続いて、アドレス帳オブジェクト９２０Ａは、設定が行われた登録宛先オブジェクト９３０Ａの登録する（）９３０ｅを呼び出す（ステップＳ１００５）。これにより、登録宛先オブジェクト９３０Ａが保持していた宛先情報９３０ｂが、不揮発記憶領域に記憶されることになる。
【０１４８】
宛先情報９３０ｂを不揮発記憶領域に記録した後、アドレス帳オブジェクト９２０Ａは、登録宛先オブジェクト９３０Ａを削除する（ステップＳ１００６）。
【０１４９】
一方、利用者が宛先情報の編集を取り止める旨の入力を行った場合（すなわち、利用者が編集された宛先情報を保存しないで終了する旨の入力を行った場合）、ステップＳ１００３に続いてステップＳ１００７に進み、操作系サブシステム１１１は、アドレス帳オブジェクト９２０Ａの編集終了（）９２０ｆを呼び出す。この際、操作系サブシステム１１１は、アドレス帳オブジェクト９２０Ａに、引数で登録しない旨を受け渡す。これによりアドレス帳オブジェクト９２０Ａは、設定が行われた登録宛先オブジェクト９３０Ａを登録せずにそのまま削除して（ステップＳ１００８）、終了する。
【０１５０】
この図１０で示した実行手順により、宛先情報を設定した後、必要に応じて不揮発記憶領域に登録するか否か選択可能な構成としたので、設定前の状態に戻す機能の実装を容易にした。
【０１５１】
次に、本実施の形態の特徴部分であるアドレス帳管理部１１２ａが分類アドレス帳に宛先を登録する際の操作の実行手順について図１１を用いて説明する。図１１は、アドレス帳管理部が分類アドレス帳に宛先を登録する際の操作の実行手順を示すＵＭＬシーケンス図である。
【０１５２】
図１１に示すように、利用者が複合機１の操作パネル４００を操作して宛先情報を分類する新たな分類アドレス帳の生成を要求すると、まず、アドレス帳編集者（操作系サブシステム１１１）は、分類アドレス帳を管理する書棚オブジェクト９１０Ａを生成する（ステップＳ１４０１）
そして、図８の（ａ）に示すように、利用者によりカテゴリ毎に分類されたアドレス帳を登録する操作が行われた場合、操作系サブシステム１１１は、書棚オブジェクト９１０Ａの登録する()９１０ｂを呼び出す（ステップＳ１４０２）。そして、登録する()９１０ｂが呼び出された書棚オブジェクト９１０Ａは、利用者により登録する操作が行われたアドレス帳に対応する分類アドレス帳オブジェクト９４０Ａを生成する（ステップＳ１４０３）。
【０１５３】
次に、操作系サブシステム１１１は、生成された分類アドレス帳を取り出すために、書棚オブジェクト９１０Ａの取り出す（）９１０ｅを呼び出す（ステップＳ１４０４）。これにより書棚オブジェクト９１０Ａと、分類アドレス帳オブジェクト９４０Ａの関連（リンク情報）を保持することになる。
【０１５４】
そして、操作系サブシステム１１１は、取り出す（）９１０ｅにより取得したアドレス帳オブジェクト９２０Ａに対し、編集開始（）９２０ｅを呼び出す（ステップＳ１４０５）。
【０１５５】
次に、図８の（ｂ）で示したように、利用者により入力されたカテゴリを登録していく。操作系サブシステム１１１は、利用者により登録されたカテゴリ毎に、分類アドレス帳オブジェクト９４０Ａのカテゴリを登録する（）９４０ｃを呼び出す（ステップＳ１４０６）。この際、引数でカテゴリ名を受け渡す。そして、分類アドレス帳オブジェクト９４０Ａは、登録されたカテゴリに対応するカテゴリオブジェクト９５０Ａを生成する（ステップＳ１４０７）。この際、生成されたカテゴリオブジェクト９５０Ａの名前９５０ａに、受け渡されたカテゴリ名を保持させる。また、操作系サブシステム１１１は、ステップＳ１４０６〜ステップＳ１４０７迄の処理をカテゴリの数だけ繰り返す。
【０１５６】
そして、図８の（ｃ）で示すように、利用者により編集された宛先情報をカテゴリに登録していく。操作系サブシステム１１１は、利用者によりカテゴリ毎に登録された宛先情報を登録するために、分類アドレス帳オブジェクト９４０Ａの宛先を登録する（）９４０ｃを呼び出す（ステップＳ１４０８）。この際、引数で登録先のカテゴリ名と、宛先情報を受け渡す。そして分類アドレス帳オブジェクト９４０Ａは、カテゴリ名で特定されるカテゴリオブジェクト９５０Ａの登録する（）９５０ｂを呼び出す（ステップＳ１４０９）。
【０１５７】
そして、登録する（）９５０ｂが呼び出されたカテゴリオブジェクト９５０Ａは、登録宛先オブジェクト９３０Ａを生成する（ステップＳ１４１０）。この際、カテゴリオブジェクト９５０Ａは、生成した登録宛先オブジェクト９３０Ａと関連（リンク情報）を保持する。また、生成された登録宛先オブジェクト９３０Ａの宛先情報に、利用者により入力された宛先情報を設定する。また、操作系サブシステム１１１は、ステップＳ１４０８〜ステップＳ１４１０までの処理を登録された宛先の数だけ繰り返す。
【０１５８】
ステップＳ１４０６〜ステップＳ１４１０までの処理が全て終了した後、操作系サブシステム１１１は、分類アドレス帳オブジェクト９４０Ａに対して、編集終了（）９２０ｆを呼び出す（ステップＳ１４１１）。この際に、利用者により保存する旨の入力を受け付けていた場合、分類アドレス帳として不揮発記憶領域に記憶される。
【０１５９】
そして、操作系サブシステム１１１は、書棚オブジェクト９１０Ａのしまう（）９１０ｆを呼び出して、終了する（ステップＳ１４１２）。これにより、分類アドレス帳オブジェクト９４０Ａと、関連（リンク情報）を保持しているオブジェクトの消去が行われる。
【０１６０】
この図１１で示した実行手順により、宛先情報をカテゴリに分類することが可能となる。そして、利用者は上述した実行手順で作成された分類アドレス帳を閲覧することで、カテゴリに分類された宛先情報を取得することができる。
【０１６１】
次に、本実施の形態の特徴部分であるアドレス帳管理部１１２ａが分類された宛先の情報を取得する際の操作の実行手順について図１２を用いて説明する。図１２は、アドレス帳管理部が分類された宛先の情報を取得する際の操作の実行手順を示すＵＭＬシーケンス図である。
【０１６２】
図１２に示すように、利用者は、閲覧した分類アドレス帳を特定した後に、複合機１の操作パネル４００を操作して宛先情報の分類を要求すると、サービス利用者（操作系サブシステム１１１）は、利用者により特定された分類を保持する分類アドレス帳オブジェクト９４０Ａの分類する（）９４０ａを呼び出す（ステップＳ１１０１）。
【０１６３】
そして、分類アドレス帳オブジェクト９４０Ａは、宛先情報を登録するカテゴリオブジェクト９５０Ａを生成する（ステップＳ１１０２）。また、分類アドレス帳オブジェクト９４０Ａは、生成したカテゴリオブジェクト９５０Ａと関連（リンク情報）を保持する。なお、カテゴリは、図１１で示した不揮発記憶領域に記憶された分類アドレス帳が保持するカテゴリに従って生成される。
【０１６４】
次に、分類アドレス帳オブジェクト９４０Ａは、不揮発記憶領域に記憶されている宛先情報から、各カテゴリの分類設定に合致するものを抽出し、この宛先の情報を保持する登録宛先オブジェクト９３０Ａを生成する（ステップＳ１１０３）。例えば、アイウエオ順の分類アドレス帳で、ア行というカテゴリを選択する要求が利用者により行われていた場合、ア行というカテゴリに所属している登録宛先オブジェクト９３０Ａが生成されることになる。
【０１６５】
そして、分類アドレス帳オブジェクト９４０Ａは、カテゴリオブジェクト９５０Ａの登録する（）９３０ｅを呼び出す（ステップＳ１１０４）。これにより、カテゴリオブジェクト９５０Ａと、分類設定で当該カテゴリに所属する登録宛先オブジェクト９３０Ａの間に関連（リンク情報）を保持することになる。このようにして、カテゴリ毎に宛先情報が登録される。
【０１６６】
次に、利用者がカテゴリに登録された宛先情報を取得したい場合、操作系サブシステム１１１は、カテゴリオブジェクト９５０Ａの取得する（）９５０ｃを呼び出す（ステップＳ１１０５）。そして、カテゴリオブジェクト９５０Ａは、関連(リンク情報)を保持する登録宛先オブジェクト９３０Ａに対して取得する（）９３０ｄを呼び出す（ステップＳ１１０６）。
【０１６７】
この図１２で示した実行手順により、宛先情報をカテゴリに分類することが可能となる。そして、利用者はカテゴリに分類された宛先情報を取得することができる。なお、カテゴリに分類する際に用いた分類設定は、ア行、カ行などに限らず、例えば利用者により設定された所定の利用者が所属する複数のグループ等、どのような分類設定でも良い。
【０１６８】
これにより、利用者は、宛先を設定する際に、要求に応じて適切な分類がなされたアドレス帳を利用することができる。
【０１６９】
次に、文書を送付する際の操作の実行手順について説明する。図１３は、アドレス帳管理部が送付指示を受け付けた際の操作の実行手順を示すＵＭＬシーケンス図である。
【０１７０】
例えば、利用者が、操作パネル４００の送信キー４０５を押下することにより、スキャナ機能又はＦＡＸ機能等の利用を指示すると、操作系サブシステム１１１は、利用者に選択された書棚に対応する書棚オブジェクト９１０Ａの取り出す（）９１０ｅを呼び出すことにより、利用が指示された機能に適したアドレス帳に対応するアドレス帳オブジェクト９２０Ａを取得する（ステップＳ１２０１）。なお、図１３では、書棚オブジェクト９１０Ａとして抽象的に記述されているが、具体的には、選択された書棚に応じてローカル書棚オブジェクト９１１、配信サーバ書棚オブジェクト９１２、又はＬＤＡＰサーバ書棚オブジェクト９１３が操作対象となる。
【０１７１】
続いて、操作系サブシステム１１１は、取得されたアドレス帳オブジェクト９２０Ａに対し、閲覧開始（）９２０ｇを呼び出すことにより、当該アドレス帳オブジェクト９２０Ａに係るアドレス帳に登録された宛先の一覧を取得する（ステップＳ１２０２）。取得された宛先一覧は、操作系サブシステム１１１を介して操作パネル４００に表示される。なお、アドレス帳オブジェクト９４０Ａは、閲覧開始（）９２０ｇを呼び出された際、宛先選択を受け付けるための準備として、複合選択シートオブジェクト９８３Ａを生成する（ステップＳ１２０３）。生成された複合選択シートオブジェクト９８３Ａは、アドレス帳から選択される宛先を管理するために既存宛先選択シートオブジェクト９８１Ａを生成すると共に（ステップＳ１２０４）、新規に入力される宛先を管理するために追加宛先選択シートオブジェクト９８２Ａを生成する（ステップＳ１２０５）。
【０１７２】
続いて、利用者は宛先の選択又は入力を行う。操作パネル４００に表示された宛先一覧の中から宛先が選択された場合（アドレス帳から宛先が選択された場合）、操作系サブシステム１１１は、選択された宛先の識別子を引数として、複合選択シートオブジェクト９８３Ａの選択する（）９８３ｃを呼び出す（ステップＳ１２０６）。続いて、複合選択シートオブジェクト９３８Ａは、引数に当該識別子を指定して、既存宛先選択シートオブジェクト９８１Ａの選択する（）９８１ｃを呼び出す（ステップＳ１２０７）。既存宛先選択シートオブジェクト９８１Ａは、当該識別子に基づいて宛先情報を取得する。既存宛先選択シートオブジェクト９８１Ａは、更に、送付宛先オブジェクト９７０Ａを生成し、取得された宛先情報を当該送付宛先オブジェクト９７０Ａに設定する（ステップＳ１２０８）。
【０１７３】
また、アドレス帳に登録されていない宛先情報が新規に入力されて選択された場合、操作系サブシステム１１１は、入力された宛先情報を引数として、複合選択シートオブジェクト９８３Ａの選択する（）９８３ｃを呼び出す（ステップＳ１２０９）。続いて、複合選択シートオブジェクト９３８Ａは、引数に当該宛先情報を指定して、追加宛先選択シートオブジェクト９８２Ａの選択する（）９８２ｃを呼び出す（ステップＳ１２１０）。追加宛先選択シートオブジェクト９８２Ａは、送付宛先オブジェクト９７０Ａを生成し、入力された宛先情報を当該送付宛先オブジェクト９７０Ａに設定する（ステップＳ１２１１）。
【０１７４】
また、操作パネル４００に表示された宛先一覧の中からグループ宛先が選択された場合、操作系サブシステム１１１は、選択されたグループ宛先の識別子を引数として、複合選択シートオブジェクト９８３Ａの選択する（）９８３ｃを呼び出す（ステップＳ１２１２）。続いて、複合選択シートオブジェクト９３８Ａは、引数に当該識別子を指定して、既存宛先選択シートオブジェクト９８１Ａの選択する（）９８１ｃを呼び出す（ステップＳ１２１３）。既存宛先選択シートオブジェクト９８１Ａは、当該識別子に基づいてクループ宛先を構成する各宛先の宛先情報を取得する。既存宛先選択シートオブジェクト９８１Ａは、更に、グループ送付宛先オブジェクト９７１を生成し、取得された宛先情報群を当該グループ送付宛先オブジェクト９７１に設定する（ステップＳ１２１４）。グループ送付宛先オブジェクト９７１は、設定された宛先情報ごとに送付宛先オブジェクト９７０Ａを生成し、それぞれの宛先情報を送付宛先オブジェクト９７０Ａに設定する（ステップＳ１２１５）。
【０１７５】
なお、利用者が宛先の選択の解除を指示した場合、操作系サブシステム１１１は、複合選択シートオブジェクト９８３Ａの選択解除する（）９８３ｄを呼び出す(ステップＳ１２１６)。選択解除する（）９８３ｄを呼び出された複合選択シートオブジェクト９８３Ａは、既存宛先選択シートオブジェクト９８１Ａの選択解除する（）９８１ｄを呼び出す（ステップＳ１２１７）。既存宛先選択シートオブジェクト９８１Ａは、選択が解除された宛先に対応する宛先情報の保持を担当する送付宛先オブジェクト９７０Ａを削除する（ステップＳ１２１８）。
【０１７６】
宛先の選択が終了し、例えば、利用者がスタートキー４０８を押下すると、文書の送信が始まる。このとき、操作系サブシステム１１１は、複合選択シートオブジェクト９８３Ａの確定する（）９８３ｅを呼び出す(ステップＳ１２１９)。確定する（）９８３ｅを呼び出された複合選択シートオブジェクト９８３Ａは、送付状オブジェクト９６０Ａを生成し、選択された宛先を引数として当該送付状オブジェクト９６０Ａの作成する（）９６０ｂを呼び出す（ステップＳ１２２１）。作成する（）９６０ｂを呼び出された送付状オブジェクト９６０Ａは、選択された宛先に対する送信処理の実行を実行系サブシステム１１３に依頼する。当該依頼に基づいて、実行系サブシステム１１３は、選択された宛先に対して文書を送信する。
【０１７７】
送信処理が終了すると、宛先情報の選択は行われないので、操作系サブシステム１１１は、アドレス帳オブジェクト９２０Ａの閲覧終了（）９２０ｈを呼び出す（ステップＳ１２２２）。さらに、操作系サブシステム１１１は、閲覧終了（）９２０ｈが呼び出されたアドレス帳オブジェクト９２０Ａを片付けるため、書棚オブジェクト９１０Ａのしまう（）９１０ｆを呼び出す（ステップＳ１２２３）。
【０１７８】
続いて、操作系サブシステム１１１は、送付状オブジェクト９６０Ａの送付終了（）９６０ｃを呼び出す（ステップＳ１２２４）。送付状オブジェクト９６０Ａは、送付先の宛先情報を保持していた複合選択シートオブジェクト９８３Ａの破棄する（）９８３ｇを呼び出す（ステップＳ１２２５）。複合選択シートオブジェクト９８３Ａは、自らが生成した送付宛先オブジェクト９７０Ａを削除し（ステップＳ１２２６）、アドレス帳オブジェクト９２０Ａの破棄通知（）９２０ｉを呼び出す（ステップＳ１２２７）。
【０１７９】
続いて、アドレス帳オブジェクト９２０Ａが、不要となった複合選択シートオブジェクト９８３Ａの削除を指示すると（ステップＳ１２２８）、複合選択シートオブジェクト９８３Ａは、送付状オブジェクト９６０Ａ、既存宛先選択シートオブジェクト９８１Ａ、及び追加宛先選択シートオブジェクト９８２Ａ等を削除すると共に、自らをも削除する（Ｓ１２２９、Ｓ１２３０、Ｓ１２３１）。
【０１８０】
この図１３で示した実行手順により、アドレス帳オブジェクト９２０Ａを用いることとしたので、改修が容易なアドレス帳管理の仕組みを提供することができる。
【０１８１】
次に、アドレス帳を差し替える際の操作の実行手順について説明する。図１４は、アドレス帳管理部がアドレス帳を差し替える際の操作の実行手順を示すＵＭＬシーケンス図である。図１４の処理は、例えば、外部サーバや外部記憶装置から取得されたアドレス情報に基づいて、既存のアドレス帳を一括更新する（差し替える）場合に実行される。なお、図１４では、書棚オブジェクト９１０Ａとして抽象的に記述されているが、具体的には、選択された書棚に応じてローカル書棚オブジェクト９１１、配信サーバ書棚オブジェクト９１２、又はＬＤＡＰサーバ書棚オブジェクト９１３が操作対象となる。
【０１８２】
例えば、システム管理者である利用者が、操作パネル４００を介してアドレス帳の一括更新を指示すると、操作系サブシステム１１は、更新用の宛先情報を引数として書棚オブジェクト９１０Ａの差し替える（）９１０ｃを呼び出す（ステップＳ１３０１）。書棚オブジェクト９１０Ａは、関連を持つアドレス帳オブジェクト９２０Ａの改訂する（）９２０ｄを呼び出す（ステップＳ１３０２）。
【０１８３】
この時、宛先を選択中のユーザが存在する場合があるが、アドレス帳に登録された宛先と選択された宛先との不整合を防ぐため、アドレス帳の更新と共にそれまでの宛先の選択を無効にする必要がある。そこで、アドレス帳オブジェクト９２０Ａは、自らと関連を持つ選択シートオブジェクト９８０Ａの破棄する（）９８０ｇを呼び出し（ステップＳ１３０３）、更に、選択シートオブジェクト９８０Ａを削除する（ステップＳ１３０５）。なお、図１４では、選択シートオブジェクト９８０Ａとして抽象的に記述されているが、具体的には、複合選択シートオブジェクト９８３Ａ、既存宛先選択シートオブジェクト９８１Ａ、及び追加宛先選択シートオブジェクト９８２Ａが操作対象となる。
【０１８４】
なお、破棄する（）９８０ｇを呼び出された選択シートオブジェクト９８０Ａは、自らに関連付けられている送付宛先オブジェクト９７１Ａを削除する（ステップＳ１３０４）。
【０１８５】
続いて、書棚オブジェクト９１０Ａは、更新用の宛先情報に基づいて差し替え後の新たなアドレス帳に対応するアドレス帳オブジェクト９２０Ａの作成する（）９２０ｃを呼び出すことにより、新たなアドレス帳を生成する（ステップＳ１３０６）。続いて、書棚オブジェクト９１０Ａは、差し替え前の古いアドレス帳に対応するアドレス帳オブジェクト９２０Ａを削除し（ステップＳ１３０７）、自らの差し替え終了（）９１０ｄを呼び出すことでアドレス帳の一括更新を完了させる（ステップＳ１３０８）。なお、アドレス帳間の一貫性を保つため、アドレス帳の差し替えは、書棚オブジェクト９１０Ａに関連付けられている全アドレス帳オブジェクト９２０Ａに対して順次実行される。
【０１８６】
上述してきたように、本実施の形態では、利用者による宛先情報の選択を管理する選択管理を分離してアドレス帳と、アドレス帳を継承して分類毎の宛先情報を管理する分類アドレス帳の仕組みを構築し、さらに、宛先管理を担当するアドレス帳クラス、カテゴリ毎の宛先管理を担当する分類アドレス帳クラス、宛先情報を分類するカテゴリクラス、不揮発記憶領域に記憶された宛先を示す登録宛先クラス、選択管理を担当する選択シートクラス、アドレス帳クラスを束ねる書棚クラス、送付する宛先に対応する送付宛先クラス、選択された宛先への送信を管理する送付状クラスを用いることによりアドレス帳管理部を実現したので、利用者に登録されたカテゴリに従って分類されたアドレスを効率よく管理することができる。
【０１８７】
したがって、ソフトウェア開発者やソフトウェア保守要員が、機能追加や改修を容易におこなうことができるとともに、アドレス帳の管理処理を効率よく実現することができる。
【０１８８】
また、アドレス帳の所在によって変わる処理を、書棚クラス９１０のサブクラス（ローカル書棚クラス９１１、配信サーバ書棚クラス９１２、及びＬＤＡＰサーバ書棚クラス９１３）に局所化し、システムの中にどのサブクラスを取り込むかを選択できるようにすることで、必要なアドレス帳に対応するシステムを容易に構築できるようになる。
【０１８９】
また、複数の選択シートを管理できる複合選択シートクラス９８３を導入したことで、複数の選択条件の組み合わせが、単一の選択条件に対応する選択シートの組み合わせで表すことが出来るようになり、実装が容易になる。
【０１９０】
更に、送付宛先クラスの９７０サブクラスとしてグループ送付宛先クラス０８１を導入することで、通常の宛先及びグループ宛先に対する処理を基本的に共通化しつつ、グループ宛先特有の差分機能を実現することが容易になる。
【０１９１】
なお、本実施の形態の画像形成装置で実行されるアドレス帳管理プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（CD Recordable）、ＤＶＤ（Digital Versatile Disk）などのコンピュータで読み取り可能な記録媒体に記録して提供するよう構成してもよい。この場合、ＣＰＵ１１が上記記憶媒体から、アドレス帳管理プログラムを読み出してＭＥＭ−Ｐ１２上にロードすることで、画像形成装置に、上述した各ステップ、各手段または各部を実現させる。
【０１９２】
また、アドレス帳管理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかるアドレス帳管理プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【０１９３】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１９４】
【図１】複合機を取り巻くネットワーク環境を説明するためのネットワーク図である。
【図２】複合機のハードウェアを説明するための説明図である。
【図３】複合機におけるハードウェアおよびソフトウェアの階層構造を説明するための説明図である。
【図４】複合機の操作パネルを説明するための説明図である。
【図５】統合アプリケーションの構成を説明するための説明図である。
【図６】統合アプリケーションの構成を表したＵＭＬクラス図である。
【図７】カテゴリにより分類されたアドレス帳を用いた場合に表示されるアドレス選択の画面例を示した図である。
【図８】アドレス帳を登録してから、カテゴリ毎に宛先を登録する際の画面フローを示した図である。
【図９】アドレス帳管理部のクラス構成を示すＵＭＬクラス図である。
【図１０】アドレス帳管理部が宛先情報の登録指示を受け付けた際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１１】アドレス帳管理部が分類アドレス帳に宛先を登録する際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１２】アドレス帳管理部が分類された宛先の情報を取得する際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１３】アドレス帳管理部が送付指示を受け付けた際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１４】アドレス帳管理部がアドレス帳を差し替える際の操作の実行手順を示すＵＭＬシーケンス図である。
【図１５】複合機に搭載されるソフトウェア構成の変遷を示す説明図である。
【図１６】従来の複合機におけるハードウェアおよびソフトウェアの階層構造を説明するための説明図である。
【符号の説明】
【０１９５】
１  画像形成装置（複合機）
１０  コントローラ
１１  ＣＰＵ
１２  ＭＥＭ−Ｐ
１２ａ  ＲＯＭ
１２ｂ  ＲＡＭ
１３  ＮＢ
１４  ＳＢ
１５  ＡＧＰ
１６  ＡＳＩＣ
１７  ＭＥＭ−Ｃ
１８  ＨＤＤ
２０  キーボード（オペレーションパネル）
３０  ＦＣＵ
４０  ＵＳＢ
５０  ＩＥＥＥ１３９４
６０  エンジン部（Engine）
１００  ソフトウェア
１０１  アプリケーション層
１０１Ａ  アプリケーション層
１０２  サービス層
１０２ａ  スキャナ制御部
１０２ｂ  プロッタ制御部
１０２ｃ  蓄積制御部
１０２ｄ  配信／メール送受信制御部
１０２ｅ  ＦＡＸ送受信制御部
１０２ｆ  ネットワーク通信制御部
１０２ｇ  その他の制御部
１０３  オペレーティングシステム
１１０  統合アプリケーション
１１１  操作系サブシステム
１１２  管理系サブシステム
１１２ａ  アドレス帳管理部
１１３  実行系サブシステム
１２１  コピーアプリケーション
１２２  スキャナアプリケーション
１２３  ファックスアプリケーション
１２４  プリンタアプリケーション
１５０  ハードウェア
１５０ａ  スキャナ
１５０ｂ  プロッタ
１５０ｃ  ＨＤＤ
１５０ｄ  ネットワーク
１５０ｅ  その他のリソース
４００  操作パネル
４０１  初期設定キー
４０２  コピーキー
４０３  コピーサーバキー
４０４  プリンタキー
４０５  送信キー
４０６  テンキー
４０７  クリア／ストップキー
４０８  スタートキー
４０９  予熱キー
４１０  リセットキー
４２０  液晶タッチパネル
８０１  読込ボタン
８０２  登録ボタン
９１０  書棚クラス（書棚手段の一例）
９１０Ａ  書棚オブジェクト（書棚手段の一例）
９１０ａ  状態
９１０ｂ  登録する（）
９１０ｃ  差し替える（）
９１０ｄ  差し替え終了（）
９１０ｅ  取り出す（）
９１０ｆ  しまう（）
９１１  ローカル書棚クラス
９１１Ａ  ローカル書棚オブジェクト
９１１ｂ  登録する（）
９１１ｃ  差し替える（）
９１２  配信サーバ書棚クラス
９１２Ａ  配信サーバ書棚オブジェクト
９１２ｂ  登録する（）
９１２ｃ  差し替える（）
９１３  ＬＤＡＰサーバ書棚クラス
９１３Ａ  ＬＤＡＰサーバ書棚オブジェクト
９１３ｂ  登録する（）
９１３ｃ  差し替える（）
９２０  アドレス帳クラス（アドレス管理手段の一例）
９２０Ａ  アドレス帳オブジェクト（アドレス管理手段の一例）
９２０ａ  可能操作
９２０ｂ  状態
９２０ｃ  作成する（）
９２０ｄ  改訂する（）
９２０ｅ  編集開始（）
９２０ｆ  編集終了（）
９２０ｇ  閲覧開始（）
９２０ｈ  閲覧終了（）
９２０ｉ  破棄通知（）
９３０  登録宛先クラス
９３０Ａ  登録宛先オブジェクト
９３０ａ  識別子
９３０ｂ  宛先情報
９３０ｃ  設定する（）
９３０ｄ  取得する（）
９３０ｅ  登録する（）
９４０  分類アドレス帳クラス（分類アドレス管理手段の一例）
９４０Ａ  分類アドレス帳オブジェクト（分類アドレス管理手段の一例）
９４０ａ  分類する（）
９４０ｂ  宛先を取得する（）
９４０ｃ  カテゴリを登録する（）
９４０ｄ  宛先を登録する（）
９５０  カテゴリ
９５０ａ  名前
９５０ｂ  登録する（）
９５０ｃ  取得する（）
９６０  送付状クラス
９６０Ａ  送付状オブジェクト
９６０ａ  状態
９６０ｂ  作成する（）
９６０ｃ  送付終了（）
９７０  送信宛先クラス
９７０Ａ  送信宛先オブジェクト（宛先手段の一例）
９７０ａ  識別子
９７０ｂ  送信情報
９７０ｃ  設定する（）
９７０ｄ  取得する（）
９７１  グループ送付宛先クラス
９７１Ａ  グループ送付宛先オブジェクト
９７１ｃ  設定する（）
９７１ｄ  取得する（）
９８０  選択シートクラス（選択シート手段の一例）
９８０Ａ  選択シートオブジェクト（選択シート手段の一例）
９８０ａ  最大宛先数
９８０ｂ  状態
９８０ｃ  選択する（）
９８０ｄ  選択解除する（）
９８０ｅ  確定する（）
９８０ｆ  取り消す（）
９８０ｇ  破棄する（）
９８１  既存宛先選択シートクラス
９８１Ａ  既存宛先選択シートオブジェクト
９８１ｃ  選択する（）
９８２  追加宛先選択シートクラス
９８２Ａ  追加宛先選択シートオブジェクト
９８２ｃ  選択する（）
９８３  複合宛先選択シートクラス
９８３Ａ  複合宛先選択シートオブジェクト
９８３ｃ  選択する（）
９８３ｄ  選択解除する（）
９８３ｅ  確定する（）
９８３ｆ  取り消す（）
９８３ｇ  破棄する（）
２００１  サービス層分離前アプリケーション
２００２  サービス層分離後アプリケーション
２００３  共通ルーチン分離アプリケーション
２００４  オブジェクト指向アプリケーション
【図１】
0004764747.tif 000002
【図２】
0004764747.tif 000003
【図３】
0004764747.tif 000004
【図４】
0004764747.tif 000005
【図５】
0004764747.tif 000006
【図６】
0004764747.tif 000007
【図７】
0004764747.tif 000008
【図８】
0004764747.tif 000009
【図９】
0004764747.tif 000010
【図１０】
0004764747.tif 000011
【図１１】
0004764747.tif 000012
【図１２】
0004764747.tif 000013
【図１３】
0004764747.tif 000014
【図１４】
0004764747.tif 000015
【図１５】
0004764747.tif 000016
【図１６】
0004764747.tif 000017