本文的主要目的是用一些比较容易懂的语言说明下webservice相关的概念。
1、为什么会有webservice
每一项新技术的产生,都是由于被需要。语言发展太多了,各个语言之间不能相互调用,数据无法共享导致了数据不一致。
为了解决这个问题我们需要一项技术解决异构系统之间的数据共享问题。webservice很成功的解决了这个问题。
2、不同语言之间数据共享需要解决什么问题
3、目前有哪些技术可以解决上面的问题

4、SOAP协议说明
5、Socket通信
ISO七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
Socket属于传输层的,也就是说这个技术用来传输数据。它只会传输数据,如果我们传输的数据恰好满足了某种特定的格式。
对于数据需要满足的格式,我们称为协议。例如:HTTP协议,SOAP协议。下面写个socket的例子说明下。
package com.ztesoft.socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
// 服务端提供服务,接受到客户端提供字母后转大写在返回给客户端
public class SocketServer {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(6666);
while (true) {
Socket sc = ss.accept();
InputStream is = sc.getInputStream();
byte[] buffer = new byte[1024];
int len = -1;
len = is.read(buffer);
String getData = new String(buffer, 0, len);
System.out.println("从客户端获取的数据:\n" + getData);
// 业务处理 大小写转化
String outPutData = getData.toUpperCase();
// 向客户端写数据
OutputStream os = sc.getOutputStream();
os.write(outPutData.getBytes("UTF-8"));
// 释放资源
os.close();
is.close();
sc.close();
}
}
}package com.ztesoft.socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
// 向服务端发送一个请求,并接受返回结果
public class SocketClient {
public static void main(String[] args) throws Exception {
// 开启一个Socket端口
Socket sc = new Socket("127.0.0.1", 6666);
OutputStream os = sc.getOutputStream();
os.write("abc".getBytes());
// 获取服务端回传的数据
InputStream is = sc.getInputStream();
byte[] buffer = new byte[1024];
int len = -1;
len = is.read(buffer);
String getData = new String(buffer, 0, len);
System.out.println("从服务端获取的数据:" + getData);
// 释放资源
is.close();
os.close();
sc.close();
}
}
下图左侧就是调用结果,从中我们可以发现socket只是调用了更底层的方法去传输数据。如果我们从浏览器访问(右侧)
如果我们采用socket通信,当我们写代码的时候可能很不方便,就像我们会采用一些持久层框架。例如mybatis而不去直接使用jdbc。
所以为了更方便的传输数据就有了HTTP这个东西。我们从浏览器访问就会看到上图右侧的东西,他就是用HTTP访问的。我们可以
简答的理解为HTTP就是对socket的一种封装。它传递的数据满足HTTP协议的要求,可以更方便我们开发。
所以我们可以总结出以下几点:
1. socket是大多数通讯协议实现传输数据的基础。
2. HTTP是对socket的进一步封装,可以提高我们的开发效率。
3. SOAP协议其实就是规定了XML文本应该满足怎样的格式,因为这样才方便解析,做到了统一。
本文介绍了Web Service的产生背景,旨在解决不同编程语言间的数据共享问题。通过SOAP协议和Socket通信,阐述了数据传输的过程。WebSocket作为传输层基础,而HTTP则提供了一种更便捷的封装方式。WSDL定义了服务调用的标准,方便服务的使用。
1981

被折叠的 条评论
为什么被折叠?



