分布式应用程序_第1页
分布式应用程序_第2页
分布式应用程序_第3页
分布式应用程序_第4页
分布式应用程序_第5页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、分布式应用本章介绍企业发展中常用的两种分布式溶解热(Web服务和. NET Remoting )。 由于分布式计程仪方案的开发很复杂,本章的例子对逻辑性非常简单,在结构上也很完整。 读者阅读之后,可以使用Web服务或者. NET Remoting重新创建消息簿的示例,并且尝试将其置于多个服务器的顶部。23.1分布式应用概述分布式应用是指分布在多个物理位置的应用程序。 读者是否有可能询问一个应用程序分布在不同位置(不同的服务)的原因,理由如下负荷压力在大型系统中,模组较多,云同步产生的量较多,如果只搭载1台伺服器,则压力过大,系统经常会下降。 在大型系统中,可以在水平和垂直方向上划分系统,并将这

2、些模块分布在不同的服务中。 将一个应用程序纵向分割为Web演示层、业务逻辑层和数据层,可以使用三个独立的服务来男公关不同的层1 .网站服务器。 男公关网页表现层,压力主要在于网页请求和资源调用。2 .应用服务器。 男公关业务逻辑层,压力主要在于商业逻辑的订正。3 .数据库服务器。 男公关数据层(数据库),压力主要作用于数据处理。横方向的区分按每个模块进行区分,经过这样的“切肉”式的区分,如图23-1所示,系统整体的压力分布在不同的服务器上。图23-1“肉切丁”式区分系统当然,也可以将多个模块的业务逻辑层放在同一物理服务器上,使多个模块可以共享一个数据库。 我们在制作计程仪程序时应该考虑一定的伸

3、缩性,这里的服务器是广义的概念。提供服务如果将大型系统划分为多个模块,并且需要模块与模块之间的通讯,则必须将这些个关联组织为服务。 与使用组件的查询密码重用相比,使用服务的功能重用更加先进。 例如,如果一个系统中的三个模块都需要通讯端口功能,则一种方法是使通讯端口功能成为单独的组件,然后使三个模块引用该组件,而三个模块分别执行修正运算的另一种方法是, 使通讯端口功能成为独立的服务,这些个3个模块直接使用该服务取得数据,全部的补正操作在一个地方进行,后者比前者好得多。服务不仅可以提供给公司内部,也可以提供给公司外部。 如果其他钟点工人员需要使用通讯端口服务,则不希望直接发布所有信息。 在这种情况

4、下,组件方式是不合理的。 通过发布服务、批准和验证服务的用户,可以确保钟点工人员能够获得所需的数据,并且不会公开核心数据。本章介绍如何使用Web服务和. NET Remoting实现分布式应用。 我们虽然没有过多讨论那些反应历程和细节,但只要用简单的例子让你自己实现分散,就可以查找更多的从此往后资料,系统地学习。Web服务通过消息进行通讯,消息在调用方和服务方之间传递。 NET Remoting是基于对象的,因此可以通过网络调用对象的方法。 正因为是这个本质的差异,所以Web服务和. NET Remoting (由. NET Remoting这个单词可以看出remoting只是. net中的解

5、决方法)的特性有很大差异。网络服务. net远程跨平台是与. NET类型紧密连接noyes效率低通讯协议http/TCP/IPC. NET Remoting的优点是使用TCP连接协议进行通讯以提高性能。 如果系统完全基于. NET平台,并且分布在同一有线局域网中, NET远程非常适合。 另一方面,由于Web服务使用统一的消息进行通讯,如果我们的应用程序需要跨平台提供服务,并且效率要求不高,那么Web服务是一个很好的选择。可能会完全吃不透Web服务和. net远程是什么。 没关系。 接下来请看。 由于VS2005的强大集成驱动电路,分布式应用的设置和开发不再困难。 感受分散的魅力吧23.2网络服

6、务23.2.1创建web服务1 .首先,创建一个新的空溶解热,如图23-2所示。2 .在溶解热快捷支重轮中右键喀呖声之前创建的溶解热,选择“添加”“新建站点”命令,如图23-3所示,创建新的ASP.NET Web服务项目工程。图23-2新的空溶解热图23-3新的ASP.net网络服务当您打开位于App_Code目录查询上的Service.cs文件时,您会看到集成驱动电路自动创建了数字大板块方法。使用系统;使用系统;网页;使用系统. web .服务;使用系统. web .服务.协议;“web服务(名称空间= 3358 / )网络服务绑定(conforms to=WSI配置文

7、件.基本配置文件1 _1)公共类服务3360系统. web .服务. web服务举止公共服务()举止以下网络方法公共字符串帮助世界()。回复,回复,回复。以下以下 web method property表示HelloWorld方法只返回字符串的方法。 如图23-4所示,直接按下CTRL F5牛鼻子执行Web服务,而不更改查询密码。请注意,服务名称Service中的服务下面有一个HelloWorld方法。 此外,建议更改差动奥尔特的名字空间。 关闭页面,修改服务名称和名字空间“web服务(名称空间= 3358 / )改为:web服务(名称=我的服务、描述= web服务说明)

8、、名称空间= 3358 www。我的/ 重新运行服务时,如图23图5所示,可以看到服务名、服务说明、名字空间已成功变更。图23-4执行Web服务图23-5服务名、服务说明及服务名字空间的变更当您喀呖声HelloWorld网络链接时,系统将提示您喀呖声“调用”按钮来测试该方法,如图23-6所示。当喀呖声“调用”按钮时,方法返回的结果如图23-7所示。图23-6测试对方方法的图23-7的Web服务调用的结果您可以看到Web服务使用XML格式中的数据返回操作结果。5 .如果测试服务没有问题,请使用ASP.NET应用程序调用Web服务。 以前使用VS 2005附带的开发服务器执行

9、Web服务,所以需要首先使用集成智能分发Web服务。 在集成智能下,创建一个指示Web服务路径的新虚拟目录查询。 假设虚拟目录查询名为testWeb服务,则可以使用以下地址网站数据库到该web服务:http:/本地主机/测试网络服务/服务. asmx6 .右喀呖声溶解热,创建新的ASP.NET应用程序TestWeb,右喀呖声网站,选择“添加Web引用”(参见图23-8 )。图23-8添加web参考通过在URL地址栏中键入Web服务的地址或者直接喀呖声“原始苯基苯乙烯酮计算机上的Web服务”网络链接,可以导航到在先所建立的Web服务。 在Web引用名称字符框中键入TestWS,如图23-9所示。

10、7 .当喀呖声“添加引用”按钮时,可以看到集成驱动电路自动添加了Web服务的本代理,如图23-10所示。图23-9Web服务成功找到在图23-10集成驱动电路中创建的web服务代理更改Default.aspx中Page_Load的事件处理器方法以调用Web服务。对象发送器、事件发生器、事件加载举止testws.my服务=新测试. my服务();response.write (服务. hello world () );以下令人吃惊的是,对Web服务的调用和对本地类库的调用没有任何区别,集成驱动电路将Web服务的XML定义自动封装为方法。 其中TestWS是在添加Web引用时输入的Web引用名称,

11、而MyService是在Web服务中定义的名称。web服务(名称= my service ,描述web服务说明,名称空间= /)你可能考虑了问题。 现在,我们的Web服务是为了本地测试而部署的,但是URL也会更改,因为在发布时此服务可能部署到其他服务器。 那么,要随时修改这个URL的话是怎么破吗? 现在,打开Web.config吧。 集成驱动电路早就想到了这一点,在appSettings节点下添加了服务的URL。9 .现在可以打开网站确认服务是否被正常调用了。 如图23-11所示,页面上显示“Hello World”。图23-11使用ASP.net

12、站点调用Web服务23.2.2 HTTP-GET方式的Web服务您可能想要使用URL直接网站数据库到Web服务。 HTTP-GET连接协议的Web服务能满足你的要求。1 .为web服务创建Web.config配置文件。现在,我们添加了对HTTP-GET的连接协议,以便Web服务能够通讯端口基于HTTP-GET的网站数据库。 同样,也可以从配置文件中删除一些连接协议。 请注意,开启HTTP-GET方式会降低Web服务的保密工作。 重新编译Web服务。2 .添加web服务的web方法腻子粉。 web method (描述=修正两个整数之和 ) 公共插件(插入a、插入b )举止返回ab;以下此方法接

13、受两个整数残奥参数,并返回两个残奥参数的和。 另外,在此对方法进行了说明。3 .因为web服务变更了,所以ASP.NET应用程序能否自动感知到这个变更呢? 要更新在线代理类,必须更新Web引用。 如果右喀呖声TestWS文件夹,则可以选择“更新Web引用”,如图23-12所示。打开Default.aspx,并在页面中添加用于使用HTPP-GET方法调用Web服务的Add方法的网络链接。 Get方法调用读取配置文件以获取Web服务的路径,然后添加要调用的方法名和残奥仪表。5 .打开页面,喀呖声网络链接,结果如图23-13所示。图23-12更新Web参照图23-12以http-get方式调用Web服务23.2.3异步调用网络服务假设统一的操作需要20秒的通讯端口Web服务。 调用此操作时,是否只有等待页面才能执行其他本地操作? 当然,不能通过异步调用Web服务来解决这个问题。1 .更改web服务,添加另一种方法。 web method (描述=执行时间为2秒的方法 ) 公共字符串长工作()举止system.threading.thread.sleep (2000 );return 普计程仪制作的乐趣;以下此方法等待线程两秒钟,并返回执行结果。 因此,这个方法大约需要2秒。2 .编译Web服务并更新网站的Web引用。在Default.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论