首页 理论教育 云平台软件架构的优化方案

云平台软件架构的优化方案

时间:2023-05-25 理论教育 版权反馈
【摘要】:图8-3智慧社区的软件架构设计[6]在智慧社区软件的分层设计中,分为展现层、服务层、业务逻辑层、数据访问层、公共组件服务层,采用IoC框架实现各层的联通配置,各层向下依赖。展现层是智慧社区平台的用户入口,负责接收输入和呈现输出,进行用户验证,处理功能模块和平台通信间的交互。实际项目应用中可以选用主流的Spring作为IoC框架。

云平台软件架构的优化方案

智慧小区的软件架构上须解决三个特殊问题:(1)须考虑软件平台内部多个子系统的集成,以及与外部的协调;(2)平台的业务应用须调用若干基础构件,而基础构件存在交集;(3)需求的变化和技术革新。[6]

对此,基于先进性、灵活性和可扩展性等原则,我们对智慧社区平台的软件架构设计的建议是:对复杂的软件体系进行分层设计,以解决第1个问题;对基础构件进行抽取,形成一个通用的公共服务层,以解决第2个问题;采用面向服务的架构(SOA,Service Oriented Architecture),通过对现有服务的复用和新业务需求扩展的支持,以解决第3个问题。基于以上考虑,采用图8-3所示的分层式的、可抽取和替换的智慧社区软件架构设计。

图8-3 智慧社区的软件架构设计[6]

在智慧社区软件的分层设计中,分为展现层、服务层、业务逻辑层、数据访问层、公共组件服务层,采用IoC(控制反转)框架实现各层的联通配置,各层向下依赖。

(1)展现层是智慧社区平台的用户入口,负责接收输入和呈现输出,进行用户验证,处理功能模块和平台通信间的交互。该层设计中采用MVC三层体系,并融入了Web2.0和Web3.0的理念,特别是AJAX(异步Java Script和XML)特性,以实现丰富的用户体验;选用技术成熟的Struts2框架作为技术实现。(www.xing528.com)

(2)服务层中包含了智慧社区业务所需的各种服务,依据业务逻辑,完成服务的组装。该层的设计中采用接口与实现分离的思路。具体为:①基于面向对象的思想,由抽象层中的抽象类及接口(即图中的“服务接口”)规定具体类的特征,而由抽象类的派生类(图中的“服务实现”)定制各自的行为;②采用IoC框架提供的依赖注入(Dependency Injection)机制,实现服务接口与具体实现的分离;③由事务管理(Transaction Manager)模块管理被整合的服务的有效性。

(3)业务逻辑层是软件架构的核心层,负责业务规则的制定和业务流程的实现。该层在数据访问层与服务层之间实现数据交换,是前者的调用者,被后者调用。如何实现两种依赖关系的解耦,是软件架构设计的关键,因此在业务逻辑层的设计中采用如下方法:①采用依赖注入IoC框架定义业务逻辑接口和其具体实现;②采用JBoss Rules(Drools)作为规则引擎;③采用JBoss JBPM(Java Business Process Management)实现业务流程。

(4)数据访问层可以隐藏对数据库的操作细节,隔离业务逻辑层与数据库,增加代码的重用。该层的各模块中:数据访问组件建立应用程序与数据库之间的联系,我们采用JDBC(Java数据库连接)使之实现;采用Hibernate(对象关系映射框架)实现对象关系映射(ORM)转换数据形式,解决面向对象数据库与关系数据库间的匹配问题;采用数据库连接池(DBCP)创建和管理连接的缓冲池,以改善用户应用程序的性能。

(5)公共组件服务层提供与业务无关的基础公共服务,相应服务以构件方式组装,通过平台服务目录对外提供服务。

(6)控制反转(Inversion of Control,IoC)框架关注组件的依赖性、配置以及生命周期,IoC框架可以描述创建各类对象的方式、各个组件所需的服务等。目前比较主流的IoC框架有Spring、JBoss Microcontainer、Butterfly Container、google-guice等。实际项目应用中可以选用主流的Spring作为IoC框架。[6]

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