{售后服务}基于面向服务体系架构和面向资源体系架构的业务组件模型

上传人:管****问 文档编号:138511436 上传时间:2020-07-16 格式:DOCX 页数:10 大小:311.23KB
返回 下载 相关 举报
{售后服务}基于面向服务体系架构和面向资源体系架构的业务组件模型_第1页
第1页 / 共10页
{售后服务}基于面向服务体系架构和面向资源体系架构的业务组件模型_第2页
第2页 / 共10页
{售后服务}基于面向服务体系架构和面向资源体系架构的业务组件模型_第3页
第3页 / 共10页
{售后服务}基于面向服务体系架构和面向资源体系架构的业务组件模型_第4页
第4页 / 共10页
{售后服务}基于面向服务体系架构和面向资源体系架构的业务组件模型_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《{售后服务}基于面向服务体系架构和面向资源体系架构的业务组件模型》由会员分享,可在线阅读,更多相关《{售后服务}基于面向服务体系架构和面向资源体系架构的业务组件模型(10页珍藏版)》请在金锄头文库上搜索。

1、基于面向服务体系架构(SOA)和面向资源体系架构(ROA)的业务组件模型多终端多技术平台可复用的组件模型引言在面向服务体系架构(SOA)和业务组件(BC)的思考(以下简称 SOA 和 BC )一文中介绍了基于面向服务体系架构(SOA)的组件模型,本文按照“分离”的原则,通过比较当前多种流行的客户端和服务器端的通讯机制,进一步把业务组件进行分离,采用面向资源体系架构(ROA)把业务组件界面层和业务逻辑层分离开,构建一个多终端多技术平台可复用的组件模型多层架构中的通讯方式软件体系架构是沿着单机到 CS 架构,再到 BS 的三层架构甚至多层架构逐步发展过来的,关于多层架构,本文不再详细介绍,可以参考

2、相关的资料,下面首先来分析一下当前比较流行的客户端技术以及客户端和服务器之间的通讯方式。基于 MVC 的 J2EE 多层模型在一个标准的基于 MVC 的 J2EE 的模型架构的代码中,从对象的类别来看,一般包含 BO、DAO、POJO 等 Java 类,另外还包含 JSP、Servlet 等,如下图所示:图 1. 基于 MVC 的 J2EE 多层模型POJO:简单 Java 对象(Plain Ordinary Java Object,POJO),一个中间对象,在不同阶段可以转化为 PO、DTO、VO,POJO 持久化以后就是 PO,在应用中的不同层次传递为 DTO,直接用来对应表示层就是 VO

3、。PO:持久对象(Persistant Object,PO),也称为 Data 对象,对应数据库中的 Entity,可以简单认为一个 PO 对应数据库中的一条记录。PO 中不包含任何对数据库的操作。VO :表现层对象(View Object,VO)主要对应界面显示的数据对象。对于一个 WEB 页面,或者 SWT、SWING 界面,用一个 VO 对象对应整个界面的值。根据业务的需要可以和表对应,也可以不对应。DTO :数据传输对象(Data Transfer Object,DTO) 主要用于远程调用等需要大量传输对象的地方。对象不应该包含业务逻辑,其仅仅需要传递需要的属性,而不是 PO 的所有属

4、性。BO:业务对象 (Business Object,BO)主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。通常一个 BO 包含多个 PO,通常需要将 BO 转化成 PO,才能进行数据的持久化,反之,从 DB 中得到的 PO,需要转化成 BO 才能在业务层使用。BO 建议只包含业务方法,属性在 POJO 中。DAO:数据访问对象(Data Access Object,DAO)主要用来封装对数据库的访问。通过它可以把 POJO 持久化为 PO,用 PO 组装出来 VO、DTO。主要用来封装对 DB 的访问,把 POJO 持久化为 PO。JSP 是通过 HTTP 请求,直

5、接调用 Servlet 的。当前,在 J2EE 架构下,有 Struts 、Spring 、Hibernate 等开源架构完美的实现了界面、逻辑和实例化的操作。Applet 和 J2EE 的通讯Applet 可以直接连接数据库,可以使用象 JDBC、RMI 这样的协议来访问象数据库、LDAP 目录和 Enterprise JavaBeans 组件这样的后端信息。也可以通过 HTTP 连接后台的 Java Servlet,和 JSP 连接方式相同,通过 Servlet 处理后台逻辑,Applet 仅仅用来处理前端的工作。Flex 和 J2EE 的通讯Flex 是 Macromedia 发布的展现

6、服务 (Presentation Server),根据 mxml 文件 ( 纯粹的 XML 描述文件和 ActionScript) 产生相应得 swf 文件,传送到客户端,由客户端的解释执行。 Flex 提供了三种方式和 Java 进行数据交互:HTTPService,RemoteObject 和 Web 服务。其中,HTTPService 方式可以传输 Text、XML 或者 JSON (JavaScript Object Notation) 等。由于 Flex 具有 Flash 打下的良好用户基础,同时具有丰富的展现效果,正在成为一种流行的客户端展示实现技术。AJAX 和 J2EE 的通讯

7、AJAX(Asynchronous JavaScript and XML) 是多种技术的综合,它使用 XHTML 和 CSS 标准化呈现,使用 DOM 实现动态显示和交互,使用 XML 和 XSTL 进行数据交换与处理,使用 Javascript 绑定和处理所有数据,Javascript 是一种粘合剂使 AJAX 应用的各部分集成在一起,中 JavaScript 主要被用来传递用户界面上的数据到服务端并返回结果。AJAX 使用 XMLHttpRequest 对象进行异步数据读取, XMLHttpRequest 对象用来响应通过 HTTP 传递的数据,一旦数据返回到客户端就可以立刻使用 DOM

8、将数据放到网面上。在 Ajax 中,XMLHttpRequest 是核心,XMLHttpRequest 对象在大部分浏览器上已经实现而且拥有一个简单的接口允许数据从客户端传递到服务端,但并不会打断用户当前的操作。使用 XMLHttpRequest 传送的数据可以是任何格式,包括可以传输 Text、XML 或者 JSON。其他客户端和 J2EE 的通讯除了前文所描述常见的浏览器支持的技术标准,当前富客户端(Rich Internet Applications ,RIA)发展也很快,比较流行的有 AIR、WPF 、JavaFX 等。AIR (Adobe Integrated Runtime) 是

9、Macromedia 发布一个跨操作系统运行的 RIA 技术解决方案,利用现有的 Web 开发技术(Flash,Flex,HTML,JavaScript,Ajax)来构建富客户端,并部署为桌面应用程序,其本质上采用的是前述 Web 开发技术和后台通讯。由于 AIR 可以访问客户端的资源,并可以实现离线操作,所有具有广阔的应用前景。WPF (Windows Presentation Foundation) 是 Microsoft 的 .Net 平台的 RIA 技术解决方案,WPF 通过扩展应用程序标记语言(eXtensible Application Markup Language ,XAML)

10、把界面和业务逻辑分开,以开发出界面炫丽,功能强大的应用程序。WPF 可以通过基于 SOAP 的 Web 服务或者 RESTful Web 服务跟后台 J2EE 服务器交互。另外轻量级的基于浏览器的 Silverlight 可以采用这种技术。JavaFX 是 Java 的 RIA 技术解决方案,和早期的 Applet、 Java Web Start 等技术一脉相承, 其使用的是领域专用语言(Domain Specific Language,DSL),和后台通讯方式同 Applet。通讯方式总结如前文所述,客户端和服务器端的通信有很多种,但是有两种是都支持的,基于 SOAP 的 Web 服务和 R

11、ESTful Web 服务。Web 服务是通过简单对象访问协议(Simple Object Access Protocol,SOAP)传输的,SOAP 是一种基于 XML 的协议, 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME),基于“通用”传输协议是 SOAP 的一个优点。它还支持从消息系统到远程过程调用(Remote Procedure Call, RPC)等大量的应用程序。SOAP 提供了一系列的标准,如 WSRM(WS-Reliable Messaging)形式化契约确保可靠性与安全性,确保异

12、步处理与调用;WS-Security、WS-Transactions 和 WS-Coordination 等标准提供了上下文信息与对话状态管理。相对而言,SOAP 协议属于复杂的、重量级的协议,当前随着 Web2.0 的兴起,表述性状态转移(Representational State Transfer,REST)逐步成为一个流行的架构风格。REST 是一种轻量级的 Web Service 架构风格,其实现和操作比 SOAP 和 XML-RPC 更为简洁,可以完全通过 HTTP 协议实现,还可以利用缓存 Cache 来提高响应速度,性能、效率和易用性上都优于 SOAP 协议。REST 架构对资

13、源的操作包括获取、创建、修改和删除资源的操作正好对应 HTTP 协议提供的 GET、POST、PUT 和 DELETE 方法,这种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。REST 架构尤其适用于完全无状态的 CRUD(Create、 Read、 Update、 Delete,创建、读取、更新、删除)操作。基于 REST 的软件体系结构风格(Software Architecture Style)称之为面向资源体系架构(Resource-oriented Architecture,ROA)。按照 REST 原则设计的软件、体系结构,通常被称为“REST 式的”(R

14、ESTful),在本文中以下称之为 RESTful Web 服务,以便于和基于 SOAP 的 Web 服务区别。服务器端采用 J2EE,客户端采用 JSP、Flex、JavaFX、AIR 等可以直接调用 Servlet,其他的实现技术基本上不能直接调用,但是无论是那种客户端,对于基于 SOAP 的 Web 服务或者基于 RESTful Web 服务务都是支持的,如 AJAX 的 XMLHttpRequest、Flex 的 HTTPService 等。如下图所示:图 2. 客户端和服务器端的通讯方式基于 SOAP 和 REST 的分层模型结合前文所述客户端和服务器端的通讯方式比较和分析以及在 S

15、OA 和 BC 一文中描述的业务组件模型,下文给出了在界面层和业务逻辑层采用轻量级的 RESTful Web 服务,不同业务组件之间采用基于 SOAP 的 Web 服务的业务组件模型。基于 ROA 的业务组件界面层和业务逻辑层接口在多层架构下,特别是当前客户端技术发展迅速,有不同的技术实现方式,将界面层和业务逻辑层分离将能更好的实现业务组件的重用,业务逻辑不受不同客户端技术技术影响,从而更好的保证了业务逻辑的重用。为了支持各种客户端技术,需要采用各种客户端技术都能支持的标准的接口方式,在前文所述两种通用标准中,SOAP 相对来讲属于重量级协议,而且基于 SOAP 的 Web 服务将会增加软件开发的难度,影响系统的性能,因此采用轻量级的 RESTful Web 服务务,来实现界面层和业务逻辑层的分离,如下图所示:图 3. 界面层和业务逻辑层的通信模式为了保持和基于 SOAP 的 Web 服务方式传输的内容一致,其传输的数据格式均采用标准的 XML,比如传递一个客户信息,基于 SOAP 的 Web 服务传递的参数和 RESTful Web 服务格式分别如下:清单 1. XML样例 1000 100010001 张三 11 /CUST_TYPE

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号