一种在云平台上以SOA的方式部署常规应用的方法,开发者无需学习新知识,就能开发云服务模式的应用系统,还能将大量已有的应用系统部署到云平台中。本发明专利技术介绍的方法主要包括:系统分析用户提交的配置文件和源程序,获取用户配置的服务类并生成对应的WSDL文件,接着生成对应的Stub服务调用代码,Stub服务调用代码向外提供服务调用的接口。接着将Stub服务调用代码添加到源程序包中,并自动更新客户类,将原先调用服务类的代码自动更新为调用Stub服务调用的代码,最后将应用与服务分别部署。利用本方法能大大提高云平台上应用系统部署的效率。降低新应用系统的开发成本,同时也减少了已有系统向云平台迁移的成本。
【技术实现步骤摘要】
本专利技术涉及计算机应用
,尤其涉及云平台中SOA与程序分析等方面的内容。
技术介绍
云计算的核心思想是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户或应用提供按需服务。云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。这使得应用提供者无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本。云计算的提出,虽然解决了单一服务器性能不足的问题,但也带来了多个计算资源之间的通信问题,SOA(Service Oriented Architecture)很大程度上解决了这一问题。 SOA是一类分布式系统的体系结构,这类系统是将异构平台上应用程序的不同功能部件 (称为服务)通过这些服务之间定义良好的接口和规范按松耦合方式整合在一起,即将多个现有的应用软件通过网络将其整合成一个新系统。云计算提供强大的计算能力,SOA实现多个资源之间的调度。采用面向服务架构的云计算平台集这两种方式于一身,具有众多优点,如实现大量计算资源的整合,凸显云计算的强大计算能力。将服务分发、部署到不同的服务器上,从而实现服务调度的负载均衡以及计算资源的并行利用。云计算平台能够预先集成众多云服务,方便应用系统的开发。服务开发与应用系统开发分开,使得需要开发者关心的部分互相之间松耦合,一方面解决了项目人员之间沟通难的问题,另一方面也简化了开发者的工作任务,提高了生产效率。
技术实现思路
本专利技术中所涉及的在云计算平台上以SOA的方式部署常规应用的方法及系统,解决了将大量已有系统(或者按照常规方式开发的应用系统)向基于SOA的云计算平台平滑迁移的诸多问题。其包含了以下几个方面的含义首先,用户部署源程序及配置文件,配置文件中记录了源程序中哪些类将以服务的方式运行,叫做服务类,其未包含在配置文件中的类叫做客户类。系统读取配置文件,并在内存中生成对应的服务类列表。其次,系统自动更新客户类的代码结构,将原先调用服务类的部分转变为调用 Stub服务调用代码,其中需要转变的部分包括与服务类相关的声明语句、方法调用语句及声明同时调用其方法的语句。最后,将用户上传的源代码中与服务类相关的部分部署到服务容器中,将剩下的部分结合^ub服务调用代码一起部署到应用服务器中。本专利技术提供一种在云计算平台上以SOA的方式部署常规应用的方法,包括下列步骤1)解析用户设定的配置文件,并在内存结构中生成一个服务类列表,方便通过服务类生成对应的WSDL文件及客户类代码的动态更新。2)根据服务类列表中的信息,从用户部署的源代码文件中提取服务类,并生成相应的WSDL文件。3)根据生成的WSDL文件产生对应的Mub服务代码,将Mub服务调用代码添加到用户部署的源文件中。4)根据服务类列表,自动更新客户类,将与服务类相关的声明语句、方法调用语句等动态调整为与Mub服务调用相匹配的方式。5)将源代码中与服务类相关的部分分别部署到不同的服务容器中,剩下的部分类结合^ub服务调用代码一起部署到应用服务器中。其中,在所述步骤1)中,通过解析用户部署的配置文件,将用户配置的服务类在内存结构中构建一张对应的服务类别表。用户配置的服务类表示需要在云计算平台中以服务的方式运行,与调用它们的客户类区别开来。用户设定的配置文件格式是XML文件,服务类以namel-class对的形似存在。通过DOM技术即可完成XML配置文件的解析。其中,在所述步骤幻中,首先根据服务类列表的内容,从用户上传的源文件中提取对应的服务类,接着使用工具(如jaVa2WSdl命令)为每一个服务类生成对应的WSDL文件,整个过程由程序自动完成。其中,在所述步骤3)中,首先根据生成的WSDL文件,使用工具(如wsdl2java命令)生成对应的Mub服务调用代码,wsdl2java并不是javdwsdl的逆向运算,而是产生对WSDL文件的封装代码。接着将产生的Mub服务调用代码嵌入源程序中,整个过程由程序自动完成。其中,所述步骤4)中,自动更新客户类是通过动态分析客户类源程序,将与服务类相关的声明语句、方法调用语句以及声明同时调用其方法的语句动态调整为与Mub服务调用相匹配的方式。通过词法分析,定位到与服务类相关的语句,接着判断属于哪一类语句,如果是服务类声明语句,就更新服务类为^ub服务调用代码中相应类的声明语句。如果是服务对象方法调用语句,同样更新为对^Ub服务调用相关的语句。如果是声明同时调用其方法的语句,按照前述两种方法分别完成更新,直到所有与服务类相关的语句更新完毕后结束,整个过程由程序自动完成。其中,所述步骤幻中,应用系统的部署是分两部分完成的。一部分是服务,首先将服务自动转化为可部署部件,其中包含服务类本身和对应的部署描述文件。然后将服务部署到服务容器中。另一部分是与用户相关的应用部分,此部分部署到应用服务器中。附图说明图1为使用本专利技术前应用部署架构图。图2为使用本专利技术后应用部署架构图。图3为本专利技术方法原理示意图。图4为更新客户类方法原理示意图。具体实施例方式为使本专利技术的特征及优点得到更加清楚的了解,以下结合附图,做详细说明如下如图1所示,常规应用是作为一个整体部署到应用服务器中的。这对应用服务器的性能提出了很高的要求,所有应用同时运行在一台服务器上,当部署的应用较多时,对CPU、存储等资源争夺将变得非常激烈,从而导致服务器性能下降,同时也影响所部署应用的正常运行。 为了解决这一问题,提出了将应用系统以SOA方式部署到云计算平台的思想。云计算的核心思想是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户或应用服务,虽然解决了单一服务器性能不足的问题,但也带来了多个计算资源之间的通信问题,SOA的引入很好的弥补了这一缺陷。将计算资源分为应用服务器和服务容器,这样就可以将大量耗时的逻辑处理及数据存取操作封装为服务,并运行在服务容器中。图2显示了使用本专利技术方法之后,常规应用部署到云计算平台以SOA方式运行示意图,如图所示,用户使用配置文件标注常规应用中哪些类需要以服务的方式运行,并结合应用本身一同部署到云计算平台上。接着,云计算平台将常规应用SOA化,将与用户交互相关的部分保留部署到应用服务器中,而将用户配置的服务通过云计算平台的分发机制部署到分散的服务容器中。使用这种方式部署常规应用将带来以下好处应用服务器只运行与用户交互部分相关的应用,而将大量耗时的逻辑处理、数据存取移交服务容器中的服务执行,大大减少应用服务器的计算量,保证应用服务器能够良好的运行。将多个服务分发到不同的服务容器中,能够实现计算能力的负载均衡,同时支持多个服务的并行执行,提高了应用系统的整体性能。 将逻辑处理、数据存取转换为服务的方式运行,通过服务共享实现逻辑处理、数据存取的复用。如上所述,SOA非常适合云计算平台,直接采用SOA的方式开发应用并部署到云计算平台上是值得推崇的方式。但这一方面对开发者来说要求太高,难度较大,还需重新学习 SOA相关的知识,另一方面也将已有的应用拒之门外,要想将已有的应用部署到云计算平台上,还要根据云计算平台的规定,采用SOA的方式重新开发,这无疑对人力、物力来说都是巨大的浪费。于是本专利技术提出一种在云计算平台上以SOA的方式部署常规应用的方法,旨在解决常规应本文档来自技高网...
【技术保护点】
1.一种在云平台上以SOA的方式部署常规应用的方法,其特征在于,其包括以下步骤:1)解析用户设定的配置文件,并在内存结构中生成一个服务类列表;2)根据服务类列表中的信息,从用户部署的源代码文件中提取服务类,并生成相应的WSDL文件;3)根据生成的WSDL文件产生对应的Stub服务代码,将Stub服务调用代码添加到用户部署的源文件中;4)根据服务类列表,自动更新客户类,将与服务类相关的声明语句、方法调用语句等动态调整为与Stub服务调用相匹配的方式;5)将源代码中与服务类相关的部分分别部署到不同的服务容器中,剩余部分结合Stub服务调用代码一起部署到应用服务器中。
【技术特征摘要】
【专利技术属性】
技术研发人员:兰雨晴,王钧,黎立,张冠星,孙坤建,冯运辉,
申请(专利权)人:兰雨晴,
类型:发明
国别省市:11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。