1.SOA的定义
面向服务的体系结构(Service-Oriented Architecture,SOA),从应用和原理的角度看,目前有两种业界公认的标准定义。
从应用的角度定义 ,可以认为SOA是一种应用框架,它着眼于日常的业务应用,并将它们划分为单独的业务功能和流程,即所谓的服务。SOA使用户可以构建、部署和整合这些服务,且无需依赖应用程序及其运行平台,从而提高业务流程的灵活性。这种业务灵活性可使企业加快发展速度,降低总体拥有成本,改善对及时、准确信息的访问。SOA有助于实现更多的资产重用、更轻松的管理和更快的开发与部署。
从软件的基本原理定义 ,可以认为SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
作为软件架构师,后一种从软件原理方面的定义,对日常工作更具指导性。
2.业务流程与BPEL
业务流程是指为了实现某种业务目的行为所进行的流程或一系列动作。在计算机领域,业务流程代表的是某一个问题在计算机系统内部得到解决的全部流程。
由于业务流程来源于现实世界,传统上是通过复杂的语言进行描述。在计算机业务系统建模中,需要用到一种特定的、简洁的语言来专门描述计算机系统的业务流程,这便促使了BPEL的诞生。
**BPEL(Business Process Execution Language For Web Services)**翻译成中文的意思是面向Web服务的业务流程执行语言,也有的文献简写成BPEL4WS,它是一种使用Web服务定义和执行业务流程的语言。使用BPEL,用户可以通过组合、编排和协调Web服务自上而下地实现面向服务的体系结构。BPEL提供了一种相对简单易懂的方法,可将多个Web服务组合到一个新的复合服务(称作业务流程)中。
BPEL目前用于整合现有的Web Service,将现有的Web Services按照要求的业务流程整理成为一个新的Web Services,在这个基础上,形成一个从外界看来和单个Service用于的Service。