日期:2014-05-19  浏览次数:20673 次

J2EE 核心模式(Core J2EE Patterns)学习随心理解、随手记录(七)

Web Service中转:暴露可通过XML和web协议访问的服务,并将对服务的请求转发给真实的服务组件。通常有许多Web Service是不希望暴露出来的,有时有一些服务又需要聚合起来使用,这时候就需要Web Service中转。在使用中转前的Web Service需要被改造,以支持中转的接口(例如一个本地接口)。这个模式和Facade很类似,只不过它的定位放在了远程接口上。

?

微架构:一组被同时使用的模式,用于实现系统中的一个特定部分(子系统)。每一个微架构是独立和内聚的积木块,由它们构成整个系统的架构。微架构有多种形式,比如Web Worker工作流。

工作流可以把业务逻辑和过程逻辑分离开,使得关注点和阶段清晰和分散。本人当前参与的项目是一个较大的Web项目,处于整个解决方案的前端,但是里面并未明确提及工作流(尽管在解决方案的后端,计费部件和内容管理部件中明确定义和使用了)。首先要说的是,作为一个展现部件,对于用户操作的过程中个,并不适合具备过多的用户交互途径,通常也不会有特别繁杂的业务逻辑;但是倘若整个项目的内容使用部分流程过于复杂,完全可以引入工作流的思想解决问题。

以一个展现系统中播放的内容使用的流程为例,第一次交互行为prePlay,发起播放行为,系统给用户返回一个产品确认页面;用户确认并发起第二次交互行为play,系统给用户完成订购操作并生成播放的rtsp链接回送给用户;第三次用户使用此rtsp链接和播放系统交互。这三次主流程的交互中,所有交互行为都由用户出发(这是通常是展现系统的工作流步骤中的特点),并且只有前两步和展现系统相关。每一个步骤都具备独立的拦截器栈,相应的Action-Service-DAO方法。在某些业务复杂的系统中,工作流的步骤是可以自定义的,即用户可以自行组装工作流——这样的定制属于纵向业务流程的定制,与横向的API调用的定制相异

通常我们使用request-session-application这样三类容器管理当前数据,但是在request scope(一次交互的数据存放)和session scope(用户会话数据存放)对象之间,还可以引入flash scope(N次交互的数据存放,由拦截器管理,见我另一篇blog)和work flow scope(一个完整业务流程的数据存放,由工作流引起管理)对象

(完)

?

文章系本人原创,转载请注明作者和出处