有两种方法可以查看 web service 的架构:
随着 web service 的发展,可能会加入更多的层,每一层也可能加入更多的技术。
后续章节将讨论 web service 的组件。
SOAP 并不依赖于任何特定的传输协议。事实上,你可以通过 HTTP,SMTP,或者 FTP 来使用 SOAP。因此,一个有前途的想法就是在 BEEP 之上使用 SOAP。
- 第一个是去检查每个 web service 所负责的角色
- 第二个是检查 web service 的协议栈
web service 的角色
web service 架构中主要有三种角色:服务提供者
它是 web service 的提供者。服务提供者实现了服务并且使它可以通过互联网进行访问。服务请求者
它是 web service 的消费者。请求者通过开启一个网络连接并发送一个 XML 请求来使用一个已有的 web service。服务注册
这是一个在逻辑上集中起来的的一系列服务的目录。这个注册提供了一个开发者可以发布新服务或者查找现有服务的中心地带。它因此充当了一个为公司和他们的服务进行集中结算的场所。web service 协议栈
查看 web service 架构的第二个选择是检查 web service 协议栈。协议栈还在进行完善中,但目前已经具备四个主要的层。服务传输层
这一层负责应用之间的消息传输。目前,该层包括了超文本传输协议(HTTP)、简单邮件传输协议(SMTP)、文件传输协议(FTP)、以及一些新兴协议,比如块可扩展交换协议(BEEP)。XML 消息层
这一层负责将消息编码到一个通用的 XML 格式,这样消息就可以被另一端所解读。目前,这一层包括 XML-RPC 和 SOAP。服务描述层
这一层负责将公共接口描述为一个特定的 web service。目前,服务描述通过 web service 描述语言(WSDL)来处理。服务发现层
这一层负责集中服务到一个通用的注册中心,并提供简单的发布/发现功能。目前,服务发现通过通用描述、发现与集成(UDDI)来处理。随着 web service 的发展,可能会加入更多的层,每一层也可能加入更多的技术。
后续章节将讨论 web service 的组件。
关于服务传输层的一点说明
web service 协议栈的最底层是服务传输层。这一层负责两台计算机之间 XML 消息的实际传输。超文本传输协议(HTTP)
HTTP 是目前进行服务传输最受欢迎的选择。HTTP 简单、稳定,并且部署广泛。此外,大多数防火墙允许 HTTP 通信。这样就允许 XML-RPC 或者 SOAP 消息冒充做 HTTP 消息。如果你想对远程应用进行集成的话这样很好,但是这样也确实会带来很多安全问题。块可扩展交换协议(BEEP)
这是一个有望取代 HTTP 的协议。BEEP 是互联网工程任务组(IETF)准备建立的一个新协议。BEEP 直接建立在 TCP 层并包含许多内置功能,包括一个初始的握手协议、身份验证、安全以及错误处理。使用 BEEP,我们可以为各种应用程序创建新协议,包括即时通讯、文件传输、内容整合以及网络管理。SOAP 并不依赖于任何特定的传输协议。事实上,你可以通过 HTTP,SMTP,或者 FTP 来使用 SOAP。因此,一个有前途的想法就是在 BEEP 之上使用 SOAP。
原文链接:http://www.tutorialspoint.com/webservices/web_services_architecture.htm