JP5375949B2 - データ同期システム - Google Patents

データ同期システム Download PDF

Info

Publication number
JP5375949B2
JP5375949B2 JP2011504769A JP2011504769A JP5375949B2 JP 5375949 B2 JP5375949 B2 JP 5375949B2 JP 2011504769 A JP2011504769 A JP 2011504769A JP 2011504769 A JP2011504769 A JP 2011504769A JP 5375949 B2 JP5375949 B2 JP 5375949B2
Authority
JP
Japan
Prior art keywords
server
web application
program
application program
communication device
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
JP2011504769A
Other languages
English (en)
Other versions
JPWO2010106832A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2011504769A priority Critical patent/JP5375949B2/ja
Publication of JPWO2010106832A1 publication Critical patent/JPWO2010106832A1/ja
Application granted granted Critical
Publication of JP5375949B2 publication Critical patent/JP5375949B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、データの同期を行うデータ同期システム、サーバ、通信装置、データ同期方法及びプログラムに関する。
近年、Webブラウザを利用したWebアプリケーションが普及している。これには、ショッピングサイト、ブログ、掲示板等、さまざまなものが存在する。
通常、Webブラウザを利用したWebアプリケーションは、プログラムの本体がサーバで動作し、Webブラウザはその表示のみを行う。そのため、当該Webブラウザが動作している通信装置が当該サーバと接続されていない場合、当該通信装置からWebアプリケーションを利用することができないという問題点がある。
この問題点を解決するために、サーバから提供されていたWebアプリケーションをオフラインで行うことができるシステムが考えられている(例えば、特許文献1参照。)。
特許文献1に記載されたWebブラウザを利用した業務システムは、通信装置であるクライアント側に、ネットワークと接続されていない場合(オフライン時)に利用する業務ソフトウェア(Webサーバ、業務処理部、データベース)を持たせ、オフライン時はそれらを利用する。それにより、オフラインにおいても業務システムを利用することを可能にする。
この業務システムでは、オフライン時に利用するデータベースにおいて、更新があったか否かを示すデータ更新フラグを持っている。オフライン時にデータが更新された場合、このデータ更新フラグを用いて更新があったことを示す。そして、データ更新フラグが更新を示しているデータをサーバへアップロードすることで、サーバのデータとクライアントのデータとのデータ同期を実現する。
特開2004−094682号公報(段落0005、段落0008、第1図)
しかしながら、特許文献1に記載されたシステムにおいては、一般的なシステムのデータ同期手法を用いると、クライアント側とサーバ側とで正しくデータ同期を行うことができないおそれがある。
以下、その理由をブログのWebアプリケーションを例に挙げて説明する。
ブログにおいて記事が投稿されると、その記事を示す識別情報である記事ID(Identification)が新たに生成され、記事の内容がデータベースに記録される。ここで、クライアントがオフラインである場合、クライアント内に存在するWebサーバに対して記事が投稿されると、クライアント内のデータベースにおいて、新しい記事IDが生成される。
一方、それと同時にサーバ側で記事が投稿されると、サーバ側でも同様に新しい記事IDが生成される。このサーバ側での記事の投稿は、サーバと接続中のオンラインであるクライアントからの投稿等によるものである。
ブログプログラムでは記事IDの生成を連番で行うことがある。上述したように、オフラインであるクライアントで記事IDが生成されたと同時に、サーバ側で記事IDが生成された場合、それらの記事IDが互いに重なってしまうことが考えられる。
記事IDが互いに重なってしまうと、一般的な方法でデータ同期を行おうとした場合、オフライン時に新たに投稿された記事の上に、サーバ側で投稿された記事を上書きすることになってしまう。つまり、オフライン時に新たに記事を投稿したにもかかわらず、当該記事がサーバ側に投稿されていないことになってしまう。
また、上述したような記事IDが互いに重複する問題の他にも、記事閲覧回数や、記事投稿回数のようなデータの同期についても不具合を生じるおそれがある。
例えば、オフライン時に、クライアント内に存在するWebサーバを用いて、記事が閲覧または投稿された場合、クライアント内のデータベースにおいて、閲覧回数や投稿回数が更新される。一方、それと同時にサーバ側でも記事が閲覧または投稿されると、サーバ側のデータベースでも閲覧回数や投稿回数が更新される。
このようにクライアント側とサーバ側とでそれぞれ更新された回数を一般的な手法で同期させようとすると、クライアント側での閲覧回数や投稿回数によってサーバ側のデータが上書きされてしまい、サーバ側での閲覧回数や投稿回数の情報が失われてしまう。
これらの問題点は、このようなことが起こらないよう、注意深くプログラムを記述しなければならない。しかし、複雑なプログラムの場合、このような問題が起こらないことを保証することは難しい。さらに,既存のアプリケーションをオフラインで利用しようとした場合、このような問題が起こらないようにプログラムを改変するのは非常に困難である。
本発明の目的は、上述した課題を解決するデータ同期システム、サーバ、通信装置、データ同期方法及びプログラムを提供することである。
本発明のデータ同期システムは、
インターネット上でサービスを提供するためのWebアプリケーションを実現する第1のWebアプリケーションプログラムを実行することにより前記サービスを提供するサーバと、該サーバが提供したサービスを受ける通信装置とから構成されたデータ同期システムにおいて、
前記通信装置は、前記Webアプリケーションを実現する第2のWebアプリケーションプログラムを有し、前記サーバと接続されていない状態で前記第2のWebアプリケーションプログラムを実行し、前記第2のWebアプリケーションプログラムを実行した手順を記録し、その後、前記サーバと接続された際、前記記録した手順を前記サーバへ送信し、
前記サーバは、前記通信装置から送信されてきた手順に従って前記第1のWebアプリケーションプログラムを実行することを特徴とする。
また、本発明のサーバは、
インターネット上でサービスを提供するためのWebアプリケーションを実現するWebアプリケーションプログラムを実行することにより前記サービスを提供するサーバであって、
当該サーバが提供したサービスを受ける通信装置から送信されてきた手順に従って前記Webアプリケーションプログラムを実行する再現実行部を有する。
また、本発明の通信装置は、
インターネット上でサービスを提供するためのWebアプリケーションを実現するサーバから前記サービスを受ける通信装置であって、
前記Webアプリケーションを実現するWebアプリケーションプログラムと、
前記サーバと接続されていない状態で実行された前記Webアプリケーションプログラムの手順を記録する入力記録部と、
その後、前記サーバと接続された際、前記入力記録部が記録している手順を前記サーバへ送信する通信部とを有する。
また、本発明のデータ同期方法は、
インターネット上でサービスを提供するためのWebアプリケーションを実現する第1のWebアプリケーションプログラムを実行することにより前記サービスを提供するサーバと、該サーバが提供したサービスを受ける通信装置との間において、データの同期をとるデータ同期方法であって、
前記通信装置が、前記サーバと接続されていない状態で、前記Webアプリケーションを実現する第2のWebアプリケーションプログラムを実行する処理と、
前記通信装置が、前記サーバと接続されていない状態で実行された前記第2のWebアプリケーションプログラムの手順を記録する処理と、
前記通信装置が、その後、前記サーバと接続された際、前記記録した手順を前記サーバへ送信する処理と、
前記サーバが、前記通信装置から送信されてきた手順に従って前記第1のWebアプリケーションプログラムを実行する処理とを有する。
また、本発明のプログラムは、
インターネット上でサービスを提供するサーバに実行させるためのプログラムであって、
当該サーバが提供したサービスを受ける通信装置から送信されてきた手順に従って、該通信装置へ前記サービスを提供する機能を実現させる。
また、本発明のプログラムは、
インターネット上でサービスを提供するためのWebアプリケーションを実現するサーバから前記サービスを受ける通信装置に実行させるためのプログラムであって、
前記Webアプリケーションを実現するWebアプリケーションプログラムを実行する機能と、
前記サーバと接続されていない状態で実行された前記Webアプリケーションプログラムの手順を記録する機能と、
その後、前記サーバと接続された際、前記記録している手順を前記サーバへ送信する機能とを実現させる。
以上説明したように本発明においては、インターネット上でサービスを提供するためのWebアプリケーションを実現する第1のWebアプリケーションプログラムを実行することによりサービスを提供するサーバと、当該サービスを受ける通信装置とが接続されていない状態で、通信装置がWebアプリケーションを実現する第2のWebアプリケーションプログラムを実行し、第2のWebアプリケーションプログラムを実行した手順を記録し、その後、通信装置とサーバとが接続された際、記録した手順をサーバへ送信し、サーバが、通信装置から送信されてきた手順に従って第1のWebアプリケーションプログラムを実行する構成としたため、クライアントとサーバとにおけるデータの同期を容易に、かつ正しくとることができる。
本発明のデータ同期システムの実施の一形態を示す図である。 図1に示したクライアントの内部構成の一例を示す図である。 図1に示したサーバの内部構成の一例を示す図である。 本形態におけるデータ同期方法のうち図1に示したクライアントの処理を説明するためのフローチャートである。 本形態におけるデータ同期方法のうち図1に示したサーバの処理を説明するためのフローチャートである。 本発明のデータ同期システムの実施の他の形態を示す図である。
以下に、本発明の実施の形態について図面を参照して説明する。
図1は、本発明のデータ同期システムの実施の一形態を示す図である。
本形態は図1に示すように、クライアント100と、サーバ110と、Webブラウザ120とから構成されている。
サーバ110は、所定のプログラムを実行することによりインターネット上でサービスを提供する。例えば、Webアプリケーションを提供する。
クライアント100は、サーバ110が提供するサービスを受ける通信装置(コンピュータ)である。
Webブラウザ120は、サーバ110へサービスを要求するために、サーバ110へアクセスを行う。
なお、図1に示した構成においては、クライアント100とサーバ110とが直接接続されている構成となっているが、インターネット等のネットワークを介して接続されているものであっても良い。
図2は、図1に示したクライアント100の内部構成の一例を示す図である。
図1に示したクライアント100には図2に示すように、Webブラウザ101と、Webサーバ102と、CGI入力記録部103と、CGIプログラム104と、入力・セッションIDデータ106と、DB107と、通信部108とが設けられている。なお、図2には、図1に示したクライアント100の構成要素のうち、本発明に係わる構成要素のみを示した。
Webブラウザ101は、Webアプリケーションを利用するための一般的なソフトウェアである。このWebアプリケーションは、Webサーバ102がCGI(Common Gateway Interface)を経由してCGIプログラム104を呼び出す(実行する)ことで実現される。
Webサーバ102は、インターネット上で情報発信機能を持つソフトウェアである。また、Webサーバ102は、クライアント100とサーバ110とが接続されていない状態でWebブラウザ101から要求があった場合、その要求に応じてCGIプログラム104を実行する。
CGI入力記録部103は、Webサーバ102がCGIプログラム104を呼び出す際の入力を記録する入力記録部である。また、CGI入力記録部103は、記録した入力を過去のものから順番に入力・セッションIDデータ106に保存した上で、CGIプログラム104を呼び出す。ここで、入力を過去のものから順番に保存する際に、その時間順序を対応付けて保存するものであっても良い。また、Webサーバ102からの入力は、CGIプログラム104の標準入力、引数およびプログラム起動時の環境変数として与えられるものである。
CGIプログラム104は、Webサーバ102が、Webブラウザ101からの要求に応じて実行する第2のWebアプリケーションプログラムである。ここでは、当該Webアプリケーションプログラムを実行するインタフェースをCGIとしたものを例に挙げて説明する。このインタフェースは、CGIに限らずWebアプリケーションプログラムを再実行するために必要な入力データを保存できる他のインタフェースを用いるものであっても良い。また、CGIプログラム104は、Webサーバ102から与えられた入力およびDB107に保存されたデータに従ってプログラムを実行し、その結果としての出力をWebブラウザ101へ返す。
また、CGIプログラム104には、セッションID記録部105が設けられている。
セッションID記録部105は、CGIプログラム104がセッション管理を行う場合、Webアプリケーションで利用するセッションID(Identification)を記録する。
ここで、セッション管理について説明する。
通常、Webサーバに対するアクセスは、個々のアクセスが独立したものとして扱われる。しかし、個々のアクセスを一連のものとして扱いたい場合がある。例えば、ショッピングサイトにおいて、商品をカートに入れ、その後、その商品の購入を行う場合などである。購入を行う際には、カートの中身をWebアプリケーションが知らなければならない。そのため、商品をカートに入れた際のアクセスと、購入する際のアクセスとを、一連のものとして扱う必要がある。これをここではセッション管理と呼ぶ。
セッション管理を実現する方法としては、セッションを識別するためのセッション識別情報(以下、セッションID)が用いられる。セッションIDとは、一般に乱数等で生成される任意の識別情報(ID)であり、クッキー、あるいはFormタグのhiddenフィールドに入れることでWebブラウザに渡される。Webブラウザは、次回のアクセス時にクッキーとして、あるいはFormからデータをsubmitする際にWebサーバにセッションIDを渡す。これにより、Webサーバは、同じセッションIDを持つアクセスを一連のものとして扱うことができる。
入力・セッションIDデータ106は、CGI入力記録部103およびセッションID記録部105が記録しているデータを記録する。
DB107は、CGIプログラム104が実行する際に利用するデータベースである。また、DB107は、CGIプログラム104が実行した結果のデータを保存する。また、DB107は、クライアント100とサーバ110とが接続されている状態で、DB117に保存されているデータを通信部118,108を介して取得して保存する。つまり、DB107は、DB117に保存されているデータをコピーして保存する。なお、DB107は、データベース構造ではなく、ファイルであっても良い。また、DB117に保存されているデータのサイズが大きな場合、以前行ったコピーの履歴を利用して、通信量の削減を図るものであっても良い。
通信部108は、サーバ110との間で通信を行う。
図3は、図1に示したサーバ110の内部構成の一例を示す図である。
図1に示したサーバ110には図3に示すように、Webサーバ112と、CGI再現実行部113と、CGIプログラム114と、入力・セッションIDデータ116と、DB117と、通信部118とが設けられている。なお、図3には、図1に示したサーバ110の構成要素のうち、本発明に係わる構成要素のみを示した。
Webサーバ112は、インターネット上で情報発信機能を持つソフトウェアである。また、Webサーバ112は、Webブラウザ101,120から要求があった場合、その要求に応じてCGIプログラム114を実行する。
CGI再現実行部113は、入力・セッションIDデータ116に記録されたデータを用いてCGIプログラム114を実行する再現実行部である。
CGIプログラム114は、Webサーバ112が、Webブラウザ120,101からの要求に応じて実行する第1のWebアプリケーションプログラムである。ここでは、当該Webアプリケーションプログラムを実行するインタフェースをCGIとしたものを例に挙げて説明する。このインタフェースは、CGIに限らずWebアプリケーションプログラムを再実行するために必要な入力データを保存できる他のインタフェースを用いるものであっても良い。
また、CGIプログラム114には、セッションID再現部115が設けられている。
セッションID再現部115は、入力・セッションIDデータ116に記録したセッションIDをセッションIDとして利用する。
入力・セッションIDデータ116は、通信部118を介して入力・セッションIDデータ106に記録されているデータを取得して記録する。
DB117は、CGIプログラム114が実行する際に利用するデータベースである。また、DB117は、CGIプログラム114が実行した結果のデータを保存する。なお、DB117は、データベース構造ではなく、ファイルであっても良い。
通信部118は、クライアント100との間で通信を行う。
ここで、セッション管理については、クライアント100にて説明したものと同様である。
図1〜3に示した形態においては、CGI入力記録部103が記録した入力を用いて、サーバ110のCGI再現実行部113でCGIプログラム114を再実行することで、クライアント100とサーバ110との間でデータの同期を行う。ここで、CGIプログラム114を再実行した際、オフラインで実行した際と別のセッションIDを発行すると、オフライン時には同一のセッションとして扱われたWebサーバ102へのアクセスが、別のセッションとして扱われてしまう。
これを避けるため、セッションID記録部105において、新たに生成されるセッションIDを記録し、入力・セッションIDデータ106に記録する。そして、サーバ110で再実行する際には、セッションIDを新規生成するのではなく、セッションID記録部105に記録されたセッションIDを利用する。これにより、オフライン時に同一のセッションとして扱われたWebサーバ102へのアクセスを、再実行時にも同じセッションとして扱うことができる。
セッションIDを記録・再現するためには、いくつかの方法が考えられる。CGIプログラムを改変して良い場合は、CGIプログラムレベルで実現できる。通常、CGIプログラムでセッション管理を行う場合は、セッションIDを生成したり、生成したセッションIDを取得したりするAPI(Application Program Interface)が提供されているため、これを用いればよい。例えば、環境変数等のCGIプログラムへの入力を用いて、「オフライン実行時」か「再現実行時」か(再現実行時には利用すべきセッションIDを含む)をCGIプログラムに伝え、オフライン実行時は通常通りセッションIDを生成し、再現実行時は、入力から得たセッションIDを利用するようにする。
その他の方法としては、CGIプログラムを実行する環境、すなわち、例えばPHP言語処理系やPerlのライブラリを変更する方法が考えられる。この場合も動作は前述と同様である。
オフライン時のクライアント100では、このようにクライアント100内で動作するWebサーバ102に複数回アクセスし、その際のCGIプログラム104への入力および生成したセッションIDが入力・セッションIDデータ106に記録される。
以下に、本形態におけるデータ同期方法について説明する。まずは、本形態におけるデータ同期方法のうち図1に示したクライアント100の処理について説明する。
図4は、本形態におけるデータ同期方法のうち図1に示したクライアント100の処理を説明するためのフローチャートである。
まず、DB117に保存されているデータベース情報がステップ1にて通信部108を介して取得され、取得されたデータベース情報がDB107に保存される。
その後、ステップ2にてクライアント100がサーバ110から切断される。この切断は、上述したように、クライアント100とサーバ110とがネットワークを介して接続されている場合は、クライアント100がネットワークから切断される(切り離される)ものである。この状態が「オフライン状態」である。一方、クライアント100とサーバ110(ネットワークを介しても良い)とが接続されている状態は「オンライン状態」である。
その後、ステップ3にてオフライン状態でWebブラウザ101からWebアプリケーションを利用するためのアクセスが行われると、Webサーバ102によってCGIプログラム104が実行される。その際の入力(データ列)および生成されたセッションIDがプログラム実行の手順としてステップ4にてCGI入力記録部103およびセッションID記録部105を用いて入力・セッションIDデータ106に記録される。なお、この入力は、実行された時間順序が判断できるように、実行された順序に応じて記録されるか、時間順序を示す情報とともに記憶される。
ステップ3およびステップ4の処理は、クライアント100がオンライン状態になるまで繰り返される。
ステップ5にてクライアント100がオンライン状態になると、入力・セッションIDデータ106に記録されているデータ(プログラム実行の手順として記録された入力およびセッションIDデータ)がステップ6にて通信部108を介してサーバ110へ送信される。このとき、入力の順序がサーバ110にて判断できるように、上述した時間順序を示す情報等を用いてデータが送信される。
次に、本形態におけるデータ同期方法のうち図1に示したサーバ110の処理について説明する。
図5は、本形態におけるデータ同期方法のうち図1に示したサーバ110の処理を説明するためのフローチャートである。
まず、クライアント100からの要求に応じてDB117に保存されているデータベース情報がステップ11にて通信部118からクライアント100へ送信される。このとき、サーバ110とクライアント100との接続状態は、オンライン状態である。
その後、ステップ12にてクライアント100がオフライン状態になった場合、他のクライアント(例えば、Webブラウザ120)からの要求があると、ステップ13にてその要求は通常通り受け付けられ、処理が行われる。オフライン状態で行われた処理により、DB117のデータは更新される。
ステップ14にてクライアント100の状態がオンライン状態になると、入力・セッションIDデータ106に記録されているデータがステップ15にて通信部118を介して取得され、入力・セッションIDデータ116に記録される。つまり、入力・セッションIDデータ106が入力・セッションIDデータ116にコピーされる。
すると、ステップ16にてCGI再現実行部113によって、入力・セッションIDデータ116に記録されたデータ(プログラム実行の手順として記録された入力およびセッションIDデータ)を用いてCGIプログラム114が実行される。このとき、クライアント100にて実行された順序と同じ順序で実行される。なお、この入力データに含まれているセッションIDをCGIプログラム114が利用する際、上述したように与えられたセッションIDが用いられる。
このCGI再現実行部113におけるCGIプログラム114の実行は、オフライン状態でクライアント100において実行されたプログラムを再度サーバ110にて実行するものと等しいものである。これにより、オフライン状態のクライアント100によって行われたWebアプリケーションの利用(Webアクセス)をサーバ110に反映することができる。また、DB107の更新もDB117へ反映することができる。したがって、クライアント100とサーバ110との間で、データ同期を正しく行うことができないという問題点を解消することが可能となる。
以下に、本発明の実施の他の形態について図面を参照して説明する。
図6は、本発明のデータ同期システムの実施の他の形態を示す図である。
本形態は図6に示すように、クライアント400と、サーバ410と、Webブラウザ120とから構成されている。
また、クライアント400には、Webブラウザ101と、クライアント側プログラム402とが設けられている。
Webブラウザ101は、図2に示したものと同じものである。
クライアント側プログラム402は、図2に示したWebサーバ102、CGI入力記録部103、CGIプログラム104、入力・セッションIDデータ106、DB107および通信部108と同一の処理を行うものである。つまり、上述した図2に示した各要素の処理を、目的に応じて作製された論理回路で行わずに、処理内容を記述したクライアント側プログラム402をクライアント400にて読取可能な記録媒体に記録し、この記録媒体に記録されたクライアント側プログラム402をクライアント400に読み込ませ、実行するものとなる。ここで、クライアント400にて読取可能な記録媒体とは、フロッピーディスク(登録商標)、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、クライアント400に内蔵されたHDD等を指す。この記録媒体に記録されたクライアント側プログラム402は、クライアント400内のCPU(不図示)にて読み込まれ、CPUの制御によって、上述したものと同様の処理が行われる。ここで、CPUは、クライアント側プログラム402が記録された記録媒体から読み込まれた当該プログラムを実行するコンピュータとして動作するものである。
また、サーバ410には、サーバ側プログラム411が設けられている。
サーバ側プログラム411は、図3に示したWebサーバ112、CGI再現実行部113、CGIプログラム114、入力・セッションIDデータ116、DB117、および通信部118と同一の処理を行うものである。つまり、上述した図3に示した各要素の処理を、目的に応じて作製された論理回路で行わずに、処理内容を記述したサーバ側プログラム411をサーバ410にて読取可能な記録媒体に記録し、この記録媒体に記録されたサーバ側プログラム411をサーバ410に読み込ませ、実行するものとなる。ここで、サーバ410にて読取可能な記録媒体とは、フロッピーディスク(登録商標)、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、サーバ410に内蔵されたHDD等を指す。この記録媒体に記録されたサーバ側プログラム411は、サーバ410内のCPU(不図示)にて読み込まれ、CPUの制御によって、上述したものと同様の処理が行われる。ここで、CPUは、サーバ側プログラム411が記録された記録媒体から読み込まれた当該プログラムを実行するコンピュータとして動作するものである。
以上説明した本発明においては、以下に示す効果を奏する。
第1の効果は、クライアント100とサーバ110とでデータ同期を行う際、両者の間でデータの更新が行われている場合であっても、正しくデータの同期ができることにある。
その理由は、クライアント100で行った処理をサーバ110で再実行するため、オフライン時にサーバ110で行われた更新結果を踏まえて、クライアント100で行われた更新をサーバ110へ反映するためである。
第2の効果は、プログラムをほとんど変更せずに、クライアント100とサーバ110とでデータの同期ができることにある。
その理由は、プログラム実行時の入力データをシステム側で保存し、再実行するため、データ同期のためにプログラムを変更する必要が無いためである。
本発明は、一般的なWebアプリケーションを用いてきた分野、すなわち、ブログやSNS(Social Networking Service)、掲示板、ショッピングサイト、企業における業務アプリケーションといったアプリケーションをオフラインで実行する際、データを同期する用途に利用することができる。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2009年3月18日に出願された日本出願特願2009−066297を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (18)

  1. インターネット上でサービスを提供するためのWebアプリケーションを実現する第1のWebアプリケーションプログラムを実行することにより前記サービスを提供するサーバと、該サーバが提供したサービスを受ける通信装置とから構成されたデータ同期システムにおいて、
    前記通信装置は、前記Webアプリケーションを実現する第2のWebアプリケーションプログラムとWebブラウザとWebサーバとを有し、前記サーバと接続されていない状態で前記Webブラウザからの要求に応じて前記Webサーバが前記第2のWebアプリケーションプログラムを実行し、該実行の際に前記Webサーバが前記第2のWebアプリケーションプログラムに与えたデータ列と該データ列の時間順序とを前記第2のWebアプリケーションプログラムを実行した手順として記録し、前記第2のWebアプリケーションプログラムを実行した際に該第2のWebアプリケーションプログラム内に生成する、セッションを識別するためのセッション識別情報をさらに記録し、その後、前記サーバと接続された際、前記記録したデータ列と該データ列の時間順序とセッション識別情報とを前記サーバへ送信し、
    前記サーバは、前記通信装置から送信されてきたデータ列と該データ列の時間順序とに従って、前記通信装置から送信されてきたセッション識別情報を用いて前記第1のWebアプリケーションプログラムを実行することで、前記第2のWebアプリケーションプログラムを当該サーバにて再実行するものと等しい結果を得ることを特徴とするデータ同期システム。
  2. 請求項に記載のデータ同期システムにおいて、
    前記通信装置は、前記第2のWebアプリケーションプログラムとしてCGI(Common Gateway Interface)プログラムを実行し、
    前記サーバは、前記第1のWebアプリケーションプログラムとしてCGIプログラムを実行することを特徴とするデータ同期システム。
  3. 請求項に記載のデータ同期システムにおいて、
    前記通信装置は、前記CGIプログラムを実行した際に該CGIプログラム内に生成する、セッションを識別するためのセッション識別情報をさらに記録し、その後、前記サーバと接続された際、前記記録したセッション識別情報を前記サーバへ送信し、
    前記サーバは、前記通信装置から送信されてきたセッション識別情報を用いて前記CGIプログラムを実行することを特徴とするデータ同期システム。
  4. インターネット上でサービスを提供するためのWebアプリケーションを実現するWebアプリケーションプログラムを実行することにより前記サービスを提供するサーバであって、
    当該サーバが提供したサービスを受ける通信装置から送信されてきたデータ列と該データ列の時間順序とに従って、前記通信装置から送信されてきた、セッションを識別するためのセッション識別情報を用いて前記Webアプリケーションプログラムを実行し、該実行の結果をデータベースに保存する再現実行部を有するサーバ。
  5. 請求項に記載のサーバにおいて、
    前記再現実行部は、前記WebアプリケーションプログラムとしてCGI(Common Gateway Interface)プログラムを実行することを特徴とするサーバ。
  6. 請求項に記載のサーバにおいて、
    前記再現実行部は、前記通信装置から送信されてきた、セッションを識別するためのセッション識別情報を用いて前記CGIプログラムを実行することを特徴とするサーバ。
  7. インターネット上でサービスを提供するためのWebアプリケーションを実現するサーバから前記サービスを受ける通信装置であって、
    前記Webアプリケーションを実現するWebアプリケーションプログラムと、
    Webブラウザと、
    当該通信装置と前記サーバとが接続されていない状態で前記Webブラウザからの要求に応じて前記Webアプリケーションプログラムを実行するWebサーバと、
    前記サーバと接続されていない状態で実行された前記Webアプリケーションプログラムの手順を記録する入力記録部と、
    その後、前記サーバと接続された際、前記入力記録部が記録している手順を前記サーバへ送信する通信部とを有し、
    前記入力記録部は、前記Webアプリケーションプログラムの実行の際に前記Webサーバが前記Webアプリケーションプログラムに与えたデータ列と該データ列の時間順序とを前記手順として記録し、前記Webアプリケーションプログラムを実行した際に該Webアプリケーションプログラム内に生成する、セッションを識別するためのセッション識別情報をさらに記録し、
    前記通信部は、その後、前記サーバと接続された際、前記入力記録部が記録しているデータ列と該データ列の時間順序とセッション識別情報とを前記サーバへ送信する通信装置。
  8. 請求項に記載の通信装置において、
    前記Webサーバは、前記WebアプリケーションプログラムとしてCGI(Common Gateway Interface)プログラムを実行することを特徴とする通信装置。
  9. 請求項に記載の通信装置において、
    前記CGIプログラムを実行した際に該CGIプログラム内に生成する、セッションを識別するためのセッション識別情報を記録するセッションID記録部を有し、
    前記通信部は、その後、前記サーバと接続された際、前記セッションID記録部が記録しているセッション識別情報を前記サーバへ送信することを特徴とする通信装置。
  10. インターネット上でサービスを提供するためのWebアプリケーションを実現する第1のWebアプリケーションプログラムを実行することにより前記サービスを提供するサーバと、該サーバが提供したサービスを受ける通信装置との間において、データの同期をとるデータ同期方法であって、
    前記通信装置が、前記サーバと接続されていない状態で、当該通信装置が有するWebブラウザからの要求に応じて当該通信装置が有するWebサーバを用いて前記Webアプリケーションを実現する第2のWebアプリケーションプログラムを実行する処理と、
    前記通信装置が、前記第2のWebアプリケーションプログラムの実行の際に前記Webサーバが前記第2のWebアプリケーションプログラムに与えたデータ列と該データ列の時間順序とを記録する処理と、
    前記通信装置が、前記第2のWebアプリケーションプログラムを実行した際に該第2のWebアプリケーションプログラム内に生成する、セッションを識別するためのセッション識別情報をさらに記録する処理と、
    前記通信装置が、その後、前記サーバと接続された際、前記記録したデータ列と該データ列の時間順序とセッション識別情報とを前記サーバへ送信する処理と、
    前記サーバが、前記通信装置から送信されてきたデータ列と該データ列の時間順序とに従って、前記通信装置から送信されてきたセッション識別情報を用いて前記第1のWebアプリケーションプログラムを実行することで、前記第2のWebアプリケーションプログラムを当該サーバにて再実行するものと等しい結果を得る処理とを有するデータ同期方法。
  11. 請求項10に記載のデータ同期方法において、
    前記通信装置が、前記第2のWebアプリケーションプログラムとしてCGI(Common Gateway Interface)プログラムを実行する処理と、
    前記サーバが、前記第1のWebアプリケーションプログラムとしてCGIプログラムを実行する処理とを有することを特徴とするデータ同期方法。
  12. 請求項11に記載のデータ同期方法において、
    前記通信装置が、前記CGIプログラムを実行した際に該CGIプログラム内に生成する、セッションを識別するためのセッション識別情報をさらに記録する処理と、
    前記通信装置が、その後、前記サーバと接続された際、前記記録したセッション識別情報を前記サーバへ送信する処理と、
    前記サーバが、前記通信装置から送信されてきたセッション識別情報を用いて前記CGIプログラムを実行する処理とを有することを特徴とするデータ同期方法。
  13. インターネット上でサービスを提供するサーバに、
    当該サーバが提供したサービスを受ける通信装置から送信されてきたデータ列と該データ列の時間順序とに従って、該通信装置から送信されてきた、セッションを識別するためのセッション識別情報を用いて該通信装置へ前記サービスを提供する機能を実現させるためのプログラム。
  14. 請求項13に記載のプログラムにおいて、
    CGI(Common Gateway Interface)プログラムを実行することにより前記サービスを提供する機能を実現させるためのプログラム。
  15. 請求項14に記載のプログラムにおいて、
    前記通信装置から送信されてきた、セッションを識別するためのセッション識別情報を用いて前記CGIプログラムを実行することにより前記サービスを提供する機能を実現させるためのプログラム。
  16. インターネット上でサービスを提供するためのWebアプリケーションを実現するサーバから前記サービスを受ける通信装置に、
    当該通信装置と前記サーバとが接続されていない状態で当該通信装置が有するWebブラウザからの要求に応じて当該通信装置が有するWebサーバを用いて、前記Webアプリケーションを実現するWebアプリケーションプログラムを実行する機能と、
    前記Webアプリケーションプログラムの実行の際に前記Webサーバが前記Webアプリケーションプログラムに与えたデータ列と該データ列の時間順序とを記録する機能と、
    前記Webアプリケーションプログラムを実行した際に該Webアプリケーションプログラム内に生成する、セッションを識別するためのセッション識別情報をさらに記録する機能と、
    その後、前記サーバと接続された際、前記記録しているデータ列と該データ列の時間順序とセッション識別情報とを前記サーバへ送信する機能とを実現させるためのプログラム。
  17. 請求項16に記載のプログラムにおいて、
    前記WebアプリケーションプログラムとしてCGI(Common Gateway Interface)プログラムを実行する機能を実現させるためのプログラム。
  18. 請求項17に記載のプログラムにおいて、
    前記CGIプログラムを実行した際に該CGIプログラム内に生成する、セッションを識別するためのセッション識別情報を記録する機能と、
    その後、前記サーバと接続された際、前記記録しているセッション識別情報を前記サーバへ送信する機能とを実現させるためのプログラム。
JP2011504769A 2009-03-18 2010-01-25 データ同期システム Expired - Fee Related JP5375949B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011504769A JP5375949B2 (ja) 2009-03-18 2010-01-25 データ同期システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009066297 2009-03-18
JP2009066297 2009-03-18
JP2011504769A JP5375949B2 (ja) 2009-03-18 2010-01-25 データ同期システム
PCT/JP2010/050893 WO2010106832A1 (ja) 2009-03-18 2010-01-25 データ同期システム

Publications (2)

Publication Number Publication Date
JPWO2010106832A1 JPWO2010106832A1 (ja) 2012-09-20
JP5375949B2 true JP5375949B2 (ja) 2013-12-25

Family

ID=42739499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011504769A Expired - Fee Related JP5375949B2 (ja) 2009-03-18 2010-01-25 データ同期システム

Country Status (3)

Country Link
US (1) US9218436B2 (ja)
JP (1) JP5375949B2 (ja)
WO (1) WO2010106832A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635707A (zh) * 2008-07-25 2010-01-27 国际商业机器公司 在Web环境中为用户提供身份管理的方法和装置
US10205797B2 (en) 2014-12-29 2019-02-12 Facebook, Inc. Application service delivery through an application service avatar
US11368544B2 (en) * 2020-10-30 2022-06-21 Capital One Services, Llc Scalable server-based web scripting with user input

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013479A (ja) * 2002-06-06 2004-01-15 Nec Corp 通信ネットワークおよびリモートファイルアクセス方法
JP2004094682A (ja) * 2002-08-30 2004-03-25 Ntt Comware Corp オフライン業務システム、業務端末及び業務サーバ
JP2008269277A (ja) * 2007-04-20 2008-11-06 Meidensha Corp 共有データの分散編集システム、分散編集方法およびプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US22005A (en) * 1858-11-09 Improvement in revolving fire-arms
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US6199076B1 (en) * 1996-10-02 2001-03-06 James Logan Audio program player including a dynamic program selection controller
WO2002044923A1 (en) * 2000-11-30 2002-06-06 Webtone Technologies, Inc. Web session collaboration
JP2002183085A (ja) 2000-12-19 2002-06-28 Daiwa Securities Group Inc サーバシステム、セッション管理方法、及びセッション管理プログラムを記録した記録媒体
JP4262929B2 (ja) 2001-11-01 2009-05-13 三洋電機株式会社 ホームネットワークシステム、および録画予約ネットワークシステム
US20070005579A1 (en) 2005-07-01 2007-01-04 Microsoft Corporation Query based synchronization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013479A (ja) * 2002-06-06 2004-01-15 Nec Corp 通信ネットワークおよびリモートファイルアクセス方法
JP2004094682A (ja) * 2002-08-30 2004-03-25 Ntt Comware Corp オフライン業務システム、業務端末及び業務サーバ
JP2008269277A (ja) * 2007-04-20 2008-11-06 Meidensha Corp 共有データの分散編集システム、分散編集方法およびプログラム

