<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Lee</title>
    <description></description>
    <link>http://gates-lee.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>Alipay SOA交流</title>
        <author>gates_lee</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://gates-lee.javaeye.com">gates_lee</a>&nbsp;
          链接：<a href="http://gates-lee.javaeye.com/blog/221276" style="color:red;">http://gates-lee.javaeye.com/blog/221276</a>&nbsp;
          发表时间: 2008年07月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span lang="EN-US"><span style="font-family: Calibri;">7</span>
</span>
<span style="font-family: 宋体;">月</span>
<span lang="EN-US"><span style="font-family: Calibri;">26</span>
</span>
<span style="font-family: 宋体;">日上周六有幸在杭州参加了</span>
<span lang="EN-US"><span style="font-family: Calibri;">InfoQ</span>
</span>
<span style="font-family: 宋体;">举行的活动，分享了</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">在发展过程中对于</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">的理解以及</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">在</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">的实践。</span>
</span>
</span>
 
</p>
<h2 style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt; line-height: 150%;"><span style="color: #000000;"><span lang="EN-US"><span><span style="font-family: Cambria; font-size: large;">一.</span>
<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';"> </span>
</span>
</span>
<span lang="EN-US"><span style="font-family: Cambria; font-size: large;">SOA</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: large;">在</span>
</span>
<span lang="EN-US"><span style="font-family: Cambria; font-size: large;">Alipay</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: large;">的发展</span>
</span>
</span>
</h2>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">一开始，</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">只是个小应用，随着业务和用户的不断发展，原先的以类为基础的设计理念已无法满足现实的需要，需要将颗粒度由类抽象为组件，在更高层次上以组件为管理，或者说，就是将原先的一根粗烟囱变为多根细烟囱。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">的开发过程中以组件为单位进行管理，可以带来以下好处</span>
</span>
</span>
 
</p>
<ul>
<li><span style="color: #000000;"><span style="font-family: Wingdings;"><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';">&nbsp;</span>
</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: small;">方便应用管理，随着应用复杂度的增加，统一的管理已无法对整个应用中的所有细节进行管理，容易导致应用的失控，这时有必要对应用进行抽象，以组件进行管理。</span>
</span>
</span>
 
</li>
<li><span style="color: #000000;"><span style="font-family: Wingdings;"><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';">&nbsp;</span>
</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: small;">方便功能监控，容易定位到具体哪个组件出了问题或者性能瓶颈。</span>
</span>
</span>
 
</li>
<li><span style="color: #000000;"><span style="font-family: Wingdings;"><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';">&nbsp; 
</span>
</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: small;">方便容灾，多点的部署，保证应用的稳定性，并进一步做到热升级和热维护。</span>
</span>
</span>
 
</li>
<li><span style="color: #000000;"><span style="font-family: Wingdings;"><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';">&nbsp;</span>
</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: small;">方便均衡负载，对大用户量的并发访问控制做出合适的资源分配。</span>
</span>
</span>
</li>
</ul>
<p style="margin: 0cm 0cm 0pt 42.2pt; text-indent: -21pt; line-height: 150%;">&nbsp;</p>
<h2 style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt; line-height: 150%;"><span style="color: #000000;"><span lang="EN-US"><span><span style="font-family: Cambria; font-size: large;">二.</span>
<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';"> </span>
</span>
</span>
<span lang="EN-US"><span style="font-family: Cambria; font-size: large;">SOA</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: large;">在</span>
</span>
<span lang="EN-US"><span style="font-family: Cambria; font-size: large;">Alipay</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: large;">的实现</span>
</span>
</span>
</h2>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">在</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">以组件进行管理后，将组件升级为服务。服务之间通过</span>
<span lang="EN-US"><span style="font-family: Calibri;">ESB</span>
</span>
<span style="font-family: 宋体;">来实现通讯。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">在组件规范方面，</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">考虑</span>
<span lang="EN-US"><span style="font-family: Calibri;">了OSGi</span>
</span>
<span style="font-family: 宋体;">规范</span>
<span style="font-family: 宋体;">。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">在组件规范的技术实现上，使用了</span>
<span lang="EN-US"><span style="font-family: Calibri;">Spring OSGi</span>
</span>
<span style="font-family: 宋体;">，主要目的是方便组件和</span>
<span lang="EN-US"><span style="font-family: Calibri;">Spring Framework</span>
</span>
<span style="font-family: 宋体;">的整合，另外对</span>
<span lang="EN-US"><span style="font-family: Calibri;">OSGi</span>
</span>
<span style="font-family: 宋体;">进行了改造，方便</span>
<span lang="EN-US"><span style="font-family: Calibri;">OSGi</span>
</span>
<span style="font-family: 宋体;">和应用服务器的整合。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;"><br />
</span>
</span>
</span>
 
</p>
<h2 style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt; line-height: 150%;"><span style="color: #000000;"><span lang="EN-US"><span><span style="font-family: Cambria; font-size: large;">三.</span>
<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';"> </span>
</span>
</span>
<span lang="EN-US"><span style="font-family: Cambria; font-size: large;">SOA</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: large;">的粒度问题</span>
</span>
</span>
</h2>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">的颗粒度度问题，一直是</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">被大家所怀疑重要因素，也是现在大家讨论的焦点，</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">也认为对外的服务，颗粒度比较难以控制，需要具体按照需求来决定。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">然而，我认为目前</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">主要还是在应用内部以</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">的方式做开发，所以颗粒度还是比较容易控制。</span>
</span>
</span>
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;">&nbsp;</p>
<h2 style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt; line-height: 150%;"><span style="color: #000000;"><span lang="EN-US"><span><span style="font-family: Cambria; font-size: large;">四.</span>
<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';"> </span>
</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: large;">效率问题&mdash;&mdash;</span>
</span>
<span lang="EN-US"><span style="font-family: Cambria; font-size: large;">BaSE</span>
</span>
</span>
</h2>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">两阶段事务提交的性能问题，相比于</span>
<span lang="EN-US"><span style="font-family: Calibri;">ACID</span>
</span>
<span style="font-family: 宋体;">，</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">提出了</span>
<span lang="EN-US"><span style="font-family: Calibri;">BaSE</span>
</span>
<span style="font-family: 宋体;">。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span lang="EN-US"><span style="font-family: Calibri;">BaSE</span>
</span>
<span style="font-family: 宋体;">就是</span>
</span>
</span>
 
</p>
<ul>
<li><span style="color: #000000;"><span style="font-family: Wingdings;"><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';">&nbsp;</span>
</span>
</span>
<span lang="EN-US"><span style="font-family: Calibri; font-size: small;">Sa</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: small;">：</span>
</span>
<span lang="EN-US"><span style="font-family: Calibri; font-size: small;">Basic 
Availability </span>
</span>
<span style="font-family: 宋体;"><span style="font-size: small;">基本业务可用</span>
</span>
</span>
 
</li>
<li><span style="color: #000000;"><span style="font-family: Wingdings;"><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';">&nbsp;</span>
</span>
</span>
<span lang="EN-US"><span style="font-family: Calibri; font-size: small;">S</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: small;">：</span>
</span>
<span lang="EN-US"><span style="font-family: Calibri; font-size: small;">safe status 
</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: small;">柔性状态</span>
</span>
</span>
 
</li>
<li><span style="color: #000000;"><span style="font-family: Wingdings;"><span><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';">&nbsp;</span>
</span>
</span>
<span lang="EN-US"><span style="font-family: Calibri; font-size: small;">E</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: small;">：</span>
</span>
<span lang="EN-US"><span style="font-family: Calibri; font-size: small;">eventual 
consistency </span>
</span>
<span style="font-family: 宋体;"><span style="font-size: small;">最终一致</span>
</span>
</span>
</li>
</ul>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">首先要指出的是，</span>
<span lang="EN-US"><span style="font-family: Calibri;">BaSE</span>
</span>
<span style="font-family: 宋体;">必须是业务相关的，只有有些业务对数据完整性要求不高，可以接受暂时的数据不一致性才可考虑，但是</span>
<span lang="EN-US"><span style="font-family: Calibri;">BaSE</span>
</span>
<span style="font-family: 宋体;">的终点还是数据的一致性。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">举个例子，比如说，我有一笔交易，交易完成</span>
<span lang="EN-US"><span style="font-family: Calibri;">A</span>
</span>
<span style="font-family: 宋体;">账户到</span>
<span lang="EN-US"><span style="font-family: Calibri;">B</span>
</span>
<span style="font-family: 宋体;">账户的转账，同时完成给</span>
<span lang="EN-US"><span style="font-family: Calibri;">A</span>
</span>
<span style="font-family: 宋体;">账户的返点，业务上，可以做到返点的延迟发放，在这样的情况下，可以将转账作为一个事务先做处理，然后再合适时候再做返点操作。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">的具体实现中，使用了</span>
<span lang="EN-US"><span style="font-family: Calibri;">try</span>
</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US"><span style="font-family: Calibri;">cancel</span>
</span>
<span style="font-family: 宋体;">和</span>
<span lang="EN-US"><span style="font-family: Calibri;">confirm</span>
</span>
<span style="font-family: 宋体;">模型。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span lang="EN-US"><span style="font-family: Calibri;">Try</span>
</span>
<span style="font-family: 宋体;">可以代表为上例中的交易，当上例中的返点完成后，再根据返点是否成功，对整个业务处理进行</span>
<span lang="EN-US"><span style="font-family: Calibri;">confirm</span>
</span>
<span style="font-family: 宋体;">，以保持一致性，或者</span>
<span lang="EN-US"><span style="font-family: Calibri;">cancel</span>
</span>
<span style="font-family: 宋体;">，认为整个事务失败。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; line-height: 150%;"><span lang="EN-US"><span style="font-family: Calibri; color: #000000; font-size: small;">&nbsp;</span>
</span>
 
</p>
<h2 style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt; line-height: 150%;"><span style="color: #000000;"><span lang="EN-US"><span><span style="font-family: Cambria; font-size: large;">五.</span>
<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';"> </span>
</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: large;">应用热升级和热维护</span>
</span>
</span>
</h2>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">在热升级方便，由于</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">是集群负载均衡部署，在部署时，会对所有的服务器进行分组，一组就是我们平常的非集群环境下的一套服务器。当升级时，一组一组的做升级，以保持应用的一直可用。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-family: 宋体;"><span style="color: #000000; font-size: small;">目前热升级和热维护的，其中关键的是：所有处理都是无状态的，如果有状态怎么办，可以直接把状态存在数据库。</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">但是热升级未必能够完全做到所有应用的热升级和热维护，其中的关键是数据库的更改，如何保证升级过程中数据库的一致性，</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">目前在考虑和基于数据库的分组方案，有点</span>
<span lang="EN-US"><span style="font-family: Calibri;">standby</span>
</span>
<span style="font-family: 宋体;">的意思。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; line-height: 150%;"><span lang="EN-US"><span style="font-family: Calibri; color: #000000; font-size: small;">&nbsp;</span>
</span>
 
</p>
<h2 style="margin: 13pt 0cm 13pt 21pt; text-indent: -21pt; line-height: 150%;"><span style="color: #000000;"><span lang="EN-US"><span><span style="font-family: Cambria; font-size: large;">六.</span>
<span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; font-family: 'Times New Roman';"> </span>
</span>
</span>
<span style="font-family: 宋体;"><span style="font-size: large;">思考和总结</span>
</span>
</span>
</h2>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">目前的</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">的应用，成功的案例并不多，</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">也是边摸索边前进，包括</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">的整个成长也是边摸索变前进。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">通常的理解是，一、企业以服务为单位进行开发，二、</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">可以方便整合现有资源，完成不同服务提供商之间的服务共享。在</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">的成长中，当应用达到一定规模后，应用以组件为单位时，</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">考虑用到了</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">，</span>
<span style="font-family: Calibri;"> <span lang="EN-US">SOA</span>
</span>
<span style="font-family: 宋体;">固然会带来的服务颗粒度和性能问题，但</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">的成长和实践对于我们还是有借鉴和现实的意义的。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">关于</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">适用性问题，我认为</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">在应用内部还是有实际的意义和价值，其应用的必要条件是，应用庞大而复杂，以组件为单位开发，需要考虑集群和负载均衡。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">另外对于复杂系统，可以考虑组件</span>
<span lang="EN-US"><span style="font-family: Calibri;"> + Adapter</span>
</span>
<span style="font-family: 宋体;">模式开发，如果应用包含</span>
<span lang="EN-US"><span style="font-family: Calibri;">A</span>
</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US"><span style="font-family: Calibri;">B</span>
</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US"><span style="font-family: Calibri;">C</span>
</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US"><span style="font-family: Calibri;">D</span>
</span>
<span style="font-family: 宋体;">四个组件，如果调试和开发组件</span>
<span lang="EN-US"><span style="font-family: Calibri;">A</span>
</span>
<span style="font-family: 宋体;">，然后</span>
<span lang="EN-US"><span style="font-family: Calibri;">adapter B</span>
</span>
<span style="font-family: 宋体;">、</span>
<span lang="EN-US"><span style="font-family: Calibri;">C</span>
</span>
<span style="font-family: 宋体;">和</span>
<span lang="EN-US"><span style="font-family: Calibri;">D</span>
</span>
<span style="font-family: 宋体;">，这样有助于提高开发效率，不用花费时间去做长时间的部署工作。</span>
</span>
</span>
 
</p>
<p style="margin: 0cm 0cm 0pt; text-indent: 21.2pt; line-height: 150%;"><span style="font-size: small;"><span style="color: #000000;"><span style="font-family: 宋体;">从</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">的发展我们可以看到，</span>
<span lang="EN-US"><span style="font-family: Calibri;">Alipay</span>
</span>
<span style="font-family: 宋体;">对于</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">的应用也是在发展过程中碰到了问题，发觉</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">可以帮助他们解决问题，并且避免了</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">的粒度问题，使用了</span>
<span lang="EN-US"><span style="font-family: Calibri;">SOA</span>
</span>
<span style="font-family: 宋体;">的最核心的理念。</span>
</span>
</span>
 </p>
          <br/>
          <span style="color:red;">
            <a href="http://gates-lee.javaeye.com/blog/221276#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 29 Jul 2008 20:11:42 +0800</pubDate>
        <link>http://gates-lee.javaeye.com/blog/221276</link>
        <guid>http://gates-lee.javaeye.com/blog/221276</guid>
      </item>
  </channel>
</rss>