JP2010055584A - アプリケーション動作基盤システム - Google Patents

アプリケーション動作基盤システム Download PDF

Info

Publication number
JP2010055584A
JP2010055584A JP2008244955A JP2008244955A JP2010055584A JP 2010055584 A JP2010055584 A JP 2010055584A JP 2008244955 A JP2008244955 A JP 2008244955A JP 2008244955 A JP2008244955 A JP 2008244955A JP 2010055584 A JP2010055584 A JP 2010055584A
Authority
JP
Japan
Prior art keywords
data
application
server
update
variable
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.)
Pending
Application number
JP2008244955A
Other languages
English (en)
Inventor
Masato Ike
正人 池
Koichi Wada
宏一 和田
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2008244955A priority Critical patent/JP2010055584A/ja
Publication of JP2010055584A publication Critical patent/JP2010055584A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 ユーザが操作するアプリケーション自身が利用するデータをアプリケーション動作基盤から参照するだけでデータの提供元を意識せずにデータの更新、削除、取得が可能なようにすること。
【解決手段】 アプリケーション動作基盤上で動作するアプリケーションは、データの取得や更新の処理をアプリケーション動作基盤から呼び出す。呼び出されたアプリケーション動作基盤は、サーバにある変数データ設定ファイルの情報やクライアントPCのデータベースにあるアプリケーション設定テーブルの情報を比較してデータの取得と更新を実行する。実行後、アプリケーション動作基盤からアプリケーションへ更新データを反映させる。
【選択図】 図1

Description

本発明は、クライアントコンピュータに実装されたクライアントアプリケーションにデータの提供元を意識させないようにデータを操作し、クライアントアプリケーションにデータを提供するアプリケーション動作基盤システムに関するものである。
クライアントコンピュータに実装されたアプリケーションの動作は、複数の処理やデータを組合せることで実行される。さらにその処理内部でも、別に定義された処理を呼出し、実行していることがあり、アプリケーション開発者はそれを意識する必要がある。そうしないと、ある処理を修正したときにデグレードを引き起こす恐れがあり、余計な工数がかかってしまう。それにより、簡単にクライアントアプリケーションを構築できなくなる。
この問題を解決するために、ある基盤上に処理やデータをオブジェクトとして予め用意しておき、そのオブジェクトがどのオブジェクトと関連しているのかを情報として持たせ、それらを組合せることで簡単にクライアントアプリケーションを動作させることができる技術がある。その技術として、下記特許文献1のものが知られている。
下記特許文献1に記載のものは、オブジェクト指向言語によるアプリケーション開発において、アプリケーションを構成する各オブジェクトが関係のあるオブジェクトをリンク情報として持ち、そのリンク情報をもとに複数のオブジェクトやデータを組合せて処理を実行させるプログラム構築装置である。
特開平7−104981号
しかし、上記特許文献1に記載の技術は、利用するオブジェクトがプログラム構築装置内で閉じており、装置の外部にあるオブジェクトを利用する場合に対処できていない。このため、装置の外部のオブジェクトを含めてアプリケーションを構築すると、開発工数の増加を招き、容易にアプリケーションを作成できないという問題がある。
さらに、上記特許文献1に記載の技術は、各オブジェクト間の関連情報を管理しているが、あるオブジェクトを修正した際に、修正したオブジェクトと関連のあるオブジェクトに対して、修正による動作の影響を管理していない。そのため、あるオブジェクトが仕様変更により、大幅に変更になったときに以前構築したアプリケーションが動作しない恐れがある。
本発明の目的は、アプリケーションが利用するデータの所在が外部のサーバやクライアントPCのハードディスク(HDD)に存在する場合であっても、アプリケーションがその所在を意識することなく、データを取得し、更新できるアプリケーション動作基盤システムを提供することにある。
さらに、複数のクライアントPCによる利用や、データが更新されることによって、更新対象のデータと関連があるデータも更新してしまう場合に対処したアプリケーション動作基盤システムを提供することにある。
上記目的を達成するために、本発明に係るアプリケーション動作基盤システムは、クライアントコンピュータに実装され、クライアントコンピュータのアプリケーションの動作を制御するアプリケーション動作基盤と、前記アプリケーションが所定の処理を実行するのに必要なデータを保持したサーバとから構成されたアプリケーション動作基盤システムであって、
前記アプリケーション動作基盤が、
前記アプリケーションからの呼出しを受け、当該アプリケーションが所定の処理を実行するのに必要なデータを前記サーバから取得し、呼出し元のアプリケーションに渡すと共に、渡したデータのサーバにおける更新時刻をクライアントコンピュータのローカルデータベースの変数データテーブルに記録する第1の手段を備え、
前記サーバが、
呼出し元のアプリケーションから要求されたデータをサーバデータベースの変数データテーブルから取得し、呼出し元のアプリケーションに送信する第2の手段を備え、
前記アプリケーション動作基盤が、
前記ローカルデータベースの変数データテーブルに格納された各データのサーバにおける更新時刻と前記アプリケーションを操作するユーザによる更新時刻との差を計算し、更新時刻差が所定時間以上のデータについては前記サーバから最新の更新時刻のデータを取得し、前記ローカルデータベースの変数データテーブルに反映させる第3の手段を備え、
前記サーバが、
前記サーバデータベースの変数データテーブルに設定された各データの属性のうち「データプッシュ可」の属性のデータについては前記サーバデータベースにおける変数データテーブルのデータが更新される都度、更新されたデータを前記アプリケーションに送信する第4の手段を備え、
前記サーバが、
複数の前記クライアントコンピュータにある前記アプリケーションからのデータの更新処理の要求に対して、要求を受け取った時刻と、データ更新による更新対象外のデータへの更新の影響を考慮し、実行する更新処理を選択する第5の手段を備えることを特徴とする。
また、前記アプリケーション動作基盤が、
データの属性として「機密扱い」が設定されていた場合に暗号化する第6の手段を備えることを特徴とする。
また、前記アプリケーション動作基盤が、
前記アプリケーションが前記サーバから受け取ったデータを前記ローカルデータベースの前記変数データテーブルへ反映させる場合に、データ間の関連を示すフラグをもとに、データの更新処理により、関連するデータも更新し、前記変数データテーブルの前記更新時刻を更新する第7の手段を備えることを特徴とする。
本発明によれば、アプリケーション動作基盤システム上で動作するアプリケーションは、扱うデータを全てアプリケーション動作基盤システムから参照することにより、データの処理をデータの提供元を意識することなく実行することが可能になる。
また、全てのアプリケーションをアプリケーション動作基盤システム上で動作するように開発することで、セキュリティやデータ処理などをアプリケーション単位でなく、一元管理することができる。
以下、図面を用いて本発明を実施する場合の最良の一形態を具体的に説明する。
図1(a)は、本発明に係るアプリケーション動作基盤システムの基本構成を示すシステム概要図である。
図1(a)において、この実施形態のシステムは、クライアントコンピュータPC、サーバSBから構成され、クライアントコンピュータ内には、複数のアプリケーションAPA〜APCの実行環境を提供するオペレーティングシステムOS1及びアプリケーションランタイムAPR、各アプリケーションが扱うデータを格納するローカルデータベースLDBを備え、さらに複数のアプリケーションAPA〜APCに対し必要なデータを提供するアプリケーション動作基盤ABを備えている。
アプリケーション動作基盤ABは基盤メインプログラムABPによって構成されている。
一方、サーバSBはクライアントコンピュータPCの各アプリケーションに対して提供するデータを格納するサーバデータベースSDB、アプリケーションに変数データとして提供するデータの設定ファイルVDF(A)〜VDF(C)を備えている。
図1(b)は、複数の端末がアプリケーション動作基盤システムを利用するときの概要図である。
図1(b)において、この実施形態のシステムは、P1、P2、P3からなる複数のクライアントコンピュータPCと1つのサーバSBとサーバデータベースSDBから構成される。サーバSBは複数のPCから送信されるデータを制御し、サーバデータベースSDBにデータを格納し、各クライアントコンピュータPCにデータを提供する機能を備えている。
図2は、図1のシステムの詳細構成図である。
図2において、ユーザ1は本発明を操作する操作者である。
PC2はオペレーティングシステム2aと表示装置3と入力装置4を備えているクライアントコンピュータである。
アプリケーションランタイム2bはアプリケーション動作基盤2cを動作させるためのアプリケーション実行環境である。
アプリケーション動作基盤2cは、アプリケーション2dを動作させ、制御するためのプログラムである。
アプリケーション2dは、アプリケーション動作基盤2c上で動作し、ユーザ1が実際に操作するアプリケーションである。2つのアプリケーション2dはそれぞれ異なるものとする。
アプリケーション動作プログラム2eは、基盤メインプログラム2fを使用して動作するプログラムである。2つあるアプリケーション動作プログラム2eはそれぞれ異なる動作をするものとする。
基盤メインプログラム2fは、基盤制御プログラム2gと、DB管理プログラム2hと、サーバ通信プログラム2iと、復号プログラム2jと、暗号化プログラム2kを備えているプログラムである。
基盤制御プログラム2gは、アプリケーション動作基盤2cの動作を制御するプログラムである。アプリケーション動作プログラム2eは基盤制御プログラム2g以外のプログラムを直接利用できない。
DB管理プログラム2hは、ローカルDB2lを管理するプログラムである。
サーバ通信プログラム2iは、サーバ5と通信するためのプログラムである。
復号プログラム2jは、ローカルDB2lから取得するアプリケーション2dのデータが暗号化されている場合に、復号するためのプログラムである。
暗号化プログラム2kは、アプリケーション2dのデータを暗号化してローカルDB2lに保存する際に使用するプログラムである。
ローカルDB2lは、オペレーティングシステム2b上で動作するデータベースである。
サーバ5は、変数データ設定ファイル5aと、リクエスト対応プログラム5bと、データプッシュプログラム5cと、データ管理プログラム5dを備えているサーバである。
変数データ設定ファイル5aは、アプリケーション2dが扱うデータの設定情報を保持するファイルである。これはアプリケーション2dの数だけ存在する。
リクエスト対応プログラム5bは、PC2から送信されるリクエストに対して処理を実行するプログラムである。
データプッシュプログラム5bは、サーバDB6のデータが更新された際にサーバ5からPC2へ更新データを送信するためのプログラムである。
データ管理プログラム5cは、サーバDB6のデータや、変数データ設定ファイル5aの操作や管理を行うプログラムである。
サーバDB6は、アプリケーション2dのデータを保持するデータベースである。
図3(a)は、アプリケーション2dの一例である売上粗利管理アプリケーションが表示する売上粗利管理画面の表示データ例を示すものである。
売上粗利管理画面20は、ユーザ1が各部の売上と粗利を期ごとに閲覧、編集する画面である。編集できる箇所は、編集するユーザ1が所属する部の、現在の期にあたる目標売上、目標粗利、現状実績、現状粗利の4箇所であり、他の欄は閲覧のみとなる。また、目標の売上合計と粗利合計は一度確定すると変更できないものとし、例えば、ある部の目標売上の数値が変更されると、売上合計の数値に合わせて、他の部の目標売上の数値が変更になる。本実施例では、目標売上と目標粗利の合計値が変更できないものとする。
文字列21は、売上粗利管理画面20に表示されている数値の更新日時を表した文字列である。データが更新されると同時に文字列21も更新される。
表22は、各部、各期における売上と粗利の数値を表示する表である。
列23は、部の名前を表すデータを表示する列である。
列24aは、「07上」の目標売上の数値を表示する列である。
列24bは、「07上」の目標粗利の数値を表示する列である。
列24cは、「07上」の実績売上の数値を表示する列である。
列24dは、「07上」の実績粗利の数値を表示する列である。
列24eは、「07下」の目標売上の数値を表示する列である。
列24fは、「07下」の目標粗利の数値を表示する列である。
列24gは、「07下」の現状粗利の数値を表示する列である。
列24hは、「07下」の現状粗利の数値を表示する列である。
図3(b)は、売上粗利管理アプリケーションにおけるデータ衝突画面である。
データ衝突画面50は、PC2から更新するデータと、サーバ5で保持されているデータで不整合が生じた場合に表示される画面である。
ラジオボタン51は、ユーザ1がデータ衝突画面50以降のアプリケーション2dの処理を選択するボタンである。
ボタン52は、アプリケーション2dへの処理を実行するために押すボタンである。
ボタン53は、アプリケーション2dへの処理を中断するために押すボタンである。
図4は、基盤制御プログラム2gの内部構造のクラス図の一部分を表すものである。
四角形30は、DataManagementクラスを表す。DataManagementクラスはアプリケーション2dが扱う各データの属性を管理するクラスである。DataManagementクラスはアプリケーション動作プログラム2eで利用できないものとする。
四角形31は、クラスの名称を表す。
四角形32は、クラスが持つ変数を表す。例えば「time:String」は、timeという変数名で、String型の変数であることを示す。
四角形33は、クラスが持つ関数を表す。
文字列33aは、timeという変数を取得するために使用するget関数である。
文字列33bは、timeという変数に値を格納するために使用するset関数である。四角形33で並列している文字列は、interval変数、url変数、security変数、push変数のget関数とset関数を表す。例えば「getTime():String」はアプリケーション動作プログラム2e内でgetTime関数を実行すると、String型のデータが返り値として取得できることを示す。
四角形34は、MyVarsクラスを表す。MyVarsクラスはアプリケーション動作プログラム2eから直接利用できるものとする。
文字列34aは、アプリケーション2dで使用する変数のデータを取得するために、アプリケーション動作プログラム2eから呼び出すget関数である。
文字列34bは、アプリケーション2dで使用する変数のデータをアプリケーション2dから格納するために、アプリケーション動作プログラム2eから呼び出すset関数である。
矢印35は、クラスの継承を表す。クラスの継承とはあるクラスの機能を拡張することを意味する。
図5は、ローカルDB2l内にあるテーブルの例を示す。
テーブル40は、売上粗利管理画面20の表22内の列24aと列24bと列24eと列24fの詳細データを保持する目標データテーブルである。この目標データテーブル40は、サーバDB6も保持している。
列40aは、テーブル40の主キーを表す列である。
列40bは、部名のデータを表す列である。
列40cは、各期のデータを表す列である。
列40dは、各部、各期における売上を暗号化したデータを表す列である。ただし、サーバDB6では暗号化されていないデータで表される。
列40eは、各部、各期における粗利を暗号化したデータを表す列である。
列40fは、他の変数でのデータ更新処理により、影響を受けるデータであることを示すフラグを表す列である。
テーブル41は、売上粗利管理画面20の表22内の列24cと列24dと列24gと列24hの詳細データを保持する現状データテーブルである。この現状データテーブル41は、サーバDB6も保持している。
列41aは、テーブル41の主キーを表す列である。
列41bは、部名のデータを表す列である
列41cは、各期のデータを表す列である。
列41dは、各部、各期における売上を暗号化したデータを表す列である。ただし、サーバDB6では暗号化されていないデータで表される。
列41eは、各部、各期における粗利を暗号化したデータを表す列である。ただし、サーバDB6では暗号化されていないデータで表される。
列41fは、他の変数にでのデータ更新処理により、影響を受けるデータであることを示すフラグを表す列である。
テーブル42は、部の名前を保持するセクションテーブルである。このセクションテーブル42は、サーバDB6も保持している。
列42aは、テーブル42の主キーを表す列である。
列42bは、各部の名前のデータを表す列である。
テーブル43は、アプリケーション2dが使用している変数の属性を保持する変数テーブルである。この変数テーブル43はローカルDB2lのみが保持するテーブルである。
列43aは、テーブル43の主キーを表す列である。
列43bは、アプリケーション2dが使用している変数の名前を表す列である。
列43cは、アプリケーション2dが使用している変数のデータ更新の間隔を表す列である。
列43dは、アプリケーション2dが使用している変数のデータ更新をサーバから受信するかどうかを表す列である。
列43eは、アプリケーション2dが使用している変数のデータを保持しているサーバ5の接続先URLを表す列である。
列43fは、アプリケーション2dが使用している変数のデータをローカルDB2mに保持する際に暗号化するかどうかを表す列である。
列43gは、アプリケーション2dが使用している変数のデータの更新がサーバ5で行われた日時を表す列である。
列43hは、アプリケーション2dが使用している変数のデータの更新がPC2で行われた日時を表す列である。
図6は、サーバ側の変数データ設定ファイル5aの一例を示す図である。
ファイル5aは、アプリケーション2dが使用している変数の属性の設定がXML(拡張マークアップ言語)形式で記述されているファイルである。ファイル5aはアプリケーション2dの数だけ存在する。
文字列61は、変数データ設定ファイルのルートを表すXMLタグである。
文字列62は、アプリケーション2dが使用している変数の名前や属性の設定内容のルートを表すXMLタグである。
文字列63は、アプリケーション2dが使用している変数名を設定するXMLタグである。
文字列64は、アプリケーション2dが使用している変数のデータがサーバ5側で更新された日時が記述されるXMLタグである。このタグはサーバ5側でデータが更新されるたびに書き換わる。
文字列65は、アプリケーション2dが使用している変数のデータの更新状況を確認するためにPC2からサーバ5へ接続する間隔を設定するXMLタグである。
文字列66は、アプリケーション2dが使用している変数のデータがサーバ5側で更新されたときに、サーバ5からPC2へ更新データを送信するかどうかを設定するXMLタグである。
文字列67は、アプリケーション2dが使用している変数のデータをPC2から取得するために接続する接続先のURLを設定するXMLタグである。
文字列68は、アプリケーション2dが使用している変数のデータをローカルDB2lで保持する場合に、そのデータを暗号化するかどうかを設定するXMLタグである。
文字列69は、他の変数でのデータ更新処理により、影響を受ける変数であることを示すために設定するXMLタグである。
図7は、アプリケーション2dを起動したときの流れを示すフローチャートである。
ユーザ1は、アプリケーション動作基盤2cを起動する(ステップ701)。
ユーザ1は、アプリケーション2dを起動する(ステップ702)。
アプリケーション動作基盤2cは、起動したアプリケーション2dが初期起動かどうかを調べ、初期起動である場合はステップ704、初期起動でない場合はステップ705へ進む(ステップ703)。初期起動であるかどうかの判断はローカルDB2lにアプリケーション2dのデータの有無で決定する。
初期起動である場合、サーバ5と通信が可能かどうかを調べ、可能である場合はステップ706、不可能である場合はアプリケーション2dを終了する(ステップ704)。
サーバ通信の確認処理はサーバ通信プログラム2iで行う。
初期起動でない場合、サーバ5と通信が可能かどうか調べ、可能である場合はステップ707、不可能である場合はステップ708へ進む(ステップ705)。
初期起動で、かつサーバ5との通信が可能な場合、サーバ5からデータの取得を行う(ステップ706、図8参照)。
初期起動ではなく、サーバ5との通信が可能な場合、サーバ5から変数データ設定ファイル5aを取得し、データの整合性を確認する(ステップ707、図9参照)。
初期起動ではなく、サーバ5との通信が不可能な場合、アプリケーション2dのデータをローカルDB2lから取得し、表示する(ステップ708、図10参照)。
図8は、アプリケーション2dを初期起動し、サーバ5との通信が可能のときに実行する処理の流れを示すフローチャートである。
まず、アプリケーション2dが扱うデータを取得するために、MyVarsクラスのgetVar関数を実行する(ステップ801)。getVar関数は取得する変数の数だけ実行される。実行方法は、例えばsection変数のデータを取得する場合は、「getVar("app1","section")」となる。
基盤制御プログラム2gがサーバ通信プログラム2iを使用し、アプリケーション2dの変数データ設定ファイル5aのデータをサーバ5から取得する(ステップ802)。このときサーバ5ではリクエスト対応プログラム5bが実行され、PC2にデータが送信される。
取得した変数データ設定ファイル5aのデータを、DB管理プログラム2hを使用してローカルDB2lのテーブル43を作成し、登録する(ステップ803)。
次に、テーブル43の列43hに列43gのデータをコピーする(ステップ804)。
次に、テーブル43の内容を基盤制御プログラム2gに格納する(ステップ805)。格納箇所はDataManagementオブジェクトとし、DataManagementオブジェクトは変数の数だけ生成する。
次に、サーバDB6に保持しているアプリケーション2dのデータを取得する(ステップ806)。このときサーバ5ではリクエスト対応プログラム5bが実行され、PC2に対象データが送信される。
データ取得後、基盤制御プログラム2gが保持し、アプリケーション2dの表22と文字列21がアプリケーション画面に表示される(ステップ807)。
次に、基盤制御プログラム2gで、サーバ5から取得したデータのsecurity属性の有効の有無を調べ、trueの場合はステップ809、falseの場合はステップ810へ進む(ステップ808)。ステップ803以降の処理は変数の数だけ実行される。
列43fがtrueの場合、暗号化プログラム2kで取得した変数のデータを暗号化する(ステップ809)。
列43fがfalseの場合、またはステップ809の処理終了後、各変数のデータをローカルDB2lの各テーブルに格納する(ステップ810)。
図9は、アプリケーション2dが初期起動ではなく、サーバ5と通信が可能な場合の基盤制御プログラム2gの動作の流れを示したフローチャートである。
まず、アプリケーション2dに対するローカルDB2lのテーブル43のデータを取得する(ステップ901)。
次に、サーバ5から、アプリケーション2dの変数データ設定ファイル5aを取得する(ステップ902)。
次に、テーブル43の各変数において、列43gと列43hの値が一致しているかどうか調べ、一致している場合はステップ904、一致していない場合はステップ905へ進む(ステップ903)。ステップ903以降の処理は変数の数だけ実行される。
列43gと列43hの値が一致している場合、列43gと、サーバ5から取得した変数データ設定ファイル5aのtimeタグの値が一致しているか調べ、一致している場合はステップ906、一致していない場合はステップ907へ進む(ステップ904)。
列43gと列43hの値が一致していない場合、列43gと、サーバから取得した変数データ設定ファイル5aのtimeタグの値が一致しているか調べ、一致している場合はステップ908、一致していない場合はステップ909へ進む(ステップ905)。
列43gとサーバ5から取得した変数データ設定ファイル5aのtimeタグの値が一致している場合、ローカルDB2lからアプリケーション2dで使用するデータを取得する(ステップ906、図10参照)。
列43gとサーバ5から取得した変数データ設定ファイル5aのtimeタグの値が一致していない場合、サーバDB6から該当するデータを取得する(ステップ907)。
サーバDB6から該当データ取得後、該当データをローカルDB2lに格納する(ステップ910、図11参照)。
列43gと列43hの値が一致せず、かつ列43gとサーバ5から取得した変数データ設定ファイル5aのtimeタグの値が一致している場合、ローカルDB2lからアプリケーション2dで使用するデータを取得する(ステップ908、図10参照)。
ローカルDB2lから取得したデータをサーバ5に送信する(ステップ911)。
PC2からのデータを受信したサーバ5は、サーバDB6と変数データ設定ファイル5aのtimeタグの値を更新する(ステップ912)。
列43gと列43hの値が一致せず、かつ列43gとサーバ5から取得した変数データ設定ファイル5aのtimeタグの値が一致していない場合、データ衝突画面50を表示する(ステップ909)。その後の処理はユーザ1の判断に任せる。
図10は、基盤制御プログラム2gがローカルDB2lからデータを取得するときの内部動作を示すフローチャートである。
まず、DB管理プログラム2hを使用して、テーブル40、テーブル41、テーブル42からアプリケーション2dのデータを取得する(ステップ1001)。
次に、取得したデータのsecurity属性の値を調べ、trueの場合はステップ1003、falseの場合はステップ1004へ進む(ステップ1002)。ステップ1003以降の処理は変数の数だけ実行される。
security属性の値がtrueの場合、復号プログラム2jを使用して暗号化されたデータを復号する(ステップ1003)。
ステップ1004の処理終了後、またはsecurity属性の値がfalseの場合、基盤制御プログラム2fに取得したデータを反映させる(ステップ1004)。その後、アプリケーション2dの表22と文字列21に表のデータとデータ更新日が表示される。
図11は基盤制御プログラム2gがデータを暗号化するときの内部動作を示すフローチャートである。
まず、アプリケーション2dに表示する各変数のデータに対して、security属性の値を調べ、trueの場合はステップ1102、falseの場合はステップ1103へ進む(ステップ1101)。
ある変数のsecurity属性の値がtrueの場合、暗号化プログラムを使用してデータを暗号化する(ステップ1102)。
ステップ1102の処理終了後、またはある変数のsecurity属性の値がfalseの場合、DB管理プログラム2hを使用して、ローカルDB2lの各テーブルにデータを書き込む(ステップ1103)。
次に、テーブル43の列43gと列43hに、サーバ5から取得した変数データ設定ファイル5aのtimeタグの値を書き込む(ステップ1104)。
次に、基盤制御プログラム2gにデータを反映させる(ステップ1105)。その後アプリケーション2dの表22と文字列21に表のデータとデータ更新日が表示される。
図12は、ユーザ1がアプリケーション2dのデータを更新した際の動作の流れを示すフローチャートである。
アプリケーション2d内のアプリケーション動作プログラム2eにより、更新されたデータと更新日時を基盤制御プログラム2gへ渡す(ステップ1201)。渡す処理はMyVarsクラスのset関数を使用する。
更新データを受信した基盤制御プログラム2gが一時的に保持する(ステップ1202)。
次に、基盤制御プログラム2gがサーバ通信プログラム2iを使用して、サーバ5と接続可能かどうかを調べ、接続可能である場合はステップ1204、接続不可能の場合はステップ1205へ進む(ステップ1203)。
サーバ5と通信可能の場合、サーバ通信プログラム2iで変数データ設定ファイル5aを取得する(ステップ1204)。
次に、サーバ5から取得した変数データ設定ファイル5aのtimeタグの値と、テーブル43の列43gの値が一致しているか調べ、一致している場合はステップ1207、一致していない場合はステップ1208へ進む(ステップ1206)。
一致している場合、更新したデータと更新日時をサーバ通信プログラム2iでサーバ5へ送信する(ステップ1207)。
更新データを受信したサーバ5は更新処理を行う(ステップ1209、図15参照)
サーバ5での更新処理が終了したら、PC2に対して更新終了メッセージを送信する(ステップ1210)。
更新終了メッセージを受信したPC2は、基盤制御プログラム2gが一時的に保持していた更新データをローカルDB2lに対して更新処理を行う(ステップ1211、図15参照)。ステップ1211の処理は、サーバ5が実行していた更新処理をPC2で行うこととする。列43gと列43hはサーバ5がデータを更新した時間を格納する。
更新後、更新データの暗号化処理を行う(ステップ1212、図11参照)。




ステップ1206で、サーバ5から取得した変数データ設定ファイル5aのtimeタグの値と、テーブル43の列43gの値が一致していない場合、データ衝突画面50を表示する(ステップ1208)。その後の処理はユーザ1に任せる。
ステップ1203で、サーバ5と通信不可能の場合、ローカルDB2lに対して更新処理を行う(ステップ1205)。
懇親処理終了後、更新データに対して暗号化処理を行う(ステップ1213、図11参照)。
図13は、サーバDB6のデータが更新された場合に、サーバ5からPC2へのデータプッシュ処理の流れを示すフローチャートである。
データ管理プログラム5dがサーバDB6のテーブル41を更新する(ステップ1301)。
データ管理プログラム5dがサーバDB6のテーブル41の更新を検知する(ステップ1302)。
データ管理プログラム5dが更新されたデータに該当する、変数データ設定ファイル5aのtimeタグの値を更新する(ステップ1303)。
更新されたデータによる変数データ設定ファイル5aのpushタグの値を調べ、trueの場合はステップ1305、falseの場合は処理を終了する(ステップ1304)。
pushタグの値がtrueの場合、データプッシュプログラム5cがPC2と通信可能かどうか調べ、可能な場合はステップ1306、不可能の場合は再び通信可能か調べる(ステップ1305)。
PC2と通信可能な場合、データプッシュプログラム5cがPC2へ更新データを送信する(ステップ1306)。
更新データを受信した基盤制御プログラム2gは、DB管理プログラム2hを使用してローカルDB2lのテーブル41を更新する(ステップ1307)。
図14は、テーブル43の列43cのinterval列を使用した、基盤制御プログラム2gによるデータ更新処理の流れを示すフローチャートである。
まず、DB管理プログラム2hで、テーブル43のデータを取得する(ステップ1401)。
オペレーティングシステム2aが保持するその日の日付と、列43gの差を計算する(ステップ1402)。
ステップ1402で計算した差と、列43cの値を比較して、差の方が大きい場合はステップ1404、小さい場合は処理を終了する(ステップ1403)。
ステップ1402で計算した差が列43cよりも大きい場合、サーバ5と通信可能かどうか調べ、通信可能な場合はステップ1405、通信不可能な場合は再び通信可能か調べる(ステップ1404)。
通信可能な場合、テーブル43から取得した列43eの接続先URLへリクエストを送信する(ステップ1405)。
リクエストを受信したサーバ5は、リクエスト対応プログラム5bとデータ管理プログラム5dでサーバDB6から取得したデータと、変数データ設定ファイル5aのtimeタグの値を、PC2へデータを送信する(ステップ1406)。
データを受信した基盤制御プログラム2gは、受信したデータのsecurity属性の値を調べ、trueの場合はステップ1408、falseの場合はステップ1409へ進む(ステップ1407)。
security属性がtrueの場合、暗号化プログラム2kを使用して更新データを暗号化する(ステップ1408)。
ステップ1408の処理終了後、またはsecurity属性がfalseの場合、該当する変数の更新データと列43gと列43hをそれぞれ更新する(ステップ1409)。
図15は、データの更新処理の流れを示すフローチャートである。
更新データを受信したサーバ5または基盤制御プログラム2gは、それぞれデータ管理プログラム5d、DB管理プログラム2hを使用して、更新対象のデータをもつテーブルから影響フラグが1かどうか調べ、1である場合はステップ1502、1でない場合はステップ1503へ進む(ステップ1501)。
影響フラグが1の場合、変数名を元にデータ更新後に影響を受けるデータの数値を取得する(ステップ1502)。例えば、テーブル40においてT0720001の売上数値を更新する場合、影響フラグが1であるため、更新対象の変数名であるT0720001から上4文字の英数字(T072)と取得し、同じ上4文字をもつ変数2つ(T0720002とT0720003)の売上数値を取得する。こうすることで、更新処理により影響のあるデータを抽出することができる。
更新対象のデータに対して、更新前の数値と更新予定の数値の差をとる(ステップ1504)。例えば、更新対象のデータT0720001に対して、更新前の数値が220、更新予定の数値が240だった場合、差は−20となる。
算出した差を、更新処理に影響を受けるデータの数で割り、影響を受けるデータに配分する(ステップ1505)。例えば差が−20だった場合、影響を受けるデータがT0720002とT0720003の2個のため、−20を2で割り、結果の−10をそれぞれT0720002とT0720003に配分する。
配分後、更新対象のデータと更新処理により影響を受けるデータを全て更新する(ステップ1214)。例えば配分の数値が−10の場合、更新対象のT0720001は220から240に更新し、T0720002とT0720003はそれぞれ200と220から、190と210に更新する。
更新した全てのデータの更新日時を更新する(ステップ1507)。更新日時は、サーバ5ではサーバ5で更新処理を完了した日時、PC2ではサーバ5の更新処理を完了している場合はサーバ5で更新処理を完了した日時、サーバ5の更新処理を完了していない場合は、PC2で更新処理を完了した日時とする。
また、データ更新により、影響を受けたデータの更新日時も更新する。この場合の更新日時は、サーバ5で更新処理を完了した日時とする。
図16は、複数のPC2が同じ時間帯にデータを更新する場合の内部処理の流れを示すフローチャートである。
複数のPC2がそれぞれデータの更新処理をサーバへ要求する(ステップ1601)。
サーバに更新処理の要求が同時刻に来たかどうか調べ、同時刻だった場合はステップ1603、同時刻ではなかった場合はステップ1604へ進む(ステップ1602)。
同時刻だった場合、更新対象のデータが重複しているかどうか調べ、重複している場合はステップ1605、重複していない場合はステップ1606へ進む(ステップ1603)。
重複している場合は、重複した更新処理を実行せず、更新処理を却下するメッセージをPCに送信する(ステップ1605)。
重複していない場合、それぞれの更新処理から、更新処理を実行したときに他のデータも更新し、そのデータが他の更新処理の対象データに該当していないかどうか調べ、該当している場合はステップ1605、該当していない場合はステップ1607へ進む(ステップ1606)。
ステップ1606で重複していないことを確認した場合、重複していない更新処理を実行する(ステップ1607)。
他に未実行の更新処理があるかどうか調べ、ある場合はステップ1606へ戻る(ステップ1608)。
ステップ1602で更新処理が同時刻に来ていない場合は、最も早く更新処理の要求がきたものを実行する(ステップ1604)。その後、未実行の更新処理に対して、更新済みのデータや、他の更新処理の対象データと重複していないか調査する。
本発明の一実施の形態を示すシステム概要図である。 図1のシステムの詳細構成図である。 アプリケーション動作基盤上を動作するアプリケーション画面例、サーバ側のデータベースが保持するデータとクライアントPC側のデータベースが保持するデータの整合性が合わないときに表示するデータ衝突画面例を示す図である。 アプリケーション動作基盤内の基盤制御プログラムの内部構造を示すクラス図である。 クライアントPCのデータベース内で保持するテーブル群を示す図である。 アプリケーション動作基盤上で動作するサーバ側の変数データ設定ファイルである。 アプリケーションの起動動作を示すフローチャートである。 アプリケーションの初期起動時にサーバ通信可能な場合の動作を示すフローチャートである。 サーバとの通信が可能で、アプリケーションの起動が初回ではない場合の内部動作を示すフローチャートである。 復号プログラムの内部動作を示すフローチャートである。 暗号化プログラムの内部動作を示すフローチャートである。 クライアントPCからのデータ更新処理時での内部動作を示すフローチャートである。 データプッシュプログラムの内部動作を示すフローチャートである。 アプリケーション動作基盤でのデータ更新処理の内部動作を示すフローチャートである。 データの更新処理の内部動作を示すフローチャートである。 複数のPCから同じ時間帯にデータの更新処理が来た場合のサーバの内部動作を示すフローチャートである。
符号の説明
1 ユーザ
2 クライアントコンピュータ
3 表示装置
4 入力装置
5 サーバ
6 サーバDB
2a オペレーティングシステム
2b アプリケーションランタイム
2c アプリケーション動作基盤
2d アプリケーション
2f 基盤メインプログラム
2g 基盤制御プログラム
2h DB管理プログラム
2i サーバ通信プログラム
2k 暗号化プログラム
2j 復号プログラム
5a 変数データ設定ファイル
5b リクエスト対応プログラム
5c データプッシュプログラム
5d データ管理プログラム

Claims (3)

  1. クライアントコンピュータに実装され、クライアントコンピュータのアプリケーションの動作を制御するアプリケーション動作基盤と、前記アプリケーションが所定の処理を実行するのに必要なデータを保持したサーバとから構成されたアプリケーション動作基盤システムであって、
    前記アプリケーション動作基盤が、
    前記アプリケーションからの呼出しを受け、当該アプリケーションが所定の処理を実行するのに必要なデータを前記サーバから取得し、呼出し元のアプリケーションに渡すと共に、渡したデータのサーバにおける更新時刻をクライアントコンピュータのローカルデータベースの変数データテーブルに記録する第1の手段を備え、
    前記サーバが、
    呼出し元のアプリケーションから要求されたデータをサーバデータベースの変数データテーブルから取得し、呼出し元のアプリケーションに送信する第2の手段を備え、
    前記アプリケーション動作基盤が、
    前記ローカルデータベースの変数データテーブルに格納された各データのサーバにおける更新時刻と前記アプリケーションを操作するユーザによる更新時刻との差を計算し、更新時刻差が所定時間以上のデータについては前記サーバから最新の更新時刻のデータを取得し、前記ローカルデータベースの変数データテーブルに反映させる第3の手段を備え、
    前記サーバが、
    前記サーバデータベースの変数データテーブルに設定された各データの属性のうち「データプッシュ可」の属性のデータについては前記サーバデータベースにおける変数データテーブルのデータが更新される都度、更新されたデータを前記アプリケーションに送信する第4の手段を備え、
    前記サーバが、
    複数の前記クライアントコンピュータにある前記アプリケーションからのデータの更新処理の要求に対して、要求を受け取った時刻と、データ更新による更新対象外のデータへの更新の影響を考慮し、実行する更新処理を選択する第5の手段を備える
    ことを特徴とするアプリケーション動作基盤システム。
  2. 前記アプリケーション動作基盤が、
    データの属性として「機密扱い」が設定されていた場合に暗号化する第6の手段を備えることを特徴とする請求項1に記載のアプリケーション動作基盤システム。
  3. 前記アプリケーション動作基盤が、
    前記アプリケーションが前記サーバから受け取ったデータを前記ローカルデータベースの前記変数データテーブルへ反映させる場合に、データ間の関連を示すフラグをもとに、データの更新処理により、関連するデータも更新し、前記変数データテーブルの前記更新時刻を更新する第7の手段を備えることを特徴とする請求項1に記載のアプリケーション動作基盤システム。
