一步一个脚印学习WCF之一WCF概要(中)之客户端与服务
2011-11-02 18:50
567 查看
二: 客户端与服务
用户所使用的客户端和用户所需要的服务如何交互?这个Service(如图一)为了能够给客户提供服务的话,这个Service必然要被执行,它执行的时候必然要放到主机里面,也就是必然要放到服务的主机里面Service Host(如图二)来进行执行的,所以这个Service是安插到ServiceHost里面的,这个Serveice和ServiceHost是在一个主机进程当中的。大家看图三多了两个Endpoint,我们把它之为端点,这个端点的主要作用是用于来提供Service向外发布的接口,如图四,比如:现在有一个客户要来访问这个Service的话,是通过Endpoint来进行访问的,我们把这张图比作一个公司,边界虚框比作公司的大楼,Service比作公司里面一个一个不同的工作人员来对外提供服务的,Endpoint比作公司的前台主要接待从外部进来的访问并且把访问提交给公司里面的工作人员来进行处理。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/ac0f0dbd88cb5260dd082e6c56de3e2a.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/5a089680a94cbf432b83dcd5a27f4f8b.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/51ced86bf64d0500213a0645c9fe9af0.jpg)
图一 图二 图三
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/0619964b416afa65791e11b203d71952.jpg)
图四
大家看图五出现了客户进程,客户进程里面出现了ClientApp也就是客户端的应用程序,客户端的应用程序有它自己的逻辑来进行相应的工作,在这个客户的应用程序当中现在有一个Proxy代理,这个Proxy实现由客户进程到主机进程之间的通信,也就是说通信是由来Proxy来完成的,但是实际上Proxy并不直接与主机进程的Endpoint来进行通信,直接与主机进程的Endpoint来进行通信的是在客户端proxy里面的Endpoint来进行通信的,如图六,在WCF这种环境中的话消息的直接通信是在两端的Endpoint,当消息由一端的端点发出,由另外一端的端点来接收到,再把这个消息提交给Service来进行处理,比如:现在我们客户想向Service发一个消息或者想完成一些特定的功能,首先把做这些事情的需求提交给Proxy,,然后在由Proxy进行封装提交给客户进程的Endpoint,再有客户进程的Endpoint发送给主机进程的Endpoint,然后主机进程的Endpoint在把消息提交给Service由Service这一段进行处理,最后在反方面发送回来,由Proxy来开包,最后提交回到客户的应用程序当中。如图七这就是整个一个消息传递的流程。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/194391864135827a0cc6cce5ce0ceb75.jpg)
图五
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/1ced7cdb589274db1b56191c1525743a.jpg)
图六
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/eb1810cdf4039d47a855bd9a8f63579e.jpg)
图七
用户所使用的客户端和用户所需要的服务如何交互?这个Service(如图一)为了能够给客户提供服务的话,这个Service必然要被执行,它执行的时候必然要放到主机里面,也就是必然要放到服务的主机里面Service Host(如图二)来进行执行的,所以这个Service是安插到ServiceHost里面的,这个Serveice和ServiceHost是在一个主机进程当中的。大家看图三多了两个Endpoint,我们把它之为端点,这个端点的主要作用是用于来提供Service向外发布的接口,如图四,比如:现在有一个客户要来访问这个Service的话,是通过Endpoint来进行访问的,我们把这张图比作一个公司,边界虚框比作公司的大楼,Service比作公司里面一个一个不同的工作人员来对外提供服务的,Endpoint比作公司的前台主要接待从外部进来的访问并且把访问提交给公司里面的工作人员来进行处理。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/ac0f0dbd88cb5260dd082e6c56de3e2a.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/5a089680a94cbf432b83dcd5a27f4f8b.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/51ced86bf64d0500213a0645c9fe9af0.jpg)
图一 图二 图三
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/0619964b416afa65791e11b203d71952.jpg)
图四
大家看图五出现了客户进程,客户进程里面出现了ClientApp也就是客户端的应用程序,客户端的应用程序有它自己的逻辑来进行相应的工作,在这个客户的应用程序当中现在有一个Proxy代理,这个Proxy实现由客户进程到主机进程之间的通信,也就是说通信是由来Proxy来完成的,但是实际上Proxy并不直接与主机进程的Endpoint来进行通信,直接与主机进程的Endpoint来进行通信的是在客户端proxy里面的Endpoint来进行通信的,如图六,在WCF这种环境中的话消息的直接通信是在两端的Endpoint,当消息由一端的端点发出,由另外一端的端点来接收到,再把这个消息提交给Service来进行处理,比如:现在我们客户想向Service发一个消息或者想完成一些特定的功能,首先把做这些事情的需求提交给Proxy,,然后在由Proxy进行封装提交给客户进程的Endpoint,再有客户进程的Endpoint发送给主机进程的Endpoint,然后主机进程的Endpoint在把消息提交给Service由Service这一段进行处理,最后在反方面发送回来,由Proxy来开包,最后提交回到客户的应用程序当中。如图七这就是整个一个消息传递的流程。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/194391864135827a0cc6cce5ce0ceb75.jpg)
图五
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/1ced7cdb589274db1b56191c1525743a.jpg)
图六
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/23/eb1810cdf4039d47a855bd9a8f63579e.jpg)
图七
相关文章推荐
- 一步一个脚印学习WCF系列之WCF概要—客户端与服务(三)
- 一步一个脚印学习WCF之一WCF概要(中)之客户端与服务-WCF服务的创建与调用Demo
- 一步一个脚印学习WCF系列之WCF概要—WCF服务的创建与调用HelloWorld实例,通过配置文件方式(六)
- 一步一个脚印学习WCF系列之WCF概要—WCF服务的创建与调用HelloWorld实例,通过编码方式(四)
- 一步一个脚印学习WCF之一WCF概要(下)之生成元数据与代理
- 一步一个脚印学习WCF系列之WCF概要—WCF出现的目的(一)
- 一步一个脚印学习WCF系列之WCF契约设计—1-服务契约ServiceContractAttribute
- 一步一个脚印学习WCF系列之WCF概要—生成元数据与代理(五)
- 一步一个脚印学习WCF系列之WCF概要—WCF与SOA(二)
- 一步一个脚印学习WCF之一WCF概要(上)之WCF与SOA
- 一步一个脚印学习WCF系列之WCF契约设计—2-复杂类型序列化之可序列化类型SerializableAttribute
- 一步一个脚印学习WCF系列之WCF契约设计—3-复杂类型序列化之数据契约DataContractAttribute
- 一步一个脚印学习WCF系列之WCF基础术语—绑定(Binding)(五)
- 一步一个脚印学习WCF系列之WCF基础术语—1-契约(Contract)
- 一步一个脚印学习WCF之二构建一个简单的WCF应用程序前必须掌握的WCF基础术语---契约(Contract)
- 一步一个脚印学习WCF之二构建一个简单的WCF应用程序前必须掌握的WCF基础术语---契约的名称与命名空间
- 一步一个脚印学习WCF系列之WCF基础术语—地址(Address)(四)
- 一步一个脚印学习WCF系列之WCF基础术语—契约的名称与命名空间(二)
- 一步一个脚印学习WCF之一WCF出现的目的
- 一步一个脚印学习WCF系列之WCF基础术语—托管(Hosting)(三)