1.WebService原理

  • Webservice是使用Http发送SOAP协议的数据的一种远程调用技术
  • Webservice要开发服务端
  • Webservice要开发客户端
  • Webservice客户端开发需要阅读服务端的使用说明书(WSDL)
    WebService专题(二)-WebService原理_数据

2.WebService模拟

  • 服务器端
public class WeatherServer {

public static void main(String[] args) throws Exception {

Map<String, String> map=new HashMap<String, String>();
map.put("北京", "天气晴");
map.put("成都", "小雨");
map.put("深圳", "阴天");

//创建Socket
ServerSocket serverSocket=new ServerSocket(8888);
System.out.println("服务器端开始启动...监听端口:8888");
while(true){
//接收客户端的请求,accept为阻塞方法
Socket socket=serverSocket.accept();
//接收客户端数据
DataInputStream inputStream=new DataInputStream(socket.getInputStream());
//响应客户端数据
DataOutputStream outputStream=new DataOutputStream(socket.getOutputStream());
String city = inputStream.readUTF();
System.out.println("正在查询城市数据:"+city);
String result=map.get(city);
outputStream.writeUTF(result);
}
}
}
  • 客户端程序
public class WeatherClient {

public static void main(String[] args) throws Exception {
Scanner input=new Scanner(System.in);
System.out.print("请输入要查询的城市:");
String city = input.next();

Socket socket=new Socket("127.0.0.1",8888);
//发送数据到服务器
DataOutputStream outputStream=new DataOutputStream(socket.getOutputStream());
//接收服务器发送的数据
DataInputStream inputStream=new DataInputStream(socket.getInputStream());
outputStream.writeUTF(city);
//readUTF也是一个阻塞的方法,输出查询结果
String result = inputStream.readUTF();
System.out.println("查询结果:"+result);
}
}

总结:webservice的底层原理,就是socket

3.WebService中的几个重要术语

3.1.WSDL(Web service definition languag)

直译 : WebService定义语言

  • 对应一种类型的文件.wsdl (告诉客户端如何调用接口)
  • 定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式
  • 一个web service对应一个唯一的wsdl文档

3.2.SOAP(simple object access protocal)

直译: 简单对象访问协议
1.是一种简单的、基于HTTP和XML的协议, 用于在WEB上交换结构化的数据
2.soap消息:请求消息和响应消息
3.http+xml片断
SOAP协议 = HTTP协议 + XML数据格式

SOAP1.1和SOAP1.2区别

3.3.UDDI(Universal Description, Discovery and Integration)

UUDI:目录服务
UDDI:Universal Description, Discovery and Integration.可译为"通用描述,发现与集成服务"。 服务目录检索

企业可以使用它对 Web services 进行注册和搜索.

企业将自己提供的Web Service注册在UDDI,也可以使用别的企业在UDDI注册的web service服务,从而达到资源共享。UDDI旨在将全球的webservcie资源进行共享,促进全球经济合作。

  • UDDI现状:
    目前大部分企业使用webservice并不是必须使用UDDI,因为用户通过WSDL知道了web service的地址,可以直接通过WSDL调用webservice。