加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

集成架构:面向服务与Web API集成

发布时间:2018-05-01 10:06:35 所属栏目:电商 来源:站长网
导读:简介 几乎所有企业都有多个应用程序作为其关键数据的记录系统,而且还拥有它们赖以创业的业务功能。因此,一些组织想要不断向其企业内外更广泛的受众揭示这些操作系统中的宝贵资产,我们对此已司空见惯。但是,这需要时间。在本教程中,我们将介绍这项评估

要实现上述所有标准化,您需要正式地分离架构中的服务公开功能,如图 4 中的服务公开网关所示。它可能不是最终的物理架构中的一个单独的运行时组件,但至少需要在设计中明确地描绘它。必须可以以一流的方式满足虚拟化、可视性、安全和流量管理需求。

集成架构:面向服务与Web API集成

图 4. 服务公开

您将注意到,我们在图 4 中所示图表中特意未 使用常见的 SOA 相关术语,企业服务总线 (ESB)。这是因为人们对 ESB 的准确界线存在很大的分歧。毕竟,ESB 是一种架构模式,而不是组件描述。有人说,它只是服务公开网关,而其他人认为它包含集成集线器。有人认为它也包含适配器,在这些观点之间还有许多变体。有大量文献描述了 ESB 模式的细节,但我们最终发现,清楚地描述各个具体的组件和它们的职责会更好。

除了 SOA 的运行时组件之外,还有治理方面。如果有大量服务,您如何决定要公开哪些功能和它们的优先级?人们将如何发现所公开的功能?您如何控制所使用的数据模型中的变化?必须保留候选和当前服务的某种形式的目录,以实现服务生命周期的治理。

所有这些担忧最终可归结为,公开服务不是小事。如果只是简单地将功能公开为通用的 Web 服务,则会在可管理性和安全性上带来大量失败机会。简言之,重用具有代价,而且随之而来的是如何找到 SOA 的问题。任何具有紧张的最后期限和预算限制的项目,都不希望成为首次构建某个服务的项目 - 至少不太合适。

除此之外,事实上,人们实现 SOA 概念所需的标准是在 SOA 举措实施过程中不断开发的,因此它们还不够成熟。在企业尝试实现它们的过程中,它们也在不断改变。很容易看到为什么一些 SOA 难以获得发展动力。在许多公司,SOA 被局限在业务的一个特定领域,或者实际上只有少量核心服务在起作用。

JSON/HTTP 接口介绍

基于浏览器的应用程序变得更加复杂,而且引入了一些机制来编写功能更丰富、响应更迅速的网页。这些机制利用了浏览器愈加成熟的客户端脚本功能,以及它们使用 AJAX 等技术执行后台 HTTP 请求来检索数据的能力,而且用户体验不会被页面预加载中断。

网页通常通过页面关联的 Web 服务器来请求特定于网页的数据。SOA 中常见的 SOAP/HTTP 请求在 JavaScript 中很难处理,而且请求的发送常常使带宽很低的 Internet 连接变得不堪重负。执行更细粒度的数据请求正快速变得流行起来,如果可能的话,可以更改为使用 JavaScript 原生的 JSON 数据格式,如图 5 中的红色区域所示。

集成架构:面向服务与Web API集成

图 5. 富浏览器应用程序的细粒度公开

由于不受 SOAP 标准的限制,这些接口可被视为简化在要表示的数据上执行 “动作” 或 “操作” 的方式的备用方式。在一次对 Web 早期根源的有趣的回溯中,HTTP 背后最初的意图被揭示了出来。HTTP 标准的许多方面是围绕 Roy Fielding 在 2000 年 提交的具象状态传输 (REST) 的架构原则而设计的。由此衍生出了一种基于实体的更加简单化的交互风格。该交互风格推荐以一种与常见数据库交互洞察(创建、请求、更新、删除)类似的方式,使用常见的 HTTP 洞察(POST、GET、PUT、DELETE)。全球网络以一流的方式识别这些洞察,以提供隐含的好处,比如缓存。它还使用 URL 路径来导航数据实体之间的关系。

在一个更加简化的示例中,可以想象向一个订单添加一个商品的过程,可通过向一个 URL 发出 HTTP “POST” 来执行此操作,这个 URL 类似于下面这个 URL:

https://www.mycompany.com/orders/123456/item

HTTP 请求正文中的 JSON 格式数据类似于如下形式:

{ "title" : "Romeo and Juliet",     "note" " "Special Edition",   "quantity : 1,     "price" : 9.99 }  

其中 URL 描述了特定的数据实体(通常称为 “资源”),HTTP 动词 “POST” 的使用意味着它是一个新订单项的 “创建” 操作。要在 SOAP 中承载同样的信息,代码更类似于如下形式:

http://www.example.org/ordermanagement HTTP/1.1<?xml version="1.0"?><soap:Envelope xmlns:soap="http://..." soap:encodingStyle="http://...">    ...SOAP headers...  <soap:Body xmlns:m="http://www.example.org/ordermanagement">      <m:AddOrderItem>        <m:order orderid="123456"          <m:item>            <m:title>Romeo and Juliet</m:title>            <m:note>Special Edition</m:note>            <m:quantity>1</m:quantity>            <m:price>9.99</m:price>          </m:item>        </m:order>      </m:AddOrderItem>    </soap:Body></soap:Envelope>  

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读