JP3777196B2 - クライアント/サーバシステム用の通信制御装置 - Google Patents

クライアント/サーバシステム用の通信制御装置 Download PDF

Info

Publication number
JP3777196B2
JP3777196B2 JP12195794A JP12195794A JP3777196B2 JP 3777196 B2 JP3777196 B2 JP 3777196B2 JP 12195794 A JP12195794 A JP 12195794A JP 12195794 A JP12195794 A JP 12195794A JP 3777196 B2 JP3777196 B2 JP 3777196B2
Authority
JP
Japan
Prior art keywords
data
communication
application
server
server application
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
JP12195794A
Other languages
English (en)
Other versions
JPH07306821A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP12195794A priority Critical patent/JP3777196B2/ja
Publication of JPH07306821A publication Critical patent/JPH07306821A/ja
Priority to US08/968,477 priority patent/US5873086A/en
Application granted granted Critical
Publication of JP3777196B2 publication Critical patent/JP3777196B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、クライアント/サーバシステムに係り、特にフロントエンド処理用のアプリケーション(クライアント・アプリケーション)をクライアント・マシン側にバックエンド処理用のアプリケーション(サーバ・アプリケーション)をサーバ・マシン側に実装する形態のクライアント/サーバシステムで両アプリケーション間のメッセージの授受を制御する通信制御装置に関する。
【0002】
【従来の技術】
企業の情報システムでパソコンLANが定着すると共に、クライアント/サーバシステム、特にクライアント/サーバ型のデータベースシステムへの関心が高まっている。
【0003】
クライアント/サーバ型データベースシステムは、ホスト集中型のデータベースシステムに比べて数々のメリットが得られる。すなわち、マルチベンダ環境でデータベースアプリケーションが実現できる。サーバ側とクライアント側で処理を分担できるので、パフォーマンスが高い。エンド・ユーザが4GL(第4世代言語)を用いて容易に業務に適したアプリケーションを開発できる。ユーザは、ミドルウェアを利用することにより表計算などの流通ソフト(パッケージ・ソフトウェア)を用いてデータベース・サーバから受け取った結果を好みに合わせて加工できる。分散型データベースを構築することにより、データの分散化が可能となり、またミラーリング機能によりシステム・ダウン時の損失を最小限に抑えることができる。クライアント・マシンとして低価格なパーソナル・コンピュータ(パソコン)を利用できるので、システムを低コストで構築できるなどである。また、クライアント・マシンとしてのパソコンを基幹業務と連携させて利用していくことにより業務の効率化がはかれる。
【0004】
クライアント/サーバ型データベースシステムにおいて、クライアント・マシン上に実装されたクライアント・アプリケーションがデータベース・サーバマシン(以後、データベース・サーバと記述)のデータベースをアクセスする形態に、RDA(リモート・データベース・アクセス:Remote Data Base Access )とRPC(リモート・プロセジャ・コール:Remote Procedure Call)がある。
【0005】
RDAは、ISO(国際標準化機構)が定めたリモート・データベース・アクセスの標準プロトコルであるRDAプロトコルを用いてクライアント・アプリケーションがデータベースをアクセスするものである。この場合、データベース・サーバ側に、クライアント・アプリケーションがネットワークを介して送信してくるSQL文を直接、DBMS(データベース管理システム)に渡し、該DBMSからの結果を、クライアント・アプリケーションに返すミドルウェア(以後、RDAサーバと呼ぶ)を設ける。このため、クライアント・アプリケーションの開発者は、データベース・サーバ上のデータベースの構成を直接知っている必要がある。
【0006】
一方、RPCはクライアント・アプリケーションがデータベース・サーバ上に実装されたサーバ・アプリケーションを、あたかもサブルーチンのようにネットワークを介して呼び出させて業務処理の一部分(手続き)を実行させ、該サーバアプリケーションからその結果を受け取ることにより分散アプリケーションを実現するものである。RPC機能を利用することにより、協調分散処理を容易に実現することができる。協調分散処理とは、1つのトランザクション処理をクライアント・マシンと1または複数台のデータベース・サーバに振り分けて処理するものである。これにより、UNIXデータベース・サーバのように比較的小さなマシンでも、複数台のサーバを使って大規模なOLTPシステム(オンライン・トランザクション処理システム)を構築できる。
【0007】
【発明が解決しようとする課題】
まず、クライアント・アプリケーションがRDAによりデータベース・サーバをアクセスする形態のC/Sデータベースシステム(クライアント/サーバ型データベースシステム)の問題点を述べる。
【0008】
この形態においては、クライアント・アプリケーションの開発者はデータベース・サーバ上のデータベースの構成を知っている必要がある。したがって、該データベースの設計を行うデータベース管理者とクライアント・アプリケーションの開発者は、互いに密接な関係を保ちながらそれぞれの設計・開発を行う必要がある。
【0009】
また、クライアント・アプリケーションの内容とデータベース構造が互いに影響し合う。このため、データベース管理は、データベース構造を変更する際にも、該変更が現在のクライアント・アプリケーションにどの程度まで影響するかを考慮せねばならず、クライアント・アプリケーションの内容にまで精通していなければならないなどの問題があった。
【0010】
また、上述したような構成であるが故に、データベースの構造変更(データベースの分離/配置替え等)時には、必然的にクライアント・アプリケーションを修正する必要がある。
【0011】
図25は、その一例である。この場合、業務追加等によりデータベースサーバ1のデータベースDB1のテーブル2(TABLE1)の項目数が増加し、アクセス性能が劣化したので、同図(B)に示すように該テーブル2(TABLE1)をテーブル3(TABLE1−1)とテーブル4(TABLE1−2)に分割した。これにより、クライアント・マシン6上のクライアント・アプリケーション7の一部は、同図(A)に示す内容(INSERT TABLE1)から同図(B)に示す内容(INSERT TABLE1−1,INSERT TABLE1−2)に修正される。このため、該修正作業が新たなコスト増を招く、クライアント・マシンが一時的に使用できなくなる等の弊害をもたらしていた。
【0012】
また、データベース・サーバの管理者にとっても、利用者の業務に支障をきたさないように、データベースの負荷分散やデータ管理単位に係わる変更作業はクライアント・アプリケーションの変更時と同一期間内に作業する必要があるなど、変更作業が可能な期間が制限されるなどの問題があった。
【0013】
さらに、データベースのテーブル構成を、直接利用者に公開するため、利用者側でのデータの利用形態とデータベースの管理形態の両局面を考慮してデータベースのテーブル設計をする必要があり、システムを構築する上でテーブル設計が非常に難しいものとなっている。
【0014】
また、RDAにおいては、図26に模式的に示すように、例えば受注処理のような業務を行う場合、クライアント・アプリケーション11は、顧客チェック、在庫チェック、在庫更新、受注登録などの処理をSQL文によりデータベース・サーバ20に対して依頼する。また、各SQL文の発行は前回のSQL文に対する応答をデータベース・サーバ20から受け取った後に行う。このため該受注処理の間、クライアント・マシン10とデータベース・サーバ20との間で、何回もデータの送受信が行われることになる。このため、ネットワークのトラフィック量が増大し、システムの処理性能が落ちる場合がある。
【0015】
また、さらに、RDAでは、クライアント・アプリケーションからのSQL文の依頼がRDAサーバを介して直ちにDBMSに渡されるので、システム管理者が利用者に対してデータベースの運用ルールとして以下のような[1]〜[4]のルールを定めても、管理者がシステムの運用を監視/コントロールすることは実質的にできなかった。
【0016】
[1] アクセス時間に関する制限(大量のデータアクセスの禁止、データアクセス中の離席等の防止など)
[2] アクセス時間帯の制限(管理者がデータベースのメンテナンス時間を確保するなどのため)
[3] 過負荷制御(データベース・サーバ過負荷時のアクセス禁止)
[4] 優先度制御(各業務(サービス)の実行を、その優先度に応じて動的に制御)
また、クライアント・アプリケーションのRDAによるアクセス方法としては、上記SQL文単位での処理依頼以外に、予めデータベース・サーバに予め一連のトランザクション処理(プロシジャ)を登録しておいて、このプロシジャを呼び出すことにより、所定のデータベース処理を行う、いわゆるストアド・プロシジャ・コールの方法がある。しかし、現状では、クライアント・アプリケーショが、上記SQL文単位でのアクセスとストアド・プロシジャ・コールを使い分けて業務ロジックを作成する必要があるため、業務ロジックが複雑となり、開発の生産性を向上させるのが難しい。
【0017】
現状のDBMSのデータベース・アクセスに対するセキュリティ機能は、テーブル単位及び列(項目)単位である。このため、利用者に対して項目単位にデータ公開を行う場合、アクセス権限の設定が図27に示すように煩雑となる。また、業務システムを構築する場合、利用者の資格(エンドユーザ、業務管理者)毎にデータベースのアクセス権を変えることが一般的である。このため、例えば、同一利用者がエンドユーザにも業務管理者にもなる場合、該利用者に対して項目毎に当該権限を変えなければならないが、セキュリティ定義者は、同一利用者という観点から、全項目について同一権限を与えてしまう恐れがある。
【0018】
次に、アプリケーションをユーザ・インタフェース用の入出力処理を担当するクライアント・アプリケーションとデータベース・アクセスに係わる業務ロジックを実行するサーバ・アプリケーションの2つに分け、それぞれをクライアント・マシンとデータベース・サーバに実装して、クライアント・アプリケーションがサーバ・アプリケーションを、RPC等によりコール(CALL)しながら業務処理を実行して行く形態のデータベースシステム(以下、便宜上、C/Sアプリ型データベースシステムと記述する)は、以下のような問題点をかかえている。
【0019】
この場合、アプリケーション開発においては、上記両アプリケーション間で授受するデータの形式のみならず、サーバ・アプリケーションの処理時間やサーバ・アプリケーションの運用時間帯などに対応する処理形態についても配慮する必要がある。
【0020】
上記処理形態としては、例えば、リアル通信、ディレイド通信がある。リアル通信においては、サーバ・アプリケーションがクライアント・アプリケーションから依頼された処理を終了した時点で、クライアント・アプリケーションに処理完了が通知される。
【0021】
一方、ディレイド通信においては、サーバ・アプリケーションの処理完了を待たずにクライアント・アプリケーションからメッセージ(データ)を受信・保持した時点で、クライアント・アプリケーションに完了を通知する。
【0022】
したがって、例えば、クライアント・アプリケーションがサーバ・アプリケーションに対して一方的にデータを集信する形態の集信型処理を、リアル通信で処理していた場合、サーバ・アプリケーションの処理時間が非常に長くなると、クライアント・アプリケーションに対する応答時間が遅延する。このような場合には、上記集信型処理を“リアル通信”から“ディレイド通信”に変更する必要がある。したがって、両アプリケーションの開発は、互いに密接な関係を持ち、両者を独立に開発することは難しい。また、上記処理形態の変更がアプリケーションのロジックに影響を及ぼすので、両アプリケーションの変更が必要となる場合が多く、生産性が低い。
【0023】
クライアント・アプリケーションは、ユーザ・インタフェースに係わる処理を取り扱うので、処理するデータの属性(型式)は画面処理に適したものが望ましい。一方、サーバ・アプリケーションは、データベース・アクセスやそのアクセスにより得られたデータの加工などを行うので、このような処理に適した属性のデータで処理するのが好ましい。このため、クライアント・アプリケーションとサーバ・アプリケーション間でデータの授受を行う場合、いずれかのアプリケーション側でデータの属性変換処理が必要となる。これは、アプリケーション開発において作業量の負担をもたらし、アプリケーションの生産性を低下させる。
【0024】
また、開発時のアプリケーションの動作試験は、図28(A)のようにクライアント・アプリケーション31とサーバ・アプリケーション32の両方が揃わないと行えない。また、RPCのテストにおいては、同図(B),(C)にそれぞれ示すようにドライバ36やスタブ37を作らないといけない。
【0025】
すなわち、サーバ・アプリケーション32を単独でテストしたい場合には、クライアント・アプリケーション31に代わって該サーバ・アプリケーション32に対して要求を発行するドライバを作成する必要がある(図28(B)。一方、クライアント・アプリケーション31を単独でテストしたい場合には、サーバ・アプリケーション32に代わってクライアント・アプリケーション31からの要求を受け取るスタブ37を作成する必要がある(図28(C))。
【0026】
一方、独自のテスト支援ツールを使用してもよいが、この場合、その操作方法などに関する知識を習得する必要がある。
また、一般にクライアント・アプリケーションとサーバ・アプリケーションはTPモニタを介して連携させる形態をとるため、TPモニタのAPI(アプリケーション・プログラミング・インタフェース)に従って作成する必要がある。このため、PC(パソコン)上に実装された市販パッケージ・ソフトの表ソフトやデータベース・アクセスソフトなどをクライアント・アプリケーションとして使用して、RPC対応のC/Sアプリ型データベースシステムを構築することは、現状では不可能となっている。
【0027】
さらに、現状のC/Sアプリ型のデータベースシステムでは、クライアント・アプリケーションがRPCにより指定するサーバ・アプリケーションはデータベース・サーバ上で同一の実行環境でしか動作できない。換言すれば、同一のサーバ・アプリケーションは1つの業務処理でしか使用できないようになっている。このため、既存のサーバ・アプリケーションを新たな業務処理に流用しようとした場合、該サーバ・アプリケーションを複数の実行環境で動作可能とするために、その名称を変更する必要がある。このため、該名称の変更に伴う各種作業が必要となってくる。
【0028】
すなわち、例えば、図29に示すように、現在運用中のシステムにおいて、クライアント・アプリケーション41がサーバ・アプリケーションAをコール(CALL)形態のある業務処理が稼働しているものとする。この後、業務拡張のため同図に示すように、サーバ・アプリケーションAを流用して新たな業務処理を構築するために新規にクライアント・アプリケーション42を開発する場合([1])、該新たな業務処理は別実行環境となるため、上記サーバ・アプリケーションAを別名称のサーバ・アプリケーションA′で管理する必要がある([2])。ところが、このようにすると、障害発生等によりサーバ・アプリケーションAを修正する保守作業を行う場合、サーバ・アプリケーションAのみならずサーバ・アプリケーションA′についても保守作業を行わねばならなない([3])。すなわち、同一のサーバ・アプリケーションAを二重管理しなければならないため、保守作業の負担が増大する。
【0029】
【発明が解決しようとする課題】
本発明は、上述のような問題点に鑑みなされたもので、その目的は、以下のようなものである。
【0030】
(1) クライアント・アプリケーションとサーバ・アプリケーションの開発・変更等の作業を互いに独立して進めることができるようにする。
(2) クライアント/サーバ方式のデータベースシステムにおいて、クライアント・アプリケーションを修正することなくデータベースの構造を変更することを可能とする。また、管理者は、クライアント・アプリケーションの内容を意識することなく、データベースの構造を変更できる。
【0031】
(3) クライアント/サーバ方式のデータベースシステムにおいて、利用者側に公開するテーブルとデータベース・サーバ上のデータベースのテーブルを別々に設計可能とする。
【0032】
(4) クライアント/サーバ方式のデータベースシステムにおいて、データベースのセキュリティ管理を容易なものとする。
(5) クライアント・アプリケーションとサーバ・アプリケーション間でのネットワークのトラフィック量を減少させると共に、業務処理の高速化を可能とする。
【0033】
(6) 運用ルールを利用者に委ねなくても、管理者の裁量でデータベース・サーバを監視・制御できるようにする。
(7) クライアント・アプリケーションとサーバ・アプリケーションにリアル通信、ディレイド通信などのデータの処理形態を実現する機能を組み込まなくても、該データ処理形態を実現できるようにする。
【0034】
(8) クライアント・アプリケーションとサーバ・アプリケーションがデータの送受信をする際に、いずれのアプリケーションにも該データ属性変換処理を組み込むことを不要にする。
【0035】
(9) クライアント・アプリケーションとサーバ・アプリケーションの動作試験を、それぞれ独立に行えるようにする。
(10)既存の表計算ソフトやデータベース・アクセスソフト(DBアクセスソフト)をクライアント・アプリケーションとして、クライアント/サーバデータベースシステムを構築できるようにする。
【0036】
(11)同一のサーバ・アプリケーションを名称を変更することなく新たな業務処理に流用できるようにする。
【0037】
【課題を解決するための手段】
図1は、本発明の原理説明図である。
以下に述べる請求項1〜4記載の発明は、業務処理をクライアント・アプリケーション52サーバ・アプリケーション62によって実行するクライアント/サーバシステムの該クライアント・アプリケーション52と該サーバ・アプリケーション62間の情報の授受を制御する通信制御装置を前提とする。
【0038】
請求項1記載の発明は、少なくともデータ処理形態とテーブル定義情報とを含む公開サービス情報(図2の公開サービス情報300)を管理する公開サービス情報記憶手段(図2の通信データベース221)と、前記テーブル定義情報に基づいて入力テーブル(図5の入力テーブル351)を作成するテーブル作成手段(図2のメッセージキュー制御部225)と、前記クライアント・アプリケーション(図2のクライアント・アプリケーション110)からのSQLを解析してデータを前記入力テーブルに格納する第一のSQL解析制御部(図2のSQL制御部222C)と、前記サーバ・アプリケーションからのSQLを解析して前記入力テーブルからデータを取り出す第二のSQL解析制御部(図2のSQL制御部222S)と、前記入力テーブルにデータを格納した際に、前記サービス定義情報内のデータ処理形態が第一の処理形態(リアル通信)の場合には、前記サーバ・アプリケーションからの完了通知を待って前記クライアント・アプリケーション52に対して完了通知を行い、前記サービス定義情報内のデータ処理形態が第二の処理形態(ディレイド通信)の場合には、前記サーバ・アプリケーション62からの完了通知を待つことなく前記クライアント・アプリケーション52に対して完了通知を行うメッセージ応答制御部 (図2のメッセージ応答制御部228)とを有する。
【0039】
請求項2記載の発明は、請求項1記載の通信制御装置において、前記入力テーブルにデータが格納された際に前記サーバ・アプリケーションの状態を確認し、前記サーバ・アプリケーションが処理待状態である場合のみ、前記サーバ・アプリケーションに対して起動要求を行うサーバ・アプリケーション起動要求手段(図2のアプリ起動要求制御部229)を、更に備える。
【0040】
請求項3記載の発明は、請求項2記載の通信制御装置において、前記公開サービス情報記憶手段は、公開情報として更に、前記テーブル定義情報で定義されるテーブルの各項目の第一の属性情報を記憶する。そして、前記入力テーブルに入力されるデータを前記第一の属性情報に従って変換して格納する第一の変換手段(コード変換/属性変換部223C)を、更に有する。
【0041】
請求項4記載の発明は、請求項3記載の通信制御装置において、前記公開サービス情報記憶手段は、公開情報として更に、前記テーブル定義情報内で定義されるテーブルの各項目の第二の属性情報を記憶する。そして、前記入力テーブルから取り出されるデータを前記第二の属性情報に従って変換する第二の変換手段(コード変換/属性変換部223S)を、更に有する。
【0042】
【作用】
請求項1記載の発明によれば、公開サービス情報を参照することにより、クライアント・アプリケーション52とサーバ・アプリケーション62の開発・変更作業を、互いに独立して進めることができる。また、クライアント・アプリケーション52は公開サービス情報で提供される仕様に沿っていればよいので、データベースサーバ(図2のデータベースサーバ200)上のデータベース(図2のデータベース63)の構造を変更する際、クライアント・アプリケーション52の修正が不要となる。管理者も、クライアント・アプリケーション52の内容を意識することなく、データベースを変更できる。
【0043】
また、さらに、クライアント・アプリケーション52に公開する入力テーブルと、データベースサーバ(図2のデータベースサーバ200)の管理するデータベースのテーブルを、別々に設計できる。
【0044】
また、さらに、クライアント・ アプリケーション52とサーバ・アプリケーション62にリアル通信、ディレイド通信などのデータ処理形態を実現する機構を組み込まなくても、それらのデータ処理形態を実現できる。
【0045】
請求項2記載の発明によれば、管理者側で、クライアント/サーバ・データベースシステムなどにおいて大量データアクセスの禁止や、データベース・アクセス中のクライアントの離席等の防止、データベースのメンテナンス時間の確保、データベース・サーバ過負荷時の入力抑止、さらには各業務処理(サービス)毎の優先度制御が可能になる。
【0046】
請求項3記載の発明によれば、クライアント・アプリケーション52は、内部でデータの属性変換処理を行わなくとも、自身のデータ処理に適した属性(形式)でデータの各項目を取り扱うことができる。
【0047】
請求項4記載の発明によれば、クライアント・アプリケーション52とサーバ・アプリケーション62は、内部でデータの属性変換処理を行わなくとも、それぞれのデータ処理に適した属性(形式)でデータの各項目を取り扱うことができる。
【0048】
【実施例】
以下、図面を参照しながら本発明の実施例を説明する。
図2は、本発明の一実施例のシステム構成図である。
【0049】
同図において、クライアント・マシン100とデータベース・サーバ200とは、LAN(ローカル・エリア・ネットワーク)またはWAN(ワイド・エリア・ネットワーク)を介して接続されている。また、データベース・サーバ200にはコンソール300が接続されている。このシステムは、C/Sアプリ型のデータベースシステムであり、クライアント・マシン100側にクライアント・アプリケーション110が、データベース・サーバ200側にサーバ・アプリケーション210が実装されている。そして、このクライアント・アプリケーション110とサーバ・アプリケーション210とが一体となって業務処理を実行する。
【0050】
データベース・サーバ200内には、通信DB制御機構(通信制御装置)220が設けられている。この通信DB制御機構220は、クライアント・アプリケーション110とサーバ・アプリケーション210との間に介在し、これら両者にAPI(アプリケーション・プログラミング・インタフェース)を提供している。通信DB制御機構220は、利用者(クライアント)に対して各種公開サービスを提供する通信DB(通信データベース)221を内蔵しており、クライアント・アプリケーション110並びにサーバ・アプリケーション210は該公開サービスに従って作成される。
【0051】
データベース・サーバ200は、データベースシステム240を備えており、該データベースシステム240はDBMS(データベース管理システム)242とデータベース(DB)244とから成っている。
【0052】
サーバ・アプリケーション210は、このデータベースシステム240に対して、アクセスして、当該サービスに対応する処理(データベースの更新・参照、検索データの加工など)を行う。
【0053】
通信手順制御部201は、例えばTCP/IPプロトコルなどの通信プロトコルによりクライアント・アプリケーション110とネットワークを介してメッセージ(データ)の送受信を行う。このとき、クライアント・アプリケーション110からSQL文(INSERT)を受信すると、該クライアント・アプリケーション110を実行した利用者が、データベースサーバ200を利用可能かをチェックする利用者認証処理を行う。
【0054】
この利用者認証処理は、実際には、通信手順制御部201の依頼を受けて、利用者認証部202が実行する。
利用者は、通信DB221にアクセスする際、まず、データベースサーバ200にログインする必要がある。この際、クライアント・マシン100からデータベースサーバ200に対して利用者識別子とパスワードが送られ、これらは通信手順制御部201に受信される。
【0055】
利用者認証部202は、該利用者識別子とパスワードを通信手順制御部201から受け取り、これらを基に上記利用者がデータベースサーバ200のサービスを受ける権利を有しているか否かの利用者認証及び、通信DB221へのアクセス権を有しているか否かをチェックする。このとき、後述する通信DB221内に登録されている該通信DB221のセキュリティ情報を参照する。そして、そのチェック結果を通信手順制御部201に返す。
【0056】
また、上記のように、クライアント・アプリケーション110がSQL文の実行を依頼してきた際にも、上記利用者認証のチェック処理を行う。
通信手順制御部201は、上記SQL文の実行依頼者がアクセス権限を有していると判断すると該SQL文並びに上記実行依頼者の利用者識別子を通信DB制御機構220のSQL解析制御部222Cに送信する。
【0057】
次に、通信DB制御機構220内の各ブロックを説明する。
通信DB(通信データベース)221は、一過性のデータを取り扱う特殊なデータベースであり、クライアント・アプリケーション110とサーバ・アプリケーション210間で授受されるデータを仲介する。そして、クライアント・アプリケーション110とサーバ・アプリケーション210に対するAPIとして“INSERT”と“SELECT”という2つのデータ操作言語(DML)を提供している。
【0058】
通信DB221の内部構成を図3に示す。
同図に示されているように、通信DB221内には、複数の公開サービス情報300が登録される。この公開サービス情報300は、利用者に対して公開されるサービス単位に登録され、サービス定義情報301とこれに包含されるテーブル定義情報303とから成る。サービス定義情報301は、利用者に対して公開されるサービスのデータの処理形態や、該サービスを実行するサーバ・アプリケーション210とのリンク情報が定義されるものであり、以下の[1]〜[4]の項目から成る。
【0059】
[1] サービス名
[2] データ処理形態
[3] クライアント・アプリケーション110により入力されたデータ(メッセ ージ)を通知すべきサーバ・アプリケーション210の名称
[4] このサービスが公開されている利用者のユーザID/グループID
また、サービス定義情報301は、上記データ処理形態に応じて入力テーブル定義情報303Iのみまたは入力テーブル定義情報303Iと応答テーブル定義情報303Rの2個のテーブル定義を保有する。
【0060】
ここで、上記[2]のデータ処理形態の種類を図4に示す。
各データ処理形態での通信方法には、リアル通信とディレイド通信がある。尚、同図において、入力テーブル351は、クライアント・アプリケーション110が“INSERT”文によりサーバ・アプリケーション210に対して通知するデータのキュー(リクエスト・キュー)として機能する。一方、応答テーブル352はサーバ・アプリケーション210が“INSERT”文によりクライアント・アプリケーション110に対して通知するデータのキュー(レスポンス・キュー)として機能する。
【0061】
まず、同図(A)は応答型(リアル通信)のデータ処理を説明する図である。このデータ処理においては、1つのサービス定義内に、入力テーブル351と応答テーブル352の2つのテーブルが生成される。
【0062】
この応答型(リアル通信)のデータ処理では、クライアント・アプリケーション110は依頼データを組み立て、該データを“INSERT”文によりデータベース・サーバ200に依頼する([1])。このデータは、入力テーブル351にキューイングされ、サーバ・アプリケーション210が“SELECT”文を発行することによって、該サーバ・アプリケーション210により読み出される([2])。サーバ・アプリケーション210は、該読み出したデータを基にデータベースシステム240をアクセスしてチェック並びに当該処理を行い、その処理結果を“INSERT”文により応答テーブル352にキューイングする([3])。そして、RETURN命令を発行することにより、クライアント・アプリケーション110に処理の終了が通知される([4])。クライアント・アプリケーション110は、該通知を受けた後に、“SELECT”文を発行して応答テーブル352にキューイングされている上記処理結果を受け取る([5])。尚、サーバ・アプリケーション210は、上記データのチェック時に誤りを検出した場合にも、その旨をクライアント・アプリケーション110に通知する。このように、応答型(リアル通信)データ処理は、クライアント・アプリケーション110とサーバ・アプリケーション120が、一問一答の会話形式により業務処理を実行するものである。
【0063】
次に、同図(B)は、集信型(リアル通信)データ処理を説明する図である。この処理においては、サービス定義301内には入力テーブル351のみが登録される。この処理は、クライアント・アプリケーション110がサーバ・アプリケーション210に一方的にデータを集信するものである。すなわち、クライアント・アプリケーション110は、“INSERT”文により入力テーブル351にサーバ・アプリケーション210宛の通知データをキューイングする([1])。サーバ・アプリケーション210は、“SELECT”文を発行して該通知データを受け取る([2])。これに対して上記と同様にデータベースシステム240をアクセスしてチェック並びに当該処理を行い、該処理終了後のRETURN命令により、クライアント・アプリケーション110にその処理結果の完了(正常または異常)が通知される([3])。クライアント・アプリケーション110は、該処理完了後に、上記と同様にして次のデータをサーバ・アプリケーション210に通知する。これにより、データベース・サーバ200側に処理待ちデータが滞留することがなくなり、別の業務へ悪影響を与えることもない。
【0064】
続いて、同図(C)は集信型(ディレイド通信)を説明する図である。この処理が上述した集信型(リアル通信)と異なる点は、クライアント・アプリケーション110が“INSERT”文により通信DB制御機構200にデータ(メッセージ)を送信すると([1])、通信DB制御機構が該データ(メッセージ)を入力テーブル351にキューイングし、該データの保証がなされた時点で、クライアント・アプリケーション110に該“INSERT”文による処理の依頼の完了を通知する点である([2])。尚、この場合、上記クライアント・アプリケーション110の通知データは、後述するメッセージ保証制御部228内の不揮発性記憶媒体上に作成された通信データ保証ファイルにスタックされる。これにより、データベース・サーバ200側での処理待ちデータの滞留が解決される。
【0065】
サーバ・アプリケーション210は、動作可能な状態になったときに、“SELECT”文を発行して入力テーブル351から上記通知データを受け取り([6])、該データに対するチェック並びに当該処理終了後、RETURN命令を実行し、通信DB制御機構220に処理完了を通知する([7])。
【0066】
上述したように、集信型(リアル通信)では、サーバ・アプリケーション210が動作しないと、クライアント・アプリケーション110は次のデータ処理に移行できない。これに対し、集信型(ディレイド通信)では、サーバ・アプリケーション210の動作に関係なく、直ちに次の処理に移行できる。したがって、集信型(リアル通信)と集信型(ディレイド通信)は、集信するデータの即時性の有無によって使い分ける。すなわち、集信したデータを即時に他の目的で利用する場合にはリアル通信を利用し、発送指示のようなある範囲(時間等)までに処理する場合にはディレイド通信を利用する。
【0067】
さらに、同図(D)は、配信型(ディレイド通信)のデータ処理を説明する図である。この処理においては、サーバ・アプリケーション210が“INSERT”文によりクライアント・アプリケーション110に通知するデータを入力テーブル353にキューイングする([1])。通信DB制御機構220は、該通知データをメッセージ保証部228内の通信データ保証ファイルにスタックすると、完了通知をサーバ・アプリケーション210に返す([2])。クライアント・アプリケーション110は、この入力テーブル353にキューイングされているデータを、必要となった時点で“SELECT”文を発行することにより受け取る([6])。
【0068】
このように、このデータ処理は、サーバ・アプリケーション210側で処理したデータを、クライアント・アプリケーション110が必要となった時点で受け取るものである。これは、例えば、別業務のデータをデータベース・サーバ200側で一括処理し、その処理結果をクライアント・マシン100側に通知する場合に使用される。
【0069】
テーブル定義情報303I,303Rは自己が従属するサービス定義情報301で定義されたデータ処理形態に従って処理されるデータ(レコード)の形式を定義するものである。
【0070】
ここで、図4に示す上述した入力テーブル351,353または応答テーブル352にキューイングされるレコードの形式を定義しているテーブル定義情報303I,303Rの内容について説明する。両テーブル定義情報は、同一の内容であり以下の[1]〜[3]の項目から成る。
【0071】
[1] テーブル名
[2] レコードの全てのデータ項目名
[3] 各データ項目の属性(データの形式:CHARACTER, NUMERIC, INTEGER,・・・)
[4] 各データ項目のデータ長
上記公開サービス定義情報300は、利用者が業務処理を構築するためのAPIとして、すなわちクライアント・アプリケーション110を作成するための情報として、利用者に公開される。すなわち、公開サービス情報300は、利用者が業務処理を構築するために、データベース・サーバ200側が利用者に提供可能な公開サービスである。
【0072】
該公開サービスとしては、各種の予約サービス、照会サービス、受注サービス、通知サービス等がある。
また、公開サービス情報300の内容に従って、サーバ・アプリケーション210が開発されることになる。すなわち、通信DB221へ公開サービス情報300を登録することによって、システム導入時のシステム設計及びシステム稼働後の業務処理の追加/変更が可能となる。換言するならば、最初のシステム設計またはシステム稼働後の業務処理の追加/変更の際には、まず導入しようとする業務処理の内容を規定する公開サービス情報300を通信DB221に登録する必要がある。そして、これにより、業務処理の開発または追加/変更時に、クライアント・アプリケーション110とサーバ・アプリケーション210の開発作業を、互いに独立に進めていくことが可能になる。
【0073】
再び、図2に戻って、通信DB制御機構220の他のブロックについて説明する。
SQL解析制御部222Cは、前記通信制御部201を介して入力するクライアント・アプリケーション110から発行されたSQLの解析/チェックを行う。すなわち、そのSQL文を解析し、該SQL文がアクセスしようとする通信DB221の利用資源(テーブル)に対する利用者のアクセス権をチェックする。そして、正当なアクセス権限を有していれば、該SQL文による通信DB221の入力テーブルへの登録データをコード変換/属性変換部223Cへ出力する。尚、上記利用者のテーブルに対するアクセス権限のチェックは、資源利用認証部224によって行われる。
【0074】
資源利用認証部224は、SQL文解析制御部222Cを介して、上記SQL文を送信してきたクライアント・アプリケーション110の実行者の利用者識別子と上記SQL文がアクセスしようとする通信DB221のテーブルについての情報を受け取り、後述する通信DB221内に登録されたテーブルのセキュリティ情報を基に、上記テーブルに対するアクセス権の有無をチェックする。そして、そのチェック結果をSQL解析制御部222Cに返す。
【0075】
コード変換/属性変換部223Cは、SQL解析制御部222Cから受け取るデータに対して、通信DB221内の当該サービス定義情報301のテーブル定義情報303を参照して、コード並びに属性変換を行う。そして、変換後のデータをメッセージキュー制御部225に送る。
【0076】
コード変換は、異機種間のコード系の変換であり、例えば、シフトJIS←→EUC,EBCDIC←→EUC等の変換が行われる。
一方、属性変換は、受信データの属性を通信DB221の当該入力テーブルの属性に変換するものであり、例えば、DECIMAL→INTEGER等の変換が行われる。
【0077】
メッセージキュー制御部225は、クライアント・アプリケーション110及びサーバ・アプリケーション210から発行される通知データの処理の待ち合わせ制御(キュー制御)を行うものである。この待ち合わせ制御に際しては、前述した図4に示す入力テーブル351,353及び応答テーブル352を用いる。これらのテーブル351〜353は、メッセージキュー制御部225自身によって、メモリ上に作成される。
【0078】
図5は、メッセージ制御部225が上記テーブル351〜353を作成する方法を説明する図である。同図は、例えば、集信型のデータ処理が行われる公開サービス用の入力テーブル351の構成及びその作成方法を示している。
【0079】
メッセージキュー制御部225は、通信DB221に登録されている該入力テーブル351の形式を定義している入力テーブル定義情報303Iを、当該公開サービス情報300から読み出し、メモリ400上に、キュー先頭ポインタ411、キュー最終ポインタ412、及び上記読み出した入力定義情報303Iと同一内容のテーブル情報413とから成るキューノード410を作成する。そして、このキューノード410によって通信バッファ226内に作成される連結リスト構造のキューを管理する。
【0080】
該キューは、チェイン部501とデータ部502とから成るセル500が、チェイン部501に設定されるポインタによって連結されていく構成の連結リストとなっており、データ部502にクライアント・アプリケーション110からサーバ・アプリケーション210宛の通知データが格納される。メッセージキュー制御部225は、キューノード410のキュー先頭ポインタ411、キュー最終ポインタ412、及びセル500のチェイン部501を操作することによって、入力テーブル351に入力されるまたは入力テーブル351から取り出される通知データのキューイング制御を行う。
【0081】
図6は通信バッファ226にキューイングされるデータの形式を示し、各データ部502にはデータ項目の長さとデータ項目の内容とからなる。
尚、図5においては、入力テーブル351の構成のみを示したが、応答テーブル352及び入力テーブル353も同様な構成で、メッセージキュー制御部225によって生成される。
【0082】
また、図2のメッセージ保証制御部228は、ディレイド通信によるデータ処理、すなわち集信型(ディレイド通信)、配信型(ディレイド通信)において、それぞれサーバ・アプリケーション210またはクライアント・アプリケーション110に確実に通知データが渡るまでの間に、該通知データが電源断などのデータベースサーバ200の各種異常状態から消失してしまうことを防止するために設けられたものであり、上記通知データを内蔵の不揮発性記憶媒体上に作成された不図示の通信データ保証ファイル内に格納して管理する。
【0083】
アプリ起動要求制御部229は、入力テーブル351に通知データがキューイングされていれば、該当するサーバ・アプリケーション210の起動を、アプリ実行制御部241に要求する。
【0084】
アプリ実行制御部241は、該要求を受けて、上記サーバ・アプリケーション210を起動させる。
サーバ・アプリケーション210は、起動されると、まず、SQL文(SELECT文)を、通信DB制御機構部220内のSQL解析制御部222Sに発行する。
【0085】
SQL解析制御部222Sは、メッセージキュー制御部225に依頼して該SQL文で依頼された入力テーブル351のキューから通知データを取り出し、該通知データをコード変換/属性変換部223Sに送る。
【0086】
コード変換/属性変換部223Sは、上記通知データの属性をサーバ・アプリケーション210から依頼された属性に変換し、該変換後の通知データをSQL解析制御部222Sに送る。
【0087】
SQL解析制御部222Sは、上記受け取った通知データをサーバ・アプリケーション210に送り、SQL文の完了を通知する。
SQL解析制御部222Sは、応答型(リアル通信)のデータ処理を行うサーバ・アプリケーション210からは、そのデータ処理結果すなわちクライアント・アプリケーション110宛の通知データをSQL文(INSERT)により、該サーバ・アプリケーション210から受け取る。SQL解析制御部222Sは、該通知データをコード変換/属性変換部223Sに送り、属性変換を依頼する。
【0088】
コード変換/属性変換部223Sは、通信DB221内の上記SQL文で指定された応答テーブル352の項目属性情報に従って、上記通知データの属性変換を行う。そして、この変換後の通知データをSQL解析制御部222Sに返す。
【0089】
SQL解析制御部222Sは、その受け取った通知データをメッセージキュー
制御部225に対して応答テーブル352にキューイングするよう要求する。
メッセージキュー制御部225は、これを受けて上記通知データを上記応答テーブル352にキューイングし、キューイングが終了するとSQL解析制御部222Sを介して、サーバ・アプリケーション210にSQL文(INSERT)の完了を通知する。
【0090】
サーバ・アプリケーション210は、リアル通信の場合には処理が完了するとRETURN命令の実行によりメッセージ応答制御部230に対して、クライアント・アプリケーション110に対して処理結果を通知してくれるように依頼する。
【0091】
メッセージ応答制御部230は、該依頼に応じて、通信手順制御部201を介して、クライアント・アプリケーション110がデータベースサーバ200に対して依頼したSQL文の実行完了を、該クライアント・アプリケーション110に通知する。
【0092】
さらに、通信DBサービス定義部231は、通信DB221に公開サービス情報300を登録、更新または削除したりするもので、コンソール300から例えばDDL(データ定義言語:Data Definition Language)系のSQL文を受け取ることにより、該SQLの指示に従って、新たな公開サービス情報300の登録や、既存の公開サービス情報300の更新や削除を実行する。これには、サービス定義情報301、入力テーブル定義情報303I、及び応答テーブル定義情報303Rをそれぞれ個々に登録、更新、削除することが可能である。
【0093】
上記のような作業を行える利用者は、通信DB221の創成時に通信DB221内に登録される。そして、該利用者はコンソール300からGUI(グラフィカル・ユーザ・インタフェース)の画面を介して、会話形式により上記作業を行えるようになっている。また、利用者作成のプログラムを、コンソール300上で実行することによっても可能である。また、このコンソール300を介して、通信DB221を創成することも可能となっている。
【0094】
図7は、データ処理形態が応答型の場合に、通信DB制御機構220に対する命令と、通信DB制御機構220を介したデータの流れを図示するとともに、さらに他のクライアント・アプリケーションとの通信データがキューとして入力テーブル351、応答テーブル352に接続されることを図示したものである。
【0095】
次に、クライアント・アプリケーション110とサーバ・アプリケーション210と連携により行われる、図4に示す4種類のデータ処理形態の処理の流れを図2の実施例にそって説明する。
(A)応答型(リアル通信)のデータ処理
《クライアント・アプリケーション110→通信DB制御機構220》
(1)クライアント・アプリケーション110がSQL文(INSERT)を実行すると、通信手順制御部201が該SQL文を受け取り、利用者認証部202を介し利用者認証を行う。そして、通信DB221に対するアクセス権を認めると、そのSQL文をSQL解析制御部222Cに渡す。
【0096】
(2)SQL解析制御部222Cは、SQL文を解析し、該SQL文により指定されたテーブルに対するアクセス権を、資源利用認証部224を介しチェックする。そして、アクセス権が認められれば、指定データの属性変換をコード変換/属性変換部223Cに依頼する。
【0097】
(3)コード変換/属性変換部223Cは、通信DB221に登録されている当該入力テーブル定義情報303Iに従い、上記指定データのコード変換/属性変換を行う。
【0098】
(4)メッセージキュー制御部225は、変換後のデータを入力テーブル351にキューイングする。
《サーバ・アプリケーション210の起動》
(5)アプリ起動要求制御部229は、上記入力テーブル351に対応するサーバ・アプリケーション210の起動を、アプリ実行制御部241に要求する。
【0099】
(6)アプリ実行制御部241は、サーバ・アプリケーション210が受信可能状態であれば、これを起動する。
《通信DB制御機構220→サーバ・アプリケーション210》
(7)サーバ・アプリケーション210は入力テーブル351からクライアント・アプリケーション110からの通知データを受信する為にSQL文(SELECT)を、SQL解析制御部222Sに発行する。
【0100】
(8)SQL解析制御部222Sは、該SQL文を解析し、メッセージキュー制御部225を介してSQL文で指定された入力テーブル351から上記通知データを取り出す。
(9) コード変換/属性変換部223Sは、SQL解析制御部222Sからの依頼を受けて、上記通知データをサーバ・アプリケーション210が取り扱うデータ属性に変換する。
(10)SQL解析制御222Sは、サーバ・アプリケーション210に、変換後の通知データを送ると共にSQL文の完了を通知する。
《サーバ・アプリケーション210→通信DB制御機構220》
(11)サーバ・アプリケーション210は、上記通知データを基に、データベースシステム240をアクセスし、当該データ処理を行う。
(12)サーバ・アプリケーション210は、該データ処理の結果をSQL文(INSERT)SQL解析制御部222Sに出力する。
(13)コード変換/属性変換部223は、SQL解析制御部222Sからの依頼を受けて、上記処理結果(クライアント・アプリケーション110宛の通知データ)を通信DB221に登録されている応答データ352のテーブル属性に従って属性変換する。
(14)メッセージキュー制御部225は、上記通知データを応答テーブル352にキューイングする。そして、このキューイングの完了をSQL解析制御部222Sに通知する。
(15)SQL解析制御222Sは、サーバ・アプリケーション210にSQL文の処理完了を通知する。
《サーバ・アプリケーション210の完了》
(16)サーバ・アプリケーション210は、処理が完了すると、メッセージ応答制御部230にクライアント・アプリケーション110へのSQL文の実行完了通知を依頼する。
(17)メッセージ応答制御部230は、通信手順制御部201を介して、クライアント・アプリケーション110にSQL文(INSERT)の実行完了を通知する。
《クライアント・アプリケーション110→通信DB制御機構220》
(18)クライアント・アプリケーション110は、サーバ・アプリケーション210からの応答データ(上記通知データ)を受信する為にSQL文(SELECT)をデータベース・サーバ200に発行する。
(19)通信手順制御部201は、このSQL文を受信すると、利用者認証部202を介して通信DB221に対するアクセス権の利用者認証を行い、該アクセス権を認めると、SQL解析部222Cに上記SQL文(SELECT)を送る。
(20)SQL解析制御部222Cは、このSQL文を解析し、資源利用認証部224を介して指定応答テーブル352に対するアクセス権をチェックし、アクセス権が認められれば、メッセージキュー制御部225を介し、上記SQL文で依頼された応答テーブル352から応答データを取り出す。
(21)コード変換/属性変換部223Cは、SQL解析制御部222Cの依頼を受けて、上記応答データをクライアント・アプリケーション110が取り扱うデータ属性に変換する。
(22)SQL解析制御部222Cは、変換後の応答データと共に通信手順制御部201を介して、SQL文の完了をクライアント・アプリケーション110に通知する。
(B)集信型(リアル通信)のデータ処理
この処理は、基本的には、上述した応答型(リアル通信)のデータ処理からサーバ・アプリケーション210のSQL文(INSERT)の発行に対する処理を除いたものとなる。したがって、処理手順は、以下のようになる。
《クライアント・アプリケーション110→通信DB制御機構220》
上述した(1) 〜(4) の処理
《サーバ・アプリケーション210の起動》
上述した(5) 〜(6) の処理》
《通信DB制御機構220→サーバ・アプリケーション210》
上述した(7) 〜(10)の処理
《サーバ・アプリケーション210の完了》
上述した(16)〜(17)の処理
(C)集信型(ディレイド通信)のデータ処理
この処理は、基本的には上述した集信型(リアル通信)のデータ処理と同様であるが、一部の処理が異なっている。
《クライアント・アプリケーション110→通信DB制御機構220》
上記(1) 〜(4) の後に、次に述べる(4) ′の処理が行われる。
(4) ′メッセージ・キュー制御部225は、メッセージ保証制御部228に依頼して、入力テーブル351にキューイングしたサーバ・アプリケーション210宛の通知データを、通信データ保証ファイルに格納・保持してもらう。そして、メッセージ・キュー制御部225は、メッセージ保証制御部228から処理完了の通知を受けると、メッセージ応答制御部230にクライアント・アプリケーション110宛のSQL文(INSERT)の実行完了通知を依頼する。メッセージ応答制御部230は、これを受けて、通信手順制御部201を介してクライアント・アプリケーション110に上記SQL文(INSERT)の実行完了を通知する。
《サーバ・アプリケーション210の起動》
上述した(5) 〜(6) の処理
《通信DB制御機構220→サーバ・アプリケーション210》
上述した(7) 〜(10)の処理
尚、(8) の処理の際、メッセージ保証制御部228は、メッセージ・キュー制御部225からの通知を受けて、通信データ保証ファイル内に保持されていた上記通知データを取り出す。この際、通信データ保証フィルタ内に保証されていた上記通知データを消去する。
《サーバ・アプリケーション210の完了》
(16)′サーバ・アプリケーション210は、処理が完了すると、通知DB制御機構220にその旨を通知する。
(D)配信型(ディレイド通信)のデータ処理
この処理は、上記(C)集信型(ディレイド通信)とは、通知データの流れが逆になる。すなわち、
[1] 《サーバ・アプリケーション210→通信DB制御機構220》
[2]《通信DB制御機構220→クライアント・アプリケーション110》という順になる。
【0101】
次に、図8は、上述した応答型(リアル通信)のデータ処理の一具体例を示す模式図である。
同図に示す業務処理は、ある顧客から商品(この例では、29型のカラーTV)の注文を受けた際に、発送伝票を作成する処理を示している。この業務処理を連携して行うクライアント・アプリケーション110とサーバ・アプリケーション210は、データベース・サーバ200側の通信DB制御機構220内の通信DB221に登録されている公開サービス情報300に従って作成される。
【0102】
同図に示すように、該公開サービス情報300には、サービス定義情報301として、データ処理形態が“応答型”である旨が登録されている。
また、入力テーブル定義情報303Iとしては、
[1] データ項目名として、「顧客名」、「商品名」、「数量」、「単価」の4項目が定義されている。
【0103】
[2] 上記データ項目の属性として、顧客名(CHARACTER)、商品名(CHARACTER)、数量(DECIMAL)、単価(DECIMAL) が定義されている。
[3] 上記データ項目の項目長として、顧客名(30桁)、商品名(20桁)が定義されている。
【0104】
一方、応答テーブル定義情報303Rとしては、
[2] データ項目名として、「消費税」、「合計」、「発送予定日」の3項目が定義されている。
【0105】
[2] 上記データ項目の属性として、消費税(DECIMAL)、合計(DECIMAL) 、発送予定日(CHARACTER) が定義されている。
[3] 上記データ項目の項目長として、消費税(5桁)、合計(7桁)、発送予定日(8桁)が定義されている。
【0106】
また、上述の公開サービス定義情報300によって利用者に提供される公開サービスAの利用者(参照可能ユーザまたは更新可能ユーザ)としてUser−1,User−2が登録されている。
【0107】
上述したような、公開サービスAの公開サービス情報300に従って作成されるクライアント・アプリケーション110は、下記の[1]〜[4]の部分から成る。
【0108】
[1] 通信DB制御機構220の通信DB221の当該入力テーブル351にキューイングするデータ(入力データ)を作成する処理。上記入力データは、公開サービスAの入力テーブル定義表の内容に従った形式にする。また、上記入力データの作成のために必要となるデータ(顧客名、商品名、数量、単価)の入力画面を表示部120に表示し、該入力画面から上記入力データを読み込むユーザ・インタフェースに係わる処理を行う。
【0109】
[2] 上記の[1]で作成された入力データを、通信DB制御機構220内の公開サービスAの入力テーブル303Iに登録してくれるように、SQL文(INSERT)によりデータベース・サーバ200に依頼する処理。
【0110】
[3] 公開サービスAの応答テーブル303Rに登録されているサーバ・アプリケーションの応答結果の取り出しを、SQL文(SELECT)により、データベース・サーバ200に求める処理。
【0111】
[4] 上記[3]の処理でデータベース・サーバ200から受け取った応答結果を加工して、クライアント・マシン100の表示部120に伝票画面を表示させる処理。
【0112】
上記応答結果のデータ形式は、通信DB221内の公開サービスAの応答テーブル定義表352に定義されているので、これに従って上記加工処理は作成される。このように、クライアント・アプリケーション110は、データベース・サーバ200の通信DB221に登録されている公開サービスAの公開サービス情報300を参照することにより作成される。
【0113】
一方、上記クライアント・アプリケーション110からの依頼を、通信DB制御機構220を介して受け付け、処理するサーバ・アプリケーション210も、公開サービスAの公開サービス情報300の内容に従って作成される。
【0114】
該サーバ・アプリケーション210は、以下の[1]〜[4]の部分から成る。
[1] SQL文(SELECT)により、通信DB制御機構220に対して公開サービスAの入力テーブル351にキューイングされている自己宛の通知データ(前記クライアント・アプリケーション110の入力データ)の転送を要求し、該通知データを通信DB制御機構220から受け取る処理。
【0115】
[2] 上記通知データを基に、データベースシステム240をアクセスして、該データベースシステム240内のデータベース244の当該ファイル(この例では、顧客マスタファイル2441、商品マスタファイル2442、在庫マスタファイル2443、取引履歴ファイル2444)のデータの参照・更新を行う処理。そして、公開サービスAの応答テーブル定義表303Rの定義に行って、通信DB制御機構220の公開サービスAの応答テーブル352に登録するデータ(応答データ)を作成する処理。この応答データは、クライアント・アプリケーション110がデータベース・サーバ200に対して依頼した要求の応答結果となるものであるが、サーバ・アプリケーション210はこれをあえて意識する必要はなく、あくまでも応答テーブル定義表303Rの内容に従って、上記応答データを作成すればよい。
【0116】
[3] SQL文(INSERT)により、通信DB制御機構220に対して上記応答データを応答テーブル352に登録するように依頼する処理。
[4] RETURN命令により、通信DB制御機構220内のメッセージ応答制御部230に対して、クライアント・アプリケーション110のSQL文(INSERT)の実行完了を通知するように依頼する処理。
【0117】
以上のようにして作成されたクライアント・アプリケーション110とサーバ・アプリケーション210は、互いに通信DB制御機構220を介して、データの送受信を行う。そして、この場合、クライアント・アプリケーション110は、データベース・サーバ200の通信DB制御機構220を2回アクセスするだけである。すなわち、要求依頼時に公開サービスAの入力テーブル351を1回、該要求に対する応答結果の受信時に公開サービスAの応答テーブル352を1回アクセスするだけである。そして、実際のデータベースすなわちデータベースシステム240のデータベース244に対する検索・更新などを行うバックエンド処理は、サーバ・アプリケーション210が担当する。このサーバ・アプリケーション210も、通信DB制御機構220に対するアクセスは2回(入力テーブル351と応答テーブル352をそれぞれ1回)である。
【0118】
上記例は、応答型(リアル通信)のデータ処理の例であるが、次に示す図9は、前述した従来、クライアント・アプリケーション110がRDAにより行っていた受注処理を本実施例の集信型のデータ処理により行う例を示す模式図である。
【0119】
この場合、データベース・サーバ200の通信DB制御機構220内の通信DB221にクライアント・アプリケーション110からサーバ・アプリケーション210に渡すべきデータ項目(この場合、「顧客No. 」、「部品No. 」、「発注数」、「受注番号」)について、上述したような形式で集信型の公開サービス情報300の入力テーブル定義情報303Iに定義する。そして、この入力テーブル定義情報303Iに従って、利用者からそれに定義されているデータ項目のデータを利用者から入力し、その入力データをSQL文(INSERT)により、通信DB制御機構220の当該入力テーブル303Iに登録するように依頼する処理を、クライアント・アプリケーション110として作成する。
【0120】
一方、SQL文(SELECT)により、上記入力テーブル303Iからクライアント・アプリケーション110から入力データを受け取ってデータベースシステム240の当該データベース(DB)244、(顧客情報ファイル2446、在庫情報ファイル2447、受注情報ファイル2448を有する)をアクセスして、顧客チェック、在庫チェック、在庫更新、受注登録などのバックエンド処理を行うサーバ・アプリケーション210を作成する。
【0121】
これにより、クライアント・アプリケーション110は、データベース・サーバ200に対し1回アクセスするだけで、すなわち入力テーブル303Iへ入力データを挿入するSQL文(INSERT)をデータベース・サーバ200へ送信するだけで、1回の受注処理が終了する。これにより、従来に比べ、短時間で処理が終了すると共に、ネットワーク上のトラヒック量が削減され、通信コストが低減される。
【0122】
また、特に具体例は示さないが、配信型(ディレイド通信)においても、クライアント・アプリケーション110とサーバ・アプリケーション210は、通信DB221の当該入力テーブル定義情報303Iの定義内容に従って、それぞれ独立に作成することが可能である。
【0123】
また、データベースシステム240に対するアクセスは、サーバ・アプリケーション210のみが担当するので、該データベースシステム240のデータベース244の構造が変更されても、クライアント・アプリケーション110の修正は不要となる。
【0124】
図10は、クライアント・アプリケーション110がデータベース244のデータ更新を行い、このデータ更新をサーバ・アプリケーション210がクライアント・アプリケーションに通知することを示す。
【0125】
図11は、データベース244の構造が変更されても、クライアント・アプリケーション110の修正が不要となる例を模式的に示す。これは、従来システムの問題点で取り上げた図25に対応するものである。
【0126】
図11(A)に示すように、サーバ・アプリケーション210が、通信DB制御機構220内の入力テーブル351(通信DB−TABLE1)を介して、クライアント・アプリケーション110からの依頼データを受け取り、該依頼データをデータベースシステム240のデータベース244(DB1)のTABLE1(DB1−TABLE1)に挿入する業務処理が行われていたとする。
【0127】
この場合、業務追加等によりDB1−TABLE1の項目数が増加し、データベースDB1に対するアクセス性能が低下し、同図(B)に示すようにデータベースDB1において上記DB1−TABLE1をDB1−TABLE1−1とDB1−TABLE1−2に分割するものとする。この場合、サーバ・アプリケーション210の修正だけで対処できる。すなわち、同図(A)に示すサーバ・アプリケーション210の中の“INSERT DB1-TABLE1 ”という1 つのステートメントを、同図(B)に示すように、“INSERT DB1-TABLE1-1 ”と“INSERT DB1-TABLE1-2 ”の2つのステートメントに変更するだけでよい。この変更は、通信DB制御機構220の入力テーブル351(通信DB−TABLE1)の構成に変更を及ぼさない。従って、クライアント・アプリケーション110の変更は不要である。したがって、データベースシステム240の管理者は、クライアント・アプリケーション110を意識することなく、データベース244の構造を変更することができる。
【0128】
また、利用者(クライアント・アプリケーション110の開発者)には、通信DB221に登録された公開サービス情報300(サービス定義情報301、入力テーブル定義情報303I、応答テーブル定義情報303R)のみが公開され、データベース・サーバ200側のデータベースシステム240のデータベース244の構造については公開されない。したがって、利用者に公開するテーブルの設計・管理とデータベースシステム240のデータベース244に登録するテーブルの設計・管理を分離してとられることができる。これにより、データベースのテーブル設計において、利用者に公開する通信DB221のテーブルとデータベースシステム240のデータベース244とを、独立して別々に設計することができる。通信DB221のテーブル設計者(データ公開者)は、利用者の使い易さを考慮してテーブルを設計・管理すればよく、データベースシステム240のデータベース244のテーブル設計者(データベース管理者)は、該データベース244のアクセス性能等や共用管理を考慮してテーブルを設計・管理すればよい。
【0129】
図12は、通信DB221に登録されるセキュリティ情報の内容を説明する模式図である。
同図において、利用権を与えられた利用者を“利用可能ユーザ”、更新権を与えられたユーザを“更新可能ユーザ”として示している。
【0130】
該セキュリティ情報としては、通信DB221に対するアクセス権に係るセキュリティ情報1210と公開サービス情報300(同図に示すサービスA,B,C)に対するアクセス権に係わるセキュリティ情報1220がある。
【0131】
通信DB221のセキュリティ情報1210は、利用権と更新権の2つの項目がある。利用権が与えられた利用者(ユーザ)は、通信DB221へのアクセスは可能であるが通信DB221の更新はできない。更新権が与えられた利用者は、通信DB221の更新も可能である。
【0132】
通信DB221に対する接続要求が行われたときには、該アクセス者が上記利用権または更新権のいずれかを有しているかのチェックが行われ、いずれも有していない場合には、通信DB221に対するアクセスは禁止される。
【0133】
また、公開サービス情報300(公開サービス)のセキュリティ情報には、参照権と更新権がある。参照権が与えられた利用者は、当該公開サービス情報300に対応するテーブル351〜353へのアクセスのみが可能であり、公開サービス情報300の内容の更新(サービス定義情報301及びテーブル定義情報302,303)の更新はできない。一方、更新権が与えられた利用者は上記アクセスのみならず、公開サービス情報300の更新並びに削除が可能である。同図において、参照権が与えられた利用者を“参照可能ユーザ”、更新権が与えられたユーザを“更新可能ユーザ”として示している。
【0134】
尚、通信DB221に対する更新権を与えられた利用者は、公開サービス情報300の更新・削除も可能である。
次に、上記構成の実施例の動作を説明する。
【0135】
まず、通信DB221にクライアント・アプリケーション110に公開するサービス定義情報301を登録する際の動作を説明する。この登録は、上述した公開サービス情報300の更新権が与えられた利用者のみが可能である。
【0136】
ア)該利用者は、コンソール300のGUI画面上で通信DB221のテーブルを設計し、データベース・サーバ200に対し、該テーブルの定義情報をSQL文により登録依頼する。
【0137】
通信手順制御部201は、この要求を受け取ると、利用者認証部202を介し利用者認証を行い、通信DB221に対するアクセス権を認めるとSQL解析制御部222Cに上記SQL文を渡す。
【0138】
イ)SQL解析制御部222Cは、このSQL文を解析し、資源利用認証部224を介し通信DB221に対する登録権をチェックする。
ウ)該チェックにより、登録権の確認がとれると、コード変換/属性変換部223Cを介し、コード変換する。
【0139】
エ)通信DBサービス定義部231は、依頼されたテーブル定義情報を通信DB221に登録する。
オ)通信DBサービス定義部231は、登録が完了すると、SQL解析制御部222Cに完了通知を行う。
【0140】
カ)SQL解析制御部222Cは、通信手順制御部201を介し、クラアイント・アプリケーション110に登録完了を通知する。
キ)コンソール300は、これを受けて、GUI画面上に登録完了を表示する。
【0141】
次に、本実施例におけるセキュリティ管理の方法を説明する。
このセキュリティ管理は、通信DB221への接続要求時と該通信DB221内の入力テーブル303I及び応答テーブル303Rに対するアクセス時に行われる。
【0142】
1.通信DB221への接続要求時にセキュリティ・チェック
このセキュリティ・チェックは、通信手順制御部201が利用者認証部202を介して行う。図13は、このチェック処理を説明するフローチャートである。
【0143】
通信手順制御部201は、クライアント・アプリケーション110から、ネットワークを介して通信DB221への接続要求を受信すると、該要求時に送られてきた利用者識別子を利用者認証部202に送り、上記クライアント・アプリケーション110の実行者が通信DB221に対する利用権を有しているか否かのチェックを依頼する(S1)。
【0144】
利用者認証部202は、通信DB221に登録されている通信DB221のセキュリティ情報1210(図12)を参照して、上記利用者が該通信DB221の利用権を有しているか否かチェックし、そのチェック結果を通信手順制御部201に返す(S2)
通信手順制御部201は、該チェック結果を受け取り、利用者が通信DB221の利用権を有していることが分かると(S3,YES)、クライアント・アプリケーション110に対して“通信DB221への接続が成功した”旨の応答メッセージを返し(S4)、クライアント・アプリケーション110から該通信DB221のテーブルへのアクセス要求を待つ(S5)。
【0145】
一方、上記ステップS3で、利用者が通信DB221の利用権を有していないことが分かると(S3,NO)、クライアント・アプリケーション110に対して、“通信DB221への接続が失敗した”旨の応答メッセージを返す(S6)。
【0146】
2.テーブルアクセス要求受信時のセキュリティチェック
このセキュリティチェック処理は、通信DB制御機構220のSQL解析制御部222Cが資源利用認証部224を介して行う。
【0147】
図14は、このチェック処理を説明するフローチャートである。
SQL解析制御部222Cは、通信手順制御部201からテーブルのアクセス要求のSQL文を受信すると、資源利用認証部224に該指定テーブル名と該アクセスを行ったクライアントの利用者識別子を送り、資源利用認証部224へ該クライアントが上記指定テーブルに対するアクセス権を有しているか否かのチェックを依頼する(S11)。
【0148】
資源利用認証部224は、通信DB221の上記指定されたテーブルが属する公開サービスのセキュリティ情報1220を参照し、上記受け取った利用者識別子を基に、上記指定テーブルに対するクライアントのアクセス権をチェックする。該アクセスには、“参照”と“更新”の2種類があり、“参照依頼”の場合は上記セキュリティ情報1220に登録されている参照権情報を、“更新依頼”の場合は上記セキュリティ情報1220に登録されている更新権情報をチェックする。そして、そのチェック結果をSQL解析制御部222Cに返す(S12)。
【0149】
SQL解析制御部222Cは、上記チェック結果を判別し、クライアントの指定テーブルに対するアクセスが正当であれば(S13,YES)、上記公開サービスに対応したサーバ・アプリケーション210にクライアントからの通知データが渡るように、メッセージキュー制御部225に上記通知データを上記指定テーブルに登録(キューイング)するように依頼する(S14)。
【0150】
一方、上記ステップS13で、クライアントが指定テーブルに対する正当なアクセス権を有していないことが分かると(S13,NO)、通信手順制御部201を介してクライアント(クライアント.アプリケーション110)に“アクセス権が無い旨”の応答メッセージを通知する(S15)。
【0151】
また、本実施例では、あるクライアントがデータベースシステム240のデータベース244(以後便宜上実DB244と記述する)に対して大量のデータのアクセスをしても、他のクライアントへの応答性に悪影響を与えることはない。
【0152】
これは、クライアント・アプリケーション110とサーバ・アプリケーション210との間に通信DB制御機構220を介在させ、クライアント・アプリケーション110による通信DB221へのデータの格納処理(通信DB格納処理)と該格納データを用いたサーバ・アプリケーション210に実DB244へのアクセス(実DBアクセス処理)を、通信DB制御機構220内に設けたキュー制御機構により分類させ、それぞれ非同期に動作させることにより実現している。
【0153】
これを、図15のフローチャートを参照しながら説明する。
通信DB制御機構220において、メッセージキュー制御部225が開設されている公開サービスの入力テーブル351に対するデータの格納要求待ち状態にあるときに、クライアント・アプリケーション110から該入力テーブル351に対するデータの格納要求(INSERT)があると(S31)、メッセージキュー制御部225は、該データを入力テーブル351にキューイングする。すなわち、メモリ上に獲得した通信バッファ226に上記データを格納し、これを入力テーブル351のキューにリンクさせる(S32)。
【0154】
そして、このキューイング処理が完了すると、通信DB221への格納要求の実行が完了した旨の応答メッセージを、該要求元のクライアント・アプリケーション110に通知する(S33)。
【0155】
メッセージキュー制御部225は、上記入力テーブル351にキューイングされるデータを処理する当該サーバ・アプリケーション210の現在の状態を調べ、現在、処理の実行中ならば、前記ステップS31に戻り、再びクライアント・アプリケーション110からの格納要求待ちとなる(S34,処理中)。
【0156】
一方、上記当該サービス・アプリケーション210が現在、処理待ち状態にあれば(S34,処理待ち)、アプリ起動要求制御部229を介してアプリ実行制御部241に上記当該サーバ・アプリケーション210の起動要求を行う(S35)。
【0157】
これにより、アプリ実行制御部241は、上記当該サーバ・アプリケーション210の状態を“起動要求待ち”(S36)から“処理中”に変更させる(S37)。そして、上記当該サーバ・アプリケーション210を実行させる(S38)。
【0158】
当該サーバ・アプリケーション210は、通信DB221すなわち上記入力テーブル351からクライアント・アプリケーション110により格納されたデータを取り出し、該データを基に実DB244をアクセスし、当該データ処理を行う(S39)。
【0159】
アプリ実行制御部241は、上記当該サーバ・アプリケーション210の処理が終了すると、上記入力テーブル351に上記当該サーバ・アプリケーション210宛のデータが格納(キューイング)されていないか調べ、有れば(S40,データ有り)、再び、上記ステップS38に戻り上記当該サーバ・アプリケーション210を起動させる。これにより、入力テーブル351に格納されているデータがなくなるまで上記ステップS38〜S39の処理が繰り返される。
【0160】
そして、アプリ実行制御部241は、入力テーブル351に格納されているデータが無くなると(S40,データ無し)、上記当該サーバ・アプリケーション210の状態を“処理待ち”にさせる(S41)。これにより、上記当該サーバ・アプリケーション210は再び起動要求待ちとなる(S36)。
【0161】
このように、通信DB制御機構220は、クライアント・アプリケーション110からの通信DB221へのデータ格納要求に対して、該格納データを当該公開サービスの入力テーブル351へのキューイングが終了した時点でその格納要求の完了を直ちにクライアント・アプリケーション110に通知する。したがって、クライアント・アプリケーション110は、通信DB221へのアクセスに対して常に速い応答を受け取ることができる。また、通信DB制御機構220も、多くのクライアント・アプリケーションからの通信DB221へのアクセスを、短時間で多量に受け付けることができる。
【0162】
次に、図16は、本実施例における、管理者のアクセス時間帯、データベースサーバ200の過負荷制御、及び業務毎の優先度制御の運用管理方法を説明する図である。
【0163】
同図において、データベースサーバ200には、2台のクライアント・マシン110−1,110−2が接続され、データベースサーバ200内には2つの通信DB221A,221Bが構築されている。また、通信DB221Aには公開サービスAが、通信DB221Bには公開サービスBが登録されている。そして、公開サービスAに対応するサーバ・アプリケーション210Aが、公開サービスBに対応するサーバ・アプリケーション210Bが実装されている。
【0164】
また、データベースサーバ200内のデータベースシステム240のデータベース(実DB)244は、テーブル群A(テーブルA1,A2)、テーブル群B(テーブルB1)が登録されている。そして、サーバ・アプリケーション210Aは実DB244のテーブル群Aをアクセスし(これをアクセスa2と呼ぶ)、サーバ・アプリケーション210Bは実DB244のテーブル群Bをアクセスする(これをアクセスb2と呼ぶ)。また、クライアント・マシン110−1からの通信DB221Aの公開サービスAに対するアクセスはa1、クライアント・マシン110−2からの通信DB221Bの公開サービスBに対するアクセスはb1と呼ぶことにする。
【0165】
1.アクセス時間帯の運用・管理
例えば、実DB244においてテーブル群Aについてのみメンテナンスを行う事態が生じたとする。この場合、管理者は、クライアント・マシン110−1の通信DB221Aに対するアクセスa1またはサーバ・アプリケーション210の実DB244に対するアクセスa2を抑止させる。この間、実DB244のテーブル群Bに対するアクセス、すなわちクライアント・マシン110−2の通信DB221Bに対するアクセスb1及びサーバ・アプリケーション210Bの実DB244に対するアクセスb2は抑止させる必要はない。すなわち、テーブル群Bに対する処理は中断させることなく、テーブル群Aをメンテナンスすることが可能となる。
【0166】
尚、アクセスa1の抑止は、通信DB221Aのサービス閉塞機能により行う。また、アクセスa2の抑止は、サーバ・アプリケーション210Bの実行環境の停止により行う。アクセスa2のみの抑止を行った場合、クライアント・マシン110−1に対しては、通信DB221Aに対するアクセスa1、すなわち公開サービスAは停止させることなく、実DB244のメンテナンスを行うことができる。何故なら、この間、アクセスa1による要求は通信DB221Aの公開サービスAに対応する入力テーブル351にキューイングされるからである。
【0167】
このように、本実施例においては、通信DB221を設けたことにより、システムの停止範囲を局所化した運用が可能となる。
2.過負荷制御
これは、各公開サービスに対して重要度を設定し、データベースサーバ200の負荷が高くなったときには、重要度の低い公開サービスへのアクセスを停止することにより行う。
【0168】
例えば、図16の例では、公開サービスAの方が公開サービスBよりも重要度が低い場合、クライアント・マシン110−1からの通信DB221−Aの公開サービスAへのアクセスa1またはサーバ・アプリケーション210Aの実DB244のテーブル群Aへのアクセスa2を抑止する。すなわち、これによりサーバ・アプリケーション210Aの処理を停止させる。これにより、データベースサーバ200の負荷が軽減される。
【0169】
この場合にも、上記アクセスa1及びアクセスa2の抑止は、上述したアクセス時間帯の制御のときと同様にして行う。また、この場合においても、アクセスa2の抑止のみを行い、クライアント・マシン110−1に対してはサービスを停止させずに、負荷を抑えることが可能である。これは、サーバ・アプリケーション210Aの負荷が高い場合に有効である。
【0170】
3.優先度制御
この制御においても、各公開サービスに重要度を設定しておく。そして、重要度の低い業務処理の動作を一時的に停止させ、より重要度の高い業務処理を優先的に動作させる制御を行う。
【0171】
すなわち、例えば図16に示す例において、公開サービスAの方が公開サービスBよりも重要度が低い場合、上記アクセスa1またはアクセスa2を抑止させて、サーバ・アプリケーション210Aの処理を停止させる。これにより、サーバ・アプリケーション210Bの処理能力が高まり、この結果としてクライアント・マシン110−1に対する公開サービスBが優先的に実行される。すなわち、公開サービスBの優先度を上げた運用が可能になる。
【0172】
この場合においても、上記アクセスa1及びアクセスa2の抑止は、上述したアクセス時間帯及び過負荷制御のときと同様にして行うことができる。この場合においても、アクセスa2の抑止のみを行った場合、クライアント・マシン110−1側に対しては公開サービスを停止させるようにすることができる。
【0173】
図17は、上述したアクセス時間帯、過負荷制御、及び優先度制御を実現する通信DB制御機構220の動作を説明するフローチャートである。
この場合、通信DB221のサービス閉塞機能は、当該公開サービスに対応する入力テーブル303Iへのデータの格納(格納サービス)の禁止を意味する。また、サーバ・アプリケーション210の実行環境の停止は、サーバ・アプリケーション210が停止状態にあることを意味する。
【0174】
同図において、メッセージキュー制御部225は、入力テーブル303Iへのデータ格納要求待ちにあるときに、クライアント・アプリケーション110からデータの格納要求を受信すると(S51)、メッセージキュー制御部225はその入力テーブル303Iの現在の格納サービス状態をチェックする(S52)。そして、該格納サービスが閉塞状態にあれば、上記クライアント・アプリケーション110に対して“格納失敗”のエラーメッセージを、通信手順制御部201を介して通知する(S52,格納不可)。
【0175】
すなわち、この場合、前記図17に示す例の場合、クライアント・マシン110−1からの公開サービスAに対するアクセスa1が抑止される。
一方、上記ステップS52で閉塞状態でなければ(S52,格納可)、要求のあった格納データを入力テーブル303Iへキューイングし(S53)、該キューイング完了時点で、データ格納要求が完了した旨の応答メッセージをクライアント・アプリケーション110に通知する(S54)。
【0176】
続いて、上記当該入力テーブル303Iに対応するサーバ・アプリケーション210の状態をチェックして(S55)、該サーバ・アプリケーション210が現在、停止中ならば上記ステップS51に戻り、次のデータ格納要求待ちとなる。
【0177】
すなわち、サーバ・アプリケーション210の実行環境が停止中であれば、クライアント・アプリケーション110からのサービス要求に対してサーバ・アプリケーション210の実DB244に対するアクセスが停止される。
【0178】
一方、上記ステップS55で上記サーバ・アプリケーション210が処理待ち状態にあれば、アプリ起動要求制御部229を介してアプリ実行制御部241に上記サーバ・アプリケーション210の起動要求を行う(S56)。
【0179】
該起動要求後は、前述した図16に示すときと同様にして、上記サーバ・アプリケーション210が実行される。
図2に示すように、本実施例では通信DB制御機構220内に、2つのコード変換/属性変換部223C,223Sを設けている。そして、さらに、これらの変換部223C,223Sの間に通信DB221を設けている。通信DB221内にはクライアント・アプリケーション110とサーバ・アプリケーション210間のメッセージ(データ)の授受に使用される入力テーブル351,353,応答テーブル352が生成されるが、キューとして機能するこれらのテーブルに格納されるデータの各項目の型式(属性)は通信DB221に登録されているテーブル定義情報303(入力テーブル定義情報303I、応答テーブル定義情報303R)に項目属性として定義されている。
【0180】
図18は、本実施例が上記構成によって実現しているクライアント・アプリケーション110とサーバ・アプリケーション210間で授受されるデータの項目属性変換機構を示す模式図である。
【0181】
コード変換/属性変換部223Cは、クライアント・アプリケーション110が送受信するデータの各項目に対して、以下のような属性変換処理を行う。
[1] 通信DB221へのデータ挿入時
クライアント・アプリケーション110から送信されてくるデータの各項目をテーブル定義情報によって定義されている属性に変換・出力する。
【0182】
[2] 通信DB221からのデータ取り出し時
サーバ・アプリケーション210が通信DB221へ挿入したデータ(応答テーブル352または入力テーブル353に挿入したデータ)の各項目をクライアント・アプリケーション110により要求される項目属性に変換・出力する。
【0183】
一方、コード変換/属性変換部223Sは、サーバ・アプリケーション210が送受信するデータの各項目に対して以下のような項目属性変換処理をする。
[3] 通信DB221からのデータ取り出し時
通信DB221(入力テーブル351)から取り出したデータの各項目の属性を、サーバ・アプリケーション210から要求される属性に変換・出力する。
【0184】
[4] 通信DB221へのデータ挿入時
サーバ・アプリケーション210から送信されてくるデータの各項目の属性を、通信DB221のテーブル定義情報303に定義されている属性に変換・出力する。
【0185】
次に、上述した[1]〜[4]の属性変換処理を、図19乃至図22のフローチャートにより、個々に説明する。
図19は、コード変換/属性変換部223Cが実行する上記[1]の属性変換処理を説明するフローチャートである。
【0186】
コード変換/属性変換部223Cは、クライアント・アプリケーション110が依頼してきた通信DB221(入力テーブル351)への挿入データをSQL解析制御部222Cから受け取ると(S111)、通信DB221内の上記入力テーブル351の定義情報303Iに定義されている項目属性情報と上記受信データの各項目の属性とを比較し(S112)、属性が一致しない項目があれば(S112,不一致)、該項目を入力テーブル定義情報303Iに定義されている属性に変換する(S113)。
【0187】
一方、上記ステップS112で、受信データの全項目の属性が入力テーブル定義情報303Iに定義されている属性と一致すれば(S112,一致)、該受信データの属性変換は行わない。
【0188】
次に、図20は、コード変換/属性変換部223Sが実行する上記[3]の属性変換処理を説明するフローチャートである。
コード変換/属性変換部223Sは、入力テーブル351からクライアント・アプリケーション110により挿入されたサーバ・アプリケーション210宛のデータを取り出すと(S121)、該入力テーブル351の定義情報303Iを参照して、上記取り出したデータの各項目の属性を、サーバ・アプリケーション210から依頼された属性と比較する(S122)。
【0189】
そして、上記取り出したデータの項目の中に、サーバ・アプリケーション210から依頼された属性と一致しないものがあれば(S122,不一致)該項目をサーバ・アプリケーション210により依頼された属性に変換する(S123)。
【0190】
そして、該変換後のデータをサーバ・アプリケーション210に送信する(S124)。一方、上記ステップS122で上記取り出したデータの全項目の属性がサーバ・アプリケーション210から依頼された属性と一致しているならば(S122,一致)、直ちに上記ステップS124の処理を実行する。
【0191】
上述した図19及び図20のフローチャートに示す属性変換処理により、クライアント・アプリケーション110がサーバ・アプリケーション210へデータを送信する際、それぞれのアプリケーション110,210はそれぞれの処理に適した属性でデータ処理が行える。
【0192】
次に、図21は、コード変換/属性変換部223Sが実行する上記[4]の属性変換処理を説明するフローチャートである。
コード変換/属性変換部223Sは、サーバ・アプリケーション210がSQL文(INSERT)により依頼する通信DB221(応答テーブル352または入力テーブル353)に挿入するデータを受信すると(S131)、通信DB221に登録されている上記テーブル352または353の定義情報303Rまたは303Iを参照して、該受信したデータの全項目の属性が上記定義情報303Rまたは303Iに定義されている属性と一致しているか否か比較する(S132)。
【0193】
そして、属性が一致していない項目があれば(S132,不一致)、該項目を上記定義情報303Rまたは303Iで定義されている属性に変換する(S133)。
【0194】
一方、上記ステップS132で、受信データの全項目がテーブル定義情報303Rまたは303Iで定義されている属性と一致すれば(S132,一致)、上記受信データについて項目の属性変換は行わない。
【0195】
次に、図22は、コード変換/属性変換部223Cが実行する上記[2]の項目属性変換処理を説明するフローチャートである。
コード変換/属性変換部223Cは、通信DB221(応答テーブル352または入力テーブル353)からクライアント・アプリケーション宛のデータ(サーバ・アプリケーション210からの送信データ)を取り出すと(S141)、上記応答テーブル352または入力テーブルの定義情報(303Rまたは303I)を参照して、上記取り出したデータの全項目の属性がクライアント・アプリケーション110から依頼された属性に一致しているか否か比較する(S142)。
【0196】
そして、属性が一致しない項目があれば(S142,不一致)、該項目をクライアント・アプリケーション110により依頼された属性に変換し(S143)、変換後のデータを通信手順制御部201を介してクライアント・アプリケーション110に送信する(S144)。
【0197】
一方、上記ステップS142で上記取り出したデータの全項目の属性がクライアント・アプリケーション110から依頼された属性に一致する場合には(S142,一致)直ちに上記ステップS144の処理を実行する。
【0198】
上述した、図21及び図22の項目属性変換処理により、サーバ・アプリケーション210からクライアント・アプリケーション110へデータを送信する場合にも、両アプリケーション210,110は、それぞれが処理しやすい属性でデータ処理が行える。
【0199】
このように、本実施例では、クライアント・アプリケーション110とサーバ・アプリケーション210に対し、遣り取りするデータ項目属性を規定させない。このことにより、例えば数値の遣り取りに対し、クライアント・マシン100とデータベースサーバ200でのアプリケーションで属性が不一致の場合でも遣り取りが可能となる。例えば、数値属性としてDECIMAL属性を使用したサーバ・アプリケーション210と数値属性としてINTEGER属性しかないクライアント・アプリケーション110間でのデータの遣り取りが可能となる。
【0200】
そして、これにより、クライアント・アプリケーション110とサーバ・アプリケーション210は、処理するデータの各項目の属性をそれぞれの処理に適した型に決定できる。
【0201】
図23は、現在、実行環境#1で動作しているサーバ・アプリケーションAをサーバ・アプリケーション名を変更せずに、新しい実行環境#2で動作させて、新しい業務処理を構築できることを説明する図である。
【0202】
本実施例においては、サーバ・アプリケーション210の実行環境は通信DB221単位で存在する。これは、通信DB221のサービス定義情報301によって、公開サービスと該公開サービスで提供されるデータ処理を実行するサーバ・アプリケーション210とが対応付けられているからである。また、クライアント・アプリケーション110が通信DB221を使用する(アクセスする)場合、該使用開始はCONNECT命令で宣言する。一方、使用終了は、DISCONNECT命令で宣言する。このように、CONNECT命令の発行により、クライアント・アプリケーション110に対して通信DB221がアロケーションされる。
【0203】
このような機構となっているため、本実施例では、同一のサーバ・アプリケーション210を、複数の実行環境で動作させることが可能である。すなわち、複数の通信DB221の公開サービス情報301に同一名で同一のサーバ・アプリケーション210を登録できる。
【0204】
このため、図23に示すように、異なる実行環境#1,#2で同一のサーバ・アプリケーション210を同一名称のまま動作させることが可能になる。すなわち、サーバ・アプリケーションAを流用して新たな業務処理を構築する際に、該サーバ・アプリケーションAを別名称にすることなく、同一の名称のまま使用することができる。
【0205】
図24は、クライアント・アプリケーション110−1(#1)が公開サービスAを使用した業務を行い、クライアント・アプリケーション110−2(#2)が公開サービスAとBを使用した業務を処理する場合、クライアント・アプリケーション110−1(#1)とクライアント・アプリケーション110−2(#2)とは共にサーバ・アプリケーションAに対して通信することが可能なことを示した。
【0206】
また、本実施例では、通信DB制御機構220を用いて、クライアント・アプリケーション110とサーバ・アプリケーション210の動作試験を、それぞれ単独で行うことが可能である。
【0207】
すなわち、サーバ・アプリケーション210に対しては、通信DB制御機構220をドライバの代替として機能させ、クライアント・アプリケーション110に対してはスタブの代替として機能させる。
【0208】
クライアント・アプリケーション110の動作試験
[1] クライアント・アプリケーション110は、SQLプログラミング(INSERT)により通信DB制御機構220の入力テーブル351にデータを書き込む。
【0209】
[2] 該データ書き込み後、上記入力テーブル351の内容を確認する。
サーバ・アプリケーション210の動作試験
[1] 通信DB制御機構200の入力テーブル351に予めデータを登録する。
【0210】
[2] サーバ・アプリケーション210からSQL命令(SELECT)を通信DB制御機構200に送信して、上記入力テーブル351からデータを取り出し、該データを確認する。
【0211】
また、本実施例では、通信DB制御機構200に対するアクセスは、一般的なSQLプログラミングの発行と類似した方式で行えるため、市販の表計算ソフトやDBアクセスソフト(データベース・アクセス)ソフトを、容易にクライアント・アプリケーション110として活用させることができる。
【0212】
【発明の効果】
以上、説明したように本発明によれば、以下のような効果が得られる。
クライアント・アプリケーションとサーバ・アプリケーションは、当該公開サービス情報によってその形式が定義されているテーブル(以後、公開テーブルと記述する)に対して、該定義に沿ったデータを挿入または取り出すことによりデータ(メッセージ)の授受を行う。このため、クライアント・アプリケーションとサーバ・アプリケーションの開発は、該公開サービス情報のみを意識して行えばよく、互いに独立して行うことができる。 このため、例えば、公開テーブルのレコードを、データベース・サーバ上1または複数のデータベース(以後、実データベースと記述する)の1または複数のテーブルの各レコードに属する項目で構成することにより、以下のような効果が得られる。
【0213】
クライアント・アプリケーションの作成は、実データベース上に構築されているテーブル(以後、実テーブルと記述する)の形式を意識することなく、当該公開テーブルに対するアクセスのみを意識して行えばよい。そして、サーバ・アプリケーションは、該公開テーブルから取り出すデータを基に、データベースに対するアクセスを行う。
【0214】
従って、データベースの構造の変更は、サーバ・アプリケーションのみの修正により対処でき、クライアント・アプリケーションの修正は不要である。
このため、データベースの管理者は、クライアント・アプリケーションを意識することなく、実データベースの構造を変更できる。
【0215】
また、利用者に公開する公開テーブルと管理者が管理する実データベース上の実テーブルとを、別々に設計できる。このため、両テーブルを、利用者側、管理者側それぞれにとって最適な形式に設計できる。また、各々のテーブルの設計者を分離することも可能となるので、テーブル設計の負担が軽減される。また、テーブル情報の保全も、それぞれのテーブル設計者が個別に管理できるので、管理も分担可能である。
【0216】
公開テーブル単位で利用者のアクセス権を設定することにより、アクセス権の設定が容易になる。すなわち、利用者のデータベースアクセス単位は、公開テーブル単位なので、管理者は、該公開テーブル単位で利用者にアクセス権を設定するだけでよい。また、業務管理者に対するデータベース・サーバ上の実データベースのアクセス権は、利用者とは別個に設定・管理できる。
【0217】
クライアント・アプリケーションの1回の公開テーブルへのアクセスで、サーバ・アプリケーションが実データベース上の複数の実テーブルをアクセスすることが可能となるので、クライアント・アプリケーションとサーバ・アプリケーション間でのネットワーク上のトラフィック量が軽減されると共に、業務処理も高速に行えるようになる。
【0218】
また、公開サービスの停止や、サーバ・アプリケーションの停止をデータベース・サーバ管理者が制御することが可能になるので、アクセス時間の制限、過負荷制御、業務処理毎の優先度制御などの運用ルールを利用者に委ねることなく、該管理者の裁量で行うことが可能になる。
【0219】
リアル通信/ディレイド通信などのデータ処理形態に係わる機能ロジックを、アプリケーション(クライアント・アプリケーションとサーバ・アプリケーション)側に組み込む必要がなくなるので、クライアント・アプリケーションとサーバ・アプリケーション間のインタフェースは互いに通信するデータの形式のみとなり、両アプリケーション間の独立化が図れる。このため、両アプリケーションの生産性が向上する。
【0220】
クライアント・アプリケーションとサーバ・アプリケーションのいずれにも、互いに通信するデータの属性変換処理ロジックを組み込む必要がなくなるので、両アプリケーションの生産性が向上する。
【0221】
また、本発明をサーバ・アプリケーションに対してはドライバの代替、クライアント・アプリケーションに対してはスタブの代替として機能させることにより、両アプリケーションが揃わなくても、互いに独立に動作試験を行うことができる。
【0222】
また、既存の表計算ソフトやデータベースアクセスソフトなどの市販の業務パッケージを、容易にクライアント・アプリケーションとして活用することができる。
【0223】
さらに、同一のサーバ・アプリケーションをその名称を変更させずに新しい実行環境で動作させることが可能になるので、既存のサーバ・アプリケーションを新たな業務処理に利用する場合、その構築が容易であり、該サーバ・アプリケーションの修正時のメンテナンスも容易となる。
【図面の簡単な説明】
【図1】 本発明の原理説明図である。
【図2】 本発明の実施例のシステム構成図である。
【図3】 通信データの内部構成を説明する図である。
【図4】 サービス定義情報に設定されるデータ処理形態の動作を説明する模式図である。
【図5】 入力テーブルの構成を説明する図である。
【図6】 通信バッファにキューイングされるデータの形式を説明する図である。
【図7】 データ処理形態応答型の命令とデータの流れとキューイングを説明する図である。
【図8】 応答型(リアル通信)による業務処理の一具体例を示す図である。
【図9】 集信型の業務処理の一例を説明する模式図である。
【図10】 データベースの更新を説明する図である。
【図11】 データベースサーバ上のデータベース構造を変更したときの対処方法を説明する図である。
【図12】 通信データベースに設定されるセキュリティ情報を説明する図である。
【図13】 通信データベースに接続要求があったときのセキュリティ・チェック処理を説明するフローチャートである。
【図14】 通信データベースで定義されているテーブルにアクセス要求があったときのセキュリテ ィ・チェック処理を説明する図である。
【図15】 通信データベース・アクセス処理及び実データベース・アクセス処理を説明するフローチャートである。
【図16】 過負荷制御の方法を説明する図である。
【図17】 アクセス時間帯、過負荷制御、及び優先度制御を実現する通信DB制御機構の動作を説明するフローチャートである。
【図18】 項目属性変換機構を示す模式図である。
【図19】 クライアント・アプリケーションからテーブル挿入要求を受信したときの項目属性変換処理を説明するフローチャートである。
【図20】 サーバ・アプリケーションからテーブルにキューイングされているデータの取り出し要求があったときの項目属性変換処理を説明するフローチャートである。
【図21】 サーバ・アプリケーションからテーブルへのデータ挿入要求を受信したときの項目属性変換処理を説明するフローチャートである。
【図22】 クライアント・アプリケーションからテーブルにキューイングされているデータの取り出し要求を受信したときの動作を説明するフローチャートである。
【図23】 新しい実行環境でクライアント・サーバ関係を構築するとき説明図である。
【図24】 サーバ・アプリケーションの使い分の他の例を示す図である。
【図25】 従来のRDAによりデータベース・アクセスを行うクライアント/サーバ・データベースシステムの問題点を説明する図(その1)である。
【図26】 従来のRDAによりデータベース・アクセスを行うクライアント/サーバ・データベースシステムの問題点を説明する図(その2)である。
【図27】 従来のRDAによりデータベース・アクセスを行うクライアント/サーバ・データベースシステムの問題点を説明する図(その3)である。
【図28】 従来のC/Sアプリ型のデータベースシステムにおける、アプリケーションの動作試験時の問題点を説明する図である。
【図29】 従来のC/Sアプリ型のデータベースシステムにおいて、既存のサーバ・アプリケーションを流用して新たな業務処理を開発する場合に発生する問題点を説明する図である。
【符号の説明】
52 クライアント・アプリケーション
62 サーバ・アプリケーション
200 データベースサーバ
201 通信手順制御部
202 利用者認証部
220 通信DB制御機構(通信制御装置)
221 通信DB(通信データベース)
222C、222S SQL解析制御部
223C、223S コード/属性変換部
224 資源利用認証部
225 メッセージキュー制御部
226 通信バッファ
228 メッセージ保証制御部
229 アプリ起動要求制御部
301 サービス定義情報(公開サービス情報)
303I 入力テーブル定義情報
303R 応答テーブル定義情報
351、353 入力テーブル
352 応答テーブル
400 メモリ
410 キューノード
411 キュー先頭ポインタ
412 キュー最終ポンタ
413 テーブル情報
500 セル
501 チェイン部
502 データ部

Claims (2)

  1. 業務処理をクライアント・アプリケーションとサーバ・アプリケーションによって実行するクライアント/サーバシステムの該クライアント・アプリケーションと該サーバ・アプリケーション間の情報の授受を制御する通信制御装置であって、
    少なくともデータ処理形態とテーブル定義情報と該テーブル定義情報で定義されるテーブルの各項目の属性情報とを含む公開サービス情報を管理する公開サービス情報記憶手段と、
    前記テーブル定義情報に基づいて入力テーブルを作成するテーブル作成手段と、
    前記入力テーブルに入力されるデータを前記属性情報に従って変換して格納する変換手段と、
    前記クライアント・アプリケーションからのSQLを解析してデータを前記入力テーブルに格納する第一のSQL解析制御部と、
    前記入力テーブルにデータが格納された際に前記サーバ・アプリケーションの状態を確認し、前記サーバ・アプリケーションが処理待状態である場合のみ、前記サーバ・アプリケーションに対して起動要求を行うサーバ・アプリケーション起動要求手段と、
    前記サーバ・アプリケーションからのSQLを解析してデータを前記入力テーブルから取り出す第二のSQL解析制御部と、
    前記入力テーブルにデータを格納した際に、前記公開サービス情報内のデータ処理形態が応答型あるいはリアル通信による集信型による処理形態である場合には、前記サーバ・アプリケーションからの完了通知を待って前記クライアント・アプリケーションに対して完了通知を行い、前記サービス定義情報内のデータ処理形態がディレイド通信による集信型あるいは配信型による処理形態である場合には、前記サーバ・アプリケーションからの完了通知を待つことなく前記クライアント・アプリケーションに対して完了通知を行うメッセージ応答制御部と、
    を有する通信制御装置。
  2. 前記公開サービス情報提供手段は、公開情報として更に、前記テーブル定義情報で定義されるテーブルの各項目の第二の属性情報を記憶し、
    前記入力テーブルから取り出されるデータを前記第二の属性情報に従って変換する第二の変換手段を有する、
    請求項1に記載の通信制御装置。
JP12195794A 1994-05-10 1994-05-10 クライアント/サーバシステム用の通信制御装置 Expired - Fee Related JP3777196B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP12195794A JP3777196B2 (ja) 1994-05-10 1994-05-10 クライアント/サーバシステム用の通信制御装置
US08/968,477 US5873086A (en) 1994-05-10 1997-11-12 Communications control apparatus and client/server computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12195794A JP3777196B2 (ja) 1994-05-10 1994-05-10 クライアント/サーバシステム用の通信制御装置

Publications (2)

Publication Number Publication Date
JPH07306821A JPH07306821A (ja) 1995-11-21
JP3777196B2 true JP3777196B2 (ja) 2006-05-24

Family

ID=14824098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12195794A Expired - Fee Related JP3777196B2 (ja) 1994-05-10 1994-05-10 クライアント/サーバシステム用の通信制御装置

Country Status (2)

Country Link
US (1) US5873086A (ja)
JP (1) JP3777196B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605355A (zh) * 2013-12-10 2014-02-26 贵州电力试验研究院 快速远程在线监测汽轮发电机组振动参数的方法及系统

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3178342B2 (ja) * 1996-06-17 2001-06-18 松下電器産業株式会社 ネットワークを利用した情報提供システム
US6170017B1 (en) * 1997-05-08 2001-01-02 International Business Machines Corporation Method and system coordinating actions among a group of servers
US6092197A (en) * 1997-12-31 2000-07-18 The Customer Logic Company, Llc System and method for the secure discovery, exploitation and publication of information
JP3865483B2 (ja) * 1997-10-16 2007-01-10 富士通株式会社 クライアント・サーバ型のデータベース管理システムおよびそのプログラムを記録した記録媒体
US6058389A (en) * 1997-10-31 2000-05-02 Oracle Corporation Apparatus and method for message queuing in a database system
US6175832B1 (en) * 1998-05-11 2001-01-16 International Business Machines Corporation Method, system and program product for establishing a data reporting and display communication over a network
JP3863291B2 (ja) * 1998-05-28 2006-12-27 株式会社日立製作所 データベース処理方法、データベース処理システム及び媒体
US6298347B1 (en) * 1998-08-25 2001-10-02 Numoda Corporation System and method for remote data entry
AU2322900A (en) * 1999-01-29 2000-08-18 Degitaldesign, ltd. Data transmission method, computer-readable medium, and data transmission apparatus
US7937364B1 (en) 1999-03-09 2011-05-03 Oracle International Corporation Method and system for reliable access of messages by multiple consumers
US8335775B1 (en) * 1999-08-05 2012-12-18 Oracle International Corporation Versioning in internet file system
US6601234B1 (en) 1999-08-31 2003-07-29 Accenture Llp Attribute dictionary in a business logic services environment
US6640244B1 (en) 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6954220B1 (en) 1999-08-31 2005-10-11 Accenture Llp User context component in environment services patterns
US6640249B1 (en) 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
US7289964B1 (en) 1999-08-31 2007-10-30 Accenture Llp System and method for transaction services patterns in a netcentric environment
US6615253B1 (en) 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US6742015B1 (en) 1999-08-31 2004-05-25 Accenture Llp Base services patterns in a netcentric environment
US6601192B1 (en) 1999-08-31 2003-07-29 Accenture Llp Assertion component in environment services patterns
US6578068B1 (en) 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US6640238B1 (en) 1999-08-31 2003-10-28 Accenture Llp Activity component in a presentation services patterns environment
US6842906B1 (en) 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US6549949B1 (en) 1999-08-31 2003-04-15 Accenture Llp Fixed format stream in a communication services patterns environment
US6529909B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
US6571282B1 (en) 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
KR20020053814A (ko) * 1999-09-20 2002-07-05 이반 충슝 황 전자상거래 서비스를 수행하는 시스템 및 방법
US6470350B1 (en) * 1999-12-15 2002-10-22 Unisys Corporation Method and system for simulating a database table in response to a database query
US6834285B1 (en) 2000-03-24 2004-12-21 Numoda Corporation Computer system for portable digital data capture and data distribution
US6535871B1 (en) * 2000-07-24 2003-03-18 Pitney Bowes Inc. Method for searching a digital rights management package
DE10049610A1 (de) * 2000-10-05 2002-04-18 Alcatel Sa Netzwerkmanagement-Client
EP1271342A1 (en) * 2001-04-30 2003-01-02 Sun Microsystems, Inc. Method for accessing database table columns
US7233960B1 (en) 2001-10-31 2007-06-19 Numoda Corporation System and method for mobile wireless electronic data capture and distribution of a merchant card-processing application
US20030172185A1 (en) * 2002-03-07 2003-09-11 Rockwell Electronic Commerce Technologies, L.L.C. Method and system for adding text data to data communication sessions
US20040064430A1 (en) * 2002-09-27 2004-04-01 Klein Jonathan D. Systems and methods for queuing data
US7467018B1 (en) * 2002-11-18 2008-12-16 Rockwell Automation Technologies, Inc. Embedded database systems and methods in an industrial controller environment
US7260599B2 (en) * 2003-03-07 2007-08-21 Hyperspace Communications, Inc. Supporting the exchange of data by distributed applications
US7346905B2 (en) * 2003-06-10 2008-03-18 International Business Machines Corporation Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment
US7636941B2 (en) * 2004-03-10 2009-12-22 Microsoft Corporation Cross-domain authentication
US7921076B2 (en) * 2004-12-15 2011-04-05 Oracle International Corporation Performing an action in response to a file system event
US7519601B2 (en) * 2004-12-17 2009-04-14 Sap Ag Method and apparatus for implementing recursive remote procedure calls
US20060133412A1 (en) * 2004-12-22 2006-06-22 Rockwell Automation Technologies, Inc. Integration of control and business applications using integration servers
US7706895B2 (en) * 2005-02-25 2010-04-27 Rockwell Automation Technologies, Inc. Reliable messaging instruction
US7565351B1 (en) 2005-03-14 2009-07-21 Rockwell Automation Technologies, Inc. Automation device data interface
US7233830B1 (en) * 2005-05-31 2007-06-19 Rockwell Automation Technologies, Inc. Application and service management for industrial control devices
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US7895573B1 (en) * 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US8225311B1 (en) * 2006-03-30 2012-07-17 Emc Corporation Deploying and distributing content management code
JP4983100B2 (ja) * 2006-05-31 2012-07-25 富士通株式会社 データ差異解消プログラムおよびデータ差異解消装置
US7730478B2 (en) * 2006-10-04 2010-06-01 Salesforce.Com, Inc. Method and system for allowing access to developed applications via a multi-tenant on-demand database service
US9424154B2 (en) 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
JP2012059136A (ja) * 2010-09-10 2012-03-22 Oki Electric Ind Co Ltd 業務支援システム、業務支援方法及びプログラム
CN102075527A (zh) * 2010-12-30 2011-05-25 合肥恒卓科技有限公司 一种互联网数据通信系统及其通信方法
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
US9167443B2 (en) * 2011-05-18 2015-10-20 Radius Networks, Inc. System and method for managing content exchanges in a wireless network using a listener module
CN102231213A (zh) * 2011-06-29 2011-11-02 哈尔滨工业大学深圳研究生院 Ecg门禁卡身份识别方法及系统
US9191298B1 (en) * 2011-08-01 2015-11-17 Google Inc. Distributed forensic investigation
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
US9749813B2 (en) * 2012-12-17 2017-08-29 Radius Networks, Inc. System and method for associating a MAC address of a wireless station with personal identifying information of a user of the wireless station
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
US9400825B2 (en) * 2013-05-23 2016-07-26 Strategy Companion Corporation Pivot analysis method using condition group
WO2015060857A1 (en) 2013-10-24 2015-04-30 Mcafee, Inc. Agent assisted malicious application blocking in a network environment
US9442944B2 (en) 2013-11-12 2016-09-13 Dropbox, Inc. Content item purging
CN103838855A (zh) * 2014-03-17 2014-06-04 广东创能科技有限公司 余票更新的方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4855906A (en) * 1987-10-23 1989-08-08 Allen-Bradley Company, Inc. System for handling unsolicited messages from lower-tier controllers
JPH0325947U (ja) * 1989-07-14 1991-03-18
US5257369A (en) * 1990-10-22 1993-10-26 Skeen Marion D Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5339392A (en) * 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
US5265250A (en) * 1990-03-29 1993-11-23 At&T Bell Laboratories Apparatus and methods for performing an application-defined operation on data as part of a system-defined operation on the data
US5280610A (en) * 1990-08-14 1994-01-18 Digital Equipment Corporation Methods and apparatus for implementing data bases to provide object-oriented invocation of applications
US5497319A (en) * 1990-12-31 1996-03-05 Trans-Link International Corp. Machine translation and telecommunications system
US5291416A (en) * 1991-03-08 1994-03-01 Software Algoritms Incorporated Event feedback for numerically controlled machine tool and network implementation thereof
US5465351A (en) * 1992-08-14 1995-11-07 Noblenet Inc. Client-side memory management process for client-server computing
US5553235A (en) * 1992-10-23 1996-09-03 International Business Machines Corporation System and method for maintaining performance data in a data processing system
DE69318571T2 (de) * 1992-12-01 1998-09-17 Microsoft Corp Verfahren und system für die in-ort-wechselwirkung mit eingebetteten objekten
US5446842A (en) * 1993-02-26 1995-08-29 Taligent, Inc. Object-oriented collaboration system
US5566069A (en) * 1994-03-07 1996-10-15 Monsanto Company Computer network for collecting and analyzing agronomic data
US5544354A (en) * 1994-07-18 1996-08-06 Ikonic Interactive, Inc. Multimedia matrix architecture user interface
US5586312A (en) * 1994-10-11 1996-12-17 Unisys Corporation Method and apparatus for using an independent transaction processing application as a service routine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605355A (zh) * 2013-12-10 2014-02-26 贵州电力试验研究院 快速远程在线监测汽轮发电机组振动参数的方法及系统

Also Published As

Publication number Publication date
US5873086A (en) 1999-02-16
JPH07306821A (ja) 1995-11-21

Similar Documents

Publication Publication Date Title
JP3777196B2 (ja) クライアント/サーバシステム用の通信制御装置
US11243920B2 (en) Distributed database system, transaction processing method, lock server and storage medium
US7680793B2 (en) Commit-time ordered message queue supporting arbitrary read and dequeue patterns from multiple subscribers
US7503052B2 (en) Asynchronous database API
US7366751B2 (en) Framework system
US6304873B1 (en) System and method for performing database operations and for skipping over tuples locked in an incompatible mode
US6397227B1 (en) Database management system and method for updating specified tuple fields upon transaction rollback
US6339772B1 (en) System and method for performing database operations on a continuous stream of tuples
US7454516B1 (en) Scalable virtual partitioning of resources
US6349310B1 (en) Database management system and method for accessing rows in a partitioned table
US5881315A (en) Queue management for distributed computing environment to deliver events to interested consumers even when events are generated faster than consumers can receive
US5893128A (en) Distributed work flow management
US7421440B2 (en) Method and system for importing data
US20070162421A1 (en) Real-Time Messaging System for Bridging RDBMSs and Message Buses
JPH035846A (ja) リモート・アプリケーシヨン実行方式
US9560123B2 (en) Using a same program on a local system and a remote system
US6701323B2 (en) Object management system and method for distributed object system
US7805422B2 (en) Change notification query multiplexing
US7136859B2 (en) Accessing heterogeneous data in a standardized manner
US8621010B2 (en) Method and system for protecting messaging consumers
US20050080759A1 (en) Transparent interface to a messaging system from a database engine
US20060282460A1 (en) Method and system for generic data objects
Long et al. IMS primer
US20200125569A1 (en) Method and system to implement sql macros
JPH09160847A (ja) クライアント・サーバ型分散処理システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050325

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: 20060221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060227

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: 20100303

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100303

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110303

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees