<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>
SOA,现在进行时
SOA现在正热得"烫手"。
对于SOA,目前我听到有两种说法:一种讲它是"颠覆性的革命架构",一种是"谨慎观望"。但无疑,SOA最近几年发展得非常快,各主要软件厂商纷纷高调跟进,关于SOA的报道可以说是不绝于耳。对"SOA热",程序员们有的兴奋和期待,有的则感到困惑,最近我在金蝶中间件于广州、上海等城市举行的"Java俱乐部"上和程序员们交流时,他们或是以一种朝圣者的表情说:"以前面向对象的技术过时了,SOA时代来了",或者一再恳切地追问我:"SOA到底是什么?作用是什么?"
那么,SOA是什么?到底能解决什么问题、解决得怎样?我们和客户都准备好了吗?我给出的答案是"Just Processing,SOA-现在进行中"。
SOA到底是什么?
SOA(Service-Oriented Architecture)的定义是面向服务的架构,就是说将软件按照功能设计成一个个服务,这些服务用标准的方式定义接口、并通过标准的协议进行调用。SOA所定义的接口和调用方式是独立于编程语言和运行平台的,广义上讲SOA可以基于不同的底层技术实现,比如CORBA和Web Services。但CORBA由于过于复杂和臃肿已很少使用,所以目前所说的SOA绝大多数是基于Web Services技术实现。在Web Services的实现方式下,SOA服务的接口用XML进行定义。
在SOA架构下,软件开发从业务流程分析开始,使用组件化业务建模的方法识别和分析各种业务模型,将各种实践融入其中,在这个基础上建立用例,用例直接产生BPEL,这些BPEL则可以被融入一个服务整合框架中,其描述了各种服务的信息,从而把ESB上的各个模块统一起来,形成一个巨大的服务仓。
这样,SOA甚至是所有软件人员的一个梦:将中间层再进行抽离,在中间层作一个跨技术架构的元数据和业务逻辑,使之成为跨技术架构的、可长期继承、并不断积累的企业业务库和最宝贵的信息资产,也就是面向服务的组件库,而且这个服务组件库也可以被其它企业复用,且不依赖于任何一种技术架构。夸张一点说,如果所有软件企业都使用SOA架构,那么世界软件业将会发生彻底的改变。显然,这样一个框架不是一种产品,也不仅仅是一种技术,而是一种解决问题的方法论。
SOA可能应用的两个场景及现有问题
那么,SOA要解决的问题是什么?我认为,从技术本质上讲,SOA可能应用于两个场景:第一种是业务互通互联;第二种是封闭交易系统,即将元数据和业务逻辑抽离,形成可复用。举个例子,在第一种场景中,当不同企业之间的业务需要相互调用,这时就可能采用SOA技术;在第二种场景中,在企业内部需要将系统进行迁移时,利用SOA技术定义的原有数据和业务流程,可以很快完成。
无疑,SOA是一个伟大的思想,它试图定义一个大家(各种软件厂商)都"认"的、都"遵循"的法则,大家都使用这样的方法来进行互联互通,从而实现无界限的联通,以及服务组件库的继承和复用,解放无效和重复劳动。打一个不那么恰当的比喻,就像人类的语言一样。SOA或许就像《圣经》中那个著名的"通天塔"的故事:人们用同一种语言交流产生的威力是如此之大,以至于他们在巴比伦几乎要修成一个"通天塔",直达上帝所在的天庭。
但是,在SOA应用的两个场景中,现存的问题同样也是明显的:
第一种场景:业务互联互通,就是应用系统互联。业务互联,与其说是技术问题,不如讲是业务问题,例如ERP、CRM的异步整合,数据层面整合都不能很好将两个系统整合,SOA仅仅是一种实现工具之一,整合效果并不会好不到那里去。我们可以说,在没有其他选项之前,SOA是一种最"不坏"的方式,但它并不能解决所有的问题,实际上EAI的牵涉面很广,而我们知道,有些问题并不是单纯靠技术就能解决的。
第二种场景:封闭交易系统,缺点是性能慢,而且基于Web Services的交易没有形成明确的规范。使用XML作信息交互比较慢是大家都承认的,性能问题将对SOA的发展造在一定的阻力。同时SOA规范本身没有完善,比如Transaction规范还在不断完善,而且Web Service多年来收效甚微。总的来说,SOA现在还处在一个发展阶段,很多标准还在制定,不同厂商间还存在不兼容的现象,因此SOA还不能说已经是一个成熟的技术,还需要时间的检验,还在"进行中"。当然,金蝶中间件作为JCP组织成员,也会推动SOA规范在J2EE平台上的实现。
中国用户的现实选择之惑
在憧憬SOA技术可能带来的前景之余,我们不得不回过头来冷静地说:SOA和我们大家的共同客户――中国企业还有距离。
中国信息化进程与欧美不同,大量的基础业务系统还没建立起来,整合需求并不如想象的那么大。从我们对客户的了解,发现很少有客户有SOA的需求。简单地总结就是,互通无基础,以新建系统为主,需求并不强烈。而欧美市场大量业务系统已建立起来需要整合,从这个角度讲,SOA是适用于他们的。同时,在成功案例极少的前提下,SOA还处于培育期,新建封闭交易系统使用SOA技术还是有一定风险的。
一项新技术需要市场的消化,大型企业出于保护企业投资,不会轻易地转移到新的技术平台;而即使像J2EE这样成熟的技术经过了这么多年的发展,也不敢说占有统治地位的市场份额。SOA还需要整个IT界的用户和供应商共同促进。
中国信息化需要什么样的技术架构、能够接受什么样的成本价位?这不仅仅是我们的客户需要考虑,我们软件厂商要比客户考虑得更清楚、更进一步。在这个充满变数的激烈竞争市场,只有冷静务实才能生存、发展。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1531424
分享到:
相关推荐
- **光开关**:利用SOA的电光效应进行快速开关操作。 - **WDM系统**:SOA可以同时放大多个波长,适用于多通道的WDM系统。 - **光逻辑运算**:通过非线性效应实现光子逻辑门操作,为全光计算提供基础。 - **光孤子...
开发Teamcenter的SOA服务时,开发人员需要熟悉Teamcenter的API和数据模型,理解业务流程,并具备良好的服务设计和测试能力。此外,为了确保服务的安全性和性能,还需要考虑身份验证、授权、事务管理和性能优化等因素...
**SOA(Service-Oriented Architecture,面向服务架构)是一种软件设计模式,它提倡将功能作为独立的服务,这些服务可以通过网络进行交互,实现模块化、松耦合的系统。在本压缩包“SOA.rar”中,我们主要探讨的是...
3. **服务的重用**:设计时应考虑服务的通用性,以便在多个应用场景中重用。 4. **服务的自治**:每个服务应独立于其他服务运行,减少依赖,提高系统的健壮性。 5. **服务的标准化**:采用开放标准进行服务定义和...
如WSDL(Web Services Description Language)、UDDI(Universal Description, Discovery, and Integration)和SOAP(Simple Object Access Protocol),SOA得以实现标准化,并能够跨平台、跨语言地进行通信。...
4. **安全**:实施SOA时,必须考虑服务的安全性,包括认证、授权、加密和审计等。 5. **性能优化**:使用缓存、负载均衡和消息队列等技术来提升SOA系统的性能。 6. **持续集成与自动化测试**:为了确保服务质量,...
2. **临时修复**:出现故障时,虽然进行了临时修复,但问题反复出现。 3. **成本上升**:由于缺乏有效管理和维护,导致维护成本大幅增加。 4. **服务终止**:最终供应商因为无法承担高昂的成本而停止服务。 这个...
- **业务驱动的接口**:SOA的设计强调基于服务接口进行开发。一个好的服务接口应该是业务驱动的,这意味着接口设计应侧重于业务逻辑而非具体的技术实现细节。 - **明确的行为**:定义良好的接口应当具有明确的行为,...
10. **最佳实践**:文档中可能分享了BEA在实施SOA项目时积累的最佳实践,包括服务设计原则、性能优化、故障排查等方面。 通过《SOA解决方案——BEA的SOA解决方案》这份PPT,读者可以系统地学习到BEA的SOA实施策略和...
SOA是一种软件设计范式,它强调将业务功能分解为独立的服务,这些服务可以通过网络进行交互和组合,以提供复杂的业务流程。SOA的核心理念是解耦、重用和服务的自治性,这使得系统更具灵活性和可扩展性。 在实施SOA...
### SOA架构的本质 #### SOA的基本概念与理解 服务导向架构(Service Oriented Architecture,简称SOA)作为近年来IT领域的热门话题,被...因此,企业在考虑采用SOA时,应当进行全面的评估,并制定详细的实施计划。
- **松耦合**:服务之间通过标准协议进行通信,降低相互依赖性,提高系统的灵活性和可维护性。 - **服务发现**:允许服务消费者动态查找和绑定到所需的服务。 - **服务组合**:通过组合多个服务来实现更复杂的...
2. **运行时容器**:为服务提供运行环境,如Java EE服务器或.NET框架。 3. **服务治理工具**:帮助管理和控制服务的生命周期,包括版本控制、安全策略配置和性能监控等。 4. **业务流程管理工具**:支持业务流程的...
- **设计时间**:介绍构建SOA环境时所需的设计工具和资源。 - **运行时间**:讲解运行SOA应用所需的基础架构和服务配置。 2. **新过程创建** - **定义新过程**:提供创建新业务流程的方法论。 - **模型化过程**...
- **旧技术迁移**:对于不愿或不能替换旧系统的组织,SOA提供了一种在不废弃原有系统的情况下进行现代化升级的方法。 **5. SOA的优势** - **业务连续性**:通过松耦合,企业可以快速适应变化,确保业务连续性。 - ...
5. **互操作性**:SOA强调服务之间的互操作性,这意味着不同的服务可以跨平台、跨语言进行交互。 6. **业务语言描述的服务**:服务的设计应以业务术语为基础,便于业务人员理解。 7. **可共享**:SOA中的服务可以被...
它允许企业以模块化的方式添加、修改或删除服务,而不必对整个系统进行大规模重构。 SOA的优势主要体现在以下几个方面: 1. **跨企业协作**:通过互联网发布服务,SOA可以打破企业内部的界限,促进与供应链合作...
2. **服务发现与注册**:SOA中,服务的发现是通过服务注册表或目录来实现的,使得消费者可以在需要时查找并绑定到合适的服务。这增强了系统的动态性和可配置性。 3. **服务组合与编排**:通过组合多个服务,可以...
并借助自动化手段进行资源调度与监控。IBM的WebSphere平台云方案,正是通过WVE、IWD和WXS等组件,实现了对SOA思想的创新性支持,满足了现代企业对于高效、灵活、成本节约的需求。 ### 面对SOA实施的挑战,云计算...