架构Web Service:什么是Web服务?

移花接木,玩转CANoe的几种扩展接口应用(五)——串口设备 近期看到粉丝朋友在CANoe自动化测试方面的关注度很大,今天就围绕这个做一个专题,总结一下以往项目上用过的几种CANoe扩展接口,分享出来希望对相关领域的网友有所帮助。本文是该专题的第五篇文章,主要讲解了串口设备的功能配置、连接方法、配置方法、调用方法,最后分析了这种扩展借口应用的特点和适用场景。 阅读详情
本文是架构Web服务的系列文章的第二篇,从Web服务的技术定义开始,来探讨什么是Web服务。首先,作者从技术角度详细分析了Web服务作为Internet环境下的软件组件的基本角色,从这个基本角色开始,详细介绍了这个组件对象的包装规范Web Service "stack",并对Web服务的应用做了分类,最后借助Garnter Group的材料考察了Web服务的当前发展状况。

在本系列的上一篇文章中,我就为什么需要Web服务,从商业利益需求的角度进行了分析。本文将结合技术驱动的发展需求,详细介绍从技术上来看,到底什么是Web服务,以及Web服务的应用分类。就技术角度而言,无论从哪个角度来看,Web服务都是对象/组件技术在Internet中的延伸。

本文所引用的资源主要包括两类,一类是Web服务的技术资源网站,包含了大量Web服务的技术信息,另一类是Web服务“stack"系列技术规范,他们是一个整体的技术体系,包括UDDI、SOAP、WSDL、XML等。本文的最后给出了这些资源的链接,有兴趣的读者可以通过这些资源链接找到所需的内容。

Web对象

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

  • 完好的封装性,Web服务既然是一种部署在Web上的对象,自然具备对象的良好封装性,对于使用者而言,他能且仅能看到该对象提供的功能列表。

  • 松散耦合,这一特征也是源于对象/组件技术,当一个Web服务的实现发生变更的时候,调用者是不会感到这一点的,对于调用者来说,只要Web服务的调用界面不变,Web服务的实现任何变更对他们来说都是透明的,甚至是当Web服务的实现平台从J2EE迁移到了.NET或者是相反的迁移流程,用户都可以对此一无所知。对于松散耦合而言,尤其是在Internet环境下的Web服务而言,需要有一种适合Internet环境的消息交换协议。而XML/SOAP正是目前最为适合的消息交换协议。

  • 使用协约的规范性,这一特征从对象而来,但相比一般对象其界面规范更加规范化和易于机器理解。首先,作为Web服务,对象界面所提供的功能应当使用标准的描述语言来描述(比如WSDL);其次,由标准描述语言描述的服务界面应当是能够被发现的,因此这一描述文档需要被存储在私有的或公共的注册库里面。同时,使用标准描述语言描述的使用协约将不仅仅是服务界面,它将被延伸到Web服务的聚合、跨Web服务的事务、工作流等,而这些又都需要服务质量(QoS)的保障。其次,我们知道安全机制对于松散耦合的对象环境的重要性,因此我们需要对诸如授权认证、数据完整性(比如签名机制)、消息源认证以及事务的不可否认性等运用规范的方法来描述、传输和交换。最后,在所有层次的处理都应当是可管理的,因此需要对管理协约运用同样的机制。

  • 使用标准协议规范,作为Web服务,其所有公共的协约完全需要使用开放的标准协议进行描述、传输和交换。这些标准协议具有完全免费的规范,以便由任意方进行实现。一般而言,绝大多数规范将最终有W3C或OASIS作为最终版本的发布方和维护方。

  • 高度可集成能力。由于Web服务采取简单的、易理解的标准Web协议作为组件界面描述和协同描述规范,完全屏蔽了不同软件平台的差异,无论是CORBA、DCOM还是EJB都可以通过这一种标准的协议进行互操作,实现了在当前环境下最高的可集成性。

Web Service "Stack"

在前一节中,我们已经了解到为了完成在松散耦合的环境下的对象访问,以及在基本对象访问之上的诸如事务、工作流、安全机制等。实现一个完整的Web服务体系需要有一系列的协议规范来支撑。