Also Published As

Publication number Publication date
WO2010106832A1 (ja) 2010-09-23
US20110320635A1 (en) 2011-12-29
JPWO2010106832A1 (ja) 2012-09-20
US9218436B2 (en) 2015-12-22

Similar Documents

Publication Publication Date Title
US10855657B2 (en) Multiplexed data exchange portal interface in scalable data networks
JP6800184B2 (ja) ドキュメント管理及びコラボレーション・システム
US10642904B2 (en) Infrastructure enabling intelligent execution and crawling of a web application
US11842142B2 (en) Systems and methods for co-browsing
US9589042B1 (en) Idempotentcy of application state data
US20140304590A1 (en) Phased Generation and Delivery of Structured Documents
WO2019199988A1 (en) Data enrichment environment using blockchain
JP7483929B2 (ja) 共同トレーニングモデルを評価するための方法及び装置
US20140129622A1 (en) Method and apparatus for pushing applications to a website visitor during co-browsing
US20120227116A1 (en) Implementing browser based hypertext transfer protocol session storage
WO2020143557A1 (zh) 用于显示信息的方法和装置
US20210383370A1 (en) Enhanced multi-party user data deletion
WO2015047969A1 (en) Master schema shared across multiple tenants with dynamic update
CN107534671A (zh) 分布式服务实体和关联的聚合与联合
CN110297995B (zh) 用于收藏信息的方法和装置
US11360944B2 (en) Reconciliation of data in a distributed system
US7908243B2 (en) Considering transient data also in reports generated based on data eventually stored in a data-warehouse
US10922219B2 (en) A/B test apparatus, method, program, and system
US9586149B2 (en) Collaborative virtual business objects social sharing in a virtual world
JP5375949B2 (ja) データ同期システム
US20180302462A1 (en) Social media server for providing client with media content including tagging information and the client
US20190306167A1 (en) Social media content management server system
US20140019518A1 (en) Delay the Persistent Memory Storage of Website Data to Control Data That is Stored in the Browser
US20160156693A1 (en) System and Method for the Management of Content on a Website (URL) through a Device where all Content Originates from a Secured Content Management System
JP5048537B2 (ja) ワークフロー処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130801

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130812

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130909

R150 Certificate of patent or registration of utility model

Ref document number: 5375949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees