17 SOA和REST
1.什么是SOA?
给面向服务架构(Service-Oriented Architecture,SOA)一个清晰的定义并不容易,一直众说纷纭,现以维基百科为准:
2. SOA总结
SOA最有价值的方面是什么?采用一个松散耦合,基于服务的架构,来集成现有系统,并将服务暴露出来以供外部调用交互,服务可以用不同语言编写,可以部署在不同的操作系统上,但必须使用公开的标准接口和协议进行交互和集成。
SOA不是门具体技术,现在我们清楚的是,SOA是有关服务的,不过它并不是某一种特定的技术,它是一种设计原则,一种设计风格,也许把它叫做面向接口的架构更合适。
SOA不是场革命,也不是一个流行趋势,它创建于过去的技术之上,并通过引入新的理念对过去的技术进行了改造,使各类系统彼此之间能够通过消息进行协作,它只是渐进式技术演化过程中最近的一步而已。
使用SOAP的WCF, WebService,基于REST的Asp.Net WebAPI这些具体的Web服务技术架构,都是实现SOA的具体手段,是SOA的产物。
3. SOA与REST的区别?
SOA与REST的目标之间没有冲突, 大多数REST的设计目标都是直接支持SOA的目标。
SOA的特征是从更高层定义的,不涉及如何实现或应该如何实现等问题,而REST的特征是从实现的角度定义的,属于SOA的一种实现方案。
SOA与REST的层次不同,SOA的角度偏向于战略目标,而REST角度偏向于战术目标。