加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

新手初识webservice-理论篇

发布时间:2020-12-17 01:01:28 所属栏目:安全 来源:网络整理
导读:工作中接触到了一些webservice应用,进而想整理出一些东西,给组里如我一样的毛头小伙子分享下,后来觉得在OSC一直默默潜水了快两年了,好像没留下过什么有价值的东西,就顺路记在这里吧,望老鸟和高手多多批评指正,新手多多交流~ 暂时写了两篇草稿,第一

工作中接触到了一些webservice应用,进而想整理出一些东西,给组里如我一样的毛头小伙子分享下,后来觉得在OSC一直默默潜水了快两年了,好像没留下过什么有价值的东西,就顺路记在这里吧,望老鸟和高手多多批评指正,新手多多交流~

暂时写了两篇草稿,第一篇是理论篇,介绍了我所认识的webservice,主要摘录了Andrew830314#163.com的《Java的webservice支持》的部分内容,然后加上了我自己对webservice的一些理解,不求多详细复杂,只希望有JavaWeb基础但没有 webservice基础的开发人员,对 webservice有一个初步的认识,知道它是什么,有什么,做什么的;第二篇是实践篇,介绍了我用cxf做的一个demo,主要参考了http://cxf.apache.org/,力求例子简单直观,让开发人员知道怎样使用最基本的webservice,为掌握 webservice开发预热。

?

正文如下

SOA(Service-Oriented Architecture)面向服务架构,将应用程序的不同功能单元通过中立的契约(独立于硬件平台、操作系统、编程语言和应用)联系起来。?
@路飞????例如一个iphone上的在线销售系统:服务端基于Java,部署在Linux服务器上,提供了某功能X,例如根据输入的商品ID和数量,从商品库中检索单价,然后计算总额,最后输出总额;客户端基于Object-C,是安装在iphone上的app,提供了某功能Y,例如根据用户选择的商品及其数量,告诉客户所选商品的总额;这里,Y功能需要通过中立的契约(穿越了Linux和IOS,穿越了Java和Object-C)来与X功能通信,从而使整个应用程序完整。
@路飞????PS 关于iphone和Object-C完全是我杜撰的,我对iphone和Object-C一无所知,这里只是为了说明“中立的契约”,以及赶时髦。。。要是这个例子有问题,可以换成Windows和.NET。。。。。。
?
目前来说,webservice是SOA的一种较好的实现方式,webservice采用HTTP作为传输协议,SOAP(Simple Object Access Protocol)作为传输消息的格式。但webservice并不是完全符合SOA的概念,因为SOAP协议是webservice的特有协议,并未符合SOA的传输协议透明化的要求。
?
@路飞????webservice这个东西基本实现了上面“中立的契约”的功能:“SOAP作为传输消息的格式”,SOAP格式其实是使用了xml这种跨平台的文件格式,即webservice传输的消息被解析成xml格式,然后“webservice采用HTTP作为传输协议”,http协议当然各个平台都支持了,于是从传输通道到传输的内容都实现了跨平台。具体细节如SOAP传输消息的格式暂时还请不要太深究,我的经验是没亲身试用之前越想得多越不利于深入学习。。。
@路飞????“并未符合SOA的传输协议透明化的要求”这一点,我理解的也不很清楚,下面是一点不成熟的看法:SOAP是webservice的消息传输格式,X功能和Y功能想要使用webservice进行通信,就必须针对SOAP格式进行额外的开发工作,而不能直接使用对所有平台都透明的消息传输格式格式(如http,即不仅使用http做传输通道,还直接使用它的消息格式携带信息,而不是先转成SOAP格式再让http传输(最新研究 JAX-RS发现这个webservice好像差不多实现了,需要进一步确认)(果然是知道的越多,才发现自己无知的越多,JAX-RS刚看到不久,结果引出了这个不好处理的问题,对新手的建议是这部分了解下就可以了,我们的目的是掌握webservice的最小功能,其他的功能等有基础了再进一步学习))。可是既然想通过“中立的契约”跨平台交互,这种本地适应化工作不是必须的么,“传输协议透明化”是为了追求本地适应化的最小工作量么??
@路飞????我工作中接触到的webservice的中立性主要体现在了跨应用上,即主要用于不同的Java应用进行交互,如服务端和客户端是两个不同的应用,然后客户端通过webservice调用服务端的某核心功能,跨硬件平台、编程语言这种复杂应用还没接触到~

@路飞? ? 总结一下,我所理解的最小功能的webservice,就是A和B两个java应用,其中A为服务端server,对外提供了某项功能的webservice接口,B为客户端Client,需要调用这个webservice接口实现某业务。这其中涉及到的东西包括A如何把自己的普通方法对外暴露成webservice接口,以及B如何使用别的应用(A)的接口为自己的业务工作。这些东西在第二篇实践篇中将会有一个详细的demo级别的demo为大家做介绍,该demo的最低技能要求为:1、知道什么是javaweb的MVC分层,2、知道Spring配置IOC是什么。实践篇还在修改中,希望尽快发出来,敬请期待~

下面是一些更抽象(至少对于我是。。。)的东西,新手建议了解下就可以了

PS? ? 现在还只接触了JAX-WS,在实践篇介绍的demo也是基于JAX-WS的,JAX-RS在学习中,可能在实践篇2.0会介绍
?
Java中共有三种WebService规范,分别是
????JAX-WS(Java API For XML-WebService)
????JAXM&SAAJ(Java API For XML Message)
????JAX-RS,是Java针对REST(Representation State Transfer)制定的服务规范
JAX-WS和JAXM&SAAJ都是基于SOAP的web服务,相比之下JAXM&SAAJ暴露了SOAP更多的底层细节,如果想控制SOAP消息的更多细节,可以使用;而JAX-WS更加抽象,隐藏了更多的细节,更加面向对象,实现时基本不需要关系SOAP的任何细节。
JAX-RS????REST是一种软件架构模式,不是像SOAP那样本身承载着一种消息协议。REST中重要的两个概念就是资源定位和资源操作,而HTTP协议恰好完整的提供了这两个要点,HTTP协议中的URI可以完成资源定位,GET、POST、OPTION等方法可以完成资源操作,因此REST完全依赖HTTP协议就可以完成Web服务,而不像SOAP协议那样只利用HTTP的传输特性,定位与操作由SOAP协议自身完成。


另,实践篇地址 http://my.oschina.net/achi/blog/53227

看的累了吧,休息下,来个小福利

http://www.o2gzs.com/ooxx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读