【问题标题】:What is the difference between an endpoint, a service, and a port when working with webservices?使用 Web 服务时,端点、服务和端口之间有什么区别?
【发布时间】:2010-09-05 21:49:29
【问题描述】:

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

我已经使用 CXF、Axis 和 .NET 生成了客户端。

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

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

关于网络服务,有人能解释一下端口、服务、定位器和端点之间的区别吗?

轴:

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

CXF:

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

.net:

PatientServiceImplService service = new PatientServiceImplService();

【问题讨论】:

    标签: java .net web-services cxf axis


    【解决方案1】:

    我根据 Kevin Kenny 的回答找到了这些信息,但我想我会把它贴在这里供其他人使用。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我想补充一点,<port><endpoint> 的用途相同,但 port 被 WSDL 1.1 使用,endpoint 被 WSDL 2.0 使用。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-04-26
            • 1970-01-01
            • 1970-01-01
            • 2018-01-09
            • 2011-11-09
            • 1970-01-01
            • 2013-05-29
            相关资源
            最近更新 更多