WebService基础学习—基础知识

一、WebService
什么是WebService

  Web Service(WEB服务)能够快捷和方便地综合结合各种系统、商务和任何应用平台。利用最新的Web Service 标准能够使任何软件系统和系统之间的应用互通互联,方便,而且更加廉价。

WebService的应用场合

)跨越防火墙通信

   客户端和服务器端之间通信都会有防火墙或者代理服务器。传统的实现互相通信的方法是在分布式对象,如DCOM、CORBA之间进行相互的远程过程调用(TCP/IP),但在这种场合下HTTP协议的特性没有得到应用,因此在Internet环境下的远程过程调用不是一件容易的事情,同时在Internet上使用远程过程调用还存在安全问题,防火墙和代理服务器还有可能阻挡这种类型的数据传输。HTTP是在Internet上发送消息的标准协议。Web服务使用基于XML消息处理作为基本的数据通信方式,应用程序可以使用HTTP和XML消息等标准在基于Web的应用程序之间交换信息,从而跨越防火墙。 

)应用程序集成

    软件复用是在软件开发中避免重复劳动的解决方案。Web服务实现了业务级别的软件复用,例如在B2B的集成中,各企业之间通过互相调用Web服务,实现了Web服务的共享,Web服务的使用企业不需要再重新开发其他企业中已经存在的服务。

二、使用Socket远程通信
这里写图片描述

1,客户端

public class WeatherClient{

    public static void main(String[] args) throws UnknownHostException, IOException{

        //1.创建Socket对象,和服务端建立连接
        Socket socket = new Socket("127.0.0.1",12345);

        //2.发送城市名称
        DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
        dos.writeUTF("北京");
        System.out.println("请求查询天气: 北京");

        //3.接受返回结果使用输入流
        DataInputStream dis = new DataInputStream(socket.getInputStream());
        String result = dis.readUTF();
        System.out.println("北京的天气: " + result);

        //4.关闭流
        dis.close();
        dos.close();
    }
}

2.服务端

/*
 * 天气服务端
 */
public class WeatherServer{

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

        // 1.创建ServerSocket对象
        ServerSocket serverSocket = new ServerSocket(12345);

        while(true){

            // 2.等待客户端连接,阻塞的方法
            final Socket socket = serverSocket.accept();

            Runnable runnable = new Runnable(){
                @Override
                public void run(){
                    try{
                        // 3.使用输入流接受客户端发送的请求
                        DataInputStream dis = new DataInputStream(socket.getInputStream());
                        String cityName = dis.readUTF();
                        System.out.println("接收到客户端发送的请求: " + cityName);

                        Thread.sleep(1000);

                        // 4.根据城市名查询天气
                        String result = "今天天气很热";
                        System.out.println("返回天气信息: " + result);

                        // 5.返回查询结果,使用输出流。
                        DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
                        dos.writeUTF(result);

                        // 6.关闭流
                        dis.close();
                        dos.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            };

            //启动线程
            new Thread(runnable).start();

        }
    }
}

结果:

 请求查询天气: 北京 
 北京的天气: 今天天气很热

 接收到客户端发送的请求: 北京 
 返回天气信息: 今天天气很热

三、用WebService实现远程调用
1.服务端
第一步: 创建一个Java工程,不需要导入jar包。

第二步: 创建接口。在Webservice中叫做SEI(wsdl中叫做PortType)。

第三步: 创建实现类。需要在实现类上加一个@Webservice注解。

第四步: 发布服务。EndPoint.publish发布服务。

WeatherInterface.java
这里写图片描述

WeatherInterfaceImpl.java
这里写图片描述

WeatherServer.java
这里写图片描述

2.查看wsdl

a: 在地址栏输入(注意后面的参数?wsdl)

http://127.0.0.1:12345/weather?wsdl

b: Wsdl不是webService,只是获取一个用于描述WebService的说明文件
这里写图片描述

3.使用wsimport工具生成客户端调用代码
这里写图片描述

4.编写客户端

第1步:创建服务视图对象。

第2步: 从服务视图中获得PortType对象。

第3步: 调用PortType的方法(可以实现远程通信)

第4步: 接收方法的返回值(服务端响应的结果)。
这里写图片描述

四、WebService和Socket的对比

(1)Socket是基于TCP/IP的传输层协议。
Webservice是基于HTTP协议传输数据,http是基于tcp的应用层协议。
Webservice采用了基于http的soap协议传输数据。

(2)Socket接口通过流传输,不支持面向对象。
Webservice 接口支持面向对象,最终webservice将对象进行序列化后通过流传输。
Webservice采用soap协议进行通信,不需专门针对数据流的发送和接收进行处理,是一种跨平台的面向对象远程调用技术。

(3)Socket适用于高性能大数据的传输,传输的数据需要手动处理,socket通信的接口协议需要自定义。

比如:自定义一种字符串拼接的格式,比如自定义的xml数据,自定义麻烦之处在接口调用方和接口服务端需要互相讨论确定接口的协议内容,不方便。
缺点

