SOA体系结构总结
摘要:SOAP WSDL(WebServicesDescriptionLanguage)UDDI(UniversalDescriptionDiscovery andIntegration), soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。具体实现可以搜索 Web Services简单实例 ; SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。
关键字:SOA,SOAP,WSDL,UDDI
1、概要叙述你参与分析和开发的软件系统开发项目以及你所担任的主要工作
我参与的是微信小程序《随堂小考》,该小程序通过线上答题,自动判分,以及可视化分析个人,班级的成绩,为随堂性的小测试助力,帮助老师在课堂上随时随地进行小测,方便了老师,也方便了同学,对于同学们快速掌握所学内容提供较大帮助。
我所担任的主要工作是答题界面,算法,计时器应用的开发:
①答题界面:这里要使得答题界面简单明了,给学生视觉上的享受
②算法:这里强调了答题随机,即从相应的题库单元中随机抽题去答,保证每个学生的题目不同以及顺序不同
③计时器应用:对每次答题进行倒计时并记录所用时间,既能保证学生们按时保质保量答完题目,并且也可记录答题时间,给学生和老师做参考。
2、说明面向对象服务架构的主要技术和标准,详细阐述每种技术和标准的具体内容
①SOA的主要组件:
服务运行时环境、服务总线、服务注册库、服务网关和流程引擎。通常,还会包括服务管理、业务活动监控(Business Activity Monitoring)和业务绩效管理(Business Perfromance Management,BPM)。另外,在服务建模、开发和编排服务等方面,我们需要相应的工具来支持。在分析、设计方面,我们需要基于服务的分析、设计方法,包括服务的识别、定义和实现策略,其输出是一个服务模型(Service Model)
组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来;接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和 编程语言;构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
②SOA的主要技术和标准:
Web服务作为实现SOA服务的最主要手段。
Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。
Web service是技术规范,SOA是设计原则。从本质上讲,SOA是一种架构模式,而web service是利用一组标准实现的服务。Web service是实现SOA的方式之一。用web service实SOA的好处是:可以实现一个中立平台,来获取服务,获取更好的通用性。
Web Services的目标是即时装配、松散耦合以及自动集成。
跟Web Service相关的标准,它们大多以“WS-”作为名字的前缀,所以统称为WS-*。Web服务最基本的协议包括UDDI,WSDL和SOAP,它们可以提供直接而又简单的Web Service支持。如图2-1
但是基本协议无法保证企业计算需要的安全性和可靠性,所以需要增加这方面的协议,比如WS-Security,WS-Reliability和 WS-ReliableMessaging;对于复杂的业务场景,需要WS-BPEL和WS-CDL这样的语言来将多个服务编排成为业务流程;管理服务的协议如WS-Manageability,WSDM等。跟Web服务相关的标准,还在快速发展当中。目前在SOA产品和实践中,除了基本协议外,比较重要的还包括BPEL,WS-Security,WS-Policy和SCA/SDO。如表2-2所示给出了一个基本的总结
2-1
2-2
UDDI:
UDDI是一种用于描述、发现、集成Web Service的技术,它是Web Service协议栈的一个重要部分。通过UDDI,企业可以根据自己的需要动态查找并使用Web服务,也可以将自己的Web服务动态地发布到UDDI注册中心,供其他用户使用。
UDDI是:
· 在线企业和服务注册的一个规范。
· 为使用W3C和IETF标准设计,如XML、HTTP、DNS和SOAP。
· 由UDDI社区管理。
· 免费(至少是这样)。
第一点是特别重要的。UDDI内部以及它本身只是一个用来创建在线企业和服务注册的规范。这个规范将XML、HTTP和SOAP这些(提议的)标准结合在一起,它是由UDDI社区管理的。任何实体都可以免费实现UDDI企业注册,这就是这个规范的目标。
在UDDI技术规范中,主要包含以下三个部分的内容:
(1)UDDI数据模型。UDDI数据模型是一个用于描述商业组织和Web Service的XML Schema。
(2)UDDI API。UDDI API是一组用于查找或发布UDDI数据的方法,UDDI API基于SOAP。
(3)UDDI注册服务。UDDI注册服务数据是Web Service中的一种基础设施,UDDI注册服务对应着服务注册中心的角色。
WSDL:
WSDL描述Web服务的公共接口。这是一个基于XML的关于如何与Web服务通讯和使用的服务描述;也就是描述与目录中列出的Web服务进行交互时需要绑定的协议和信息格式。通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。
WSDL 元素基于XML语法描述了与服务进行交互的基本元素:
Type(消息类型):数据类型定义的容器,它使用某种类型系统(如 XSD)。
Message(消息):通信数据的抽象类型化定义,它由一个或者多个 part 组成。
Part:消息参数
Operation(操作):对服务所支持的操作进行抽象描述,WSDL定义了四种操作: 1.单向(one-way):端点接受信息;2.请求-响应(request-response):端点接受消息,然后发送相关消息;3.要求-响应(solicit-response):端点发送消息,然后接受相关消息;4.通知(notification):端点发送消息。
Port Type(端口类型):特定端口类型的具体协议和数据格式规范。
Binding:特定端口类型的具体协议和数据格式规范。
Port:定义为绑定和网络地址组合的单个端点。
Service:相关端口的集合,包括其关联的接口、操作、消息等。
SOAP(简单对象访问协议):
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
相关定义:
SOAP封装(envelop),它定义了一个框架,描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们;
SOAP编码规则(encoding rules),它定义了一种序列化机制,用于表示应用程序需要使用的数据类型的实例;
SOAP RPC表示(RPC representation),它定了一个协定,用于表示远程过程调用和应答;
SOAP绑定(binding),它定义了SOAP使用哪种协议交换信息。使用HTTP/TCP/UDP协议都可以。
把SOAP绑定到HTTP提供了同时利用SOAP的样式和分散的灵活性的特点以及HTTP的丰富的特征库的优点。在HTTP上传送SOAP并不是说SOAP会覆盖现有的HTTP语义,而是HTTP上的SOAP语义会自然的映射到HTTP语义。在使用HTTP作为协议绑定的场合中,RPC请求映射到HTTP请求上,而RPC应答映射到HTTP应答。然而,在RPC上使用SOAP并不仅限于HTTP协议绑定。
具体内容,四个部分:
封装
它定义了一个框架 , 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。
编码规则
它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。
RPC表示
它定义了用于表示远程过程调用和应答的协定。
绑定
定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。
SOAP消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求 / 应答的模式。所有的 SOAP消息都使用 XML 编码。一条 SOAP消息就是一个包含有一个必需的 SOAP 的封装包,一个可选的 SOAP 标头和一个必需的 SOAP 体块的 XML 文档。把 SOAP 绑定到 HTTP 提供了同时利用 SOAP 的样式和分散的灵活性的特点以及 HTTP 的丰富的特征库的优点。在HTTP上传送 SOAP 并不是说 SOAP 会覆盖现有的 HTTP 语义,而是 HTTP 上的 SOAP 语义会自然的映射到 HTTP 语义。在使用 HTTP 作为协议绑定的场合中, RPC 请求映射到 HTTP 请求上,而 RPC 应答映射到 HTTP 应答。然而,在 RPC 上使用 SOAP 并不仅限于 HTTP 协议绑定。SOAP也可以绑定到TCP和UDP协议上。
总结:webService三要素:
SOAP WSDL(WebServicesDescriptionLanguage)UDDI(UniversalDescriptionDiscovery andIntegration), soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。具体实现可以搜索 Web Services简单实例 ; SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。
- 详细说明你所参与的软件系统开发项目中,构建SOA架构时遇到了哪些问题,具体实施效果如何。
遇到的问题有
①、计时器timeOUT的变量如果在调用数据库数据的函数里,那么将不能针对全局进行使用,所以只能通过全局变量去控制时间,而不能在局部函数里应用
②、向新浪云传送数据时,必须要转换成json的格式,否则会错误
参考文献:
1、https://baike.baidu.com/item/UDDI/2901586?fr=aladdin UDDL百度百科
3、https://baike.baidu.com/item/WSDL WSDL百度百科
4、https://wenku.baidu.com/view/b3dd9a826ad97f192279168884868762cbaebb3f.html
《面向对象SOA技术架构规范》作者:都都会 发布时间:2019-10-20
5、https://www.doit.com.cn/p/36431.html
《SOA(面向服务的体系架构)基本概念》 作者:多易 发布时间:2008-10-14