《SOA原理与技术》学习笔记(一)——前言

一、前言

1. Web的演化

  1. 第一代静态Web

    内容简单、开发容易、访问高效

    不支持数据库、难以及时更新、无法实现动态效果

  2. 第二代动态Web

    动态网页以数据库技术为基础,可以大大降低网站维护的工作量。

    采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等等;

    动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;

    “阅读式互联网”

  3. 第三代Web2.0

    Web2.0的灵魂是人,信息是由每个人贡献出来的,各个人共同组成互联网信息源。

    “可写可读互联网”

  4. 第四代Web3.0

    第一,Web 3.0 的 API(应用程序编程接口) 是全球范围的,也就是 XML Web Services;

    第二,Web 3.0 的速度达到 10G,所有的应用都不用担心速度;

    第三,Web 3.0 是一个技术框架或操作系统。

2. 面向服务的架构SOA

  1. 技术萌芽期、期望膨胀期、泡沫破裂低谷期、稳步爬升恢复期、生产成熟期

  2. SOA概念:

    面向服务体系架构SOA将异构平台上应用程序的不同功能组件封装成具有良好定义并且与平台无关的标准服务,使得服务能够被部署、发现和调用,并使服务能够以松散耦合方式进行再组合形成一个新的软件系统。

    • 一种架构模型

    • 一种软件开发方式

    • 并非一种具体的技术

    • 并非一种具体的产品

    • 一种分析、设计、实现企业应用的方法

    • 一种分布式的应用架构

    • 以服务为最基本的、可重用的单元

    • 以业务流程为核心,是对业务逻辑高层次的、粗粒度的抽象

    • 一般基于某些标准(XML\SOAP\Web Service\SCA\SDO)实现异构系统及服务的集成

  3. 印刷术和SOA

      事实上,SOA的思想我国很早就有了,印刷术的发展过程其思想就完整体现了SOA的核心含义。印刷的内容――文字,在秦始皇统一六国之前,各国的文字是不统一的,据说许多常用的文字有十几种写法和读音,妨碍了各国之间的文化交流,就象SOA之前,各种软件平台、各种开发工具和各种接口的组件之间,没有统一的标准,对软件系统之间的整合造成巨大的困难。
      因此,伟大的始皇帝统一了六国文字,“书同文、车同轨”就是通过标准解决“复用”和“互操作”等问题。这也为大规模的印刷和文明发展提供了一个良好的基础,这种“统一封装”的文字,对文化交流起到了一个“互操作”的标准作用。在没有印刷术之前,书籍要依赖于手工抄写,这样效率当然是非常低下,而且质量也不能获得一致性的保证,也就是书籍还无法“复用”。中国人首先发明了刻版印刷术,就是将书籍刻成一块一块的凸字版,然后就可以大规模进行印刷了,当印刷出来的书籍脱销时,下次还可以继续使用,大大提高了效率,这就是“复用”,软件通过组件的封装,也可以达到重复和在不同场合多次使用的“复用”效果。刻版印刷术有个很大的问题就是文字之间是紧耦合的,同样一个字,在另一部书之中是不能“复用”的,必须重新雕刻,也就是说刻版印刷是没有“编排”特性的。就如软件技术中微软VB开发的Com+组件就只能在Windows环境之中使用,它不能与Java开发的EJB组件进行复用和编排,因为他们与开发环境和运行环境是紧耦合的,要在UNIX环境下使用,必须重新开发(相当于重新“刻版”)。活字印刷就是通过文字与版面之间的松耦合,通过“排版”来实现一部书的印刷版面的,这种松耦合就大大提高了文字的字模之间的复用和编排效率。我们标准封装的“服务”就类似一个一个的字模,通过服务编排(“排版”)来实现业务流程。

在这里插入图片描述

  1. SOA的核心要素:标准化封装、复用、松耦合可编排 → 达到灵活性

  2. RESTful Web API

    REST:表征状态转移(Representational State Transfer),采用Web 服务使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 将所有 Web 系统的服务抽象为资源,REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录(可能这么比喻不是很好),对于各种资源的操作最后总是能抽象成为这四种基本操作,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。REST是一种软件架构风格而非协议也非规范,是一种针对网络应用的开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

  3. IFTTT

    IFTTT 是一个被称为 “网络自动化神器” 的创新型互联网服务,它非常实用而且完全免费。它的全称是 If this then that,意思是“如果这样,那么就那样”。简单地讲,IFTTT 的作用就是,如果「这个」网络服务满足条件,那么就自动触发「那个」网络服务去执行一个动作。而条件和动作都是可以由用户自己去根据自身需求设置的。IFTTT 能将前后这两个不同的网络服务神奇般地连通来实现各种各样的功能,并且为你不间断地工作。实现一些譬如 Flickr 相册上传新图片后自动备份到 Dropbox,Feedly 加星标的文章自动保存到印象笔记里,当收到指定号码的短信自动发到邮箱,下雨天手机提醒带雨伞等功能

    eg:明天下雨/下雪/低于0摄氏度/高于35摄氏度,给我发一条iOS系统通知

发布了196 篇原创文章 · 获赞 139 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_39564555/article/details/105126039