Figure 1. Web Service "stack"

其中,绿色部分是先前已经定义好的并且广泛使用的传输层和网络层的标准:IP、HTTP、SMTP等。而蓝色部分是目前开发的Web服务的相关标准协议,包括服务调用协议SOAP、服务描述协议WSDL和服务发现/集成协议UDDI,以及服务工作流描述语言WSFL。而橙色部分描述的是更高层的待开发的关于路由、可靠性以及事务等方面的协议。黄色部分是各个协议层的公用机制,这些机制一般由外部的正交机制来完成。

从以上这个技术层次图我们看以看到,Web服务追求的第一目标是简单性。可能大家会觉得很奇怪,有那么多协议,怎么能说他简单。

首先,这些协议本身都是简单的,无论是HTTP, FTP等传统的TCP/IP系统的网络协议,还是SOAP, WSDL, UDDI, WSFL等基于XML的协议,他们设计原则中的一个最重要点就是力求简单性。相信大家如果对XML、SOAP等有深入了解的话,一定会深深体会这一点。

其次,一个可以使用的Web服务应当按照需要选用若干层次的功能,而无需所有的特性。比如在目前状况下,一个简单应用可能只要使用WSDL/SOAP就可以架构一个符合规范的Web服务了。

最后,所有的机制完全是基于现有的技术,并没有创造一个完全的新体系。无论是IPv4、HTTP、FTP这些现有的网络协议,还是SOAP、WSDL等这些基于XML而定义的协议都是遵循着一个原则:继承原有的被广泛接受的技术,这样才能使得Web服务被广泛接受。

Web服务的类别

综合当今的Web应用以及Web服务的特点,我们认为Web服务实施的领域可以分为四类:

  • Business-Oriented Web Service: 该类服务针对的是那些面向企业应用服务,包括企业内部的ERP系统,企业间的SCM/CRM等系统。当这些系统以Web服务的形式在网络(Internet和intranet)中出现时,企业内的应用集成将更未容易,而在企业间的众多合作伙伴的系统对接也将不再是无法完成的任务。目前现有的解决方案和产品的提供商有Bowstreet、Epicentric等。

  • Consumer-Oriented Web Service: 此类服务针对的是那些原先的B2C的网站的改造,为这些Browser-Oriented的Web应用增加(注意是增加)了Web服务的应用界面,使得第三方的桌面工具或其自身提供的增值的桌面工具能够利用更优秀的用户界面提供跨越多个B2C服务的桌面服务。这将使得用户使用Internet更为方便,能够获得更加便捷的服务。比如我们完全就可以在个人理财桌面系统中集成(调用)Internet上的股票价格查询Web服务、机票预定Web服务等,使得个人理财应用的自动化程度更高。

  • Device-Oriented Web Service: 此类服务的使用终端一般是手持设备和日用家电,对于前者而言,可以在不用修改网络服务的体系架构的前提下,令先前的网络服务支持除PC以外的各种终端,比如Palm、PocketPC、手机等。如此,那些天气预报服务、Email服务、主动信息服务等将更为有效和便捷。而后者对于日用家电,则可能是一个市场的启动期,有了Web服务作为基础框架,智能型的日用家电将真正获得标准的支持,从而有了广泛使用的可能。

  • System-Oriented Web Service: 一些传统意义上的系统服务,比如用户权限认证,系统监控等,如果被迁移到全球范围的Internet上,或者企业内部的intranet上,其作用范围将从单个系统或局部网络拓展到整个企业网络或整个Internet。如此,基于同一系统服务的不同应用将得以在整个Internet环境中部署,譬如跨国企业的所有在线服务可以使用同一个用户权限认证Web服务。

Web服务: 当今的技术最亮点

Figure 2. Web服务的当前发展状况

以上这幅图是Gartner Group在研究了所有IT主流时尚技术的发展道路后,作出的抽象模型。Y轴表明技术的受关注程度,而X轴则表示技术的应用的成熟度。每一项技术在从出现到成熟的整个过程都将沿着图中的曲线前进,而且典型地,都将被划分为五个阶段:

  • 技术显现:一门技术被发明或定义之后,开始进入公众的视野;
  • 不断膨胀的期望期:由于该项技术的划时代的突破,使人们对这项技术有着无比美好的想象和期望,这一阶段类似"网络的泡沫器";
  • 希望破灭之后的醒悟期:由于每项技术都不是万能的,真正获得使用仍然需要务实的加以应用研究,因此此时人们发现这项技术似乎并没有期望中那么有用,这一阶段类似"网络的泡沫破灭";
  • 豁然开朗的应用发展期:经过了一个阶段的开发和研究,该项技术终于走上了良性发展的轨道,越来越多的人接受并使用了该项技术;
  • 大量的工业化生产期:该项技术成为业界主流,大量应用在具体的环境中。
基于matlab的CNN验证码识别系统(UI界面版) 基于matlab的CNN验证码识别系统(UI界面版),CNN验证码识别系统包括数据集处理、模型搭建、模型训练、界面设计与实现 阅读详情

相关推荐

Burp靶场实战:JWT签名绕过漏洞分析与利用

本文通过Burp Suite靶场实战,深入剖析了JWT签名绕过漏洞的多种攻击手法,包括签名未验证、alg:none攻击、弱密钥爆破、JWK/JKU头注入、KID路径遍历及算法混淆攻击。文章详细演示了利用过程,并提供了关键的防御指南,帮助开发和安全人员加固JWT实现,确保认证安全。

weixin_29325515的博客 594

什么是web service?

Web服务(Web Service)是一种通过Web技术实现跨网络的应用程序之间相互交互的方式。它是一种基于网络的软件系统,用于提供标准化的方式来实现应用程序之间的互操作性。Web服务提供了一种标准化的协议和接口,允许应用程序通过网络进行通信和交互。它们使用XML(扩展标记语言)来描述和交换数据,并使用HTTP(超文本传输协议)作为传输协议。Web服务允许应用程序在不同的平台、编程语言和操作系统之间共享数据和服务,并且具有良好的互操作性、松散耦合和可扩展性。

AlphaFinance 2430

Zynq UltraScale+ MPSoC-AMP(linux+裸机)

接着 Zynq UltraScale+ MPSoC-双核裸机AMP继续 平台工具:zcu106,vitis2020.2,petalinux2019.2 文章目录1.cpu1跑裸机2.cpu0跑linux2.1petalinux设置2.2 app3.生成BOOT.bin4.zcu106测试 1.cpu1跑裸机 参照Zynq UltraScale+ MPSoC-双核裸机AMP建立的工程进行修改。BSP中stdin与out修改为uart1,uart1给裸机用,uart0给linux用。 ddr空间裸机与linu

zhuxl24的博客 5195

web service概念、架构及相关知识

一、WebService的定义WebService有好几种定义: W3C组织对其定义:WebService是一个软件系统,为了支持跨网络的机器间互操作交互而设计。 WebService通常被定义为一组模块化的API,我们可以通过网络进行调用,来执行远程系统的请求服务。 WebService就是暴露给外部使用的,可通过web调用的一组API。 WebService是一种跨编程语言和跨操作系统平台的远程

liu_shi_jun的专栏 1万+

【面试经验】京东-技术产品经理一面:从紧张到反思的全流程复盘

本文详细复盘了京东技术产品经理一面的全流程,从面试前的简历打磨、业务理解和技术基础准备,到面试中的高压对话和突发状况应对,再到面试后的深度反思与改进方案。文章特别强调了技术产品经理需要具备的技术理解力、数据敏感度和商业思维,并提供了实用的面试建议和准备技巧。

weixin_28730927的博客 162

Trae编程工具Cline插件深度集成与Claude 3.7 API Key高级配置实战

本文详细介绍了如何在Trae编程工具中深度集成Cline插件并配置Claude 3.7 API Key的高级技巧。通过实战案例,展示了如何提升代码补全质量、实现多轮对话记忆及自定义代理设置,特别适合全栈工程师和需要私有化AI服务的团队。文章还涵盖了安装流程、API Key获取方式及企业级部署的最佳实践。

weixin_28829903的博客 436

常见的三种Web服务架构

