第 2 章 平台相关关键技术
本章主要对平台相关关键技术进行介绍。通过上章对现有网上洗衣服务平台的技术分析,确定选择 B/S 架构实现服务器和客户端交互,采用基于 J2EE 和MVC 的 SSM 框架实现平台开发。
本章内容如下安排:第 1 节简要介绍 B/S 架构及用于本平台设计的优势;第 2 节简单介绍 J2EE 的分层结构及用于本平台设计的优势 ;第 3 节对 MVC模式的特点进行概述;第 4 节对对 SSM 框架的特点及优势进行介绍。
2.1 平台架构。
该平台将采用 B/S 架构实现客户端和服务器端。如 1.3.2 节中介绍的一样,B/S 架构与 C/S 架构是常用的两种平台架构。C/S 架构充分利用客户端和服务器端的硬件环境,将任务合理分配到两端进行实现,减少了平台的通讯费用。但是客户端必须安装应用软件,并且必须随着平台的改变而改变,使得平台不具备良好的可移植性。B/S 架构即浏览器/服务器结构,使得平台具有良好的可移植性、开发 成本低、易维护等。
2.1.1 B/S 概述。
B/S 是在 C/S 基础上改进后的一种网络架构[10]。采用 B/S 架构,只需通过浏览器便可以和服务器进行数据交互,简化了平台开发和维护。特点如下:
升级方便、维护简单。所有客户端通过浏览器连接和访问服务器,客户端不需维护,只需对服务器进行维护。分布式特点。用户只需一台可以上网的电脑,随时随地都能通过浏览器访问平台并执行操作。
服务器负荷较重。采用 B/S 架构,大部分事务主要是在后台服务器实现,压力基本是在服务器端,以至于服务器负荷严重。如果服务器出现问题,平台会随着服务器的“崩溃”而产生严重错误。详细描述见文献[11]。
从节约维护成本和给客户方便两方面考虑,决定采用 B/S 架构。由于该项目涉及的数据量较大,因此,使用较稳定且内存大的云服务器作为项目服务器,一定程度避免了服务器因重负荷导致严重错误发生,为了安全起见,采用定期备份和数据库日志等方法保存数据和记录操作。
2.2 J2EE 平台。
该平台将采用 J2EE 分层思想。J2EE 是一种基于 Java 平台开发、部署和管理的多层体系结构,因此,J2EE 同 Java 一样具有跨平台性、提供了 JDBC、API等技术、拥有“编写一次、随处运行”的可移植性等优点[12]。J2EE 主要针对的是企业级应用,因此,它同样具备了企业级系统开发所需的如下特征:可扩张;稳定可用;安全可靠等。
2.2.1 J2EE 体系结构。
J2EE 平台实质是个分布式应用模型,具有多层结构。如图 2.1 所示,J2EE被划分为表示层、控制层、业务逻辑层和数据持久层(数据访问层)。各层之间通过数据通信,完成平台的实现[14]。通过文献[15]中对 J2EE 的描述,可对 J2EE进行层次划分以及对各层作用进行分析。
表示层指的是客户端界面。通过 JSP 页面展示,使用 DIV 和 CSS 技术实现页面布局等。通过这些页面技术实现设计,给用户提供良好的界面体验效果。控制层为表现层和业务逻辑层搭建一座桥梁。通过接收用户请求,对用户数据进行封装,然后将用户请求提交给业务逻辑层处理并将结果返回至表示层。
业务逻辑层是核心,具有关联控制层和持久层作用,主要负责处理业务。业务逻辑层通过控制层传入的请求实现业务处理,然后返回结果至控制层。同时又为持久层提供数据,而后接收持久层返回的结果 。
数据持久层主要实现与数据库的数据交互。在数据对象和关系数据库之间建立映射关系,实现数据持久化访问,并且提供数据访问方法,避免开发人员手动编程访问持久层[16]。在持久层,还能对数据进行持久化编程,并为业务层提供服务。
在本项目实现中,前端页面和后台功能实现人员不同,采用 J2EE 的分层架构刚好将前端页面(表示层)和后台功能(业务逻辑层)分离开来,两者之间互不干扰,可以同步完成,减少了时间消耗。
2.3 MVC 模式。
该平台采用 MVC 设计模式,既可以实现平台的扩展性、维护性以及再用价值等需求,又可以方便设计和维护。下面对 MVC 模式进行描述。
2.3.1 MVC 概述。
MVC 模式是由 M(Model)、V(View)、C(Controller)三部分组成,M 代表模式中的模型层,V 代表视图层,C 代表控制层,这样分层将信息的显示以及业务的处理有效的分离开[18,19]。在平台开发中,用户界面(表示层)会不断变化,而其中模型层基本不变,所以才形成了表示层和业务逻辑层两层,控制层在两者之间起到连接作用。MVC设计模式图如下图 2.2 所示。
图 2.2 MVC 设计模式图[20]
Figure 2.2 The diagram of MVC patternModel:在 MVC 模式中占据重要地位,主要任务是处理业务,同时可以访问业务数据。模型可以重复被多个视图使用,有效地提升了程序的重用性[21]。
View:视图为用户提供一个操作界面,用户通过界面可以直观掌握信息,并且可以通过界面向平台发送请求,最后将请求结果返回至用户界面显示。Controller:控制器在视图和模型两者之间主要是连接作用。用户通过界面发送请求,控制器接收并对数据进行处理,最后通过视图形式返回数据至用户界面。
2.3.2 MVC 优点。
通过对 MVC 的描述可以简单总结出以下几点优点:首先,MVC 的分层缩短了平台开发周期和降低了开发成本;其次,视图层和模型层的分离使得平台具有低耦合性;再次,一个模型可以被多个视图使用这一特点使得代码具有复用性;最后,由于视图层和模型层的分离,使得前台开发人员和后台开发人员无需交叉开发,大家各司其职,缩短了项目部署时间等。
对于 MVC 的其他优点,具体介绍见文献[22],在此不再赘述。从该项目周期和成本考虑以及视图层和模型层分离思想考虑,MVC 设计模式是个不错的选择。
2.4 SSM 框架技术。
2.4.1 SSM 框架。
该平台采用 SSM 框架构建。SSM 框架是由 Struts2、Spring 和 MyBatis 三个框架集成[24]。共被分为表示层、控制层、业务逻辑层和数据持久层四层[16]。下面分别对 SSM 框架的四层进行简单介绍。
表示层是将后台数据通过视图方式展现在前台,主要利用 DIV 和 CSS 来进行 JSP 页面布局,利用 jQuery 技术、Ajax 技术对页面元素操作。控制层主要是通过 Struts[24]框架实现前后台数据传递和业务控制。控制层接收表示层传递的用户请求,根据配置文件 Struts.xml 调用业务层中的方法,然后返回结果至表示层。因此,对于 struts.xml 的配置很重要。
业务逻辑层利用 Spring 框架处理业务、进行事务管理。开发人员需要完成applicationContext.xml 中对数据源的配置、事务的管理以及数据映射器接口mapper 的创建等,同时该层还要定义业务逻辑接口及其具体实现。
数据持久层主要是将表数据持久化,放进内存中,然后利用 MyBatis 实现数据持久层接口与 SQL 之间的映射。当业务层在接收到用户请求后,调用持久层的接口方法时,接口方法会自动映射到 MyBatis 的配置文件中。
2.4.2 SSM 框架优势。
通过参考文献[16]中对SSM框架在Web开发中的优势描述,结合项目本身,可以简单总结出以下几点优势:框架中应用组件和配置文件的存在提高了平台开发的高效性;“低耦合,高内聚”的层次划分使得测试和维护方便;分离开发者的角色;使用集成好的框架,降低了项目的开发成本。基于以上几点,决定采用基于 J2EE 平台和 MVC 设计模式的 SSM 框架设计和实现网上洗衣服务平台。
2.5 本章小结。
本章首先通过对 B/S 架构和 C/S 架构的对比,选择具有升级方便和维护简单、分布式特点的 B/S 架构。其次通过对 J2EE 架构特点的分析,选择采用具有耦合度低的四层结构的 J2EE 平台。然后选择采用能缩短系统的开发周期和降低成本的MVC设计模式。最后选择了基于MVC设计模式和J2EE分层架构的SSM框架设计和开发。