我正在开发一个基于SOAP的SOA项目。好吧,我在互联网上阅读了很多教程,但我仍然有同样的问题,这是所有的文章&博客,甚至eclipse的官方文档都告诉你如何使用IDE助手或这样的API&用于创建Web服务的框架(例如:JAX-WS,CXF),并为您提供SOAP,WSDL和EX的一些定义。 UDDI,但它们都没有解释SOA的工作原理,发布和发布的过程。部署WS已完成&如何使用所有这些实体完成远程Web服务的C / S req / resp过程SOAP,WSDL& UDDI和SOA项目中存在的其他文件(XML文件和java文件)。 我已经阅读了很多电子书,但仍然不了解SOA的工作原理。 pliiiz我需要你的帮助,我真的很不安困惑。 非常感谢提前。
答案 0 :(得分:10)
不要过于担心这个术语面向服务的体系结构(SOA),因为它更像是一个营销术语,它描述了一个众所周知的实践软件开发方法,即将程序变成可以组成的专用组件。可在各种应用程序中重复使用。它还可以描述将这种软件开发方法应用于业务流程建模,其中业务单元和工作流被模块化并被视为单独的服务,而不是泡沫中存在的整体流程,有些人将这种概念称为不同但相关的应用{{3 }}
虽然SOA与模块化共享很多共同点,但它还增加了以下要求:您的单独代码模块不仅可以互相操作和集成(即可以很好地协同工作),而且可能与世界上其他人的代码相关,并且它们可以通过一些明确定义的机制获得。
SOA“纯粹主义者”可能会告诉您,为了使您的软件“符合SOA”(请注意:由于服务上没有单一的规则或管理机构,这不是真实的事情)您需要将其写为一个Service Oriented Modeling Web服务,发布和维护一个WSDL,它可以作为您和任何实施方之间的契约,并遵循相关的SOAP。但是,实际上WS-* specs和其他轻量级模块化/集成/可重用性方法同样符合SOA的概念。
如果您确实希望成为SOA中的“专家”,那么请仔细阅读以下规范中的每一个字:
<强> DISCOVERY 强>
<强>信息强>
- XRDS
- SOAP 1.1
- SOAP 1.2
- SOAP over JMS(Msg Trans Optimization Mechanism)
- MTOM
<强>元数据强>
- WS-Addressing
- WSBPEL
- WSDL 1.1
- WSDL 2.0
- WADL
- WSFL
- WS-Policy
- WS-PolicyAssertions
- WS-PolicyAttachment(WS-MEX)
安全强>
服务质量
(这些只是一些最重要的WS- *规范,WS-TX)
然后阅读以下基本SOA书籍的每一页:
然而,我实际上并没有建议,因为阅读材料太多了。我建议的是,您在使用SOA方法编写自己的程序时将它们用作参考,并注意到在特定区域,有关下一步操作的参考手册会派上用场。实践是完美的,你将从真实世界的例子中学到更多东西,而不是阅读书籍和学习有关标准和理论的一切。正如您所提到的,从过分简单化的JAX-WS和JAX-RS Web服务示例开始,这些示例与NetBeans或Eclipse等IDE一起开箱即用,然后尝试一些带有流行SOA框架的示例,如{{3 }},RESTful Web Services或CXF。
一般情况下,在编写代码时,请不断问自己代码是否为:
答案 1 :(得分:2)
将SOA视为一组这样或那样的技术是错误的。我也不同意SOA只是一个营销术语,虽然它确实声名狼借,并且被市场营销和炒作搞得一团糟。
面向服务的体系结构是一种架构风格。如同一个体系结构的蓝图,该体系结构限制了服务的方式和内容,以及定义集合组件和定义它们的交互。 下图显示了SOA与REST,您可以看到它们是从一些常见样式派生的(例如,它们都构建在客户端/服务器上),但也来自不同的样式,其中SOA构建在pipe and filters 上,REST就是#39 ;(你可以构建RESTful SOA,但你必须更加努力:))
SOA非常重视界面。因此,与OO不同,您有4个不同的组件来定义接口。消息,捆绑消息的合同,交付合同的端点以及管理合同交付方式/时间的策略。
构建具有明确界限的服务&amp;良好的粒度(这是棘手的部分)使您能够以灵活的方式组合服务,从而更快地实现业务功能。 请原谅我敲打自己的鼓,但你可以在我关于SOA模式的书chapter 1和chapter 10中阅读更多关于SOA和REST与SOA的内容