用于提供服务的系统、服务器系统及方法与流程

文档序号:12478214阅读:235来源:国知局
用于提供服务的系统、服务器系统及方法与流程

本发明涉及一种用于提供云服务的系统、服务器系统、方法。



背景技术:

近年来流行在互联网上提供的云服务。从世界各地经常使用云服务。因此,与传统服务不同,云服务难以在用户量小的夜间停止系统,从而进行维护。因此,存在如下不断增长的需求:在不停止服务的情况下进行维护工作。如日本特开2013-182413号公报和日本特开2013-182397号公报中所讨论的,传统上,通过在会话管理下进行不停机的版本升级、并进行基于会话的分配处理,来进行这种维护工作。

随着Web应用技术的进展,进行用于在服务器端生成画面并将处理结果返回给客户的处理的传统构造,已转向诸如表述性状态转移(REST)ful模型-视图-控制器(MVC)和客户端MVC的技术。这种服务器被构造为经由REST接口(I/F)执行处理,并被构造为仅将数据返回给客户,使得在客户端生成画面。



技术实现要素:

根据本发明的一方面,提供了一种服务器系统,其包括应用服务器系统,所述应用服务器系统根据来自在终端中包括的Web浏览器的请求来提供服务,所述服务器系统包括:部署单元,其被构造为在第二应用服务器系统中部署多个模块,所述多个模块具有与部署在第一应用服务器系统中的用于实现所述服务的多个模块的构造至少部分不同的构造;存储单元,其被构造为将第一资源和第二资源存储到存储服务中,所述第一资源与部署在所述第一应用服务器系统中的多个模块相对应,所述第二资源与部署在所述第二应用服务器系统中的多个模块相对应,所述第一资源和所述第二资源是显示要由所述Web浏览器显示的画面所需的资源;以及切换单元,其被构造为在所述部署单元进行部署之后,将所述服务的源从所述第一应用服务器系统切换到所述第二应用服务器系统,其中,在所述切换单元的切换之后,在从所述Web浏览器接受到关于显示所述画面的请求、并且所述请求中包括的数据被确认为与所述第一资源相关联的情况下,所述第二应用服务器系统从所述存储单元获得所述第一资源,并将所述第一资源发送至所述Web浏览器。

通过以下参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。

附图说明

图1是系统构造图。

图2是各装置的硬件构造图。

图3是各装置的软件模块构造图。

图4是例示用于将程序组建为可执行形式的处理的流程图。

图5例示了通过组建处理生成的超文本标记语言(HTML)和JavaScript(注册商标)的示例。

图6是例示用于部署模块的处理的流程图。

图7例示了客户终端使用应用服务的序列。

图8是例示当接收到意外请求时的表述性状态转移(REST)应用程序接口(API)的处理的流程图。

图9是例示从组建程序到部署程序为止的处理的示意图。

图10是例示客户终端使用应用服务的序列的示意图。

具体实施方式

作为用于实现不停机的升级的新技术,使用被称为蓝绿部署(blue-green deployment)的方法。该技术包括:在保持当前启动的服务运行的同时,在其他系统上构建升级的服务;以及将服务的源切换到构建的系统。

依据蓝绿部署,通过改变域名系统(DNS)的设置来立即切换这两个系统。然而,即使服务器被切换,在客户端Web浏览器中缓存或在互联网路径上缓存的例如超文本标记语言(HTML)和JavaScript(注册商标)的内容,也未必被立即更新为最新内容。在这种情况下,可能做出从预升级的旧应用的HTML到升级的新应用的REST应用程序接口(API)的处理请求。由于在维持REST API的I/F之间的兼容性的同时升级应用,因此允许这种API调用。

存在如下问题:仅通过I/F的兼容性无法处理与画面HTML密切相关的内容,例如要通过REST API获得的画面的资源数据(显示文本)。例如,如果HTML的旧版本从REST API的新版本获得应用的新版本的不兼容资源,则不显示合适的画面。

本发明旨在包括用于提供服务不停机(service nonstop)的机制的系统中,除了维持I/F的兼容性之外,还维持画面HTML的兼容性。

下面将参照附图描述用于执行本发明的构造。

下面将描述第一示例性实施例。在本示例性实施例中,假定在互联网的各服务器中安装有应用。假定这些应用与客户终端协作提供各种功能。提供这些功能的实体将被称为服务。向客户终端提供功能将被称为提供服务。

在具有图1所示的构造的网络上实现根据本示例性实施例的用于提供云服务的信息处理装置。在本发明的示例性实施例中,由万维网(WWW)系统来构造广域网(WAN)100。局域网(LAN)101连接各部件。LAN 102类似于LAN 101,但是经常被构造为不能经由WAN 100而访问的内部网络。与LAN 101类似,LAN 102也可以直接连接到WAN100并且可访问WAN 100。应用服务器110和120各自典型包括多个信息处理装置。应用服务器110是当前正提供云服务的系统。应用服务器120是提供升级的云服务的系统。存储服务器130典型包括多个信息处理装置。

从应用服务器110和120访问存储服务器130,并且存储服务器130存储应用服务器110和120的资源数据。管理服务器140典型包括多个信息处理装置。管理服务器140管理应用服务器110和120的程序,构建应用服务器110和120的系统,并进行用于切换提供服务的源的源服务器系统的处理。客户终端150是各自安装有Web浏览器的信息处理装置。客户终端150的示例包括个人计算机和诸如智能手机等的移动终端。

DNS 180是解析互联网上的服务器的主机名并返回要访问的互联网协议(IP)地址的系统。当与登记在DNS 180中的主机名相对应的IP地址从应用服务器110的IP地址切换到应用服务器120的IP地址时,实现通过蓝绿部署进行的服务的切换。当客户终端150使用云服务时,客户终端150从DNS 180获得与在Web浏览器上输入的主机名相对应的服务器的IP地址,并基于获得的IP地址访问此时正在运行的应用服务器。

在本示例性实施例中,服务器被例示为各自包括一个装置。然而,如上所述,各服务器可以包括多个装置。因此,在本示例性实施例中,包括一个或多个装置的服务器将被称为服务器系统。例如,应用服务器系统是指包括一个或多个装置并提供应用服务的系统。

图2例示了根据本示例性实施例的信息处理装置的典型构造,该信息处理装置包括应用服务器110和120、存储服务器130、管理服务器140、客户终端150和DNS 180。中央处理单元(CPU)231执行存储在ROM 233的程序只读存储器(ROM)中的或从外部存储器241(例如硬盘(HD))加载到随机存取存储器(RAM)232中的程序,例如操作系统(OS)和应用。CPU 231控制与系统总线234连接的块。通过执行程序能够实现以下描述的序列处理。RAM 232用作CPU 231的主存储器和工作区。操作单元I/F 235控制从操作单元239的输入。阴极射线管(CRT)控制器(CRTC)236控制CRT显示器240的显示。盘控制器(DKC)237控制对存储有各种数据的外部存储器241(例如HD)中的数据的访问。网络控制器(NC)238进行用于与经由WAN 100或LAN 101和102连接的服务器计算机和其他设备通信的控制处理。

在所有以下描述中,除非另外指明,执行以下描述的操作的主要硬件部件为CPU 231。主要的软件部件为安装在外部存储器241中的模块。在模块被CPU 231执行的情况下,模块提供了其功能。

图3是例示应用服务器110和120、存储服务器130、管理服务器140、客户终端150和DNS 180的各模块构造的图。模块被存储在外部存储器241中并由CPU 231执行。

应用服务器110和120包括应用服务319。应用服务319由Web服务器模块310和API模块311实现。Web服务器模块310典型使用Jetty或Apache Tomcat来分配HTML和脚本,即JavaScript(注册商标),并提供API模块311的执行环境。应用服务器110和120执行Web服务器模块310来实现与超文本传输协议(HTTP)有关的处理。应用服务器110和120执行API模块311来实现API处理。在本发明的示例性实施例中,假设用于升级的蓝绿部署,并且假设切换之前的应用服务器110中的模块构造与切换之后的应用服务器120中的模块构造有部分不同。这种不同的示例包括由于HTML表达的变化而导致的Web服务器模块310的构造的变化。

存储服务器130包括存储服务330。存储服务器130管理数据并为应用服务器110和120提供数据管理功能。通过存储模块(未示出)来实现存储服务330。管理服务器140包括管理服务349。管理服务349包括程序管理模块340、组建模块341和部署模块342。程序管理模块340管理用于提供应用服务器110和120的程序。组建模块341将由程序管理模块340管理的程序构造为可执行形式的模块。部署模块342通过使用由组建模块341生成的可执行形式的模块,来构建应用服务器110和120的环境,并进行应用服务319的升级处理。

客户终端150包括用于访问应用服务器110和120的Web浏览器350。Web浏览器350从应用服务器110和120接收用于画面显示的各种数据。DNS 180包括DNS服务380,并实现以下描述的服务器系统的切换。DNS服务380由DNS模块(未例示)实现。

将参照图4至图6来描述根据本示例性实施例的用于组建应用服务器110和120的详细流程。还将描述示意性例示处理流程的图9。图4是例示管理服务器140的组建模块341将构成应用服务器110和120的模块的程序组建为可执行形式的处理流程的流程图。

在步骤S401中,组建模块341生成组建版本,作为能够唯一识别组建处理的标识信息。例如,组建模块341生成包括日期和序列值的组合的字符串,例如“20150515.1”。每当组建模块341组建用于实现应用服务器110和120的程序以进行部署时,组建模块341生成唯一的标识信息。不允许重复。

在步骤S402中,组建模块341获得由程序管理模块340管理的应用服务319的一组最新程序。该组最新程序包括图9所示的应用服务程序901。应用服务程序901包括用于画面显示的HTML、作为描述用于获得要用于画面显示的资源的命令和用于描绘HTML的命令的脚本的JavaScript(注册商标)、API模块311的程序、以及要用于画面显示的资源(例如文本数据和图像数据)。

在步骤S403中,组建模块341进行组建处理。组建模块341将程序代码编译为可执行形式,并进行用于将在步骤S401中生成的组建版本嵌入到HTML和JavaScript(注册商标)中包括的API调用中的处理。图5例示了实际生成的JavaScript(注册商标)和HTML的示例的摘录。在JavaScript(注册商标)500中,在步骤S401中生成的组建版本“20150515.1”被嵌入用于调用REST API的处理的参数501中。在HTML 510中,在步骤S401中生成的组建版本“20150515.1”被嵌入读取路径511中,以读取JavaScript(注册商标)500。结果,HTML 510总是使用同时生成的JavaScript(注册商标)500,并能够经由JavaScript(注册商标)500将包括组建版本的请求发送至REST API。在步骤S404中,组建模块341将在步骤S403中生成的产物与在步骤S401中生成的组建版本相关联地存储。

图9例示了在组建版本“20150515.1”中生成的产物902和在“20150517.2”中生成的产物903。产物902和903二者均包括各组建时间的最新程序,并且各组建版本被嵌入HTML和JavaScript(注册商标)中。例如,图9中的产物902构成了应用服务器110。产物903构成了应用服务器120。以此方式,组建模块341生成并管理各升级的产物。以上描述了管理服务器140的组建模块341组建可执行形式的应用服务器110和120的程序的处理。

图6是例示根据本示例性实施例的管理服务器140的部署模块342部署应用服务器110和120的处理流程的流程图。在步骤S601中,部署模块342确定要部署的产物。具体地说,部署模块342识别要部署的组建版本。在步骤S602中,部署模块342构建要作为部署目的地的信息处理装置组。具体地说,部署模块342构造用于主持程序的信息处理装置。在执行蓝绿部署时,典型构造虚拟信息处理装置。虚拟信息处理装置是用于在信息处理装置的硬件上生成多个虚拟信息处理装置的技术。通过程序能够控制虚拟信息处理装置的生成和删除。例如,针对各部署,能够尽可能多地生成虚拟信息处理装置,并且能够将程序部署到虚拟信息处理装置。此外,能够立即删除不再需要的虚拟信息处理装置。这使得能够快速简便地实现蓝绿部署。在本发明中构造的信息处理装置不限于虚拟信息处理装置,而可以是物理信息处理装置。在这种情况下,针对信息处理装置,需要预先构建各应用服务器110和120的环境,并且在这种环境中部署模块。从系统的部件中排除已删除的应用服务器。

在步骤S603中,部署模块342进行模块部署。部署模块342将目标模块部署在步骤S602中构建的信息处理装置中。以各版本构造图9所示的应用服务器110和120。相应组建版本的模块(包括HTML、JavaScript(注册商标)和API模块311)被部署在各应用服务319中。

在步骤S604中,部署模块342部署资源。在用于部署资源的处理中,部署模块342将能够识别组建版本的信息赋予存储服务器130,使得存储在步骤S403中生成的产物中包括的文本和图像资源。例如,假设存储服务330能够管理目录构造(如典型的文件共享服务器)中的数据。如图9的信息904中所例示,部署模块342生成具有组建版本的目录,并将文本和图像文件存储在目录下。

以上描述了应用服务器110和120的部署处理。在通过升级工作进行部署的情况下,除了应用服务器110的现有环境之外,还新添加应用服务器120的另一环境。在步骤S604中,DNS 180的设置尚未改变,客户终端150继续访问应用服务器110。

在步骤S605中,DNS服务380进行切换。该处理典型在进行步骤S604中的处理并确认应用服务器120正常运行之后进行。在DNS切换处理中,将与在DNS 180中登记的应用服务器110的主机名相对应的IP地址,从应用服务器110的值改变为应用服务器120的值。

图7是例示根据本示例性实施例当客户终端150使用应用服务器110时的典型处理流程的图。首先将描述当Web浏览器350使用由RESTful MVC构造的应用时要进行的处理概要。Web浏览器350从应用服务器110获得用于描绘画面的HTML。HTML包括到JavaScript(注册商标)的链接,使得Web浏览器350获得JavaScript(注册商标)。在Web浏览器350上执行获得的JavaScript(注册商标),并且Web浏览器350调用在应用服务器110上公布的RESTAPI以获得数据。例如,Web浏览器350进行用于指定显示用于画面显示的文本的期望语言、然后调用API以获得相应语言的文本数据的处理。Web浏览器350利用获得的语言的文本数据来重写HTML的显示文本,以生成并显示画面。如果在Web浏览器350上进行各种操作,则Web浏览器350还调用REST API并获得结果以更新画面。换句话说,如果在HTML定义的显示文本与REST API获得的文本数据之间存在不一致,则无法在HTML上显示合适的文本。已结合问题描述了这种现象的原因。

将进一步详细描述处理流程。假设Web浏览器350开始使用应用服务器110。在步骤S701中,Web浏览器350检查在缓存中是否存在应用服务器110的HTML。如果在缓存中存在应用服务器110的HTML,则Web浏览器350使用缓存的HTML。否则,Web浏览器350进行步骤S704和S705中的用于获得HTML的处理。在步骤S702中,为了获得HTML,Web浏览器350请求DNS 180的名称解析。在步骤S703中,DNS 180以与应用服务器110相对应的IP地址进行响应。在启动Web浏览器350之后,当Web浏览器350向应用服务器110发出请求时进行步骤S702和S703的处理。换句话说,紧接在步骤S704、S707和S709之前,进行步骤S702和S703的处理。由于一旦从DNS获得了IP地址,典型浏览器就暂时缓存该IP地址,因此可以省略DNS询问。反映DNS切换的定时由此取决于客户终端150的类型。

响应于HTML的获取,Web浏览器350获得与HTML相对应的JavaScript(注册商标)。在步骤S706中,与HTML一样,Web浏览器350检查在缓存中是否存在JavaScript(注册商标)。如果在缓存中存在JavaScript(注册商标),则Web浏览器350使用缓存的JavaScript(注册商标)。否则,与HTML类似,Web浏览器350针对JavaScript(注册商标)进行步骤S707和S708的获取处理。在步骤S709中,响应于JavaScript(注册商标)的获取,Web浏览器350调用在JavaScript(注册商标)中描述的RESTAPI。该API调用的参数包括组建版本。在步骤S710和S711中,应用服务器110从存储服务器130获得由API调用指定的组建版本的资源。在步骤S712中,应用服务器110对Web浏览器350做出响应。在步骤S713中,当接收到响应时,Web浏览器350基于HTML和与HTML相对应的资源进行画面显示。以上描述了当客户终端150使用应用服务器110时进行的处理。当该服务在使用中时进行升级处理。

参照图7,将描述当在升级处理之后客户终端150使用应用服务器120时要进行的处理的示例。图10是示意性例示处理流程的图。例如,Web浏览器350已使用旧版本并缓存从应用服务器110获得的HTML和JavaScript(注册商标),如图10所例示。因此,不进行图7中的步骤S702和S703的名称解析处理。还跳过步骤S704和S705的HTML获取处理以及步骤S707和S708的JavaScript(注册商标)获取处理。在步骤S709中,Web浏览器350进行API调用。这里,Web浏览器350进行步骤S702和S703的名称解析处理,以首次从DNS 180获得应用服务器的IP地址。如图10所例示,能够在处理中获得的IP地址为应用服务器120的IP地址。由此,针对应用服务器120进行步骤S709中的API调用。在该API调用期间,与应用服务器110相对应的组建版本作为参数被传递到应用服务器120。如图10所例示,在本示例性实施例中,由应用服务器110提供的组建版本“20150515.1”被传递到应用服务器120。应用服务器120检查组建版本是否相互一致。在步骤S710和S711的处理中,应用服务器120从存储服务器130获得与应用服务器110相对应的资源。在步骤S712中,应用服务器120做出响应。在步骤S713中,Web浏览器350能够基于从应用服务器110获得的缓存HTML和JavaScript(注册商标)、以及从应用服务器120获得的相应资源,正常进行用于显示画面的处理。

如上所述,根据本示例性实施例,包括用于提供服务不停机的机制的系统除了能够维持I/F的兼容性之外,还能够维持画面HTML的兼容性。

下面将描述第二示例性实施例。将描述除了本发明的第一示例性实施例之外也可以实现的处理。本处理涉及用于在自升级结束起经过一定时间之后删除应用服务器110的环境的处理、以及当在删除之后请求应用服务器110的资源时要进行的处理。

管理服务器140的部署模块342进行用于在升级结束之后删除应用服务器110的处理。部署模块342通过从旨在提供服务的系统的部件中排除应用服务器110,来删除应用服务器110。这里,还从存储服务器130中删除与应用服务器110相对应的组建版本的资源数据。在该处理中,删除整个应用服务器110。用户在任意定时给出删除指定。

接下来,将描述当请求应用服务器110的资源时要进行的处理。这里,假设HTML的缓存已过期并且不再存在与应用服务器110相对应的资源请求的时间点。由于服务器系统不可控制互联网上的缓存,因此可能在由于意外因素而删除资源之后,请求与应用服务器110相对应的资源。

图8例示了考虑到意外请求的接收的API模块311的处理流程。假定API模块311在步骤S709中从Web浏览器350接收到API调用。在步骤S801中,API模块311进行用于获得与由参数指定的组建版本相对应的资源的处理。如果在存储服务器130中存在相应资源(步骤S801中的OK),则在步骤S802中,API模块311以该资源进行响应。否则(步骤S801中的NG),在步骤S803中,API模块311生成错误响应,并以此进行响应。错误响应的一个含义为指示Web浏览器350丢弃缓存并再次获得HTML。当接收到错误响应时,Web浏览器350通过使用JavaScript(注册商标)对自身进行重载。重载处理的执行消除了缓存的HTML,Web浏览器350从应用服务器120获得新的HTML和JavaScript(注册商标)。Web浏览器350还进行API调用以获得与应用服务器120相对应的资源。由此,Web浏览器350能够显示应用服务器120的正确画面。

其他实施例

另外,还可以通过读出并执行记录在存储介质(例如,非临时性计算机可读存储介质)上的用于执行本发明的一个或多个上述实施例的功能的计算机可执行指令的系统或装置的计算机来实现本发明的各实施例,以及通过系统或装置的计算机通过例如从存储介质读出并执行用于执行一个或多个上述实施例的功能的计算机可执行指令的方法来实现本发明的各实施例。计算机可以包括中央处理单元(CPU)、微处理单元(MPU)或其他电路中的一个或多个,并且可以包括独立的计算机或独立的计算机处理器的网络。计算机可执行指令可以例如从网络或存储介质被提供给计算机。存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储器、光盘(诸如压缩光盘(CD)、数字通用光盘(DVD)或蓝光光盘(BD)TM)、闪存设备、存储卡等中的一个或多个。

本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。

虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明并不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有这些变型例以及等同的结构和功能。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1