扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
不断发展的 Java 编程语言和 Sun 公司的 J2EE 规范使得遵守各类准则的软件开发者们能够创建出分布式计算应用程序,这些应用程序在以前只能通过相关属性工具才可实现。这样,当某些开发团体要选择在 Java 平台中实现新系统时,其他团体就会通过另外的技术来创建、提高并维护应用程序,然后将它们集成到已有的各类分布式应用程序中去。这种情形就引起了互操作性的竞争。新应用程序与旧应用程序如何交互呢?答案就是:Web 服务。Web 服务是程序设计新的圣杯。它们能够共享并协调分散的各类计算资源。
在本文中,您将了解实现此目的的一种方法。您将看到如何在与 Web 服务相结合的开放源码 Structs 框加的基础上来构建应用程序。在开始之前您必须了解一些 J2EE 与 Web 服务的相关知识。这里,我将简要地介绍下 Structs 架构与模型-视图-控制器(MVC)。
MVC 模式:分离开发角色
MVC 设计模式很清楚的划定了程序员与设计者的角色界限。换句话说,从商业逻辑上拆解了数据。这种模式是让设计者集中于设计应用程序的显示部分,而开发者则集中于开发驱动应用程序功能所需的组件。
MVC 模式有好几种变异,不过它们都是基于相同的基础结构:应用程序的数据模型 (Model),代码显示(View),以及程序控制逻辑( Controller) 是存在其中的独立但能相互间通信的组件。模型组件描述并处理应用程序数据。视图指的是用户接口;它反映的是模型数据并把它递交给用户。控制器是将视图上的行为(例如,按下 Submit 按钮)映射到模型上的操作(例如,检索用户详细信息)。模型更新后,视图也被更新,用户就能够完成更多行为。MVC 模式使代码易懂而且使代码更容易重用;另外,在很多工程中视图经常要被更新,MVC 模式将模型和控制器与这些所做的更改独立开来。
图 1 MVC 模式概要
Struts:基于 MVC 的坚固框架
Struts 是 MVC 模式基础上构建 Web 应用程序的一种开放源码框加。Structs 鼓励在 MVC 模式上构建应用程序而且提供大多数 Web 应用程序所共有的服务。
在 Struts 应用程序中,您可以构建模型层,这样业务逻辑与数据检索逻辑重用就很容易了。这层负责运行应用程序的业务逻辑,获取相关数据(例如,运行 SQL 命令或者读取平面文件)。
Struts 鼓励在模型-视图-控制器设计范例基础上构建应用程序。Structs 提供自己的控制器组件(ActionController 类)并与其他技术相结合来提供模型与视图。对于模型(Model 类), Struts 能与任何标准的数据访问技术相结合,包括 EJB、JDBC 以及 Object-Relational Bridge。对于视图(ActionForm 类),Struts 在 JSP 环境以及其他描述系统中运行的很好。图 2 阐明了基于 Structs 应用程序的逻辑流程。
图 2. Struts 应用程序的逻辑流
简单粗糙的 Web 服务体系结构
构建 Web 服务最简单的途径就是将单个操作与单个企业服务结合起来,如图 3 所示。在这种设计方法中,实现业务逻辑的服务与实现数据检索的服务是混合在一起的。
图 3. 简单粗糙的 Web 服务体系结构
这样的一种 Web 服务可以很容易从已有的业务组件中开发出来。然而,它有很多的缺点:对用户没有单个签名点,提供者与订阅者连接不够紧,业务逻辑没有重用。简而言之,对于一个连贯的解决方案来说这并不是一个非常好的体系结构。
在 MVC 模式基础上来实现 Web 服务解决方案会更好点。在后续部分,您将看到如何使用 Structs 来做到这一点。我将通过 WSManager 层来详述现有的 Structs 架构,这一层展示了采用 Web 服务的模型服务方法。
采用 Struts 应用程序的 Web 服务
在以后的开发工作中您可以扩大构建得比较好的 Structs 应用程序来支持 Web 服务。前面讲过,Structs 架构清晰地区分开了视图、控制器以及模型。模型包含所有必须的业务逻辑,从存储数据仓库中检索数据。您可以构建一个简单的 Web 服务层(称为 WSManager 层)这样的模型可以提供 Web 服务也可以订购 Web 服务。使用这种体系结构的应用程序将基于组件开发的最佳点与万维网结合在了一起,如 图 4所示。
图 4. 采用 Web 服务的 Struts 应用程序
下面的部分要讨论的是这种体系结构中不同组件的详细信息,特别要密切注意 WSManager 层,因为它是此体系结构中真正新加的部分。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者