Windows DNA 之二 业务逻辑层
来源:互联网 发布:h5建站 编辑:程序博客网 时间:2024/05/07 09:50
Windows DNA中最核心也是最基础的就是对于业务逻辑层设计提供的框架性指导,而COM则是框架性指导的核心概念。COM技术由来已久,它是基于组件的设计思想在Microsoft的技术产物。它促进基于组件的开发和面向对象的程序设计,它促进代码在二进制层面上的重用,它也为COM组件之间的相互通信提供了必要的机制。如果你希望对COM技术有一个全面的了解,有很多书可供参考,如COM本质论、COM技术内幕、ATL技术内幕等。
Windows DNA的目标是为网络应用系统提供框架性的指导。提到网络我们必然会想到分布式处理。如何让本地运行的进程内或进程外COM组件能够被远程调用,这是Windows DNA所要解决的问题。Microsoft的解决之道就是DCOM,即分布式的COM。DCOM是基于RPC的,它的作用就是将客户端的方法调用序列化然后传递到服务端,如果有返回值服务端将调用结果序列化返回给客户端。但是我们知道网络应用系统的一般问题包括并发、事务、安全等,Microsoft的工作就是让他们的开发者更加地关注业务而不是技术。显而易见DCOM无法做到这一点,它做的只是模仿本地调用来实现远程调用,仅此而已,而且最初的DCOM只有进程外的COM组件(.exe)才可以实现远程调用。
那么Microsoft需要一种机制来实现他们的目标。这就是COM+。我们可以认为COM+是一组服务,它不但实现了进程内组件的远程调用,而且附加了并发、事务、安全、异步调用等服务。如果你编写过COM+组件你就能体会到Microsoft在这个方面做了很多工作,这样你才可能在你编写的COM+对象中访问到事务上下文、安全上下文、构建参数,同时你无需为程序的并发做太多的工作。你所要做的就是考虑清楚你的COM+对象需要什么的事务支持,需要什么样的安全策略,需要什么可配置性的参数等等,还需要注意的一点是你的COM+组件最好要是无状态的,因为windows DNA要求你的体系结构是可伸缩的,而可伸缩的体系结构的一个最大特点就是无状态,这样才可能在实现系统的横向可伸缩。对于COM+组件的安装和部署,Microsoft也做了很多工作。
上面有提到COM+是一组服务的集合,这其中就包括队列服务和分布式事务处理。如果将你的COM+对象标记为可队列化的,那么对于COM+对象的每次调用都会放到一个特定的windows队列中,通过MSMQ服务实现可靠的远程方法调用。如果将你的的COM+对象标记为支持事务或请求新事务等,则在你的COM+对象中你可以获得事务上下文,并实现事务的操作,如放弃事务、提交事务等,底层的COM+则通过MTS、资源处理器等部件来实现两阶段事务处理,从而保障的你的业务得到有效而正确地处理。
总而言之,当考虑业务逻辑层设计的时候,优先考虑COM+技术,考虑业务逻辑需要什么样的事务支持,需要什么样的安全策略,而且还要让你的COM+对象可配置,并通过无状态逻辑来实现业务层的横向可伸缩。
- Windows DNA 之二 业务逻辑层
- Windows DNA 之三 数据访问逻辑
- PetShop之业务逻辑层设计
- PetShop之业务逻辑层设计
- [收藏]PetShop之业务逻辑层设计
- PetShop之业务逻辑层设计
- PetShop之业务逻辑层设计
- PetShop之业务逻辑层设计
- PetShop之业务逻辑层设计
- PetShop之业务逻辑层设计
- PetShop之业务逻辑层设计
- [wayfarer]PetShop之业务逻辑层设计
- PetShop之业务逻辑层设计
- PetShop之业务逻辑层设计
- 软件设计之业务逻辑层设计
- 系统架构之业务逻辑层
- (五)PetShop之业务逻辑层设计
- 软件设计之业务逻辑层设计
- 摘抄
- 在基于ATM DSLAM的ADSL环境中,使用MTU 1492和1454的差距对比。
- GCC嵌入汇编
- DTD介绍1
- 关于MinGW下.dll.a文件的作用
- Windows DNA 之二 业务逻辑层
- 三十岁以后程序员的发展之路
- CentOS5华中科技大学更新源
- 顶级游戏设计大师谈如何成为一名游戏设计师
- 接口与抽象类
- 《程序员读》ios版本已隆重登陆AppStore
- 收藏的东东
- [转载]空间信息技术
- 双向BFS分析