JP4146590B2 - タスク指向アプリケーションのための装置、方法及び記録媒体 - Google Patents
タスク指向アプリケーションのための装置、方法及び記録媒体 Download PDFInfo
- Publication number
- JP4146590B2 JP4146590B2 JP30951499A JP30951499A JP4146590B2 JP 4146590 B2 JP4146590 B2 JP 4146590B2 JP 30951499 A JP30951499 A JP 30951499A JP 30951499 A JP30951499 A JP 30951499A JP 4146590 B2 JP4146590 B2 JP 4146590B2
- Authority
- JP
- Japan
- Prior art keywords
- component
- wrapper
- data
- document
- software
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータソフトウェアアーキテクチャに係わり、特に、特定のタスクを実行する複数のソフトウェアコンポーネントにより構成されたアプリケーションのためのソフトウェアアーキテクチャに関する。本発明のソフトウェアアーキテクチャは、ソフトウェアコンポーネントを異なる順序で実行し、データ又は文書をコンポーネントの間で効率的に転送することを支援する。
【0002】
本発明は、また、本発明のソフトウェアアーキテクチャに従ってタスク指向アプリケーションを実現するコンピュータハードウェア及び方法に関する。
【0003】
【従来の技術】
コンピュータソフトウェアエンジニアリングの分野には、構造化された設計とソフトウェアアプリケーションの実現を導くように意図された設計原理の開発が含まれる。このような設計原理の一つは、アプリケーションのためのタスク指向アーキテクチャである。タスク指向アーキテクチャにおいて、アプリケーションによって実行される機能(例えば、スペルチェック、指定されたロケーションへのデータの転送、データ変換など)は、別々のタスクとして表現され、各タスクはアプリケーションプログラムの専用コンポーネント若しくはモジュールによって実行される。コンポーネント若しくはモジュールは、典型的に、ユーザからの入力を必要とすることなく特定の手順で呼び出される。呼び出されたコンポーネントは、ユーザが望む全体的な機能を実行する一連のタスクを実行する。
【0004】
アプリケーションが一連のタスクを実行する際の統一性が増加するという観点、並びに、ソフトウェアプログラムのサイズを縮小するという観点でより高い効率を達成するため、コンポーネント若しくはモジュールが多数のアプリケーションの間で共用されることが望ましい。これにより、所望の機能の組を実行するため、汎用的なタスク実行用のコンポーネントの組を特定の順序で組み合わせることが可能になる。コンポーネント若しくはモジュールベースのソフトウェアアーキテクチャは、各コンポーネントを実質的に自己充足的に設計することができるので、この特定の順序の組合せが容易に実現される。
【0005】
しかし、特定のタスク用のコンポーネントを、他のコンポーネント共に、或いは、多数のアプリケーションの一部として種々の順序で利用しようとするとき、そのタスクのインタフェースがアプリケーションの呼び出し側コンポーネントのインタフェース、或いは、そのタスクコンポーネントによって呼び出されたアプリケーションコンポーネントのインタフェースと完全には適合しないという問題点が生じる。この問題点は、多種のタスクを新しいアプリケーションに実現すべく設計されたコンポーネントを再配置する能力を制限する。
【0006】
あらゆるアプリケーションのあらゆるソフトウェアコンポーネントが共通のインタフェースを備えるように設計することは可能であるが、これには膨大な作業を要する。このような解決法は、互換性のないインタフェースを用いて記述された既存のソフトウェアコンポーネント(「遺産的」ソフトウェアと呼ばれる場合がある)にどうやってアクセスするかという問題を取り扱わない。
【0007】
異なるインタフェースを具備したソフトウェアコンポーネントが一体的に動作できるようにする一つの解決法は、「ラッパー」と呼ばれる。ラッパーとは、特定のアプリケーション若しくはコンポーネントの(階層的な意味で)上部或いは外部に設けられたソフトウェア構造体である。ラッパーは、ラップされたアプリケーション若しくはコンポーネントと、外部アプリケーション若しくはコンポーネントの間の仲介役として機能する。ラッパーは、外部(呼び出し側)アプリケーション若しくはコンポーネントからの入力命令を受理し、ラップされたアプリケーション若しくはコンポーネントと共通インタフェースを設けることにより、所望のタスクを行うため包み込まれたアプリケーション若しくはコンポーネントを実行させることができる。これは、典型的に、ラップされたソフトウェアからの文字ストリームを手続的或いはオブジェクト指向API(アプリケーション・プログラム・インタフェース)に変換することにより実現される。外部ソフトウェアアプリケーション若しくはコンポーネントは、APIを介してラップされたソフトウェアと相互作用する。このように、ラッパーは、呼び出し元と呼び出し先のアプリケーション若しくはコンポーネントの間の互換性インタフェースの必要性を取り除く。したがって、ラッパーは、汎用的インタフェースと、ラップされたコンポーネントの専用インタフェースとの間で変換機能を実現しているとみなされる。
【0008】
【発明が解決しようとする課題】
しかし、ラッパーの使用によって、ソフトウェアアプリケーション及び/又はコンポーネントインタフェースの不適合の問題は解決されるとしても、従来のラッパー方式には制限がある。従来のラッパー方式の主な欠点は、ラッパーは、ラップされたソフトウェアに専用に合わせて作られることである。すなわち、ラッパーのコードは、ラップされたコンポーネントと同じ言語、C若しくはCOBOLに対する手続的インタフェースの形式、或いは、C++若しくはSmalltalkに対するオブジェクト指向インタフェースの形式で記述される。その結果として、新しいラッパーは、新たにラップされるアプリケーション若しくはコンポーネント毎に記述される必要がある。その上、そのような言語で記述されたラッパーは、ラップされたコンポーネントの変化を受け容れるためユーザが変更できない。このため、ユーザがラッパーをカスタム化し、拡張する能力に重大な制限が生じ、その結果として、ソフトウェアアーキテクチャ自体の柔軟性が制限される。
【0009】
従来のタスク指向アーキテクチャの別の欠点は、データ若しくは文書がアプリケーションの中の異なるコンポーネントの間、又は、異なるアプリケーションのコンポーネントの間で転送される方式に関係する。従来のアーキテクチャの場合、実際のデータ若しくは文書は、コンポーネント間の専用フォーマットで転送される。これにより、交換されるデータ若しくは文書のタイプが制限される。その理由は、交換されるタイプは専用フォーマットに従う必要があり、そのフォーマットに確実にコード化されていないデータタイプが認識されないからである。また、この専用フォーマットによる転送は、コンポーネントが交換されるデータの属性を変えることを許さない。また、これにより、コンポーネントが、そのフォーマットによって定義されたデータ属性以外のデータ属性を操作する必要があるタスクを実行する能力は制限される。
【0010】
したがって、本発明は、異なるインタフェースを有するコンポーネント若しくはアプリケーションへのアクセスを許すためユーザによってカスタム化可能なタスク指向アプリケーションのためのコンピュータソフトウェアアーキテクチャの提供を目的とする。
また、本発明は、このようなコンピュータソフトウェアアーキテクチャを実現するコンピュータハードウェア及び方法の提供を目的とする。
【0011】
【課題を解決するための手段】
本発明のタスク指向アプリケーションのためのソフトウェアアーキテクチャは、外部の呼び出し元アプリケーションと、ラップされたコンポーネント若しくはモジュールとの間に仲介構造としてラッパーを利用する。ラッパーは、スクリプト言語で記述され、外部アプリケーションとラップされたコンポーネントとの間に橋渡し用のインタフェースを提供するため作用する。データは、データ属性情報及び実際のデータへのハイパーリンクを含むコンテンツテーブル(TOC)ファイルの仲介によってコンポーネント間で転送される。
【0012】
また、本発明のコンピュータハードウェア及び方法は、上記本発明のソフトウェアアーキテクチャを実現する。
【0013】
【発明の実施の形態】
本発明の一実施例は、多数のアプリケーションの一部としてのソフトウェアコンポーネント若しくはモジュールの使用を促進するソフトウェアアーキテクチャである。各コンポーネントは指定されたタスク又は機能を実現し、このとき、実行されるコンポーネントの順序及びタイプは実現されるアプリケーションの全体的な機能を決める。個別のコンポーネントはラッパー(又は、ラップ)と呼ばれるソフトウェア構造に包み込まれ、このラッパーは外部ソフトウェアコンポーネントのインタフェースと、包み込まれたコンポーネントのインタフェースとの間の橋渡しを行う。ラッパーは、種々の外部ソフトウェアアプリケーションに包み込まれたコンポーネントを実行させることができる。データ若しくは文書は、従来技術のように実際のデータ若しくは文書を専用フォーマットで転送するのではなく、データ若しくは文書へのハイパーリンクを含むファイルの転送を用いて、二つのソフトウェアコンポーネントの間で転送される。本発明によるラッパーとファイル転送機構の組合せによって、構造化された効率的な形でソフトウェアアプリケーションを実行する柔軟なアーキテクチャが得られる。
【0014】
図1の(A)及び(B)は、呼び出し元プログラムと、ラップされたコンポーネントとの間で橋渡しを行う本発明のラッパーが使用される形態を示すブロック図である。同図の(A)に示されるように、従来のアーキテクチャの場合、呼び出し元プログラム若しくはルーチン(同図の「呼び出し元」)10は、特定のタスクを実現させるためソフトウェアコンポーネント12を呼び出す。呼び出し元10及びコンポーネント12は、典型的に両者間だけに使用される共通インタフェースを有する。この専用性のため、ソフトウェアコンポーネント12にそのタスク又は機能を実行させる呼び出し元アプリケーションの範囲は制限される。
【0015】
図1の(B)には、ラッパー14が呼び出し元プログラム若しくはルーチン10とソフトウェアコンポーネント12の間で橋渡しを行うため使用される形態が示されている。ラッパー14は、コンポーネント12の専用インタフェースを用いてコンポーネント12にアクセスすることが可能であり、また、呼び出し側10との共通インタフェース(同図の「汎用インタフェース」)を介して呼び出し元10と通信を行うことができる。動作中、呼び出し元プログラムはラッパーを呼び出し、ラッパーは包み込まれたコンポーネントを呼び出すため作用する。
【0016】
異なるアプリケーション間でソフトウェアコンポーネントを交換可能にさせるため(すなわち、呼び出させるようにするため)、コンポーネント間で交換されたデータは共通フォーマットを必要とする。この標準フォーマットは汎用インタフェースの要素である。個々のコンポーネントによって処理されるデータのタイプとは無関係に、ラッパーは専用データフォーマットを包み込み、本発明のタスク試行アプリケーションアーキテクチャにかかる汎用インタフェースを設けるため使用され得る。
【0017】
ラッパー14は、専用インタフェースを包み込む上位レベルのソフトウェア構造を提供し、より広い範囲の呼び出し元プログラムがコンポーネント12を実行させることを可能にする。しかし、従来のラッパーに対し、本発明によるラッパーは、ユーザの要求に応じてカスタマイズと拡張を行うことができる。これにより、ラッパーは、呼び出されるコンポーネントの変化、或いは、コンポーネントを呼び出す望ましい順序の変化を反映させるためエンドユーザの要求に応じて変更され得る。
【0018】
これらの本発明の特徴は、従来のラッパーのようなコンパイル言語ではなく、スクリプト言語の形式でラッパーを記述することにより実現される。図2には、本発明を実現するためスクリプト言語で記述されたラッパーが組み込まれたHTML文書のフォーマットが示されている。
HTML文書の場合、スクリプト言語は、文書によって定義された制御構造がユーザによって生成されたイベントの生起に応じて反応する態様(例えば、ボタンの押下、データの選択、別のページからの移動、或いは、別のページへの移動)を記述する。例えば、テキスト「OK」が示され、「OKボタン」と呼ばれるボタンが与えられた場合に、ユーザがこのボタンを選択したときにある動作を実行することが望ましいならば、そのイベントを処理する手続(例えば、サーバーにデータを送信、或いは、指定されたメッセージをユーザに提示)を記述するように関数を作成することが可能である。
【0019】
図2に示されるように、スクリプトは、以下のような形でHTML文書に組み込まれる。
<本文>
任意のHTML
<スクリプト>
スクリプト言語の挿入箇所
<スクリプトの終わり>
任意のHTML
<本文の終わり>
スクリプト言語は、通常HTML自体では実行されない機能を実現する外部コンポーネントをロードし実行させるため使用できる点に注意する必要がある。
【0020】
ラッパーは、インターネットのウェブページのためのHTML文書の作成と同じように作成することができる。しかし、通常のウェブ文書との相違点は、ラッパーが典型的にユーザインタフェース若しくはグラフィックスのためのスクリプトを含まない点である。本発明のラッパー構造は、典型的に、サブルーチンとして機能するスクリプトプログラムを含む。そのため、本発明のラッパーを作成するためテキストエディタを使用してもよい。これにより、ラッパーを簡便に編集、実行することができるので、ラッパーのプロトタイプを素早く作成するために役立つ。
【0021】
図2に示されたコードは、典型的なHTML文書の骨格だけを表している。本発明のラッパーのために以下の二つの特徴が要求されることに注意する必要がある。
(1)呼び出し先のコンポーネントは<Object>タグで宣言される。このスクリプトは、コンポーネントをロードし、実行する。
【0022】
(2)関数は、<Script>タグの後に置かれる。この関数は、呼び出し元アプリケーションとコンポーネントの間を仲介し、図2の「スクリプトプログラムが挿入される箇所」に置かれる。
ラッパーの関数部は、スクリプト言語仕様に準拠して記述される。例えば、JavaScriptの場合、関数は以下のフォーマットで指定される。
【0023】
function public_AnyName()
{
// 任意の手続の挿入箇所
}
ここで、public_の形の接頭辞は、他のプログラムがラッパーの外部からこのスクリプトにアクセスするため必要である。
【0024】
ラッパーをスクリプト言語で記述する利点は、エンドユーザが書き換えることができる点である。これは、エンドユーザがソースコードを利用できないコンパイラベースの言語(例えば、C++)によって記述されたラッパーの場合には実現できない点である。従来のラッパーはコンパイラベースであるため、多数の開発者が使用することができず、コンポーネントインタフェース又はコンテンツの変更に適合するようにラッパーによって呼び出されるコンポーネントを変更したいエンドユーザの希望を打ち破っている。
【0025】
上記の通り、本発明のラッパーは、アプリケーションの拡張及びカスタマイズを行うためエンドユーザによって容易に変更することができる。例えば、ラッパーのコンテンツに対する変更は、以下のような状況で求められる。
(1)ラッパーによって呼び出されたコンポーネントのインタフェースが変更されたとき。この状況では、本発明のラッパーは新しいインタフェースに適合するように変更される。
【0026】
(2)呼び出し先のコンポーネントを変更したいとき。一般的にラッパーのスクリプトには、コンポーネントの名前若しくは他の形式の識別情報が含まれる。編集できないラッパーの場合、開発者だけが呼び出し先のコンポーネントを変更することができる。本発明の場合、編集可能なラッパーによって、エンドユーザは、呼び出し先のコンポーネントが変更できるように、ラッパーのコンテンツを変更することが可能である。
【0027】
一例として、呼び出し先のコンポーネントがスペルチェッカーである場合を考える。異なる辞書を必要とするため、異なるインタフェースをもつ改良型のスペルチェッカーが後で開発されたとする。この状況では、ラッパーは新しいコンポーネントと適合するように変更することが可能である。次に、アプリケーションは、別の言語のためのスペルチェッカーを実装することを要求する。このとき、ラッパーは、スペルチェッカーの名前を「コンポーネント1」から「コンポーネント2」に変更するだけで済むので、僅かな変更しか必要とされない。
【0028】
図3は、外部の呼び出し元プログラムが、本発明のアーキテクチャのラッパーを仲介として、ラップされたコンポーネントを実行させるときの主要なステップを示すフローチャートである。同図に示されるように、呼び出し元アプリケーション(呼び出し元)は、通常の関数を呼び出す場合と同様に、ラッパーのスクリプトに指定された関数f(x,y)を呼び出す。呼び出し元は、通常の関数呼び出しで使用される方法であらゆる引数(すなわち、x、yのようなパラメータ)を渡す。コンポーネントに含まれる目的関数g(u,v,w)を呼び出すため、ブロック図の中程に示されるように、入力パラメータ(x,y)を呼び出し元フォーマットからコンポーネント固有のフォーマットに変換する手続が要求される。このスクリプトの箇所は、ロジックを関数g(u,v,w)の仕様に適合させるため必要に応じて変更される。
【0029】
例えば、関数f(x,y)は、(例えば)引数xのようなスプレッドシートファイル名を許容し、関数gが引数uのようなデータベースファイル名だけを許容する場合、ラッパーは、調整若しくは変更ステップにおいて、要求に応じてデータを変換する。データベースのデータフォーマット若しくは仕様が変更された場合、このラッパーの箇所は変更され、図3の下部に示されたコンポーネント呼び出しは新しい関数、例えば、h(s,t)によって置き換えられる。
【0030】
図4は、本発明のアーキテクチャに従って構成されたラッパーと関連したタスク実現用コンポーネントのアーキテクチャ及び疑似コードの一例を示すブロック図である。同図では、呼び出し元は、タスク指向アプリケーションを表現し、そこから関数RenderTextが呼び出される場合を想定する。この関数RenderTextを含むコンポーネントを包み込むラッパーは、呼び出し元コードの1行目にラッパー名を宣言することによって呼び出し元と関連付けられる。遂行されるべきタスクに依存して、呼び出し元は、例えば、音声ラッパー若しくは翻訳ラッパーを呼び出す。図示した例の場合、音声ラッパーが所望の関数と関連付けられている場合、この関数はテキスト文字列をコンピュータ合成音声を用いて読ませる。この場合、音声ラッパーから呼び出された音声コンポーネントがこのタスクを実行する。本発明のラッパー機構の重要な利点は、ラッパースクリプトを変更するだけでアプリケーションの特徴を変更できる点である。音声コンポーネントの変わりに、テキスト部を翻訳することが望ましいならば、本例の場合に、ラッパースクリプトの数行と、アプリケーションの最初の行とを変更するだけでよい。本例の場合、翻訳ラッパーは選択されたテキストを用いて翻訳コンポーネントを実行させるため呼び出される。ラッパーはスクリプトで記述されているため、新しいソースコードを生成し、コンパイルし、デバッグする必要がない。また、コンパイル形式の言語で記述されたラッパーは、屡々、コンポーネントの名前若しくは識別情報がソースコードに確実にコード化されることを要求するので、特定のコンポーネントに依存する。このため、新しいコンポーネント若しくは既存のコンポーネントの新しい使い方に適合するよう変更することに関してラッパーの柔軟性が制限される。
【0031】
本発明のアーキテクチャの第2の重要な面は、ソフトウェアコンポーネント間でデータ若しくは文書転送を容易に行うため、特定のデータフォーマットを使用することである。このデータフォーマットは、異なるタイプ及びフォーマットの文書の取扱を簡単化し、ソフトウェアコンポーネントによって関心のある上記データ若しくは文書属性を識別し、コンポーネントに転送できるようにする。
【0032】
図5の(A)は、データが従来のアーキテクチャで2個のコンポーネントの間で伝達される態様を示し、(B)は、本発明のアーキテクチャに従ってデータがコンテンツテーブルのフォーマットを使用して伝達される態様を示す図である。同図の(A)に示されるように、従来のアーキテクチャの場合、コンポーネントAは、コンポーネントBへの入力としてデータ若しくは文書を専用フォーマットで転送する。これにより、実施できる転送は、予め認識された専用フォーマットでフォーマット済みのデータに限定される。
【0033】
同図の(B)に示されるように、本発明のアーキテクチャの場合、HTMLファイルフォーマット(若しくは、別の適当なマークアップ言語)が、コンテンツテーブル(TOC)ファイルを生成するため使用される。本発明によるTOCファイルは、データベースファイルと類似したデータレコードを収容する。かかるTOCレコードの重要なフィールドは、文書へのハイパーリンクである。連結された文書は、このアーキテクチャのソフトウェアコンポーネントによって入力ファイルとして取り扱われる。本発明のアーキテクチャの場合に、コンポーネントが文書をそのまま受信することはない。その代わりに、TOCファイルが伝達され、コンポーネントはファイル内のリンクを介して文書にアクセスする。コンポーネントはデータファイルを作成する場合があるが、コンポーネントは、ファイルをそのまま他のコンポーネントに送信することがない。その代わりに、コンポーネントは、TOCファイルを作成、若しくは、更新し、更新されたTOCフィル内の文書にリンクを張る。
【0034】
ハイパーリンクと共に、各レコードはデフォルトとして以下の属性データを収容する。
(1)情報タイプInfotype:ブラウジングツール等で使用される情報のタイプ
(2)IsRead:レコードが開かれたかどうかを示すため、メッセージボードのようなリストブラウジングツールで使用される属性
(3)主題Subject:レコードにリンクされたコンテンツの主題若しくはタイトル
(4)送信者Sender:メッセージ源のアドレス
(5)日付Date:メッセージが取得された日付
HTML若しくは他の類似したマークアップ言語フォーマットを使用することにより、幾つかの重大な利点が得られる。このフォーマットは、公開され、かつ、標準化されている。すなわち、標準的な方法を用いて容易に構文解析できることを意味する。また、インターネットを支援するあらゆるプラットフォームでも利用できる。
【0035】
データを間接的に(ハイパーリンク若しくは別の形式のリンクの媒体を介して)参照するためTOCを使用することによって、本発明のアーキテクチャは、あらゆるタイプの文書を許容できるようになる。文書の付加的な特性(属性)は、HTML若しくは他のマークアップ言語を用いて一方のコンポーネントから他方のコンポーネントに伝達され得る。コンポーネントは、属性をTOCに追加しても構わない。例えば、コンポーネントは、「要約」のような属性を追加する。また、コンポーネントは、実行の際に不要な属性を無視することが可能である。例えば、コンポーネントは、実行時には、属性IsReadの値に依存しない。しかし、コンポーネントに入力されたTOCに含まれるすべての属性は、そのコンポーネントから出力されるTOCに保存されていなければならないことに注意する必要がある。
【0036】
上述の通り、TOCファイルは、HTML若しくはXMLのようなマークアップ言語で記述できる。尚、HTMLはインターネット上のウェブページを記述するため普及している言語であり、XMLはデータ構造を記述するため使用される言語である。TOCファイルは、文書ファイルにアクセスするためのハイパーリンクを含む。ハイパーリンクは、(例えば)ハードディスクドライブ上のメモリに記憶された文書のファイル名を含んでもよく、或いは、インターネット上の文書のアドレスを表してもよい。
【0037】
上述の通り、TOCは、連結された文書毎に情報、例えば、連結された文書の作成日付、連結された文書のタイトル、或いは、連結された文書の要約を格納する。一例として、XMLで記述されたTOCファイルは、以下の通りである。
<DateSent>00/00/0000</DateSent>
<Title>Patent Application</Title>
<Summary>This document is a patent application for ... </Summary>
上記の通り、他のデータをTOCに追加してもよい。例えば、呼び出し先のソフトウェアコンポーネントが「文書が読まれたとき」に関するデータを必要とする場合、この情報を表現するタグがTOCファイルに追加され得る。
【0038】
<DateRead>00/00/0000</DateRead>
TOCファイルの一般的な構造を以下に示す。
・データフィールド定義
・ヘッダ(オプション)
・レコード番号1(内部に数フィールドを含む)
・レコード番号2(内部に数フィールドを含む)
・レコード番号n(内部に数フィールドを含む)
図6は、本発明のアーキテクチャと共に使用するのに適したHTMLで記述されたTOCファイルの一例を示すリストである。TOCファイルのスタイルStyle部は、ファイル内のデータフィールドを定義する。図6に示されたTOCファイルの例は、データレコードに5個のフィールド(例えば、infotype、IsRead等)を有する。TOCファイルのTable部は、テーブルのヘッダ(スレッドthread)と、3個のデータレコードとを含む。各データレコードは、スタイル部に定義されたフィールド毎に対応したデータを含む。本例のTOCファイルはデータ構造を記述するためテーブルタグTableを使用しているが、他のタグを使用しても構わない。
【0039】
本発明によるタスク指向アプリケーション用のアーキテクチャ及びファイル転送フォーマットについての説明を行った。このアーキテクチャには、複数のソフトウェアコンポーネントが含まれ、各コンポーネントは所望のタスク若しくは機能を実行できる。各コンポーネントはラッパー構造によって包み込まれ、これにより、呼び出し元アプリケーションとコンポーネントとの間に仲介が得られる。ラッパーは、スクリプト言語で記述され、新しいコンポーネントに適合し、或いは、既存のコンポーネントの変更に適合するようテキストエディタによって簡単に変更することができる。データ若しくは文書は、実際のデータ若しくは文書を専用フォーマットで転送する代わりに、データファイル若しくは文書へのリンクを含むファイルを転送することによって、コンポーネント間で転送される。本発明のアーキテクチャ及びファイル転送機構は、エンドユーザが実行されるソフトウェアコンポーネントの順序及びタイプをカスタマイズ、並びに、拡張することを許容する。
【0040】
本発明のアーキテクチャは、コンピュータのコントローラ若しくは中央処理ユニット(CPU)によって実行されるソフトウェアの形式で実現され、ソフトウェアはCPUと関連したメモリ(例えば、ROM)、或いは、CPUによってアクセスされる他のタイプの記憶媒体に記憶される。本発明のアーキテクチャは、コンピューティング装置へのコネクション(例えば、インターネット)を介してダウンロードされ得るプログラムとしても提供され、そのコンピューティング装置によって実行される構成でもよい。
【0041】
上記の説明で使用された用語及び表現は説明のために使用されたものであり、本発明を制限するものではなく、また、これらの用語及び表現を使用することにより、図面及び明細書に開示された特徴若しくはその一部の等価物を除外することを意図するものではない。上記実施例は、特許請求の範囲に記載された本発明の範囲を逸脱することなく、種々の変形をなし得ることが認められるべきである。
【図面の簡単な説明】
【図1】(A)及び(B)は、本発明のラッパーが呼び出し元のプログラムとラップされたコンポーネントとの間で橋渡しを行うため使用される態様を説明するブロック図である。
【図2】本発明を実現するためスクリプトで記述されたラッパーが組み込まれたHTML文書のフォーマットを示す図である。
【図3】外部の呼び出し元プログラムが本発明のアーキテクチャのラッパーを介してラップされたコンポーネントを実行させるときの主要なステップを示すフローチャートである。
【図4】本発明のアーキテクチャに従って構築されたラッパー及び関連したタスク実現用コンポーネントのアーキテクチャ及び疑似コードの一例を示す図である。
【図5】(A)及び(B)は、従来のアーキテクチャにおいて2個のコンポーネントの間でデータが伝達される態様、及び、本発明のアーキテクチャに従ってコンテンツテーブルのフォーマットを使用して2個のコンポーネントの間でデータが伝達される態様を表す図である。
【図6】本発明のアーキテクチャと共に使用するため適したHTMLで記述されたコンテンツテーブルファイルの一例を示すリストである。
【符号の説明】
10 呼び出し元プログラム
12 ソフトウェアコンポーネント
14 ラッパー
Claims (13)
- プログラムを記憶したコンピュータ読み取り可能な媒体であって、
スクリプト言語で記述され且つエンドユーザにより修正可能なラッパーコンポーネントをメモリにロードし、複数の所望の機能を実現し得る複数のソフトウエアコンポーネントをメモリにロードするステップであって、上記ラッパーコンポーネントは上記ソフトウエアコンポーネントの1つに関連付けられ、上記ラッパーコンポーネントは外部アプリケーションによって呼び出されるよう構成され且つ関連するソフトウエアコンポーネントを呼び出すように構成され、上記関連するソフトウエアコンポーネントは、上記外部アプリケーションによって使用可能なアプリケーションプログラムインターフェース(API)を有していないステップと、
上記ラッパーコンポーネントを呼び出し、関連するソフトウエアコンポーネントを呼び出すステップと、
を有し、該関連するソフトウエアコンポーネント及び他のソフトウエアコンポーネント間では、データ又は文書は実際には転送されないが、該データ又は文書へのリンクを含むコンテンツテーブルが転送され、
上記関連する又は他のソフトウエアコンポーネントは、上記コンテンツテーブルを受信し上記リンクを介して上記データ又は文書データにアクセスし、
上記データ又は文書と上記コンテンツテーブルとは別個のファイルに含まれるようにした方法をコンピュータに実行させるプログラムを記憶した媒体。 - 上記複数のソフトウエアコンポーネントの外部アプリケーションにより、所望のシーケンスにおけるソフトウエアコンポーネント及び上記ラッパーコンポーネントが呼び出される請求項1記載のコンピュータ読み取り可能な媒体。
- 上記コンテンツテーブルが、上記データ又は文書の属性と関連した属性データも含む請求項1記載のコンピュータ読み取り可能な媒体。
- 上記スクリプト言語はHTML文書に組み込まれるものである請求項1記載のコンピュータ読み取り可能な媒体。
- 複数のタスクを実行可能であり且つコンピュータで実行可能な以下のステップを有する方法であって、
複数のラッパーコンポーネントをメモリにロードし、複数のソフトウエアコンポーネントをメモリにロードするステップであって、各ソフトウエアコンポーネントはタスクの1つを実行するよう構成されており、各ラッパーコンポーネントは、各自のソフトウエアコンポーネントに関連し且つスクリプト言語で記述されエンドユーザによって修正可能であり、各ラッパーコンポーネントは外部アプリケーションによって呼び出され且つ関連するソフトウエアコンポーネントを呼び出すように構成され、上記関連するソフトウエアコンポーネントは上記ラッパーコンポーネントによって使用可能なアプリケーションプログラムインターフェース(API)を有していないステップと、
上記複数のタスクのシーケンスを決めるステップと、
上記シーケンス内の各タスクに対応するソフトウエアコンポーネントに関連する上記ラッパーコンポーネントを呼び出し、該ラッパーコンポーネントに対応するソフトウエアコンポーネントを起動し、関連するタスクを実行するステップと、
を有し、第1のソフトウエアコンポーネント及び第2のソフトウエアコンポーネントの間では、データ又は文書は実際には転送されないが、該データ又は文書へのリンクを含むコンテンツテーブルが転送され、
上記第1又は第2のソフトウエアコンポーネントは、上記コンテンツテーブルを受信し上記リンクを介して上記データ又は文書データにアクセスするようにした方法。 - 上記ラッパーコンポーネントをロードするステップが、HTML文書中にあるスクリプト言語で記述された上記ラッパーコンポーネントをロードするステップを更に有する請求項5記載の方法。
- 上記コンテンツテーブルが、上記データ又は文書の属性に関連する属性データも含む請求項5記載の方法。
- 複数のタスクを実行するソフトウエアプリケーションを動作させ且つコンピュータによって実行される以下のステップを有する方法であって、
上記ソフトウエアコンポーネント各々に関連したラッパー構造をメモリにロードし、複数のソフトウエアコンポーネントをメモリにロードするステップであって、各ソフトウエアコンポーネントは対応するタスクを実行可能であるステップと、
アプリケーションの一部として制御構造をメモリにロードするステップであって、上記制御構造は、ユーザによって生起されるイベントに対応する動作を規定し、上記制御構造により、所望のタスクを実行するため上記ソフトウエアコンポーネントのシーケンスの呼び出しを行うステップと、
を有し、上記ラッパー構造はスクリプト言語で記述され、エンドユーザによって修正可能であり、
上記制御構造によって設定される呼び出しシーケンスにおけるソフトウエアコンポーネント各々の呼び出しは、各ソフトウエアコンポーネントに関連した上記ラッパー構造を呼び出し、該ラッパー構造により所望のソフトウエアコンポーネントを呼び出すことで行われ、
上記タスクを実行する際に、データ又は文書自体ではなく、上記データ又は文書へのリンクを含むコンテンツテーブルが、第1及び第2のソフトウエアコンポーネントの間で転送され、上記第1又は第2のソフトウエアコンポーネントは、上記コンテンツテーブルを受信し上記リンクを介して上記データ又は文書へアクセスするようにした方法。 - 上記コンテンツテーブルが、上記データ若しくは文書の属性と関連したデータも含む請求項8記載の方法。
- 上記ラッパー構造をロードするステップが、HTML文書中にあるスクリプト言語で記述された上記ラッパー構造をロードするステップを更に有する請求項8記載の方法。
- タスク指向アプリケーションを実行する装置であって、
所望の第1機能、所望の第2機能、スクリプト言語で記述されたラッパーコンポーネントの機能を実行するための命令を有する記憶媒体と、
上記記憶媒体にエンコードされた命令を実行する処理ユニットであって、上記命令は上記処理ユニットにより読み出し可能である処理ユニットと、
を有し、上記ラッパーコンポーネントは、外部アプリケーションによって呼び出され、上記所望の第1機能を実行する命令を呼び出すよう構成され、上記所望の第1機能のための命令は、上記外部アプリケーションによって使用可能なアプリケーションプログラムインターフェース(API)を備えておらず、
上記外部アプリケーションから呼び出された場合に上記ラッパーコンポーネントは起動し、
上記第1及び第2機能を実行するモジュール間では、データ又は文書へのリンクを含むコンテンツテーブルが転送され、上記第1又は第2機能を実行するモジュールは、上記コンテンツテーブルを受信し上記リンクを介して上記データ又は文書へアクセスし、
上記コンテンツテーブル及び上記データ又は文書はコンピュータ読取可能な媒体上で上別個のファイルに格納されるようにした装置。 - 上記ラッパーコンポーネントは、スクリプト言語で記述され、ユーザにより修正可能である請求項11記載の装置。
- 上記コンテンツテーブルが、上記データ又は文書の属性に関連する属性データも含む請求項11記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/183,334 US6442749B1 (en) | 1998-10-30 | 1998-10-30 | Apparatus, method and architecture for task oriented applications |
US183334 | 1998-10-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000181717A JP2000181717A (ja) | 2000-06-30 |
JP4146590B2 true JP4146590B2 (ja) | 2008-09-10 |
Family
ID=22672390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30951499A Expired - Fee Related JP4146590B2 (ja) | 1998-10-30 | 1999-10-29 | タスク指向アプリケーションのための装置、方法及び記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6442749B1 (ja) |
EP (1) | EP1001337A3 (ja) |
JP (1) | JP4146590B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7117208B2 (ja) | 2017-09-27 | 2022-08-12 | 三星電子株式会社 | センシング動作を一定に制御するビットラインセンスアンプを含むメモリ装置 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6792576B1 (en) * | 1999-07-26 | 2004-09-14 | Xerox Corporation | System and method of automatic wrapper grammar generation |
US6931623B2 (en) * | 1999-08-30 | 2005-08-16 | Touchnet Information Systems, Inc. | Method of accessing data and logic on existing systems through dynamic construction of software components |
US6817017B2 (en) * | 2000-04-24 | 2004-11-09 | Leotel, Technologies, Inc. | Universal interface system |
US7133829B2 (en) | 2001-10-31 | 2006-11-07 | Dictaphone Corporation | Dynamic insertion of a speech recognition engine within a distributed speech recognition system |
EP1365322A1 (en) * | 2002-05-23 | 2003-11-26 | Hewlett-Packard Company | Improvements relating to computer programs |
US7035841B2 (en) * | 2002-07-18 | 2006-04-25 | Xerox Corporation | Method for automatic wrapper repair |
US7689709B2 (en) * | 2002-12-13 | 2010-03-30 | Sap Ag | Native format tunneling |
US6898269B2 (en) * | 2003-02-10 | 2005-05-24 | Ge Medical Systems Global Technology Company, Llc | Methods and apparatus for x-ray images |
US8036908B2 (en) * | 2004-10-08 | 2011-10-11 | Sap Aktiengesellschaft | System and method for the assembly of programs |
US7900152B2 (en) | 2005-03-03 | 2011-03-01 | Microsoft Corporation | Adaptable user interface for business software |
US7917555B2 (en) | 2005-03-03 | 2011-03-29 | Microsoft Corporation | Creating, storing and viewing process models |
US8015549B2 (en) | 2005-05-10 | 2011-09-06 | Novell, Inc. | Techniques for monitoring application calls |
US9075920B1 (en) * | 2005-07-22 | 2015-07-07 | Oracle America, Inc. | Integrating software-tests with software development environments or tools that can assist software-testing |
GB2433396B (en) * | 2005-12-15 | 2010-06-23 | Bridgeworks Ltd | A bridge |
GB2436627B (en) * | 2006-03-29 | 2011-04-20 | Bridgeworks Ltd | Message handling |
US8656382B2 (en) * | 2006-09-14 | 2014-02-18 | International Business Machines Corporation | Preventing an incompatible class exception caused by incompatible class loaders |
JP4338724B2 (ja) | 2006-09-28 | 2009-10-07 | 沖電気工業株式会社 | 電話端末、電話通信システム及び電話端末構成用プログラム |
US9888092B2 (en) * | 2008-04-28 | 2018-02-06 | Oracle International Corporation | System and method for executing third party module with web servers |
GB2471463A (en) * | 2009-06-29 | 2011-01-05 | Nokia Corp | Software component wrappers for multimedia subcomponents that control the performance of the multimedia function of the subcomponents. |
US8488951B2 (en) * | 2009-07-09 | 2013-07-16 | Nvidia Corporation | Multimedia framework to provide ultra-low power multimedia playback |
JP5482011B2 (ja) | 2009-08-11 | 2014-04-23 | 株式会社リコー | 画像形成装置、プログラム管理システム、プログラム管理方法、及びプログラム管理プログラム |
WO2017007775A2 (en) | 2015-07-06 | 2017-01-12 | Abbott Diabetes Care Inc. | Systems, devices, and methods for episode detection and evaluation |
US10705835B2 (en) * | 2015-12-03 | 2020-07-07 | International Business Machines Corporation | Transparent multi-architecture support in a container based cloud |
CN107729063A (zh) * | 2017-10-25 | 2018-02-23 | 武汉斗鱼网络科技有限公司 | 软件开发工具包的调用方法、装置及终端 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5175854A (en) * | 1989-06-19 | 1992-12-29 | Digital Equipment Corporation | Inter-applicataion interface system |
US5430836A (en) | 1991-03-01 | 1995-07-04 | Ast Research, Inc. | Application control module for common user access interface |
SE469859B (sv) * | 1992-03-13 | 1993-09-27 | Icl Systems Ab | Sätt att utöka funktionaliteten hos ett datorprogram samt datorsystem för genomförande av sättet |
US5473777A (en) | 1993-07-19 | 1995-12-05 | Moeller; Christopher P. | Wrapper for enabling an object otented application to maintain virtual memory using procedural function calls |
US5379432A (en) | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
IL111154A0 (en) | 1993-10-21 | 1994-12-29 | Martino Ii John A | Systems and methods for electronic messaging |
US5806079A (en) | 1993-11-19 | 1998-09-08 | Smartpatents, Inc. | System, method, and computer program product for using intelligent notes to organize, link, and manipulate disparate data objects |
US5623679A (en) | 1993-11-19 | 1997-04-22 | Waverley Holdings, Inc. | System and method for creating and manipulating notes each containing multiple sub-notes, and linking the sub-notes to portions of data objects |
US5761656A (en) | 1995-06-26 | 1998-06-02 | Netdynamics, Inc. | Interaction between databases and graphical user interfaces |
US6016392A (en) * | 1995-11-03 | 2000-01-18 | Intergraph Corporation | Method for object-oriented programming using dynamic interfaces |
US6336146B1 (en) * | 1995-12-22 | 2002-01-01 | Sun Microsystems, Inc. | Method and apparatus for docking, launching and running applications in a foreign environment |
US5815663A (en) * | 1996-03-15 | 1998-09-29 | The Robert G. Uomini And Louise B. Bidwell Trust | Distributed posting system using an indirect reference protocol |
US6179489B1 (en) * | 1997-04-04 | 2001-01-30 | Texas Instruments Incorporated | Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto |
US5974258A (en) * | 1997-07-18 | 1999-10-26 | International Business Machines Corporation | Method and apparatus for performing single-function software operations on a server processor for a target of one or more processors in a network of processors |
US5978579A (en) * | 1997-08-12 | 1999-11-02 | International Business Machines Corporation | Architecture for customizable component system |
US6009525A (en) * | 1997-08-29 | 1999-12-28 | Preview Systems, Inc. | Multi-tier electronic software distribution |
US6044469A (en) * | 1997-08-29 | 2000-03-28 | Preview Software | Software publisher or distributor configurable software security mechanism |
US5960202A (en) * | 1997-10-31 | 1999-09-28 | Hewlett Packard Company | Method and apparatus for automatically logging compiler options and/or overriding compiler options |
US5966707A (en) * | 1997-12-02 | 1999-10-12 | International Business Machines Corporation | Method for managing a plurality of data processes residing in heterogeneous data repositories |
US5953534A (en) * | 1997-12-23 | 1999-09-14 | University Of Washington | Environment manipulation for executing modified executable and dynamically-loaded library files |
US6163794A (en) * | 1998-10-23 | 2000-12-19 | General Magic | Network system extensible by users |
-
1998
- 1998-10-30 US US09/183,334 patent/US6442749B1/en not_active Expired - Fee Related
-
1999
- 1999-10-28 EP EP99308546A patent/EP1001337A3/en not_active Withdrawn
- 1999-10-29 JP JP30951499A patent/JP4146590B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7117208B2 (ja) | 2017-09-27 | 2022-08-12 | 三星電子株式会社 | センシング動作を一定に制御するビットラインセンスアンプを含むメモリ装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1001337A2 (en) | 2000-05-17 |
US6442749B1 (en) | 2002-08-27 |
EP1001337A3 (en) | 2002-06-19 |
JP2000181717A (ja) | 2000-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4146590B2 (ja) | タスク指向アプリケーションのための装置、方法及び記録媒体 | |
JP5010551B2 (ja) | 動的ウェブページコンテンツファイルからのサーバ側コード生成 | |
US9626345B2 (en) | XML streaming transformer (XST) | |
JP4015375B2 (ja) | クライアント側ユーザインタフェース要素を処理するサーバ側制御オブジェクト | |
US8327328B2 (en) | System and method for creating target byte code | |
US8423953B2 (en) | System and method for creating target byte code | |
CN100487644C (zh) | 用于模拟服务器页面的处理的系统和方法 | |
JP2005011345A (ja) | コードセグメント作成方法及びそのシステム | |
JPH11110194A (ja) | 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体 | |
Syme et al. | Expert F♯ 2.0 | |
Thakkar | Building react apps with server-side rendering | |
US6785880B1 (en) | Tooling framework system and method for code generation | |
Miller et al. | Integrating a command shell into a web browser | |
Monnier et al. | Evolution of emacs lisp | |
Thakkar | Building React Apps with Server-Side Rendering: Use React, Redux, and Next to Build Full Server-Side Rendering Applications | |
Golubovsky et al. | Yhc. Core–from Haskell to Core | |
Bosanac | Scripting in Java: Languages, Frameworks, and Patterns | |
Kienle et al. | A WSAD-based fact extractor for J2EE web projects | |
KR100319765B1 (ko) | 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동장치 및 그 방법 | |
Schneider et al. | Scripting: Higher-level programming for component-based systems | |
Strazzullo | Frameworkless Front-End Development | |
Williams et al. | An Introduction to Asynchronous Programming with Twisted | |
Miller et al. | INTEGR AT INGACOMMANDSHELL INTOAWEBBROWSER | |
Badros et al. | The Extensible Templating Language: An XML-based Restricted Markup-Generating Laguage. | |
Chen | COM-tester: a script testing tool for MS COM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070220 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070619 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070817 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080415 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080501 |
|
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: 20080617 |
|
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: 20080620 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110627 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |