首页 文章

API和SOA之间有什么区别

提问于
浏览
28

那里有很多 What is the difference between... 问题,但我找不到这个问题 .

维基百科说这关于API

应用程序编程接口(API)是基于源代码的规范,旨在由软件组件用作接口以相互通信 .

关于SOA

SOA通常还为服务的消费者(如基于Web的应用程序)提供了一种了解可用的基于SOA的服务的方法 .

这两种技术都不是您向其他服务提供服务的吗?
有人可以扩展吗?

4 回答

  • 1

    面向服务的体系结构是一种架构方法 . 这是一种指定责任从业务导向的角度分离为独立服务的方式,这些服务通过公共API进行通信(通常但不一定是通过将事件发布到总线) .

    例如,您可以让一个服务负责捕获客户订单,该订单将OrderCaptured事件发布到总线;以及一个单独的服务,负责跟踪客户的账单以及欠多少钱,这些服务订阅了总线并响应了OrderCaptured事件 . 由于责任分离,第一项服务可能不需要了解有关结算的任何信息 . 这两个服务也不需要彼此了解,只需要了解周围发生的事件 .

    API是组件/服务公开的接口,以便其他组件可以与之通信 . 在上面的示例中,总线为许多服务提供了一个通用的API来进行通信 .

    综上所述:

    API =由软件组件公开的任何通信方式 .

    SOA =一组企业架构设计原则,通过将责任分解为服务来解决可伸缩性问题 .

  • 37

    换一种说法:

    SOA是架构模式 .

    API是制定或启用SOA模式的方法之一 .

    SOA是“Planning”设计方法 .

    API是设计的实际实现 .

  • 0

    The Concise and Brief version:

    API 是一个用于通过http,Web套接字等提供数据访问的层,并且更加适合移动设备 . 这些API应该在构建时考虑到SOA支持,并且目前使用围绕JSON和REST发展的现代技术 .

    SOA 是更多A2A和B2B业务解决方案层,当业务需要在不同类型的介质之间来回传递数据时,构建API,并围绕该业务规则构建业务规则 . 技术通常是XML,RPC和SOAP .

    两者都使用可互换的技术 . 安全性可以通过SOA解决,通常情况下,如果API的目的是提供开放数据,那么API就不那么重要了 .

  • 4

    似乎对此有很多意见;这是一个有趣的阅读 . 这是我的看法 .

    SOA:SOA是一种以服务为中心的架构模式,用于构建和访问软件组件/服务套件(如上面的答案中所述) . 构成SOA模式的SOA原则可以在许多地方找到,并非所有这些原则都相互一致,这使得SOA成为一个有点模糊的术语 . SOA服务可以使用几乎任何现代软件开发技术集构建(见下文) .

    API:通常,术语“API”用于表示如何以编程方式利用软件解决方案或与软件解决方案接口 . 它可以指代诸如规范之类的编程语言及其组件(Java API),如何访问和/或扩展COTS解决方案的规范,如何利用服务或服务集的规范(包括签名)或与服务接口相关的数据结构)等

    SOA和API:SOA服务的API可以包括服务的概念性,技术无关的规范(例如:一个数据元素将是客户的姓氏),以及物理的,技术特定的使用规范 . 该SOA服务的每个物理实例化(例如:两个实例化将可用,一个使用JSON布局,另一个使用XML布局,每个包含“LAST NAME”数据元素的大致相同的物理规范) .

    误解:术语API应仅用于表示RESTful或“简单,轻量级”或基于JSON的接口(旁注:RESTful不等同于'简单'或'轻量级') . 实际上,可以使用许多类型的技术(包括基于WS *的服务)按照许多模式构建API .

    误解:SOA严格遵循WS *或其他“复杂,重量级”的接口方法 . 实际上,SOA服务可以使用几乎任何现代软件开发技术集构建和使用,包括RESTful方法或JSON文件 .

    关于SOA的更多信息:SOA是一种基于以下概念的架构模式:功能应该被实例化为具有清晰使用规范的服务,因此可以被任何可以遵循的软件组件“客户端”使用该使用规范,与开发服务或开发“呼叫客户”的技术无关 . 写得好的服务应该是高度交叉兼容的 .

    由于许多开源提供商和供应商已经构建了基于XML的方法的面向SOA的框架,特别是WS *标准集,因此SOA有时会错误地限制性地与WS *和/或XML相关的方法相关联 . 但实际上,SOA作为一种概念模式,与技术无关 . 一个概念SOA服务可以多种形式实例化一次或多次,每个实例选择各种技术(XML,JSON,WS *,REST方法,Java,C,LAMP ......),由设计人员确定和实例化的开发人员 .

    SOA解决方案或解决方案生态系统是根据SOA原则构建的;它由遵循SOA原则构建和使用的服务组成,同样使用开发人员选择的任何技术 .

相关问题