(57)【要約】      （修正有）【課題】セキュリティ上の問題が生じないようにオブジェクトの受け渡しを行うためのアプリケーション連携方法を提供する。【解決手段】アプリケーションが提供する機能と前記機能によるオブジェクトに対する操作内容を分類した操作カテゴリとの対応関係を保持する保持工程と、第１のアプリケーションが管理するオブジェクトと当該オブジェクトに対するユーザの操作権限を取得する取得工程と、取得されたオブジェクトと操作権限とをオブジェクト情報として記憶手段に記憶し管理するオブジェクト情報管理工程と、第２のアプリケーションが提供する機能に対応して保持工程で保持されている操作カテゴリが当該オブジェクト情報として管理されたオブジェクトに対する操作権限により許可されているか否かを判定する判定工程とを有し、連携手段は判定工程の結果が許可されている場合にオブジェクト情報として管理されたオブジェクトを第２のアプリケーションに渡す。【選択図】図１２
2011076550.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段と、それぞれ異なるアクセス権の管理がなされた複数のアプリケーション間にてオブジェクトの受け渡しを行うことで連携する連携手段とを備えるシステムにおけるアプリケーション連携方法であって、
アプリケーションが提供する機能と、前記アプリケーションが提供する機能による前記オブジェクトに対する操作内容を分類した操作カテゴリとの対応関係を保持する保持工程と、
第１のアプリケーションが管理するオブジェクトを取得するとともに、前記第１のアプリケーションが管理する当該オブジェクトに対するユーザの操作権限を取得する取得工程と、
前記取得工程で取得されたオブジェクトと、当該オブジェクトに対する操作権限とをオブジェクト情報として前記記憶手段に記憶し管理するオブジェクト情報管理工程と、
前記オブジェクト情報管理工程でオブジェクト情報として管理されたオブジェクトを処理する第２のアプリケーションが提供する機能に対応して、前記保持工程で保持されている操作カテゴリが当該オブジェクト情報として管理されたオブジェクトに対する操作権限により許可されているか否かを判定する判定工程と
を有し、
前記操作カテゴリは、前記複数のアプリケーション間で共通して用いられるように定義されており、
前記連携手段は、
前記判定工程の結果に応じて、許可されていない操作カテゴリに対応する前記第２のアプリケーションの提供する機能の実行に関しては、前記オブジェクト情報管理工程でオブジェクト情報として管理されたオブジェクトを前記第２のアプリケーションに渡さず、
前記判定工程の結果に応じて、許可されている操作カテゴリに対応する前記第２のアプリケーションの提供する機能の実行に関しては、前記連携手段により前記オブジェクト情報管理工程でオブジェクト情報として管理されたオブジェクトを前記第２のアプリケーションに渡す
ことを特徴とするアプリケーション連携方法。
【請求項２】
前記取得工程では、前記第１のアプリケーションが管理しているオブジェクトに対するユーザの権限を、前記操作カテゴリにより定義した操作権限を取得することを特徴とする請求項１に記載のアプリケーション連携方法。
【請求項３】
前記第２のアプリケーションの提供する機能の実行を指示するための画面をユーザに対して提供する提供工程を更に有し、
前記提供工程では、前記判定工程の結果に応じて、許可されていない操作カテゴリに対応する前記第２のアプリケーションが提供する機能をユーザが指示することを制限する画面を提供することを特徴とする請求項１または２に記載のアプリケーション連携方法。
【請求項４】
前記判定工程の結果に応じて、許可されていない操作カテゴリに対応する前記第２のアプリケーションが提供する機能の実行をユーザにより指示された際には、当該指示された機能が許可されていないことを通知する通知工程を更に有することを特徴とする請求項１乃至３の何れか一項に記載のアプリケーション連携方法。
【請求項５】
前記オブジェクトは、前記第１のアプリケーションが管理する文書に対応するバイナリデータ、または文書自体であるデータが記憶された装置のローカルのファイルパスを含む当該文書にリンクできる情報の何れかであることを特徴とする請求項１乃至４の何れか一項に記載のアプリケーション連携方法。
【請求項６】
前記操作カテゴリは、オブジェクトの作成、読み込み、更新、削除、印刷、コピー、及び移動のうち少なくとも何れか２以上の操作が定義されていることを特徴とする請求項１乃至５の何れか一項に記載のアプリケーション連携方法。
【請求項７】
前記システムには、前記複数のアプリケーションによる機能をそれぞれ提供する複数の装置が含まれることを特徴とする請求項１乃至６の何れか一項に記載のアプリケーション連携方法。
【請求項８】
それぞれ異なるアクセス権の管理がなされた複数のアプリケーション間にてオブジェクトの受け渡しを行うことで連携する連携手段を備えるシステムであって、
アプリケーションが提供する機能と、前記アプリケーションが提供する機能による前記オブジェクトに対する操作内容を分類した操作カテゴリとの対応関係を保持する保持手段と、
第１のアプリケーションが管理するオブジェクトを取得するとともに、前記第１のアプリケーションが管理する当該オブジェクトに対するユーザの操作権限を取得する取得手段と、
前記取得手段により取得されたオブジェクトと、当該オブジェクトに対する操作権限とをオブジェクト情報として管理するオブジェクト情報管理手段と、
前記オブジェクト情報管理手段によりオブジェクト情報として管理されたオブジェクトを処理する第２のアプリケーションが提供する機能に対応して、前記保持手段により保持された操作カテゴリが当該オブジェクト情報として管理されたオブジェクトに対する操作権限により許可されているか否かを判定する判定手段と
を有し、
前記連携手段は、
前記判定手段による判定の結果に応じて、許可されていない操作カテゴリに対応する前記第２のアプリケーションが提供する機能の実行に関しては、前記オブジェクト情報管理手段によりオブジェクト情報として管理されたオブジェクトを前記第２のアプリケーションに渡さず、
前記判定手段による判定の結果に応じて、許可されている操作カテゴリに対応する前記第２のアプリケーションが提供する機能の実行に関しては、前記連携手段により前記オブジェクト情報管理手段によりオブジェクト情報として管理されたオブジェクトを前記第２のアプリケーションに渡すよう処理し、
前記操作カテゴリは、前記複数のアプリケーション間で共通して用いられるように定義されていることを特徴とするシステム。
【請求項９】
前記取得手段は、前記第１のアプリケーションが管理しているオブジェクトに対するユーザの権限を、前記操作カテゴリにより定義した操作権限を取得することを特徴とする請求項８に記載のシステム。
【請求項１０】
前記第２のアプリケーションの提供する機能の実行を指示するための画面をユーザに対して提供する提供手段を更に有し、
前記提供手段は、前記判定手段の判定の結果に応じて、許可されていない操作カテゴリに対応する前記第２のアプリケーションが提供する機能をユーザが指示することを制限する画面を提供することを特徴とする請求項８または９に記載のシステム。
【請求項１１】
前記判定手段の結果に応じて、許可されていない操作カテゴリに対応する前記第２のアプリケーションが提供する機能の実行をユーザにより指示された際には、当該指示された機能が許可されていないことを通知する通知手段を更に有することを特徴とする請求項８乃至１０の何れか一項に記載のシステム。
【請求項１２】
前記システムとして、前記複数のアプリケーションによる機能をそれぞれ提供する複数の装置を含むことを特徴とする請求項８乃至１１の何れか一項に記載のシステム。
【請求項１３】
コンピュータに請求項１乃至６の何れか一項に記載のアプリケーション連携方法に含まれる工程を実行させるためのプログラム。
【請求項１４】
それぞれ異なるアクセス権の管理がなされた複数のアプリケーション間にてオブジェクトの受け渡しを行うことで連携する連携手段を備える情報処理装置であって、
アプリケーションが提供する機能と、前記アプリケーションが提供する機能による前記オブジェクトに対する操作内容を分類した操作カテゴリとの対応関係を保持する保持手段と、
第１のアプリケーションが管理するオブジェクトを取得するとともに、前記第１のアプリケーションが管理する当該オブジェクトに対するユーザの操作権限を取得する取得手段と、
前記取得手段により取得されたオブジェクトと、当該オブジェクトに対する操作権限とをオブジェクト情報として管理するオブジェクト情報管理手段と、
前記オブジェクト情報管理手段によりオブジェクト情報として管理されたオブジェクトを処理する第２のアプリケーションが提供する機能に対応して、前記保持手段により保持された操作カテゴリが当該オブジェクト情報として管理されたオブジェクトに対する操作権限により許可されているか否かを判定する判定手段と、
を有し、
前記連携手段は、
前記判定手段による判定の結果に応じて、許可されていない操作カテゴリに対応する前記第２のアプリケーションが提供する機能の実行に関しては、前記オブジェクト情報管理手段によりオブジェクト情報として管理されたオブジェクトを前記第２のアプリケーションに渡さず、
前記判定手段による判定の結果に応じて、許可されている操作カテゴリに対応する前記第２のアプリケーションが提供する機能の実行に関しては、前記連携手段により前記オブジェクト情報管理手段によりオブジェクト情報として管理されたオブジェクトを前記第２のアプリケーションに渡し、
前記操作カテゴリは、前記複数のアプリケーション間で共通して用いられるように定義されていることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションを連携させるためのアプリケーション連携方法、及びシステムに関する。特に各アプリケーションが異なる認証方式を有し、別個にアクセス権で管理されている環境下において、複数のアプリケーション間で、セキュリティ上の問題が生じないようにオブジェクトの受け渡しを行うための技術に関する。
【背景技術】
【０００２】
昨今、企業における業務効率向上を目的として、各部門、または全社において個別にアプリケーション、システム、及びサービス（以下、総称してアプリケーションとする）が導入されてきた。具体的には、ＥＲＰ（Ｅｎｔｅｒｐｒｉｓｅ  Ｒｅｓｏｕｒｃｅ  Ｐｌａｎｎｉｎｇ）、ＳＣＭ（Ｓｕｐｐｌｙ  Ｃｈａｉｎ  Ｍａｎａｇｅｍｅｎｔ）などが挙げられる。
【０００３】
近年では、企業の変化対応力の向上と、競争優位性の獲得を目指した俊敏性を追及するためのアーキテクチャ、またはコンセプトとして、ＳＯＡ（Ｓｅｒｖｉｃｅ  Ｏｒｉｅｎｔｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）が注目されている。ＳＯＡは、個別に動作していた企業内における既存のアプリケーションの機能をサービス単位で分割し、それらを組み合せてトータルシステムを構成するアーキテクチャを提唱するものである。さらに、各アプリケーションが、異なる認証方式を有し、別個のアクセス権で管理されている環境下において、ユーザが各アプリケーションを利用するたびに認証を要求されるといった課題を解決するための仕組みとして、ＳＳＯ（Ｓｉｎｇｌｅ  Ｓｉｇｎ−Ｏｎ）やフェデレーションと言った手法が提案されている。
【０００４】
ここで、複数のアプリケーション間でオブジェクトの受け渡しを行う場合、セキュリティ上の問題が生じないような対策が必要となる。例えば、文書単位でユーザのアクセス権を管理可能な文書管理アプリケーションと他のアプリケーションとを、セキュリティを考慮することなく連携させた場合、情報漏洩の問題が発生し得る可能性がある。例えば、ある文書に対し、あるユーザが読取権限はあるが印刷権限が無い場合、文書を文書管理アプリケーションから取り出し、文書管理アプリケーションとはアクセス権管理が異なる印刷管理アプリケーションを介することで印刷できてしまう。
【０００５】
上記問題を解決するための従来技術として、複数のアプリケーションにおけるセキュリティの制御機能を一元的に設定、管理するポリシーサーバを利用する方法が挙げられる。より具体的には、まず、ユーザの文書に対するアクセス権をポリシーとして事前に設定しておく。次に、ユーザが文書にアクセスしようとした際に、各アプリケーションがポリシーサーバにアクセスして、ユーザの文書に対するポリシーを取得することで、文書に対する操作を制御することが可能となる。
【０００６】
また、異なるドメイン間で文書（紙文書）がやり取りされる場合においても、各ドメイン内の文書の作成又は複写に関するセキュリティにおける、一貫性のある維持管理が行える文書セキュリティ維持管理方法が提案されている（特許文献１参照）。特許文献１においては、紙文書に識別子を埋め込んでおくことで文書を特定して、セキュリティドメインを跨った環境下での一元的なセキュリティ管理を行うことを実現している。
【０００７】
さらに、アプリケーションを文書管理システムと統一された形で他の文書と同様に操作可能とし、簡易な構成で様々なアプリケーションと容易に且つ有効に連携可能とした文書管理システムが提案されている（特許文献２参照）。特許文献２においては、文書管理システムにおいて、アプリケーション情報ファイルに基づいてアプリケーションが必要とするデータを作成し、データを伝達してアプリケーションを起動して応答させることで、実行者の権限を用いてセキュリティ管理を実現している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−１９６３３８号公報
【特許文献２】特開２００６−０４８４２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ポリシーサーバを利用した従来技術においては、各アプリケーションが、ポリシーサーバにアクセスし、ユーザの文書に対するアクセス権に基づいて操作を許可するか否かを判定する。更に、ユーザが文書に対する操作を行うタイミングで、ポリシーサーバにポリシーを問い合わせることになる。よって、ポリシーサーバやネットワークに不具合があった場合、ユーザは文書に対する操作が許されている環境下においても、何度も同じ操作を繰り返すことになる。
【００１０】
また、特許文献１においては対象を電子データとしてはいないが、ドメインを跨いでセキュリティサーバに直接問合せ、操作許可を取得し、判定するための処理ロジックを各情報機器が個々に実装する必要がある。また、特許文献２においては、起動されたアプリケーションが、実行者の権限を文書管理サーバから渡されるパラメータの値を使用して判定することになり、起動されるアプリケーション全てにおいて判定ロジックを実装する必要がある。
【００１１】
従って、本発明は複数のアプリケーションでオブジェクトを連携処理する際にも、他アプリケーションのから受け取ったオブジェクトに対する操作を許可するか否かを判定する処理ロジックを各アプリケーションにおいて個別に実装する必要のない手法と提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明は以下の構成を有する。記憶手段と、それぞれ異なるアクセス権の管理がなされた複数のアプリケーション間にてオブジェクトの受け渡しを行うことで連携する連携手段とを備えるシステムにおけるアプリケーション連携方法であって、アプリケーションが提供する機能と、前記アプリケーションが提供する機能による前記オブジェクトに対する操作内容を分類した操作カテゴリとの対応関係を保持する保持工程と、第１のアプリケーションが管理するオブジェクトを取得するとともに、前記第１のアプリケーションが管理する当該オブジェクトに対するユーザの操作権限を取得する取得工程と、前記取得工程で取得されたオブジェクトと、当該オブジェクトに対する操作権限とをオブジェクト情報として前記記憶手段に記憶し管理するオブジェクト情報管理工程と、前記オブジェクト情報管理工程でオブジェクト情報として管理されたオブジェクトを処理する第２のアプリケーションが提供する機能に対応して、前記保持工程で保持されている操作カテゴリが当該オブジェクト情報として管理されたオブジェクトに対する操作権限により許可されているか否かを判定する判定工程とを有し、前記操作カテゴリは、前記複数のアプリケーション間で共通して用いられるように定義されており、前記連携手段は、前記判定工程の結果に応じて、許可されていない操作カテゴリに対応する前記第２のアプリケーションの提供する機能の実行に関しては、前記オブジェクト情報管理工程でオブジェクト情報として管理されたオブジェクトを前記第２のアプリケーションに渡さず、前記判定工程の結果に応じて、許可されている操作カテゴリに対応する前記第２のアプリケーションの提供する機能の実行に関しては、前記連携手段により前記オブジェクト情報管理工程でオブジェクト情報として管理されたオブジェクトを前記第２のアプリケーションに渡す。
【発明の効果】
【００１３】
本発明により、複数のアプリケーションでオブジェクトを連携処理する際にも、他アプリケーションのから受け取ったオブジェクトに対する操作を許可するか否かを判定する処理ロジックを各アプリケーションにおいて個別に実装する必要のない手法と提供できる。とくに本発明においては、各アプリケーションの操作権限を柔軟に考慮しつつ、複数のアプリケーション間の相互依存性を排除でき得る。
【００１４】
また、アプリケーションが提供するインタフェース（機能）を呼び出す前に、オブジェクトに対する処理を実行して良いか否かを判定するため、分散環境での不要なネットワーク通信などを回避することができる。更に、全アプリケーションに対して統一的なアクセス権管理を提供するようなポリシーサーバ等の外部システムを利用しないため、ポリシーサーバやネットワークの不具合があった場合、ユーザが何度も同じ操作を繰り返すような煩わしい作業も発生しない。
【図面の簡単な説明】
【００１５】
【図１】第一の実施形態に係るアプリケーション連携システムのシステム概念図。
【図２】第一の実施形態に係る情報処理装置のハードウェア構成図。
【図３】第一の実施形態に係るアプリケーション連携システムのソフトウェア構成図。
【図４】本発明に係るアプリケーション連携システムのユーザインタフェースの例図。
【図５】第一の実施形態に係るＵＩ表示処理のフローチャートの図。
【図６】第一の実施形態に係るログイン処理のフローチャートの図。
【図７】第一の実施形態に係る文書検索処理のフローチャートの図。
【図８】第一の実施形態に係る文書取得処理のフローチャートの図。
【図９】第一の実施形態に係るユーザ操作権限取得処理のフローチャートの図。
【図１０】第一の実施形態に係る定義ファイルの例図。
【図１１】第一の実施形態に係るＵＩ表示処理のフローチャートの図。
【図１２】第一の実施形態に係る比較処理のフローチャートの図。
【図１３】第二の実施形態に係る印刷処理のフローチャートの図。
【図１４】第二の実施形態に係る入稿処理のフローチャートの図。
【図１５】第二の実施形態に係る印刷管理アプリ入稿処理のフローチャートの図。
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１７】
＜第一の実施形態＞
本発明の第一の実施形態を図１乃至図１２に基づき説明する。
【００１８】
［システム構成］
図１（ａ）は、本発明の実施形態に係るアプリケーション連携システムのシステム概念図である。本実施形態に係るアプリケーション連携モジュール４０には、ユーザＡがブラウザを介してアクセスするＣｌｉｅｎｔ  ＰＣ１０と、コピー、プリント、スキャナ、ファックス等の機能を有する周辺機器３０、３１、３２と、アプリケーション連携モジュール４０が配置されたアプリケーションサーバＰＣ２０とがネットワークを介して接続されている。ここで、アプリケーションサーバＰＣ２０には、アプリケーション連携モジュール４０以外に、文書管理機能を有する文書管理アプリケーション４１、及び周辺機器３０、３１、３２への印刷を制御する印刷管理アプリケーション４２が存在する。なお、図１（ｂ）のように、アプリケーション連携モジュール４０、文書管理アプリケーション４１、及び印刷管理アプリケーション４２が、それぞれ別のアプリケーションサーバＰＣ２０、２１、２２上に配置されていても構わない。また、アプリケーションサーバＰＣ２０、２１、及び２２は、必ずしもイントラネット内に存在する必要はなく、インターネット上に存在しても構わない。
【００１９】
また、本実施形態に係るアプリケーション連携システムは、ユーザＡがブラウザを介してアクセスする構成としているが、専用のクライアントアプリケーション（不図示）をＣｌｉｅｎｔ  ＰＣ１０に配置し、それを操作する構成であっても構わない。また、本実施形態においては、アプリケーション連携モジュール４０により文書管理アプリケーション４１、及び印刷管理アプリケーション４２を連携させる場合について説明するが、連携対象となるアプリケーションは特に限定しない。より詳細には、例えば文書編集、フォーマット変換機能などを有するアプリケーション（不図示）と、文書管理アプリケーション４１を連携させる構成であっても構わない。なお、汎用的に文書管理アプリケーション４１を第１のアプリケーション、印刷管理アプリケーション４２を第２のアプリケーションとして捉えることもできる。
【００２０】
［ハードウェア構成］
図２は、本発明の実施形態に係るアプリケーション連携システムを構成するＰＣのハードウェア構成図を示している。図２に示されるハードウェア構成図は一般的な情報処理装置のハードウェア構成図に相当するものとし、本実施形態のＰＣには一般的な情報処理装置のハードウェア構成を適用できる。図２において、ＣＰＵ１００は、ＲＯＭ１０２のプログラム用ＲＯＭに記憶された、或いは外部メモリ１０９からＲＡＭ１０１にロードされたＯＳやアプリケーション等のプログラムを実行する。ここでＯＳとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをＯＳと呼ぶ。後述する各フローチャートの処理はこのプログラムの実行により実現できる。ＲＡＭ１０１は、ＣＰＵ１００の主メモリ、ワークエリア等として機能する。キーボードコントローラ１０３は、キーボード１０７やポインティングデバイス（不図示）からのキー入力を制御する。ディスプレイコントローラ１０４は、ディスプレイ１０８の表示を制御する。ディスクコントローラ１０５は、各種データを記憶するハードディスク（ＨＤ）１０９やフロッピー（登録商標）ディスク（ＦＤ）等におけるデータアクセスを制御する。ＮＣ（Ｎｅｔｗｏｒｋ  Ｃａｒｄ）１０６はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
【００２１】
［ソフトウェア構成］
図３は、本発明の実施形態に係るアプリケーション連携システムのソフトウェア構成の一例を示す図であり、Ｃｌｉｅｎｔ  ＰＣ１０、及びアプリケーションサーバＰＣ２０内のソフトウェア構成を示している。まず、Ｃｌｉｅｎｔ  ＰＣ１０におけるソフトウェア構成図について説明する。
【００２２】
ブラウザ２００は、ユーザＡの操作に従い、本発明の実施形態に係るアプリケーション連携モジュール４０にアクセスし、レスポンスとしてユーザインタフェースを表示する。ここで、ブラウザ２００は、Ｃｌｉｅｎｔ  ＰＣ１０の外部メモリ１０９に保存されたプログラムファイルとして存在する。ブラウザ２００は、実行される際にＲＡＭ１０１にロードされた後、ＣＰＵ１００によって実行される。実行されたブラウザ２００はディスプレイ１０８に表示され、ユーザＡは、キーボード１０７やポインティングデバイス（不図示）を用いてブラウザ２００を操作する。なお、ブラウザ２００は、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）やＦｉｒｅ  Ｆｏｘ（登録商標）など一般的なウェブブラウザで構わない。図４（ａ）は、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００に表示されたアプリケーション連携モジュール４０ユーザインタフェースの一例である。
【００２３】
次に、アプリケーションサーバＰＣ２０内に存在するアプリケーション連携モジュール４０、文書管理アプリケーション４１、及び印刷管理アプリケーション４２のソフトウェア構成図について説明する。なお、これらソフトウェアは、アプリケーションサーバＰＣ２０内の外部メモリ１０９に保存されたプログラムファイルとして保存されている。Ｃｌｉｅｎｔ  ＰＣ１０からのリクエスト、及びＯＳからの指示に従い、ＲＡＭ１０１にロードされ、ＣＰＵ１００によって実行される。
【００２４】
通信部３００は、Ｃｌｉｎｅｔ  ＰＣ１０内のブラウザ２００からのリクエストを、ＮＣ１０６を介して受信し、アプリケーション連携モジュール４０における処理結果をレスポンスとして、ブラウザ２００にＮＣ１０６を介して送信する。処理制御部３０１は、本実施形態に係るアプリケーション連携モジュール４０を制御し、ブラウザ２００からのリクエストを、通信部３００を介して受け、後述する各部に対する指示、管理を行う。処理内容管理部３０２は、アプリケーション連携モジュール４０にて実行する複数の処理を管理し、処理制御部３０１から指示を受け、ブラウザ２００からのリクエストに応じた処理を実行する。ここで、処理とは、各アプリケーションが提供するインタフェースの呼び出し、条件分岐などがシーケンスとして定義されたものであり、ソースコードやｘｍｌなどのスキーマで記述されている。
【００２５】
認証部３０３は、ユーザＡのアプリケーション連携モジュール４０へのログイン操作に対して、アクセスを許可するか否かの認証判断処理を行う。さらに、ユーザＡが、アプリケーション連携モジュール４０を介して一旦、文書管理アプリケーション４１、及び印刷管理アプリケーション４２にログインすると、一時的に両アプリケーションへのログイン情報を保持する。操作カテゴリ保持部３０４は、アプリケーション連携モジュール４０が定義する文書管理アプリケーション４１、及び印刷管理アプリケーション４２の間で受け渡すオブジェクトに対する操作カテゴリを保持する。本発明において、操作カテゴリと呼ぶものは具体的には、ＣＲＥＡＴＥ（生成）、ＲＥＡＤ（読み取り）、ＵＰＤＡＴＥ（更新）、ＤＥＬＥＴＥ（削除）、ＰＲＩＮＴ（印刷）、ＣＯＰＹ（複写）、ＭＯＶＥ（移動）、ＡＬＬ（全処理）など、オブジェクトに対する操作内容の種類を分類して定義したものである。なお、操作カテゴリは、データベース（不図示）、またはｘｍｌのようなフォーマットで設定ファイルとして保持されている。更に、操作カテゴリは、ユーザインタフェース（不図示）を介して追加、編集、及び削除できても良いし、データベースや設定ファイルを直接編集しても良い。なお、操作カテゴリの数は２以上を定義するものとする。また、本発明において、単にオブジェクトと呼んでいるものは、文書管理アプリケーションで管理されるような文書情報や各種アプリデータなどを指している。
【００２６】
オブジェクト情報管理部３０５は、文書管理アプリケーション４１から取得したオブジェクトを保存、管理する。更に、取得したオブジェクトに対するユーザＡの操作権限などを、文書管理アプリケーション４１から取得し、オブジェクト属性として保存、管理する。なお、オブジェクト及びその属性を含むオブジェクト情報には、ユーザＡの操作権限以外にも、サイズ、作成日付などのオブジェクトに依存した情報を保持しても構わない。アプリケーション連携部３０６は、処理内容管理部３０２に保存された処理に従い、文書管理アプリケーション４１、及び印刷管理アプリケーション４２が提供するインタフェースの呼び出しを行い、各アプリケーションと連携する。アプリケーション情報保持部３０７は、文書管理アプリケーション４１、及び印刷管理アプリケーション４２が提供するインタフェースの情報を保持する。ここで、インタフェースの情報とは、各アプリケーションが提供する各インタフェースにおける処理内容を定義するもので、図１０（ｂ）はその一例であり、印刷管理アプリケーション４２のインタフェースの操作カテゴリを示した定義ファイルである。
【００２７】
アクセス権判定部３０８は、オブジェクト情報管理部３０５に保存されたユーザＡのオブジェクトに対する操作権限と、アプリケーション情報保持部３０７に保持された印刷管理アプリケーションのインタフェースの操作カテゴリを比較する。その結果、印刷管理アプリケーションのインタフェースを呼び出して良いか否かを判定する。ＵＩ保持部３０９は、ブラウザ２００からのリクエストに対するアプリケーション連携モジュール４０の処理結果をレスポンスとして返すユーザインタフェースを保存する。ここで、ユーザインタフェースとは、ＨＴＭＬやＪａｖａ  Ｓｃｒｉｐｔ(登録商標)に限定するものではなく、ブラウザ２００で表示可能であれば、どのような形態であっても構わない。
【００２８】
文書管理アプリケーション４１の接続部４００は、アプリケーション連携モジュール４０のアプリケーション連携部３０６からの呼び出しを受ける。接続部４００からの指示を受け、文書管理アプリケーション本体４０１が処理を行い、アプリケーション連携部３０６に処理結果を返す。接続部４００は、ＲＥＳＴやＷｅｂ  Ｓｅｒｖｉｃｅのようにネットワークを介して通信可能とするものであっても良いし、インタフェースクラスのように直接ソースコードから呼び出すような構成であっても構わない。認証部４０２は、文書管理アプリケーション本体４０１におけるユーザ管理、及びアクセス権管理を行う。
【００２９】
印刷管理アプリケーション４２におけるソフトウェア構成は、文書管理アプリケーション４１におけるソフトウェア構成と同じであり、接続部５００、印刷管理アプリケーション本体５０１、及び認証部５０２から構成される。
【００３０】
なお、複数のアプリケーションのうち、いくつかのアプリケーションが同一の認証方式を有し、同一のアクセス権で管理されている環境下に適用されてもよい。ここでは、図１の（ａ）及び（ｂ）ようにシステム構成に合わせて、各アプリケーションが、異なる認証方式を有し、別個のアクセス権で管理されている環境下である。
【００３１】
以下、本発明の第一の実施形態に係るアプリケーション連携システムの各ステップにおける処理について、具体的に説明する。
【００３２】
［操作権限に応じたＵＩ表示］
ユーザＡが、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００を介して、本発明の実施形態に係るアプリケーション連携システムの操作権限に応じたＵＩを操作する。図５は、操作権限に応じたＵＩ表示処理の流れの概要を示すフローチャートである。以下、図３及び図５を用いて説明する。
【００３３】
Ｓ１０１において、本実施形態に係るアプリケーション連携モジュール４０の通信部３００がブラウザ２００を介してユーザＡからのログイン指示を受けると、処理制御部３０１は認証部３０３にログイン可能かを確認する。続いて、Ｓ１０２において、通信部３００がブラウザ２００を介してユーザＡからの文書検索の指示を受けると、処理制御部３０１はアプリケーション連携部３０６を介して文書管理アプリケーション４１から文書検索結果を取得する。続いて、Ｓ１０３において、通信部３００がブラウザ２００を介してユーザＡからの文書選択の指示を受けると、処理制御部３０１はアプリケーション連携部３０６を介して文書管理アプリケーション４１から文書情報を取得する。処理制御部３０１は、取得した文書情報をもとに、オブジェクト情報としてオブジェクト情報管理部３０５に保存する。
【００３４】
続いて、Ｓ１０４において、処理制御部３０１は、Ｓ１０３により取得した文書情報に対するユーザＡの操作権限を、アプリケーション連携部３０６を介して文書管理アプリケーション４１から取得する。処理制御部３０１は、オブジェクト情報のオブジェクト属性として、取得したユーザＡの操作権限による更新を行い、オブジェクト情報管理部３０５に保存する。続いて、Ｓ１０５において、処理制御部３０１は、ブラウザ２００に返すユーザインタフェースをＵＩ保持部３０９から取得する。次に、処理制御部３０１は、アプリケーション情報保持部３０７に保存された印刷管理アプリケーション４２のインタフェースの定義ファイルを取得する。次に、アクセス権判定部３０８が、Ｓ１０４により取得した文書情報に対するユーザＡの操作権限と、印刷管理アプリケーション４２のインタフェースの定義ファイルに記載された操作カテゴリを比較する。処理制御部３０１は、比較結果を元に、ユーザＡが文書に対する操作権限の無いコントロールを無効（非表示、グレーアウトなど）にして処理に対する指示を制限したユーザインタフェースを、通信部３００を介してブラウザ２００に返し、表示する。
【００３５】
［ログイン］
Ｓ１０１において、ユーザＡが、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００を操作して、本実施形態に係るアプリケーション連携モジュール４０により提供されるシステム環境に対してログインする。図６は、ログイン処理の流れを示すフローチャートである。以下、以下、図３、及び図６を用いて詳細に説明する。
【００３６】
Ｓ１００１において、ユーザＡは、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００を操作して、アプリケーション連携モジュール４０にアクセスする。続いて、Ｓ１００２において、Ｓ１００１によりブラウザ２００を介してユーザＡがアプリケーション連携モジュール４０へアクセスすると、アプリケーション連携モジュール４０内の通信部３００がＨＴＴＰリクエストを受信する。処理制御部３０１は、通信部３００から通知を受け、処理内容管理部３０２よりユーザＡからの要求に対応する処理を取得する。処理制御部３０１は、処理内容管理部３０２から取得した処理に従い、ＵＩ保持部３０９からログインを要求するユーザインタフェースを取得し、通信部３００を介してブラウザ２００にレスポンスとして返す。ここで、本実施形態においては、ログインを要求するユーザインタフェースをアプリケーション連携モジュール４０が返す場合について説明するが、それ以外の手段でログインをユーザＡに要求しても構わない。具体的には、ブラウザ２００からのＨＴＴＰリクエストヘッダに認証情報が無い場合、アプリケーションサーバＰＣ２０のＷｅｂサーバ機能（不図示）がブラウザ２００にＨＴＴＰの４０１レスポンスコードを返し、ブラウザ２００がログイン画面を表示しても良い。
【００３７】
続いて、Ｓ１００３において、Ｓ１００２によりログイン要求を受けたユーザＡは、ブラウザ２００に表示されたユーザインタフェースを介して、ログイン情報を入力し、アプリケーション連携モジュール４０に送信する。続いて、Ｓ１００４において、Ｓ１００３によりブラウザ２００を介してユーザＡがアプリケーション連携モジュール４０へログイン情報を送信すると、通信部３００がログイン要求を受信する。処理制御部３０１は、通信部３００から通知を受け、処理内容管理部３０２よりユーザＡからの要求に対応する処理を取得し、取得した処理に従い、認証部３０３にアプリケーション連携モジュール４０にログイン可能か否かを判定する。より具体的には、認証部３０３は、事前に登録されたユーザ情報のリストを管理しており、ユーザＡが送信したログイン情報に含まれるユーザ名、パスワードが、登録済みのユーザ情報のリスト内に存在するかを判定する。ここで、ログイン情報は、ユーザ名、パスワードだけに限定するものではない。ユーザが入力したログイン情報によりログイン不可であれば、再度ログイン情報を要求する。続いて、Ｓ１００５において、Ｓ１００４によりログイン可能であると判定された場合、処理制御部３０１は、ＵＩ保持部３０９からユーザインタフェースを取得し、通信部３００を介してブラウザ２００にレスポンスとして返す。
【００３８】
図４（ａ）は、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００に表示されたアプリケーション連携モジュール４０にログイン後に表示するユーザインタフェースの一例である。ユーザインタフェースは、レポジトリエリア６０１、検索窓６０２、文書リストエリア６０３、プレビューエリア６０４、入稿ボタン６０５、編集ボタン６０６から構成される。レポジトリエリア６０１は、文書管理アプリケーション４１の内部構造をツリービュー表示する。検索窓６０２は、文書管理アプリケーション４１内の文書を検索する。文書リストエリア６０３は、文書のサムネイルやアイコンの形で表示する。プレビューエリア６０４は、文書リストエリア６０３において選択した文書のプレビューやプロパティ情報を表示する。入稿ボタン６０５は、選択された文書を印刷管理アプリケーション４２への入稿を指示する。編集ボタン６０６は、選択された文書の編集を指示する。ユーザは、ブラウザ２００に表示されたユーザインタフェースを介して、アプリケーション連携モジュール４０に指示をする。なお、図４（ａ）で示したユーザインタフェースに関して、その形態、エリアの構成、及びコントロールは限定されたものではなく、必要となる機能を実現することができれば、どのような形態であっても構わない。
【００３９】
［文書検索］
Ｓ１０２において、ユーザＡが、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００を操作し、アプリケーション連携モジュール４０を介して文書管理アプリケーション４１から文書を検索する。図７は、アプリケーション連携モジュール４０を介した文書管理アプリケーションからの文書検索処理の流れを示すフローチャートである。以下、図３、図４（ａ）、及び図７を用いて詳細に説明する。
【００４０】
Ｓ１１０１において、ユーザＡは、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００を操作して、文書管理アプリケーション内の文書を検索する。より具体的には、図４（ａ）内のレポジトリエリア６０１のツリービューを操作する、または図４（ａ）内の検索窓６０２に検索キーワードを入力することで、ユーザＡは文書管理アプリケーション内の文書を検索する。続いて、Ｓ１１０２において、Ｓ１１０１によりブラウザ２００を介してユーザＡが文書検索を指示すると、アプリケーション連携モジュール４０内の通信部３００が文書検索要求を受信する。処理制御部３０１は、通信部３００から通知を受け、処理内容管理部３０２よりユーザＡからの要求に対応する処理を取得する。処理制御部３０１は、取得した処理に従い、認証部３０３にユーザＡに関連付けられた文書管理アプリケーション４１へのログイン情報が存在するか否かを判定する。続いて、Ｓ１１０３において、Ｓ１１０２によりログイン情報が保存されていないと判定された場合、処理制御部３０１はＵＩ保持部３０９から文書管理アプリケーション４１へのログインを要求するユーザインタフェースを取得する。処理制御部３０１は、通信部３００を介してブラウザ２００に文書管理アプリケーション４１へのログインを要求するユーザインタフェースをレスポンスとして返す。
【００４１】
続いて、Ｓ１１０４において、Ｓ１１０３によりログイン要求を受けたユーザＡは、ブラウザ２００に表示されたユーザインタフェースを介して、ログイン情報を入力し、アプリケーション連携モジュール４０に送信する。続いて、Ｓ１１０５において、Ｓ１１０４によりブラウザ２００を介してユーザＡがログイン情報を送信すると、通信部３００がログイン要求を受信する。処理制御部３０１は、通信部３００から通知を受け、処理内容管理部３０２よりユーザＡからの要求に対応する処理を取得し、取得した処理に従い、アプリケーション連携部３０６を介して文書管理アプリケーションへログインを要求する。続いて、Ｓ１１０６において、Ｓ１１０５によりアプリケーション連携モジュール４０がログインを要求すると、文書管理アプリケーション４１の接続部４００はログイン要求を受信する。接続部４００は、ログイン要求を文書管理アプリケーション本体４０１に通知し、認証部４０２を指示してログイン可能か否かを判定する。
【００４２】
続いて、Ｓ１１０７において、Ｓ１１０６によりログインが可能であると判定された場合、処理制御部３０１は、アプリケーション連携部３０６介して文書管理アプリケーション４１へのログイン結果を受ける。処理制御部３０１は、認証部３０３に指示して、ユーザＡと関連付けて文書管理アプリケーション４１へのログイン情報を一時的に保存する。これにより、ユーザＡは、文書管理アプリケーション４１にアクセスする度に、ログイン操作を求められるという煩わしい操作から解消できる。なお、本実施形態においては、文書管理アプリケーション４１へのログイン情報を一時的に保持する場合について説明するが、データベース（不図示）などを利用することで、永続的にログイン情報を保持しても良い。なお、既にユーザＡと紐づいた文書管理アプリケーション４１へのログイン情報が既に存在する場合、本ステップはスキップしても構わない。
【００４３】
続いて、Ｓ１１０８において、Ｓ１１０２によりユーザＡからの文書検索の指示を受けて、処理制御部３０１は、アプリケーション連携部３０６を介して文書管理アプリケーション４１へ文書検索を依頼する。続いて、Ｓ１１０９において、Ｓ１１０８によりアプリケーション連携モジュール４０が文書検索を要求すると、文書管理アプリケーション４１の接続部４００は文書検索要求を受信する。接続部４００は、文書検索要求を文書管理アプリケーション本体４０１に通知し、文書検索を実行する。続いて、Ｓ１１１０において、Ｓ１１０９により文書検索結果を取得し、処理制御部３０１は、ＵＩ保持部３０９から取得したユーザインタフェースに文書検索結果を反映し、通信部３００を介してブラウザ２００にレスポンスとして返す。ここで、文書検索結果を反映とは、図４（ａ）内のレポジトリエリア６０１のツリービューを展開し、かつ展開されたフォルダ以下に存在する文書の一覧を文書リストエリア６０３内に表示した状態を指す。また、図４（ａ）内の検索窓６０２に入力された検索キーワードに一致する文書の一覧を、文書リストエリア６０３内に表示した状態でも構わない。また、検索結果として表示する内容は、図４（ａ）に示したものに限られず、例えばユーザが設定した表示内容に応じて変更してもよい。続いて、Ｓ１１１１において、Ｓ１１１０により受信した文書検索結果を反映したユーザインタフェースを、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００に表示する。
【００４４】
［文書取得］
Ｓ１０３において、ユーザＡが、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００を操作し、アプリケーション連携モジュール４０を介して文書管理アプリケーション４１内の文書を選択する。図８は、アプリケーション連携モジュール４０を介した文書管理アプリケーション４１内の文書取得処理の流れを示すフローチャートである。以下、図３、図４（ａ）、及び図８を用いて詳細に説明する。
【００４５】
Ｓ１２０１において、ユーザＡは、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００を操作して、文書管理アプリケーション４１内の文書を選択する。より具体的には、ユーザＡは、図４（ａ）内の文書リストエリア６０３内に表示された文書を選択する。続いて、Ｓ１２０２において、Ｓ１２０１によりブラウザ２００を介してユーザＡが文書選択を行うと、アプリケーション連携モジュール４０内の通信部３００が文書選択要求を受信する。処理制御部３０１は、通信部３００から通知を受け、処理内容管理部３０２よりユーザＡからの要求に対応する処理を取得し、取得した処理に従い、アプリケーション連携部３０６を介して文書管理アプリケーション４１へ文書取得を依頼する。
【００４６】
続いて、Ｓ１２０３において、Ｓ１２０２によりアプリケーション連携モジュール４０が文書取得を要求すると、文書管理アプリケーション４１の接続部４００は文書取得要求を受信する。接続部４００は、文書取得要求を文書管理アプリケーション本体４０１に通知し、ユーザに選択された文書情報を取得する。ここで本発明において、文書情報とは、文書に対応するバイナリデータでも構わないし、文書の実体が存在する前記アプリケーションサーバＰＣ内のローカルのファイルパスでも良く、文書の実体となるデータにリンクできる情報であれば良い。また、文書自体のファイルサイズ、作成日時、ユーザが自由に設定したプロパティ情報を含んでいても構わない。
【００４７】
続いて、Ｓ１２０４において、Ｓ１２０３により文書管理アプリケーション４１から取得した文書情報をもとに、処理制御部３０１は、オブジェクト情報を生成して、オブジェクト情報管理部３０５に保存する。具体的に本発明においては、ＲＡＭ１０１上に取得した文書情報であるオブジェクトが含まれるオブジェクト情報を一時的に保持しても良いし、データベース（不図示）に登録しても良い。続いて、Ｓ１０４において、Ｓ１２０４により取得した文書情報に対するユーザＡの操作権限を、アプリケーション連携部３０６を介して文書管理アプリケーション４１から取得し、オブジェクト情報管理部３０５に保存する。
【００４８】
［操作権限取得］
Ｓ１０４において、アプリケーション連携モジュール４０内の処理制御部３０１は、Ｓ１０３により取得した文書に対するユーザＡの操作権限を、文書管理アプリケーション４１から取得する。図９は、アプリケーション連携モジュール４０が文書管理アプリケーションより文書に対するユーザＡの操作権限を取得する処理の流れを示すフローチャートである。以下、図３、図９、及び図１０（ａ）を用いて詳細に説明する。
【００４９】
Ｓ１３０１において、オブジェクト情報管理部３０５は、Ｓ１０３により、ユーザにより選択された文書に関するオブジェクト情報が生成、保存されたかを判定する。ここで、本ステップは、オブジェクト情報管理部３０５にオブジェクト情報が生成、保存されたタイミングで、自動的にオブジェクト情報管理部３０５が実行する。よって、処理内容管理部３０２に保存された各処理においてシーケンスとして定義、または記述する必要がなくなる。続いて、Ｓ１３０２において、Ｓ１３０１によりオブジェクト情報が生成、保存されたと判定すると、オブジェクト情報管理部３０５は、文書管理アプリケーション４１に文書に対するユーザＡの操作権限の取得を依頼する。ここで、アプリケーション連携モジュール４０と連携する各アプリケーションにおいては、必要に応じてユーザの操作権限を取得するための統一的なインタフェースを実装していることとする。
【００５０】
続いて、Ｓ１３０３において、Ｓ１３０２によりアプリケーション連携部３０６からの依頼があると、文書管理アプリケーション４１の接続部４００は文書に対するユーザＡの操作権限の取得要求を受信する。接続部４００は、文書に対するユーザＡの操作権限情報を取得するため、文書管理アプリケーション本体４０１、及び認証部４０２に処理を実行させる。続いて、Ｓ１３０４において、Ｓ１３０３により取得した文書に対するユーザＡの操作権限情報を、接続部４００は、アプリケーション連携モジュール４０内の操作カテゴリ保持部３０４において定義された操作カテゴリに変換する。
【００５１】
図１０（ａ）は、接続部４００において文書管理アプリケーション４１における操作権限の定義を、アプリケーション連携モジュール４０内の操作カテゴリ保持部３０４において定義された操作カテゴリへの変換ルールを定義する定義ファイル７００の一例である。定義ファイル７００は、本実施形態のアプリケーション連携モジュール４０と文書管理アプリケーション４１を連携させる前提として、ユーザの操作権限を共通して統一的に扱うために事前に用意し、接続部４００に保存、または管理されている。なお、ここで複数のアプリケーションを連携する際に、アプリケーション連携モジュール４０において、ユーザの操作権限を統一的に扱うことができれば、定義ファイル７００に限定するものではなく、それ以外の手段であっても構わない。また、本実施形態においては、文書管理アプリケーション４１が、ユーザの操作権限を所属するグループによって定義している場合について説明するが、それ以外の定義を用いても構わない。
【００５２】
図１０（ａ）においては、管理者グループ”ａｄｍｉｎ”（７０１）に属するユーザは、操作カテゴリ保持部３０４において定義された「全ての操作を許可された」操作カテゴリ”ＡＬＬ”（７０２）に変換するルールを一例として示している。その他の変換例は、以下の通りである。
・文書管理アプリケーション４１における”ｇｕｅｓｔ”ユーザは、操作カテゴリ保持部３０４において定義された「読み取り操作のみを許可された」操作カテゴリ”ＲＥＡＤ”に変換
・文書管理アプリケーション４１における”ｇｅｎｅｒａｌ１”ユーザは、操作カテゴリ保持部３０４において定義された「読み取り、及び更新操作を許可された」操作カテゴリ”ＲＥＡＤ”、及び”ＵＰＬＯＡＤ”に変換
・文書管理アプリケーション４１における”ｇｅｎｅｒａｌ２”ユーザは、操作カテゴリ保持部３０４において定義された「読み取り、更新、印刷、及び編集操作を許可された」操作カテゴリ”ＲＥＡＤ”、”ＵＰＬＯＡＤ”、”ＰＲＩＮＴ”、”ＥＤＩＴ”に変換
ここで、本実施形態においては、図１０（ａ）に示した一例を用いて説明を行うが、それ以外の変換ルールを定義してもよく、図１０（ａ）に示した一例に限定するものでもない。
【００５３】
続いて、Ｓ１３０５において、オブジェクト情報管理部３０５は、Ｓ１３０４により取得した文書情報に対するユーザＡの変換後の操作権限（操作カテゴリ）を、オブジェクト情報のオブジェクト属性として保存する。
【００５４】
ここまでの処理により、本システムでは、文書管理アプリケーション４１から取得したオブジェクトに対して、印刷管理アプリケーション４２が、ユーザの操作権限を確認／取得する処理を個別に実装する必要がなくなる。これにより、連携させたいアプリケーション間の相互依存性を排除することができる。
【００５５】
［ＵＩ表示］
Ｓ１０５において、アプリケーション連携モジュール４０内の処理制御部３０１は、ユーザＡが文書に対する操作権限の無いコントロールを無効にしたブラウザ２００に返し、表示する。図１１は、アプリケーション連携モジュール４０がユーザＡの文書への操作権限に応じたユーザインタフェースを返す処理の流れを示すフローチャートである。以下、図３、及び図１１を用いて詳細に説明する。
【００５６】
Ｓ１４０１において、アプリケーション連携モジュール４０内の処理制御部３０１は、Ｓ１０３によりユーザＡが選択した文書の取得結果を返すため、ＵＩ保持部３０９からユーザインタフェースを取得する。続いて、Ｓ１４０２において、Ｓ１４０１により取得したユーザインタフェース内のコントロールにおいて、ユーザＡの文書に対する操作権限に応じて表示／非表示を判定するロジック（プログラム）があるか否かを判定する。ここでは操作権限により許可される機能が表示されることを想定している。
【００５７】
より具体的には、ＵＩ保持部３０９に保存されているユーザインタフェースが、ＪＳＰなどのサーバサイド・スクリプティングなどのプログラム言語を含んだＨＴＭＬで構成されている場合について説明する。本実施形態のユーザインタフェースの一例である図４（ａ）には、ユーザＡが選択した文書を表示するプレビューエリア６０４が存在する。さらに、ユーザインタフェースには、ユーザＡの文書への操作権限に応じて表示／非表示を判定する入稿ボタン６０５、及び編集ボタン６０６が存在する。ここで、入稿ボタン６０５、及び編集ボタン６０６の両コントロールに対して、ユーザＡの文書への操作権限に応じて表示／非表示を判定するためのロジックが、プログラム言語としてＨＴＭＬ内に存在する。なお、本実施形態においては、ＵＩ保持部３０９にサーバサイド・スクリプティングなどのプログラム言語を含んだＨＴＭＬが保存されている構成について説明を行うが、それ以外の手段でも構成されていても構わない。例えば、ブラウザ２００に表示する際に同じ効果、及び表示結果を得るためにＪａｖａ  Ｓｃｒｉｐｔ(登録商標)を用いても良い。
【００５８】
続いて、後述するＳ１４０３において、Ｓ１４０２により操作権限に応じてコントロールの表示／非表示を判定するロジックがあった場合、処理制御部３０１はサーバサイド・スクリプティングなどのプログラムを実行する。処理制御部３０１は実行結果を用いて、ユーザインタフェース内のコントロールを表示するか否かを判定する。続いて、Ｓ１４０４において、Ｓ１４０３によりユーザＡの操作権限に応じたコントロールの表示／非表示の確認結果を得ると、処理制御部３０１は、ユーザインタフェース内のコントロールの表示／非表示を反映する。より具体的には、ユーザＡが文書に対して印刷権限が無い（不許可の）場合、図４（ａ）内の入稿ボタン６０５を非表示にし、また、ユーザＡが文書に対して編集権限が無い（不許可の）場合、図４（ａ）内の編集ボタン６０６を非表示にする。続いて、Ｓ１４０５において、Ｓ１４０２によりコントロールの表示／非表示を判定するロジック（プログラム）を全て処理し終えると、ブラウザ２００にコントロールの表示／非表示を反映したユーザインタフェースを返し、表示する。なお、プレビューエリア６０４には、同時にユーザＡが選択した文書のプレビュー、及びプロパティ情報が表示される。
【００５９】
これにより、ユーザは、文書に対する操作権限が存在しないコントロールを押すことなく、また、操作権限の無いコントロールを操作することで発生する外部システムへの問合せ、不要な処理、及びネットワーク通信を回避することができる。
【００６０】
［操作権限確認］
Ｓ１４０３において、アプリケーション連携モジュール４０内の処理制御部３０１は、ユーザＡの文書に対する操作権限を用いて、ユーザインタフェース内のコントロールを表示するか否かを判定するプログラムを実行する。具体的には、ユーザインタフェース内のコントロールをユーザＡが操作した際に発生する処理、より詳細にはアプリケーションが提供するインタフェースを呼び出して良いか否かを、ユーザＡの文書に対する操作権限を用いて判定する。図１２は、アプリケーション連携モジュール４０がユーザＡの文書への操作権限と、アプリケーションが提供するインタフェース定義とを比較する処理の流れを示すフローチャートである。以下、図３、図１０（ｂ）、及び図１２を用いて詳細に説明する。
【００６１】
Ｓ１５０１において、処理制御部３０１は、オブジェクト情報管理部３０５よりユーザＡが選択した文書のオブジェクト情報を取得する。具体的には、オブジェクト情報として保存されているユーザＡの文書に対する操作権限（操作カテゴリ）を取得する。続いて、Ｓ１５０２において、処理制御部３０１は、Ｓ１４０２によりユーザインタフェース内に埋まったコントロールに対して、ユーザがコントロールを操作した際に呼び出すアプリケーションのインタフェースの定義を取得する。本実施形態においては、図４（ａ）内の入稿ボタン６０５が押下されると、印刷管理アプリケーション４２が提供するインタフェースを呼び出すことが、ユーザインタフェースの定義内に記述されている場合について説明する。処理制御部３０１は、入稿ボタン６０５に操作時に呼び出される印刷管理アプリケーション４２のインタフェース定義を、アプリケーション情報保持部３０７から取得する。
【００６２】
図１０（ｂ）は、印刷管理アプリケーション４２のインタフェース情報を定義した定義ファイル８００の一例である。定義ファイル８００は、本実施形態のアプリケーション連携モジュール４０と印刷管理アプリケーション４２を連携させる前提として、事前に用意され、アプリケーション情報保持部３０７に保持されている。本実施形態においては、印刷管理アプリケーション４２が、二つのインタフェースを提供しており、一つは文書を入稿する際に呼び出す“ＰｕｔＤｏｃｕｍｅｎｔ”、もう一つは文書を印刷する際に呼び出す“ＰｒｉｎｔＤｏｃｕｍｅｎｔ”である。さらに、各インタフェースが受け取ったオブジェクトに対して実行する処理内容を定義する目的で、アプリケーション連携モジュール４０内の操作カテゴリ保持部３０４において定義された操作カテゴリを用いて宣言している。つまり、アプリケーションがオブジェクトに対して実行する処理内容と操作カテゴリとを対応関係を定義している。より具体的には、”ＰｕｔＤｏｃｕｍｅｎｔ”（８０１）においては、操作カテゴリ保持部３０４において定義された「登録、及び印刷を行う」操作カテゴリ”ＵＰＬＯＡＤ”、”ＰＲＩＮＴ”（８０２）が宣言されている。更に、”ＰｒｉｎｔＤｏｃｕｍｅｎｔ”（８０３）においては、「印刷を行う」操作カテゴリ”ＰＲＩＮＴ”（８０４）が宣言されている。なお、インタフェース情報を定義したファイルにおいて、印刷管理アプリケーションが提供する全てのインタフェースについて記載する必要はない。最低限、受け取ったオブジェクト対して何らかの処理を行うインタフェースについてのみ記載されていても良い。また、各インタフェースの定義について、操作カテゴリ以外の情報が宣言されていても構わない。
【００６３】
続いて、Ｓ１５０３において、Ｓ１５０２により印刷管理アプリケーション４２のインタフェース定義を取得すると、処理制御部３０１は、入稿ボタン６０５を操作した際に呼び出されるインタフェースの操作カテゴリを確認する。本実施形態においては、印刷管理アプリケーション４２が提供するインタフェース“ＰｕｔＤｏｃｕｍｅｎｔ”（８０１）の処理内容として宣言された“ＵＰＬＯＡＤ”、“ＰＲＩＮＴ”（８０２）が操作カテゴリとして取得される。続いて、Ｓ１５０４において、処理制御部３０１は、アクセス権判定部３０８に依頼し、Ｓ１５０１により取得したユーザＡの文書に対する操作権限と、Ｓ１５０３により取得した印刷管理アプリケーション４２のインタフェースの操作カテゴリを比較する。例えば、ユーザＡが文書に対する操作権限として“ＲＥＡＤ”しかない場合、印刷管理アプリケーション４２のインタフェース“ＰｕｔＤｏｃｕｍｅｎｔ”は“ＵＰＬＯＡＤ”、“ＰＲＩＮＴ”であるため、ユーザＡは“ＰｕｔＤｏｃｕｍｅｎｔ”を呼び出す権限が無いと判定する。また、ユーザＡが文書に対する操作権限として“ＲＥＡＤ”、“ＵＰＬＯＡＤ”、“ＰＲＩＮＴ”、及び“ＥＤＩＴ”がある場合、印刷管理アプリケーション４２のインタフェース“ＰｕｔＤｏｃｕｍｅｎｔ”は“ＵＰＬＯＡＤ”、“ＰＲＩＮＴ”であるため、ユーザＡは“ＰｕｔＤｏｃｕｍｅｎｔ”を呼び出す権限が有すると判定する。
【００６４】
続いて、Ｓ１５０５において、アクセス権判定部３０８がＳ１５０４によりユーザＡの文書に対する操作権限と印刷管理アプリケーション４２のインタフェースに定義された操作カテゴリの比較結果を、処理制御部３０１に通知する。
【００６５】
このように、アプリケーション連携モジュール４０において、文書管理アプリケーション４１からオブジェクトと共に当該オブジェクトに対する権限を取得する。そして取得した権限の情報に基づいて次の連携アプリケーションの（ここでは、印刷管理アプリケーション４２）の操作を可能とするかを判定する。これにより連携アプリケーションが、ユーザの操作権限を確認／取得する処理を個別に実装する必要がなくなる。その結果、アプリケーション間の相互依存性を排除することができる。
【００６６】
また、アプリケーション連携モジュール４０において、アプリケーションが提供するインタフェースを呼び出す前に、オブジェクトに対する処理を実行して良いか否かを判定できるため、分散環境での不要なネットワーク通信などを回避することができる。
【００６７】
＜第二の実施形態＞
本発明の第二の実施形態と第一の実施形態に係るアプリケーション連携システムとの相違点としては、ユーザＡが、文書管理アプリケーション４１からの文書の選択、及び印刷管理アプリケーション４２への入稿を一連の処理として指示できることである。図４（ｂ）は、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００に表示された本実施形態におけるアプリケーション連携モジュール４０のユーザインタフェースの一例である。
【００６８】
以下、本実施形態に係るアプリケーション連携システムの各ステップにおける処理について、図３、図４（ｂ）、図１３、図１４、及び図１５を用いて、前述の実施形態と異なるステップの内容について説明する。
【００６９】
［操作権限に基づいた文書入稿、印刷］
ユーザＡが、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００を介して、本実施形態に係るアプリケーション連携モジュール４０を利用して文書を入稿、及び印刷するためにＵＩを操作する。図１３は、文書を入稿、及び印刷するための処理の概要を示すフローチャートである。以下、図３及び図１３を用いて説明する。
【００７０】
Ｓ２０１において、本実施形態に係るアプリケーション連携モジュール４０の通信部３００がブラウザ２００を介してユーザＡからのログイン指示を受けると、処理制御部３０１は認証部３０３にログイン可能かを確認する。本ステップは、第一の実施形態における図５のＳ１０１と同じであるため、詳細な説明は省略する。続いて、Ｓ２０２において、通信部３００がブラウザ２００を介してユーザＡからの文書検索の指示を受けると、処理制御部３０１はアプリケーション連携部３０６を介して文書管理アプリケーション４１から文書検索結果を取得する。本ステップは、第一の実施形態における図５のＳ１０２と同じであるため、詳細な説明は省略する。
【００７１】
続いて、Ｓ２０３において、通信部３００がブラウザ２００を介してユーザＡからの文書選択、及び印刷管理アプリケーションへの入稿の指示を受けると、処理制御部３０１は文書管理アプリケーション４１から文書情報を取得する。処理制御部３０１は、取得した文書情報であるオブジェクトをオブジェクト情報としてオブジェクト情報管理部３０５に保存する。本ステップに関しては、図１４を用いて詳細に後述する。
【００７２】
続いて、Ｓ２０４において、処理制御部３０１は、Ｓ２０３により取得した文書情報に対するユーザＡの操作権限を、文書管理アプリケーション４１から取得し、オブジェクト情報を更新してオブジェクト情報管理部３０５に保存する。本ステップは、第一の実施形態における図５のＳ１０４と同じであるため、詳細な説明は省略する。
【００７３】
続いて、Ｓ２０５において、処理制御部３０１は、アプリケーション情報保持部３０７に保持された印刷管理アプリケーション４２のインタフェースの定義ファイルを取得する。次に、アクセス権判定部３０８が、Ｓ２０４により取得した文書に対するユーザＡの操作権限と、印刷管理アプリケーション４２のインタフェースの定義ファイルに記載された操作カテゴリを比較する。処理制御部３０１は、比較結果を元に、ユーザＡが文書を印刷する操作権限を有するか否かを判定し、印刷管理アプリケーション４２に文書情報を入稿する。続いて、Ｓ２０６において、Ｓ２０５により印刷管理アプリケーション４２に入稿された文書情報をもとに、ユーザＡは周辺機器３０、３１、及び３２を介して印刷する。周辺機器３０、３１、及び３２での印刷方法に関しては、周辺機器３０、３１、及び３２の操作パネル（不図示）から印刷管理アプリケーション４２にアクセスして印刷しても良い。また、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００に表示されるユーザインタフェース（不図示）を操作して、印刷管理アプリケーション４２から、周辺機器３０、３１、及び３２に印刷しても良い。
【００７４】
［文書選択、入稿］
Ｓ２０３において、ユーザＡが、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００を操作して、アプリケーション連携モジュール４０を介して文書管理アプリケーション４１内の文書を選択し、印刷管理アプリケーション４２に入稿する。図１４は、アプリケーション連携モジュール４０を介した文書管理アプリケーション内の文書選択、及び入稿の処理の流れを示すフローチャートである。以下、図３、図４（ｂ）、及び図１４を用いて詳細に説明する。
【００７５】
Ｓ２００１において、ユーザＡは、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００を操作して、文書管理アプリケーション４１内の文書を選択し、印刷管理アプリケーション４２に入稿する。より具体的には、ユーザＡは、図４（ｂ）内の文書リストエリア６０３内に表示された文書を選択した状態で操作メニュー６０７を表示し、入稿を選択する。続いて、Ｓ２００２において、Ｓ２００１によりブラウザ２００を介してユーザＡが文書選択、及び入稿を指示すると、アプリケーション連携モジュール４０内の通信部３００が文書選択要求を受信する。処理制御部３０１は、通信部３００から通知を受け、処理内容管理部３０２よりユーザＡからの要求に対応する処理を取得し、取得した処理に従い、アプリケーション連携部３０６を介して文書管理アプリケーション４１へ文書取得を依頼する。
【００７６】
続いて、Ｓ２００３において、Ｓ２００２によりアプリケーション連携モジュール４０が文書取得を要求すると、文書管理アプリケーション４１の接続部４００は文書取得要求を受信する。接続部４００は、文書取得要求を文書管理アプリケーション本体４０１に通知し、文書情報を取得する。続いて、Ｓ２００４において、Ｓ２００３により文書管理アプリケーション４１から取得した文書情報をもとに、処理制御部３０１は、オブジェクト情報を生成してオブジェクト情報管理部３０５に保存する。
【００７７】
続いて、Ｓ２０４において、Ｓ２００４により取得した文書に対するユーザＡの操作権限を、アプリケーション連携部３０６を介して文書管理アプリケーション４１から取得し、オブジェクト情報管理部３０５に保存する。なお、本ステップは、第一の実施形態における図８のＳ１０４、更に、その詳細を示した図９の全ステップと同じであるため、詳細な説明は省略する。続いて、後述するＳ２０５において、Ｓ２０４により取得したオブジェクト情報を用いてユーザＡにより選択され、取得した文書情報を、アプリケーション連携部３０６を介して印刷管理アプリケーション４２に入稿する。続いて、Ｓ２００５において、Ｓ２０４により続いて文書入稿結果を反映したユーザインタフェースを、Ｃｌｉｅｎｔ  ＰＣ１０のブラウザ２００に表示する。
【００７８】
［印刷管理アプリケーションへの文書入稿］
Ｓ２０５において、アプリケーション連携モジュール４０内の処理制御部３０１は、ユーザＡに選択、及び入稿を指示され、取得された文書情報を、印刷管理アプリケーション４２に入稿する。図１５は、アプリケーション連携モジュール４０がユーザＡの文書への操作権限に応じて、印刷管理アプリケーション４２に入稿する処理の流れを示すフローチャートである。以下、図３、及び図１５を用いて詳細に説明する。
【００７９】
後述するＳ２１０１において、処理制御部３０１は、ユーザＡの文書への操作権限に応じて、印刷管理アプリケーション４２に入稿して良いか否かを確認する。本処理は第一の実施形態にて述べた図１２の処理に相当する。続いて、Ｓ２１０２において、処理制御部３０１は、Ｓ２１０１によりユーザＡの操作権限に応じて、文書情報を印刷管理アプリケーション４２に入稿できないと判定された場合、Ｓ２１１１に進み、処理を終える。続いて、Ｓ２１０３において、Ｓ２１０１により文書情報を印刷管理アプリケーション４２に入稿できると判定された場合、処理制御部３０１は、認証部３０３にユーザＡに関連付く印刷管理アプリケーション４２へのログイン情報が存在するか否かを判定する。
【００８０】
続いて、Ｓ２１０４において、Ｓ２１０３によりログイン情報が存在すると判定された場合、処理制御部３０１はＵＩ保持部３０９から印刷管理アプリケーション４２へのログインを要求するユーザインタフェースを取得する。処理制御部３０１は、通信部３００を介してブラウザ２００に印刷管理アプリケーション４２へのログインを要求するユーザインタフェースをレスポンスとして返す。続いて、Ｓ２１０５において、Ｓ２１０４によりログイン要求を受けたユーザＡは、ブラウザ２００に表示されたユーザインタフェースを介して、ログイン情報を入力し、アプリケーション連携モジュール４０に送信する。続いて、Ｓ２１０６において、Ｓ２１０５によりブラウザ２００を介してユーザＡがログイン情報を送信すると、通信部３００がログイン要求を受信する。処理制御部３０１は、通信部３００から通知を受け、処理内容管理部３０２よりユーザＡからの要求に対応する処理を取得し、取得した処理に従い、アプリケーション連携部３０６を介して印刷管理アプリケーションへログインを要求する。
【００８１】
続いて、Ｓ２１０７において、Ｓ２１０６によりアプリケーション連携モジュール４０がログインを要求すると、印刷管理アプリケーション４２の接続部５００はログイン要求を受信する。接続部５００は、ログイン要求を印刷管理アプリケーション本体５０１に通知し、認証部５０２を指示してログイン可能か否かを判定する。続いて、Ｓ２１０８において、Ｓ２１０７によりログインが可能であると判定された場合、処理制御部３０１は、アプリケーション連携部３０６介して印刷管理アプリケーション４２へのログインが可能と結果を受ける。処理制御部３０１は、認証部３０３に指示して、ユーザＡと関連付けて印刷管理アプリケーション４２へのログイン情報を一時的に保存する。これにより、ユーザＡは、文書管理アプリケーション４１にアクセスする度に、ログイン操作を求められるという煩わしい操作から解消できる。なお、本実施形態においては、印刷管理アプリケーション４２へのログイン情報を一時的に保持する場合について説明するが、データベース（不図示）などを利用することで、永続的にログイン情報を保持しても良い。なお、既にユーザＡと関連付けられた印刷管理アプリケーション４２へのログイン情報が既に存在する場合、本ステップはスキップしても構わない。
【００８２】
続いて、Ｓ２１０９において、Ｓ２００１によりユーザＡからの文書入稿の指示を受けて、処理制御部３０１は、アプリケーション連携部３０６を介して印刷管理アプリケーション４２へ文書入稿を依頼する。続いて、Ｓ２１１０において、Ｓ２１０９によりアプリケーション連携モジュール４０が文書入稿を要求すると、印刷管理アプリケーション４２の接続部５００は文書入稿要求を受信する。接続部５００は、文書入稿要求を印刷管理アプリケーション本体５０１に通知し、文書入稿を実行する。続いて、Ｓ２１１１において、処理制御部３０１は、Ｓ２１０１によりユーザＡの操作権限に応じて印刷管理アプリケーション４２へ文書情報を入稿できないと判定された結果、または、Ｓ２１１０により実行された文書情報の入稿結果を受ける。次に、処理制御部３０１は、ＵＩ保持部３０９から印刷管理アプリケーション４２への文書入稿結果を示すユーザインタフェースを取得し、通信部３００を介してブラウザ２００にレスポンスとして返す。
【００８３】
［操作権限確認］
Ｓ２１０１において、アプリケーション連携モジュール４０内の処理制御部３０１は、処理制御部３０１は、ユーザＡの文書への操作権限に応じて、文書情報を印刷管理アプリケーション４２に入稿して良いか否かを確認する。本実施形態における操作権限の確認処理は、第一の実施形態における操作権限確認処理（図１２）と同じである。以下、本実施形態にあわせて、図３、図１０（ｂ）、及び図１２を用いて操作権限確認処理の流れについて詳細に説明する。
【００８４】
Ｓ１５０１において、処理制御部３０１は、オブジェクト情報管理部３０５よりユーザＡが選択した文書に対応するオブジェクト情報を取得する。具体的には、ユーザＡのその文書に対する操作権限（操作カテゴリ）を取得することになる。続いて、Ｓ１５０２において、処理制御部３０１は、Ｓ２００２により取得した処理に従い、文書情報を入稿する際に呼び出す印刷管理アプリケーション４２のインタフェースの定義をアプリケーション情報保持部３０７から取得する。図１０（ｂ）は、印刷管理アプリケーション４２のインタフェース情報を定義したファイル（８００）の一例である。インタフェース情報の定義ファイルは第一の実施形態と同じであるため、詳細は省略する。
【００８５】
続いて、Ｓ１５０３において、Ｓ１５０２により印刷管理アプリケーション４２のインタフェース定義を取得したら、処理制御部３０１は、文書情報を入稿する際に呼び出されるインタフェースの処理内容を定義する操作カテゴリを確認する。本実施形態においては、印刷管理アプリケーション４２が提供するインタフェース“ＰｕｔＤｏｃｕｍｅｎｔ”（８０１）の処理内容として宣言された“ＵＰＬＯＡＤ”、“ＰＲＩＮＴ”（８０２）が操作カテゴリとして取得される。続いて、Ｓ１５０４において、処理制御部３０１は、アクセス権判定部３０８に依頼し、Ｓ１５０１により取得したユーザＡの文書に対する操作権限と、Ｓ１５０３により取得した印刷管理アプリケーション４２のインタフェースに定義された操作カテゴリを比較する。比較処理に関しては、第一の実施形態と同じであるため、詳細は省略する。続いて、Ｓ１５０５において、アクセス権判定部３０８がＳ１５０４によりユーザＡの文書に対する操作権限と印刷管理アプリケーション４２のインタフェースに定義された操作カテゴリの比較結果を、処理制御部３０１に通知する。
【００８６】
本実施形態により、複数のアプリケーションが一連の処理の中で連携する場合においても、アプリケーションから取得したオブジェクトに対して、他のアプリケーションがユーザの操作権限を把握するための処理を個別に実装する必要が無い。これによって、アプリケーション間の相互依存性を排除することができる。また、アプリケーションが提供するインタフェースを呼び出す前に、オブジェクトに対する処理を実行して良いか否かを判定できるため、不要なネットワーク通信、処理の実行などを回避することができる。
【００８７】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011076550.tif 000003
【図２】
2011076550.tif 000004
【図３】
2011076550.tif 000005
【図４】
2011076550.tif 000006
【図５】
2011076550.tif 000007
【図６】
2011076550.tif 000008
【図７】
2011076550.tif 000009
【図８】
2011076550.tif 000010
【図９】
2011076550.tif 000011
【図１０】
2011076550.tif 000012
【図１１】
2011076550.tif 000013
【図１２】
2011076550.tif 000014
【図１３】
2011076550.tif 000015
【図１４】
2011076550.tif 000016
【図１５】
2011076550.tif 000017