使用Web服务时,端点,服务和端口之间有什么区别?

时间:2008-08-14 19:23:55

标签: java .net web-services cxf axis

我使用Apache CXF将大约10个java类公开为Web服务。

我使用CXF,Axis和.NET生成了客户端。

在Axis和CXF中生成“服务”或“定位器”。 通过这项服务,您可以获得“港口”。 “端口”用于对Web服务公开的方法进行单独调用。

在.NET中,“服务”直接公开对Web服务的调用。

有人可以解释端口,服务,定位器和端点在Web服务方面的区别吗?

轴:

PatientServiceImplServiceLocator locator = 
    new PatientServiceImplServiceLocator();
PatientService service = locator.getPatientServiceImplPort();

CXF:

PatientServiceImplService locator = new PatientServiceImplService();
PatientService service = locator.getPatientServiceImplPort();

达网络:

PatientServiceImplService service = new PatientServiceImplService();

4 个答案:

答案 0 :(得分:32)

我根据Kevin Kenny的回答找到了这些信息,但我想我会把它发布给其他人。

WSDL文档将服务定义为网络端点或端口的集合。在WSDL中,端点和消息的抽象定义与其具体的网络部署或数据格式绑定分开。这允许重用抽象定义:消息,它们是被交换数据的抽象描述,以及作为抽象操作集合的端口类型。特定端口类型的具体协议和数据格式规范构成可重用绑定。通过将网络地址与可重用绑定相关联来定义端口,并且端口集合定义服务。因此,WSDL文档在网络服务的定义中使用以下元素:

  • 类型 - 使用某种类型系统(例如XSD)进行数据类型定义的容器。
  • 消息 - 正在传达的数据的抽象类型定义。
  • 操作 - 服务支持的操作的抽象描述。
  • 端口类型 - 一个或多个端点支持的一组抽象操作。
  • 绑定 - 特定端口类型的具体协议和数据格式规范。
  • 端口 - 定义为绑定和网络地址组合的单个端点。
  • 服务 - 相关端点的集合。

答案 1 :(得分:6)

我会跳到http://www.w3.org/TR/wsdl.html我认为很好地解释了端口,服务和端点。定位器是一种特定于实现的机制,某些WS堆栈用它来提供对服务端点的访问。

答案 2 :(得分:4)

我想补充说<port><endpoint>服务于同一目的,但WSDL 1.1使用port,WSDL 2.0使用endpoint

答案 3 :(得分:1)

正如您已经提到的,这些术语在不同的堆栈中意味着不同的东西 - 对于Web服务没有一个正确的通用答案。