Web服务

121 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情

思考: 如果需要做一个业务系统,支持PC网页、手机app(ios、安卓、鸿蒙)、PC软件、微信平台小程序、支付宝小程序......等等包括将来可能扩展到的客户端,功能相同,该如何设计系统呢?

随着信息化程度的提高,人们已经不满足于将企业应用作为一个个的信息孤岛,而是迫切需要在应用系统之间进行功能集成和数据交换,但是要实现这一目标却不是一件容易的事情。传统的应用程序都是“竖井”模式的,它们运行在各自的节点上,由于技术体制和运行模式的限制,很难在彼此间共享数据。为了解决异构应用之间互操作的问题,W3C(World Wide Web Consortium,万维网联盟)提出了Web服务。

什么是Web服务?

从软件开发的角度来看,Web服务是一组规范的集合。这种规范用来定义不同的应用系统之间是如何交互的,包括信息传递的内容、格式,信息的传输协议,以及相关的安全、策略、互操作等关键特性。

从使用者的角度而言,Web服务是一种部署在Web上的对象或组件,它具备以下特征。

Web服务的发展

(1) JAX-WS Web服务

为了帮助Java开发人员更好地开发Web服务,Java Community Process(JCP)定义了使用Java语言实现Web服务规范的接口Java API for XML Web Services (JAX-WS) 2.0,即JSR 224,它是Java EE平台的重要组成部分。作为Java API for XML-based RPC 1.1(JAX-RPC)的后续发行版本,JAX-WS简化了使用Java技术开发Web服务的工作,并且通过对多种协议(如SOAP 1.1、SOAP 1.2、XML)的支持,大大提高了开发Java Web服务的效率。

基于JAX-WS的Web服务解决方案虽然较为成熟,安全性也较好,但是由于使用门槛较高,因此在大并发量情况下会有性能问题,在企业应用中并不太普及。为提供大并发量条件下的Web服务,业界提出了一种新的解决方案——REST(Representational State Transfer,表现状态转移)。

(2)REST

首先要明确的是REST它不是一种协议,也不是一种标准,而是指一种软件架构风格。REST架构的软件由服务器端和客户端两部分组成,服务器上的所有信息都被视为资源,每个资源都对应一个唯一的URL标识,对资源的操作又可归结为Create(创建)、Read(读取)、Update(更新)和Delete(删除)四种操作处理。资源具有不同的表现形式和状态,当客户端执行读取操作时,资源的状态信息以合适的形式发送到客户端,当客户端执行更新操作时,资源的状态又被转移到服务器端,因此整个软件的运行过程可以视为资源的表示状态在服务器和客户端间转移,因此这种架构被形象地称为REST。

以上内容就是我们关于web服务的思考及发展,后续我们将继续学习web服务的相关内容。