﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-牙牙窝-文章分类-SOA</title><link>http://www.blogjava.net/bigbigtooth/category/19290.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 06:43:17 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 06:43:17 GMT</pubDate><ttl>60</ttl><item><title>转 ： SOA 2006年终回顾以及2007展望（一） </title><link>http://www.blogjava.net/bigbigtooth/articles/94960.html</link><dc:creator>大牙</dc:creator><author>大牙</author><pubDate>Fri, 19 Jan 2007 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/bigbigtooth/articles/94960.html</guid><wfw:comment>http://www.blogjava.net/bigbigtooth/comments/94960.html</wfw:comment><comments>http://www.blogjava.net/bigbigtooth/articles/94960.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bigbigtooth/comments/commentRss/94960.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bigbigtooth/services/trackbacks/94960.html</trackback:ping><description><![CDATA[出自：<a href="http://www.javaeye.com/topic/39348">http://www.javaeye.com/topic/39348</a><br /><br />－、国内发展现状和应用需求<br />    SOA几乎已经成为企业应用架构的主流，从2006年6月22日计算机世界“中间件应用年会”上可以看出，大部分主题演讲都涉及到SOA的应用和部署问题，IBM当前不仅以服务商的角色介入SOA，而且在此次大会上还带来了众多的SOA的成功实施案例；BEA公司也定位于SOA平台提供商，并且推出了一系列产品和方案；国内软件企业，像中创、东方通科技以及金蝶、用友、科诺等公司也在不同程度地切入SOA工具或解决方案的开发。种种迹象表明，SOA已经超越概念走向应用，并逐渐形成一股不可阻挡的潮流。<br /><br /><br />二、Web Services开源热火朝天<br />1.Web Services开源项目<br />    作为SOA一种主要实行方式的Web Services，其开源项目正如火如荼。<br /><br />    Java6 发布，支持XML&amp;WebService, JDK就直接支持Web Services了。这样Sun强势参与Web Services的竞争。这种现象很有趣，各大厂商在各自强项之间互相渗透，Sun被Apache Harmony项目所逼，被一些厂商要求两年后，将JDK开源，但同时也给IBM、BEA、Oracle等厂商反戈一击，在刚发布的JDK 6中捆绑Web Services。<br /><br />    Axis2和XFire是最火的两个Web Services开源项目，但其他的项目也做得不错。<br /><br />XFire<br />Celtix<br />Mule<br />Apache Axis2<br />Apache CXF<br />    XFire和Celtix合并，在Apache下形成的一个新的孵化项目。<br />Apache Ode<br />    是一个WS-BPEL实现<br />Apache Rampart<br />    是一个WS-Security实现<br />Apache Sandesha2<br />    是一个WS-ReliableMessaging实现<br />Apache Tuscany<br />    是一个SCA实现。<br />Apache ServiceMix<br />    是一个JBI实现。<br /><br />Eclipse的STP（SOA Tooling Project）子项目<br />此Eclipse项目旨在提供一个其他开发人员可以使用的SOA开发工具框架，以便使他们不必自己开发这些工具。<br /><br />2.Web Services开源项目特点：<br />    1)各项目侧重点有些不一样，还互相引用，交流甚多，人员合作也较多。不像Sun JDK开源和Apache Harmony，Apahce Geronomy和JBOSS等几乎重叠，正面冲突。<br /><br />    2)这些项目都支持Spring的Bean配置或扩展Spring的接口，和Spring集成。可见Spring火爆程度。不同开源社区不断融合，互相吸引人气。<br />    3)使用工具的变化<br />    版本管理工具由cvs变为subversion<br />    build工具由ant变为maven<br />    4)众多开源社区中Apache的人气最旺<br />    有意思的是，很多开源项目在别的小社区发展到2.0, 3.0版本后还不遗余力地迁移到Apache, 如ServiceMix从Codehaus搬到Apache，Codehaus的XFire和objectweb的Celtix合并后，乔迁到Apache。它们甚至甘愿接受Apache社区的规定：需要一段时间的修炼才能从孵化器中毕业。<br /><br />3.微软Indigo<br />    说了这么多JAVA阵营的Web Services项目，还得提一下巨人微软的策略。<br />    Indigo是微软用于构建面向服务应用程序的代号，后被正式命名为Windows Communication Foundation。Indigo允许目前创建面向对象应用程序的开发人员采用 .NET Framework以相似的方式来创建面向服务的应用程序。同时为了让这些应用程序能够与运行在 Windows 和其他平台上的软件有效地进行交互，Indigo 还实现了SOAP和其他Web服务技术，这样开发人员就可以创建可靠、安全且能够与运行在任何系统上的软件实现互操作的事务型服务。<br /><br />为了实现基本通信以外的功能，Indigo 采用了一些更新的WS-* 规范。这些文档定义了用于添加可靠消息传输、安全性、事务以及更多基于 SOAP 的 Web 服务的多供应商方式。所有这些规范最初均是由 Microsoft、IBM 及其他供应商共同制定的。随着它们日渐稳定，所有权通常会转移到一些标准机构，如结构化信息标准促进组织 (OASIS)。Indigo 第一版中支持的 Web 服务规范包括 WS-Addressing、WS-Policy、WS-MetadataExchange、WS-ReliableMessaging、WS-Security、WS-Trust、WS-SecureConversation、WS-Coordination、WS- AtomicTransaction 和 SOAP 消息传输优化机制 (MTOM)。<br /><br />    Indigo已经包含在Vista之中。<br /><br />    目前Web Services的实现分为两大阵营，一是微软，一是Java厂商。这两大阵营实现Web Services规范的产品都在互相进行互操作性测试。<br /><br /><br />三、这一年各开源项目广泛实现的web services规范<br />    括弧里的开源项目支持前面的规范及其新版本。<br /><br />SOAP 1.2（Axis2 1.1）<br />WSDL 2.0（XFire 1.2.2）<br />JAX-WS 2.0（Celtix 1.0）<br />WS-Policy（Axis2 1.1）<br />MTOM（Axis2 1.1）<br />XOP（Axis2 1.1）<br />WS-RM（Celtix 1.0、Apache Sandesha2、Axis2 1.1）<br />WS-Addressing（Axis2 1.1、Celtix 1.0）<br />WS-Security（Apache Rampart、Axis2 1.1）<br />SAAJ 1.1（Axis2 1.1、Celtix 1.0）<br />JBI（ServiceMix 3.0.1，Celtix 1.0仅集成，XFire 1.2.2仅集成，Mule）<br />SCA（Tuscany）<br />WS-BPEL（Apache Ode、ServiceMix 3.0.1）<br /><br /><br />四、争论与融合<br />1. SOAP和REST正走向融合<br />    基于SOAP和WSDL的Web Services规范多而复杂，虽然它是标准的，但是用户头疼，学习曲线陡而长，应用构建时间长。简单就是美，易用性是金。在java企业应用开发领域， EJB的没落，Spring框架的兴起和流行印证了这一规律。同样，在SOA领域这一规律也已起作用，兴起了另一种简单的实现——REST，虽然它不是标准的。<br /><br />    其实REST和SOAP各有所长。REST简单、易用，与互联网思想一脉相承，核心思想是资源共享、面向资源的Web Services。而SOAP是广为接受的标准，在互操作性方面，解决复杂的系统集成方面优势明显，其核心思想是面向活动的Web Services。<br /><br />    以前，REST和SOAP的争论异常激烈。如google选择SOAP；而Amazon 85％的web services应用采用REST，15％采用SOAP。<br /><br />    但慢慢地厂商变得越来越聪明，逐步摆脱理论上的争论，看重实际的接受度。如微软的Web Services项目Indigo去年底宣布支持REST；Apache Axis2同时支持SOAP协议栈和REST，而且二者可互相通讯。<br />    同时，SOAP族的Web Services规范新版本开始支持REST的特性（http get/post）,如WSDL 2.0和SOAP 1.2<br /><br />    真所谓分久必合，合久必分。SOAP和REST正走向融合。<br />        <br />2. JBI和SCA之争<br />    SUN阵营支持JBI，而BEA、IBM、SAP、SIEBEL支持SCA。随着7月初SUN公司的加入SCA/SDO国际构件标准组织，标志着Sun将逐步放弃自己的JBI，预示着Java和JavaEE将在未来五年内逐渐退出‘解决客户关键问题的主流技术’的地位。<br />    其实不少JBI和JCA专家组的成员更倾向于JBI，但是IBM等不喜欢SUN控制JAVA，不愿看到将来SUN控制SOA的商业应用。其实JBI是好东西，被牺牲了。不过，SUN如果早点将JDK开源，避垄断JAVA之嫌，就不会这么孤立。<br /><br /><br />3. JAX-WS2.0 替换JAX-RPC 1.1<br />    JAX-WS2.0即Java API for XML Web Services (JAX-WS) 2.0，JAX-RPC 1.1即Java API for XML-Based RPC (JAX-RPC) 1.1。它们都是sun公司的使用 Java 技术开发 Web 服务的规范，前者是后者的升级版本。<br />    JAX-WS2.0的binding层用JAXB（JSR 222），xml解析层用StAX（JSR 173），完全基于标准，性能得到大幅提升；支持Java 5的注释（annotation），容易开发。<br />    <br /><br /><br />五、总结<br />1. SOA是未来企业的IT应用模式<br />    而在SOA创造的商业世界里，企业将有机会像玩积木（网络服务构件就是积木）游戏一样创造崭新的商业模式，从不同厂商购买网络服务，编排和组装自己的应用。IT的收费方式不是整个产品，也不是按CPU、license收费，而是按网络服务调用次数收费。灵活、总体拥有成本将大大降低，将注意力集中于自身的商业逻辑。<br />    同时，经历十几年、二十几年的IT建设，企业拥有了各种各样的系统，c++、java、c、cobra写的各种各样的遗留系统，保护企业以前的投资，构建出新的应用，这样的需求越来越多、越来越强烈。而这正是SOA发挥作用的舞台，SOA可提供跨平台、跨语言的、可扩展的、可靠和安全的网络服务。<br />    Gartner预测，到2008年，75%的新企业应用将采纳SOA。<br /><br />2. ESB（企业服务总线）的淡出<br />     ESB这一概念将会淡出，SOA治理、策略（policy）和SOA Network、SOA Repository正在兴起。<br /><br />3. SOA应用趋势<br />总结一句，SOA的应用大潮将至，SOA中间件产品的竞争越来越激烈。IBM 11月1日宣布在北京和印度成立SOA全球解决方案中心。这标志着SOA应用竞争的升级。<br /><img src ="http://www.blogjava.net/bigbigtooth/aggbug/94960.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bigbigtooth/" target="_blank">大牙</a> 2007-01-19 16:49 <a href="http://www.blogjava.net/bigbigtooth/articles/94960.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于SCA和JBI的一些比较</title><link>http://www.blogjava.net/bigbigtooth/articles/94459.html</link><dc:creator>大牙</dc:creator><author>大牙</author><pubDate>Wed, 17 Jan 2007 09:03:00 GMT</pubDate><guid>http://www.blogjava.net/bigbigtooth/articles/94459.html</guid><wfw:comment>http://www.blogjava.net/bigbigtooth/comments/94459.html</wfw:comment><comments>http://www.blogjava.net/bigbigtooth/articles/94459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bigbigtooth/comments/commentRss/94459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bigbigtooth/services/trackbacks/94459.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">1</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">JBI<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%">
				<span lang="EN-US">
						<span style="mso-tab-count: 1">       </span>JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span>
				<span lang="EN-US">Java</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">™</span>
				<span lang="EN-US"> Business Integration </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）是一种企业服务总线</span>
				<span lang="EN-US">(Enterprise Service Bus,ESB)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，用于形成一种关键基础设施片段，使我们能够用</span>
				<span lang="EN-US">Java</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实现面向服务的架构，主要目的是提供一个基于服务的平台作为对现有</span>
				<span lang="EN-US">Java/J2EE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">平台功能的扩展。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当前的</span>
				<span lang="EN-US">J2EE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">部署都运行在一个基础上，那就是应用服务器。应用服务器本身由两个独立的部分组成</span>
				<span lang="EN-US">——Servlet</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">容器和</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">容器，它们分别用于部署</span>
				<span lang="EN-US">JSP/Servlets</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">构件。在它们中的任何一个，你都能使用</span>
				<span lang="EN-US">Web services</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。但是，在任何环境中以分散的方式使用</span>
				<span lang="EN-US">services</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是很困难的工作，而</span>
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的目的就是为完成这个任务提供一个专门的环境。其最底层是一个容器，它与</span>
				<span lang="EN-US">J2EE</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的容器一样定义了自身的部署构件。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供了一种正规消息路由器</span>
				<span lang="EN-US">(Normalized Message Router,NMR)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，说白了，就是一个地点。在这个地点，所有基于消息的数据片段</span>
				<span lang="EN-US">——SOAP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">片段、</span>
				<span lang="EN-US">MOM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">消息、</span>
				<span lang="EN-US">HTTP</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">数据或其它信息</span>
				<span lang="EN-US">——</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">被聚合、集中、应用到业务逻辑、传输，如果有必要则被转换成其它格式并随后被分派到最终目的地。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　　</span>
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">很适合企业级应用，因为它通过一种总线型架构的基于消息的手段到达了适应大范围的消费者和提供者的目的。现在，让我们看看除了</span>
				<span lang="EN-US">NMR</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还有什么构成了</span>
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">环境直接交互的是两个部分，</span>
				<span lang="EN-US">JBI machine</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">JBI binding</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
				<span lang="EN-US">JBI machine</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义了部署构件以及在环境中管理它们的方式。本质上，它是提供商设计的黑盒，用于在</span>
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中支持他们自己的模型。另一方面，</span>
				<span lang="EN-US">JBI binding</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">则被环境通过专门的业务协议与外部世界进行通信。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是提供了一些简单的</span>
				<span lang="EN-US">API</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">定义，</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这些定义包括</span>
				<span lang="EN-US"> NormalizedMessage Service , </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在一个</span>
				<span lang="EN-US">Router</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件，以及一个管理模型用来管理服务的部署集成，例如</span>
				<span lang="EN-US"> routing engines, BPEL engines, rule systems, transformation engines</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供了一个逻辑的</span>
				<span lang="EN-US">XML</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">消息网络，</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这一网络能够很容易的映射到</span>
				<span lang="EN-US">HTTP, email </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US"> JMS/MOM </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，并很方便地适应遗留系统，二进制地传输，和</span>
				<span lang="EN-US">RPC</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统（</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span>
				<span lang="EN-US">CORBA)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</span>
				<span lang="EN-US"> JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以看做是对</span>
				<span lang="EN-US">JMS</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的更高层次的逻辑抽象，并提供了不同的消息交换方式（</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">单步，</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">请求应答等）</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">2</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">SCA<o:p></o:p></span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务构件架构</span>
				<span lang="EN-US">SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span>
				<span lang="EN-US">Service Component Architecture </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）致力于为使用广泛的编程语言来构造服务构件提供一种编程模型，并且也为把这些服务构件组装为一个业务上的解决方案提供了一种模型，这种组装的活动正是采用面向服务的架构</span>
				<span lang="EN-US">(service-oriented architecture)</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来搭建应用系统的核心。</span>
				<span lang="EN-US">
						<span style="mso-tab-count: 1">   </span>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span lang="EN-US">SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为建设基于面向服务的体系结构的应用和系统提供了一种编程模型。这基于一种观点，即业务功能以一系列服务的形式被对外提供出来，然后它们被组合在一起去实现满足特定业务需求的解决方案。这些复合的应用，可以包含专门为此应用程序创建的新服务，也可以包含来自已有的系统和应用程序的业务功能，重复利用就像其中的一部分一样。</span>
				<span lang="EN-US">SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">即为组合服务提供了模型，也为服务构件的创建，包括在</span>
				<span lang="EN-US">SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组装中重用已有应用系统的功能提供了模型。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在服务定义中，</span>
				<span lang="EN-US">WSDL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span>
				<span lang="EN-US">Web Service Description Language</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）是一个很好的范例。</span>
				<span lang="EN-US">WSDL </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在增强应用之间的可连接性以及互操作性方面迈出了一大步。然而，</span>
				<span lang="EN-US">WSDL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只关注了服务接口，它并不提供描述一个服务所依赖的其它服务，以及这个服务所需要使用的配置策略和服务之间的依赖关系。单独通过</span>
				<span lang="EN-US">WSDL </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">很难实现服务之间的组合调用。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span lang="EN-US">SCA </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">比</span>
				<span lang="EN-US">WSDL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">走的更远的方面是定义了一个服务组件模型以及一个服务组装模型。服务模型提供了比</span>
				<span lang="EN-US">WSDL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">更多的功能，它允许服务开发者不单定义服务的接口而且还可以定义</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这个服务和其他服务的依赖关系，以及这些交互（事务，安全，以及可靠</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">传输）之间的策略</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">还有服务所可能提供的配置功能。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一个</span>
				<span lang="EN-US">SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模型对等于一个</span>
				<span lang="EN-US">SOA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">项目，模型允许开发者组装一组服务组件，解决引用依赖和使用策略。这是一个很大的进步，因为当前的</span>
				<span lang="EN-US">SOA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">平台需要开发者自己获取那些私有的服务部署引用，甚至有时要在他们的服务实现中写</span>
				<span lang="EN-US">hard code.</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 150%">
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">3</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">SCA</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">与</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">JBI</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的区别</span>
				</b>
				<b style="mso-bidi-font-weight: normal">
						<span lang="EN-US" style="FONT-SIZE: 14pt; LINE-HEIGHT: 150%">
								<o:p>
								</o:p>
						</span>
				</b>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span lang="EN-US">SCA </span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关注的重点只是</span>
				<span lang="EN-US">SOA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开发所看到和接触到的。</span>
				<span lang="EN-US"> SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">并没有关注用来执行</span>
				<span lang="EN-US">SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模块的引擎是如何构架的。只是对这个引擎的实现提供一个规范和实现依据。这个引擎可以用任何方式实现。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">从另一个方面来说就是一组关注创建一个开发的，可扩展的以及标准组件的企业服务总线。</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这样它的内核是和</span>
				<span lang="EN-US">SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有一些重合的地方。同时两者之间也存在互补的机制。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">重合方面：是</span>
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">关注的是如果将一组引擎组装并运行于一个</span>
				<span lang="EN-US">JVM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中，是对编码开发的一种设计方式。</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">相反</span>
				<span lang="EN-US">SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在另一方面并不将一个模块约束单个</span>
				<span lang="EN-US">JVM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中。当然一个</span>
				<span lang="EN-US">SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模块可以执行在一个</span>
				<span lang="EN-US">JVM</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中，但同时它也可以很方便的将这些引擎部署在不同的进程甚至是不同的节点上。</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%">
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">最大的区别之处是</span>
				<span lang="EN-US"> SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不但支持</span>
				<span lang="EN-US">Java</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">而且还支持</span>
				<span lang="EN-US">C</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				<span lang="EN-US">EJB</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				<span lang="EN-US">Spring</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</span>
				<span lang="EN-US">BPEL</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在今后也许还会支持</span>
				<span lang="EN-US">C#</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，</span>
				<span lang="EN-US">php</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等。</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">而</span>
				<span lang="EN-US">JBI</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只是</span>
				<span lang="EN-US">SCA</span>
				<span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的一个实现方式，而不是唯一的选择。</span>
		</p>
<img src ="http://www.blogjava.net/bigbigtooth/aggbug/94459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bigbigtooth/" target="_blank">大牙</a> 2007-01-17 17:03 <a href="http://www.blogjava.net/bigbigtooth/articles/94459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>