【系统分析师之路】原创章节 面向服务开发方法思维导图
原创章节 面向服务开发方法思维导图
章节索引
面向服务的开发方法主要分为了四大块的内容。分别是面向服务开发方法的概念定义,SOA面向服务架构(Webservices和ESB),面向服务中使用的各类开发技术,微服务。

一. 面向服务概念定义
面向服务开发方法是对面向过程,面向对象,面向构件,面向方面等开发方法的一个很好的补充,它把接口的定义与实现进行了解耦(依赖倒置原则),从而实现跨构件的调用。
面向服务的开发方法有三个特点分别是粗粒度,松耦合,基于标准的服务。
使用面向服务之后,我们获得了以下好处:增加了灵活性,增加了可复用性,也增加了可演化性,职责划分也更加得明确。
服务建模的三个阶段分别是服务发现,服务规约和服务实现。
面向服务一共有三个抽象级别分别是操作,服务和业务流程。业务流程是长期运行的动作或者活动,服务是特定结构化接口,返回结构化的响应。

二. SOA面向服务架构
SOA面向服务架构中有三个角色:服务请求者,服务提供者和服务目录。
SOA的优势和面向构件模型服务是一样的,无非是节约成本,提高效率,降低风险等,
实现SOA有三种方法,分别是WebServices,企业服务总线和服务注册表。
SOAD的三个层次:基础设计层,应用结构层和业务组织层。业务组织层主要进行业务流程建模,应用结构层主要服务协定和服务之间接口定义,最后基础设计层主要用来完成的是底层业务构件。
最后我们说说SOA有哪些特征,粗粒度松散耦合,可重用,标准化接口,支持各种消息模式,除了这些以外SOA还可以从企业的外部访问内部系统。

1)WebServices
WebServices有三个角色构成,服务提供者,服务请求者和服务注册中心。WebServices实现了网络上不同机器之间的相互操作,也可以将其理解为一组模块化的API。它是由Http,Soap和WSDL组成。

2)企业服务总线ESB
ESB是XML技术,中间件技术和WebServices技术相结合的产物,将各种服务进行整合与连接,它基于路由和过滤。
ESB所具备的基本功能有:位置透明性,传输协议转换,消息格式转换,安全支持,监控与管理,消息路由和消息增强等。这个需要清楚知晓才可以呀。
使用ESB之后,首先在架构层面它起到了总线的作用,同时解耦了服务提供者和服务需求者之间的直接关联,提供了一系列的标准的调用接口,实现了系统的异构集成,还有发现路由选择和匹配的能力。
ESB的优点和面向服务面向构件相似,可以降低成本,提高开发效率,增加灵活性和复用性等。

三. 微服务
微服务也是面向服务的架构的一种,顾名思义它就是一系列的很小的服务所组成。通过对一系列的服务进行编排组合来实现系统的功能。
微服务的特点就是和服务的优点大致是一样的,对于成本进度可扩展可复用等方面都体现出了其优势;除此之外与组织结构相互匹配是微服务不同于服务的一个优势点。

微服务与SOA对比
微服务不同与SOA的集中架构,它是松散的服务架构;
微服务采用简单集成,使用的技术有REST,JSON和Http;而SOA使用SOAP和WebServices;
SOA一般是面向企业级的自顶向下的开发,而微服务刚好相反它是自底向上的,面向团队级别;
部署方式上面,独立简单部署是微服务的特点,而SOA服务之间相互有依赖,所以部署起来比较复杂;
粒度一个粗粒度一个细粒度;
通信方式SOA是重量级的,微服务是轻量级的;
最后微服务和SOA设计思想也不一样,微服务倡导能够拆分的就尽量拆分;而SOA强调服务队伍整合。
再总结一下,微服务和SOA在架构,集成方式,展开方式,部署方式,设计思想,粒度等方面都存在较大的不同,虽然服务和微服务都是属于面向服务的开发方法当中,但两者并没有很好的可比性。

四.面向服务的关键技术
面向服务的关键技术有哪些?
UDDI,SOAP,REST,WSDL,BPEL,五个单词五种技术。
1.SOAP简单对象访问协议
使用SOAP实现了分布式系统中数据的交换和远程过程的调用。该协议一般用在SOA当中。
2.UDDI统一描述发现与集成
它是服务描述与发现的标准规范。
3.WSDL服务描述语言
它包括了服务接口的定义和服务实现的定义;告诉我们服务在哪里,做什么以及怎么使用服务。
4.BPEL
将分散的服务有机组成在一起形成复杂的应用。

1)REST技术
REST是表诉性状态迁移的意思。一般用在轻量级的开发也就是微服务架构当中,它从资源的角度来定义网络系统的结构,REST是一种混合型的架构风格。它相比SOA中的SOAP更加的简单,降低开发复杂性,提高了系统可伸缩性;
使用REST技术实现了三者的分离,分别是资源,资源的表现和获取资源的动作。
REST的优势体现在哪里?
它是一个轻量级的Web框架,使用Http和XML就可以实现REST技术,可测试性也比较好往往通过浏览器就可以很好的对其进行测试,同时支持缓存和无状态,所以可伸缩性也是比较好的。
REST这么好,那么它的局限性或者不足有哪些呢?
首先它所有的数据交换都是通过浏览器,同时使用参数来交换,所以可交换数据量有限,同时也无法支持复杂的数据类型,如果防火墙屏蔽接口,那么就无法进行数据交换了。
最后就是REST技术的五个原则:
1.网络中所有事物都被抽象成资源
2.网络中每个资源都有一个唯一的标识
3.通过通用的连接件接口对资源进行操作
4.对资源的各种操作都不会改变资源的标识
5.对资源的访问是无状态的。

2)REST架构风格
REST架构风格当中,它的核心来自REST的五个原则,也就是每个实体都被抽象成了资源。
它的特点有:客户端服务器,无状态缓存,统一接口,分层系统,还需代码等等。客户端服务器端和分层系统比较容易理解,REST架构风格是使用浏览器对网络资源的访问嘛,面向服务的架构都是使用统一的接口,所以这个也不难理解,资源的访问不会改变其标识,也不会因为状态不同获得不同的结果,所以无状态也好理解,至于缓存嘛,基于Web的架构如果不使用缓存技术,那么性能我想也很难让人接受吧。
REST架构风格的本质是什么?
REST架构风格是客户端服务器分离的架构,它使用URI来统一访问网络也就是服务器上的资源,因为是基于服务的,通过URI统一接口访问资源,我们可以将其理解为轻量级的SOA架构。

本文介绍了面向服务开发方法的核心概念,包括SOA架构的WebServices和ESB,微服务的特点及其与SOA的对比,以及REST技术与RESTful架构风格。内容涵盖服务的概念定义、服务建模阶段、SOA的角色与层次、WebServices和ESB的基本功能,以及微服务的部署方式和与SOA的区别。重点讨论了REST作为轻量级的通信协议在服务集成中的优势和局限性。
671

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



