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

データ同期システム Download PDF

Info

Publication number
WO2010106832A1
WO2010106832A1 PCT/JP2010/050893 JP2010050893W WO2010106832A1 WO 2010106832 A1 WO2010106832 A1 WO 2010106832A1 JP 2010050893 W JP2010050893 W JP 2010050893W WO 2010106832 A1 WO2010106832 A1 WO 2010106832A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
web application
program
communication device
application program
Prior art date
Application number
PCT/JP2010/050893
Other languages
English (en)
French (fr)
Inventor
拓也 荒木
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US13/254,317 priority Critical patent/US9218436B2/en
Priority to JP2011504769A priority patent/JP5375949B2/ja
Publication of WO2010106832A1 publication Critical patent/WO2010106832A1/ja

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]

Definitions

  • the present invention relates to a data synchronization system, a server, a communication device, a data synchronization method, and a program for performing data synchronization.
  • Patent Document 1 a system that can perform a Web application provided from a server offline is considered (for example, see Patent Document 1).
  • the business system using the Web browser described in Patent Document 1 uses business software (Web server, business processing unit, database) to be used when the client, which is a communication device, is not connected to the network (offline). And use them when offline. This makes it possible to use the business system even offline.
  • business software Web server, business processing unit, database
  • This business system has a data update flag indicating whether or not the database used when offline is updated. When data is updated when offline, this data update flag is used to indicate that the data has been updated. Then, data synchronization between the server data and the client data is realized by uploading the data whose data update flag indicates update to the server.
  • JP 2004-094682 A (paragraph 0005, paragraph 0008, FIG. 1)
  • an article ID (Identification) that is identification information indicating the article is newly generated, and the content of the article is recorded in the database.
  • an article ID (Identification) that is identification information indicating the article is newly generated, and the content of the article is recorded in the database.
  • the client is offline, when an article is posted to the Web server existing in the client, a new article ID is generated in the database in the client.
  • article IDs may be generated sequentially. As described above, when an article ID is generated at the same time as an article ID is generated by a client that is offline, the article IDs may overlap each other.
  • the article posted on the server side will be overwritten on the article newly posted when offline. That is, the article is not posted on the server side even though a new article is posted offline.
  • the number of times of browsing and the number of postings are updated in the database in the client.
  • the number of times of browsing or posting is also updated in the database on the server side.
  • An object of the present invention is to provide a data synchronization system, a server, a communication device, a data synchronization method, and a program that solve the above-described problems.
  • the data synchronization system of the present invention Data synchronization comprising a server that provides a service by executing a first Web application program that implements a Web application for providing a service on the Internet, and a communication device that receives the service provided by the server
  • the communication apparatus has a second Web application program that realizes the Web application, executes the second Web application program in a state where it is not connected to the server, and executes the second Web application program Recorded procedure, and then, when connected to the server, send the recorded procedure to the server,
  • the server executes the first Web application program in accordance with a procedure transmitted from the communication device.
  • the server of the present invention A server that provides a service by executing a Web application program that implements a Web application for providing a service on the Internet, A reproduction execution unit configured to execute the Web application program according to a procedure transmitted from a communication device receiving a service provided by the server;
  • the communication device of the present invention A communication device that receives the service from a server that implements a Web application for providing the service on the Internet, A web application program for realizing the web application; An input recording unit for recording the procedure of the Web application program executed in a state in which the server is not connected to the server; And a communication unit that transmits the procedure recorded by the input recording unit to the server when connected to the server.
  • the data synchronization method of the present invention includes: Data is transmitted between a server that provides the service by executing a first Web application program that implements a Web application for providing the service on the Internet and a communication device that receives the service provided by the server.
  • the server includes processing for executing the first Web application program according to a procedure transmitted from the communication device.
  • the program of the present invention is A program for causing a server that provides a service on the Internet to execute, The function of providing the service to the communication device is realized according to the procedure transmitted from the communication device receiving the service provided by the server.
  • the program of the present invention is A program for causing a communication device that receives a service from a server that implements a Web application for providing the service on the Internet to execute the program, A function of executing a web application program for realizing the web application; A function of recording a procedure of the Web application program executed in a state of being not connected to the server; Thereafter, when connected to the server, a function of transmitting the recorded procedure to the server is realized.
  • a server that provides a service by executing a first Web application program that implements a Web application for providing a service on the Internet, and a communication device that receives the service are provided.
  • the communication device executes the second Web application program for realizing the Web application, records the procedure for executing the second Web application program, and then the communication device and the server are connected.
  • the recorded procedure is transmitted to the server, and the server executes the first Web application program according to the procedure transmitted from the communication device. Therefore, the synchronization of data between the client and the server can be performed easily and correctly. Can take .
  • FIG. 1 It is a figure which shows one Embodiment of the data synchronization system of this invention. It is a figure which shows an example of an internal structure of the client shown in FIG. It is a figure which shows an example of the internal structure of the server shown in FIG. It is a flowchart for demonstrating the process of the client shown in FIG. 1 among the data synchronization methods in this form. It is a flowchart for demonstrating the process of the server shown in FIG. 1 among the data synchronization methods in this form. It is a figure which shows the other form of implementation of the data synchronization system of this invention.
  • FIG. 1 is a diagram showing an embodiment of a data synchronization system of the present invention.
  • the present embodiment includes a client 100, a server 110, and a Web browser 120.
  • the server 110 provides a service on the Internet by executing a predetermined program. For example, a web application is provided.
  • the client 100 is a communication device (computer) that receives a service provided by the server 110.
  • the Web browser 120 accesses the server 110 in order to request a service from the server 110.
  • the client 100 and the server 110 are directly connected.
  • the client 100 and the server 110 may be connected via a network such as the Internet.
  • FIG. 2 is a diagram illustrating an example of an internal configuration of the client 100 illustrated in FIG.
  • the client 100 shown in FIG. 1 communicates with the Web browser 101, the Web server 102, the CGI input recording unit 103, the CGI program 104, the input / session ID data 106, the DB 107, and the communication. Part 108 is provided.
  • FIG. 2 shows only the components related to the present invention among the components of the client 100 shown in FIG.
  • the Web browser 101 is general software for using a Web application.
  • This Web application is realized by the Web server 102 calling (executing) the CGI program 104 via the CGI (Common Gateway Interface).
  • the Web server 102 is software having an information transmission function on the Internet. Further, when there is a request from the Web browser 101 when the client 100 and the server 110 are not connected, the Web server 102 executes the CGI program 104 in response to the request.
  • the CGI input recording unit 103 is an input recording unit that records an input when the Web server 102 calls the CGI program 104. Also, the CGI input recording unit 103 calls the CGI program 104 after storing the recorded inputs in the input / session ID data 106 in order from the past. Here, when the input is stored in order from the past, the time order may be stored in association with each other. Further, the input from the Web server 102 is given as the standard input of the CGI program 104, arguments, and environment variables at the time of starting the program.
  • the CGI program 104 is a second Web application program that the Web server 102 executes in response to a request from the Web browser 101.
  • CGI the interface for executing the Web application program
  • This interface is not limited to CGI, and may be another interface that can store input data necessary to re-execute a Web application program.
  • the CGI program 104 executes the program according to the input given from the Web server 102 and the data stored in the DB 107 and returns the resulting output to the Web browser 101.
  • the CGI program 104 is provided with a session ID recording unit 105.
  • the session ID recording unit 105 records a session ID (Identification) used in the Web application when the CGI program 104 performs session management.
  • session identification information (hereinafter referred to as a session ID) for identifying a session is used.
  • the session ID is arbitrary identification information (ID) that is generally generated by a random number or the like, and is passed to the Web browser by putting it in the cookie or hidden field of the Form tag.
  • the Web browser passes the session ID to the Web server as a cookie at the next access or when submitting data from the Form. Thereby, the Web server can handle accesses having the same session ID as a series.
  • the input / session ID data 106 records data recorded by the CGI input recording unit 103 and the session ID recording unit 105.
  • the DB 107 is a database used when the CGI program 104 is executed.
  • the DB 107 stores data obtained as a result of execution by the CGI program 104. Further, the DB 107 acquires and stores the data stored in the DB 117 via the communication units 118 and 108 in a state where the client 100 and the server 110 are connected. That is, the DB 107 copies and stores the data stored in the DB 117.
  • the DB 107 may be a file instead of a database structure. Further, when the size of data stored in the DB 117 is large, the communication amount may be reduced by using a history of copying performed previously.
  • the communication unit 108 communicates with the server 110.
  • FIG. 3 is a diagram illustrating an example of an internal configuration of the server 110 illustrated in FIG.
  • the server 110 shown in FIG. 1 includes a Web server 112, a CGI reproduction execution unit 113, a CGI program 114, input / session ID data 116, a DB 117, and a communication unit 118. It has been.
  • FIG. 3 shows only the components related to the present invention among the components of the server 110 shown in FIG.
  • the Web server 112 is software having an information transmission function on the Internet. Further, when there is a request from the Web browsers 101 and 120, the Web server 112 executes the CGI program 114 in response to the request.
  • the CGI reproduction execution unit 113 is a reproduction execution unit that executes the CGI program 114 using data recorded in the input / session ID data 116.
  • the CGI program 114 is a first Web application program that is executed by the Web server 112 in response to a request from the Web browsers 120 and 101.
  • the interface for executing the Web application program is CGI will be described.
  • This interface is not limited to CGI, and may be another interface that can store input data necessary to re-execute a Web application program.
  • the CGI program 114 is provided with a session ID reproduction unit 115.
  • the session ID reproduction unit 115 uses the session ID recorded in the input / session ID data 116 as the session ID.
  • the input / session ID data 116 acquires and records data recorded in the input / session ID data 106 via the communication unit 118.
  • the DB 117 is a database used when the CGI program 114 is executed. In addition, the DB 117 stores data resulting from the execution of the CGI program 114.
  • the DB 117 may be a file instead of a database structure.
  • the communication unit 118 communicates with the client 100.
  • session management is the same as that described for the client 100.
  • the CGI reproduction execution unit 113 of the server 110 uses the input recorded by the CGI input recording unit 103 to re-execute the CGI program 114, so that the client 100 and the server 110 can Synchronize data between them.
  • the CGI program 114 is re-executed, if a different session ID is issued when the CGI program 114 is executed offline, access to the Web server 102 treated as the same session is treated as a different session when offline. End up.
  • the session ID recording unit 105 records a newly generated session ID and records it in the input / session ID data 106.
  • a session ID recorded in the session ID recording unit 105 is used instead of newly generating a session ID.
  • the CGI program can be modified, it can be realized at the CGI program level.
  • an API Application Program Interface
  • generating a session ID or acquiring the generated session ID is provided.
  • using the input to the CGI program such as environment variables, tells the CGI program whether it is “offline execution” or “reproduction execution” (including the session ID that should be used at the time of reproduction execution).
  • a session ID is generated as described above, and the session ID obtained from the input is used at the time of reproduction execution.
  • an environment for executing a CGI program that is, a method of changing a PHP language processing system or a Perl library, for example, can be considered.
  • the operation is the same as described above.
  • the Web server 102 operating in the client 100 is accessed a plurality of times, and the input to the CGI program 104 and the generated session ID at that time are recorded in the input / session ID data 106. .
  • FIG. 4 is a flowchart for explaining the processing of the client 100 shown in FIG. 1 in the data synchronization method according to this embodiment.
  • the database information stored in the DB 117 is acquired via the communication unit 108 in Step 1, and the acquired database information is stored in the DB 107.
  • step 2 the client 100 is disconnected from the server 110.
  • this disconnection is one in which the client 100 is disconnected (disconnected) from the network when the client 100 and the server 110 are connected via the network.
  • This state is an “offline state”.
  • a state where the client 100 and the server 110 (which may be connected via a network) are connected is an “online state”.
  • the CGI program 104 is executed by the Web server 102.
  • the input (data string) and the generated session ID at that time are recorded in the input / session ID data 106 by using the CGI input recording unit 103 and the session ID recording unit 105 in step 4 as a program execution procedure.
  • This input is recorded according to the executed order or stored together with information indicating the time order so that the executed time order can be determined.
  • Steps 3 and 4 are repeated until the client 100 is online.
  • the data recorded in the input / session ID data 106 (input and session ID data recorded as a program execution procedure) is transmitted via the communication unit 108 in step 6. It is transmitted to the server 110. At this time, data is transmitted using the above-described information indicating the time order so that the server 110 can determine the order of input.
  • FIG. 5 is a flowchart for explaining the processing of the server 110 shown in FIG. 1 in the data synchronization method according to this embodiment.
  • connection state between the server 110 and the client 100 is an online state.
  • Step 12 if there is a request from another client (for example, the Web browser 120), the request is accepted as usual in Step 13 and processed.
  • the data in the DB 117 is updated by the processing performed in the offline state.
  • step 14 data recorded in the input / session ID data 106 is acquired via the communication unit 118 in step 15 and recorded in the input / session ID data 116. . That is, the input / session ID data 106 is copied to the input / session ID data 116.
  • the CGI program 114 is executed by the CGI reproduction executing unit 113 in step 16 using the data recorded in the input / session ID data 116 (input and session ID data recorded as a program execution procedure). At this time, it is executed in the same order as that executed by the client 100.
  • the CGI program 114 uses the session ID included in the input data, the session ID given as described above is used.
  • the execution of the CGI program 114 in the CGI reproduction executing unit 113 is equivalent to executing the program executed in the client 100 in the offline state by the server 110 again.
  • the use (Web access) of the Web application performed by the client 100 in the offline state can be reflected on the server 110.
  • the update of the DB 107 can be reflected in the DB 117. Therefore, the problem that data synchronization cannot be performed correctly between the client 100 and the server 110 can be solved.
  • FIG. 6 is a diagram showing another embodiment of the data synchronization system of the present invention.
  • the present embodiment includes a client 400, a server 410, and a Web browser 120.
  • the client 400 is provided with a Web browser 101 and a client side program 402.
  • the web browser 101 is the same as that shown in FIG.
  • the client-side program 402 performs the same processing as the Web server 102, CGI input recording unit 103, CGI program 104, input / session ID data 106, DB 107 and communication unit 108 shown in FIG. In other words, the processing of each element shown in FIG. 2 described above is not performed by a logic circuit produced according to the purpose, and the client side program 402 describing the processing contents is recorded on a recording medium readable by the client 400. Then, the client side program 402 recorded on the recording medium is read by the client 400 and executed.
  • the recording medium readable by the client 400 refers to a transfer medium such as a floppy disk (registered trademark), a magneto-optical disk, a DVD, and a CD, and an HDD built in the client 400.
  • the client-side program 402 recorded on this recording medium is read by a CPU (not shown) in the client 400, and the same processing as described above is performed under the control of the CPU.
  • the CPU operates as a computer that executes the program read from the recording medium on which the client-side program 402 is recorded.
  • the server 410 is provided with a server side program 411.
  • the server-side program 411 performs the same processing as the Web server 112, CGI reproduction execution unit 113, CGI program 114, input / session ID data 116, DB 117, and communication unit 118 shown in FIG. That is, the server-side program 411 describing the processing contents is recorded on a recording medium readable by the server 410 without performing the above-described processing of each element shown in FIG. Then, the server-side program 411 recorded on this recording medium is read by the server 410 and executed.
  • the recording medium readable by the server 410 refers to an HDD built in the server 410 as well as a removable recording medium such as a floppy disk (registered trademark), a magneto-optical disk, a DVD, and a CD.
  • the server-side program 411 recorded on this recording medium is read by a CPU (not shown) in the server 410, and the same processing as described above is performed under the control of the CPU.
  • the CPU operates as a computer that executes the program read from the recording medium on which the server-side program 411 is recorded.
  • the first effect is that when data synchronization is performed between the client 100 and the server 110, data can be correctly synchronized even when data is updated between the two.
  • the reason is that the processing performed by the client 100 is re-executed by the server 110, and the update performed by the client 100 is reflected on the server 110 based on the update result performed by the server 110 when offline.
  • the second effect is that data can be synchronized between the client 100 and the server 110 with almost no program change.
  • the present invention is used for synchronizing data when an application such as a blog, an SNS (Social Networking Service), a bulletin board, a shopping site, or a business application in a company is executed offline. Can be used.
  • an application such as a blog, an SNS (Social Networking Service), a bulletin board, a shopping site, or a business application in a company is executed offline. Can be used.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (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)

Abstract

インターネット上でサービスを提供するためのWebアプリケーションを実現する第1のWebアプリケーションプログラムを実行することによりサービスを提供するサーバ(110)と、当該サービスを受けるクライアント(100)とが接続されていない状態で、クライアント(100)がWebアプリケーションを実現する第2のWebアプリケーションプログラムを実行し、第2のWebアプリケーションプログラムを実行した手順を記録し、その後、クライアント(100)とサーバ(110)とが接続された際、記録した手順をサーバ(110)へ送信し、サーバ(110)が、クライアント(100)から送信されてきた手順に従って第1のWebアプリケーションプログラムを実行する。

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 (30)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/254,317 US9218436B2 (en) 2009-03-18 2010-01-25 Data synchronization system
JP2011504769A JP5375949B2 (ja) 2009-03-18 2010-01-25 データ同期システム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-066297 2009-03-18
JP2009066297 2009-03-18

Publications (1)

Publication Number Publication Date
WO2010106832A1 true WO2010106832A1 (ja) 2010-09-23

Family

ID=42739499

Family Applications (1)

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

Country Status (3)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100024005A1 (en) * 2008-07-25 2010-01-28 Heyuan Huang Method and apparatus for providing identity management for users in a web environment
JP2018509672A (ja) * 2014-12-29 2018-04-05 フェイスブック,インク. アプリケーションサービス・アバターを用いたアプリケーションサービス配信

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11368544B2 (en) * 2020-10-30 2022-06-21 Capital One Services, Llc Scalable server-based web scripting with user input

Citations (2)

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

Family Cites Families (8)

* 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 三洋電機株式会社 ホームネットワークシステム、および録画予約ネットワークシステム
JP2004013479A (ja) 2002-06-06 2004-01-15 Nec Corp 通信ネットワークおよびリモートファイルアクセス方法
US20070005579A1 (en) 2005-07-01 2007-01-04 Microsoft Corporation Query based synchronization

Patent Citations (2)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100024005A1 (en) * 2008-07-25 2010-01-28 Heyuan Huang Method and apparatus for providing identity management for users in a web environment
US8370901B2 (en) * 2008-07-25 2013-02-05 International Business Machines Corporation Method and apparatus for providing identity management for users in a web environment
JP2018509672A (ja) * 2014-12-29 2018-04-05 フェイスブック,インク. アプリケーションサービス・アバターを用いたアプリケーションサービス配信
US10601947B2 (en) 2014-12-29 2020-03-24 Facebook, Inc. Application service delivery through an application service avatar

Also Published As

Publication number Publication date
JP5375949B2 (ja) 2013-12-25
US20110320635A1 (en) 2011-12-29
JPWO2010106832A1 (ja) 2012-09-20
US9218436B2 (en) 2015-12-22

Similar Documents

Publication Publication Date Title
US11601398B2 (en) Multiplexed data exchange portal interface in scalable data networks
US10642904B2 (en) Infrastructure enabling intelligent execution and crawling of a web application
US8769119B2 (en) Method and apparatus for pushing applications to a website visitor during co-browsing
WO2020155832A1 (zh) 跨链用权系统及方法、装置、电子设备、存储介质
US9864671B1 (en) Systems and methods of live experimentation on content provided by a web site
US11170157B2 (en) Systems and methods for co-browsing
US8219687B2 (en) Implementing browser based hypertext transfer protocol session storage
WO2019199988A1 (en) Data enrichment environment using blockchain
JP7483929B2 (ja) 共同トレーニングモデルを評価するための方法及び装置
CN107534671A (zh) 分布式服务实体和关联的聚合与联合
US9781053B1 (en) Request routing and processing using a cancellation token
US20210103560A1 (en) Reconciliation of data in a distributed system
US10922219B2 (en) A/B test apparatus, method, program, and system
JP5375949B2 (ja) データ同期システム
US11444946B2 (en) Social media content management server system
US20200167151A1 (en) Providing external access to a processing platform
US10938915B1 (en) Session data isolation and management
CN104378411A (zh) 服务交换系统
CN114549137A (zh) 请求处理方法及设备
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
JP2012146100A (ja) 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム
US20180007130A1 (en) Peer-to-Peer Assisted Personal Synchronization
US20180349947A1 (en) Race condition avoidance in a multi-database environment
JP2009181240A (ja) ワークフロー処理装置
CN109074360A (zh) 使用多个线程减少下载电子资源的延迟

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10753327

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13254317

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2011504769

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10753327

Country of ref document: EP

Kind code of ref document: A1