摘自《RESTful Web Services中文版》 相互竞争的服务架构 The Competing Architectures 我们已经给出了“不同Web服务会有不同做法”的两个主要问题,现在要据此对不同风格的Web服务进行分类了。根据我的研究,常见的Web服务架构主要有三种:REST式架构、RPC式架构和REST-RPC混合架构。下面依次对它们进行介绍。 REST式、面向资源的...

weixin_30662011的博客 442

VScode+MPLAB AI助手:Microchip MCU开发全流程实战解析

本文详细解析了如何使用VScode搭配MPLAB AI助手进行Microchip MCU开发的完整流程。从环境配置、工程创建到代码生成与调试,全面介绍了AI助手在提升开发效率、优化代码和故障排除方面的实际应用,为嵌入式开发者提供了一套高效的开发解决方案。

hh234的博客 1131

java web的三大框架是什么_Java web常用的三大框架是什么-蛙课网

我们经常听别人说起java web的三大框架,但是对于初学者来说,java web的三大框架就是一个名词,毫无概念,所以我们今天就来说一下java web请添加链接描述三大框架是什么。java web常用的三大框架指:SSH,即:Spring、Struts、Hibernate,是用来开发web应用程序中使用的。Spring是一个开源框架,它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一...

weixin_39881575的博客 2064

基于Ollama本地大模型的Python自动化翻译工具开发实践

本文详细介绍了如何利用Ollama本地大模型和Python开发自动化批量翻译工具。通过部署本地开源模型、设计精准提示词、处理长文本分割及多种文档格式,构建了一个兼顾隐私安全、可控性与成本效益的翻译流水线,有效解决了文档批量翻译的痛点。

yhn45678901的博客 560

纳米尺度仿真软件:Quantum Espresso_(13).非线性光学性质计算

通过 Quantum Espresso,可以高效地计算材料的非线性光学性质,包括二阶和三阶非线性极化率。这些性质在许多现代技术中具有重要的应用价值。在准备输入文件时,需要详细描述系统的晶格结构和原子位置,选择合适的基组和赝势,并设置计算参数和微扰设置。通过优化计算参数和使用并行计算,可以提高计算效率和精度。最后,使用适当的工具进行结果分析和可视化,可以更好地理解材料的非线性光学行为。

kkchenjj的博客 1278

架构Web Service:实战Web服务

架构Web Service:实战Web服务内容:案例需求描述应用的系统架构Catalog ServiceOrder ServiceFeedback Service交互,交互些什么?为什么选择基于Web服务的解决方案?

fennivel的专栏 1457

Flink上传的Jar包去了哪里?大数据

在使用Flink时,我们通常会将应用程序打包成Jar文件并将其上传到Flink集群以执行。总结起来,Flink上传的Jar包实际上会暂时存储在JobManager的本地文件系统中的一个临时目录中。在上传过程中,Flink会将Jar文件存储在JobManager的本地文件系统中的一个临时目录中。一般来说,Flink会在。希望本文对你解答了Flink上传的Jar包去了哪里的疑问,并且能够帮助你更好地理解Flink的工作原理。接下来,我们可以使用Flink命令行工具将Jar文件提交到Flink集群。

AlianBlank的博客 865

架构Web Service:为什么需要Web服务?

架构Web Service:为什么需要Web服务?内容:面临的挑战错误的解决方案: 复杂系统对接的解决方案正确的解决方案: Web服务和商业WebWeb服务是未来?什么是Web服务?参考资料作者简介

fennivel的专栏 1873

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

架构Web Service:描述与注册,发布Web服务

架构Web Service:描述与注册,发布Web服务内容:SOAP消息示例XML Schema建模WSDL服务描述UDDI服务发布总结参考资料作者简介相关内容:

fennivel的专栏 1471

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

架构Web Service: 实战Web服务

内容: 案例需求描述  应用的系统架构  Catalog Service  Order Service  Feedback Service  交互,交互些什么?  为什么选择基于Web服务的解决方案?  什么是需要公开的?  参考资料  作者简介 相关内容: 基于Web服务的应用、解决方案和开发平台  什么是Web服务?  为什么需要Web服务?  动态电子商务模

kcsppwdx 607

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

架构Web Service:交互界面,Web服务定义的核心

架构Web Service:交互界面,Web服务定义的核心内容:API概述Catalog ServiceMember ServiceFeedback ServiceOrder Service描述与注册: 发布Web服务

fennivel的专栏 1163

架构Web Service:基于Web服务的应用、解决方案和开发平台

架构Web Service:基于Web服务的应用、解决方案和开发平台内容:Public UDDI RegistryMicrosoft HalistormBowstreet SolutionDealEasy Enterprise Portal

fennivel的专栏 1978

【补能雷达 Skill】高德 Web Service + Node.js 20 实战:本地服务架构:Node 静态服务如何安全代理高德 Web Service

项目名称:补能雷达 Skill。基于高德 Web Service、Node.js 20 和 Chrome 126,复盘「本地服务架构:Node 静态服务如何安全代理高德 Web Service」的接口链路、版本环境、验证结果和异常兜底,包含路线、补能站、示例模式和导航 URI 检查。

2401_84996024的博客 2645

vivo web service:亿万级规模web服务引擎架构

本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/ovOS0l9U5svlUMfZoYFU9Q vivo web service是开发团队围绕奇点内核打造出的基于vivo手机平台的web服务引擎,该服务引擎从浏览器产品线中经过多年迭代而出。除了提供可靠的基础Web服务,服务引擎还集成了非常强大的扩展功能。本文从架构方面对该服务引擎进行一...

vivo互联网技术 1068

[转]架构Web Service: 为什么需要Web服务?

架构Web Service: 为什么需要Web服务?   内容: 面临的挑战 错误的解决方案: 复杂系统对接的解决方案 正确的解决方案: Web服务和商业Web Web服务是未来? 什么是W...

weixin_34013044的博客 103

go-micro examples 中web & form 代码学习(web类 网站的微服务架构:micro api + micro web + web service + api service)

以下对应 example/web 例子: main.go 代码如下: package main import ( "fmt" "log" "net/http" "github.com/micro/go-micro/web" ) func helloWorldHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprint...

u013862108的博客 652

*RESTful Web Service**:基于REST(表述性状态传递)架构风格的Web服务,通过HTTP方法(如GET、POST、PUT、DELETE)操作资源

- **url**:指定要请求的RESTful Web服务的URL地址。 - **type**:指定HTTP请求的类型,如`GET`、`POST`、`PUT`、`DELETE`等。 - **data**:是要发送到服务器的数据,可以是字符串、对象等形式。如果是对象,jQuery会自动将其序列化为查询字符串。 - **success**:请求成功时的回调函数,`response`参数是服务器返回的数据。 - **error**:请求失败时的回调函数,`xhr`是XMLHttpRequest对象,`status

[Blog][Domain] programb.blog.youkuaiyun.com 425

Java Web基础——Controller+Service +Dao三层的功能划分

1. Controller/Service/DAO简介: Controller是管理业务(Service)调度和管理跳转的。 Service是管理具体的功能的。 Controller只负责管理,而Service负责实施。 DAO只完成增删改查,虽然可以1-n,n-n,1-1关联,模糊、动态、子查询都可以。但是无论多么复杂的查询,dao只是封装增删改查。至于增删查改如何去实现一个功能,dao是不管的。 总结这三者,通过例子来解释: ...

m0_57416831的博客 2518

Web Service与CORBA

Web Service与CORBA 随着IT行业的发展,技术在突飞猛进,各种各样的语言Java,C#,C/C++等等,还有各种各样的平台语言PHP、.net等。此前,我们可能需要根据不同的操作系统或是不同的编程语言来编写不同的程序以实现同一功能,这造成了大量的时间、人力资源的浪费,也大大增加代码的冗余性、以及重复性,代码的复用效率也得不到体现。SOA(面向服务的架构)的出现很好的解决了这一问题。 SOA的全称是Service Oriented Architecture,它是一种架构风格,可以根据..

qq_44981154的博客 415
上一篇: XML Web Service 基础
下一篇: 修改大型 XML 文件的有效方法
AngelGavin
博客等级 码龄24年 2粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值