我看到了很多关于Java的SOA书籍,并且一直有一个潜意识的概念,即Java是健壮/企业级SOA的“正确”语言,尽管我知道SOA涉及什么,使用其他语言和框架是完全可能的。
Java有哪些其他语言/平台没有的独占特性,这使得它在so中如此受欢迎?
发布于 2012-08-28 21:43:35
Java有哪些其他语言/平台没有的独占特性,这使得它在so中如此受欢迎?
Java本身并没有什么特别适合SOA的地方。当然,它提供垃圾收集和动态代码加载等功能,它们都很有用,但它们几乎不是Java的独特特性。
然而,真正起作用的是Enterprise规范(它演变为EJB和JEE)。这基本上是一个概念的调整,在大铁空间(事务监视器,诸如此类的东西)已经存在了很长时间,到一个OO模型,加上状态的增加,使某些类型的模型更容易表达。有趣的是,EJB是一项多供应商的努力;是的,Sun大力推广了它,但是在规范生命周期的早期,有许多商业供应商在他们的产品中实现了EJB。这鼓励了大量的采用;在基于Java的事务监视器方面的专门知识突然变成了一种很好的可转移的技能。
一旦建立了这个基础,它就会发展壮大(例如,它提供了优秀的SOAP工具支持,在许多部署中取代了CORBA的使用),这就真正地巩固了Java。目前保持Java作为SOA空间之王的是第三方库的巨大生态系统,只要您使用Java (或其他基于JVM的语言之一,如Groovy或Scala),就可以轻松地在这个领域工作。在其他语言和其他环境中拥有这样的库是完全可能的--我希望C#和.NET在这个度量标准上做得相当好--但是您通常需要自己编写更大一部分的支持层,其中一些需要技巧和无聊才能做好;如果能够让您能够专注于应用程序的业务逻辑而不是支持框架,那么利用Java就很有意义了。
简而言之,Java对您来说是SOA的好处,因为它对许多其他人来说是SOA的好处(是的,这是自增强的,听起来很紧张);这是网络效果。
发布于 2012-08-28 08:17:48
Java曾经(而且现在仍然)只是最流行的一种应用程序语言,其中SOA概念最具吸引力,即具有不断变化的需求的异构分布式和集成系统,即“企业应用程序”。因此,在SOA成为完全相同领域的流行词之前,每个人都已经在使用Java来实现这类系统。
至于Java在这一领域如此流行的原因,可能有很多原因:平台无关性、优秀的跨版本兼容性、Sun的市场预算和以前的市场(通过Solaris和硬件)、对标准化API的关注,是第一个提供可接受性能的垃圾收集和基于VM的语言.
发布于 2012-08-28 08:58:49
仅仅是因为使用SOA技术连接的许多最初的系统已经在Java中构建了。Java中没有任何继承可以使它成为SOA解决方案的高级语言。
有些人可能会说,BDD/TDD框架和周围社区的丰富生态系统帮助构建了更健壮的SOA解决方案,但我还是再次看到了许多糟糕的解决方案:-)。
简而言之,SOA是一种与语言无关的体系结构设计模式。
https://softwareengineering.stackexchange.com/questions/162562
复制相似问题