首页 / 专利库 / 资料储存系统 / 复杂事件处理 / Information processing method/device/system

Information processing method/device/system

阅读:966发布:2020-12-03

专利汇可以提供Information processing method/device/system专利检索,专利查询,专利分析的服务。并且PURPOSE: To provide a flexible master application which can correspond to a complicated environment where constitution elements can dynamically fluctuate by providing a means holding an event information group on a connection operation for respective applications, a means retrieving event information and a means executing an event processing.
CONSTITUTION: A work station 101 is constituted by connecting CPU 111 executing the processing with a main storage 112 holding a desk top Mgr102 being the basic software of a synthesis application management system by a computer bus 113. When an event for executing the connection operation of the applications in an operating work environment occurs in the prescribed application, event information on the application corresponding to the event is retrieved from the event information group showing the processing content of the event on the connection operation for the respective applications. The event is processed based on retrieved event information.
COPYRIGHT: (C)1996,JPO,下面是Information processing method/device/system专利的具体信息内容。

【特許請求の範囲】
  • 【請求項1】1台もしくは複数台のコンピュータによって構成される作業環境上でアプリケーション群を連携動作させる情報処理システムであって、 前記アプリケーション群の個々のアプリケーション毎に連係動作に関するイベントの処理内容を示すイベント情報群を保持する保持手段と、 1つのアプリケーションにおいてイベントが発行されたとき、該イベントに対応する当該アプリケーションのイベント情報を前記保持手段のイベント情報群より検索する検索手段と、 前記検索手段で検索されたイベント情報に基づいて前記イベントの処理を実行する実行手段とを備えることを特徴とする情報処理システム。
  • 【請求項2】前記保持手段におけるイベント情報群のイベント構成を変更する変更手段を更に備えることを特徴とする請求項1に記載の情報処理システム。
  • 【請求項3】前記保持手段における各イベント情報の、
    イベントの処理内容を変更する変更手段を更に備えることを特徴とする請求項1に記載の情報処理システム。
  • 【請求項4】前記イベント情報におけるイベントの処理内容がスクリプト言語で記述されていることを特徴とする請求項1に記載の情報処理システム。
  • 【請求項5】前記保持手段は、 個々のアプリケーション毎に登録されたイベント名のリストを保持するリスト保持手段と、 前記リスト保持手段で保持されたイベント名に対応するイベント処理の手続きを保持する手続保持手段とを備えることを特徴とする請求項1に記載の情報処理システム。
  • 【請求項6】アプリケーション群を連携動作させることが可能な情報処理装置であって、 前記アプリケーション群の個々のアプリケーション毎に連係動作に関するイベントの処理内容を示すイベント情報群を保持する保持手段と、 1つのアプリケーションにおいてイベントが発行されたとき、該イベントに対応する当該アプリケーションのイベント情報を前記保持手段のイベント情報群より検索する検索手段と、 前記検索手段で検索されたイベント情報に基づいて前記イベントの処理を実行する実行手段とを備えることを特徴とする情報処理装置。
  • 【請求項7】アプリケーション群を連携動作させるための情報処理方法であって、 前記アプリケーション群の個々のアプリケーション毎に連係動作に関するイベントの処理内容を示すイベント情報群を保持する保持工程と、 1つのアプリケーションにおいてイベントが発行されたとき、該イベントに対応する当該アプリケーションのイベント情報を前記保持工程で保持されたイベント情報群より検索する検索工程と、 前記検索工程で検索されたイベント情報に基づいて前記イベントの処理を実行する実行工程とを備えることを特徴とする情報処理方法。
  • 说明书全文

    【発明の詳細な説明】

    【0001】

    【産業上の利用分野】この発明は、1台ないしそれ以上のコンピュータ上で動作するアプリケーション・プログラムを制御する機構に関するものである。 特に、アプリケーション・プログラムの起動,終了,メッセージ配送処理などの制御をおこなうことにより、複数のアプリケーション間の連係を可能にする機構に関するものである。

    【0002】

    【従来の技術】近年、パーソナルコンピュータやワークステーション上でウィンドウ・システムを利用したGUI
    (グラフィカル・ユーザ・インタフェース)の普及がめざましい。 それに伴いユーザに提供されるべきアプリケーションも、かつてのGUI以前のプログラム環境におけるアプリケーションにくらべ、より複雑かつ多様な機能をより洗練させた形で提供することが要求されるようになってきた。

    【0003】このような要求に対し、単独のアプリケーションの拡張により対応するのではなく、アプリケーション間の協調動作メカニズムの提供により、比較的単純なアプリケーションを複数組み合わせることを可能にし、さまざまな状況に対応しようとするシステムが現れてきている。

    【0004】このような要求に対し、以下のような2つの実現方法が提案され試みられている。 即ち、 (1)アプリケーション連係の要となるアプリケーション・プログラム(これをマスタ・アプリケーションと呼ぶ)が1つ存在し、これが他のアプリケーション(スレーブ・アプリケーションと呼ぶ)をコントロールする方法. (2) 全てのアプリケーションが対等にコミュニケーションを行い、互いに処理を分担し合う方法. である。 ここでは方法(1)をマスタ方式、方法(2)
    をコミュニケーション方式と呼ぶことにする。

    【0005】各方式の特徴をまとめると、 ・マスタ方式 … アプリケーションの連係と統合のメカニズムがマスタに集中する。 このためスレーブの作成は容易になるが、その分マスタのプログラムが複雑化する。 また、マスタに負荷が集中しやすい. ・コミュニケーション方式 … 各アプリケーションが連係・統合のメカニズムをそれぞれ持っている。 このため、個々の各アプリケーションが複雑となるが、代わりに負荷の分散がやりやすい。 また、1つのアプリケーションのトラブルが全体に及ぼす影響が小さい。

    【0006】一般に、マスタ方式では、複雑なアプリケーション制御をマスタが集中しておこなうことができるのに対し、コミュニケーション方式ではアプリケーション間のプロトコルを規定しなければ高度な処理を実現することが難しい。 このため、特に同じプログラムが単純なデータ交換のみ行うような場合をのぞき、マスタ方式が採用されることが多い。

    【0007】

    【発明が解決しようとする課題】しかしながら、マスタ方式では連係して動作しているアプリケーション群に新しいアプリケーションを追加したり、新たな連係プロトコルを導入しようとすると、マスタ・アプリケーションのプログラム(マスタ・プログラム)の修正が必要となり、全面書き替えを要求されることさえある。

    【0008】またマスタの修正が小規模なものであったとしても、関連するアプリケーションの構成が動的に変化するような環境では、個々のマスタ・プログラムの修正によって対応することは不可能である。 この要求は、
    LANやWANなどの発達により複数のコンピュータを作業環境とすることが普及するに従ってより切実なものとなってきている。 このため動的に構成が変化し得る複雑なアプリケーション連係に対応可能な柔軟なアプリケーション連係コントロール機構の実現が要求されるようになってきた。

    【0009】本発明は、上記の問題点に鑑みてなされたものであって、動的に構成要素が変動しうる複雑な環境に対応可能な、柔軟なマスタ・アプリケーションを提供することを可能とする情報処理方法及び装置及びシステムを提供することを目的とする。

    【0010】また、本発明の他の目的は、動的に構成要素が変動しうる複雑な環境を特に意識することなく、その環境で動作するアプリケーションを容易に構築することを可能とする情報処理方法及び装置及びシステムを提供することを目的とする。

    【0011】

    【課題を解決するための手段】上記の目的を達成するための本発明の情報処理システムは以下の構成を備えている。 即ち、1台もしくは複数台のコンピュータによって構成される作業環境上でアプリケーション群を連携動作させる情報処理システムであって、前記アプリケーション群の個々のアプリケーション毎に連係動作に関するイベントの処理内容を示すイベント情報群を保持する保持手段と、1つのアプリケーションにおいてイベントが発行されたとき、該イベントに対応する当該アプリケーションのイベント情報を前記保持手段のイベント情報群より検索する検索手段と、前記検索手段で検索されたイベント情報に基づいて前記イベントの処理を実行する実行手段とを備える。

    【0012】また、好ましくは、前記保持手段におけるイベント情報群のイベント構成を変更する変更手段を更に備える。 動的に変化する作業環境やアプリケーション群に柔軟に対応することが可能となるからである。

    【0013】また、好ましくは、前記保持手段における各イベント情報の、イベントの処理内容を変更する変更手段を更に備える。 動的に変化する作業環境やアプリケーション群に柔軟に対応することが可能となるからである。

    【0014】

    【作用】上記の構成によれば、あるアプリケーションにおいて、稼働中の作業環境でアプリケーションの連携動作を行うためのイベントが発生すると、前記アプリケーション群の個々のアプリケーション毎に連係動作に関するイベントの処理内容を示すイベント情報群より、該イベントに対応する当該アプリケーションのイベント情報が検索され、検索されたイベント情報に基づいて当該イベントの処理が実行される。

    【0015】

    【実施例】以下に添付の図面を参照して本発明の好適な実施例を説明する。

    【0016】<実施例1>図1は実施例1による統合アプリケーション管理システムの概要図である。 この統合アプリケーション管理システムは、複数のアプリケーションを連係させあたかも1つのアプリケーションであるかのように振る舞わせる。 本実施例において、この連係して動作する複数のアプリケーションを一括して管理する論理的単位を「統合アプリケーション」とよぶ。 統合アプリケーション管理システムは、この統合アプリケーションを実現するメカニズムを提供する。

    【0017】図1において、ワークステーション101
    は、本実施例の処理を実行するCPU111と、本統合アプリケーション管理システムの基本ソフトウェアであるDesktopMgr102を保持する主記憶112を計算機バス113で結合して構成されている。

    【0018】DesktopMgr102がアプリケーションを管理するために使用するデータをアプリケーション情報1
    03と呼び、DesktopMgr102がデータベース104を利用して管理している。 このデータベース104は、リレーショナル・データベースやオブジェクト指向データベースなどのデータ検索が可能な一般的なデータベースである。 データベース104とワークステーション10
    1は、イーサネット・ケーブル114で結合されている。 データベース104は、統合アプリケーションの動作を規定するスクリプト情報105の管理にも使用される。 また、ユーザが入出などのアプリケーションの操作をおこなうためのユーザインタフェースはディスプレイ106上に表示される。

    【0019】DesktopMgr102は、内部的に以下の4つのソフトウェア・モジュールから構成されている。 即ち、アプリケーション情報管理モジュール107、スクリプト情報管理モジュール108、スクリプト実行モジュール109及びイベント制御モジュールである。 以下に、各モジュールについて説明する。

    【0020】[アプリケーション情報管理モジュール1
    07]アプリケーション情報管理モジュール(AppServi
    ce)107は、アプリケーション情報103の管理と、
    アプリケーションの起動,終了など、アプリケーション情報に基づいたアプリケーション制御の手段を、ユーザやアプリケーションあるいは他のソフトウェア・モジュールに提供する。

    【0021】[スクリプト情報管理モジュール108]
    スクリプト情報管理モジュール(ScriptService)10
    8は、スクリプト情報105 の管理をおこなう。 スクリプト情報105は、統合アプリケーションに対しておこなわれた操作(これを統合アプリケーションに対する「出来事」とみなし、これを「イベント」よぶ)に対してDesktopMgrがどのように振る舞うべきかを規定する情報である。 本実施例では、この「振る舞い」は簡単なスクリプト言語によって記述されている。 このスクリプト言語によって記述されたプログラムを単にスクリプトと呼ぶ。

    【0022】[スクリプト実行モジュール109]スクリプト実行モジュール(ScriptEngine)109はスクリプト情報105に記述された処理を実行する。 即ち、スクリプト情報を記述するために使用されるスクリプト言語のインタプリタとして実現されている。

    【0023】[イベント制御モジュール110]イベント制御モジュール(EventService)110は、ユーザやアプリケーションから送られてきたイベントを受け取り処理するというDesktopMgr102全体の動作の制御をおこなう。

    【0024】なお、本実施例では、これらのモジュールはDesktopMgrという1つのプログラムにまとめられているが、各モジュールが独立したプログラムとして機能するという形態の実装も可能である。

    【0025】図2は本実施例におけるアプリケーション連係の様子をあらわす概念図である。 図2において、参照番号201から210までの各構成は図1における参照番号101から110までの各構成に対応している。
    この図ではアプリケーションA211,アプリケーションB212,アプリケーションC213がDesktopMgr2
    02の管理下にあり、1つの統合アプリケーション21
    4を形成している。 また、アプリケーション211,2
    12,213のように統合アプリケーションの構成要素となっているアプリケーションを要素アプリケーションと呼ぶ。 本実施例における要素アプリケーションは、従来例におけるマスタ方式およびコミュニケーション方式と同様に、それぞれが連係して動作するためにプロセス間通信機構をもっている。

    【0026】ここで、ユーザ215がアプリケーションA211上で、統合アプリケーション214全体で処理されるべき操作をおこなったと仮定する。 本実施例では、この統合アプリケーション214全体で処理されるべきユーザの操作をイベントと定義する。 さらに、このようなユーザ操作によって2次的に引き起こされる統合アプリケーション214全体で処理されるべき「出来事」もイベントとして扱う。

    【0027】イベントには名前(イベント名)がつけられ、イベント発生時におこなわれる処理を規定するスクリプト情報をアプリケーション情報管理モジュール20
    7に登録することにより、本システムにおけるイベントが定義される。 アプリケーションA211は、このようなユーザの操作をイベントとしてDesktopMgr202に通知する。 このイベント通知メカニズムは、例えばユーザの操作をトリガとして、イベントの名前をあらわす文字列をメッセージとしてDesktopMgr202に発行することによって実現できる。

    【0028】ただし、1つの統合アプリケーションに属するすべての要素アプリケーションがこの機構をもっている必要はなく、最低1つがその機構をもっていれば一応統合アプリケーションとして機能する。 この機構をもつ要素アプリケーションは、統合アプリケーションのユーザインタフェースを提供することができるため、UIプロバイダ(UI provider)ともよぶ。

    【0029】さて、DesktopMgr202は通知されたイベントに対応するスクリプト情報が存在したならば、そのスクリプト情報を評価・実行する。 多くの場合は、 (1) 他のアプリケーション212,213やアプリケーションA211自身にメッセージを送る. (2) 動作中のアプリケーションの終了. (3) 新たなアプリケーションの起動. などの処理が実行され、統合アプリケーション214全体の処理として扱われる。

    【0030】図3は、図2におけるDesktopMgr202の内部でおこなわれる処理の様子をあらわす図である。 なお、図3における301から315までの各構成は、図2における201から215までの項目に対応している。 また、図4は、実施例1における処理の流れを表すフローチャートである。 以下、図3及び図4を参照して本実施例1の処理を説明する。

    【0031】アプリケーションA311から送られてきたイベント316は、EventService310によって受け取られる(ステップS401)。 EventService310
    は、AppService307にイベントの発行元であるアプリケーションA311のアプリケーション情報303の検索を依頼する。 ここで検索のキーとして使用されるアプリケーション名は、送られてきたイベントに必ず付加されているものとする。 AppService307はこのイベントに付加されたアプリケーション名をキーとしてデータベース304からアプリケーション情報303を取り出す(ステップS402)。

    【0032】ここで、アプリケーション情報303は、
    本実施例ではC++プログラム言語のデータ構造として、 class ApplicationInfo { char* appName; int portNumber; int processNumber; ... ApplicationInfo* integrated_in; ListOf<ApplicationInfo> components; ListOf<char*> eventNames; }; のように定義されている。

    【0033】appNameはアプリケーションの識別子として使用されるアプリケーション名である。 アプリケーション情報303内の属性eventNamesでは、そのアプリケーションに関連するイベント名のリストが管理されている。 このイベント名はスクリプト情報検索時のキーとして使用される。 またintegrated_inには、このアプリケーションが統合アプリケーションの1部になっている場合に、その統合アプリケーションのアプリケーション情報への参照子(ポインタ)が登録される。 また、このアプリケーション自身が統合アプリケーションならば、co
    mponentsでその構成要素となっているアプリケーションの情報へのポインタが管理される。

    【0034】また、本実施例では、統合アプリケーション自身も対応するアプリケーション情報をもつ。 このようにすることにより、ある統合アプリケーションが別の統合アプリケーションの構成要素となるような状況に対応することができる。 統合アプリケーションを含むアプリケーション情報の生成機構については後述する。 また、その他アプリケーションの制御や通信に必要なプロセス番号processNumberやポートportNumberなどの情報もアプリケーション情報内で管理される。

    【0035】さて、EventService310は、次にスクリプト情報管理モジュール308に処理対象であるイベント316と関連づけられたスクリプト情報305の検索を依頼する。 スクリプト情報管理モジュール308は、
    取り出されたアプリケーション情報303と、処理対象であるイベント316の名前をキーとしてスクリプト情報305を取り出す(ステップS403)。

    【0036】スクリプト情報自身の定義は、例えばC++
    プログラム言語により以下のように定義されている:

    ここで、eventNameはこのスクリプト情報と関連づけられているイベントの名前である。 またownerはこのスクリプト情報を利用するアプリケーションのアプリケーション情報、最後のscriptTextはスクリプト言語で記述されたプログラムをあらわす文字列である。 本実施例におけるスクリプト言語は、TCLプログラム言語に幾つかのコマンド群を追加したものである(TCLプログラム言語については、"Tcl and the Tk Toolkit",John K. O


    usterhout, Addison-Wesley, 1994. 参照のこと)。 他のスクリプト言語に同様な拡張をおこなうことにより、


    TCLプログラム言語を置換することも可能である。 このスクリプトをScriptEngine309が評価することによりイベントの処理がおこなわれる(ステップS40


    4)。

    【0037】本実施例におけるTCLプログラムの拡張コマンド群により、個々の要素アプリケーションが提供する機能を組み合わせることが可能となる。 追加されたコマンド群は以下の3つのカテゴリに分類される。 即ち、 ・アプリケーション情報の操作 ・アプリケーションの操作 ・スクリプト情報の操作 である。 以下、各カテゴリについて詳しく説明する。

    【0038】[アプリケーション情報の操作]アプリケーション情報の参照・更新をおこなう。 以下のコマンドがこのカテゴリに属している。 即ち、 (1) AppInfo "アプリ名" create (2) AppInfo "アプリ名" info "属性名" ?"
    属性値"? である。

    【0039】(1)がアプリケーション情報の生成、
    (2)はアプリケーション情報の参照および更新である。 属性名はApplicationInfoクラスで宣言されているインスタンス変数の名前をあらわす文字列である。 ここで「?」で両端を囲まれた項目は、指定してもしなくてもよいことをあらわす。 (2)の場合、「属性値」が与えられた場合は「属性名」であらわされるアプリケーション情報の属性の値を更新する。 「属性値」が与えられない場合は参照を意味する。

    【0040】[アプリケーションの操作]アプリケーションの制御をおこなう以下のコマンドがこのカテゴリに属している。 即ち、 (3) launchApp "アプリ名" (4) terminateApp "アプリ名" である。

    【0041】(3)と(4)は、それぞれ指定されたアプリケーションの起動と終了をおこなう。 これらの操作は最終的に本実施例が起動されているオペレーティング・システムの機能を利用しておこなわれるが、そのために必要な情報はアプリケーション情報から取り出される。

    【0042】また、メッセージの配送をおこなうための、 (5) forwardMessage "アプリ名" "メッセージのテキスト" というコマンドもこのカテゴリに属している。 (5)
    は、指定されたアプリケーションにメッセージを転送する。 このコマンドにより要素アプリケーションが提供する機能を利用する。 本実施例ではメッセージは文字列として扱われる。

    【0043】[スクリプト情報の操作]イベントに対応するスクリプト情報の参照・更新をおこなう。 コマンドとしては、 (6) ScriptInfo "イベント名" info "属性名" "属性値" がある。 (6)は指定されたイベント対応するスクリプト情報の属性値の参照および更新をおこなうコマンドである。

    【0044】以下に上記のコマンド群を組み合わせアプリケーションの連係を可能にするスクリプトの例を挙げる。

    【0045】[例1]統合アプリケーションIntegWork
    の起動をイベントとして定義する。 そのスクリプトは、 set component_tools [AppInfo IntegWork info components]; foreach tool $component_tools { launchApp $tool; } となる。 このスクリプトは、IntegWorkのアプリケーション情報から要素アプリケーションのリストcomponents
    の値を取り出し、リスト中の全アプリケーションを起動する。

    【0046】[例2]同じくIntegWorkの終了は、 set component_tools [AppInfo IntegWork info components]; foreach tool $component_tools { terminateApp $tool; } 要素アプリケーションの終了を引き起こす。

    【0047】[例3]IntegWorkに対するdo_something
    というイベントを、例えばEditorという要素アプリケーションに処理させるならば、 forwardMessage Editor "do-something"; と記述する。

    【0048】次に図5および図6を用いて、上記のように動作する統合アプリケーションの作成機構について説明する。 図5は、統合アプリケーション作成処理の概要を説明する図である。 図6は、統合アプリケーション作成処理の手順を表すフローチャートである。 図5における参照番号501から510の各構成は図1における参照番号101から110までの各構成に対応している。
    また、図中のウィンドウ511はディスプレイ506上でユーザ512に、統合アプリケーションの作成のためのユーザインタフェースを提供する。

    【0049】ユーザがウインドウ511で作成されるべき統合アプリケーション名を指定すると、EventService
    510がその要求を受け取り、指定されたアプリケーション名をキーとしてアプリケーション情報管理モジュール507に統合アプリケーションのアプリケーション情報503の検索を依頼する(ステップS601)。 このとき、指定したアプリケーション情報503が存在しなかったら、新たにアプリケーション情報を生成する(ステップS602,S603)。

    【0050】アプリケーション情報503が得られると、イベント名のリストである属性eventNamesから、関連づけられているイベント名のリストを取り出し、ウィンドウ510に表示する(ステップS604)。 このとき、上述のステップS603で作成されたばかりのアプリケーション情報なら、表示されるべきイベント名のリストは空である。 イベント名のリストが表示されると、
    ユーザによって処理の終了が指示されるまでステップS
    605からステップS616までの処理が繰り返される。

    【0051】ユーザ512は、ウィンドウ511を介して、DesktopMgr502に新たなイベントの追加・削除を指示することができる。 ユーザによって処理の終了が指示されなかった場合、処理はステップS605よりステップS606へ進む。

    【0052】イベントの追加は、追加するイベントのイベント名を与えることにより(ステップS606)、そのイベント名がアプリケーション情報503のeventNam
    es属性に属性値として追加され(ステップS607)、
    さらに新たなスクリプト情報505が生成される(ステップS608)。 この時点でのスクリプト情報505の
    eventName属性とowner属性は指定されているが、script
    Text属性の値はNULL文字列である。

    【0053】イベントの削除は、ユーザがイベント名を与えず(ステップS606)、削除するイベント名をウィンドウ511上のリストで選択し(ステップS60
    9)、さらにユーザがDesktopMgr502に削除を要求する(ステップS610)ことによって実行される。 この場合、選択されたイベント名に対応するスクリプト情報505が取り出されて削除される(ステップS61
    1)。 次に、アプリケーション情報503のeventNames
    からそのイベント名が削除される(ステップS61
    2)。

    【0054】また、すでに登録されているイベントに対する処理を変更することも可能である。 即ち、ユーザがウインドウ511上でイベント名を指定した時に(ステップS609)、ユーザが削除要求をおこなわなかった場合(ステップS610)、対応するスクリプト情報5
    05を取り出し(ステップS613)、ウインドウ51
    1上に表示する(ステップS614)。 本実施例では、
    scriptText属性に登録されているスクリプトのみ更新が可能である。

    【0055】ここで、ユーザはウインドウ511上で表示されたスクリプトの編集をおこなう。 変更がおこなわれた場合(ステップS615)、変更されたスクリプトはscriptText属性の新しい値となりデータベースにストアされる(ステップS616)。 変更後、あるいは変更がおこなわれなかった場合(ステップS615)は、ステップS605に戻って、操作の継続か処理の終了かを判断し、ユーザからの終了指示がなければ上述の処理を繰り返す。

    【0056】以上の機構を利用すると、アプリケーション情報503のeventNames属性に登録されているイベント名リストとスクリプト情報505のscriptText属性に登録されているスクリプトを修正することにより、既に作成されていた統合アプリケーションのアプリケーション構成やイベントの数および処理などを変更することや、新たに統合アプリケーションを作成することが可能となる。

    【0057】例えば、図3に示した例に、新たにアプリケーションA311をアプリケーションA'で置き換える場合、統合アプリケーション314に対応するアプリケーション情報に登録されているイベント中の、アプリケーションA311が発行元となるイベントを、アプリケーションA'が発行元となるイベントで置き換えればよい。

    【0058】アプリケーションA311に統合アプリケーション314からforwardMessageコマンドによりメッセージを送るようなスクリプトが指定されていた場合も、その部分をアプリケーションA'が受け入れられるように変更することにより、アプリケーションA'にアプリケーションA311の代わりに動作させることが可能である。

    【0059】また、図3に示した例に、新たにアプリケーションDを追加するような場合でも、統合アプリケーション314に対応するアプリケーション情報にアプリケーションDが発行元となるイベントを追加し、既存のイベントに対応するスクリプト情報内のスクリプトを、
    アプリケーションDの追加を考慮して修正することにより、マスタの全面書き替えをおこなうことなくカスタマイズすることが可能である。

    【0060】また、本実施例における統合アプリケーションは1つのユーザ環境内でのアプリケーション連係機構を提供するが、本実施例で説明した統合アプリケーション管理システムをそのまま適用することにより、複数のユーザ環境上で同時に動作する複数のアプリケーションを連係させて、複数のユーザ環境下における協調作業環境を実現することも可能である。

    【0061】以上の様にして本実施例では、統合アプリケーションで処理されるべきイベントを定義することを可能とし、拡張したTCLスクリプト言語を提供して、
    スクリプト情報でイベントと関連づけることにより、イベントに対する処理を要素アプリケーションの連係動作として記述することを可能としている。

    【0062】また、アプリケーション情報とスクリプト情報の導入により、統合アプリケーションで処理されるべきイベントの種類とそのイベントに対する処理を任意に変更することを可能にした。

    【0063】このため、DesktopMgrで記述されるスクリプトにより要素アプリケーションがコントロールされるため、個々の要素アプリケーションが統合アプリケーションがどのように構成されているかを意識する必要がなくなるという効果がある。 また、各要素アプリケーションの外部インタフェースの差異を統合アプリケーションのイベント処理によって吸収することも可能となる。

    【0064】さらに、構成が動的に変化する様な統合アプリケーションの実現が可能になり、変更が必要になってもアプリケーション情報とスクリプト情報を修正するだけで対応することができる。

    【0065】<実施例2>上記の実施例1において、統合アプリケーション管理システムへの適用例について述べたが、本実施例2では、実施例1で述べたものと同様な統合アプリケーションを実現するマスタ・アプリケーション生成システムについて説明する。

    【0066】このマスタ・アプリケーション生成システムは、統合アプリケーションをコントロールするマスタ・アプリケーションのプログラムを自動生成するプログラムである。 第1の実施例とは異なり、マスタ・アプリケーション生成システム自身は直接アプリケーションの制御をおこなわない。

    【0067】本実施例2が作成するマスタ・アプリケーションは、他のアプリケーションをコントロールする機能だけをもつものであるが、生成されたプログラムを基礎として他の機能を追加することが可能である。

    【0068】図7は本実施例2のマスタ・アプリケーション生成システムの概略図である。 同図において、2次記憶ディスク701には、アプリケーション情報702
    が蓄積されている。 このアプリケーション情報702
    は、ユーザ712がマスタ・アプリケーションを作成するために必要となるアプリケーションの機能に関する情報である。 本実施例2におけるアプリケーション情報7
    02は実施例1におけるアプリケーション情報103からポート番号やプロセス番号など動的な情報を取り除き、代りにイベント名をキーとしてそのイベントに対する処理内容と変更履歴等の付加情報を管理するハッシュ・テーブルを付加した物である。 このハッシュ・テーブルをイベント・スクリプト対応表と呼ぶ。

    【0069】マスタ・アプリケーション生成サーバ70
    4は、アプリケーション情報の管理と、それらを組み合わせてマスタ・アプリケーションの生成を支援するユーザインタフェースの提供および、最終結果としてのマスタ・プログラムの作成をおこなう。 マスタ・アプリケーション生成サーバ704は2個のソフトウェア・モジュールから構成される。

    【0070】705はアプリケーション情報管理モジュールである。 本実施例におけるアプリケーション情報管理モジュール705は、データベース104の機能を利用していた実施例1におけるアプリケーション情報管理モジュール107とは異なり、アプリケーション名をキーとするハッシュ・テーブルの機能を利用して、二次記憶ディスク701上のアプリケーション情報702の管理をおこなう。 アプリケーション情報702自身も前述したように実施例1におけるアプリケーション情報10
    3とは異なる構造を持っている。

    【0071】さらに、このアプリケーション情報管理モジュール705は、アプリケーション情報702と同様のメカニズムにより、スクリプト・テンプレート情報7
    07をも管理している。 このスクリプト・テンプレート情報707はスクリプト・プログラムの骨格の代表的パターンを記述したスケルトン・プログラムである。 ユーザはスケルトン・プログラムを基に実際に実行可能なスクリプトを作成することができる。

    【0072】711はプログラム生成モジュールである。 このモジュールは、メイン・ルーチンプログラム7
    09とアプリケーション情報702をユーザからの指定に基づいて結合し、マスタ・アプリケーションのプログラムを作成する。 メイン・ルーチンプログラム709はアプリケーションからイベントを受け取ると、対応するスクリプトを実行するだけの単純なプログラムである。

    【0073】710はユーザインタフェースを提供するウィンドウである。 ここでユーザは、マスタによって統合されるべきアプリケーションの指定、各アプリケーションのイベントに対応するスクリプトの記述および登録などをおこなう。

    【0074】ここで、本実施例におけるアプリケーション情報は以下の様に定義される。 即ち、 class ApplicationInfo { class EventInfo { char* eventName; ApplicationInfo* owner; char* info; char* scriptText; }; char* appName; ... ApplicationInfo* integrated_in; ListOf<ApplicationInfo> components; HashTable<char*, EventInfo> eventHandlers; }; となる。

    【0075】アプリケーション情報における、イベントに対する処理内容と変更履歴等の付加情報は、イベント・スクリプト対応表eventHandlersで管理され、第1の実施例におけるスクリプト情報とほぼ同じ構造を持っている。 本実施例ではイベント処理が少しずつ改良されていくことが重要であるため、変更履歴等の付加情報を記述する項目infoが付加されている。 本実施例では、処理内容と変更履歴等の付加情報をイベント情報とよぶ。

    【0076】本実施例2と実施例1との主な相違は、アプリケーション情報とイベントに関する情報の関連が、
    実施例1ではイベント名による緩やかなものであったのに対し、本実施例2ではアプリケーション情報に組み込まれていることである。

    【0077】図8はメイン・ルーチンプログラムの動作概要を説明する図である。 また、図9はメイン・ルーチンプログラムの処理を表すフローチャートである。

    【0078】メイン・ルーチンプログラムにはイベント・スクリプト対応表から取り出されたスクリプト・テキスト801とイベント・スクリプト対応表802自身が付加される。 アプリケーション情報でイベント・スクリプト対応表802内で管理されていたスクリプト・テキストが、メイン・ルーチンプログラムに付加される時に分離される理由は、生成されたマスタ・プログラムを後から変更する場合の便宜を図るためである。 もちろん図に示す様に、イベント・スクリプト対応表802とスクリプト・テキスト801の対応関係は、イベント・スクリプト対応表がスクリプト・テキスト801への参照子803を保持していることにより、保存されている。

    【0079】本実施例2におけるスクリプトからこの対応表802を参照するには、イベント名を引き数としてとりスクリプトのテキストを返すEventTableという名前の関数として参照する。 イベントループ804がイベントを受け取ると(ステップS901)、イベントに付加されているイベント名をキーとしてイベント・スクリプト対応表802から対応するスクリプト・テキスト80
    1を取り出し(ステップS902)、そのスクリプト・
    テキストに制御を移す(ステップS903)。 メイン・
    ルーチンプログラムは基本的にこの動作を繰り返すだけの単純なプログラムである。

    【0080】本実施例2においては、スクリプト言語としてLispプログラム言語を拡張したものを使用するが、
    プログラム生成モジュールは最終的にLispスクリプトをC言語によるプログラムに変換する(Lispプログラム言語については、 Guy L. Steel Jr. et al., 井田昌之訳, "Common LISP"(共立出版株式会社)を参照)。

    【0081】この変換メカニズムそのものは一般的なプログラム翻訳機構を利用している。 本実施例2における
    Lispスクリプトの拡張は以下コマンドの追加によってなされる。 即ち、 (1)(launchApp "アプリ名") (2)(terminateApp "アプリ名") (3)(forwardMessage "アプリ名" "メッセージのテキスト") である。 コマンド(1),(2),(3)の機能は、実施例1における同名のコマンドと同じく、アプリケーションの起動,終了およびメッセージの配送である。

    【0082】本実施例2では、必要な情報をマスタのプログラムに組み込むことができるので、アプリケーション情報などを取得するために特別なコマンドは必要がない。 このため上記のアプリケーションの制御のためのコマンドのみ用意される。 これらの機能は、オペレーティングシステムの基本的な機能として提供されるので、それらの機能をLispから利用するだけでよい。

    【0083】さて、図7と図10及び図11を用いてプログラム生成モジュール711の動作を説明する。 図1
    0及び図11は、プログラム生成モジュールの処理手順を表すフローチャートである。

    【0084】ユーザがウインドウ710で作成されるべき統合アプリケーション名を指定すると、アプリケーション生成サーバ704はそのアプリケーション名をキーとしてアプリケーション管理モジュール705にアプリケーション情報702の検索を依頼する(ステップS1
    001)。 アプリケーション情報が存在しなかった場合は(ステップS1002)、新たにアプリケーション情報を生成する(ステップS1003)。

    【0085】アプリケーション情報702が得られると、アプリケーション情報702のeventHandlersから、イベント・スクリプト対応表が取り出され、ウィンドウ710に表示される(ステップS1004)。 イベント名のリストが表示されると、ユーザによって処理の終了が指示されるまで(ステップS1005)、ステップS1006からステップS1016までの処理が繰り返される。

    【0086】本実施例2においても、実施例1と同様にイベントの追加・削除・更新が可能である。

    【0087】即ち、ユーザによって処理の終了が指示されなかった場合(ステップS1005)、イベントの追加は、追加するイベントのイベント名を与えることにより(ステップS1006)、あらたにイベント情報が生成され(ステップS1007)、イベント・スクリプト対応表に追加される(ステップS1008)。 この時点でのイベント情報のeventName属性とowner属性は指定されているが、scriptText属性とinfo属性の値はNULL文字列である。

    【0088】また、イベントの削除は、イベント名がユーザによって与えられず(ステップS1006)、イベント名がウィンドウ710上のリストで選択され(ステップS1009)、さらにユーザがマスタ・アプリケーション作成サーバ704に削除を要求することによって実行される(ステップS1010)。 この場合、選択されたイベント情報がイベント・スクリプト対応表から削除される。 即ち、ステップS1011において指定されたイベント情報を削除し、ステップS1012においてアプリケーション情報から選択されたイベント情報を削除する。

    【0089】また、イベント処理の変更に対しては、ユーザがウインドウ710上でイベントを指定した時に(ステップS1009)、ユーザが削除要求をおこなわなければ(ステップS1010)、対応するイベント情報がイベント・スクリプト対応表から取り出され(ステップS1013)、ウインドウ710上に表示される(ステップS1014)。 本実施例2では、scriptText
    属性に登録されているスクリプトとinfo属性に登録されている付加情報のみ更新が可能である。 ユーザはウインドウ710上で必要に応じてスクリプトおよび付加情報を編集することによりイベント情報を更新する。

    【0090】イベント情報がウィンドウ710上で変更された場合(ステップS1015)、その変更は2次記憶ディスク701上のアプリケーション情報703に書き込まれる(ステップS1016)。 変更後、あるいは変更がおこなわれなかった場合(ステップS1015)
    は、ステップS1005に戻って、操作の継続か処理の終了かを判断し、ユーザからの終了指示がなければ、上述のステップS1006からステップS1016までの処理を続行する。

    【0091】イベント情報のチェックの終了がユーザにより指示されると(ステップS1005)、プログラム生成モジュール708はアプリケーション情報からイベント・スクリプト対応表を取り出し(ステップS101
    7)、さらにイベント・スクリプト対応表からスクリプト・テキストを分離する(ステップS1018)。

    【0092】次に、メイン・ルーチン・プログラム70
    9とイベント・スクリプト対応表および取り出したスクリプト・テキストをマージしてLispプログラム言語によるマスタ・プログラムを作成する(ステップS101
    9)。 最後に生成されたLispマスタ・プログラムをCプログラム言語に変換することにより最終的なマスタ・プログラムが生成される(ステップS1020)。

    【0093】本実施例2では、以上の機構を利用することにより、統合アプリケーションに変更が必要な時も、
    変更前のアプリケーション情報を基に適当な変更をアプリケーション情報に加えることにより、変更に対応したバージョンのマスタ・プログラムを生成することが可能となる。

    【0094】また、本実施例2において提供されたマスタ・プログラムによる統合アプリケーションも、実施例1で実現された統合アプリケーションと同様に、複数のユーザ環境上で同時に動作する複数のアプリケーションを連係させて、複数のユーザ環境下における協調作業環境を実現することが可能である。

    【0095】以上の様にして本実施例では、 ・統合アプリケーションにおける、ユーザ間で反映されるべきユーザ操作をイベントとして定義する手段を提供し、 ・拡張したLispプログラム言語を提供してイベント・スクリプト変換テーブル生成手段を導入する ことにより、イベントの処理を各ユーザ環境で動作するアプリケーションの連係動作として記述する手段を提供した。

    【0096】また、アプリケーション情報とスクリプト情報から半自動的にマスタ・プログラムを生成する手段を提供することにより、統合アプリケーションで処理されるべきイベントの構成と、そのイベントに対する処理を変更する手段が提供される。

    【0097】本実施例によれば、共同作業のおける参加者や使用アプリケーションなどの変更によりマスタ・プログラムの変更が必要となった時にも、2次記憶ディスクで管理されているアプリケーション情報を更新することにより、マスタ・プログラムを容易に修正する事が可能となる。

    【0098】また、生成されたマスタ・プログラム自身は対象となるアプリケーション連係に特化した制御をおこなうことができるので、効率的な処理を実現することが可能である。

    【0099】尚、本発明は、複数の機器から構成されるシステムに適用しても1つの機器からなる装置に適用しても良い。 また、本発明はシステム或いは装置に本発明により規定される処理を実行させるプログラムを供給することによって達成される場合にも適用できることはいうまでもない。

    【0100】

    【発明の効果】以上説明したように、本発明によれば、
    動的に構成要素が変動しうる複雑な環境に対応可能な、
    柔軟なマスタ・アプリケーションを提供することが可能となる。

    【0101】また、動的に構成要素が変動しうる複雑な環境を特に意識することなく、その環境で動作するアプリケーションを構築することが可能になる。

    【0102】

    【図面の簡単な説明】

    【図1】実施例1による統合アプリケーション管理システムの概要図である。

    【図2】本実施例におけるアプリケーション連係の様子をあらわす概念図である。

    【図3】図2におけるDesktopMgrの内部でおこなわれる処理の様子を表す図である。

    【図4】実施例1における処理の流れを表すフローチャートである。

    【図5】統合アプリケーション作成処理の概要を説明する図である。

    【図6】統合アプリケーション作成処理の手順を表すフローチャートである。

    【図7】本実施例2のマスタ・アプリケーション生成システムの概略図である。

    【図8】メイン・ルーチンプログラムの動作概要を説明する図である。

    【図9】メイン・ルーチンプログラムの処理を表すフローチャートである。

    【図10】プログラム生成モジュールの処理手順を表すフローチャートである。

    【図11】プログラム生成モジュールの処理手順を表すフローチャートである。

    【符号の説明】

    101 ワークステーション 102 DesktopMgr 103 アプリケーション情報 104 データベース 105 スクリプト情報 106 ディスプレイ 107 アプリケーション情報管理モジュール 108 スクリプト情報管理モジュール 109 スクリプト実行モジュール 110 イベント制御モジュール 111 CPU 112 主記憶装置 113 計算機バス 114 ネットワークケーブル

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