JP4725955B2 - 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体 - Google Patents

情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体 Download PDF

Info

Publication number
JP4725955B2
JP4725955B2 JP2005191091A JP2005191091A JP4725955B2 JP 4725955 B2 JP4725955 B2 JP 4725955B2 JP 2005191091 A JP2005191091 A JP 2005191091A JP 2005191091 A JP2005191091 A JP 2005191091A JP 4725955 B2 JP4725955 B2 JP 4725955B2
Authority
JP
Japan
Prior art keywords
message
information processing
processing apparatus
identification value
destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005191091A
Other languages
English (en)
Other versions
JP2007011650A (ja
Inventor
由樹 石橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2005191091A priority Critical patent/JP4725955B2/ja
Priority to US11/477,672 priority patent/US9037744B2/en
Publication of JP2007011650A publication Critical patent/JP2007011650A/ja
Application granted granted Critical
Publication of JP4725955B2 publication Critical patent/JP4725955B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置におけるメッセージ管理に関し、より詳細には、オペレーション・システムによるメッセージを複数のアプリケーション・プログラムに対して使用させることにより、アプリケーション・プログラムとオペレーション・システムとの間の効率的な通信を可能とする情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体に関する。
近年の情報処理装置は、複数のアプリケーション・プログラムがインストールされ、オペレーション・システム(以下、OSとして参照する。)の管理下で、各アプリケーション・プログラム(以下、単にアプリとして参照する。)がメモリ、ハードディスク、入出力端末、ディスプレイ装置などを共有している。また、情報処理装置は、所定のアプリが単独で、または、複数の同一のアプリまたは異なるアプリが同時に実行される、マルチタスクまたはマルチジョブ環境とされている。
上述した情報処理装置の処理パフォーマンス向上、およびプログラミング言語の発展に伴って、パーソナル・コンピュータといった情報処理装置であっても、OSとアプリとの間が、プロセス間通信により通信され、アプリ間でのデータ共有および同期などの実行制御が行われるようになってきている。通常、OSによるプロセス間通信は、プロセスに固有のプロセス識別値(PID)を所定のプロセスが開始される時点で割当て、プロセスが消滅するまでPIDを保存することにより行われている。多くの場合、OS管理下でOSが発行するメッセージは、ソケット通信などを使用し、所定のポートを宛先として送信され、OS上で、またはリモート装置上で動作する他のアプリが受信することができる。
しかしながら、個々のアプリ特有のメッセージに関しては、個々のアプリの内部でしか処理できず、またOS側は、特定のアプリからの要求に対応してプロセス間通信に対応するOSメッセージを、要求元のアプリに対して送信することは可能ではある。このとき、要求元のアプリが、OSからのメッセージを直接解釈し実行できる場合には、受け取ったOSからのメッセージを実行可能コードに直接コンバートして処理を行うことができる。この場合にでも、アプリの提供元は、個々のアプリのモジュールとしてコンバート処理を行うオブジェクトを追加する作業が必要とされ、OSの対応するメッセージが変更されるごとに個々のアプリのAPIなどを修正しなければならないという労力が発生する。
一方では、当該OSメッセージを要求している他のアプリがあった場合でも、OSメッセージの宛先が異なるため、宛先アプリ以外のアプリは、プロセス間通信により送られるTCP/IPパケットまたはUDP/IPパケットを受け取ることができない。この結果、当該OSメッセージを受け取ることができれば効率的に処理を実行することができるアプリであっても、アプリ側でOSメッセージを改めて要求しない限り、当該アプリには、OSメッセージが配布されない。
この結果、OSメッセージの直接的な宛先とされるアプリであっても、アプリの実行タイミングによっては、OSに対する問い合わせを繰り返し行い、また問い合わせに対する応答を待ち続けることになり、必ずしも効率的な処理とはいえない。また、アプリによっては、直接的にOSに問い合わせを行うのではなく、特定のアプリに対して問い合わせを行うことしかできない場合もある。このような場合、特定のアプリだけはOSからのメッセージを受け取って対応する処理を行うことが可能である。しかしながら、特定のアプリがユーティリティ・ソフトウェア、データベース・ソフトウェア、または文書管理ソフトウェアなどに対して対応する通知を実行・解釈可能なコードとして発行することは保証されてはいない。したがって、ユーティリティ・ソフトウェアなどのアプリのユーザは、情報処理装置のハングアップなどの現象と区別ができず、それまで作成したデータを破棄して情報処理装置の再起動を行わざるを得ないことが生じる。
上述した状況は、近年、オブジェクト指向プログラミング技術の進歩に伴い、複数のアプリがそれぞれのスコープの下でデータを処理し、その結果を格納する処理を実行する情報処理装置では、頻繁に発生するようになる。このため、複数のアプリが共有メモリを使用して実行される場合や、共有ハードウェア資源を介して処理を行うことが多く、OSからのメッセージをより有効に利用することが好ましい。
また、上述した問題点に対処するために、ミドルウェアやユーティリティ・ツールを提供するアプリごとにAPIを形成させることでも対応することが可能である。しかしながら、パーソナル・コンピュータなど、ユーザの指向に応答して不特定のアプリがインストールされる可能性がある状況では、当該不特定多数のアプリに対応して、それらの間のプロセス間通信を調停することは、多くの場合不可能であるといってよい。
情報処理において複数のプロセスを調停させる方法として、例えば、特開平8−63354号公報(特許文献1)には、2つのメモリ保存領域へのアクセスを制御するために、それぞれに対応するインタフェースを設け、プロセッサによる命令フェッチやデータアクセス要求に際して、使用するインタフェースを選択することで、プロセス間を調停する情報処理装置が開示されている。特許文献1に記載された技術は、マイクロプロセッサからの要求を判断して、2つのメモリ保存領域にプロセッサからの要求を割り当てる2つのインタフェースを提供することで、プロセス間の調停を行っている。この場合、プロセッサとそのプロセッサに対する命令フェッチを制御するという限定された環境であれば、上述したように、アプリ・レベルで各アプリにそれぞれ対応するAPIを形成させることも、可能であるということができる。
しかしながら、複数のアプリに対応する固有の命令を含むAPIをアプリごとに形成させるのでは、アプリの開発側の労力が増加し、また情報処理装置における記憶領域に占めるAPIの割合が重くなり、効率的なものということはできない。また、ユーザにより新たなアプリが任意的に追加される環境では、各アプリに対してOSからのメッセージを受け取って処理を実行する機能をそれぞれについて追加することは、アプリの作成の手間を増加させることにもなり、またアプリによって対応処理が異なるのでは、ユーザも混乱することになる。
また、特開平5−233335号公報(特許文献2)では、複数のプロセスから複数の資源をアクセスする方式であって、各プロセスに対して使用する資源を自動的に割り当てる方式が開示されている。特許文献2では、資源獲得調停手段を使用し、各プロセスの資源に対応するアクセス権と占有権とを割り当てるようにして、FIFO方式でプロセスごとに資源を占有させている。
特許文献2に開示された方式によれば、アクセス権の先取り順にプロセスに対して資源を利用させることは可能となる。しかしながら、プロセスがアプリである場合に、アプリの情報処理装置内でのステータスに関連し、かつユーザ要求に応答した処理を可能としない場合には、ユーザは、アプリが待機しているのか、またハングアップしているのかがわからないことになる。この結果、ユーザが情報処理装置に対して他の処理を行うために、ユーザがリセット処理を実行することになると、それまでにユーザが作成した付加価値の高いデータを無駄にしてしまうことになる。
特開平8−63354号公報 特開平5−233335号公報
上述したように、種々の調停・管理方法が開示されているものの、調停の結果に応答し、アプリ側で解釈できるコマンドにOSメッセージをコンバートして、OSメッセージに対応する動作をアプリに対して実行させる方法については知られていない。また、アプリ側からの要求があった場合に、過去にOSが発行したOSメッセージを当該アプリ側に識別させ、使用可能とするメッセージ管理ができれば、OSと各アプリとの間のメッセージの共有化を行うことができ、より効率的にプロセス間通信を行うことが期待できる。
また、アプリ開発側およびユーザデータの保護の点からも、すでに発行されたOSからのメッセージを有効利用することが好ましい。
本発明は、プロセス間通信が主として設定されたポート間だけで行われることに着目し、宛先とされたプロセスだけではなく、同時に処理を行っているアプリやプロセスについても、すでに発行されたOSメッセージを有効に利用することができれば、よりプロセス間通信の効率および利用性を高めることができる、という着想の下になされたものである。
すなわち、本発明では、OS自体またはOSのシステム・コマンドにより発行されたメッセージを、宛先に拘わらず、かつ本来の宛先へのプロセス間通信を妨げることなく聴取またはスキャンして、キュー・リストに格納するメッセージ・ハンドラを形成する。キュー・リストに格納されたOSメッセージは、アプリが当該OSメッセージを要求しているか否かに応答してエントリ制御部においてアプリケーション側で実行可能なコードへと変換される。
変換されたアプリ側の実行可能なコードは、アプリへと送られて、アプリ側の処理のために使用され、またOSメッセージはメッセージ・ハンドラにより処理において、実行可能なコードへの変換の必要性または変換処理の終了に応答して、先入れ・先出し的に削除され、常にアプリケーション側の必要とするOSメッセージが最小限に格納された状態とされている。このため、本発明では、OSが過去に発行したメッセージを、当該メッセージを要求したプロセス以外のプロセスに対して共有させることができる。
すなわち、本発明によれば、
オペレーティング・システムの制御の下で少なくとも1つのアプリケーション・プログラムを実行する情報処理装置であって、前記情報処理装置は、
前記オペレーティング・システムのシステム・コマンドが発行したメッセージを、聴取またはスキャンすることにより前記メッセージの本来の宛先への通信を維持させながら取得し、前記メッセージが発行されるごとに発行元およびメッセージの内容をキュー・リストに登録するメッセージ監視部と、
前記オペレーティング・システムが発行した前記メッセージの発行元を識別する発行元識別値と、前記発行元のメッセージを要求するアプリケーション・プログラムの宛先として使用される送信元識別値とを格納するエントリ・テーブルを含む記憶部と、
前記メッセージ監視部から前記発行元識別値を受け取って前記記憶部の前記エントリ・テーブルを検索し、システム・コマンドのメッセージを待機する前記アプリケーション・プログラムが検索された場合、当該アプリケーション・プログラムの送信元識別値を宛先として設定し、OSプロセス識別値と、メッセージと、前記メッセージに対応するため前記アプリケーション・プログラムが実行可能なコードを対応づけた変換テーブルを使用して前記メッセージに対応する前記コードを取得するエントリ制御部と
を含む、情報処理装置が提供される。
本発明の前記メッセージ監視部は、前記エントリ制御部による前記アプリケーション・プログラムの検索結果に応答して、前記メッセージを前記キュー・リストから削除することができる。
本発明の前記記憶部は、少なくとも前記発行元識別値および前記アプリケーション・プログラムの宛先を暗号化して格納し、前記エントリ制御部は、前記暗号化された前記発行元識別値および前記送信元識別値を復号して前記アプリケーション・プログラムの宛先を取得することができる。
本発明では、前記記憶部の検索において、前記発行元識別値は、ウェルノウン・ポート番号または実行ファイル名で指定され、前記宛先は、レジスタード・ポート番号、ダイナミック・プライベート・ポート番号から選択されるか、または前記エントリ・テーブルにプロセス側名称とアプリケーション側名称とを対応付けるリストを格納して前記発行元識別値と、前記アプリケーション・プログラムとの対応付けを行うことができる。本発明の前記メッセージ監視部は、前記システム・コマンドが発行した前記メッセージの宛先への通信を妨げることなく聴取またはスキャンすることができる。
本発明の第2の構成によれば、オペレーティング・システムの下で少なくとも1つのアプリケーション・プログラムを実行させる情報処理装置におけるメッセージ管理方法であって、前記メッセージ管理方法は、前記情報処理装置が、
メッセージ監視部が前記オペレーティング・システムのシステム・コマンドが発行したメッセージを、聴取またはスキャンすることにより前記メッセージの本来の宛先への通信を維持させながら取得し、前記メッセージが発行されるごとに発行元およびメッセージの内容をキュー・リストに登録するステップと、
エントリ制御部が前記オペレーティング・システムが発行した前記メッセージの発行元を識別する発行元識別値と、前記発行元のメッセージを要求するアプリケーション・プログラムの宛先として使用される送信元識別値とを格納するエントリ・テーブルを更新するステップと、
前記エントリ制御部が前記メッセージ監視部から前記発行元識別値を受け取って記憶部の前記エントリ・テーブルを検索し、システム・コマンドのメッセージを待機する前記アプリケーション・プログラムが検索された場合、当該アプリケーション・プログラムの送信元識別値を宛先として設定し、OSプロセス識別値と、メッセージと、前記メッセージに対応するため前記アプリケーション・プログラムが実行可能なコードを対応づけた変換テーブルを使用して前記メッセージに対応する前記コードを取得するステップと
を前記情報処理装置に実行させる、メッセージ管理方法が提供される。
本発明の前記メッセージ管理方法は、前記情報処理装置に対して、前記エントリ・テーブルの検索結果に応答して、保持された前記メッセージを先入れ・先出し処理により削除するステップを実行させることができる。
本発明の前記メッセージ管理方法は、前記情報処理装置に対して、少なくとも前記発行元識別値および前記アプリケーション・プログラムの宛先を暗号化して格納するステップと、前記エントリ・テーブルの検索ステップの前に前記暗号化された前記発行元識別値およびアプリケーション・プログラムの宛先を復号するステップとを含むことができる。
本発明の第3の構成によれば、上記記載のメッセージ管理方法を情報処理装置に対して実行させる装置実行可能なプログラムを提供することができる。
本発明の第4の構成によれば、上記プログラムを格納した装置可読な記憶媒体が提供できる。
本発明によれば、任意にインストールまたはアンインストールされ、また独立して起動・終了するアプリの間において、OSメッセージを共有させることができれば、見かけ上のハングアップなどによるデータの損失などを防止することができ、アプリの利用性を高めると共に、データ作成効率を向上させることができる。
また、本発明によれば、不特定多数のアプリが使用される情報処理装置であっても、個別的にAPIを形成させること無く、変換のためのコンバートデータだけを変更するだけで複数のアプリについてOSメッセージを共有させることができ、効率的なアプリ利用を行うことができる。
さらに、本発明によれば、よりプロセス間通信の効率を高め、プロセス間通信の拡張性を向上させ、さらに、異なるアプリケーション間での共通のI/Fを介した処理を無駄なく実行することができる。
さらに、本発明によれば、不特定多数のアプリに対応するためにAPIを形成するのではなく、変換テーブルに対応する実行可能コードのエントリを追加するだけで済み、プログラミングにおける作業量を低減させることができ、アプリ開発側において、容易にプログラムの追加に対応することが可能となる。
以下、本発明を図面に示した特定の実施の形態をもって説明するが、本発明は、後述する実施の形態に限定されるものではない。
図1は、本発明の情報処理装置10の構成を示した概略図である。図1に示す情報処理装置10は、MPU12と、RAM14と、ROM14を含んでいて、オペレーティング・システムの制御下で、少なくとも1つのアプリを実行させている。MPU12は、例えば、PENTIUM(登録商標)ファミリ、64ビット・アーキテクチャのXEON(登録商標)、POWERPC(登録商標)などのCISCまたはRISCアーキテクチャの下で、Windows(登録商標)、Windows(登録商標)2000、Windows(登録商標)2000 Professional、Windows(登録商標)XP、Windows(登録商標)XP SP2、Windows(登録商標)XP Professional、Windows(登録商標)200X Server、Windows (登録商標)CEなどのオペレーティング・システム(OS)を実行している。
MPU12は、オブジェクト指向プログラミングの実行を可能とする資源を使用して、例えば、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perlなどのオブジェクト指向プログラムが実行可能とされている。OSは、種々のシステム・コールまたはシステム・コマンドを使用して、オブジェクト指向プログラムのプロセスを調停しており、同時にハードウェア資源の共有化およびデータの共有化を可能としている。
RAM14は、MPU12によるオブジェクト指向プログラムの実行に伴って生成されるインスタンスを提供する実行空間を提供しており、MPU12による処理を可能としている。さらに、ROM14は、BIOS(Basic Input Output System)などのマイクロ・コードやデータなどを格納していて、情報処理装置10の起動に際してOSの起動に先立って、情報処理装置の検査を行い、また起動後の入出力装置の管理を実行する。
情報処理装置10には、USBやIEEE1284などのシリアルまたはパラレル・バスを介してキーボード、マウス、またはプリンタなどの入出力装置16に接続されており、適切なインタフェース18を介してMPU12へとユーザ入力を渡している。また、情報処理装置10には、ATA、シリアルATA、ウルトラATA、ATAPIなどの規格のIDE、またはSCSI、SCSI-2、SCSI-3といったインタフェース20を介して、記憶装置22が接続されている。記憶装置22は、ハードディスク装置または半導体メモリ装置などから選択することができ、情報処理装置10に内蔵されていてもよく、またカード型ハードディスクや、随時読み書き可能な半導体メモリとされていてもよい。
MPU12は、ユーザからの指令に基づき、実行形式のプログラムを読み出して実行し、その実行結果を、内部バス24を介してRAM14や記憶装置22へと書き込みを行い、また記憶装置22に格納されたデータを取得して処理に使用している。図1に示した情報処理装置10は、内部バス24を介してVRAM26およびグラフィック・チップ28と通信し、処理の結果などを適切なGUI(Graphical User Interface)を介してユーザに提供している。情報処理装置10は、内部バス24を介してイーサネット(登録商標)などのネットワーク・インタフェース32と通信して、LAN(Local Area Network)、WAN(Wide Area Network)またはインターネットといったネットワーク34と接続されて、Webサーバなどとの通信を可能としている。
図2は、本発明における情報処理装置10のソフトウェア構成を示した図である。図2(a)は、複数のアプリがOSとプロセス間通信により通信を行って、処理しているのが示されている。図2(a)に示した形態では、アプリ44aは、OS42と直接通信しており、プロセス間通信によるトランザクションが確立されていて、例えば、BIOSまたはデバイス・ドライバにより管理される記憶装置、通信装置などとの通信結果、または、OSにおける処理結果の送受信を行っている。また、アプリ44b、44cについてもOS42との間でプロセス通信を行っている。
図2(a)に示した特定の形態では、アプリ44b、44cは、例えばワープロソフトウェア、または表計算ソフトウェア、またはデータベースなどとプロセス間通信を行うことは可能であるものの、直接OSとの間のプロセス間通信が可能とされていない。また、別の形態では、アプリ44b、44cは、さらに別のアプリとの間でのプロセス間通信を確立させているものの、OSに対してプロセス間通信を行っていない状態とされている。このような場合、OSがアプリ44aに宛ててディスパッチしたOSメッセージ(以下、osmとして参照する。)は、アプリ44bおよびアプリ44cには宛てられていないため、アプリ44bおよびアプリ44cを素通りしてしまうことになる。
このとき、アプリ44aに送られたosmが、例えば、(1)ネットワークI/Fが使用できないこと、(2)着脱自在の外部記憶装置が使用できないこと、その他、(3)アプリ44aだけではなく、アプリ44b、44cが共用するハードウェア資源またはプロセスへとアクセスするための特定プロセスが生成されていないこと、または異常があることなど、重大な問題を示す場合であっても、アプリ44aだけは、その結果を受け取ることができる。しかし、アプリ44b、44cは、アプリ44aへと通知されたosmを受け取ることができないので、通知を受けないのでアプリ44b、44cがその時点以後に対応するOSプロセスまたはデバイスを要求した場合、アプリ44b、44cは、要求するプロセスに対応するosmの受信を待つことになる。
この間、タイムアウトを設定して、アプリ44b、44cの実行を制御することも想定できる。しかしながら、タイムアウトの経過を待つ間ユーザは、情報処理装置10のハングアップなのか、タイムアウト経過を待機しているだけなのかはわからず、ユーザによっては、情報処理装置をリセットする可能性もある。また、OS側に繰り返し問い合わせを行い、対応するosmを取得することでも対応することができるが、OSへの割込が頻繁に行われることになり、またすべてのアプリが当該処理を実行することができるわけではない。このとき、すでに対応するosmが発行されている場合には、当該osmを一旦管理しておき、アプリ44b、44cに利用させることで、アプリ44b、44cの処理効率を向上させることができる。
図2(b)は、本発明のソフトウェア構成を示す。本発明では、アプリ44b、44cとOS42との間にメッセージ・ハンドラ46をアプリ44b、44cとOSの間に形成させる。メッセージ・ハンドラ46は、アプリ44aに宛てて発行されたosmを妨げることなく、OSのプロセス間通信をモニタして、osm自体またはシステム・コマンドに対応して発行されたメッセージを格納させるか、またはリストとして蓄積する。一方、メッセージ・ハンドラ46は、その時点でosmに関連した処理を実行する可能性のあるアプリ、またはすでにOSによる処理を依頼したアプリのリストを管理している。メッセージ・ハンドラ46は、リストに登録されたosmに関連するアプリがメッセージ・ハンドラ46が管理するエントリ・テーブルに登録されているか否かを検索する。
検索の結果、登録されている場合にはosmの内容に関連するアプリの理解可能なメッセージ(以下applmとして参照する。)を、osmからコンバートして生成する。その後、エントリ・テーブルに格納されたポート番号またはアプリ名称などのアプリ識別値を取得して各アプリに対して、適切な優先順位、例えば、アプリの先着順にapplmをプロセス間通信により伝送する。この結果、アプリ44b、44cは、アプリの処理できるフォーマットとしてapplmを受信する。このため、各アプリ44b、44cは、直接OSと通信せずとも、osmに対応するアプリ側の処理を実行し、例えば、ユーザに対してアプリの状態を通知する、またはアプリの状態に対応した処理、例えばデータのバックアップ処理などを行なうことができる。
図3は、本発明のメッセージ・ハンドラ46の機能ブロック図である。本発明のメッセージ・ハンドラ46は、メッセージ監視部48と、エントリ制御部50と、配布先・メッセージ格納部52とから構成されている。メッセージ監視部48は、OSの通信状態を、本来の宛先への通信を妨げることなく聴取またはスキャンするオブジェクトを含む構成とされる。図3に示した実施の形態では、OS42は発行したosmは、本来の宛先および本発明のメッセージ・ハンドラ46へと送られるか、またはメッセージ・ハンドラ46が本来の宛先とされるように、メッセージ・ハンドラ46がアクティブにosmを生成させる。
本発明でメッセージ監視部を構成するためのオブジェクトは、種々あり得るが、具体的には、例えば、本発明のメッセージ・ハンドラ46をパッシブ駆動する場合には、メッセージ・ハンドラ46に対してプロミスキャス・モードでのソケットを形成し、すべてのプロセス間通信を、プロセス間通信が伝送されることに応答して傍受させるオブジェクトとすることができる。このようなオブジェクトは、例えば、RAWソケットを使用するオブジェクトとして作成することができ、メッセージ監視部48が機能している期間中、closeさせないコードとして実装させることができる。
また、本発明の他の実施の形態では、特定のosmをシステム・コマンドの返り値として生成することができる。この場合、osmは、OSのプロセス間通信により直接発生されるものではないが、プロセス間通信の状態を示すOSからのメッセージを発生させるシステム・コマンドを使用して、メッセージ・ハンドラ46がアクティブにOSのメッセージ伝送状態に関連するメッセージを生成することができる。このためのシステム・コマンドとしては例えば、プロセス間通信の状態を検出するシステム・コマンドである、netstat-x(-xは、オプションであり、-aは、TCPおよびUDPのプロトコルで通信を行うプロセス間通信をモニタするオプションである。)を挙げることができる。本発明のメッセージ・ハンドラ46の第2の実施の形態では、本発明のメッセージ監視部は、netstatコマンドを含むオブジェクトとして生成し、OS側に割り当てられているウェルノウン・ポートに関連する状態を回収することによっても作成することができる。なお、netstat-Xコマンドにより生成されるメッセージは、メッセージ・ハンドラを直接的な宛先として生成されるので、パッシブ・モードでosmを傍受する場合と同様、プロセス間通信の本来の宛先に対する通信を妨げることはない。
なお、-xの値としては、−a、−b、−e、−n、−p、−r、−s、−o、−vなどがあり、−aオプションを使用することにより、その時点で待機中のプロセスをosmとしてOSから返させることができる。また、メッセージ監視部におけるメッセージ監視オブジェクトに対して、定期的にメッセージをモニタさせる場合には、例えば、「netstat-a 1」のコードを記述しておくことにより、メッセージ監視部の起動後、1秒ごとに定期的にプロセス通信の状態を返す処理を実現することができる。なお、本発明において、定期的なメッセージのモニタのための時間間隔は、適宜設定することができる。
上述した構成のメッセージ監視部を使用することにより、プロセス間通信の状態をプロセスが発行したosmの宛先に関係なくモニタすることが可能となる。本発明では、メッセージ監視部48は、OSが発行したosmを回収するか、またはプロセス間通信の状態をモニタする場合には、netstat-xの返り値を、先入れ・先出しリストを定義するqueue ()に登録することによって、キュー・リストを作成して、RAMなどの適切な格納領域に格納する。
配布先・メッセージ格納部52は、その時点で少なくともosmを要求しているか、または他の実施の形態では、要求する可能性のあるアプリを格納したエントリ・テーブルを含む記憶部として構成されている。エントリ制御部50は、キュー・リストに格納されているosmに対応するアプリを配布先・メッセージ格納部52対して問い合わせ、osmを待機している、または要求する可能性のあるアプリを検索する。エントリ制御部50は、検索されたアプリの宛先を取得し、またosmに対応するアプリ側の実行可能なコードapplmを、変換テーブルをルックアップして取得する。その後、エントリ制御部50は、取得したアプリの宛先と実行可能なコードapplmとを引数として含むメッセージを、メッセージ監視部48へと通知する。
本発明の特定の実施の形態では、通知を受け取ったメッセージ監視部48は、通知された宛先およびapplmを、例えばsocket ()コマンドまたはこれに互換性のある指令、たとえばwinsockまたはwinsock2を使用してパケットとしてカプセル化する。メッセージ監視部48は、カプセル化されたパケットは、TCP/IPまたはUDP/IPプロトコルを使用したプロセス間通信により、Appl-B、Appl-C、Appl-Dなど、エントリ制御部50が検索した結果osmを必要とするか、または必要とする可能性があると判断したアプリ44b〜44dへと通知する。なお、本発明では、上述した検索機能および変換機能は、必ずしもエントリ制御部50に構成される必要はなく、メッセージ監視部48や、配布先・メッセージ格納部52の機能として実装することができる。
図4は、本発明のメッセージ・ハンドラを構成するメッセージ監視部の処理を示すフローチャートである。本発明のメッセージ・ハンドラは、本発明の特定の実施の形態では、システム・メモリに常駐するサービス、またはdaemonソフトウェアとして構成することができ、OSの起動と共に処理を開始することができる。しかしながら、本発明の特定の実施の形態では、OSの起動時から一定のディレイを持たせてメッセージ・ハンドラを起動させることで、起動時直後のプロセス通信の混雑を回避させてもよい。また、本発明の他の実施の形態では、メッセージ監視部は、ユーザによりアイコンクリックなどによる明示的な指令に応答して起動した時点から処理を開始する構成とすることもできる。
図4に従って、本発明のメッセージ監視部の処理を説明すると、ステップ400で、OSの起動に応答してまたはユーザ指令によりメッセージ・ハンドラが起動されると、ステップ401でosmの監視を開始し、osmが発行されるごとに、ステップ402でqueue ()にエントリさせ、先入れ・先出し方式でosmを管理する。
ステップ402でqueue ()のエントリがnullでなくなると、ステップ403の処理を実行して、osm待ちのアプリの検索をエントリ制御部に依頼する。ステップ404では、エントリ制御部から、osmを待機しているアプリがあることの通知を受け取るか否かを判断し、通知がない場合(no)には、ステップ408でosmを破棄してステップ401へと処理を戻し、さらに後続するosmを待機する。
ステップ404で、osmを待機しているアプリがあることが通知された場合(yes)には、ステップ405で通知に含まれるアプリの宛先と、アプリが実行可能なコードとを取得し、通信パケットを、socket ()またはwinsockまたはwinsock2での互換性のあるコマンドを使用して作成する。その後、ステップ406では、メッセージ監視部の通信機能を使用して対応するアプリへと実行可能なコードapplmを送付する。通信機能は、本発明に特定の実施の形態としてJava(登録商標)で作成する場合には、ソケット・プログラミング技術を使用するコードとして実装することができる。
本発明のソケット・プログラミングのコードの処理を概略的に説明すると、情報処理装置に対応するIPアドレスなどの32ビットで指定される宛先アドレスおよび宛先ポート番号を使用してソケットを定義し、アプリ側に送信するメッセージであるapplmをバイトコードとして取得する。取得したバイトコードを、送信データとして例えばOutputStreamクラスに記述して送信を待機させる。その後、ソケットのコネクションを確立させ、確立させたソケットを通して宛先ポートに書き込みを行うことにより、対応するアプリに対してosmに対応するアプリの実行可能なコードであるapplmの送信が行なわれる。その後、当該コードは、ソケットをクローズし、処理を終了させる。
一方、メッセージ監視部では、後述するエントリ制御部から、applm、宛先(アプリの割り当てられるポート番号など)を含む、例えばメッセージ「applmsend」を受け取り、下記のコードを使用して「applmsend」メッセージからapplmおよび宛先を、文字列またはバイトコードとして取得する。その後、コードは、生成したソケットをクローズして、エントリ処理部による「applmsend」メッセージを取得する処理が終了する。
なお、本発明では送受信されるメッセージapplmsendは、固定長でも可変長でもよい。メッセージ監視部は、取得したメッセージを保持したバッファapplmRcvdbuffer内の値を解析して、applmおよび宛先を取得し、上述したソケット・コネクションを確立させるコードを用いて、対応するアプリに対してapplmを送付する。
図5は、図4のステップ402において生成される先入れ・先出しキュー・リストの構成を示した実施の形態である。図5に示すように、メッセージ監視部が生成し、管理するキュー・リスト54は、待ち準位を示すQUEIDを格納するフィールドと、osmの全部の情報をエントリしたフィールドとから構成されている。osmフィールド58は、本発明の特定の実施の形態では、osmの発行された日付、時間、プロトコル、ローカル・ポート番号(以下、本発明では、OSプロセス識別値(Piden)として参照する。)、例えば、0.0.0.0、127.0.0.1(ローカル・ループバック・アドレス)、または情報処理装置自体のIPアドレスなどから適宜選択される、ローカルIPアドレス、リモート(宛先)ポート番号、PID、ステータスなどが記述されている。
なお、本発明においてはポート番号を使用するのではなく、実行ファイル名をOSから返させ、実行ファイル名に基づいてキュー・リストに登録し、後に説明するエントリ・テーブルおよび変換テーブルの処理に使用することができる。
図5に示したキュー・リストに登録されたosmは、待ち順番が小さい方から順に処理されて行く。osmは、キュー・リスト内のosmに対応する処理が終了するか、または対応するosmがどのアプリからも要求されていない場合には、削除され、再度新たなosmが登録されるのを待機する。このため、キュー・リストは、適切な数のosmを管理して、検索の効率化を可能としている。
図6は、本発明のメッセージ・ハンドラが含む、エントリ制御部が実行する処理のフローチャートである。エントリ制御部は、ステップ701でOS起動時に応答して、またはユーザ指令によりメッセージ・ハンドラが起動された時点で処理を開始し、ステップ702でメッセージ監視部からの通知があるか否かを判断し、メッセージ監視部からのosmを含むエントリ・テーブルの検索要求メッセージであるget_queryメッセージがあれば(yes)、ステップ703へと処理を進め、get_queryメッセージを受け取るまでステップ702で待機する。
ステップ703では、通知されたosmを待機しているアプリが、配布先・メッセージ格納部に格納されているか否かの検索を実行して、その返り値を取得する。ステップ704では、エントリ制御部は、受け取った返り値を使用し、osmを待機しているアプリがエントリされているか否かを判断する。判断の結果、待機しているアプリがないことを示す返り値の場合(no)には、ステップ708へと処理を進め、メッセージ監視部へと待機しているアプリが無いことを示すreplyを返し、ステップ702へと処理を戻し、その後のget_queryの通知を待機する。
また、待機しているアプリがある場合(yes)には、ステップ705で変換テーブルをルックアップしてget_queryから取得したosmをアプリが実行可能なコード(applm)に対応付け、ステップ706でメッセージ監視部にapplmおよびアプリの宛先を通知する。なお、これらの通知についてもプロセス間通信により行うことができ、エントリ制御部では、例えば、ソケット「applmsend」を定義し、上述したのと同様のソケットを作成し、applmおよび宛先をバイトコードとして、メッセージ監視部に送信する。
図7は、本発明のメッセージ監視部が利用し、エントリ制御部が含むステップ705で参照する変換テーブルの実施の形態を示す。図7に示すように本発明で使用する変換テーブル60は、OSプロセス識別値を登録するフィールド62と、当該OSプロセス識別値に対応して生成され、アプリ側で関連する状態を示すフィールド64と、アプリ側が実行できる実行可能なコードをリストしたフィールド66とが形成されている。例えば、Piden1は、外部記憶装置を管理するプロセスのポート番号または実行ファイル名を直接的に使用することができる。対応するosmとしては、プロミスキャス・モードで受信している場合には、本来の宛先プロセスに宛てた内容となっており、また、netstatを使用した場合には、closed、listening、syn_sent、syn_received、established、fin_wait_1、fin_wait_2、last_ackなどを挙げることができるが、本発明ではこれらに限定されるものではない。
また、Piden2は、プロセス状態を示すosmではなく、実際のOSプロセスの実行コマンドの値が対応付けられており、本発明では、いずれの実施の形態でも、osmから取得でき、アプリに関連するOS側の実行状態を示す値であればいかなるものでも使用することができる。
Piden1についてより具体的に説明すると、例えば、osmがestablished、listening、syn_sent、last_ackの場合には、他のアプリまたはプロセスがポートを占有していることを示しているか、または何らかの機能不全が発生し、対応するosmに対する応答がなされない場合がある。このため、それぞれに対応してアプリ側で実行可能なコードがフィールド66に登録されている。いずれの場合にもメッセージ内容とアプリが実行可能なコードとが対応づけられている限り、本発明において特定の実施の形態に限定されるものではない。
さらに、図7に示すように、本発明の変換テーブル60は、フィールド66には、osmに対応した処理をアプリ側が実行可能なコードが記述されている。例えば、osmが「listening」の場合には、対応するapplmとして待機中であることを表示させる実行可能なコードを示す「display “wait”」が記述されている。また、osmがプロセス間通信の確立を示す「established」の場合であって、当該アプリの仕様に応じて、他の処理を先行して実行させることができる場合には、次の処理を実行させるべくcall function ()などのコマンドとされている。
さらに、例えば、osmが「syn_sent」の場合には、OS側の対応プロセスがメッセージを送った後、その応答を待っている状態なので、以後の占有時間が予測できず、また最悪の場合には対応するプロセスまたはデバイスが使用不能の状態に陥っている可能性がある。このため、図7の実施の形態では、対応するアプリ側の実行可能なコードとして、処理を一旦中断または終了させ、データなどを退避させる処理を指令するcall close ()などが対応して登録されている。なお、本発明では、どのようなOSプロセスの状態についてもアプリ側の処理が同一である場合には、osmと実行可能なコードとの対応を必要とせず、変換テーブル60は、OSプロセス識別値とapplmとが対応した実施の形態とすることができる。
図8は、本発明のメッセージ・ハンドラの処理をUML(Unified Modeling Language)を使用して記述し、各オブジェクトのインスタンスの処理を示した図である。メッセージ監視オブジェクトは、OSが起動されたことに応答してそのインスタンスを生成し、osmの発生に応答して、または定期的に継続してメッセージの監視を行っており、メッセージがモニタされるごとにキュー・リストに追加している。その後、キュー・リストに格納されたosmについてのメッセージ配布オブジェクトのインスタンスが生成され、エントリ検索・読出しメッセージをエントリ制御部に渡す。
エントリ制御オブジェクトでは、エントリ検索・読出しメッセージを受け取って検索オブジェクトのインスタンスを生成し、配布先・メッセージ格納部への照会およびメッセージ・コンバートを実行し、その結果をメッセージ配布インスタンスへと渡す。メッセージ配布インスタンスは、受信した結果から、applmおよび宛先を取得し、新たなソケットを定義し、配布先であるアプリに通信する。メッセージ配布インスタンスは、アプリ側からの適切なフォーマットで記述された受信完了通知close_ackを受けて終了し、アプリに対して当該OSプロセスの状況に対応する処理を可能としている。また、メッセージ配布インスタンスは、送信するべきパケットを送信終了したときに、アプリからの通知を待たずに終了してもよい。
さらに、本発明の特定の実施の形態では、メッセージ配布のインスタンスからのメッセージを受け取ると、検索オブジェクトは、復号オブジェクトのインスタンスを生成させて、復号処理を実行させる。エントリ・テーブル内には、システムおよびアプリ側のコードが格納されており、不正なアクセルから各実行コードを秘匿しておくことが好ましい場合も生じる。本発明のエントリ制御部は、暗号化・復号処理を実行する暗号オブジェクトを含み、エントリ・テーブル内の選択したデータまたは全部のデータを、暗号化して格納させておき、必要に応じて復号オブジェクトのインスタンスを作成し、エントリ・テーブル内のデータを復号しながら検索を実行することができる。
以下、本発明において使用するエントリ・テーブルについて、図9〜図11を使用して説明する。図9は、本発明のエントリ制御部が管理する、メモリまたはハードディスクなどの記憶部において管理される、配布先・メッセージ格納部が含むエントリ・テーブルの第1の実施の形態を示した図である。図9に示したエントリ・テーブル70は、アプリからのOSメッセージ要求があった場合にエントリ・テーブルにアプリが動的に登録される。アプリの登録は、特に限定されるものではないが、アプリは何らかの処理を実行して待機している状態なので先着順に登録され、処理が終了するとエントリから削除される、待ち行列または先入れ・先出し処理を行うキューとして構成することができる。
図9に示されるように、エントリ・テーブル70には、アプリ側でOSメッセージを待機しているプロセスをエントリしたフィールド72と、待機側のプロセスが要求するOSプロセス識別値をエントリしたフィールド74と、送信元識別値(例えば、待機プロセスのポート番号)をエントリしたフィールド76とを備えており、対応する待機プロセスについて、要求OSプロセスと送信元識別値とがレコードを形成している。
エントリ制御部は、メッセージ監視部から、メッセージ配布インスタンスのアクセスを受けると、先入れ順にエントリを検索して行き、対応する要求OSプロセスを待機している待機プロセスに対して、先着順にメッセージをコンバートする。エントリ制御部は、送信元識別値と共にコンバート結果をapplmBufferなどにバッファリングしておき、問い合わせを受けたOSMを待機しているすべての待機プロセスについてapplmの変換を終了すると、結果を格納したapplmBufferの内容を送信データとしてカプセル化してメッセージ配布インスタンスに返している。また、エントリ制御部は、対応する待機プロセスの処理済みレコードを削除して処理を終了する。
図10は、本発明で使用するエントリ・テーブルの別の実施の形態を示す。図10に示したエントリ・テーブル80は、フィールド82と、フィールド84と、フィールド86に加えて、OSプロセスを要求した要求時刻など、時間的優先順位を示すことができるフィールド88とがレコードを形成している。図10に示したエントリ・テーブルには、新規なアプリがインストール/アンインストールされた時点、またはアプリのプロセスが起動/終了した段階で順次エントリ・テーブルに追加/削除され、図9に示されるように、アプリ側からの要求に応答して動的に、先入れ・先出しの処理に対応するものではない。
また、図10に示したエントリ・テーブル80の実施の形態では、アプリ側のプロセスがOSのメッセージを待機していることを、フィールド88が対応するOSプロセスについてnullか否かを使用して判断することができる。さらに、フィールド88がnullではない場合には、フィールド88を参照してその時刻を判断する。エントリ制御部は、メッセージ監視部からの検索・読出しメッセージを受け取ると、対応するOSを待機しているアプリのプロセスがあるか否かを、フィールド84をルックアップし、さらにフィールド88を参照して複数エントリされている場合には、要求時刻の早い順に処理を行い、処理結果を、順次バッファリングさせ、待機する対応アプリに対して処理画終了した段階でカプセル化してメッセージ監視部へと返す。
図11には、本発明のエントリ・テーブルの第3の実施の形態を示す。図11に示したエントリ・テーブル90は、エントリの追加・削除の処理については図10に示したエントリ・テーブル80と同様にして行われる。しかしながら、エントリ・テーブル90に登録された各要素は、図11に示した実施の形態では、フィールド98に登録された要求時刻以外のフィールドのデータは、エントリに登録する時点でエントリ制御部が暗号鍵を使用して暗号化した後に格納される。このため、エントリ制御部のエントリには、適切な復号処理がなされない限り、アクセスできない構成とされている。なお、本発明の特定の実施の形態では、要求時刻データについても暗号化することが可能であるものの、エントリ・テーブルに対する不正アクセスによる影響は他のデータに比較して少ないので、暗号化せずに登録することができる。
本発明において図11に示したエントリ・テーブル90を使用する場合、暗号化方式として、公開鍵法、共通鍵方式、公開鍵方式のいずれの方式でも用いることができ、暗号化アルゴリズムについてもブロック暗号法、ストリーム暗号法、RSA暗号法、離散対数暗号法、だ円暗号法などを使用することができる。本発明においては、処理速度の点から共通鍵法を用いることができ、例えば、メッセージ監視部からの通信データとして復号鍵を送信し、復号鍵で復号しつつデータを取得することができる。
この他、さらに厳密なセキュリティを得る場合には、処理時間は多少要することになるものの、RSA暗号法などを用いた公開鍵方式を使用した暗号法を使用することができるし、メッセージ監視部から、送信するデータと、そのハッシュ値とを送り、エントリ制御部は、秘密鍵を使用してエントリ制御部が送信データを復号して、新たに得られたハッシュ値を生成し、受信したハッシュ値と比較を行うことでデータの改ざんをおよび送信元を特定する電子署名プロトコルを使用することもできる。
図12は、本発明においてエントリ制御部が、エントリ・テーブルにエントリされたアプリを削除する場合の処理を、UMLを使用して説明した図である。なお、本発明では、エントリの追加および削除についても、エントリ制御部は同様の暗号処理および復号処理を使用することができる。図12に示すように、配布先であるアプリからエントリ・テーブルへの追加を要求する場合には、配布先がエントリ制御部に対してエントリに対する追加を要求すると、メッセージaddentryがエントリ制御部へと渡される。
エントリ制御部では、当該メッセージaddentryを受け取って、例えばキューまたはリストにエントリを追加するlistクラスのメンバ関数などを含む、addentry ()オブジェクトのインスタンスを生成させ、ファイルをオープンするメッセージopenを配布先・メッセージ格納部へと通知する。通知を受けた配布先・メッセージ格納部では、ファイルをオープンし、エントリの数だけ読出し処理を行い、さらにエンコード処理を行い、エンコードが終了した時点で、エントリ・テーブルへとエンコードされたデータを記入する。
また、エントリを削除する場合には、配布先であるアプリから、エントリ削除を通知するメッセージdelentryを受け取ると、エントリ制御部は、例えば、エントリを削除するlistのメンバ関数を含むオブジェクトdelentry ()のインスタンスを生成し、デコード処理によりエントリ・テーブル内の値を取得し、対応するレコードをエントリ・テーブルから削除する処理を実行する。
図13は、本発明のメッセージ・ハンドラの処理の第2の実施の形態を示した図である。図13に示したメッセージ・ハンドラの処理は、エントリ制御部が、アプリからのosm要求を監視しており、アプリからのosm要求を受け取ってメッセージ監視部に問い合わせを発行する処理を実行する。本発明では特に限定するわけではないが、図13に示したメッセージ・ハンドラの処理は、本はつん名の情報処理装置を、LAN、WAN、またはインターネットなどのネットワークを介して、情報処理装置をクライアント端末またはWebクライアントとして機能させる場合に好適な実施の形態である。
図13に示す処理は、ステップ1300から開始し、エントリ制御部は、ステップ1301でエントリ制御部に新たなメンバが追加されたか否かを、例えばエントリ・テーブルのデータ一致性または最終アクセス履歴などをチェックして判断するか、またはアプリからのosm要求を受け取ったことに対応して判断する。その結果、新たなメンバが追加されていないと判断される場合、およびosm要求を受け取っていない(no)には、新たなメンバが追加されるまでステップ1301で待機する。
ステップ1301で、新たなメンバが追加されたまたはosm要求を受け付けた場合には、ステップ1302で新たなメンバがosmを要求しているか否かを判断する。なお、エントリ制御部が、図9に示したようにosm要求が明示的になされたアプリだけを管理する実施の形態を使用する場合には、ステップ1302の判断を省略し、直ちにステップ1303の処理を実行することができる。ステップ1302の判断の結果、メンバが追加されてもosmを要求していないと判断した場合(no)には、再度ステップ1301へと処理を分岐させ、新たなメンバの追加をモニタする。
また、ステップ1302の判断が、新たなメンバがosmを要求している場合(yes)、またはエントリ・テーブルに追加されたこと自体がosmを要求している実施の形態を使用する場合には、ステップ1303へと処理を進め、メッセージ監視部が管理するPidenおよびそれに対応するosmを検索する。
ステップ1304では、ステップ1303の検索結果の返り値を使用してその返り値が、メッセージ監視部が外用するエントリを保有していないことを示す値を返すか否かを判断し、エントリを保有していないことを示す値が返された場合(yes)には、ステップ1301へと処理を戻しさらに新たなエントリが追加されるのを待機する。エントリを保有していることを示す値が返された場合(no)には、ステップ1305においてメッセージ監視部に対して対応するosmを送付する要求を発行してosmを取得するか、またはステップ1305の返り値と同時に送付されるosmを使用して、変換テーブルをルックアップすることにより、待機中のアプリが実行可能なコードへと変換する。その後、ステップ1306でアプリの宛先に対してコードを送信する。なお、図13に示した実施の形態でもエントリ制御部は、暗号化および復号の処理を実行しながら各処理を実行することができる。
また、ステップ1306の処理においてエントリ制御部は、単一の情報処理装置内で、またはネットワークを介した例えばWebサーバなどとして機能する場合には、宛先IPアドレスと、リモート・ポート番号をポート80とを使用し、TCP/IPなどのプロトコルで実行可能なコードapplmを送信することができる。また、本発明の情報処理装置を、LANなどに接続されたクライアント−サーバ・システムで使用する場合には、TCP/IPまたはUDP/IPまたはその他の適切なプロトコル、例えばNETBEUIなどのプロトコルを使用して実行可能なコードapplmを発行することができる。
図14は、本発明の図13に示したエントリ制御部が実行する処理のオブジェクト間の通信を示すUMLを示す。メッセージ監視部は、OS起動に応答して、またはユーザ指令により監視オブジェクトのインスタンスを起動し、osmを登録している。その後、配布先のアプリが起動され、アプリがosmを要求するメッセージ、例えば、要求OSプロセスの識別値を引数とするrequest_osm(Piden)を、本発明のメッセージ・ハンドラに対して通知する。
この通知を受け取ったエントリ制御では、エントリ制御オジェクトのインスタンスを作成し、特定の実施の形態に応じて共有鍵または公開鍵と秘密鍵とを使用して暗号化および復号処理を実行し、配布先・メッセージ格納部が管理するエントリ・テーブルにアプリを追加する。その後、エントリ制御オブジェクトのインスタンスは、メッセージ監視部に対応するPidenのosmを問い合わせるメッセージであるsearch_request(Piden)を発行し、メッセージ監視部による検索の結果であるメッセージresponse_search(Piden, osm)を受け取る。
response_search(Piden, osm)を受け取ったエントリ制御部は、レスポンス・パケットを解析し、必要に応じて復号処理を行って、宛先をエントリ・テーブルから検索し、変換テーブルからアプリが実行可能なコードを取得し、取得した実行可能なコードを、例えばresponse_osm (Piden, code)としてアプリ側に発行する。その後、エントリ制御部は、エントリ・テーブルから処理を終了したアプリに対応するレコードを削除する。さらにその後、アプリ側のインスタンスは、エントリ制御部からのメッセージであるresponse_osm(Piden, code)を取得して対応するコードを実行し、osmに対応した処理を実行し、当該アプリ側のインスタンスを終了させる。
図15は、本発明のメッセージ・ハンドラを実装する情報処理装置の実施の形態を示す。本発明の情報処理装置100は、図示した実施の形態では、ノートブック型のパーソナル・コンピュータとして構成されている。情報処理装置100は、イーサネット(登録商標)などを介して、LANなどのネットワーク102と通信を行っていて、クライアント・サーバタイプのサービスまたは、Webサーバからのサービスを受け取ることが可能とされている。
また、情報処理装置100には、EPROMなどを含む半導体スティック、カード型HDDなどの外部記憶装置104が、USBポートまたはPCIバス、AGPバス、ISAバスなどを介して接続されていて、ユーザ指令に応じて、処理データの格納を行っている。ユーザは、マウス106やキーボード108を介して情報処理装置100への入力を行っていて、文書管理・アプリケーションを介して、例えばワードプロセッサ・ソフトウェアおよびデータベース・ソフトウェアにより作成した文書の管理を行っている。
本発明のメッセージ・ハンドラは、例えば、特定の文書管理ソフトウェアの構成モジュールとすることもできるし、また独立したソフトウェア製品とすることができるが、いずれの場合でもOSの起動時と共に機能されるサービス・ソフトウェアまたはdaemonソフトウェアとすることができる。また、本発明のメッセージ・ハンドラは、ユーザ指令による起動のため、起動アイコンをディスプレイ・ウィンドウ上に表示させ、ユーザに対して明示的にメッセージ・ハンドラの起動を指令させることもできる。
図15に示した実施の形態では、情報処理装置100には、アプリとして文書管理ソフトウェアが実装されており、また他にもアプリとして、ワードプロセッサ・ソフトウェアまたはデータベース・ソフトウェアがインストールされ、ワードプロセッサ・ソフトウェアまたはデータベース・ソフトウェアは、OSからのメッセージを使用してプロセス管理が行われている。一方、文書管理ソフトウェアは、外部記憶装置104などと、ドライバ・ソフトウェアを介して通信を行っていて、その入出力は、BIOS、デバイス・マネージャなどを介して管理されている。
情報処理装置100上で稼働している文書管理ソフトウェアは、OSが発行するメッセージに対する直接的な宛先として登録されておらず、この結果、OSプロセスがいくら発行されようとも、OSからのメッセージの宛先とされるアプリだけがOSからのメッセージを受け取ることができる。このため、文書管理ソフトウェアは、OSからのメッセージを取得することができず、最悪のケースでは、OSプロセスに対応するワードプロセッサ・ソフトウェアからのメッセージを待たなければ、常にレスポンスを待機する状態に放置され、その結果、情報処理装置100の入出力状態が文書管理ソフトウェアの待機状態に保持されてしまうこともあり得る。
このような状況が発生すると、それまで作成した貴重なユーザデータは、ユーザがリセット動作などを行うことにより消去されることになり、文書管理上、およびユーザ負担を考えると文書管理ソフトウェアの利用性に制限を与えてしまう。また、ネットワークを介して高付加価値のデータの送受信を行っている場合にも、サーバ側の処理に応じては、要求したhttpリクエストに対して対応するhttpリクエストが返されない場合もある。また、作業の途中でメモリ・スティックやカード型HDDが取り外されたような場合、情報処理装置が「サーバが応答しません」または「接続されていません」などに対応するOS側のメッセージを返す場合もあるが、この場合でも、当該OSのメッセージは、文書管理ソフトウェアなどに対しては直接返されず、またそのメッセージを仮に受け取ったとしても文書管理ソフトウェアがそれに対応する処理を実行できない場合には、実質的に待機状態となってしまうので、それまでに作成した文書管理ドキュメントが無駄になってしまう可能性もある。
本発明のメッセージ・ハンドラは、上述したような場合でもOSメッセージを監視して、当該OSからのメッセージを待機している不特定多数のアプリケーションによる要求に応じて、または要求される可能性に応じてOSのステータスに対応した実行可能なコードを通知することができる。本発明では、アプリは、OSの実行状態に対応して、例えば、不揮発性メモリなどに作成したデータを退避させてバックアップ・ファイルを自動作成するなどの処理を実行させるなど、アプリ側で実行可能なコードを、OSからのメッセージの代わりに受け取ることができる。このため、情報処理装置は、ユーザにより作成された高付加価値のデータが失われない処理を実行して、ユーザの作業効率を向上させている。
図16は、本発明の情報処理装置100、110、112がネットワークに接続された場合の第2の実施の形態を示した図である。図16に示された実施の形態では、情報処理装置100は、LANまたはWANまたはインターネットといったネットワーク102を介して、クライアント−サーバ型またはWebサーバなどのサーバ114へと接続されており、データベース116などに対して文書の格納・取得などを行っている。情報処理装置100、110、112は、メッセージ・ハンドラを備えており、例えばユーザ指令またはOS起動に応答してメッセージ・ハンドラが起動され、OSメッセージを監視している。このため、当該OSを使用しているが当該OSメッセージが宛先とされていない重要なメッセージが発行されてもOSメッセージが素通りしてしまうアプリケーションに対してもOSメッセージを認識させることができる。
なお、本発明における好適な実施の形態では、OSメッセージの発行元の識別値としては、OS供給元によるウェルノウン・ポート番号または実行ファイル名から選択され、アプリケーション・プログラムの宛先は、レジスタード・ポート番号またはダイナミック・プライベート・ポート番号から直接使用して選択することで、プロセス間通信を効率化することができるが、ポート番号とプロセス固有に付された名称とをそれぞれ対応させるリストまたは対応付け機能部を設けて、プロセス側名称と、アプリケーション側名称とをエントリ・テーブルに格納して、ポート番号を使用せずに対応付けおよび変換処理を行うこともできる。
本発明の上記機能は、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Servletなどのオブジェクト指向ブログラミング言語で記述することができ、また、本発明のプログラムは、フレキシブルディスク、ハードディスク、CD-ROM、CD-RW、MO、DVD、DVD-RW、半導体メモリまたは伝送媒体としてネットワークを介して頒布されて、情報処理装置にインストールされて本発明の各機能部を構成させることができる。さらに、本発明の情報処理装置は、特定の実施の形態として、パーソナル・コンピュータに実装されるものとして記述してきたが、電子写真複写機、プリンタ、MFPなど、CPUを含む、オブジェクト指向プログラミングが実行可能な画像処理に適した情報処理装置にも適用することができる。
これまで本発明を図面に示した実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
本発明の情報処理装置のハードウェア構成を示した図。 本発明の情報処理装置のソフトウェア構成を示した図。 本発明の情報処理装置が含むメッセージ・ハンドラの構成を示した図。 メッセージ監視部の処理を示したフローチャート。 キュー・リストのエントリされたOSメッセージを示した図。 本発明のエントリ制御部の処理を示した図。 本発明の変換テーブルを示した図。 本発明のメッセージ・ハンドラを使用するプロセスのUML図。 本発明のエントリ・テーブルの第1の実施の形態を示した図。 本発明のエントリ・テーブルの第2の実施の形態を示した図。 本発明のエントリ・テーブルの第3の実施の形態を示した図。 本発明のエントリ・テーブルの追加・削除処理を示したUML図。 本発明のエントリ制御部の処理の第2の実施の形態を示した図。 図13に示したエントリ制御部を使用する場合のオブジェクトの処理を示したUML図。 本発明の情報処理装置の第1の実施の形態を示した図。 本発明の情報処理装置の第2の実施の形態を示した図。
符号の説明
10…情報処理装置、12…MPU、14…メモリ(RAM、ROM)、16…入出力装置、18…インタフェース、20…インタフェース、22…記憶装置、24…内部バス、26…VRAM、28…グラフィック・チップ、30…ディスプレイ装置、32…ネットワークI/F、34…ネットワーク、40…BIOS&デバイス・ドライバ層、42…オペレーティング・システム層、44…アプリケーション・プログラム層、46…メッセージ・ハンドラ、48…メッセージ監視部、50…エントリ制御部、52…配布先・メッセージ格納部、54…キュー・リスト、56、58…フィールド、60…変換テーブル、62〜66…フィールド、70…エントリ・テーブル、80…エントリ・テーブル、90…エントリ・テーブル、100…情報処理装置、102…ネットワーク、104…外部記憶装置、106…マウス、108…キーボード、110、112…情報処理装置(クライアント端末)、114…Webサーバ、116…データベース

Claims (10)

  1. オペレーティング・システムの制御の下で少なくとも1つのアプリケーション・プログラムを実行する情報処理装置であって、前記情報処理装置は、
    前記オペレーティング・システムのシステム・コマンドが発行したメッセージを、聴取またはスキャンすることにより前記メッセージの本来の宛先への通信を維持させながら取得し、前記メッセージが発行されるごとに発行元およびメッセージの内容をキュー・リストに登録するメッセージ監視部と、
    前記オペレーティング・システムが発行した前記メッセージの発行元を識別する発行元識別値と、前記発行元のメッセージを要求するアプリケーション・プログラムの宛先として使用される送信元識別値とを格納するエントリ・テーブルを含む記憶部と、
    前記メッセージ監視部から前記発行元識別値を受け取って前記記憶部の前記エントリ・テーブルを検索し、システム・コマンドのメッセージを待機する前記アプリケーション・プログラムが検索された場合、当該アプリケーション・プログラムの送信元識別値を宛先として設定し、OSプロセス識別値と、メッセージと、前記メッセージに対応するため前記アプリケーション・プログラムが実行可能なコードを対応づけた変換テーブルを使用して前記メッセージに対応する前記コードを取得するエントリ制御部と
    を含む、情報処理装置。
  2. 前記メッセージ監視部は、前記エントリ制御部による前記アプリケーション・プログラムの検索結果に応答して、前記メッセージを前記キュー・リストから削除する、請求項1に記載の情報処理装置。
  3. 前記記憶部は、少なくとも前記発行元識別値および前記アプリケーション・プログラムの宛先を暗号化して格納し、前記エントリ制御部は、前記暗号化された前記発行元識別値および前記送信元識別値を復号して前記アプリケーション・プログラムの宛先を取得する、請求項1または2に記載の情報処理装置。
  4. 前記情報処理装置は、エントリ制御部が取得した前記宛先に宛てて前記実行可能なコードを通信するプロセス通信処理部を含む、請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 前記記憶部の検索において、前記発行元識別値は、ウェルノウン・ポート番号または実行ファイル名で指定され、前記宛先は、レジスタード・ポート番号、ダイナミック・プライベート・ポート番号から選択されるか、または前記エントリ・テーブルにプロセス側名称とアプリケーション側名称とを対応付けるリストを格納して前記発行元識別値と、前記アプリケーション・プログラムとの対応付けを行う、請求項1〜4のいずれか1項に記載の情報処理装置。
  6. オペレーティング・システムの下で少なくとも1つのアプリケーション・プログラムを実行させる情報処理装置におけるメッセージ管理方法であって、前記メッセージ管理方法は、前記情報処理装置が、
    メッセージ監視部が前記オペレーティング・システムのシステム・コマンドが発行したメッセージを、聴取またはスキャンすることにより前記メッセージの本来の宛先への通信を維持させながら取得し、前記メッセージが発行されるごとに発行元およびメッセージの内容をキュー・リストに登録するステップと、
    エントリ制御部が前記オペレーティング・システムが発行した前記メッセージの発行元を識別する発行元識別値と、前記発行元のメッセージを要求するアプリケーション・プログラムの宛先として使用される送信元識別値とを格納するエントリ・テーブルを更新するステップと、
    前記エントリ制御部が前記メッセージ監視部から前記発行元識別値を受け取って記憶部の前記エントリ・テーブルを検索し、システム・コマンドのメッセージを待機する前記アプリケーション・プログラムが検索された場合、当該アプリケーション・プログラムの送信元識別値を宛先として設定し、OSプロセス識別値と、メッセージと、前記メッセージに対応するため前記アプリケーション・プログラムが実行可能なコードを対応づけた変換テーブルを使用して前記メッセージに対応する前記コードを取得するステップと
    を前記情報処理装置に実行させる、メッセージ管理方法。
  7. 前記メッセージ管理方法は、前記情報処理装置に対して、前記エントリ・テーブルの検索結果に応答して、保持された前記メッセージを先入れ・先出し処理により削除するステップを実行させる、請求項6に記載のメッセージ管理方法。
  8. 前記メッセージ管理方法は、前記情報処理装置に対して、少なくとも前記発行元識別値および前記アプリケーション・プログラムの宛先を暗号化して格納するステップと、
    前記エントリ・テーブルの検索ステップの前に前記暗号化された前記発行元識別値およびアプリケーション・プログラムの宛先を復号するステップと
    を実行させる、請求項6または7に記載のメッセージ管理方法。
  9. 請求項6〜のいずれか1項に記載のメッセージ管理方法を情報処理装置に対して実行させる装置実行可能なプログラム。
  10. 請求項に記載のプログラムを格納した装置可読な記憶媒体。
JP2005191091A 2005-06-30 2005-06-30 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体 Expired - Fee Related JP4725955B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005191091A JP4725955B2 (ja) 2005-06-30 2005-06-30 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
US11/477,672 US9037744B2 (en) 2005-06-30 2006-06-30 Information processing apparatus, information processing system, message control method, and program product, storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005191091A JP4725955B2 (ja) 2005-06-30 2005-06-30 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体

Publications (2)

Publication Number Publication Date
JP2007011650A JP2007011650A (ja) 2007-01-18
JP4725955B2 true JP4725955B2 (ja) 2011-07-13

Family

ID=37591019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005191091A Expired - Fee Related JP4725955B2 (ja) 2005-06-30 2005-06-30 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体

Country Status (2)

Country Link
US (1) US9037744B2 (ja)
JP (1) JP4725955B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4337853B2 (ja) * 2006-09-04 2009-09-30 コニカミノルタビジネステクノロジーズ株式会社 アプリケーションプログラム配布装置、画像処理装置、及びプログラム
JP5239674B2 (ja) * 2008-09-17 2013-07-17 株式会社リコー 情報処理装置、処理制御方法、プログラムおよび記録媒体
CN102591727B (zh) * 2012-01-04 2014-09-17 华为终端有限公司 对应用数据进行处理的方法和计算节点
JP6168650B2 (ja) * 2013-03-29 2017-07-26 日本電産サンキョー株式会社 情報処理システム及び情報処理方法
CN105224349B (zh) * 2014-06-12 2022-03-11 小米科技有限责任公司 应用程序的删除提示方法和装置
JP6364262B2 (ja) * 2014-07-07 2018-07-25 株式会社Nttファシリティーズ サーバ、メッセージ処理システム、メッセージ処理方法及びプログラム
JP6424745B2 (ja) * 2015-06-09 2018-11-21 株式会社リコー 画像形成装置、画像形成方法およびプログラム

Family Cites Families (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4058838A (en) * 1976-11-10 1977-11-15 International Telephone And Telegraph Corporation Packet-switched facsimile communications system
US5481698A (en) * 1988-09-28 1996-01-02 Hitachi Ltd. Computer system and job executing method
US5228080A (en) * 1990-06-25 1993-07-13 Colonial Data Technologies Corp. Method and apparatus for processing an incoming telephone call signal which may include a data message
JP2811990B2 (ja) * 1991-04-19 1998-10-15 三菱電機株式会社 プログラム処理装置及びプログラム処理方法
JPH0540696A (ja) * 1991-08-02 1993-02-19 Canon Inc 仮想記憶アドレス制御の方法及びその情報処理装置
US5327492A (en) * 1992-04-30 1994-07-05 At&T Bell Laboratories Method for selectively controlling the propagation of dual-tone multi-frequency signals within a telecommunications network
US5499290A (en) * 1993-01-28 1996-03-12 Bellsouth Corporation AIN non-call associated signalling for service nodes and service control points in a telephone system
US5557774A (en) * 1993-03-22 1996-09-17 Hitachi, Ltd. Method for making test environmental programs
US5664103A (en) * 1993-04-14 1997-09-02 Nynex Science & Technology System for using an independent mediator for monitoring control data and transferring selected control data to a remote computer for concurrent processing
US5568402A (en) * 1994-04-11 1996-10-22 Gse Process Solutions, Inc. Communication server for communicating with a remote device
US5802394A (en) * 1994-06-06 1998-09-01 Starlight Networks, Inc. Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
US5583981A (en) * 1994-06-28 1996-12-10 Microsoft Corporation Method and system for changing the size of edit controls on a graphical user interface
JPH09258948A (ja) * 1996-03-22 1997-10-03 Hitachi Ltd コメント添付・保存システムとそれを用いた共同作業支援システム
GB2313524A (en) * 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
GB2318486B (en) * 1996-10-16 2001-03-28 Ibm Data communications system
US5999938A (en) * 1997-01-31 1999-12-07 Microsoft Corporation System and method for creating a new data structure in memory populated with data from an existing data structure
US6192389B1 (en) * 1997-03-28 2001-02-20 International Business Machines Corporation Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system
US6006258A (en) * 1997-09-12 1999-12-21 Sun Microsystems, Inc. Source address directed message delivery
JP4573917B2 (ja) * 1997-09-24 2010-11-04 富士通株式会社 ネットワークシステムとその中におけるオブジェクト連携方法
US5991856A (en) * 1997-09-30 1999-11-23 Network Associates, Inc. System and method for computer operating system protection
US6862650B1 (en) * 1997-11-14 2005-03-01 International Business Machines Corporation Data processing system and method for managing memory of an interpretive system
JPH11149383A (ja) * 1997-11-17 1999-06-02 Toshiba Tec Corp プロセス間通信制御装置
US6247077B1 (en) * 1998-02-06 2001-06-12 Ncr Corporation Highly-scalable parallel processing computer system architecture
JP3546705B2 (ja) * 1998-07-10 2004-07-28 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーション・ウインドウにアノテーション・データを対応付ける方法及び装置、システム、アプリケーション・ウインドウへのアノテーション・データの対応付けを制御するプログラムを格納した記憶媒体
US6314501B1 (en) * 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6349295B1 (en) * 1998-12-31 2002-02-19 Walker Digital, Llc Method and apparatus for performing supplemental searches over a network
US6222529B1 (en) * 1999-05-05 2001-04-24 Shareware, Inc. Method and apparatus for providing multiple sessions on a single user operating system
JP2000347881A (ja) * 1999-06-04 2000-12-15 Nec Corp 複数プロセス間通信方法及びその装置並びに情報記録媒体
JP2001060157A (ja) * 1999-08-23 2001-03-06 Nec Corp アプリケーション間メッセージ交換方式
JP2001092677A (ja) 1999-09-22 2001-04-06 Hitachi Information Systems Ltd プロセス間メッセージ通信方法および該方法を実現するプログラムを記録した記録媒体
US6961765B2 (en) * 2000-04-06 2005-11-01 Bbx Technologies, Inc. System and method for real time monitoring and control of networked computers
WO2001077794A2 (en) * 2000-04-06 2001-10-18 Granite Technologies, Inc. System and method for real time monitoring and control of a computer machine environment and configuration profile
US7512965B1 (en) * 2000-04-19 2009-03-31 Hewlett-Packard Development Company, L.P. Computer system security service
US7499453B2 (en) * 2000-05-19 2009-03-03 Cisco Technology, Inc. Apparatus and methods for incorporating bandwidth forecasting and dynamic bandwidth allocation into a broadband communication system
JP3714119B2 (ja) * 2000-06-13 2005-11-09 日本電気株式会社 Biosプリブート環境を利用したユーザ認証型ネットワークosブート方法及びシステム
NL1015854C2 (nl) * 2000-08-02 2002-02-05 Koninkl Kpn Nv Inrichting en werkwijze voor het verwerken van transactiegegevens.
US6738836B1 (en) * 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
JP4037079B2 (ja) 2000-10-10 2008-01-23 株式会社リコー 画像形成装置、プロセス監視方法およびこの方法をコンピュータに実行させるプログラム
JP4087072B2 (ja) * 2001-01-25 2008-05-14 株式会社日立製作所 ストレージシステム及び仮想プライベートボリューム制御方法
US7809854B2 (en) * 2002-02-12 2010-10-05 Open Design, Inc. Logical routing system
US6782350B1 (en) * 2001-04-27 2004-08-24 Blazent, Inc. Method and apparatus for managing resources
US6802055B2 (en) * 2001-06-27 2004-10-05 Microsoft Corporation Capturing graphics primitives associated with any display object rendered to a graphical user interface
US6839896B2 (en) * 2001-06-29 2005-01-04 International Business Machines Corporation System and method for providing dialog management and arbitration in a multi-modal environment
US7290245B2 (en) * 2001-10-18 2007-10-30 Microsoft Corporation Methods and systems for navigating deterministically through a graphical user interface
TW200303690A (en) * 2002-02-18 2003-09-01 Empower Interactive Group Ltd Distributed message transmission system and method
TWI324309B (en) * 2002-08-26 2010-05-01 Interdigital Tech Corp Communication circuit
US7072800B1 (en) * 2002-09-26 2006-07-04 Computer Associates Think, Inc. Application response monitor
US20040078799A1 (en) * 2002-10-17 2004-04-22 Maarten Koning Interpartition communication system and method
US7246193B2 (en) * 2003-01-30 2007-07-17 Rosemount, Inc. Interface module for use with a Modbus device network and a Fieldbus device network
JP2004295321A (ja) 2003-03-26 2004-10-21 Nec Software Chubu Ltd プロセス状態監視分析方式及び監視分析プログラム
JP4424465B2 (ja) * 2003-06-09 2010-03-03 ソニー株式会社 情報機器、情報サーバおよび情報処理プログラム
JP2005018378A (ja) * 2003-06-25 2005-01-20 Sony Corp 情報サーバ、情報機器、情報処理システム、情報処理方法および情報処理プログラム
US7340739B2 (en) * 2003-06-27 2008-03-04 International Business Machines Corporation Automatic configuration of a server
KR20060056314A (ko) * 2003-07-14 2006-05-24 소니 가부시끼 가이샤 서비스 이용 방법 및 관리 방법
US7328439B1 (en) * 2003-08-21 2008-02-05 Nvidia Corporation System and method for creating thread-level message hooks
JP4318520B2 (ja) * 2003-09-26 2009-08-26 富士通株式会社 端末の状態制御システム
US7539631B1 (en) * 2003-10-06 2009-05-26 Microsoft Corporation Method, system and program for providing subscription-based virtual computing services
US20050086662A1 (en) * 2003-10-21 2005-04-21 Monnie David J. Object monitoring system in shared object space
US8424023B2 (en) * 2003-10-24 2013-04-16 Hewlett-Packard Development Company, L.P. Program interface architecture
US7234004B2 (en) * 2003-12-19 2007-06-19 International Business Machines Corporation Method, apparatus and program product for low latency I/O adapter queuing in a computer system
JP4569328B2 (ja) * 2004-03-18 2010-10-27 パナソニック株式会社 無線通信装置および経路探索方法
US7084760B2 (en) * 2004-05-04 2006-08-01 International Business Machines Corporation System, method, and program product for managing an intrusion detection system
JP4401239B2 (ja) * 2004-05-12 2010-01-20 Necエレクトロニクス株式会社 通信メッセージ変換装置、通信方法及び通信システム
JP4478871B2 (ja) * 2004-05-19 2010-06-09 ソニー株式会社 コンテンツデータ再生装置、コンテンツデータ提供装置、コンテンツデータ再生方法、コンテンツデータ提供方法、コンテンツデータ再生プログラム及びコンテンツデータ提供プログラム
US7730138B2 (en) * 2004-07-14 2010-06-01 Microsoft Corporation Policy processing model
US7533265B2 (en) * 2004-07-14 2009-05-12 Microsoft Corporation Establishment of security context
WO2006024887A1 (en) * 2004-08-31 2006-03-09 Telefonaktiebolaget Lm Ericsson (Publ) Method and system to assign mobile stations to an unlicensed mobile access network controller in an unlicensed radio access network
AU2005301489B2 (en) * 2004-11-03 2008-09-25 Samsung Electronics Co., Ltd. System and method for provisioning service flows in broadband wireless access communication
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7529923B2 (en) * 2005-06-30 2009-05-05 Intel Corporation Operating system mode transfer

Also Published As

Publication number Publication date
JP2007011650A (ja) 2007-01-18
US9037744B2 (en) 2015-05-19
US20070005682A1 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
KR102234427B1 (ko) 국소화된 디바이스 조정기에서의 요구 시 코드 실행
US10135842B2 (en) Content-based isolation for computing device security
JP4725955B2 (ja) 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
US8671276B2 (en) Method for passing selective encrypted attributes of specific versions of objects in a distributed system
US10042905B2 (en) Information processing apparatus, information processing system, and data conversion method
US10762204B2 (en) Managing containerized applications
JP2019220230A (ja) データ処理方法及びデータ処理装置
JP5956565B2 (ja) メッセージングアプリケーションプログラムインターフェイスを提供するためのシステムおよび方法
US9098715B1 (en) Method and system for exchanging content between applications
US7480799B2 (en) Traffic manager for distributed computing environments
EP2933955A1 (en) Deep packet inspection method, device, and coprocessor
JP5293580B2 (ja) ウェブサービスシステム、ウェブサービス方法及びプログラム
WO2012011218A1 (en) Computer system and offloading method in computer system
KR20080106908A (ko) 하드웨어 장치와 같은 자원을 소유하는 가상 컴퓨터를 이동시키기 위해 이용될 수 있는 컴퓨팅 시스템 및 방법
CN102411693A (zh) 虚拟机的继承产品激活
WO2011086787A1 (ja) 機密情報漏洩防止システム、機密情報漏洩防止方法及び機密情報漏洩防止プログラム
KR20030024772A (ko) 컴퓨터의 인터페이스 드라이버 프로그램 및 그 기록매체
JP2010282242A (ja) アクセス制御システム、アクセス制御方法およびアクセス制御用プログラム
US8789159B2 (en) System for running potentially malicious code
Carvalho et al. Squid–a simple bioinformatics grid
JP2004102453A (ja) コンテキストラウンチ管理方法およびシステム、ならびにプログラム、記録媒体
JP6205013B1 (ja) アプリケーション利用システム
CN113765869B (zh) 一种登录方法、装置、服务端及存储介质
WO2009104720A1 (ja) リソース利用制御システム、リソース利用制御方法及びリソース利用制御用プログラム
JP2002305513A (ja) 情報通信システム及び情報端末及びその制御方法及びコンピュータプログラム並びに記憶媒体

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070320

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110405

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110405

R150 Certificate of patent or registration of utility model

Ref document number: 4725955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees