服务提供装置、服务提供系统、用于处理服务提供装置中的数据的方法以及计算机程序的制作方法

文档序号:6348617阅读:104来源:国知局
专利名称:服务提供装置、服务提供系统、用于处理服务提供装置中的数据的方法以及计算机程序的制作方法
技术领域
本发明涉及服务提供装置、服务提供系统、用于处理服务提供装置中的数据的方法以及计算机程序,并且更具体而言,本发明涉及多重地提供多种版本服务的服务提供装置、服务提供系统、用于处理服务提供装置中的数据的方法以及计算机程序。
背景技术
在近些年来,使用软件即服务(SaM)/应用服务提供商(ASP)的服务提供模型日益得到关注,其中MaS/ASP在单个平台上向多个用户提供各种服务。作为该模式的典型的服务有 Salesforce. com(http://www. salesforce. com/jp/)。SaaS/ASP 类型的服务释放特定应用程序接口(API)以允许用户使用利用了诸如简单对象访问协议(SOAP)和超文本传输协议(HTTP)之类的协议的功能。利用专利文献1(日本专利申请案特许公开第2008-123183号)中公开的系统, ^aS类型的服务以软件的功能为单位提供服务,以使用用户为每次使用所需要的最少服务。整体而言,该服务无规律地更新为新版本以调错并且改善功能,并且改变、添加并删除单个API和由该API实现的功能。作为与该服务更新相关的技术,专利文献2(日本专利申请案特许公开第 2006-011801号)中公开了用于将更新模块自动更新为最新版本的方法。然而,服务通常持续地更新并且在专利文献1中公开的技术中并非简单地存在新版本和旧版本这两种类型, 而是通常存在最新版本和多个旧版本(如多个版本VI. 0、V1. 0UV1. 12和V2. 0),并且因此有必要对一部分用户继续提供旧版本服务。除了需要持续提供多个版本服务之外,当服务更新时大部分MaS/ASP类型的服务需要继续提供服务。因此,现有ASP提供商已采用一种继续旧版本服务的方法,使用由 VMWare (注册商标)或Xen(注册商标)所代表的虚拟技术向另一个服务器硬件或虚拟操作系统(OS)部署新版本服务(这些服务在该虚拟技术上进行操作),并且切换到新版本。 并且,通过为不能企及新版本的API或功能的部分用户部分维持原有提供旧版本服务的硬件,API提供商继续提供旧版本服务。图19示出了该情况中的切换的示例。用户群3 (Ul)使用由VI. 00版本服务提供装置群10通过负载分发器7所提供的服务。在该情况中,负载分发器7具有向该服务提供装置群10中的服务提供装置11和12适当地分发来自多个用户3的多个请求的功能。当在请求接收/响应单元101中接收到来自用户的请求时,服务提供装置11从加载器102获得处理所需的对象。加载器102读取类群103,在该类群中在将服务的部署加载到加载器102 之后实现VI. 00服务处理。加载器102然后基于类群103生成处理所需的对象,并且向请求接收/响应单元101返回该对象。当处理完成时,请求接收/响应单元101向用户3返回结果作为响应。
此外,为了将该服务更新为VI. 01版本,另外预备了 VI. 01版本的服务提供装置群 15。在该服务提供装置群15的服务提供装置16和17中,请求接收/响应单元101和加载器102与服务提供装置群10中的那些相同。其唯一区别在于类群153,该类群153实现 VI. 01服务的处理,并且被读取并且加载到加载器102。然后,以适当的定时改变负载分发器7的设置,切断服务提供装置群10的到VI. 00 版本的连接,并且向该VI. 01版本服务提供装置群15中的服务提供装置16和17分配来自用户群3的请求。负载分发器7分配来自用户3中所包括的用户群U2的请求,用户群U2 继续对VI. 00版本服务提供装置群10使用VI. 00版本服务。然而,旧版本的使用通常趋于减少,因此管理员适当地去除服务提供装置群10中的VI. 00版本服务提供装置或者将服务提供装置转换到VI. 01版本,从而导致旧版本的服务提供装置群10衰退。在以上多重地管理多种版本的方法中,部署了服务的公共部分,同时部署了多个服务,在该多个服务中大部分服务彼此相同并且小部分服务彼此不同。例如,即使仅更新了 VI. 00服务类群103的一部分类,VI. 01服务类群153也需要读取未被更新的公共部分。与这些方法不同,专利文献3 (日本专利申请案特许公开第2003-337702号)公开了用于改变高度模块化的软件的一部分并且在不停止整个软件的情况下再次部署软件的系统的示例,以作为用于改为仅更新该服务的必要部分而非在服务更新之后准备整个服务的副本的现有技术。此外,专利文献4(日本专利申请案特许公开第2008-165377号)中公开了使用这样一种配置的系统,该配置在执行一个应用时优化用于管理文件系统上的多个库的版本的方法。该系统使得能够使用单个系统上的单个库的不同版本,并且通过即使在更新了软件包的版本之后仍然备份旧版本的程序,以允许将该软件包降级到以前的旧版本。
专利文献专利文献1 专利文献2 专利文献3 专利文献4
日本专利申请案特许公开第2008-123183号日本专利申请案特许公开第2006-011801号日本专利申请案特许公开第2003-337702号日本专利申请案特许公开第2008-165377号

发明内容
顺便说,如上所述,利用MaS/ASP类型的服务,有必要根据服务请求源的用户的要求,多重地提供多种版本服务。在以上文献中公开的系统中,服务器侧(如ASP)通过执行应用并且向用户返回结果而不提供服务,并且终端侧执行应用并且不需要同时执行相同应用的多个版本,并且因此,如果将以上文献的技术应用于服务器并且同时执行多个版本的应用,那么就有必要通过为每个版本设置适当的挂载点来独立地发起应用。在该情况中,在不同版本应用中所公共的库将被冗余地读取到存储器上,并且因此存在存储器使用容量增加并且应用更大量负载的问题。因此,本发明的一个目的在于提供这样一种服务提供装置、系统、方法以及程序, 他们可以提高为了尽可能多地继续提供旧版本的服务所需要的计算器资源的效率,并且根据服务请求源的要求多重地提供多种版本服务(这就是以上任务)。
根据本发明,提供了一种服务提供装置,包括版本信息存储单元,在其中存储将要提供给每个用户的服务以及该服务的版本信息,该服务和该版本信息彼此相关联;默认类群存储单元,在其中存储将要提供给该用户的该服务中最旧版本的默认类群;更新版本专用类群存储单元,其存储用于在该最旧版本之后更新的各个版本各自的更新版本专用类群,该更新版本专用类群包括与该默认类群具有区别的差分类群;默认加载单元,其读出并且执行在该默认类群存储单元中存储的该默认类群;更新版本专用差分加载单元,其被提供给每个该更新版本专用类群并且其读出并且执行在该更新版本专用类群存储单元中存储的每个该更新版本专用类群;接收单元,其从该用户接收用于该服务的使用的请求;指定单元,其参考该版本信息存储单元,以指定适合于从其接收到该请求的用户的版本;服务对象管理单元,其通过使用该默认加载单元和与该更新版本专用类群的该指定版本相关联的该更新版本专用差分加载单元,生成适合于该用户的该指定版本的服务对象并且执行处理;以及提供单元,其根据执行该处理的结果,向该用户提供与该请求相匹配的服务。根据本发明,提供了一种服务提供系统,包括多个上述服务提供装置;以及负载分发装置,其根据该多个服务提供装置的负载状态,确定用于响应于用户的请求来提供服务的服务提供装置,并且指派该服务提供装置,并且该多个服务提供装置在该默认类群存储单元中存储该默认类群的相同版本,从而向该用户均等地提供使用中所应用的全部服务的全部版本,并且在更新版本专用类群存储单元中存储使用中所应用的更新版本专用类群的全部相同版本。根据本发明,提供了一种用于处理服务提供装置中的数据的方法,其中,该服务提供装置包括版本信息存储装置,在其中存储将要提供给每个用户的服务以及该服务的版本信息,该服务和该版本信息彼此相关联;默认类群存储装置,在其中存储将要提供给该用户的该服务中具有最旧版本的默认类群;更新版本专用类群存储装置,在其中存储用于在该最旧版本之后更新的各个版本各自的更新版本专用类群,该更新版本专用类群包括与该默认类群具有区别的差分类群;默认加载器,其读出并且执行在该默认类群存储装置中存储的该默认类群;更新版本专用差分加载器,其被提供给每个该更新版本专用类群并且其读出并且执行在该更新版本专用类群存储装置中存储的每个该更新版本专用类群;其中, 该用于处理数据的方法包括通过该服务提供装置把将要提供给每个用户的服务和该服务的版本信息存储到该版本信息存储装置中,该服务和该版本信息彼此相关联;通过该服务提供装置,将该默认类群存储到该默认类群存储装置中;通过该服务提供装置,对于在该最旧版本之后更新的每个版本,将该更新版本专用类群存储到该更新版本专用类群存储装置中;通过该服务提供装置,从该用户接收用于该服务的使用的请求;通过该服务提供装置, 参考该版本信息存储装置,以指定适合于从其接收到该请求的用户的版本;通过该服务提供装置,通过使用该默认加载器和与该更新版本专用类群的该指定版本相关联的该更新版本专用差分加载器,生成适合于该用户的该指定版本的服务对象并且执行处理;并且通过该服务提供装置,根据执行该处理的结果,向该用户提供与该请求相匹配的服务。根据本发明,提供了一种用于控制服务提供装置的计算机程序,该计算机包括版本信息存储装置,在其中存储将要提供给每个用户的服务以及该服务的版本信息,该服务和该版本信息彼此相关联;默认类群存储装置,在其中存储将要提供给该用户的该服务中具有最旧版本的默认类群;更新版本专用类群存储装置,在其中存储用于在该最旧版本之后更新的各个版本各自的更新版本专用类群,该更新版本专用类群包括与该默认类群具有区别的差分类群;默认加载器,其读出并且执行在该默认类群存储装置中存储的该默认类群;更新版本专用差分加载器,其被提供给每个该更新版本专用类群并且其读出并且执行在该更新版本专用类群存储装置中存储的每个该更新版本专用类群;并且,该计算机程序导致该计算机执行把将要提供给每个用户的服务和该服务的版本信息存储到该版本信息存储装置中的步骤,该服务和该版本信息彼此相关联;把该默认类群存储到该默认类群存储装置中的步骤;对于在最旧版本之后更新的每个版本,将该更新版本专用类群存储到该更新版本专用类群存储装置中的步骤;从该用户接收用于该服务的使用的请求的步骤;参考该版本信息存储装置以指定适合于从其接收到该请求的用户的版本的步骤;通过使用该默认加载器和与该更新版本专用类群的该指定版本相关联的该更新版本专用差分加载器, 生成适合于该用户的该指定版本的服务对象并且执行处理的步骤;以及,根据执行该处理的结果,向该用户提供与该请求相匹配的服务的步骤。另外,以上组件的任意随意组合以及本发明在方法、装置、系统、记录介质和计算机程序之间的任意变体实际也是本发明的方案。另外,本发明的组件不必彼此独立。例如,两个或者更多个组件可以形成为单个成员,一个组件可以与两个或者更多个成员构成在一起,一个组件可以是另一个组件的一部分或者一个组件的一部分可以与另一个组件的一部分重叠。此外,顺序描述了根据本发明的用于处理数据的方法和计算机程序的多个步骤。 然而,该描述中的顺序不限于实际的顺序。因此,当实现根据本发明的用于处理数据的方法和计算机程序时,在不影响该步骤的内容的前提下可以改变该步骤的先后顺序。此外,根据本发明的用于处理数据的方法和计算机程序的步骤不必彼此以不同的定时执行。可以在执行一个步骤的同时执行另一个步骤,或者该步骤的定时可以部分地或者完全地与另一个步骤的定时重叠。本发明提供了防止服务在服务更新时停止并且防止在用户侧发生不一致的服务提供装置、服务提供方法、用于处理服务提供装置中的数据的方法和计算机程序。


通过下文将要描述的示例性的实施方式和附图,前述目的以及其他目的、特征和优点将更显而易见。。图1是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。图2是示出了根据本发明的示例性的实施方式的服务提供装置的版本信息存储单元中所存储的版本信息管理表的结构的示例的图。图3是示出了根据本发明的示例性的实施方式的服务提供系统的操作的示例的流程图。图4是示出了在根据本发明的示例性的实施方式的服务提供系统中的服务对象操作中的操作的示例的流程图。图5是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。图6是示出了根据本发明的示例性的实施方式的服务提供装置的使用状况存储单元中存储的会话信息表的结构的示例的图。
图7是示出了根据本发明的示例性的实施方式的服务提供系统的操作的示例的流程图。图8是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。图9是示出了在根据本发明的示例性的实施方式的服务提供系统中的服务对象的版本删除时的操作的示例的流程图。图10是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。图11是示出了在根据本发明的示例性的实施方式的服务提供系统中的服务对象版本的添加时的注册操作的示例的流程图。图12是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。图13是示出了根据本发明的示例性的实施方式的用户请求数据的示例的图。图14是示出了根据本发明的示例性的实施方式的添加了会话的用户请求数据的示例的图。图15是示出了对根据本发明的示例性的实施方式的服务请求的服务响应的示例的图。图16是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。图17是示出了在根据本发明的示例性的实施方式的服务提供系统中的服务对象版本的添加时的注册操作的示例的流程图。图18是示出了根据本发明的示例性的实施方式的、根据方面描述的更新现有类的示例的图。图19是示出了包括服务提供装置的配置的示例的方框图,其中服务的不同版本被部署给该服务提供装置。
具体实施例方式(第一示例性实施方式)下文将使用附图来描述本发明的示例性的实施方式。另外,将对相同的组件赋予相同的附图标记并且在全部附图中不重复。图1是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。首先,在本说明书中“用户”总体而言意味着使用由服务提供装置所提供的服务的主体,并且还意味着人类、由人类使用的终端设备和程序以及无关人类的交互而操作的装置和程序。此外,“用户”可以是一群用户,该群用户囊括多个用户(如企业或企业的部门或单独的用户)。首先,将描述本发明的前提。根据本发明的服务对象包括给予多个类实体的实例。 该实例是从由加载器管理并且布置在存储器上的类生成的,从而使得服务对象可执行。由根据本发明的系统所提供的服务是由软件实现的一些功能并且不仅包括商业封装软件(如文字处理器和电子数据表)还包括所谓的组件(该组件通过调度表、项目管
1理、公告板、电子会议室和网络邮件发布来共享企业的信息)、商业软件(该商业软件用于金融和财会、用于使用在线存储来共享数据、在每种类型的商业或在每个企业中订制或者用于通用商业管理、金融管理、生产管理或者客户关系管理(CRM)客户端管理)以及具有高级科学计算(如计算机辅助设计(CAD)、结构计算、媒体处理(如图像处理和声音处理)以及流仿真)的库功能的软件。具体而言,根据本发明的系统对功能更新频繁并且被大量用户使用的网络应用服务有用。根据本发明的示例性的实施方式的服务提供装置200包括版本信息存储单元 (版本信息存储单元207),在其中存储将要提供给每个用户13的服务以及该服务的版本信息,该服务和该版本信息彼此相关联;默认类群存储单元(加载器管理单元210),在其中存储将要提供给该用户13的该服务中具有最旧版本的默认类群221 ;更新版本专用类群存储单元(加载器管理单元210),在其中存储用于在该最旧版本之后更新的各个版本各自的更新版本专用类群(更新类群231),该更新版本专用类群(更新类群231)包括与该默认类群 221具有区别的差分类群;默认加载单元(默认加载器22 ,其读出并且执行在该加载器管理单元210中存储的该默认类群221 ;更新版本专用差分加载单元(差分加载器23 ,其被提供给每个该更新类群231并且分别读出并且执行在该加载器管理单元210中存储的每个该更新类群231 ;接收单元(请求接收单元20 ,其从该用户13接收用于该服务的使用的请求;指定单元(加载器指定单元20 ,其参考该版本信息存储单元207,以指定适合于从其接收到该请求的用户13的版本;服务对象管理单元M1,其通过使用该默认加载器223 和与适用于该用户13的该更新类群231的该指定版本相关联的差分加载器233,生成适合于该用户13的该指定版本的服务对象并且执行处理;以及提供单元(服务提供单元对3), 其根据该处理的执行结果,向该用户13提供与该请求相匹配的服务。用户13(图中的用户Ul和U2)向服务提供装置200发送服务请求。在图1中,用户U2的用户数量、服务使用数量以及使用服务的频率多于用户U1。此外,用户数量、服务使用数量或使用服务的频率随着用户13而不同。服务提供装置200包括接口单元(I/F) 201、请求接收单元203、加载器指定单元 205、版本信息存储单元207、加载器管理单元210、服务对象管理单元Ml以及服务提供单元 243。 加载器管理单元210包括默认类群221、默认加载器223、至少一个差分加载器233 以及与各自的差分加载器233相关联的更新类群231。服务提供装置200可以是包括中央处理单元(CPU)、存储器、硬盘和通信装置(图中未显示)的计算机并且该计算机可以连接到输入装置(如键盘和鼠标)和输出装置(如显示器和打印机)。服务提供装置200可以通过计算机实现每个组件的每个功能,其中该计算机根据存储在例如记录介质(磁盘、半导体存储器、光盘等等)中的计算机程序来执行处理。另外,在每个下文的附图中没有显示与本发明的实质无关部分的配置。此外,由任意计算机(大体上包括CPU、内存、被加载到该内存中并且被设计为实现图1中所示的组件的程序、存储单元(如用于存储该程序的硬盘)以及网络连接接口) 的硬件和软件的任何组合实现服务提供装置的各个组件。显然,对于本领域的技术人员可以对用于实现该组件的方法和装置做出各种修改。下文所述的附图显示了功能块而不是硬件结构。此外,CPU将程序从硬盘读取到内存中并且执行该程序,从而使其能够实现每个单元的每个功能。根据示例性的实施方式的计算机程序是用于控制服务提供装置200的计算机程序,并且其被描述为导致计算机执行把将要提供给每个用户13的服务和该服务的版本信息存储到该版本信息存储单元207中的步骤;把该默认类群221存储到该加载器管理单元 210中的步骤;对于在最旧版本之后更新每个版本,将该更新类群231分别存储到该加载器管理单元210中的步骤;从该用户13接收用于该服务的使用的请求的步骤;参考该版本信息存储单元207以指定适合于从其接收到该请求的用户13的版本的步骤;通过使用与该更新类群231的该指定版本相关联的默认加载器223和差分加载器233,生成适合于该用户 13的该版本的服务对象并且执行处理的步骤;以及,根据该处理的执行结果,向该用户13 提供与该请求相匹配的服务的步骤。接口单元201通过网络25(如因特网、局域网(LAN)或广域网(WAN))与用户13 的终端或装置通信。请求接收单元203通过网络25从用户13接收请求,并且从接收请求的内容中提取各种信息片段以传递到服务对象管理单元Ml。更具体而言,请求接收单元 203从接收自用户13的请求内容提取用于指定请求方的信息、用于识别一系列相关的请求的标识(ID)、用于识别请求使用的服务和请求使用的服务的参数的信息,以传递到服务对象管理单元Ml。另外,在本发明的以下描述中将一系列相关的请求具体称为“会话”,并且将该会话的ID称为会话ID。服务对象管理单元241基于从请求接收单元203接收的参数,配置并且执行用于请求方的用户13的适当的服务对象。更具体而言,服务对象管理单元Ml将从请求接收单元203接收的参数传递到加载器指定单元205,并且请求用于用户13的加载器的合适的版本。此外,通过使用从加载器指定单元205返回的加载器,生成该服务对象。此外,将参数传递到该服务对象,并且执行处理以将结果传递到服务提供单元M3。根据来自服务对象管理单元241的请求,加载器指定单元205根据由每个用户使用的服务的版本指定适当的加载器。更具体而言,加载器指定单元205从版本信息存储单元207的版本信息管理表700,获得需要提供给请求方的用户13的版本信息。另外,当请求最旧版本时,仅获得默认加载器223而无需获得差分加载器233。版本信息存储单元207存储关于每个用户使用哪个版本的服务的信息。图2是示出了版本信息存储单元207中所存储的版本信息管理表700的结构的示例的图。如图2中所示的,版本信息管理表700包括用户ID栏701、服务名称栏702和版本号栏703,他们分别与用户13的用户ID、将要提供给用户13的服务以及将要提供的服务的版本号相关联。 另外,版本号栏703使得不仅能够通过具体版本指定服务的版本号而且还能够总是将其指定为最新版本。回到图1,服务提供单元243从服务对象管理单元241接收处理结果,以通过网络 25提供给用户13。这样,就有可能提供与用户13的请求相匹配的服务。在加载器管理单元210中,默认加载器223管理在该系统的全部用户13之间公共的默认类群221。差分加载器233包括多个差分加载器A到X,他们管理分别从不同版本的默认类群221得到的多个更新类群231。默认加载器223和全部差分加载器A到X具有父与子的关系,并且默认加载器223是全部差分加载器233之父。另外,差分加载器233的数量对应于需要提供的版本的数量,并且图1中的版本号(如V1.01、1.02*V2.00)以及加载器数量仅仅是示例性的。此外,差分加载器233的数量对应于需要提供的版本的数量,并且其不限于图1中的三个。通过默认加载器223将用于存储用于实现最旧版本服务所必要的类群的默认类群221加载到内存上。此外,通过差分加载器233,为各个版本加载更新类群231,该更新类群231包括较新版本而非最旧版本的更新部分的类。以下将描述根据如此配置的示例性的实施方式的服务提供系统的操作。图3是示出了根据本发明的示例性的实施方式的服务提供系统的操作的示例的流程图。以下将使用图1到图3来描述该操作。根据该根据示例性的实施方式的服务提供装置的数据处理方法,该用于处理数据的方法包括通过该服务提供装置200,把将要提供给每个用户13的服务和该服务的版本信息存储到该版本信息存储单元207中,该服务和该版本信息彼此相关联;通过该服务提供装置200,将该默认类群221存储到加载器管理单元210中;通过该服务提供装置200,对于在最旧版本之后更新每个版本,将该更新类群231存储到该加载器管理单元210中;通过该服务提供装置200,从该用户13接收用于该服务的使用的请求(步骤S101);通过该服务提供装置200,参考该版本信息存储单元207,以指定适合于从其接收到该请求的用户13的版本(步骤;通过该服务提供装置200,通过使用默认加载器223和与适用于用户13 的更新类群231的指定版本相关联的差分加载器233,生成适合于该用户13的该指定版本的服务对象并且执行处理(步骤S107和步骤S109);并且通过该服务提供装置200,根据该处理的执行结果,向该用户13提供与该请求相匹配的服务(步骤S111)。更具体而言,请求接收单元203首先从用户13接收请求数据(步骤S101)。然后, 请求接收单元203从接收的请求数据提取请求方的用户ID、服务或操作名称、请求使用的服务的参数,以传递到服务对象管理单元241 (步骤S10;3)。加载器指定单元205从服务对象管理单元241接收该参数,并且加载器指定单元205通过参考版本信息存储单元207,从用户ID获得需要提供给用户13的版本信息(步骤S105)。此外,加载器指定单元205访问加载器管理单元210,并且获得与获得的版本相匹配的其中一个差分加载器233和默认加载器223(步骤S107)。然后,加载器指定单元205 向服务对象管理单元241返回所获得的差分加载器233和默认加载器223。当向用户13提供最旧版本时,加载器指定单元205仅向服务对象管理单元241返回默认加载器223而不用选择差分加载器233。服务对象管理单元241从指定单元205接收差分加载器233和默认加载器223,并且通过使用获得的加载器,执行用户13所请求的服务对象(步骤S109)。服务对象管理单元241通过服务提供单元M3向用户13返回该执行结果(步骤S111),并且完成处理。这使得通过网络25将该服务从服务提供单元243提供给用户13。图4是示出了在根据本发明的示例性的实施方式的服务提供系统中的服务对象操作中的操作的示例的流程图。具体而言,将描述服务提供系统中的服务对象操作。在下文中将参考图4来描述在服务对象操作中如何使用加载器。在服务对象管理单元Ml中,在服务对象操作中在代码中执行类的参考(步骤S1501)。当对加载器中的加载类进行参考时,首先确认在从加载器指定单元205返回的差分加载器中是否存在对应的类(步骤S15(X3)。当存在对应的类(步骤S1503为“是”)时, 选择该对应的类作为实际被参考的加载类(步骤S15(^)。当不存在对应的类(步骤S1503 为“否”)或者从加载器指定单元205仅传递了默认加载器223(步骤S1503为“否”)时, 确认在默认加载器223中是否存在对应的类(步骤S1507)。当存在对应的类(步骤S1507为“是”)时,选择该对应的类作为实际被参考的加载类(步骤S1509)。当甚至该默认加载器223中也不存在对应的类(步骤S1507为“否”) 时,给出错误以表明不可能找到任何类并且执行异常处理(步骤S1511)。当在步骤S1505或步骤S1509中选择了被参考的加载类之后,将该加载类返回参考源的服务对象(步骤S15i;3)。根据该操作,有可能优先参考差分加载器中的加载类并且在不存在对应的类时参考默认加载器223中的类。如上所述,根据示例性的实施方式的服务提供系统可以根据服务请求方(用户 13)的要求,多重地提供服务的多个版本,并且为用户13有效地提供服务的合适版本。根据示例性的实施方式的服务提供装置200对于请求被提供的服务的每个版本仅维持更新类并且共享公共类,从而使其不必多重地读取一个类,并且可以降低提供服务的多个版本的成本。即,可以尽可能大地提高继续提供旧版本服务所需的计算器资源的效率(第二示例性实施例)图5是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。根据该示例性的实施方式的服务提供系统与以上示例性的实施方式的不同之处在于保持将要提供的服务的一致性,同时检查用户所使用的服务的使用状况。根据该示例性的实施方式的服务提供装置200可以解决在向多个用户提供与来自多个用户的不同的请求相匹配的服务的多个版本的情况中,在服务更新时服务变得与用户侧不一致的问题。以下将详细描述该问题。存在用户通过组合所提供的服务的一些功能来实现用户的应用的情况。在该情况中,服务的功能被顺序地调用并且被用于一系列用户侧应用处理中。这是因为,在该情况中,如果服务侧突然将版本更新为新版本而完全没有考虑用户侧应用处理,则在一系列处理的中以混合的方式调用功能的旧版本和该功能的新版本。根据该示例性的实施方式的服务提供系统可以通过维持要提供的服务的一致性同时检查该服务的用户的使用状况,解决在用户侧发生不一致的问题。根据该示例性的实施方式的服务提供装置300还包括使用状况存储单元301,其管理由用户13使用的服务的每个版本的使用状况;以及一致性管理单元303,其基于由使用状况存储单元301所管理的使用状况,为每个用户13确定使用的服务的版本,并且使用相同的版本直到用户13完成该版本服务的一系列使用为止,从而维持为每个用户13所提供的服务的一致性。更具体而言,根据该示例性的实施方式的服务提供装置300包括与根据以上图1 的示例性的实施方式的服务提供装置200相同的配置。根据该示例性的实施方式的服务提供装置300包括服务对象管理单元341以替代服务对象管理单元Ml,并且还包括使用状况存储单元301和一致性管理单元303。使用状况存储单元301管理由用户13使用的服务的每个版本的使用状况。图6是示出了使用状况存储单元301中存储的会话信息表500的结构的示例的图。如图6中所示的,会话信息表500包括用于标识会话的会话ID栏501、用户ID栏502、版本号栏503和到期日期栏504。回到图5,一致性管理单元303管理来自用户13的一组请求系列,基于由使用状况存储单元301所管理的使用状况,为每个用户13确定使用的服务的版本,并且使用相同的版本直到用户13完成该版本服务的一系列使用为止,从而维持为每个用户13所提供的服务的一致性。服务对象管理单元341从加载器指定单元205获得需要被提供给用户13的版本信息,并且基于用户ID和该版本信息,向一致性管理单元303查询在会话信息表500中是否存在对应的会话ID的记录。当在会话信息表500中存在对应的会话ID的记录时,服务对象管理单元341向加载器指定单元205请求该记录中记录的差分加载器233的任意一个版本和默认加载器223。当在会话信息表500中不存在对应的会话ID的记录时,服务对象管理单元341请求之前从加载器指定单元205返回的差分加载器233的任意一个版本和默认加载器223。以下将描述根据如此配置的示例性的实施方式的服务提供装置300的操作。图7 是示出了根据本发明的示例性的实施方式的服务提供系统的操作的示例的流程图。以下将使用图5到图7来描述该操作。用于处理根据该示例性的实施方式的服务提供装置中的数据的方法包括通过服务提供装置300,管理会话信息表500中由用户13使用的服务的每个版本的使用状况;通过服务提供装置300,基于会话信息表500中的使用状况,为每个用户13确定使用的服务的版本(步骤S1007到S1013);并且通过服务提供装置300,使用相同的版本直到用户13完成该版本服务的一系列使用为止,从而维持为每个用户13所提供的服务的一致性。更具体而言,根据该示例性的实施方式的服务提供装置300包括与图3中的、用于根据以上示例性的实施方式的服务提供装置200的流程图相同的步骤SlOl和步骤S105到步骤S111,并且还包括步骤S1003、步骤S1007、步骤S1009、步骤SllOl和步骤S1013。服务对象管理单元341从用户13接收请求数据,该请求数据是请求接收单元203 在步骤SlOl中接收的,并且从来自用户13的请求数据中提取用户ID、会话ID、服务或操作名称以及参数,以传递到加载器指定单元205(步骤S100;3)。此外,加载器指定单元205执行与图3中相同的处理(步骤S105),并且向服务对象管理单元341返回需要提供给用户 13的版本信息。然后,服务对象管理单元341向一致性管理单元303查询在会话信息表500中是否存在对应的会话ID的记录(步骤S1007)。当在由一致性管理单元303管理的会话信息中存在对应的会话ID的有效记录(步骤S1009为“是”)时,服务对象管理单元341将由以前从加载器指定单元205获得的并且需要被提供给用户13的服务的版本改为从一致性管理单元303获得的版本(步骤S10i;3)。这导致服务对象管理单元341向加载器指定单元 205请求该记录中记录的差分加载器233的任意一个版本和默认加载器223。另一方面,当不存在对应的会话ID的有效记录(步骤S1009为“否”)时,服务对象管理单元Ml向使用状况存储单元301的会话信息表500添加新的记录,并且添加利用步骤S1003中所获得的版本信息和会话ID来配置的记录以作为一致性信息(步骤S1011)。即,服务对象管理单元341向加载器指定单元205请求之前从加载器指定单元205返回的差分加载器233的任意一个版本和默认加载器223。另外,当请求最旧版本时,不返回差分加载器233而仅返回默认加载器223。此外,加载器指定单元205执行与图3中相同的处理(步骤S107),并且向服务对象管理单元241返回加载器指定单元205中指定的加载器。此外,服务对象管理单元Ml 执行与图3中相同的处理(步骤S109),并且服务提供单元243通过网络25向用户13提供服务(步骤S111)并且完成处理。如上所述,根据该示例性的实施方式的服务提供系统提供与以上示例性的实施方式相同的效果。此外,根据本发明的示例性的优点在于根据该示例性的实施方式的服务提供系统使得一致性管理单元303管理用户13的一系列请求并且即使在开始提供新版本服务之后仍然与该新版本服务并行地提供旧版本服务,从而使用户13有可能继续使用该用户13已使用过的旧版本服务直到完成一系列请求为止。因此,在用户13侧不大可能发生服务不一致。根据该示例性的实施方式的服务提供系统因此具有维持服务一致的功能。因此,当例如在提供给用户13的服务的使用的中途更新版本时或者当用户13改变版本指定时,能够防止不能维持一致性的问题。(第三示例性实施方式)图8是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。根据该示例性的实施方式的服务提供系统与以上示例性的实施方式的不同之处在于能够在不停止该系统的前提下去除未被使用的非必要的旧版本服务。根据该示例性的实施方式的服务提供装置400可以解决服务在服务更新时停止的问题。即,服务提供装置400可以解决若不停止服务则不能提供由多个用户所请求的服务的多个不同版本的问题。下文将详细描述该问题。该问题关系到与以上示例性的实施方式的问题的折中。 为了防止服务不一致,有必要例如在服务更新为新版本之前等待一系列已经正在进行操作的用户侧处理结束。另一方面,当在一系列用户侧应用处理期间另外接收到另一个用户侧应用的请求时,另一个处理开始。因此,有必要阻止新请求,直到处于操作中的全部处理完成为止。根据该示例性的实施方式的服务提供装置400还包括确定单元(服务部署管理单元401),其参考使用状况存储单元301和版本信息存储单元207,以确定该服务是否存在未被用户13使用的旧版本;以及删除单元(服务部署管理单元401),其在当确定该服务存在未被使用的旧版本时,从加载器管理单元210删除该服务的更新类群231的该旧版本并且删除对应的差分加载器233。更具体而言,服务提供装置400包括与以上图5中的示例性的实施方式的服务提供装置300相同的配置,并且还包括服务部署管理单元401。服务部署管理单元401管理用于配置服务的类的部署。更具体而言,服务部署管理单元401参考使用状况存储单元301和版本信息存储单元207,以确定是否存在未被任何用户13使用的旧版本服务。另外,当确定存在未被使用的旧版本服务时,服务部署管理单元401从加载器管理单元210删除该旧版本服务的更新类群231并且还从加载器管理单元 210删除对应的差分加载器233。
服务部署管理单元401可以例如有规律地控制做出以上关于是否能够删除旧版本服务的确定的定时,并且自动地删除在预定的时间周期内和之后的未被使用旧版本服务。可替换地,在具体版本服务没有用户的情况中,当通过操作接收单元(未显示)从服务提供装置400的管理员接收到删除该具体版本服务的请求时,服务部署管理单元401可以删除该具体的版本服务。以下将描述根据如此配置的示例性的实施方式的服务提供装置400的操作。图9 是示出了根据本发明的示例性的实施方式的服务提供系统的操作的示例的流程图。具体而言,图9示出了在服务对象的版本的删除时的操作的示例。下文中将使用图8和图9来描述该操作。用于处理根据该示例性的实施方式的服务提供装置400中的数据的方法包括通过服务提供装置400,参考会话信息表500和版本信息存储单元207,以确定该服务是否存在未被任何用户使用的旧版本(步骤S2101和步骤S210O ;当确定该服务存在未被使用的旧版本时,通过服务提供装置400从加载器管理单元210删除该服务的更新类群231的该旧版本并且还删除对应的差分加载器233(步骤S2113)。更具体而言,当存在有规律地删除版本的请求或者存在删除具体版本的请求时, 服务部署管理单元401向版本信息存储单元207查询是否存在该版本的用户13(步骤 S2101)。当存在用户13(步骤S2101为“是”)时,由于不能删除该版本,所以向请求方返回不能删除该版本的错误,并且执行异常处理(步骤S21(X3)以完成该处理。当不存在该版本的用户13(步骤S2101为“否”)时,服务部署管理单元401向一致性管理单元303查询是否还留有使用该版本的会话(步骤S21(^)。一致性管理单元303参考使用状况存储单元 301,并且向服务部署管理单元401返回是否留有用户13。当未留有用户13(步骤S2105为“否”)时,服务部署管理单元401在加载器指定单元205中从管理目标中去除该版本的差分加载器,并且从加载器管理单元210删除该差分加载器(即差分加载器233)和更新类群231(步骤S21i;3)并且完成处理。当留有使用对应的版本的会话(步骤S2105为“是”)时,服务部署管理单元401还向一致性管理单元 303查询该会话是否在到期日期之内(步骤S2107)。一致性管理单元303参考使用状况存储单元301,并且向服务对象管理单元241返回该会话是否在到期日期之内。如果该会话在到期日期之内(步骤S2107为“是”),则服务对象管理单元241等待一定的时间周期(步骤 S2109)然后返回S2105以重复处理。如果该会话在到期日期之后(步骤S2107为“否”), 则服务部署管理单元401使得一致性管理单元303从使用状况存储单元301的会话信息表 500中的会话信息中删除对应的会话的记录(步骤S2111)。此外,服务对象管理单元Ml 从加载器管理单元210删除差分加载器233和更新类群231 (步骤S211!3)并且完成处理。如上所述,利用根据该示例性的实施方式的服务提供装置400,服务部署管理单元 401可以在服务提供装置400的管理员对服务的管理之下,协同加载器指定单元205和一致性管理单元303,与用于提供服务的操作并行地部署新版本服务。如上所述,根据该示例性的实施方式的服务提供系统提供与以上示例性的实施方式相同的效果。此外,根据本发明的示例性的优点在于根据该示例性的实施方式的服务提供系统可以在不停止该系统的前提下去除未被使用的不必要的旧版本服务,并且可以因此防止不必要的旧版本服务浪费服务提供装置400的加载器管理单元210的内存使用容量,
1并且因此降低负载。根据本发明的另一个示例性的实施方式可以提供用于执行异常处理的方法,包括在图9的版本删除处理中,当在到期日期之内留有对应的会话时,在步骤S2109中返回错误而无需等待一定的时间周期。图9中的方法进入无限循环,直到不存在对应的会话或者该会话过了到期日期为止。当用于执行版本删除步骤的用户接口需要被实现为在向服务管理员显示留有处于到期日期之内的对应的会话之后即结束时,根据该示例性的实施方式的步骤是有效的。(第四示例性实施方式)图10是示出了根据本发明的示例性的实施方式的服务提供系统的两置的方框图。根据该示例性的实施方式的服务提供系统与以上示例性的实施方式的不同之处在于能够在不停止系统的前提下添加并且更新新版本服务。根据该示例性的实施方式的服务提供装置800还包括更新接收单元803,其接收差分类群的最近更新的新版本;以及添加单元(服务部署管理单元801),其对更新类群231 的最后版本添加差分类群的、接收的新版本,以形成并且在加载器管理单元210中存储更新类群231的该新版本,并且添加差分加载器233的、与更新类群231的该新版本相关联的新版本。此外,服务提供装置800还包括指定接收单元(请求接收单元20 ,其从用户13 接收服务指定以及该服务的、该用户意图使用的版本;以及注册单元(服务部署管理单元 801),其在与用户13相关联的版本信息存储单元207中注册由用户13所指定的服务和该版本服务的版本信息。更具体而言,服务提供装置800包括与以上图5中的示例性的实施方式的服务提供装置300相同的配置,并且还包括服务部署管理单元801和更新接收单元803。替代地, 服务提供装置800可以包括与服务提供装置400相同的配置,除了在图8中用服务部署管理单元801来代替根据以上示例性的实施方式的服务提供装置400的服务部署管理单元 401。此外,除了上述功能之外,服务部署管理单元801还可以具有与服务部署管理单元401 相同的功能。更新接收单元803接收差分类群的、最近由管理员更新的具体新版本的添加/注册请求。服务部署管理单元801对更新类群231的最后版本添加与由更新接收单元803接收的该添加/注册请求相对应的差分类群新版本,以形成并且在加载器管理单元210中存储更新类231的该新版本,并且向加载器管理单元210添加差分加载器233的、与更新类群 231的该新版本相关联的新版本。此外,服务部署管理单元801在与用户13相关联的版本信息存储单元207中注册并且存储该服务和由该用户指定给该服务的版本的版本信息。更具体而言,服务部署管理单元801根据该添加/注册请求生成新的差分加载器, 并且此后在加载器管理单元210中与版本号一起注册该新的差分加载器。此外,服务部署管理单元801读取该需要被部署给该新的差分加载器的更新类群并且将其加载到加载器管理单元210中。此外,当请求接收单元203从用户13接收到使用新版本服务的请求时,服务部署管理单元801基于该使用请求,获得用户13的用户ID,用户13意图使用的服务的名称和版本号,并且将他们彼此相关联地注册在图2的版本信息存储单元207中。以下将描述根据如此配置的示例性的实施方式的服务提供装置800的操作。图11 是示出了根据本发明的示例性的实施方式的服务提供系统的操作的示例的流程图。具体而言,图11示出了在服务对象的版本的添加时的注册操作的示例。下文中将使用图10和图 11来描述该操作。根据该示例性的实施方式的用于处理服务提供装置中的数据的方法包括通过该服务提供装置800,接收该差分类群的最近更新的新版本(步骤S2001);并且通过该服务提供装置800,向该更新类群231的最后版本添加差分类群的、接收的新版本,以形成并且在该加载器管理单元210中存储该更新类群231的该新版本,并且向加载器管理单元210添加该差分加载器的、与该更新类群231的该新版本相关联的新版本。用于处理根据该示例性的实施方式的服务提供装置中的数据的方法包括通过该服务提供装置800,从用户13接收服务指定以及该服务的、该用户意图使用的版本(步骤 S2007);并且通过该服务提供装置800,在与该用户13相关联的版本信息存储单元207中注册由该用户13所指定的该服务和该服务的版本的版本信息(步骤S2009)。更具体而言,当更新接收单元803接收到具体版本的添加请求(步骤S2001为 “是”)时,服务部署管理单元801生成新差分加载器并且在该加载器管理单元210中与新差分加载器的版本号一起注册新差分加载器(步骤S200;3)。此外,服务部署管理单元801 读取将需要被部署给该新差分加载器的更新类群并且将其加载到加载器管理单元210中 (步骤S20(^)。此外,当请求接收单元203从用户13接收到使用新版本服务的请求(步骤 S2007为“是”)时,服务部署管理单元801基于该使用请求,获得用户13的用户ID,用户 13意图使用的服务的名称和版本号,并且将他们彼此相关联地注册在图2的版本信息存储单元207中(步骤S2009)。如上所述,利用根据该示例性的实施方式的服务提供装置800,服务部署管理单元 801可以在服务提供装置800的管理员的服务的管理之下,协同加载器指定单元205和一致性管理单元303,与用于提供服务的操作并行地取消旧版本服务的部署并且删除由一致性管理单元303所管理的旧记录。如上所述,根据该示例性的实施方式的服务提供系统提供与以上示例性的实施方式相同的效果。此外,根据本发明的示例性的优点在于根据该示例性的实施方式的服务提供系统可以在不等待旧版本服务结束的前提下开始新版本,并且在不替换整个系统的前提下通过添加差分加载器的新版本来更新服务,从而使其能够在继续该服务的同时更新该服务。这样,服务提供装置800就可以在不停止系统的前提下添加最近更新的服务的新版本。(第五示例性实施方式)图12是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。根据该示例性的实施方式的服务提供系统与以上示例性的实施方式的不同之处在于包括多个服务提供装置。在该示例性的实施方式中,该多个服务提供装置包括相同的配置,并且包括用于提供具有相同版本配置的服务的加载器和类群。根据该示例性的实施方式的服务提供系统1000可以解决当用户请求继续获得该服务的旧版本时有可能以提供服务的连续性为代价的问题。下文将详细讨论该问题。通过向旧版本分配专用硬件和虚拟OS来进行操作的常规方法需要特定硬件资源来提供旧版本。需要特定硬件资源的其中一个原因在于,图19 中所示的背景技术的方法需要对一个旧版本服务确保至少一个服务提供装置。因此,当使用该服务的旧版本的用户的数量总体上减少时,难以细致地根据使用数量来调整计算器资源。此外,在需要继续提供多个版本的情况下还有另一个原因。另一个原因是在每个服务提供装置中,版本彼此轻微不同的服务类群的管理变得难以处理,从而增加了管理成本。根据该示例性的实施方式的服务提供系统1000包括负载分发装置(负载分发器 27),其依据根据以上示例性的实施方式的多个服务提供装置800(A1、A2、……、和An)的负载状态,确定用于响应于用户13的请求来提供服务的服务提供装置800,并且分配该服务提供装置800。多个服务提供装置800在默认类群存储单元(图10的加载器管理单元 210)中存储默认类群221(图10)的相同版本,从而向该用户均等地提供使用中所应用的全部服务的全部版本,并且在更新版本专用类群存储单元(图10的加载器管理单元210)中存储使用中所应用的更新版本专用类群(图10的更新类群231)的全部相同版本中的每一个。根据该配置,由于多个服务提供装置包括相同的配置,所以即使当用户或负载的数量随着服务而变化时,也不必预先考虑负载。因此,与向各自的服务或版本独立指派服务器的另一种情况相比,可以更容易地构造系统。这导致能够在不停止系统的前提下添加或替换服务器,从而使其易于实现负载分发。用户13 (图12中的用户Ul和U2)通过负载分发器27向至少一个服务提供装置 800(多个服务提供装置Al、A2、……、和An)发送服务请求。在由服务对象执行适当的处理之后,服务提供装置800然后向用户13返回处理结果。为了处理来自用户13的大量服务请求,负载分发器27与多个服务提供装置800相连接并且向多个服务提供装置800适当地指派处理。当服务提供装置800具有非常高的性能时或者当来自用户13的服务请求没那么多时,还有可能存在仅有一个服务提供装置800处理来在全部用户的服务请求而无需负载分发器27的情况。另外,可以用常规装置来配置负载分发器27,并且这与本发明的本质无关因此不再赘述。此外,在示例性的实施方式中,多个服务提供装置800以相同的方式删除旧版本服务或者注册新版本服务,并且维持彼此相同的配置。根据本发明的示例性的优点在于根据该示例性的实施方式的服务提供系统 1000可以提高继续提供旧版本服务所需要的计算器资源的效率。即,能够降低提供服务的多个版本的成本。这是因为可以仅维持被请求的服务的每个版本的更新类并且可以共享公共类,从而使其不必多重地读取类此外,由于一个装置可以提供服务的多个版本,所以即使当使用具体版本的用户的数量较小时,该装置也可以操作为用于提供另一个版本的服务提供装置。因此,使用硬件资源的效率变高了。即,对每个版本准备装置导致每个装置的资源的使用状况根据各自版本的使用状况而变化。结果,变得有必要调整装置的部署。然而,根据示例性的实施方式的服务提供系统通过预测用户的使用状况,不必做计划。此外,这也是为什么可以解决可以用相同的配置来操作任意服务提供装置的问题从而使其能够降低他们的操作成本的原因之
ο(第六示例性实施方式)图16是示出了根据本发明的示例性的实施方式的服务提供系统的配置的方框图。根据该示例性的实施方式的服务提供系统与以上图10中的第四示例性的实施方式的不同之处在于当用于横向改变服务的设置被指定给新版本服务时,能够在不停止该系统的前提下添加并且更新新版本。另外,根据图16中的示例性的实施方式的服务提供系统还适用于以上根据图8和图12中的示例性的实施方式的服务提供系统。在第四示例性实施方式中,假设当用该第四实施方式接收新版本服务时,由更新接收单元803接收更新类群的新版本。存在诸如面向方面编程(AOP)之类的技术,其中AOP 通过改为在服务中指定用于横向改变的设置而非明确地给出要更新的类群,自动更新对应的类。该技术允许统一改变具有恒定特性的一部分程序代码,并且允许动态直接改变当前执行的二进制位而无需重新编译。在下文中,将服务中的横向改变称为“方面(Aspect)”, 并且将这些改变的设置称为“方面定义”。当使用诸如AOP的技术来动态更新服务时,方面注入机制将该方面应用于对应的类,该类被加载到类加载器。基本上,将用于配置服务的全部类重新加载到类加载器上,以便随后应用该方面。然而,这导致全部类被多重地加载到差分加载器上的事实,从而使其效率低下。因此,在该示例性的实施方式中提供了这样一种系统,该系统在服务(如Α0Ρ)的新版本的部署时,注册该服务的横向改变的点以作为机制。因此,即使当由于全部自动更新多个类的那种服务的服务更新而注册新版本时,该系统也可以有效地提供服务而无需停止其他服务。如图16中所示的,根据该示例性的实施方式的服务提供系统包括服务提供装置 900以代替图10中的服务提供装置800。根据该示例性的实施方式的服务提供装置900还包括更新接收单元803,其接收这样一种设置(方面定义),在该设置中描述了新版本在全部服务范围内的改变规则;更新类提取单元901,其仅提取将要基于该设置而改变的目标的类;以及添加单元(服务部署管理单元801),其在仅对将该要改变的目标的提取类施以改变的同时,对该更新版本专用类群(差分类群231)的最后版本添加该改变的类群(差分类群),以形成并且在该更新版本专用类群存储单元(加载器管理单元210)中存储该更新版本专用类群(差分类群231)的该新版本,并且添加该更新版本专用差分加载单元(差分加载器23 的、与该更新版本专用类群(差分类群231)的该新版本相关联的新版本。更具体而言,根据该示例性的实施方式的服务提供装置900包括与图10中的服务提供装置800相同的配置,并且还包括更新类提取单元901和方面注入机制902。在根据的示例性的实施方式的服务提供装置900中,更新接收单元803根据方面定义,接收服务更新。当更新接收单元803根据方面定义接收到服务更新时,服务部署管理单元801向更新类提取单元901查询需要更新当前使用中的服务的哪个类。此外,服务部署管理单元801指示加载器管理单元210仅将该更新的目标类加载到差分加载器的最近生成的新版本中。更新类提取单元901检查由更新接收单元803所接收的方面定义,以根据来自服务部署管理单元801的查询,检查需要更新当前使用中的服务的哪个类,并且提取用于该更新的目标类,以返回服务部署管理单元801。即,在服务更新时,更新类提取单元901预先检查在改变点将要更新哪个类。加载器管理单元210将由服务部署管理单元801所指定的更新目标类加载到新的差分加载器上。在该情况中,方面注入机制902同时工作,以指示每个差分加载器233基于注册的方面定义来施以改变,以更新目标类。即,加载器管理单元210根据在更新类提取单元901将提取的对应的类读取到差分加载器的更新版本上时注册的改变点来更新类。通过这么做,即使新版本是在全部服务(如Α0Ρ)的服务更新之后注册的,也能够有效地提供服务而无需停止任何其他服务。接下来,将详细描述在根据示例性的实施方式的服务提供系统中,在服务对象的版本添加时的全部注册操作。图17是示出了在根据本发明的示例性的实施方式的服务提供系统中的服务对象版本的添加时的注册操作的示例的流程图。下文中将使用图16和17 来描述该操作。根据该示例性的实施方式的用于处理服务提供装置中的数据的方法包括通过服务提供装置900,接收这样一种设置(方面定义),在该设置中描述了新版本在全部服务范围内的改变规则(步骤S2201为“是”)。此外,服务部署管理单元801向更新类提取单元 901传递注册的方面定义。然后,更新类提取单元901仅提取作为方面(在该方面中描述了要添加的版本的改变的内容)的应用目标的类,以将其返回服务部署管理单元801(步骤 S22(^)。当未接收到新版本(步骤S2201为“否”)时,步骤前进到步骤S2205。服务部署管理单元801生成这样一种差分加载器作为用于新版本的类加载器,其中这种差分加载器仅将该方面应用目标类群加载到加载器管理单元210(步骤S220;3)。此外,服务部署管理单元801将以上方面应用目标类群加载到该新的差分加载器,同时在方面注入机制902中施以该方面(步骤S2204)。根据该示例性的实施方式的用于处理服务提供装置中的数据的方法还包括通过该服务提供装置900,从用户13接收服务和该服务的、所述用户意图使用的服务的版本的指定(步骤S2205为“是”),并且通过服务提供装置900,在与该用户相关联的版本信息存储单元207中,注册由用户13指定的该服务和该服务的版本的版本信息(步骤S2206)。当未接收到使用时(步骤S2205为“否”),该流程结束。[示例]将参考图2、6和12到15,通过使用具体示例,描述用于实现本发明的最佳模式的操作。同时,下文是一个示例,并且操作和数据格式绝非意味着仅限于此。使用根据以上示例性的实施方式的服务提供系统1000作为示例来描述本示例。首先,图13示出了来自用户的初始请求数据的示例。在该示例中,以可扩展标记语言(XML和http://WWW. w3. org/TR/xml)的形式来描述请求数据600,并且使用诸如超文本传输协议(HTTP和REC2616)之类的协议从用户发送请求数据600。基于该请求数据,服务提供装置800为用户生成适当服务对象。该请求数据包括用户ID 602和服务标识部分 603,在用户ID 602中指定了用户ID并且在服务标识部分603中分别将服务和操作指定为 “MyAnalyze”和”Invoke”。该请求数据还包括参数指定部分604,在参数指定部分604中指定用于该服务的参数。假设该请求数据600是一系列服务请求中的第一个,在该数据中没有创建会话或没有会话信息。服务提供装置800的服务对象管理单元341基于请求数据600查询版本信息存储单元207,以确定使用该服务的哪个版本。利用图2中的版本信息存储单元207的示例,在版本信息管理表700中搜索用户ID “al234”和服务“MyAnalyze”的记录,以便使得随后在对应的版本号栏中返回版本号“VI. 05”。如果不存在对应的记录,那么返回在该时间点上的最新版本号。服务对象管理单元341从加载器指定单元205获得用于“VI. 05”的差分加载器, 并且生成“MyAnalyze”的服务对象。此外,将自变量“xxx”和“yyy”给予该服务对象的 “Invoke”操作并且执行该”Invoke”操作以向用户返回该执行的结果。图15示出了响应的示例。返回的响应650包括用于继续一系列后续服务的会话ID 651和服务处理结果652。 在该示例中,返回处理已被接收的结果。接下来,图14示出了当继续一系列服务时请求数据的示例。该请求数据610使得执行“getResult”操作,以获得对“MyAnalyze”服务和” hvoke”操作进行处理的结果。请求数据610包括会话信息613,从而服务对象管理单元341使得一致性管理单元303向会话信息表500搜索对应于会话“20081114-3245”的版本信息。图6示出了在由一致性管理单元303所管理的会话信息表500中所存储的会话信息。一致性管理单元303向该会话信息表500搜索与该请求数据中所包括的会话ID 相对应的记录,并且基于该对应的记录的到期日期栏504的值,确定该记录的信息是否是有效的。在该情况中,该记录是有效的,并且因此,返回版本号栏503中的值“VI. 05”。服务对象管理单元341从加载器指定单元205获得用于该返回的版本号“VI. 05”的差分加载器,并且执行“MyAnalyze”服务和” Invoke”操作的处理,然后向用户返回该处理的结果。当另外请求服务时,不向例如请求数据600附加会话信息。这使其能够根据在版本信息存储单元207中预先存储的版本或者最新版本的服务对象,执行该服务。当该服务请求是一系列服务请求的一部分时,在会话信息中包括会话ID,会话ID用于指示与一系列服务相同。这样,在获得该会话信息时所提供的版本的服务得以继续,并且在该会话有效时不丢弃该版本的加载器。服务部署管理单元801有规律地访问一致性管理单元303,向会话信息表500的会话信息搜索这样一种记录然后从会话信息表500删除这些记录,其中在该记录中到期日期栏504的值指示当前时间之前的时间。接下来将使用图16和18描述根据本示例的新版本服务的部署的示例。根据本发明的新版本服务被部署为用于由管理员通过更新接收单元803加载到默认加载器223上的默认类群221的类的方面。图 18 中的方面定义 1200 的示例是AspectJ(http"www· eclipse, org/aspectj/) 中的描述的示例。当该方面定义1200被部署为用于新版本服务的更新内容时,更新类提取单元901分析方面定义1200,并且提取内容将要更新的MyAnalyze类(默认类)1100。接下来,加载器管理单元210生成差分加载器的新版本,其仅加载该MyAnalyze类1100。方面注入机制902将方面定义1200施以MyAnalyze类1100,以便更新已施以该方面的MyAnalyze 类1101。然后,将施以方面的MyAnalyze类1101加载到以上差分加载器中。仅预先提取需要施以该方面的类,并且在专用类加载器中将该方面施以该类,从而能够在不停止全部服务的前提下使得单个服务提供装置提供这样一种服务,其中该方面的各种版本都分别被施以于该服务。虽然已经参考以上附图描述本发明的示例性的实施方式,但是这些示例性的实施方式是本发明示例并且可以使用除了以上之外的各种配置。虽然通过参考示例性的实施方式来具体显示并且描述本发明,但是本发明不限于这些实施方式。本领域的技术人员将理解,在不脱离如权利要求所定义的本发明的精神和范围的前提下,可以对形式和细节作出各种修改。另外,利用本发明,关于用户的信息是合法获得并且使用的。本申请基于并且要求2009年3月30日递交的日本专利申请第2009-083117号以及2010年2月沈日递交的日本专利申请第2010-41474号的优先权,通过参考的方式将以上申请的公开整体并入本文。
权利要求
1.一种服务提供装置,包括版本信息存储单元,在其中存储将要提供给每个用户的服务以及所述服务的版本信息,所述服务和所述版本信息彼此相关联;默认类群存储单元,在其中存储将要提供给所述用户的所述服务之中具有最旧版本的默认类群;更新版本专用类群存储单元,在其中存储用于在所述最旧版本之后更新的各个版本各自的更新版本专用类群,所述更新版本专用类群包括与所述默认类群具有区别的差分类群;默认加载单元,其读出并且执行在所述默认类群存储单元中存储的所述默认类群; 更新版本专用差分加载单元,其被提供给每个所述更新版本专用类群并且其读出并且执行在所述更新版本专用类群存储单元中存储的每个所述更新版本专用类群; 接收单元,其从所述用户接收用于所述服务的使用的请求;指定单元,其参考所述版本信息存储单元,以指定适合于从其接收到所述请求的用户的版本;服务对象管理单元,其通过使用所述默认加载单元和与所述更新版本专用类群的所述指定版本相关联的所述更新版本专用差分加载单元,生成适合于所述用户的所述指定版本的服务对象并且执行处理;以及提供单元,其根据执行所述处理的结果,向所述用户提供与所述请求相匹配的服务。
2.如权利要求1所述的服务提供装置,还包括使用状况管理单元,其管理由所述用户使用的所述服务的每个版本的使用状况;以及一致性管理单元,其基于由所述使用状况管理单元所管理的所述使用状况,为每个用户确定使用的所述服务的版本,并且使用相同的版本直到所述用户完成所述服务的所述版本的一系列使用为止,从而维持为每个所述用户所提供的所述服务的一致性。
3.如权利要求2所述的服务提供装置,还包括确定单元,其参考所述使用状况管理单元和所述版本信息存储单元,以确定所述服务是否存在未被任何所述用户使用的旧版本;以及删除单元,其在当确定所述服务存在未被使用的旧版本时,从所述更新版本专用类群存储单元删除所述服务的所述更新版本专用类群的所述旧版本,并且删除对应的更新版本专用差分加载单元。
4.如权利要求2或3所述的服务提供装置,还包括更新接收单元,其接收所述差分类群的最近更新的新版本;以及添加单元,其对所述更新版本专用类群的最后版本添加差分类群的、接收的新版本,以形成并且在所述更新版本专用类群存储单元中存储所述更新版本专用类群的所述新版本, 并且添加所述更新版本专用差分加载单元的、与所述更新版本专用类群的所述新版本相关联的新版本。
5.如权利要求2或3所述的服务提供装置,还包括更新接收单元,其接收这样一种设置,在所述设置中描述了新版本在全部服务范围内的改变规则;更新类提取单元,其仅提取将要基于所述设置而改变的目标的类;以及添加单元,其在仅对将所述要改变的目标的提取类施以改变的同时,向所述更新版本专用类群的最后版本添加所述改变的类群,以形成并且在所述更新版本专用类群存储单元中存储所述更新版本专用类群的所述新版本,并且添加所述更新版本专用差分加载单元的、与所述更新版本专用类群的所述新版本相关联的新版本。
6.如权利要求1到5中的任意一个所述的服务提供装置,还包括指定接收单元,其从所述用户接收服务的指定以及所述服务的、所述用户意图使用的版本;以及注册单元,其在与所述用户相关联的所述版本信息存储单元中注册由所述用户所指定的所述服务和所述服务的所述版本的版本信息。
7.一种服务提供系统,包括多个根据权利要求1到6中的任意一个所述的服务提供装置;以及负载分发装置,其根据所述多个服务提供装置的负载状态,确定用于响应于用户的请求来提供服务的服务提供装置,并且指派所述服务提供装置,其中,所述多个服务提供装置在所述默认类群存储单元中存储所述默认类群的相同版本,从而向所述用户均等地提供使用中所应用的全部服务的全部版本,并且在所述更新版本专用类群存储单元中存储使用中所应用的所述更新版本专用类群的全部相同版本。
8.一种用于处理服务提供装置中的数据的方法,其中 所述服务提供装置包括版本信息存储装置,在其中存储将要提供给每个用户的服务以及所述服务的版本信息,所述服务和所述版本信息彼此相关联;默认类群存储装置,在其中存储将要提供给所述用户的所述服务中具有最旧版本的默认类群;更新版本专用类群存储装置,在其中存储用于在所述最旧版本之后更新的各个版本各自的更新版本专用类群,所述更新版本专用类群包括与所述默认类群具有区别的差分类群;默认加载器,其读出并且执行在所述默认类群存储装置中存储的所述默认类群; 更新版本专用差分加载器,其被提供给每个所述更新版本专用类群,并且其读出并且执行在所述更新版本专用类群存储装置中存储的每个所述更新版本专用类群;其中 所述用于处理数据的方法包括通过所述服务提供装置把将要提供给每个用户的服务和所述服务的版本信息存储到所述版本信息存储装置中,所述服务和所述版本信息彼此相关联;通过所述服务提供装置,将所述默认类群存储到所述默认类群存储装置中; 通过所述服务提供装置,对于在所述最旧版本之后更新的每个版本,将所述更新版本专用类群存储到所述更新版本专用类群存储装置中;通过所述服务提供装置,从所述用户接收用于所述服务的使用的请求; 通过所述服务提供装置,参考所述版本信息存储单元,以指定适合于从其接收到所述请求的所述用户的版本;通过所述服务提供装置,通过使用所述默认加载器和与所述更新版本专用类群的所述指定版本相关联的所述更新版本专用差分加载器,生成适合于所述用户的所述指定版本的服务对象并且执行处理;并且通过所述服务提供装置,根据执行所述处理的结果,向所述用户提供与所述请求相匹配的所述服务。
9.如权利要求8所述的用于处理服务提供装置中的数据的方法,其中所述服务提供装置还包括存储装置,在所述存储装置中存储使用状况管理表,所述使用状况管理表管理由所述用户使用的所述服务的每个版本的使用状况,其中所述用于处理数据的方法包括通过所述服务提供装置,管理在所述使用状况管理表中由所述用户使用的所述服务的每个版本的使用状况;通过所述服务提供装置,基于所述使用状况管理表中的所述使用状况,为每个用户确定使用的所述服务的版本;并且使用相同的版本直到所述用户完成所述服务的所述版本的一系列使用为止,从而维持为每个所述用户所提供的所述服务的一致性。
10.如权利要求9所述的用于处理服务提供装置中的数据的方法,其中,所述用于处理数据的方法包括通过所述服务提供装置,参考所述使用状况管理表和所述版本信息存储装置,以确定所述服务是否存在未被任何所述用户使用的旧版本;并且通过所述服务提供装置,当确定所述服务存在未被使用的旧版本时,从所述更新版本专用类群存储装置删除所述服务的所述更新版本专用类群的所述旧版本,并且删除对应的更新版本专用差分加载器。
11.如权利要求9或10所述的用于处理服务提供装置中的数据的方法,其中,所述用于处理数据的方法包括通过所述服务提供装置,接收所述差分类群的最近更新的新版本;并且通过所述服务提供装置,向所述更新版本专用类群的最后版本添加所述差分类群的接收的新版本,以形成并且在所述更新版本专用类群存储装置中存储所述更新版本专用类群的新版本,并且添加所述更新版本专用差分加载器的、与所述更新版本专用类群的所述新版本相关联的新版本。
12.如权利要求9或10所述的用于处理服务提供装置中的数据的方法,其中,所述用于处理数据的方法包括通过所述服务提供装置,接收这样一种设置,在所述设置中描述了最近更新的新版本在全部服务范围内的改变规则;通过所述服务提供装置,仅提取将要基于接收的设置而改变的目标的类;并且通过所述服务提供装置,向所述更新版本专用类群的最后版本添加所述改变的类群, 同时仅对将所述要改变的目标的提取类施以改变,以形成并且在所述更新版本专用类群存储装置中存储所述更新版本专用类群的新版本,并且添加所述更新版本专用差分加载器的、与所述更新版本专用类群的新版本相关联的新版本。
13.如权利要求8到12中的任意一个所述的用于处理服务提供装置中的数据的方法, 其中,所述用于处理数据的方法包括通过所述服务提供装置,从所述用户接收服务和所述服务的、所述用户意图使用的版本的指定;并且通过所述服务提供装置,在与所述用户相关联的所述版本信息存储装置中,注册由所述用户指定的所述服务和所述服务的所述版本的版本信息。
14.一种用于控制服务提供装置的计算机程序,其中所述计算机包括版本信息存储装置,在其中存储将要提供给每个用户的服务以及所述服务的版本信息,所述服务和所述版本信息彼此相关联;默认类群存储装置,在其中存储将要提供给所述用户的所述服务中具有最旧版本的默认类群;更新版本专用类群存储装置,在其中存储用于在所述最旧版本之后更新的各个版本各自的更新版本专用类群,所述更新版本专用类群包括与所述默认类群具有区别的差分类群;默认加载器,其读出并且执行在所述默认类群存储装置中存储的所述默认类群;更新版本专用差分加载器,其被提供给每个所述更新版本专用类群并且其读出并且执行在所述更新版本专用类群存储装置中存储的每个所述更新版本专用类群;并且所述计算机程序导致所述计算机执行把将要提供给每个所述用户的服务和所述服务的版本信息存储到所述版本信息存储装置中的步骤,所述服务和所述版本信息彼此相关联;把所述默认类群存储到所述默认类群存储装置中的步骤;对于在所述最旧版本之后更新的每个版本,将所述更新版本专用类群存储到所述更新版本专用类群存储装置中的步骤;从所述用户接收用于所述服务的使用的请求的步骤;参考所述版本信息存储装置以指定适合于从其接收到所述请求的用户的版本的步骤;通过使用所述默认加载器和与所述更新版本专用类群的所述指定版本相关联的所述更新版本专用差分加载器,生成适合于所述用户的所述指定版本的服务对象并且执行处理的步骤;以及根据执行所述处理的结果,向所述用户提供与所述请求相匹配的所述服务的步骤。
15.如权利要求14所述的计算机程序,其中,所述计算机还包括存储装置,在所述存储装置中存储使用状况管理表,所述使用状况管理表管理由所述用户使用的所述服务的每个版本的使用状况,并且所述计算机程序导致所述计算机进一步执行管理在所述使用状况管理表中由所述用户使用的所述服务的每个版本的使用状况的步骤;基于所述使用状况管理表中的所述使用状况,为每个用户确定使用的所述服务的版本的步骤;以及使用相同的版本直到所述用户完成所述服务的所述版本的一系列使用为止,从而维持为每个所述用户所提供的所述服务的一致性的步骤。
16.如权利要求15所述的计算机程序,导致所述计算机进一步执行参考所述使用状况管理表和所述版本信息存储装置,以确定所述服务是否存在未被任何所述用户使用的旧版本的步骤;以及当确定所述服务存在未被使用的旧版本时,从所述更新版本专用类群存储装置删除所述服务的所述更新版本专用类群的所述旧版本,并且删除对应的更新版本专用差分加载器的步骤。
17.如权利要求15或16所述的计算机程序,导致所述计算机进一步执行 接收所述差分类群的最近更新的新版本的步骤;以及向所述更新版本专用类群的最后版本添加所述差分类群的接收的新版本,以形成并且在所述更新版本专用类群存储装置中存储所述更新版本专用类群的新版本的步骤;以及添加所述更新版本专用差分加载器的、与所述更新版本专用类群的所述新版本相关联的新版本的步骤。
18.如权利要求15或16所述的计算机程序,导致所述计算机进一步执行接收这样一种设置的步骤,在所述设置中描述了最近更新的新版本在全部服务范围内的改变规则;仅提取将要基于接收的设置而改变的目标的类的步骤;以及向所述更新版本专用类群的最后版本添加所述改变的类群,同时仅对将所述要改变的目标的提取类施以改变,以形成并且在所述更新版本专用类群存储装置中存储所述更新版本专用类群的新版本的步骤;以及添加所述更新版本专用差分加载器的、与所述更新版本专用类群的新版本相关联的新版本的步骤。
19.如权利要求14到18中的任意一个所述的计算机程序,导致所述计算机进一步执行从所述用户接收服务的指定和所述服务的、所述用户意图使用的版本的步骤;以及在与所述用户相关联的所述版本信息存储装置中,注册由所述用户指定的所述服务和所述服务的所述版本的版本信息的步骤。
全文摘要
一种服务提供装置(200)包括版本信息存储单元(207),用于存储将要提供给每个用户(13)的服务和该服务的版本信息;加载器管理单元(210),用于存储默认类群(221)和用于各个版本各自的更新类群(231);默认加载器(223),用于从加载器管理单元(210)读出并且执行默认类群(221);差分加载器(233),用于读出并且执行更新类群(231);接收单元(203),用于接收服务使用请求;指定单元(205),用于参考版本信息存储单元(207),以指定对应于请求方的用户(13)的版本;对象管理单元(241),用于使用默认加载器(223)和差分加载器(233)的指定版本来生成适用于用户(13)的版本的服务对象并且执行处理;以及提供单元(243),用于向用户(13)提供服务。
文档编号G06Q10/00GK102349052SQ201080011438
公开日2012年2月8日 申请日期2010年3月29日 优先权日2009年3月30日
发明者岛村荣 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1