JP2017004120A - システム、サーバーシステム、方法、およびプログラム - Google Patents

システム、サーバーシステム、方法、およびプログラム Download PDF

Info

Publication number
JP2017004120A
JP2017004120A JP2015115166A JP2015115166A JP2017004120A JP 2017004120 A JP2017004120 A JP 2017004120A JP 2015115166 A JP2015115166 A JP 2015115166A JP 2015115166 A JP2015115166 A JP 2015115166A JP 2017004120 A JP2017004120 A JP 2017004120A
Authority
JP
Japan
Prior art keywords
application server
resource
server system
web browser
service
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
JP2015115166A
Other languages
English (en)
Inventor
三原 誠
Makoto Mihara
誠 三原
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2015115166A priority Critical patent/JP2017004120A/ja
Priority to KR1020160063872A priority patent/KR102006640B1/ko
Priority to US15/169,362 priority patent/US20160360011A1/en
Priority to EP16172712.8A priority patent/EP3101539B1/en
Priority to CN201610384009.6A priority patent/CN106254411B/zh
Publication of JP2017004120A publication Critical patent/JP2017004120A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】サービスを無停止で提供するための仕組みを持つシステムにおいて、I/Fの互換性の他に画面のHTMLに関しても互換性を保つことが可能となるシステム、サーバーシステム、方法及びプログラムを提供する。【解決手段】CPU231は、ROM233のプログラム用ROMに記憶された、或いはハードディスク等の外部メモリ241からRAM232にロードされたOSやアプリケーション等のプログラムを実行する。また、システムバス234に接続される各ブロックを制御する。RAM232は、CPU231の主メモリやワークエリア等として機能する。操作部I/F235は、操作部239からの入力を制御する。CRTコントローラ(CRTC)236は、CRTディスプレイ240の表示を制御する。ディスクコントローラ(DKC)237は各種データを記憶するハードディスク等の外部メモリ241におけるデータクセスを制御する。【選択図】図2

Description

本発明は、クラウドサービスを提供するシステム、サーバーシステム、方法、およびプログラムに関する。
近年インターネット上で提供されるクラウドサービスの普及が進んでいる。クラウドサービスは世界各国から常に利用されるため、従来のサービスのように利用者の少ない夜間にシステムを停止し、サービスのメンテナンスを行うといったことが難しい。そのため、サービスの停止をすることなくメンテナンス作業をするよう要求が高まっている。従来、特許文献1および2に開示されているように無停止でのバージョンアップをセッション管理で行いセッションによる振り分け処理を行うことで実現している。
また、Webアプリケーションの技術も進み、従来型のサーバーサイドで画面の生成の処理を行いクライアントに処理結果を返却する構成から、RESTful MVCやクライアントサイドMVCといった技術に変化してきている。これらのサーバーはREST I/F経由で処理を実行する構成であり、クライアントにデータのみを返し画面生成はクライアント側で実行するといった構成である。
特開2013−182413 特開2013−182397
無停止でのバージョンアップを実現するための新たな手法として、Blue−Green Deploymentという方法が知られている。これは現在稼働しているサービスを稼働させたまま、バージョンアップしたサービスをもう一つ別のシステムで構築し、サービスの提供元を構築したシステムに切り替えるといった手法である。
このBlue−Green Deploymentは、二つのシステムをDNSの設定を変更することで一気に切り替えることになる。ただし、クライアント側のWebブラウザやインターネット経路上でキャッシュされたHTMLおよび/またはJavaScript(登録商標)といったコンテンツは、サーバーが切り替わったとしても即座に最新のコンテンツへ更新されるとは限らない。その場合、バージョンアップ前の旧アプリケーションのHTMLから、バージョンアップ後の新アプリケーションのREST APIへ処理要求が行われる可能性がある。それは、REST APIのI/Fに互換性を持たせてバージョンアップすることでAPIの呼び出しが可能となるようにしているからである。
問題は、REST APIで取得する画面のリソースデータ(表示文言など)といった画面のHTMLと密接に関係しているものはI/Fの互換性だけでは対処できない点である。例えば、旧バージョンのHTMLが新バージョンのREST APIから互換性のない新バージョンのアプリケーションのリソースを取得してしまった場合、適正な画面表示が行われない。
そこで、本願発明はサービスを無停止で提供するための仕組みを持つシステムにおいて、I/Fの互換性の他に画面のHTMLに関しても互換性を保つことを目的とする。
本願発明の一実施形に係るサーバーシステムは、端末に備えられたWebブラウザからの要求に応じてサービスを提供するアプリケーションサーバーシステムを含むサーバーシステムであって、第1のアプリケーションサーバーシステムに配備された前記サービスを実現するための複数のモジュールとは少なくとも一部の構成が異なる複数のモジュールを第2のアプリケーションサーバーシステムに配備する配備手段と、ストレージサービスに対し、前記Webブラウザにより表示される画面の表示に必要なリソースであって、前記第1のアプリケーションサーバーシステムに配備される複数のモジュールに対応した第1のリソースおよび第2のアプリケーションサーバーシステムに配備される複数のモジュールに対応した第2のリソースを保存させる保存手段と、前記配備手段による配備が行われた後、前記サービスの提供元を前記第1のアプリケーションサーバーシステムから前記第2のアプリケーションサーバーシステムへ切り替える切り替え手段と、を有し、前記切り替え手段による切り替えの後、前記Webブラウザから画面の表示に関する要求を受け付けた際に、前記要求に含まれるデータが前記第1のリソースに関連することを確認した場合、前記第2のアプリケーションサーバーシステムは前記保存手段から前記第1のリソースを取得し前記Webブラウザに送信することを特徴とする。
本発明によれば、サービスを無停止で提供するための仕組みを持つシステムにおいて、I/Fの互換性の他に画面のHTMLに関しても互換性を保つことが可能になる。
システム構成図 各装置のハードウェア構成図 各装置のソフトウェアモジュール構成図 プログラムを実行形式にビルドする処理を示すフロー ビルド処理において生成されたHTMLとJavaScript(登録商標)の一例 モジュールを配備する処理を示すフロー クライアント端末がアプリケーションサービスを利用するシーケンス 想定外のリクエストを受信した際のREST APIの処理を示すフロー プログラムのビルドから配備までの処理の模式図 クライアント端末がアプリケーションサービスを利用するシーケンスの模式図
以下、本発明を実施するための形態について図面を用いて説明する。
本実施の形態においては、インターネット上の各サーバーにアプリケーションが設置されていることを想定している。アプリケーションはクライアント端末と連携し、様々な機能を提供することを想定している。このような機能を提供する実体をサービスと称し、機能をクライアント端末に提供することをサービスの提供と称する。
本実施の形態に係るクラウドサービスを提供する情報処理装置は、図1に示すような構成のネットワーク上に実現される。100は、Wide Area Network(WAN100)であり、本発明ではWorld Wide Web(WWW)システムが構築されている。101は各構成要素を接続するLocal Area Network(LAN101)である。102もLAN101と同様Local Area Network(LAN102)であるが、WAN100経由でのアクセスができない内部ネットワークの場合が多い。なお、LAN102もLAN101と同様、WAN100に直接接続されアクセスできるような構成でも良い。110、120はアプリケーションサーバーであり、それぞれ複数の情報処理装置から構成されるのが一般的である。アプリケーションサーバー110が現在クラウドサービスを提供中のシステムであり、アプリケーションサーバー120がバージョンアップ後のクラウドサービスを提供するシステムである。130はストレージサーバーであり、それぞれ複数の情報処理装置から構成されるのが一般的である。
ストレージサーバー130はアプリケーションサーバー110、120からアクセスされ、アプリケーションサーバーのためのリソースデータを保持する。140は管理サーバーであり、それぞれ複数の情報処理装置から構成されるのが一般的である。管理サーバー140はアプリケーションサーバー110、120を構成するプログラムの管理、アプリケーションサーバー110、120の構築やサービスを提供している提供元のサーバーシステムの切り替え処理を行う。150はクライアント端末であり、パーソナルコンピューター、スマートフォンといったモバイル端末など、Webブラウザがインストールされている情報処理装置である。
180はDomain Name System(DNS)であり、インターネット上のサーバーのホスト名を解決しアクセス先のIPを返却するシステムである。Blue−Green Deploymentにおけるサービス切り替えは本DNSに登録されたホスト名に対応したIPアドレスをアプリケーションサーバー110のものからアプリケーションサーバー120のものに切り替えることで実現する。クライアント端末150は、クラウドサービスを利用する際、Webブラウザ上で入力したホスト名に対応したサーバーのIPアドレスをDNS180で取得し、取得したIPアドレスを基にその時稼働中のアプリケーションサーバーにアクセスする。
なお、実施例ではサーバーに関する夫々の装置は1台で構成されているように示しているが、上述した通り、複数の装置で構成されていても良い。よって、1台または複数台の装置で構成されているサーバーをサーバーシステムと本実施例では称することとする。例えば、アプリケーションサーバーシステムと称した場合、1台または複数台の装置で構成されたアプリケーションサービスを提供するシステムということになる。
図2は本実施例にかかわる、アプリケーションサーバー110、120、ストレージサーバー130、管理サーバー140、クライアント端末150、DNS180を構成する情報処理装置の一般的な構成である。CPU231は、ROM233のプログラム用ROMに記憶された、或いはハードディスク(HD)等の外部メモリ241からRAM232にロードされたOSやアプリケーション等のプログラムを実行する。またCPU231は、システムバス234に接続される各ブロックを制御する。ここでOSとはコンピューター上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各シーケンスの処理はこのプログラムの実行により実現できる。RAM232は、CPU231の主メモリ、ワークエリア等として機能する。操作部I/F235は、操作部239からの入力を制御する。CRTコントローラ(CRTC)236は、CRTディスプレイ240の表示を制御する。ディスクコントローラ(DKC)237は各種データを記憶するハードディスク(HD)等の外部メモリ241におけるデータクセスを制御する。ネットワークコントローラ(NC)238はWAN100もしくはLAN101、102を介して接続されたサーバーコンピューターや他の機器との通信制御処理を実行する。
尚、後述の全ての説明においては、特に断りのない限り実行のハード上の主体はCPU231であり、ソフトウェア上の主体は外部メモリ241にインストールされたモジュールである。モジュールはCPU231により実行されることで機能を発揮する。
図3は本実施の形態に係る、アプリケーションサーバー110、120、ストレージサーバー130、管理サーバー140、クライアント端末150、DNS180、それぞれのモジュール構成を示す図である。夫々のモジュールはメモリ241に保存さておりCPU231により実行されるモジュールである。
アプリケーションサーバー110、120はアプリケーションサービス319を持ち、アプリケーションサービス319はWebサーバーモジュール310とAPIモジュール311により実現される。Webサーバーモジュール310は、一般的にJettyやApache Tomcat等を利用し、HTMLやスクリプトであるJavaScript(登録商標)の配信や、APIモジュール311の実行環境を提供する。アプリケーションサーバー110、120は、Webサーバーモジュール310を実行することで、HTTPに関する処理を実現し、また、APIモジュール320を実行することで、APIの処理を実現する。なお、本願発明ではバージョンアップの為のBlue−Green Deploymentを想定しているため、切り替え前のアプリケーションサーバーのモジュールと切り替え後のアプリケーションサーバーのモジュールとの構成には一部の差異があることを想定している。例えば、HTMLの表現を変えたことによるWebモジュールの構成の変更である。
ストレージサーバー130はストレージサービス330を持ち、データの管理やアプリケーションサーバー110、120へのデータ管理機能の提供を行う。ストレージサービス330はストレージモジュール(不図示)により実現される。管理サーバー140は管理サービス349をもち、管理サービス349はプログラム管理モジュール340とビルドモジュール341と配備モジュール342を持つ。プログラム管理モジュール340はアプリケーションサーバー110、120を提供するプログラムの管理を行う。ビルドモジュール341はプログラム管理モジュール340で管理されているプログラムを実行形式のモジュールに構成する。配備モジュール342はビルドモジュール341で生成した実行形式のモジュールを利用し、アプリケーションサーバー110、120の環境を構築し、アプリケーションサービスのバージョンアップ処理を実施する。
クライアント端末150はアプリケーションサーバー110、120にアクセスするためのWebブラウザ350を持つ。Webブラウザ350はアプリケーションサーバー110、120から画面表示のための各種データを受信する。DNS180は、DNSサービス380を持ち後述するサーバーシステムの切り替えを実現する。DNSサービス380はDNSモジュール(不図示)により実現される。
図4から図6を用いて本実施の形態にかかわる、アプリケーションサーバー110、120の構築の詳細なフローを説明する。また、処理フローを模式的に示した図9を合わせて説明する。図4は本実施の形態にかかわる、管理サーバー140のビルドモジュール341がアプリケーションサーバー110、120を構成するモジュールのプログラムを実行形式にビルドする処理のフローを示した図である。
ビルドモジュール341はステップS401にて、ビルド処理を一意に識別することが可能な識別情報としてビルドバージョンを生成する。例えば「20150515.1」といった日付+シーケンシャル値といった組み合わせの文字列を生成する。これは、アプリケーションサーバー110、120を実現するためのプログラムが配備される際にプログラムをビルドする毎にユニークな識別情報が生成されるようになっており、重複は許されない。
ビルドモジュール341はステップS402にてプログラム管理モジュール340にて管理されているアプリケーションサービス319の最新プログラム一式を取得する。図9で示すアプリケーションサービスプログラム901であり、画面表示用のHTML、画面表示に利用するリソースを取得する命令およびHTMLを描画するための命令が記載されたスクリプトであるJavaScript(登録商標)、APIモジュール311のプログラム、画面表示に使う文言データや画像データといったリソースからなる。
ビルドモジュール341はステップS403にてビルド処理をおこなう。プログラムコードの実行形式へのコンパイルや、HTMLやJavaScript(登録商標)中に含まれるAPI呼び出し処理に対して、ステップS401にて生成したビルドバージョンを埋め込む処理を実施する。図5は実際に生成したJavaScript(登録商標)とHTMLの一例の抜粋である。JavaScript(登録商標) 500にてREST APIを呼び出す処理のパラメータ501にステップS401で生成されたビルドバージョン「20150515.1」を埋め込んでいる。また、HTML 510にてJavaScript(登録商標) 500を読み込むように、読込先のパス511にステップS401で生成されたビルドバージョン「20150515.1」を埋め込んでいる。これによりHTML 510は常に同時に生成されたJavaScript(登録商標) 500を利用することとなり、さらにはJavaScript(登録商標) 500経由でREST APIに対してビルドバージョンを含んだリクエストを送信できるようになる。ビルドモジュール341は、ステップS404にて、ステップ403で生成した成果物をステップ401にて生成したビルドバージョンと関連付けて保存を行う。
図9の902がビルドバージョン「20150515.1」で生成された成果物であり、903が「20150517.2」で生成された成果物である。どちらもそのビルド時点での最新プログラムから構成されており、HTMLやJavaScript(登録商標)にはそれぞれのビルドバージョンが埋め込まれている。例えば、図9の902がアプリケーションサーバー110を構成する成果物であり、903がアプリケーションサーバー120を構成する成果物である。このようにバージョンアップ毎に成果物を生成し管理する。以上が、管理サーバー140のビルドモジュール341がアプリケーションサーバー110、120のプログラムを実行形式にビルドする処理の説明である。
図6は本実施の形態にかかわる、管理サーバー140の配備モジュール342がアプリケーションサーバー110、120を配備する処理のフローを示した図である。配備モジュール342は、ステップS601にて、配備すべき成果物を決定する。具体的には配備対象のビルドバージョンを特定する。配備モジュール342は、ステップS602にて、配備先となる情報処理装置群を構築する。具体的にはプログラムをホスティングするための情報処理装置を構成することである。Blue−Green Deploymentを実施する場合、仮想的な情報処理装置で構成するのが一般的である。仮想的な情報処理装置は、情報処理装置ハードウェア上に仮想的な複数の情報処理装置を生成する技術であり、仮想的な情報処理装置の生成や削除をプログラムで制御可能となる。例えば、配備のたびに仮想的な情報処理装置を必要なだけ生成し、その仮想的な情報処理装置に対してプログラムを配備していくということが可能となる。さらには、不要になった情報処理装置を即座に削除することが可能となる。これにより、Blue−Green Deploymentを迅速かつ容易に実現可能となる。なお、本発明は仮想的な情報処理装置に限らず、物理的な情報処理装置で構成してもよい。その場合、情報処理装置をアプリケーションサーバー110用と120用の環境を事前に構築しておく必要があり、それらに対してモジュールの配備作業を行う。即ち、システムを構成する対象から削除されたアプリケーションサーバーが外れる。
配備モジュール342はステップS603にて、モジュールの配備を実施する。ステップS602にて構築された情報処理装置に対象となるモジュールを配備していく。図9で示すアプリケーションサーバー110、120がそれぞれのバージョンで構成される。アプリケーションサービス319には、それぞれ対応したビルドバージョンのモジュールより、HTMLやJavaScript(登録商標)、さらにはAPIモジュールが配備される。
配備モジュール342はステップS604にて、リソースの配備を実施する。リソースの配備処理では、ストレージサーバー130にビルドバージョンを特定できる情報を付与し、ステップ403で生成された成果物のうち文言や画像のリソースを保存する。例えば、一般的なファイル共有サーバーなどのように、ディレクトリ構成でデータを管理できるストレージサービスでは、図9の904で示す通り、ビルドバージョンでディレクトリを作成し、その配下に文言や画像のファイルを保存していく。
以上が、アプリケーションサーバー110、120の配備処理である。なお、バージョンアップ作業による配備では、既存のアプリケーションサーバー110の環境とは別に新たにアプリケーションサーバー120の環境を追加することになる。ステップS604の段階では、DNS180の設定はそのままであるため、クライアント端末150は変わらずアプリケーションサーバー110へアクセスを行う。
ステップS605にて、DNSサービス380による切り替えを実施する。本処理はステップS604実施後、アプリケーションサーバー120が正常に稼働していることを確認した後に実施することが一般的である。DNS切り替え処理では、DNS180に登録されているアプリケーションサーバー110、120のホスト名に対応したIPアドレスをアプリケーションサーバー110の値からアプリケーションサーバー120の値に変更する。
図7は本実施の形態にかかわる、クライアント端末150からアプリケーションサーバー110を利用する場合の一般的な流れを示した図である。まず、Webブラウザ350にてRESTful MVCで構成されたアプリケーションを利用する場合の処理の概要を示す。Webブラウザ350は画面を描画するためのHTMLをアプリケーションサーバー110より取得する。HTMLにはJavaScript(登録商標)へのリンクが記載されているので引き続きJavaScript(登録商標)を取得する。Webブラウザ350上では取得したJavaScript(登録商標)が実行され、アプリケーションサーバー110で公開されているREST APIを呼び出しデータの取得を行う。例えば画面表示用の文言を、表示したい言語を指定してAPIを呼び出し、対応する言語の文言データを取得するといった処理となる。Webブラウザ350はHTMLの表示文言を取得した言語のデータで書き換えることで、画面を生成し表示を行う。また、Webブラウザ350にて各種操作を行った場合もREST APIが呼び出され、その結果を取得して画面の更新が行われる。つまり、HTMLで定義されている表示文言と、REST APIで取得した文言データにずれが生じると、HTMLに適切な文言が表示されないことが発生する。この発生要因については課題の欄にて述べた通りである。
引き続き詳細な処理の流れを説明する。Webブラウザ350にてアプリケーションサーバー110の利用を開始した場合、ステップS701にてアプリケーションサーバー110のHTMLがキャッシュに存在するか確認する。存在する場合はキャッシュを利用するが、存在しない場合はHTMLの取得の処理を行う。HTMLを取得する場合、ステップS702にて名前解決のリクエストをDNS180に行う。DNS180はステップS703にてアプリケーションサーバー110に対応したIPアドレスをレスポンスする。なお、ステップS702、S703の処理はWebブラウザ350起動後、アプリケーションサーバー110にリクエストを発行する際に実施される。つまり、ステップS704、ステップS707、ステップS709の直前で実施される。なお、一般的なブラウザでは一度DNSよりIPアドレスを取得するとしばらくはキャッシュされるため、DNSの問い合わせは省略される場合もある。そのため、DNS切り替えの反映タイミングはクライアント端末150の種類によってさまざまである。
Webブラウザ350がHTMLを取得したことに応じてHTMLに対応したJavaScript(登録商標)の取得を行う。HTML同様JavaScript(登録商標)に関してもステップS706にてキャッシュに存在するかの確認を行う。存在する場合はキャッシュを利用するが、存在しない場合はJavaScript(登録商標)の取得処理ステップS707、S708をHTMLと同様に行う。JavaScript(登録商標)を取得したことに応じ、ステップS709 にてJavaScript(登録商標)に記載されたREST APIの呼び出しが行われる。本API呼び出しではパラメータにビルドバージョンが含まれる。アプリケーションサーバー110はAPI呼び出しにて指定されたビルドバージョンのリソースをステップS710、S711にてストレージサーバー130より取得し、ステップS712にて、Webブラウザ350へレスポンスする。レスポンスを受けたWebブラウザ350はステップS713にて、HTMLとHTMLに対応したリソースを元に画面表示をおこなう。以上が、クライアント端末150からアプリケーションサーバー110を利用する場合の処理である。このサービスの利用中にバージョンアップ処理が行われることになる。
図7にて、クライアント端末150がバージョンアップ処理後にアプリケーションサーバー120を利用した場合の処理の一例をさらに説明する。また、図10は本処理の流れを模式的に表した図である。例えば、Webブラウザ350はすでに旧バージョンを利用しているので図10の様にアプリケーションサーバー110より取得したHTMLやJavaScript(登録商標)をキャッシュしている。その結果、図7のステップS702、S703の名前解決処理は実施されず、ステップS704、S705のHTML取得処理、ステップS707、S708のJavaScript(登録商標)取得処理もスキップされる。次にステップS709にてAPI呼び出しが行われるが、この際初めてWebブラウザ350はDNSにてアプリケーションサーバーのIPを取得するためにステップS702、S703の名前解決処理を実施する。本処理で取得できるIPアドレスは図10で示す通り、アプリケーションサーバー120のIPアドレスとなり、ステップS709のAPI呼び出しはアプリケーションサーバー120に対して行われる。この呼び出しの際、パラメータとしてはアプリケーションサーバー 110に対応したビルドバージョンが渡されることとなる。図10で示す通り、本実施例では「20150515.1」というアプリケーションサーバー110で提供されていたビルドバージョンが渡される。よって、ビルドバージョンの一致を確認したアプリケーションサーバー120はステップS710、S711の処理でストレージサーバー130からアプリケーションサーバー110に対応したリソースを取得し、S712でレスポンスすることとなる。Webブラウザ350はキャッシュされたアプリケーションサーバー110から取得したHTML、JavaScript(登録商標)とアプリケーションサーバー120から取得した、それに対応したリソースを元に、ステップS713の処理を正常に実施し、画面を表示できる。
以上、本実施例によれば、サービスを無停止で提供するための仕組みを持つシステムにおいて、I/Fの互換性の他に画面のHTMLに関しても互換性を保つことが可能になる。
本発明の実施例1に追加して実施可能な処理を説明する。本処理は、バージョンアップ終了後一定時間経過した後、アプリケーションサーバー110の環境を削除するための処理と、削除後にアプリケーションサーバー110のリソースが要求された場合の処理に関する。
管理サーバー140の配備モジュール342はバージョンアップ終了後のアプリケーションサーバー110を削除する処理を実施する。サービスを提供するために構成されているシステムの対象からアプリケーションサーバー110を外すことで、アプリケーションサーバー110が削除される。この際、アプリケーションサーバー110に対応したビルドバージョンのリソースデータもストレージサーバー130より削除する。本処理でアプリケーションサーバー110は全て削除される。削除指定はユーザーによる指定によって任意のタイミングで行われる。
次に、アプリケーションサーバー110のリソースが要求された場合の処理に関する処理について説明するが、HTML等のキャッシュの有効期限がきれ、アプリケーションサーバー110に対応したリソース要求が無くなった時点を想定する。この際、インターネット上のキャッシュの制御はサーバーシステムからはできないので、想定外の原因でリソース削除後にアプリケーションサーバー110に対応したリソースの要求が来る場合がある。
図8は、想定外のリクエストを受けたことを考慮したAPIモジュール311の処理の流れを示す。APIモジュール311はWebブラウザ350からのAPI呼び出しステップ709を受けた際、ステップS801にてパラメータで指定されたビルドバージョンに対応したリソースの取得処理を実施する。対応したリソースがストレージサーバー130に存在すればそのリソースをレスポンスする。もし存在しない場合は、ステップS803にてエラー応答を生成しレスポンスを行う。本エラー応答にはWebブラウザ350に対してキャッシュを破棄して再度HTMLを取得するような意味を含める。エラー応答を受け取ったWebブラウザ350はJavaScript(登録商標)にて自身のリロードを実施する。リロード処理を実施することでキャッシュのHTMLが無くなりアプリケーションサーバー120より新たにHTML、JavaScript(登録商標)が新規に取得される。さらには、アプリケーションサーバー120に対応したリソースを取得するためのAPI呼び出しが行われ、Webブラウザ350はアプリケーションサーバー120の正しい画面を表示することが可能となる。
〔その他の実施例〕
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
110 アプリケーションサーバー
120 アプリケーションサーバー
130 ストレージサーバー
140 管理サーバー
150 クライアント端末
180 DNS

Claims (10)

  1. 端末に備えられたWebブラウザからの要求に応じてサービスを提供するアプリケーションサーバーシステムを含むサーバーシステムであって、
    第1のアプリケーションサーバーシステムに配備された前記サービスを実現するための複数のモジュールとは少なくとも一部の構成が異なる複数のモジュールを第2のアプリケーションサーバーシステムに配備する配備手段と、
    ストレージサービスに対し、前記Webブラウザにより表示される画面の表示に必要なリソースであって、前記第1のアプリケーションサーバーシステムに配備される複数のモジュールに対応した第1のリソースおよび第2のアプリケーションサーバーシステムに配備される複数のモジュールに対応した第2のリソースを保存させる保存手段と、
    前記配備手段による配備が行われた後、前記サービスの提供元を前記第1のアプリケーションサーバーシステムから前記第2のアプリケーションサーバーシステムへ切り替える切り替え手段と、を有し、
    前記切り替え手段による切り替えの後、前記Webブラウザから画面の表示に関する要求を受け付けた際に、前記要求に含まれるデータが前記第1のリソースに関連することを確認した場合、前記第2のアプリケーションサーバーシステムは前記保存手段から前記第1のリソースを取得し前記Webブラウザに送信することを特徴とするサーバーシステム。
  2. 前記要求に含まれるデータとは識別情報であり、
    前記保存手段は、前記第1のリソースおよび前記第2のリソースの夫々に対しユニークな識別情報と対応づけて保存させており、前記システムは識別情報の一致の確認により前記第1のリソースまたは前記第2のリソースを前記Webブラウザに送信することを特徴とする請求項1に記載のサーバーシステム。
  3. 前記画面の表示のためのHTMLおよび前記HTMLを基に前記画面を描画するためのスクリプトおよび前記リソースを前記Webブラウザに送信し、前記スクリプトには識別情報が含まれており、前記Webブラウザが前記スクリプトを実行することによって送信される前記識別情報を受信する請求項2に記載のサーバーシステム。
  4. 前記識別情報は複数のモジュールが前記アプリケーションサーバーシステムに配備される毎に生成される識別情報であって、日付とシーケンシャル値から生成される識別情報であることを特徴とする請求項2または3に記載のサーバーシステム。
  5. 前記切り替え手段による切り替えの後、前記システムを構成する対象から前記第1のアプリケーションサーバーを外し、前記第1のリソースを前記ストレージサービスから削除することを特徴とする請求項1乃至4の何れか1項に記載のサーバーシステム。
  6. 前記ストレージサービスから前記第1のリソースが削除されていた場合、前記Webブラウザに対し、前記画面に関するキャッシュを破棄させ前記第2のアプリケーションサーバーシステムが送信する前記画面の表示のためのHTMLおよび前記HTMLを基に前記画面を描画するためのスクリプトおよび前記リソースを受信させるためのデータを送信することを特徴とする請求項1乃至5の何れか1項に記載のサーバーシステム。
  7. Webブラウザを備えた端末と、前記端末のWebブラウザからの要求に応じてサービスを提供するアプリケーションサーバーシステムを含むシステムであって、
    第1のアプリケーションサーバーシステムに配備された前記サービスを実現するための複数のモジュールとは少なくとも一部の構成が異なる複数のモジュールを第2のアプリケーションサーバーシステムに配備する配備手段と、
    ストレージサービスに対し、前記Webブラウザにより表示される画面の表示に必要なリソースであって、前記第1のアプリケーションサーバーシステムに配備される複数のモジュールに対応した第1のリソースおよび第2のアプリケーションサーバーシステムに配備される複数のモジュールに対応した第2のリソースを保存させる保存手段と、
    前記配備手段による配備が行われた後、前記サービスの提供元を前記第1のアプリケーションサーバーシステムから前記第2のアプリケーションサーバーシステムへ切り替える切り替え手段と、を有し、
    前記切り替え手段による切り替えの後、前記Webブラウザから画面の表示に関する要求を受け付けた際に、前記要求に含まれるデータが前記第1のリソースに関連することを確認した場合、前記第2のアプリケーションサーバーシステムは前記保存手段から前記第1のリソースを取得し前記Webブラウザに送信することを特徴とするシステム。
  8. 端末に備えられたWebブラウザからの要求に応じてサービスを提供するアプリケーションサーバーシステムを含むサーバーシステムで実行される方法であって、
    配備手段は、第1のアプリケーションサーバーシステムに配備された前記サービスを実現するための複数のモジュールとは少なくとも一部の構成が異なる複数のモジュールを第2のアプリケーションサーバーシステムに配備し、
    保存手段は、ストレージサービスに対し、前記Webブラウザにより表示される画面の表示に必要なリソースであって、前記第1のアプリケーションサーバーシステムに配備される複数のモジュールに対応した第1のリソースおよび第2のアプリケーションサーバーシステムに配備される複数のモジュールに対応した第2のリソースを保存させ、
    切り替え手段は、前記配備手段による配備が行われた後、前記サービスの提供元を前記第1のアプリケーションサーバーシステムから前記第2のアプリケーションサーバーシステムへ切り替える切り替え、
    前記切り替え手段による切り替えの後、前記Webブラウザから画面の表示に関する要求を受け付けた際に、前記要求に含まれるデータが前記第1のリソースに関連することを確認した場合、前記第2のアプリケーションサーバーシステムは前記保存手段から前記第1のリソースを取得し前記Webブラウザに送信することを特徴とする方法。
  9. Webブラウザを備えた端末と、前記Webブラウザからの要求に応じてサービスを提供するアプリケーションサーバーシステムを含むシステムで実行される方法であって、
    配備手段は、第1のアプリケーションサーバーシステムに配備された前記サービスを実現するための複数のモジュールとは少なくとも一部の構成が異なる複数のモジュールを第2のアプリケーションサーバーシステムに配備し、
    保存手段は、ストレージサービスに対し、前記Webブラウザにより表示される画面の表示に必要なリソースであって、前記第1のアプリケーションサーバーシステムに配備される複数のモジュールに対応した第1のリソースおよび第2のアプリケーションサーバーシステムに配備される複数のモジュールに対応した第2のリソースを保存させ、
    切り替え手段は、前記配備手段による配備が行われた後、前記サービスの提供元を前記第1のアプリケーションサーバーシステムから前記第2のアプリケーションサーバーシステムへ切り替える切り替え、
    前記切り替え手段による切り替えの後、前記Webブラウザから画面の表示に関する要求を受け付けた際に、前記要求に含まれるデータが前記第1のリソースに関連することを確認した場合、前記第2のアプリケーションサーバーシステムは前記保存手段から前記第1のリソースを取得し前記Webブラウザに送信することを特徴とする方法。
  10. 請求項8に記載の方法をサーバーシステムで実行させるためのプログラム。
JP2015115166A 2015-06-05 2015-06-05 システム、サーバーシステム、方法、およびプログラム Pending JP2017004120A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2015115166A JP2017004120A (ja) 2015-06-05 2015-06-05 システム、サーバーシステム、方法、およびプログラム
KR1020160063872A KR102006640B1 (ko) 2015-06-05 2016-05-25 시스템, 서버 시스템, 방법 및 프로그램
US15/169,362 US20160360011A1 (en) 2015-06-05 2016-05-31 System, server system, method, and storage medium
EP16172712.8A EP3101539B1 (en) 2015-06-05 2016-06-02 Selection of compatible resources after updating web application servers
CN201610384009.6A CN106254411B (zh) 2015-06-05 2016-06-02 用于提供服务的系统、服务器系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015115166A JP2017004120A (ja) 2015-06-05 2015-06-05 システム、サーバーシステム、方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2017004120A true JP2017004120A (ja) 2017-01-05

Family

ID=56116266

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015115166A Pending JP2017004120A (ja) 2015-06-05 2015-06-05 システム、サーバーシステム、方法、およびプログラム

Country Status (5)

Country Link
US (1) US20160360011A1 (ja)
EP (1) EP3101539B1 (ja)
JP (1) JP2017004120A (ja)
KR (1) KR102006640B1 (ja)
CN (1) CN106254411B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032049A (zh) * 2021-04-13 2021-06-25 北京华胜天成科技股份有限公司 基于任务启动策略的应用系统部署方法及装置和电子设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110191141B (zh) * 2018-02-23 2022-03-29 阿里巴巴集团控股有限公司 服务调用信息处理方法、装置及计算机系统
US11356532B1 (en) * 2018-08-10 2022-06-07 Meta Platforms, Inc. Systems and methods for packaging web resources

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539494B1 (en) * 1999-06-17 2003-03-25 Art Technology Group, Inc. Internet server session backup apparatus
US7155462B1 (en) * 2002-02-01 2006-12-26 Microsoft Corporation Method and apparatus enabling migration of clients to a specific version of a server-hosted application, where multiple software versions of the server-hosted application are installed on a network
US8276121B2 (en) * 2007-06-19 2012-09-25 Microsoft Corporation Selection of versioned resource among multiple compatible versions
CN101667115A (zh) * 2008-09-02 2010-03-10 中国移动通信集团公司 一种部署客户端应用的终端、系统及方法
US8832676B2 (en) * 2009-09-30 2014-09-09 Zynga Inc. Apparatuses, methods and systems for a social networking application updater
US8782630B2 (en) * 2011-06-30 2014-07-15 International Business Machines Corporation Smart rebinding for live product install
US8370467B1 (en) * 2011-10-07 2013-02-05 Google Inc. Method for seamlessly providing incremental application updates to users while serving continuous live traffic
CN103186391B (zh) * 2011-12-29 2016-05-11 腾讯科技(深圳)有限公司 浏览器升级方法和系统以及一种升级服务器
JP5662956B2 (ja) 2012-03-01 2015-02-04 日本電信電話株式会社 クラスタシステム
JP5750072B2 (ja) 2012-03-01 2015-07-15 日本電信電話株式会社 クラスタシステム
US9338254B2 (en) * 2013-01-09 2016-05-10 Microsoft Corporation Service migration across cluster boundaries
US9396126B2 (en) * 2013-01-30 2016-07-19 Google Inc. Clearing an application cache
US9940610B1 (en) * 2013-02-15 2018-04-10 Amazon Technologies, Inc. Payments portal
US9838375B2 (en) * 2013-02-28 2017-12-05 Microsoft Technology Licensing, Llc RESTlike API that supports a resilient and scalable distributed application
EP3125117B1 (en) * 2014-03-28 2020-09-23 NTT Docomo, Inc. Update management system and update management method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032049A (zh) * 2021-04-13 2021-06-25 北京华胜天成科技股份有限公司 基于任务启动策略的应用系统部署方法及装置和电子设备
CN113032049B (zh) * 2021-04-13 2024-06-11 北京华胜天成科技股份有限公司 基于任务启动策略的应用系统部署方法及装置和电子设备

Also Published As

Publication number Publication date
CN106254411A (zh) 2016-12-21
KR102006640B1 (ko) 2019-08-02
CN106254411B (zh) 2019-05-17
US20160360011A1 (en) 2016-12-08
KR20160143519A (ko) 2016-12-14
EP3101539A1 (en) 2016-12-07
EP3101539B1 (en) 2021-01-20

Similar Documents

Publication Publication Date Title
JP6725924B2 (ja) ページジャンプの方法及び装置
US10412176B2 (en) Website access method, apparatus, and website system
JP5288334B2 (ja) 仮想アプライアンス配備システム
US10116735B2 (en) Service migration across cluster boundaries
CN108848092A (zh) 基于调用链的微服务灰度发布的处理方法及装置
US8370467B1 (en) Method for seamlessly providing incremental application updates to users while serving continuous live traffic
US20150188999A1 (en) System and method to extend the capabilities of a web browser to improve the web application performance
JP2011060035A (ja) アプリケーションデプロイシステム、アプリケーションデプロイ方法及びプログラム
JP2014534537A (ja) 専用のキャッシュを管理するためのシステム及び方法
JP2019530089A (ja) ウェブページとネイティブアプリケーションの間の通信を実現する方法及び装置並びに電子装置
US20170126490A1 (en) Method and system for configuring network devices
SG189890A1 (en) Routing traffic in an online service with high availability
US20140250069A1 (en) Systems and methods for selectively synchronizing files
US20170017380A1 (en) Mobile enabling a web application developed without mobile rendering capabilities
JP2017004120A (ja) システム、サーバーシステム、方法、およびプログラム
US10558726B2 (en) Method and apparatus for executing application
JP5541160B2 (ja) プログラム入手・実行クライアント、プログラム入手・実行方法およびプログラム
JP6643123B2 (ja) 管理サーバーシステム、システム、システムの方法およびプログラム
CN102137058A (zh) 一种基于tab页的页面访问方法和装置
CN107608768B (zh) 基于命令行模式的资源访问方法、电子设备及存储介质
US9727362B2 (en) Execution control method, storage medium, and execution control apparatus
JP2013065206A (ja) サーバ装置、クライアント装置、情報処理方法及びプログラム
JP6021609B2 (ja) 情報処理装置、その方法及びプログラム