• 1.6分布式通讯协议-WebService


    RPC 包含的要素(webservice)

    协议层:tcp/ip

    应用层: http协议

    SOAP: http+xml

    分布式通信框架-webservice分析

    什么是webservice

    webservice也可以叫xml web service webservice, 轻量级的独立的通讯技术

    1. 基于web的服务:服务端提供的服务接口让客户端访问
    2. 跨平台、跨语言的整合方案

    为什么要使用webservice

    跨语言调用的解决方案

    什么时候要去使用webservice

    电商平台,订单的物流状态。

     .net实现的webservice服务接口

    webservice中的一些概念

    WSDL(web service definition language  webservice 定义语言)

    webservice服务需要通过wsdl文件来说明自己有什么服务可以对外调用。并且有哪些方法、方法里面有哪些参数

    wsdl基于XML(可扩展标记语言)去定义的

    1.  对应一个.wsdl的文件类型
    2.  定义了webservice的服务器端和客户端应用进行交互的传递数据和响应数据格式和方式
    3.  一个webservice对应唯一一个wsdl文档

    SOAP(simple object access protocol简单对象访问协议)

    http+xml

    webservice通过http协议发送和接收请求时, 发送的内容(请求报文)和接收的内容(响应报文)都是采用xml格式进行封装

    这些特定的HTTP消息头和XML内容格式就是SOAP协议

    1. 一种简单、基于HTTP和XML的协议
    2. soap消息:请求和响应消息
    3. http+xml报文

    SEI(webservice endpoint interface webservice的终端接口)

    webservice服务端用来处理请求的接口,也就是发布出去的接口。

    开发一个webservice的实例

     1.定义一个借口并用注解标明为WebService方法

    @WebService
    interface ISayHello {
    
        @WebMethod
        public String Hello(String name);
    }

    2.接口的实现

    @WebService
    public class ISayHelloImpl implements ISayHello{
        @Override
        public String Hello(String name) {
            return "hello,"+name+". I'm qiansion";
        }
    }

    3.用WebService发布

    public class BootStrap {
    
        public static void main(String[] args) {
            Endpoint.publish("http://localhost:8888/qiansion/hello",new ISayHelloImpl());
    
            System.out.println("publish success!");
        }
    }
    //服务启动之后,在浏览器输入:http://localhost:8888/qiansion/hello?wsdl
    //就会返回wsdl文档

    分析WSDL文档

     

    Types

    定义整服务端的数据报文

    Schema

    Message

    定义了在通信中使用的消息的数据结构

    PortType

    定义服务器端的SEI

    input/output表示输入/输出数据

    Binding标签

    1. type属性: 引用porttype

    <soap:binding style=”document”> 表示输出类型为文档

    1. operation : 指定实现方法
    2. input/output 表示输入和输出的数据类型 

    Service标签

    service: 服务器端的一个webservice的容器

    name属性: 指定客户端的容器类

    address: 当前webservice的请求地址

     

     

    Axis/Axis2

    apache开源的webservice工具

    可以通过Axis生成其他语言版本的客户端

    CXF

    Celtix+Xfire 。 用的很广泛,因为集成到了spring

    Xfire

    高性能的Webservice

    HTTP+JSON (新的webservice)

    HTTP+XML

    springmvc+REST实现的新webservice

  • 相关阅读:
    48. Rotate Image
    47. Permutations II
    46. Permutations
    45. Jump Game II
    44. Wildcard Matching
    43. Multiply Strings
    42. Trapping Rain Water
    Python_匿名函数
    Python_内置函数之map()
    Python_面向对象_单例模式
  • 原文地址:https://www.cnblogs.com/Qiansion/p/9840215.html
Copyright © 2020-2023  润新知