Web Service:一种跨编程语言,跨操作系统平台的远程调用平台。
Web Service有SOAP和REST两种实现方式。
简介:
SOAP:简单对象访问协议(Simple Object Access Protocol ),是一种基于XML的协议,SOAP通用协议使用HTTP来发送XML格式的信息。
WSDL:Web Services Description Language是基于XML的用于描述web service以及如何访问的语言,简单说就是机器能阅读的一个正式描述文档而基于XML的语言,用于描述web services及其函数、参数、和返回值,
UDDI:通用描述、发现与集成服务,是一套基于web 的、分布式的、为web service提供、符合信息注册中心标准规范、以使别的企业能发现和访问的实现标准。
关于web service的概念和原理,简单说,是基于SOAP传输协议,用WSDL描述、XML封装数据、的一套标准接口技术,由于其跨平台、跨防火墙、开发成本低、开发周期短等优势而被广泛应用,但也有局限性,包括传输负载大、没有统一的实现模型等。
RPC:Web services的设计风格,web services 就是基于HTTP协议的RPC,Remote Procedure Call,采用C/S服务器,发送请求到服务器端,执行后返回结果,。优点是跨语言跨平台,缺点是编译期无法排错,只有运行时检查。
REST 是一组架构约束条件和原则,描述了一种如何访问/使用HTTP服务的方式。(如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。)
OData 是REST设计风格的一种实现,OData和其他Restful风格的Web service在于,OData提供了了描述数据和数据模型的一个统一的方式。所以说,OData并非是一种新的通信技术,OData也属于Web Service。
我们公司以往发布的web services应该是rpc风格的,但是网上也有SAP 发布restful风格的web的方法,我也一并贴出来,参考:
发布restful风格接口,有操作截图;发布restful,http风格的web,有代码
我们现在常用的是PI,发布的一般都是restful风格的接口了。
SOAP与restful架构相比,由于在不断扩充,性能方面有所下降,操作上也更加复杂,restful由于其面向资源接口设计以及抽象简化了不良设计,最大限度利用了http协议的设计理念,特变适合效率要求很高,对安全要求不高的场景。(sap对效率要求很高)。
注:740版本之後不再支持WSCONFIG,WSADMIN,請使用SOAMANAGER,配置。
SOAP方式的Web Service
目前而言,SOAP是一套Web Service(WS)的比较完整的实现方案。
在以SOAP方式实现的Web Service中,SOAP协议和WSDL构成了Web服务的结构单元。
SOAP也即“简单对象访问协议(Simple Object Access Protocol)”,我们知道Web Service通过HTTP协议发送和接收数据,SOAP协议中增加了一些特定的HTTP消息头,来说明HTTP消息的内容格式。客户端按照SOAP的格式便可以通过Web Service调用位于远程系统上的服务。
WSDL也即“Web服务描述语言(Web Services Description Language)”,客户端可以通过WSDL了解这个Web Service所提供的功能,描述了Web Service中提供的函数、函数的输入参数和返回值。
简而言之,在SOAP方式实现的Web Service中,SOAP描述了“访问方式”,通过WSDL描述了“服务内容”,SOAP方式的Web Service是WS的一套完整的实现方案。
SAP系统中的SOAP方式Web Service
在SAP系统中,开发和消费SOAP方式的Web Service十分方便。
在SAP Netweaver平台上通过UDDI工具,可以将SAP已有的功能(例如RFC, BAPI等)直接封装成web service对象,供其他系统调用,或者通过实现类调用其他系统的web service,进而轻松实现SAP与其它系统的集成。
完成这一Web Service封装和消费,在SAP系统中主要通过T-code 'SOAMANAGER' 完成,对于ABAP开发人员而言,并不需要了解Web Service的封装细节,只要学会如何“发布”和“消费”web service即可。
REST方式的Web Service - OData
REST也即“表述性状态转移(Representational State Transfer)”,REST是一种HTTP服务的设计风格,描述了一套如何设计和访问HTTP服务的原则。
因此,相较于SOAP,REST并非是一个协议,仅是一种设计风格,并没有强制的约束力。
不同的设计者可以依据自己的实际项目和需求,设计REST风格的Web Service,也正是由于这种“各自为战”的Web Service实现方式,让REST方式的web service在性能和可用性上通常会优于依据SOAP发布的web service, 但由于在细节上没有太多约束,其统一性上不及SOAP。
OData是REST设计风格的一种实现,OData和其他Restful风格的Web service在于,OData提供了了描述数据和数据模型的一个统一的方式。
因此,在一定程度上讲,OData方式的web service很好地解决了RESTful形式的Web Service在统一性上所面临的问题。
SAP系统中的OData
在SAP系统中,通过Gateway统一管理SAP 系统中的OData服务。
SAP Gateway是SAP Netweaver平台上的一个组件,用于集中管理OData相关的功能,实现SAP系统与外部设备、平台、应用的集成。我们可以通过SAP Gateway来创建并发布相应的OData服务。
在SAP系统中,创建OData服务的事务代码为SEGW。
通过SEGW,我们可将SAP系统内的数据库表、RFC等以OData的形式发布出去,供Web App使用。
因此,类似于SOAP形式的web service, 对于ABAP开发人员而言,并不需要了解Odata的封装细节,学会使用SEGW这个工具即可。此外,在SAP Fiori开发过程中,除了从backend发布OData服务,开发人员也可以直接将CDS发布OData服务。