什么情况下使用webservice
1个回答
展开全部
什么是webservice,什么情况下使用,如何使用?
晓_418 | 浏览 2040 次
推荐于2016-06-17 13:38:59最佳答案
此后,我还会举出不应该使用Webservice的一些情况。
跨越防火墙的通信
如果你的应用程序有成千上万的用户,而且他们都分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。那是因为客户端和服务器之间通常都会有防火墙或者代理服务器。在这种情况下,你想使用DCOM就不是那么简单了,而且,通常你也不愿意把你的客户端程序发布到如此庞大数量的每一个用户手中。于是,你最终选择了用浏览器作为客户端,写下一堆ASP页面,把应用程序的中间层暴露给最终用户。结果呢?运气好的话,只是开发难度大了一些,运气不好的话,就会得到一个根本无法维护的应用程序。
想象一下你应该怎么在你的应用程序里面加入一个新的页面:你必须先建立好用户界面(Web页面),以及在这个页面后面,包含相应商业逻辑的中间层组件。这还不够,你还要再建立至少一个ASP页面,用来接受用户输入的信息,调用中间层组件,把结果格式化为HTML形式,最后还要把结果页送回浏览器。要是客户端代码不再如此依赖于HTML表单,客户端的编程不就简单多了吗?还有,建立ASP页面的那一步可以省略掉吗?
当然。如果你的中间层组件是Webservice的话,你完全可以从用户界面直接调用中间层组件,从而省掉建立ASP页面的那一步。要调用Webservice,你可以直接使用MicrosoftSOAPToolkit或.NET这样的SOAP客户端,也可以使用你自己开发的SOAP客户端,然后把它和你的应用程序连接起来。这样做,不仅可以缩短开发周期,还可以减少代码的复杂度,并增强整个应用程序的可维护性。同时,你的应用程序也不再需要在每次调用中间层组件时,都跳转到相应的结果页了。
以我的经验来看,在一个用户界面和中间层有较多交互的应用程序中,使用Webservice这种结构,可以轻松的节省花在用户界面编程上的20%的开发时间。这样做还有另一个好处,就是你将得到一个由Webservice组成的中间层,这一层是完全可以在应用程序集成或其他场合下被重用的。最后,通过Webservice把你的应用程序的逻辑和数据暴露出来,还可以让其它平台上的客户重用你的应用程序。
应用程序集成
企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发的力量。你的应用程序经常都需要从运行在古老的IBM主机上的程序中获取数据;或者再把数据发送到主机或UNIX应用程序中去。即使是在同一个平台上,不同的软件厂商生产的各种软件也常常需要集成起来。通过Webservice,应用程序可以用标准的方法把功能和数据暴露出来,供其它的应用程序使用。
例如,你有一个订单登录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等信息。同时,你还有一个订单执行程序,用于实际货物发送的管理。这两个程序是来自不同软件厂商的。一份新订单进来之后,订单登录程序需要通知订单执行程序发送货物。通过在订单执行程序上面增加一层Webservice,订单执行程序可以把AddOrder函数暴露出来。这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了。进而通过Webservice集成应用程序B2B的集成
Webservice是B2B集成成功的关键。通过Webservice,你的公司可以把关键的商务应用暴露给指定的供应商和客户。例如,把你的电子下单系统和电子发票系统暴露出来,你的客户就可以以电子的方式向你发送购货订单,而你的供应商则可以以电子的方式把原料采购的发票发送给你。当然,这并不是一个新的概念:电子文档交换(EDI)早就是这样了。Webservice和EDI之间的主要区别在于,Webservice的实现要比EDI简单得多,而且Webservice是运行在Internet上的,在世界任何地方都可轻易实现,这样其运行成本就相对较低。不过,Webservice并不像EDI那样,是文档交换或B2B集成的一套完整的解决方案。Webservice只是B2B集成的一个关键部分,还需要许多其它的部分才能完成这个集成。
晓_418 | 浏览 2040 次
推荐于2016-06-17 13:38:59最佳答案
此后,我还会举出不应该使用Webservice的一些情况。
跨越防火墙的通信
如果你的应用程序有成千上万的用户,而且他们都分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。那是因为客户端和服务器之间通常都会有防火墙或者代理服务器。在这种情况下,你想使用DCOM就不是那么简单了,而且,通常你也不愿意把你的客户端程序发布到如此庞大数量的每一个用户手中。于是,你最终选择了用浏览器作为客户端,写下一堆ASP页面,把应用程序的中间层暴露给最终用户。结果呢?运气好的话,只是开发难度大了一些,运气不好的话,就会得到一个根本无法维护的应用程序。
想象一下你应该怎么在你的应用程序里面加入一个新的页面:你必须先建立好用户界面(Web页面),以及在这个页面后面,包含相应商业逻辑的中间层组件。这还不够,你还要再建立至少一个ASP页面,用来接受用户输入的信息,调用中间层组件,把结果格式化为HTML形式,最后还要把结果页送回浏览器。要是客户端代码不再如此依赖于HTML表单,客户端的编程不就简单多了吗?还有,建立ASP页面的那一步可以省略掉吗?
当然。如果你的中间层组件是Webservice的话,你完全可以从用户界面直接调用中间层组件,从而省掉建立ASP页面的那一步。要调用Webservice,你可以直接使用MicrosoftSOAPToolkit或.NET这样的SOAP客户端,也可以使用你自己开发的SOAP客户端,然后把它和你的应用程序连接起来。这样做,不仅可以缩短开发周期,还可以减少代码的复杂度,并增强整个应用程序的可维护性。同时,你的应用程序也不再需要在每次调用中间层组件时,都跳转到相应的结果页了。
以我的经验来看,在一个用户界面和中间层有较多交互的应用程序中,使用Webservice这种结构,可以轻松的节省花在用户界面编程上的20%的开发时间。这样做还有另一个好处,就是你将得到一个由Webservice组成的中间层,这一层是完全可以在应用程序集成或其他场合下被重用的。最后,通过Webservice把你的应用程序的逻辑和数据暴露出来,还可以让其它平台上的客户重用你的应用程序。
应用程序集成
企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发的力量。你的应用程序经常都需要从运行在古老的IBM主机上的程序中获取数据;或者再把数据发送到主机或UNIX应用程序中去。即使是在同一个平台上,不同的软件厂商生产的各种软件也常常需要集成起来。通过Webservice,应用程序可以用标准的方法把功能和数据暴露出来,供其它的应用程序使用。
例如,你有一个订单登录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等信息。同时,你还有一个订单执行程序,用于实际货物发送的管理。这两个程序是来自不同软件厂商的。一份新订单进来之后,订单登录程序需要通知订单执行程序发送货物。通过在订单执行程序上面增加一层Webservice,订单执行程序可以把AddOrder函数暴露出来。这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了。进而通过Webservice集成应用程序B2B的集成
Webservice是B2B集成成功的关键。通过Webservice,你的公司可以把关键的商务应用暴露给指定的供应商和客户。例如,把你的电子下单系统和电子发票系统暴露出来,你的客户就可以以电子的方式向你发送购货订单,而你的供应商则可以以电子的方式把原料采购的发票发送给你。当然,这并不是一个新的概念:电子文档交换(EDI)早就是这样了。Webservice和EDI之间的主要区别在于,Webservice的实现要比EDI简单得多,而且Webservice是运行在Internet上的,在世界任何地方都可轻易实现,这样其运行成本就相对较低。不过,Webservice并不像EDI那样,是文档交换或B2B集成的一套完整的解决方案。Webservice只是B2B集成的一个关键部分,还需要许多其它的部分才能完成这个集成。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询