随笔分类 -  [01] 技术剖析

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 22 下一页
摘要:到目前为止,我们所介绍的都是基于客户端驱动的服务发现模式,也就是说客户端主动发出请求以探测和解析可用的目标服务。在介绍WS-Discovery的时候,我们还谈到另外一种服务驱动的模式,即服务在上线和下线的时候主动对外发出Hello/Bye通知。 阅读全文
posted @ 2011-10-25 08:37 Artech 阅读(6334) 评论(9) 推荐(10) 编辑
摘要:前面两篇我们分别介绍了可被发现服务如何被发布,以及客户端如果探测可用的服务。接下来我们通过一个简单的例子来演示如果创建和发布一个可被发现的服务,客户端如何在不知道服务终结点地址的情况下动态探测可用的服务并调用之。 阅读全文
posted @ 2011-10-09 09:26 Artech 阅读(5992) 评论(23) 推荐(12) 编辑
摘要:在《服务如何能被”发现”》中我们着重讨论了可被发现的服务(Discoverable Service)如何通过ServiceDiscoveryBehavior行为的服务通过标准终结点DiscoveryEndpoint发布出来。现在我们来谈服务发现的另一个方面:客户端如何动态地探测可用的目标服务? 阅读全文
posted @ 2011-10-09 07:11 Artech 阅读(6428) 评论(7) 推荐(5) 编辑
摘要:要让作为服务消费者的客户端能够动态地发现可用的服务,首先的要求服务本身具有可被发现的特性。那么到底一个可被发现的服务和一个一般的服务有何不同呢?或者说如何让一个一般的服务在寄宿的时候能够被它潜在的消费者“探测”到呢? 阅读全文
posted @ 2011-10-08 08:09 Artech 阅读(9507) 评论(16) 推荐(17) 编辑
摘要:我们传统的服务调用的模式都是这样的:客户端在设计时就预先知道目标服务的地址,并基于这个地址创建客户端终结点对服务进行调用。而我们即将介绍的新特性则是你在预先不知道目标服务的地址的情况下,可以动态地探测可用的服务并调用之。WCF-Discovery并不是微软在.NET平台下的闭门造车,而是基于一个开放的标准,即我们接下来着重介绍的WS-Discovery。也就是说,如果JAVA平台的Web服务也是基于相同的WS-Discovery标准,那么它们也可以被WCF客户端“发现”。 阅读全文
posted @ 2011-10-07 19:25 Artech 阅读(7179) 评论(11) 推荐(11) 编辑
摘要:今天写《WCF技术剖析(卷2)》关于“队列服务”部分,看了《WCF服务编程》相关的内容。里面介绍一个关于“终结点不能共享相同的消息队列”说法,个人觉得这值得商榷。撰写此文,希望对此征求大家的意见。 阅读全文
posted @ 2011-10-06 16:00 Artech 阅读(3871) 评论(7) 推荐(5) 编辑
摘要:在本篇文章中,我们将通过一个具体的实例来演示如何通过路由服务。在这个例子中,我们会创建连个简单的服务HelloServie和GoodbyeService。假设客户端不能直接调用这两个服务,需要使用到路由服务作为两者之间的中介。 阅读全文
posted @ 2011-09-25 08:24 Artech 阅读(8130) 评论(50) 推荐(11) 编辑
摘要:在一个典型的服务调用场景中,具有两个基本的角色,即服务的消费者和服务的提供者。从消息交换的角度讲前者一般是消息的最初发送者,而后者则是消息的最终接收者。在很多情况下,由于网络环境的局限,消息的最初发送者和最终接收者不能直接进行消息交换,这就需要一个辅助实现消息路由的中介服务,这就是我们接下来要介绍的路由服务。 阅读全文
posted @ 2011-09-23 14:51 Artech 阅读(9183) 评论(27) 推荐(13) 编辑
摘要:很多WCF的初学者是从之前的Web服务上转移过来的,他们非常怀念.asmx Web服务无配置的服务寄宿方式。你只需要在定义Web服务的时候再表示服务操作的方法上应用WebMethodAttribute特性就可以了,完全可以不需要手工进行相应的配置。WCF 4.0通过默认终结点添加机制为你提供无配置服务寄宿的支持。 阅读全文
posted @ 2011-09-18 16:57 Artech 阅读(10447) 评论(18) 推荐(21) 编辑
摘要:WCF从第一个版本的推出到现在,整个架构体系基本上没有出现大的变化。在我看来,可扩展性的设计是WCF的架构体系能够在一段不短的时期内保持稳定的一个最主要的原因。而反观于WCF几乎同时推出的WF,各个版本演进的历史,你会发现几乎WF推出的每一个版本都是“革新性”的改变。正是因为WCF具有极大的扩展性,WCF新的版本的功能本身就可以通过这些丰富的扩展点来实现,而作为最终使用者的我们也可以实现我们自己的扩展,使WCF能够按照我们希望的方式来运作。 阅读全文
posted @ 2011-09-16 09:05 Artech 阅读(9281) 评论(19) 推荐(16) 编辑
摘要:在《原理篇》中我们谈到了通过自定义ServiceHost对WCF进行扩展的本质,以及在IIS/WAS寄宿情况下ServiceHostFactory的作用。接下来通过一个具体的例子来演示如何通过WCF扩展实现以Unity为代表的IoC框架的集成,以及应用该扩展的ServiceHost和ServiceHostFactory如何定义。 阅读全文
posted @ 2011-09-15 11:30 Artech 阅读(11210) 评论(33) 推荐(19) 编辑
摘要:在创建ServiceHost的时候,WCF会加载服务相关的配置并将其作为服务的描述信息附加到ServiceHost对象上,我们也可以在开启ServiceHost之前对其服务描述信息进行相应的修改。ServiceHost在开启之前具有的服务描述信息将会决定在开启之后创建的服务端运行时框架。所以如果我们通过自定义ServiceHost对象并根据具体应用场景的具体需求对其服务描述进行定制,同样可以起到对WCF服务端进行扩展的目的。 阅读全文
posted @ 2011-09-14 09:51 Artech 阅读(6366) 评论(3) 推荐(5) 编辑
摘要:为了让读者对如何利用相应的行为对WCF进行扩展有个深刻的认识,在这里我提供一个简单的实例演示。本实例模拟的场景是这样的:我们创建一个支持多语言的资源服务,该服务旨在为调用者提供基于某种语言的文本型资源。但是,我们不希望客户端在每次调用服务的时候都显式地制定具体的语言,而是根据客户端服务调用线程表示语言文化的上下文来自动识别所需的语言。 阅读全文
posted @ 2011-09-13 08:27 Artech 阅读(6148) 评论(30) 推荐(16) 编辑
摘要:作为最为常用的扩展方式,WCF的四大行为的使用主要体现在两个方面:其一、WCF自身提供的很多特性和功能是通过行为的方式来实现的;其二、作为使用WCF的应用,可以通过自定义的行为来实现解决具体问题的扩展。本篇文章为你讲述WCF四大行为(服务行为、终结点行为、契约行为和操作行为)的本质。 阅读全文
posted @ 2011-09-12 10:09 Artech 阅读(6307) 评论(11) 推荐(11) 编辑
摘要:当基于某个终结点创建的ChannelFactory被开启的之后,位于服务模型层的客户端运行时框架被成功构建。站在编程的角度看ChannelFactory,它就是一个创建用于服务调用的服务代理对象的工厂。由于服务调用需要借助于服务代理来完成,我们很有必要从整个客户端运行架构层面来了解服务代理和基于服务代理的服务调用是如何实现的。 阅读全文
posted @ 2011-09-10 11:04 Artech 阅读(3972) 评论(12) 推荐(5) 编辑
摘要:对于一般的编程人员来说,进行WCF的服务调用之需要通过添加服务引用通过获取元数据生成服务代理类型,或者直接通过ChannelFactory创建用于服务调用的代理对象即可。但是比是否知道当我们创建、开启ChannelFactory的时候,以及用它来创建服务代理的是否WCF内部为我们作了哪些工作?对于一个简单的服务调用,WCF客户端又是采用怎样的处理流程?本篇文章将会给你答案。 阅读全文
posted @ 2011-09-09 18:30 Artech 阅读(5975) 评论(25) 推荐(18) 编辑
摘要:终结点分发器在自己的运行时中对请求消息的处理最终肯定体现在相应操作的执行。如果从服务描述的角度来看,操作是一个OperationDescription对象。而服务端分发运行时中的操作则代表的是一个DispatchOperation对象。作为服务描述的一部分,服务所有终结点的所有操作描述(OperationDescription)在ServiceHost创建过程中被创建。而当ServiceHost被正常开始时,这些操作描述最终转换成分发操作(DispatchOperation)。而DispatchRuntime的Operations属性代表了对应终结点的所有分发操作。 阅读全文
posted @ 2011-07-24 22:07 Artech 阅读(5731) 评论(8) 推荐(7) 编辑
摘要:作为WCF中一个核心概念,终结点在不同的语境中实际上指代不同的对象。站在服务描述的角度,我们所说的终结点实际上是指ServiceEndpoint对象。如果站在WCF服务端运行时框架来说,终结点实际上指代的是终结点分发器(EndpointDispatcher)。两者是一一匹配的,并且前者是创建后者的基础。而终结点分发器具有自己的运行,即分发运行时(DispatchRuntime)。 阅读全文
posted @ 2011-07-23 15:07 Artech 阅读(6126) 评论(19) 推荐(10) 编辑
摘要:在这篇文章中,我们对信道分发器(ChannelDispatcher)本身作一个深入的了解,首先来看看它具有哪些可供扩展的组件,以及我们可以针对信道分发器对WCF实现哪些可能的扩展。 阅读全文
posted @ 2011-07-18 22:12 Artech 阅读(6392) 评论(16) 推荐(9) 编辑
摘要:WCF的服务端架构体系又可以成为服务寄宿端架构体系。我们知道,对于一个基于某种类型的服务进行寄宿只需要使用到一个唯一的对象,那就是ServiceHost。甚至在某种语境下,我们所说的服务实际上就是指的对应的ServiceHost对象。整个服务寄宿过程包括两个阶段,即服务描述的创建和服务端运行框架的建立。而第一个阶段创建的服务描述是为了第二个阶段对服务端运行时框架建立服务的。 阅读全文
posted @ 2011-07-17 22:10 Artech 阅读(10749) 评论(18) 推荐(18) 编辑

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 22 下一页