一种SOA解决方案系统及方法与流程

文档序号:13164115阅读:613来源:国知局
一种SOA解决方案系统及方法与流程

本发明涉及软件开发和软件架构设计领域,具体涉及一种soa(面向服务的体系结构)解决方案系统及方法。



背景技术:

soa是一种在计算系统开发和集成阶段期间使用的设计原则的灵活集合,soa将功能分为开发人员可以通过网络访问的不同功能单元或服务,目的是为了允许用户在应用程序产品中组成并重新使用它们,基于soa的系统可以将功能封装为能够在来自若干商业领域的多个独立系统内使用的可互操作服务组件,目前为实现支撑大规模、高并发的分布式系统,大多数soa解决方案偏重量级,性能一般,部署复杂,维护成本较高,另外部分轻量级soa解决方案只着重解决部分问题,未形成整体解决方案,往往还存在系统不稳定情况。



技术实现要素:

本申请提供了一种系统性能稳定、效率高、易于部署和维护的soa解决方案系统,还提供了一种实现系统性能稳定、效率高、易于部署和维护的soa解决方案系统的方法,其技术方案如下:

一种soa解决方案系统,包括系统内依逻辑顺序连接的四个主系统,所述主系统依次为展示层、业务逻辑层、基础服务层和数据层,四个所述主系统分别包括若干个对应配置项;

所述展示层,用于用户与公司交互使用,提供可交互界面给用户使用,完成公司提供的各种业务服务;

所述业务逻辑层,用于根据公司业务变化,组装信息粒度为小型的基础业务服务成为满足实际业务的大型业务服务;

所述基础服务层,提供业务逻辑变化很少或者基本不变的业务服务接口;

所述数据层,用于存储各种业务服务的数据。

作为优选,所述展示层的配置项包括cms(内容管理系统)管理平台、便利店管理平台、供应链管理平台、仓库管理平台、mall(购物中心)。

作为优选,所述业务逻辑层的配置项包括cms(内容管理系统)、便利店、公用模块、支付网关、mall(购物中心)。

作为优选,所述基础服务层的配置项包括商品服务、订单交易服务、用户服务、仓库平台、采购平台。

作为优选,所述数据层的配置项包括商品数据、用户数据、订单交易数据、仓库数据、公用库数据。

作为优选,还包括辅助系统,所述辅助系统包括缓存模块、配置中心、消息队列和日志监控系统;

所述缓存模块分别通讯连接所述业务逻辑层和基础服务层,用于存储所述业务逻辑层和基础服务层的常用数据;

所述配置中心通讯连接所述四个主系统,用于管理所述系统的配置项;

所述消息队列通讯连接所述业务逻辑层和基础服务层,用于提高系统的鲁棒性;

所述日志监控系统通讯连接所述业务逻辑层,用于监控系统的运行状态。

一种实现soa解决方案系统的方法,包括以下步骤:

(1)用户通过负载均衡器发出请求;

(2)展示层接受请求通过负载均衡器发给业务逻辑层,同时备份给配置中心;

(3)业务逻辑层接受来自展示层的大型业务服务请求,通过负载均衡器传给基础服务层,同时备份给配置中心;

(4)基础服务层接受请求并解析为若干个小型基础业务服务传给数据库;

(5)数据层接受基础服务层的信息并传给公司。

依据上述技术方案,本系统包括四个主系统,依次为展示层、业务逻辑层、基础服务层和数据层,还包括辅助系统,所述辅助系统包括缓存模块、配置中心、消息队列和日志监控系统,具有以下有益效果:

1,定义了每个系统的职能以及在整个分布式系统中的位置,定义清晰,易于部署和维护;

2,减少了开发人员不必要的思考,更多的关注业务逻辑,大大提高了开发效率;

3,架构的清晰,bug(故障)比以前少了很多;

4,系统可以水平无线扩展部署,大大挺高了系统性能。

附图说明

下面通过具体实施方式结合附图对本发明作进一步详细说明。

图1为本发明四个主系统的流程示意图;

图2为本发明的整体示意图;

图3为本发明中应用程序框架示意图。

其中,1、展示层;2、业务逻辑层;3、基础服务层;4、数据层;5、缓存模块;6、消息队列;7、配置中心;8、日志监控系统;9、负载均衡器。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。

如图1所示,一种soa解决方案系统,包括系统内依逻辑顺序连接的四个主系统,所述主系统依次为展示层1、业务逻辑层2、基础服务层3和数据层4,四个所述主系统分别包括若干个对应配置项;

所述展示层1,用于用户与公司交互使用,提供可交互界面给用户使用,完成公司提供的各种业务服务;

所述业务逻辑层2,用于根据公司业务变化,组装信息粒度为小型的基础业务服务成为满足实际业务的大型业务服务;

所述基础服务层3,提供业务逻辑变化很少或者基本不变的业务服务接口;基础服务层特点是服务接口信息粒度很小,供上传服务使用;

所述数据层4,用于存储各种业务服务的数据。

其中信息粒度(granularity)指的是信息单元的相对大小或粗糙程度,信息粒度是信息架构的第一步,从信息粒度着手,准确分析其上下级的关系,信息单元可进行有效地组合并传递给用户,建立起信息和信息之间的相关度。

作为优选,所述展示层1的配置项包括cms管理平台11、便利店管理平台12、供应链管理平台13、仓库管理平台14、mall15。

作为优选,所述业务逻辑层2的配置项包括cms21、便利店24、公用模块25、支付网关22、mall23。

作为优选,所述基础服务层3的配置项包括商品服务31、订单交易服务35、用户服务33、仓库平台34、采购平台32。

作为优选,所述数据层4的配置项包括商品数据41、用户数据43、订单交易数据44、仓库数据45、公用库数据42。

作为优选,还包括辅助系统,所述辅助系统包括缓存模块5、配置中心7、消息队列6和日志监控系统8;

所述缓存模块5分别通讯连接所述业务逻辑层2和基础服务层3,用于存储所述业务逻辑层2和基础服务层3常用的数据;通过把常用的数据放到缓存中,提高系统的响应速度。

所述配置中心通讯连接所述四个主系统,用于管理所述系统的配置项;一个庞大的具有很多分布式系统都有非常多的配置项,配置项越多,系统的维护成本越高,为了较低系统维护成本,开发了一套统一的配置中心,减轻各个系统的维护成本。

所述消息队列6通讯连接所述业务逻辑层2和基础服务层3,用于提高系统的鲁棒性;鲁棒性(robustness)就是系统的健壮性,它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性,所谓鲁棒性,是指控制系统在一定结构,大小的参数摄动下,维持某些性能的特性,消息队列6一般为分布式系统的组件之一,主要目的是提高系统的鲁棒性,让系统更加稳健地运行。

所述日志监控系统8,用于监控系统的运行状态。在系统出现问题时,日志监控系统8能第一时间告知相关人员去解决,也能在系统快接近非正常状态时,及时的通知相关人员,避免问题的发生。

一种实现soa解决方案系统的方法,包括以下步骤:

(1)用户通过负载均衡器9发出请求;

(2)展示层1接受请求后通过负载均衡器9发给业务逻辑层2,同时备份给配置中心7;

(3)业务逻辑层2接受来自展示层1的大型业务服务请求,通过负载均衡器9传给基础服务层3,同时备份给配置中心7;

(4)基础服务层3接受请求并解析为若干个小型基础业务服务传给数据层4;

(5)数据层4接受基础服务层3的信息并传给公司。

本发明的一种具体实施方式如下:

如图2所示,整个soa解决方案系统的调用顺序一般如图所示:

1)用户发起一个请求,经负载均衡器9根据配置的路由算法(有robin,lru,iphash等,优选robin),把请求路由到展示层1的一套web服务器进行处理,web服务器主要对用户的输入和权限进行初步的检查,然后提交给业务逻辑层2处理。

2)展示层1到业务逻辑层2也是要经过负载均衡器9,因为同一个业务逻辑服务接口也是采取集群方式部署在多台服务器上,以此来避免spof(singlepointoffailure)即单点失败(这是分布式应用系统不允许的),业务逻辑层2的每一个服务都是由基础服务层3的原子服务组合而成,所以业务逻辑层2会把每一个业务中的每一步交由基础服务层3来完成。

3)业务逻辑层2调用基础服务层3也是要经过负载均衡器9,原理同上,业务逻辑层2和基础服务层3的交互方式分同步和异步,异步方式主要通过消息队列6来完成。

4)所有的数据持久化均由基础服务层3调用数据层4来完成,其他层不与数据层4有任何交互。

其中上述提到的负载均衡器9,是一种把网络请求分散到一个服务器集群中的可用服务器上去,通过管理进入的web数据流量和增加有效的网络带宽的硬件设备。负载均衡器9有多种多样的形式,除了作为独立意义上的负载均衡器9外,有些负载均衡器9集成在交换设备中,置于服务器与internet链接之间,有些则以两块网络适配器将这一功能集成到pc中,一块连接到internet上,一块连接到后端服务器群的内部网络上。

另外如图3所示,为本系统匹配设计的应用程序框架图,应用程序框架是为整个分布式系统中每个独立运行的应用程序设计的标准开发框架,所有的系统都是基于该框架进行开发。

其中,(a)服务协议层设计:

1、服务协议层定义了服务调用api规范和消息规范,不提供任何业务逻辑实现;

2、统一返回消息规范,所以api返回的消息格式都有message经封装,message包含了消息头和消息体,消息头包含调用api的结果定义,消息体则为返回的消息数据;

3、代码如下:

message

publicclassmessage<t>{

privatestringmsg;

privateintreturncode;

privatetbody;

//gettersetter忽略

}

userservice

publicinterfaceuserservice{

publicmessage<userinfo>createuser(userinfouserinfo);

//忽略了其他方法

}

(b)业务实现层设计:

1、业务实现层包含了数据访问和业务实现,业务实现类调用多个dao实现业务;

2、业务实现类通过调用mapperfactory获取dao的具体实现;

3、业务实现类catch住了所有的异常,统一放在message头里面,告知调用者调用结果,其中0代码成功,其他值代表失败,代码如下:

catch{exceptione}{

//编程时事务回滚

mapperfactory.rollbacktransaction();

message.setreturncode(-1);

message.setmsg(e.getmessage());

logger.error(“createuser”,“createuserfailed”,e.tostring(),josn.tojosnstring(useriofo));

}

统一开发应用框架有如下好处:

1.更加的易于维护:由于系统框架清晰统一,每个开发人员都能快速理解每行代码的意义;

2.加快了开发效率:开发人员无需思考如何组织代码,而是把更多的精力放在业务逻辑处理上;

3.更快的定位问题。

以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。

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