﻿<?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/landy/category/36045.html</link><description>像狼一样凶狠</description><language>zh-cn</language><lastBuildDate>Wed, 19 Nov 2008 18:06:28 GMT</lastBuildDate><pubDate>Wed, 19 Nov 2008 18:06:28 GMT</pubDate><ttl>60</ttl><item><title>快速构建面向服务的应用-2</title><link>http://www.blogjava.net/landy/archive/2008/11/19/241510.html</link><dc:creator>独孤过客</dc:creator><author>独孤过客</author><pubDate>Wed, 19 Nov 2008 14:55:00 GMT</pubDate><guid>http://www.blogjava.net/landy/archive/2008/11/19/241510.html</guid><wfw:comment>http://www.blogjava.net/landy/comments/241510.html</wfw:comment><comments>http://www.blogjava.net/landy/archive/2008/11/19/241510.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landy/comments/commentRss/241510.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landy/services/trackbacks/241510.html</trackback:ping><description><![CDATA[<p style="text-indent:21.0pt"><span style="font-family:宋体;">总结一下，个人认为企业应用的核心组成要素是&#8220;数据</span> + <span style="font-family:宋体;">服务&#8221;，</span>
<span style="font-family:宋体;">而服务又分为原子服务，聚合服务，流程服务。权限也是一种数据，供&#8220;权限服务&#8221;消费。后面暂不考虑权限处理。信令流因为用得少，很多人可能都不知道是什么东西，这里也不考虑，如果遇到了记得使用流程技术把信号的处理也流程化就可以了，可参考</span>apache<span style="font-family:宋体;">的</span>SCXML<span style="font-family:宋体;">，虽然号称是个状态机引擎，但是请君用你的慧眼观察一下它的</span>schema<span style="font-family:宋体;">，显然是一个活动图。</span></p>
<p style="text-indent:21.0pt"><span style="font-family:宋体;">接下来的推导分为两个阶段，第一阶段先推导支撑技术，第二阶段再推导以什么样的开发方式将这些支撑技术串起来，达到快速开发的目的。</span></p>
<p style="text-indent:21.0pt"><span style="font-family:宋体;">下表中列出了对上面的核心组成要素（数据</span>+<span style="font-family:宋体;">服务）的一些支撑技术：</span></p>
<table border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border-width: initial; border-color: initial; ">
    <tbody>
        <tr>
            <td width="189" valign="top" style="width: 142pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">要素</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">支撑技术</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">考虑</span></p>
            </td>
        </tr>
        <tr>
            <td width="189" valign="top" style="width: 142pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">数据实体</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><font  face="宋体"><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">Java</span><span style="font-size:10.5pt;font-family:宋体;Times New Roman&quot;;">，</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">sdo</span><span style="font-size:10.5pt;font-family:宋体;Times New Roman&quot;;">，</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">c++</span><span style="font-size:10.5pt;font-family:宋体;Times New Roman&quot;;">等等</span></font></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><font  face="宋体"><br />
            </font></p>
            </td>
        </tr>
        <tr>
            <td width="189" valign="top" style="width: 142pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">原子服务</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;">Java<span style="font-family:宋体;">，</span>c++<span style="font-family:宋体;">，</span>c<span style="font-family:宋体;">，脚本等等</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">没什么可说的，码肯定是要编的</span></p>
            </td>
        </tr>
        <tr>
            <td width="189" valign="top" style="width: 142pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">聚合服务</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;">SCA</p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">用</span>sca<span style="font-family:宋体;">来将原子服务装配成聚合服务。如果想要使用什么数据转换啊，接口映射啊，安全控制啊之类的特性的话也可以引进</span>ESB<span style="font-family:宋体;">，作为</span>SCA<span style="font-family:宋体;">的一种</span>container<span style="font-family:宋体;">。</span></p>
            </td>
        </tr>
        <tr>
            <td width="189" valign="top" style="width: 142pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">操作流程</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">实现一个</span>SCA<span style="font-family:宋体;">中的</span>container<span style="font-family:宋体;">，接受操作流程的描述文件的作为执行文件</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            </td>
        </tr>
        <tr>
            <td width="189" valign="top" style="width: 142pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span>View
            process</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">在</span>web<span style="font-family:宋体;">应用下，采用一种</span>webflow<span style="font-family:宋体;">的实现，</span>swing<span style="font-family:宋体;">下就自己写把。</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            </td>
        </tr>
        <tr>
            <td width="189" valign="top" style="width: 142pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span>Business
            process</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;">WFA<span style="font-family:宋体;">类流程，</span>EOS or OBE<span style="font-family:宋体;">类似的工作流引擎，可直接将</span>EOS<span style="font-family:宋体;">或者</span>OBE<span style="font-family:宋体;">提供的</span>API<span style="font-family:宋体;">作为一个原子组件</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            </td>
        </tr>
        <tr>
            <td width="189" valign="top" style="width: 142pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p>Orchestration Process</p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;">EAI<span style="font-family:宋体;">类流程，用</span>ODE<span style="font-family:宋体;">，一个</span>bpel<span style="font-family:宋体;">引擎，也作为</span>SCA<span style="font-family:宋体;">的一个</span>container<span style="font-family:宋体;">，</span>BPEL<span style="font-family:宋体;">作为一种组件实现方式</span></p>
            </td>
            <td width="189" valign="top" style="width: 142.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            </td>
        </tr>
    </tbody>
</table>
<p style="text-indent:21.0pt"><span style="font-family:宋体;">下面在列一些辅助支撑技术，这些技术是为了让企业应用这些大厦能够构建的更快，毕竟盖房子，有了水泥和砖是不够的，还要有扁担，簸箕等等。</span></p>
<table border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border-width: initial; border-color: initial; ">
    <tbody>
        <tr>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">技术</span></p>
            </td>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">作用</span></p>
            </td>
        </tr>
        <tr>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">元数据技术</span></p>
            </td>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">利用元数据描述数据实体，以及对数据实体、实体属性的约束、权限等信息，可以基于</span>RBAC<span style="font-family:宋体;">的权限系统设计思路，将用户组织机构与权限关联起来，实现自动生成页面时，对特定用户的权限控制，等等其它的东东。</span></p>
            </td>
        </tr>
        <tr>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">表单生成技术</span></p>
            </td>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">根据元数据生成表单，支持可视化的定制表单布局等，支持生成</span>jsp<span style="font-family:宋体;">等，如果需要多种展现，可以生成多种特定的展现实现，如</span>swing<span style="font-family:宋体;">界面等</span></p>
            </td>
        </tr>
        <tr>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">图形化建模技术</span></p>
            </td>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">可视化的建模</span>view process<span style="font-family:宋体;">，</span><span>Orchestration
            process</span><span style="font-family:宋体;">，</span>business process<span style="font-family:宋体;">，</span>operation process<span style="font-family:宋体;">等</span></p>
            </td>
        </tr>
        <tr>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">图形化组件装配技术</span></p>
            </td>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">可视化的将组件装配成大粒度组件等</span></p>
            </td>
        </tr>
        <tr>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><span style="font-family:宋体;">代码生成技术</span></p>
            </td>
            <td width="284" valign="top" style="width: 213.05pt; padding-top: 0cm; padding-right: 5.4pt; padding-bottom: 0cm; padding-left: 5.4pt; ">
            <p style="text-indent:0cm;"><font  face="宋体"><span style="font-size:10.5pt;
            font-family:宋体;Times New Roman&quot;;">根据元数据生成数据实体、</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">DAO</span><span style="font-size:10.5pt;font-family:宋体;Times New Roman&quot;;">代码等</span></font></p>
            </td>
        </tr>
    </tbody>
</table>
<span style="font-size:10.5pt;font-family:宋体;Times New Roman&quot;;">这里这个</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">SCE</span><span style="font-size:10.5pt;font-family:宋体;Times New Roman&quot;;">大致包括一些什么东西就清楚了，下面用一个序列图来表示用户基于</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">SCE</span><span style="font-size:10.5pt;font-family:宋体;Times New Roman&quot;;">的一种自顶向下的开发方式。当然也应该支持自下而上。</span>
<img src ="http://www.blogjava.net/landy/aggbug/241510.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landy/" target="_blank">独孤过客</a> 2008-11-19 22:55 <a href="http://www.blogjava.net/landy/archive/2008/11/19/241510.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>也谈JBI的未来</title><link>http://www.blogjava.net/landy/archive/2008/11/18/241194.html</link><dc:creator>独孤过客</dc:creator><author>独孤过客</author><pubDate>Tue, 18 Nov 2008 10:59:00 GMT</pubDate><guid>http://www.blogjava.net/landy/archive/2008/11/18/241194.html</guid><wfw:comment>http://www.blogjava.net/landy/comments/241194.html</wfw:comment><comments>http://www.blogjava.net/landy/archive/2008/11/18/241194.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/landy/comments/commentRss/241194.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landy/services/trackbacks/241194.html</trackback:ping><description><![CDATA[JBI号称java领域的ESB，也有了一个相应的JSR规范，那么JBI能一统ESB江湖吗？本人十分不看好它，纵观大厂商的ESB实现，鲜有原生支持JBI的，一般都是支持集成JBI。谁愿意在系统中跑两个ESB呢，除非金钱和精力双双过盛。JBI自身的定位是支持基于JAVA的应用们能够以SOA的方式构建起来。它的定位应该是与SCA+ESB的定位差不多，提供服务总线，服务聚合等功能，坏就坏在它局限于JAVA平台，当前异构系统集成的场景还是很普遍的，一个java服务依赖一个c++服务，而c++服务又依赖于另一个java服务，JBI就搞不定了。而ESB+SCA就能很好的解决这个问题，因此从技术上讲，JBI虽然是个规范，但在SOA不依赖于特定实现的大背景下，有着天生的缺陷，注定是个失败的规范。从业务策略上讲，SOA本来就是IBM等大厂商炒起来的，SCA是IBM，BEA，ORACLE等大厂商联合制定的，各大厂商早就有自己成熟的ESB，自然也不会鸟JBI这个残疾儿。
<img src ="http://www.blogjava.net/landy/aggbug/241194.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landy/" target="_blank">独孤过客</a> 2008-11-18 18:59 <a href="http://www.blogjava.net/landy/archive/2008/11/18/241194.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>快速构建面向服务的应用-1</title><link>http://www.blogjava.net/landy/archive/2008/11/07/239348.html</link><dc:creator>独孤过客</dc:creator><author>独孤过客</author><pubDate>Fri, 07 Nov 2008 15:50:00 GMT</pubDate><guid>http://www.blogjava.net/landy/archive/2008/11/07/239348.html</guid><wfw:comment>http://www.blogjava.net/landy/comments/239348.html</wfw:comment><comments>http://www.blogjava.net/landy/archive/2008/11/07/239348.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/landy/comments/commentRss/239348.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/landy/services/trackbacks/239348.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 快速构建面向服务的应用&nbsp;&nbsp;<a href='http://www.blogjava.net/landy/archive/2008/11/07/239348.html'>阅读全文</a><img src ="http://www.blogjava.net/landy/aggbug/239348.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/landy/" target="_blank">独孤过客</a> 2008-11-07 23:50 <a href="http://www.blogjava.net/landy/archive/2008/11/07/239348.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>