什么是SOA?为什么要SOA?
任何一种新事物的出现都是为了达到一定目的的,提供一定的价值,这也就是其产生和发展的意义所在。弄清楚了这点,也就弄清楚了其本质。
一、IT:英文的全称为Information Techology,中文翻译为信息技术。本质上包括两种使用方式: (1)、创建信息:在企业的各种活动中,如接收订单、原料采购、等等活动,必然产生大量的信息,这就需要将各种信息收集起来,以备以后的进一步调用。
(2)、调用信息:如接收订单后,企业开始从事生产,产品生产出来后,需要发货。就需要找到原来的订单记录上面的客户地址用来发货,等等操作都是调用信息的实例,也就是IT帮助企业创建信息和调用信息的实例。
(3)、IT的进一步:集成信息,显然只有创建信息和调用信息是不够的,随着IT的进一步发展,信息集成已经显得格外重要,因为已经产生的IT格局虽然已经产生很大生产力,但这种生产力反作用IT,必然促进信息集成。 所以信息集成不仅仅是企业内部的事情,更关乎企业与企业之间。
二、IT程序语言的发展历史
观察过去可以更好的了解现在,因为现在是过去的延续。通过观察现在,可以更好的知道未来,因为未来是现在的延续。
(1) 面向过程的编程:C语言是典型的代表,是一种紧密耦合的软件语言技术,用C语言的应用程序完成了一大堆函数的编写,函数的可重用性很差。这种语言的特点必然造成了这种很紧密的耦合性。
(2) 现象对象的编程:以一种更接近人的思维的思想去解决程序设计中的问题,通过封装、继承、多态等形式实现松散耦合,达到一定程度的复用性。但是这些对象只能本地调用,不能远程调用。
(3) 面向组件的编程:其最初的动机就是实现远程分布式调用。它有接口类,另外有专门的实现方法类,客户端调用的是接口类,接口类和接口类之间实现了一定程度的解耦合,但是这种远程调用的组件却依赖于特殊的协议,比如J2EE采用RMI协议。
面向组件编程需要和特定的程序语言绑定,传输协议也是非标准化的,传输协议的不一致,导致各种组件之间不能互相调用,如J2EE和DCOM无法互相调用。
(4) 标准的Web Service的编程:采用标准的的SOAP传输协议,不同厂商实现的Web Servcie之间互相可以调用。
IT程序语言发展的过程实际是一个逐步降低耦合性的过程,也是一个接口和接口实现之间逐渐分离的过程。
但是Web Service 的SOAP尽管是一种标准的传输协议,但是它毕竟是一种特殊的协议,一种特殊的技术,并不支持其它的传输协议,如RMI等,所以Web Service 还是和特定的SOAP技术绑定在一起的。
通过了解IT和程序语言的发展历史,可以得到这样的一个结果,
SOA是为了信息集成,而出现的一种新事物,它显然是超越的现有的一切技术,但是它又包含了所有的技术。SOA达到的一个目的就是面向服务,而这种面向服务的结果就是忽略任何与技术有关的东西,最终提供的都是服务接口。 其实我们还应该搞清楚面向对象和面向组件之间的区别,面向组件和面向服务的区别,SOA和web service之间的区别?
面向对象和面向组件的区别在于面向组件需要和传输协议及应用服务器的端口绑定,面向服务就是要进一步对面向组件解耦,所谓解耦就是将将业务组件和传输协议的端口解耦,既各种业务组件可以自由的绑定各种传输协议。
SOA和web service之间的区别是SOA是在web Service的基础上发展起来的,web service实现了松散耦合的服务和粗粒度的服务,但是web service本质上只是一个服务组件,它虽然采用的标准的协议,但是它是个应用服务器紧密相关的。所以可以得出
结论:SOA本身并非什么具体的技术,也不是什么架构,它是一种思想,它超越了现有的技术和架构,但是它又包含了现有技术和架构。运用这种思想要到达的目的就是做到业务和技术的完全分离,做到敏捷的、不受限制的信息集成。
分享到:
相关推荐
SOA的优势在于其对业务流程的映射,它允许将复杂的业务过程分解为一系列简单的、可独立执行的服务。例如,一个销售过程可以由多个服务组成,包括客户发现、订单处理、生产、发货、账单开具和收款等。每个服务都可以...
**SOA(面向服务的架构)**是一种设计和构建软件系统的方法,它强调将功能分解为独立、可重用的服务,这些服务通过标准接口进行通信,以实现业务流程的集成和灵活性。SOA的核心思想是服务化,允许不同的业务单元共享...
它不仅提供了SOA的基础理论和概念,还分享了实用的建模方法、治理策略以及一系列成功的实践案例。对于任何希望利用SOA改进其IT基础设施的企业来说,这都是一份宝贵的指南。随着技术的不断进步,SOA的潜力还将继续被...
5. **基于开放标准**:SOA的实现依赖于一系列开放标准,如SOAP、WSDL、UDDI等。这些标准确保了服务之间的互操作性和兼容性。 #### 三、SOA的发展历程 - **早期阶段**:SOA概念并非新生事物,早在上世纪90年代就...
IBM全系列SOA培训资料之一(共8个文件): 1 Advanced SOA Workshop Agenda.pdf 2 IBM GCG BPTSE fintro and SOA overview .pdf 3 SOA Scenario E2E.pdf 4 SOA Real Case - COSCON.pdf 5 SOA100 RUP Rational ...
#### 一、什么是SOA? SOA(Service-Oriented Architecture,面向服务架构)是一种设计和实现信息技术系统的架构风格,它强调将业务功能模块化并通过标准协议进行封装,以便它们能够被独立地创建、部署、发现和调用...
**1.1 什么是服务?** 服务在理想的场景下指的是一个自给自足、无状态的业务功能单元,它通过定义良好的标准接口接收请求并返回响应。服务能够独立完成特定的任务,并且不应该依赖于其他功能或过程。这里提到的服务...
相比之下,Bus模式允许更轻松地添加新应用,但增加了应用程序端的复杂性。 随着技术的进步,SOA阶段到来,其中ESB作为服务的载体,提供消息传递、路由、转换和事务管理等功能。IBM的ESB产品支持服务的发现、注册、...
通过将应用程序分解为一系列独立的服务,并确保这些服务通过标准化接口进行通信,SOA能够帮助组织更快地响应市场变化,同时减少对现有IT基础设施的影响。随着技术的发展和企业需求的不断变化,SOA将继续作为构建灵活...
### SOA系列:开源框架Ruby on Rails 知识点详解 #### 一、Ruby on Rails 概述 **Ruby on Rails (RoR 或 Rails)** 是一个使用 Ruby 语言编写的开源 Web 应用框架,该框架自诞生以来就以其简单易用著称,并且严格...
### SOA系列:BPM资源指南 #### 业务流程管理(Business Process Management, BPM)概览 业务流程管理(BPM)并非一个新兴概念或术语,而是从一系列相关的业务流程改进领域逐步发展而来,其中包括业务流程改进...
2. **语义一致性**:确保不同团队和服务之间的术语和概念一致性是实现SOA的关键之一。 3. **业务流程重组**:实施SOA往往伴随着业务流程的重新设计,以更好地匹配SOA的原则。 #### 分析与设计 SOA的成功实施需要...
### SOA系列:Eclipse应用技术详解 #### Eclipse概述与发展历程 Eclipse作为一个开放源代码的、基于Java的可扩展开发平台,自诞生以来便备受瞩目。它最初由IBM开发,2001年正式发布为开源项目。Eclipse不仅是一个...
然而,SOAP本身仅提供了基础的消息传递机制,为了满足企业级SOA的需求,一系列扩展标准(如WS-Security、WS-ReliableMessaging等,统称为WS-*)应运而生,这些标准增强了SOA的安全性、可靠性和事务处理能力。...
为了帮助 开发共享语言和有关SOA的知识集,一群SOA专业人员创建了《SOA专业人员指南》这个文档系列。在 这个文档系列中,这些SOA专家描述并评注了一些与SOA相关的最佳实践和关键知识,以帮助其他公 司迎接...
### 中南大学软件学院SOA复习重点解析 #### 第一章 SOA技术概述 ##### 1. 为什么要引入SOA(需求拉动和技术推动) **需求拉动:** ...另一方面,它是建立在一系列以XML为基础的开放Web标准协议之上。
### 什么是SOA? SOA作为一种设计理念,在过去的几年里其含义不断扩展。因此,不同的人对SOA的理解也有所不同。简而言之,SOA是一种用于应用设计的架构模式,它主要包括三个关键部分: 1. **WebService接口**:...
SOA的核心理念是将复杂的系统分解为一系列可重用的服务,这些服务通过标准接口进行通信,实现了业务流程的灵活性和可扩展性。每个服务都具有清晰的边界,可以独立于其他服务进行开发、部署和升级,降低了系统的耦合...
实施SOA涉及一系列步骤,包括:业务分析、服务识别、服务设计、服务构建、服务部署、服务测试以及持续监控和优化。 **6. SOA与现代技术** 随着云计算、微服务和API经济的发展,SOA的概念与实践也在不断演变。例如,...
什么是SOA** SOA,即Service-Oriented Architecture,中文名为面向服务的架构,是一种设计和构建IT系统的方法论。它的核心思想是将复杂的业务逻辑分解成一系列可复用、独立的业务服务,这些服务具有清晰的边界和自...