专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »项目管理 » webservice:将Web service解读到底 »正文

webservice:将Web service解读到底

来源: 发布时间:星期五, 2009年1月9日 浏览:81次 评论:0
  分布式应用和浏览器

  研究下当前应用开发你会发现个绝对倾向:人们开始偏爱基于浏览器瘦客户应用这当然不是瘦客户能够提供更好用户界面而是它能够避免花在桌面应用发布上高成本发布桌面应用成本很高半是应用安装和配置问题半是客户和服务器的间通信问题

  传统Windows富客户应用使用DCOM来和服务器进行通信和远程对象配置好DCOM使其在个大型网络中正常工作将是个极富挑战性工作同时也是许多IT工程师噩梦事实上许多IT工程师宁愿忍受浏览器所带来功能限制也不愿在局域网上去运行个DCOM在我看来结果就是个发布容易但开发难度大而且用户界面极其受限应用极端就是你花了更多资金和时间却开发出从用户看来功能更弱应用不信?问问你会计师对新基于浏览器会计软件Software有什么想法:绝大多数商用用户希望使用更加友好Windows用户界面

  有关客户端和服务器通信问题个完美解决思路方法是使用HTTP协议来通信这是任何运行Web浏览器机器都在使用HTTP协议同时当前许多防火墙也配置为只允许HTTP连接

  许多商用还面临另个问题那就是和其他互操作性如果所有应用都是使用COM或.NET语言写并且都运行在Windows平台上那就天下太平了然而事实上大多数商业数据仍然在大型主机上以非关系文件(VSAM)形式存放并由COBOL语言编写大型机访问而且目前还有很多商用继续在使用C、Java、Visual Basic和其他各种各样语言编写现在除了最简单的外所有应用都需要和运行在其他异构平台上应用集成并进行数据交换这样任务通常都是由特殊思路方法如文件传输和分析消息队列还有仅适用于某些情况API如IBM"高级交流(APPC)"等来完成在以前没有个应用通信标准是独立于平台、组建模型和编程语言只有通过Web Service客户端和服务器才能够自由用HTTP进行通信不论两个平台和编程语言是什么

  什么是Web Service

  对这个问题我们至少有两种答案从表面上看Web service 就是个应用它向外界暴露出个能够通过Web进行API这就是说你能够用编程思路方法通过Web来这个应用我们把这个Web service 应用叫做客户例如你想创建个Web service 作用是返回当前天气情况那么你可已建立个ASP页面它接受邮政编码作为查询然后返回个由逗号隔开包含了当前气温和天气这个ASP页面客户端需要发送下面这个HTTP GET请求:

  http://host.company.com/weather.asp?zipcode=20171

  返回数据就应该是这样:

  这个ASP页面就应该可以算作是Web service 了它基于HTTP GET请求暴露出了个可以通过WebAPI当然Web service 还有更多东西

  下面是对Web service 更精确解释: Web services是建立可互操作分布式应用新平台作为个Windows你可能已经用COM或DCOM建立过基于组件分布式应用COM是个非常好组件技术但是我们也很容易举出COM并不能满足要求情况

  Web service平台是套标准它定义了应用如何在Web上实现互操作性你可以用任何你喜欢语言在任何你喜欢平台上写Web service 只要我们可以通过Web service标准对这些服务进行查询和访问

  新平台

  Web service平台需要套协议来实现分布式应用创建任何平台都有它数据表示思路方法和类型系统要实现互操作性Web service平台必须提供套标准类型系统用于沟通区别平台、编程语言和组件模型中区别类型系统在传统分布式系统中基于界面(erface)平台提供了些思路方法来描述界面、思路方法和参数(译注:如COM和COBAR中IDL语言)同样Web service平台也必须提供种标准来描述Web service让客户可以得到足够信息来这个Web service最后我们还必须有种思路方法来对这个Web service进行远程这种思路方法实际是种远程过程协议(RPC)为了达到互操作性这种RPC协议还必须和平台和编程语言无关下面几个小节就简要介绍了组成Web service平台这 3个技术

  XML和XSD

  可扩展标记语言(XML)是Web service平台中表示数据基本格式除了易于建立和易于分析外XML主要优点在于它既是平台无关又是厂商无关无关性是比技术优越性更重要:软件Software厂商是不会选择个由竞争对手所发明技术

  XML解决了数据表示问题但它没有定义套标准数据类型更没有说如何去扩展这套数据类型例如整形数到底代表什么?16位32位还是64位?这些细节对实现互操作性都是很重要W3C制定XML Schema(XSD)就是专门解决这个问题套标准它定义了套标准数据类型并给出了种语言来扩展这套数据类型Web service平台就是用XSD来作为其数据类型系统当你用某种语言(如VB.NET或C#)来构造个Web service时为了符合Web service标准所有你使用数据类型都必须被转换为XSD类型你用工具可能已经自动帮你完成了这个转换但你很可能会根据你需要修改下转换过程在第 2章中我们将深入XSD学习怎样转换自定义数据类型(例如类)到XSD类型

  SOAP

  Web service建好以后你或者其他人就会去简单对象访问协议(SOAP)提供了标准RPC思路方法来Web service实际上SOAP在这里有点用词不当:它意味着下面Web service是以对象方式表示但事实并不定如此:你完全可以把你Web service写成系列C并仍然使用SOAP进行SOAP规范标准定义了SOAP消息格式以及怎样通过HTTP协议来使用SOAPSOAP也是基于XML和XSDXML是SOAP数据编码方式第 3章我们会讨论SOAP并结识SOAP消息各种元素

  WSDL

  你会怎样向别人介绍你Web service有什么功能以及每个参数呢?你可能会自己写套文档你甚至可能会口头上告诉需要使用你Web service这些非正式思路方法至少都有个严重问题:当员坐到电脑前想要使用你Web service时候他们工具(如Visual Studio)无法给他们提供任何帮助这些工具根本就不了解你Web service



  解决思路方法是:用机器能阅读方式提供个正式描述文档Web service描述语言(WSDL)就是这样个基于XML语言用于描述Web service及其、参数和返回值是基于XML所以WSDL既是机器可阅读又是人可阅读这将是个很大好处些最新开发工具既能根据你Web service生成WSDL文档又能导入WSDL文档生成相应Web service代码



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: