业务层及集成层的应用程序设计架构

1) Business Delegate 使用 Service Locator,查找部署在 EJB 容器中的 Session Facade。Service Locator 将创建所需的EJBHome对象并返回 EJBRemote 对象供 Business Delegate 作远程调用。在系统设计里,Business Delegate 及 Session Facade 存在着一对一的对应关系。
2) Business Delegate 调用 Session Facade EJBRemote 对象上的业务方法,并把序列化后的Transfer Object 作为Session Facade 业务方法中的输入参数,进行远程调用。对于Session Facade,将以Stateless Session EJB 实现。此外,为了保持框架上的通用性及可复用性,Transfer Object将以 ArrayList 来实现,并以 HashMap 作为 ArrayList 里的成员 或者 用VO值对象作为其成员。
3) 为了达到组件与组件间的松散耦合效果及提高系统的灵活性及扩展性(如把EJB 发布为 Web Services 等),Session Facade 将不负责具体的业务实现。在软件架构中,Session Facade 只会利用J2EE EJB 容器中的服务对其业务方法作事务管理及安全性管理,至于具体的业务实现,将交由Application Service 负责。即,当 Session Facade 的业务方法被调用时,Session Facade 的业务方法将创建新的Application Service及调用Application Service 中的业务方法去处理请求。
4) Application Service 以 POJO 来实现。Application Service 除了可以自己独立完成业务外,也可以调用其他的Application Service 进行协作,完成业务。
5) 为了达到组件与组件间的松散耦合效果及提高系统的灵活性与扩展性,Application Service 将不会直接访问EIS 层数据源的数据。对于需要访问 EIS 层数据源进行CRUD操作的业务方法,Application Service 将会创建 Data Access Object 作为代理,并通过Data Access Object 来访问EIS数据源。为了保持系统架构的通用性及提高系统的扩展性,每一个不同的数据源将对应一个Data Access Object。而且,在Data Access Object的方法中,其输入及输出对象均为 Transfer Object。

如果不是访问数据库,而是访问文件系统,Application Service 将会创建 File Access Object 作为代理,并通过File Access Object 来访问文件信息,对于涉及下载的情况,可以把文件信息封装成Transfer Object(s),然后返回给 Session Facade ,Session Facade 把 Transfer Object 序列化,再返回给 Business Delegate。( 后面的7至13步骤可以省略)。另外,对于只涉及下载的场景,也可考虑采用省略Session Facade 的方式,即采用 Business Delegate  Application Service  File Access Object的实现方式。
1) Data Access Object 使用 Service Locator 查找所需的 EIS 层数据源。
2) Data Access Object 对 EIS 层数据源进行 CRUD 的操作。
3) Data Access Object 创建 Transfer Object,并把 EIS 层数据源在进行 CRUD 操作后的结果或返回数据集,封装在Transfer Object里。
4) Data Access Object 把 Transfer Object 返回给 Application Service。
5) Application Service 收到从(不同的) Data Access Object 所返回的 Transfer Object(s)。
6) 对于使用到多个Data Access Object 的Application Service,Application Service 将会把收到的多个 Transfer Objects 再封装为一个 Composite Transfer Object。
7) Application Service 把 Composite Transfer Object / Transfer Object 返回给 Session Facade。
8) Session Facade 把 Composite Transfer Object / Transfer Object 序列化,再返回给 Business Delegate。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值