曾经想努力搞懂啥叫SOA,因为某著名杂志曾写到21世纪不懂SOA的软件开发人员无法生存。结果,我真的太肤浅。看来看去,技术上的东西就那几种,也远远达不到各方所宣传的效果,只是对原有的经验的一个总结和标准化。所以,看上去的SOA就什么都是,它是一种架构,是一种解决了N多问题的方案,一种设计理念,一种软件的构建方法,它,还可以是一种或多种产品……
还别说,架构、方案,让一群不太懂技术的经理们信以为真,于是,赶快跟上。所谓的理念、设计之类的名词也把一群软件开发人员忽悠了,好久不来JE,发现一个SOA的帖子
只因为你不懂SOA,我本以为可以解除我的困惑,结果楼主高屋建瓴之后来了段代码:
public class CalculatorService {
private AddService addService;
@Reference
public void setAddService(AddService addService) {
this.addService = addService;
}
public double add(double n1, double n2) {
return addService.add(n1, n2);
}
}
说:
引用
那么,addService.add(n1, n2)是什么调用?
在SCA的架构体系下:
1. 他可以是简单的java调用——你能方便而快速的做JUnit Test.
2. 他可以也可是复杂一点的EJB调用——事务,分布式,Cache等你所想要的企业级特性的支持
3. 他还可以是复杂一点的Web Service调用,具体提供这个add服务的也许是一个.Net程序,又或者是一个八百年前的老系统已有的服务。
。。。
是的,他可以做最复杂的事情,但也是最简单的POJO。对于开发者来说,只用关心他的业务,其它的一切都可以忽略。
你看出什么来没有,这代码似曾相识啊,这就是一标准的策略模式的实现。不要一提设计模式就露出一副鄙视的样子,好吧,这不是Spring里多年前的IOC啊、DI啊啥的?你看,这还真能忽悠。(这也挺搞的,以前很多人搞设计模式,结果
自己把自己忽悠了。现在搞SOA,又有人把自己忽悠了,而且被设计模式给忽悠了)
SOA,至少是现在我自己了解到的SOA,就是个把各种东西揉在一起,换个马甲,然后开始卖概念,顺便把产品也送出去。这也不要技术人员懂,就是卖给IT经理之类的(记得是O6z大叔这么说的?)。从技术的角度提出,然后让技术人员看不懂,却给不搞具体技术的人看,然后得出某种极其先进、深不可测、变幻万千的结论,真是……
上次某厂商来成都时我专门去听了,我承认浪费了半天时间。其中有个印象比较深刻的:
提到这个厂商能做到与IBM、BEA之流一起制定标准,实属不易。但人家也从不亲口提民族产业,人家只说合作。到最后不知道是有人被忽悠了还是咋的,在提问时说道:以后SOA会分为微软阵营和其他厂商阵营,还举例使用WCF的例子,说这就被绑定了,用WCF就被绑上微软了。微软自然是人人喊打的,于是最终演变为一场支持国产软件的活动,为民族软件而自豪,这是有人亲自发短信,在现场的短信大屏幕上出现的。我问道:用那啥SOS就不绑定了吗?无解。
我问那个Component是怎么划分的粒度,我想看看这和普通的软件开发流程有啥区别,如何应对变化。得,最后演示了个画图生成代码的高级工具,但没看出太多实质的东西,发生变化就得重新画图,复杂的流程估计那图得成蜘蛛网了,比代码看起还累。不过效果倒是很震撼。看:只懂业务也能写软件了,正符合被忽悠人群的需要。这东西,本来就一高级代码生成器+文档、流程管理(据说这一点还算不错),扯上SOA,值钱了,也好卖了,一份抵过去五份。我并非想批判人家的产品,只是想让大家看看这现实中的SOA是怎么回事。
一时兴起,言辞太偏激,本来想作为回帖的,但还是贴到个人博客上比较好,好久没打这么多字了,正好凑一篇。:)
其实SOA也好,具体的SCA、ESB也好,都只是工具,真正的问题都靠人来解决,人的因素才是至关重要的。一个好的平台确实能够减少一定的人力需求,降低开发成本。但如市场人员那般一味鼓吹银弹,或者把工具作为项目成败的决定性因素,那无疑是个天大的笑话。SOA能升华至大部分人看不懂,与市场推广有很大关系。你想想,要让老板相信,任何人都能轻松开发项目,不再有需求变更的痛苦,不再有老手与新手之分。这种东西,又如何能,如何会让普通开发人员看懂。市场推广向来如此,只是如今扯上了SOA这面旗,于是SOA就被商业和技术搅合在一起,越来越虚无?
在技术上,我不敢妄加评论,只是发现SOA所包含的东西古已有之。以前在解决异构项目,在对各种系统进行集成时,人们总会想到某些办法,比如可能会定义一种数据格式,然后传输为XML数据。如今SOA下的那些标准,就是对各种应用场景下的东西进行一个标准化、规范化。所以说,没必要完全否定,但那也绝非银弹--软件开发中真正的问题,SOA就根本没沾边。至于说SOA是一种思想,我就觉得瞎扯了,真正的思想来自于你的大脑。不是先有了SOA的思想才有了某种风格的设计,而是先有了设计才有人提出所谓的SOA思想。你现在偏要说,我这设样计就是SOA思想的体现,那不瞎扯?
分享到:
相关推荐
基于SOA的异构构件组装模型研究 浙江师范大学 硕士学位论文 2007 盛贤良 瞿有甜副教授
SOA越来越被企业接受,很多公司都准备规划SOA。但具体怎么上,没有一套很好的方法论是不行的。资料是IBM在长期的摸索中总结的一套SOMA方法论,由于是内部培训资料,所以比较难得。 内容 一个现象 -SOA正在被企业...
SOA资源,SOA教程,SOA开发SOA资源,SOA教程,SOA开发
**SOA光学与半导体光放大器** 在信息技术领域,特别是在光纤通信系统中,半导体光放大器(Semiconductor Optical Amplifier,简称SOA)扮演着至关重要的角色。SOA是一种利用半导体材料(如镓铝砷化物,GaAs/AlGaAs...
面向服务架构(SOA)中南大学SOA原理与技术 01 SOA技术概述(共74页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 02 Web服务基础(共66页).ppt 面向服务架构(SOA)中南大学SOA原理与技术 03 Web服务实现(共...
SOA这个名词,几年前就经帯在网上看到戒者在一些讲座中听到,但自己真正比较“近距离”接触“SOA”,还是在去年的“中国IT精英年会”上,当时IBM大中华区的老总大谈IBM 的SOA,BEA公司(当时还没被Oracle 收购)也讲了很多...
安全是任何系统都不可忽视的一环,尤其是在分布式环境下的SOA。本章将探讨服务认证、授权、加密以及事务安全性等主题。 ### 第七章:SOA与Web服务 本章将讨论SOA与Web服务的关系,解释如何使用SOAP、RESTful等Web...
在学习SOA时,理解服务的定义、服务间的通信以及如何使用像XFire这样的工具来实现服务,都是非常关键的步骤。在实际工作中,SOA可以帮助企业构建灵活、可扩展的系统,以适应不断变化的业务需求。
4. **无状态服务设计**:SOA中的服务设计通常是无状态的,即每次服务调用都是独立的,不需要保留上下文信息。这有助于提高系统的可伸缩性和性能。 5. **基于开放标准**:SOA的实现依赖于一系列开放标准,如SOAP、...
**正文** 在IT行业中,Service-Oriented Architecture(SOA)是一种设计和构建软件系统的方法,它强调将功能分解为独立...理解并掌握这些知识对于任何想要在Teamcenter环境中进行SOA开发的IT专业人士都是至关重要的。
### SOA与SOMA:服务导向架构及建模方法详解 #### 一、引言 随着软件工程的发展,从结构化编程到面向对象编程,再到组件化开发,技术不断演进。在这一过程中,服务导向架构(SOA)成为了一个重要的里程碑。SOA不仅...
SOA,即Service-Oriented Architecture(面向服务的架构),是一种设计复杂应用系统的方法论,其核心理念是将应用程序的不同功能单元通过通信协议联系起来,这些单元被称为服务。SOA强调的是服务之间的松耦合,使得...
本书介绍了面向服务的架构(SOA)的基本概念和蓝图,对构成SOA的方方面面,包括服务编写和组装、业务流程建模、事件处理和报告、企业集成总线、决策服务等进行了全方位的介绍,并以“开放SOA平台”为目标,与读者...
**SOA(Service-Oriented Architecture,面向服务架构)**是一种软件设计范式,它强调通过独立、可重用的服务来构建系统。自20世纪90年代末被提出以来,SOA经历了漫长的发展历程,逐渐成为现代企业信息化建设的重要...
**服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的方法,它强调通过松散耦合的服务来实现业务流程的集成和灵活性。本指南将深入探讨SOA的核心概念、优势以及实施策略,帮助从业...
### IBM SOA 治理培训教材核心知识点详解 #### 一、为什么需要 SOA 治理? 在企业信息化建设的过程中,随着服务导向架构(SOA)的应用日益广泛,如何确保服务的有效管理成为了关键问题。SOA 治理的重要性在于它...
首先,SOA是一种组件模型,它将复杂的软件系统分解为独立的服务,每个服务都有清晰的接口和契约,这些接口定义了服务之间的通信方式,而服务本身则可以独立于具体的实现平台和技术栈。这种解耦的设计使得服务可以在...
在实际操作中,企业还需要考虑SOA的实施阶段,从规划到设计、开发、测试、部署和维护,每个阶段都有其挑战和最佳实践。同时,SOA并非一蹴而就,而是需要逐步演进,逐步实现服务化的目标。通过深入理解和掌握上述知识...