 程序员需要自己去解析输入、输出流,解析发送和接收的数据。数据传输的格式不固定,需要程序员开发socket接口时自定义接口协议。

优点

 如果要传输大数据量,socket可以满足,如果存在大并发使用socket也可以实现,程序用socket灵活性更大,比如可以socket的高并发框架mina开发。 

Webservcie由于是遵循标准的soap协议,soap 协议的内容格式固定,soap协议传递的内容是xml数据,由于webservice是基于http的,所以简单理解为soap=http+xml,适用于没有性能要求情况下且数据传输量小,推荐在公开接口上使用webservice,因为soap协议的标准的。
优点
jaxws可以通过面向对象开发webservice,程序员不需要解析输入、输出流。
由于webservice传输数据使用标准的soap协议(基于http传输xml),soap协议已经被w3c管理了。
缺点
如果传输大数据量,webservice不适用。如果webservice开发大并发的应用,webservice依靠web容器提高并发数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于微信小程序的家政服务预约系统采用PHP语言和微信小程序技术,数据库采用Mysql,运行软件为微信开发者工具。本系统实现了管理员和客户、员工三个角色的功能。管理员的功能为客户管理、员工管理、家政服务管理、服务预约管理、员工风采管理、客户需求管理、接单管理等。客户的功能为查看家政服务进行预约和发布自己的需求以及管理预约信息和接单信息等。员工可以查看预约信息和进行接单。本系统实现了网上预约家政服务的流程化管理,可以帮助工作人员的管理工作和帮助客户查询家政服务的相关信息,改变了客户找家政服务的方式,提高了预约家政服务的效率。 本系统是针对网上预约家政服务开发的工作管理系统,包括到所有的工作内容。可以使网上预约家政服务的工作合理化和流程化。本系统包括手机端设计和电脑端设计,有界面和数据库。本系统的使用角色分为管理员和客户、员工三个身份。管理员可以管理系统里的所有信息。员工可以发布服务信息和查询客户的需求进行接单。客户可以发布需求和预约家政服务以及管理预约信息、接单信息。 本功能可以实现家政服务信息的查询和删除,管理员添加家政服务信息功能填写正确的信息就可以实现家政服务信息的添加,点击家政服务信息管理功能可以看到基于微信小程序的家政服务预约系统里所有家政服务的信息,在添加家政服务信息的界面里需要填写标题信息,当信息填写不正确就会造成家政服务信息添加失败。员工风采信息可以使客户更好的了解员工。员工风采信息管理的流程为,管理员点击员工风采信息管理功能,查看员工风采信息,点击员工风采信息添加功能,输入员工风采信息然后点击提交按钮就可以完成员工风采信息的添加。客户需求信息关系着客户的家政服务预约,管理员可以查询和修改客户需求信息,还可以查看客户需求的添加时间。接单信息属于本系统里的核心数据,管理员可以对接单的信息进行查询。本功能设计的目的可以使家政服务进行及时的安排。管理员可以查询员工信息,可以进行修改删除。 客户可以查看自己的预约和修改自己的资料并发布需求以及管理接单信息等。 在首页里可以看到管理员添加和管理的信息,客户可以在首页里进行家政服务的预约和公司介绍信息的了解。 员工可以查询客户需求进行接单以及管理家政服务信息和留言信息、收藏信息等。
数字社区解决方案是一套综合性的系统,旨在通过新基建实现社区的数字化转型,打通智慧城市建设的"最后一公里"。该方案以国家政策为背景,响应了国务院、公安部和中央政法会议的号召,强调了社会治安防控体系的建设以及社区治理创新的重要性。 该方案的建设标准由中央综治办牵头,采用"9+X"模式,通过信息采集、案(事)件流转等手段,实现五级信息中心的互联互通,提升综治工作的可预见性、精确性和高效性。然而,当前社区面临信息化管理手段不足、安全隐患、人员动向难以掌握和数据资源融合难等问题。 为了解决这些问题,数字社区建设目标提出了"通-治-服"的治理理念,通过街道社区、区政府、公安部门和居民的共同努力,实现社区的平安、幸福和便捷。建设思路围绕"3+N"模式,即人工智能、物联网和数据资源,结合态势感知、业务分析和指挥调度,构建起一个全面的数据支持系统。 数字社区的治理体系通过"一张图"实现社区内各维度的综合态势可视化,"一套表"进行业务分析,"一张网"完成指挥调度。这些工具共同提升了社区治理的智能化和效率。同时,数字社区还提供了包括智慧通行、智慧环保、居家养老和便民服务等在内的多样化数字服务,旨在提升居民的生活质量。 在硬件方面,数字社区拥有IOT物联网边缘网关盒子和AI边缘分析盒子,这些设备能够快速集成老旧小区的物联设备,实现传统摄像设备的智能化改造。平台优势体现在数字化能力中台和多样化的应用,支持云、边、端的协同工作,实现模块化集成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值