JP2008244955A 2008-07-28 2008-09-24 アプリケーション動作基盤システム Pending JP2010055584A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008244955A JP2010055584A (ja) 2008-07-28 2008-09-24 アプリケーション動作基盤システム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008193237 2008-07-28
JP2008244955A JP2010055584A (ja) 2008-07-28 2008-09-24 アプリケーション動作基盤システム

Publications (1)

Publication Number Publication Date
JP2010055584A true JP2010055584A (ja) 2010-03-11

Family

ID=42071385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008244955A Pending JP2010055584A (ja) 2008-07-28 2008-09-24 アプリケーション動作基盤システム

Country Status (1)

Country Link
JP (1) JP2010055584A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002312230A (ja) * 2001-04-11 2002-10-25 Nec Corp クライアント・サーバシステム及びそれに用いるキャッシュ制御方法並びにそのプログラム
JP2002334033A (ja) * 2001-05-07 2002-11-22 Ntt Docomo Inc 情報配信方法、システム、装置、及びプログラム、並びに記録媒体
JP2004030486A (ja) * 2002-06-28 2004-01-29 Hitachi Ltd 分散オブジェクト制御方法およびその実施システム
JP2005250892A (ja) * 2004-03-04 2005-09-15 Mitsubishi Electric Corp ソフトウェア機能更新装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002312230A (ja) * 2001-04-11 2002-10-25 Nec Corp クライアント・サーバシステム及びそれに用いるキャッシュ制御方法並びにそのプログラム
JP2002334033A (ja) * 2001-05-07 2002-11-22 Ntt Docomo Inc 情報配信方法、システム、装置、及びプログラム、並びに記録媒体
JP2004030486A (ja) * 2002-06-28 2004-01-29 Hitachi Ltd 分散オブジェクト制御方法およびその実施システム
JP2005250892A (ja) * 2004-03-04 2005-09-15 Mitsubishi Electric Corp ソフトウェア機能更新装置

Similar Documents

Publication Publication Date Title
US11586800B2 (en) Document architecture with fragment-driven role based access controls
US10628578B2 (en) Systems and methods for determining trust levels for computing components using blockchain
US9430449B2 (en) Systems, methods, and media for managing editable previews of webpages
US20190123889A1 (en) Document flow tracking using blockchain
US9336137B2 (en) System and method for performing data management in a collaborative development environment
US8484561B1 (en) System and method for updating an object instance based on instructions received from multiple devices
US20140033082A1 (en) System and method for data-driven web page navigation control
US20110029854A1 (en) Web content management
US20110106795A1 (en) Methods for granting access to resources modifiable by users in a computer environment, and resources structured therefore
US20080037789A1 (en) Document Processing Device, Document Reading Device, and Document Processing Method
US20110004563A1 (en) Systems and methods for generating personalized dynamic presentations from non-personalized presentation structures and contents
CN102142014B (zh) 导入和导出位于元数据注册系统中的元数据的系统和方法
CN101263477B (zh) 用于管理与计算机生成文档相关联的数据的系统和方法
CN106227553B (zh) 用于描述并执行图形用户界面中的管理任务的数据驱动模式
US20080209572A1 (en) Data Processing System, Data Processing Method, and Management Server
US20150195311A1 (en) Systems and Methods for Providing Access to a Document Associated with a Third Party Software Application Via Interframe Communication
US20150199317A1 (en) System and Method for Using a Third-Party Add-On to Manipulate a Document in a Collaborative Online Software Development Environment
US20150193406A1 (en) System and Method to Provide Collaborative Document Processing Services Via Interframe Communication
JP2006344171A (ja) 情報処理装置、情報処理装置の制御方法、コンピュータプログラム、記憶媒体
JPWO2011118003A1 (ja) ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体
US7237222B1 (en) Protocol for controlling an execution process on a destination computer from a source computer
EP1826682A1 (en) Document managing device and document managing method
US20130036306A1 (en) Method and system for handling defined areas within an electronic document
US20150199374A1 (en) Method for adding real time collaboration to existing data structure
JP5037088B2 (ja) 文書作成システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121024

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130304