智能客户端相关Application Block结构功能分析(一)

为了能够让用户更好的享受分布式程序带来的方便,也为了让程序员们能够编写出更好的分布式程序,微软综合胖客户端和瘦客户款提出了智能客户端的概念,这种新的技术给用户带来的将是一种全新的体验,可以说是综合了原来的两种客户端形式的优点,而避免了缺点,在将来应该可以大行其道的。 为了实现智能客户端这种形式,微软为我们程序员提供了一套Application Block来帮助我们,所有的Application Block都是完全公开的,我们不仅可以通过在解决方案中直接引入工程来使用它们,而且所有的源代码都可以查看和修改(尽管微软不提倡修改源代码,对于不同的地方我们完全可以直接继承过来使用,毕竟是面向对象的程序吗),就连结构的设计,我们都可以找到,这种完全的公开无疑对我们大有好处,不仅能够让我们尝到了程序模块复用的甜头,而且还能够从中学习到很多优秀的思想。 现在就根据自己在学习的过程中学到的东西,以及自己在编程中的一些经验对支持智能客户端的Application Blocks的结构和功能进行简单的分析,与大家共享,共同进步。 首先我们可以看到,微软提出的多个Application Blocks每个都能够完成一种特定的功能,但是又不是完全独立的,相互之间都有着紧密的联系,这些联系使得他们在一起能够构成智能客户端这个系统,能够发挥出单个的Application Block或者简单相加所不具备的功能,这应该是系统论的一个观点把。 其次,在Application Blocks的设计和实现的过程中,大量的使用了设计模式,真的应了那句“没有不使用模式的程序”的话,这为我们更好的理解设计模式也有很大的好处。因该说,设计模式是一个好东西,但是想用好却真的是不容易,在下面我们可以从设计图中看到在Application Blocks中是怎样使用设计模式的。 下面我们首先来看一下在智能客户端的实现过程中,使用了哪些Application Block,他们的功能都是怎样的。 主要使用的Application Block 1、 Data Access Application Block:负责数据存取方面的操作,在这个模块之中微软试图实现分布式数据库的至少是本地映射透明性,因为它使用一个接口来实现了对不同数据库的操作,也就是说,不管在数据层使用的是Oracle也好,是sql Server 也好还是DB2,我们无需对每一种数据库进行具体的编程,只需要通过这个Application Block进行函数值的传递,那么相应方法以及Sql语句的格式的选择都是由这个Block自动完成的。这样就避免我们在分布式的程序中需要针对不同的数据库类型而编写不同的程序了。 2、 Offline Application Block:负责处理在离线的时候的业务。因为在智能客户端的使用过程中,我们不可避免的会遇到离线的状态。这种操作方式在B/S模式下是一种灾难,因为我们无法从服务端获取相关的数据,也不能够把我们的操作结果反馈到服务器上,这样就使得我们的工作无法正常进行。而在这个Application Block中,我们可以实现完美的离线功能。对于此,我们必定会想到数据的完整性以及一致性的问题,对于这个问题,有两种的处理方式,一种是对于一个文件或者数据表,只允许一个用户或者一个终端操作,一旦获取下来就要对文件或者数据表锁定。另外的一种方法是不进行锁定,允许多个用户同时进行修改。前者的安全性可以得到很好的保证,但是灵活性是非常低的,尤其是一旦一个用户对一个文件或者数据表在开始了操作之后,临时有事离开,就会导致这个文件很长的一段时间里面其他用户都无法使用。后者的灵活性很高,但是就必须采取一些措施来保证数据的完整和安全。权衡这两种,微软还是采用了后面的一种,多个用户可以对一个数据同时进行修改,但是在最终的处理的时候微软在这个Block中提供了很好的处理方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值