<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
 <channel>
  <title>风之谷</title>
  <link>http://jnn.blogbus.com</link>
  <description><![CDATA[程序员的小天地]]></description>
  <generator> by blogbus.com </generator>
  <lastBuildDate>Thu, 01 Jan 1970 07:00:00 +0700</lastBuildDate>
  <image>
									<url>http://public.blogbus.com/profile/8/4/4/18448/avatar_18448_96.jpg</url>
									<title>风之谷</title>
									<link>http://jnn.blogbus.com</link>
								</image>  <item>
   <title>Java 的动态链接</title>
   <description><![CDATA[<PRE>JAVA和C/C++的区别有很多，你知道Java程序需要链接吗？ </PRE><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjnn.blogbus.com%2Flogs%2F3038756.html&title=Java+%E7%9A%84%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jnn.blogbus.com/logs/3038756.html</link>
   <author>jnn</author>
   <pubDate>Sun, 13 Aug 2006 10:50:38 +0800</pubDate>
  </item>
  <item>
   <title>Maven 和 Ant 的区别</title>
   <description><![CDATA[最近做的一个项目从Ant 转到Maven。有一点感想于是就写了这个小东东。<p style="color: rgb(0, 0, 0);">Maven 和 Ant作为Java开发的利器，两者有很大不同</p><p style="color: rgb(0, 0, 0);">Ant
将提供了很多可以重用的task，例如 copy, move, delete 以及junit 单元测试Maven 则提供了很多可以重用的过程。
我们可以把 Maven 看成是一个 "build container"这个容器可以让我们重用从一系列的项目中抽像出来的build过程。</p><p style="color: rgb(0, 0, 0);">使
用过Ant的朋友都会有这样的体会吧。
Ant提供的task级别描述，我们可以通过想写shell一样一个Java项目的build过程来进行描述。我们可以写好一个build.xml
文件，来解决我们在Java程序运行编译过程中需要解决的classpath，以及相关参数的配置问题，只有是项目中的主要结构以及依赖的库不变，我们很
少去修改build.xml。但是如果我们要开发一个新的项目即使原有项目的build.xml写的即使再好，其能够复用得模块还是比较少的。特别是对项
目的结构进行修改后，想不修改build.xml都很困难。这是因为Ant
所提供的可重用的task粒度太小，虽然灵活性很强，但是我们需要纠缠很多细节的东西。</p><p style="color: rgb(0, 0, 0);">正
如你所在使用Servlet 容器时，并没有告诉它如何去解包WAR文件，在你使用Maven 时，你也不需要告诉Maven
如何build你的项目。 Maven提供了一套抽象层用来分离项目的build 逻辑。
许多人一开始就被Maven所提供的依赖管理（可以通过XML来描述项目所依赖的库的关系）打动，但是使用Maven的主要好处还是它能为提供一个标准的
开发构架用来对多个项目进行管理。 依赖管理只是这个标准开发构架所提供的一个副产品。</p><font color="#800080"><span style="color: rgb(0, 0, 0);">如
果想让Maven实现某个build过程，例如compile, test,
install，我们可以通过写plugin的方式，很容易就实现build过程的复用。Maven可以为我们提供一个很舒适的build环境，我们不需
要通过build.xml定义繁琐的build过程,
只需要告诉这些build过程的plugin,我现在的文件依赖的那些第三方库，我需要实现什么样的build功能，就足够了。
那些繁琐的路径配置信息，以及复杂的第三方库下载设置，你通通不用考虑， Maven 以及它的plugin都帮你实现了。</span></font><p><font color="#800080"><br></font><a href="new.php?BlogID=12388"></a></p><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjnn.blogbus.com%2Flogs%2F2063359.html&title=Maven+%E5%92%8C+Ant+%E7%9A%84%E5%8C%BA%E5%88%AB">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jnn.blogbus.com/logs/2063359.html</link>
   <author>jnn</author>
   <pubDate>Tue, 14 Mar 2006 23:07:42 +0800</pubDate>
  </item>
  <item>
   <title>JBI与SCA的区别</title>
   <description><![CDATA[<p>最近我在做有关ESB的开发工作，发现我们的产品（开源的Celtix  <a href="http://celtix.objectweb.org">http://celtix.objectweb.org</a>） 要支持JBI和SCA两个标准。这让我困惑了好久，JBI和SCA有什么区别呢？</p><p>前几天好好在网上收罗了一番，现在把收获到的东西和大家分享一下：</p><p>JBI definition <a href="http://www.theserverside.com/news/thread.tss?thread_id=35053">http://www.theserverside.com/news/thread.tss?thread_id=35053</a></p><p>SCA 与JBI的区别 <a href="http://azur.typepad.com/bpel/2005/12/sca_jbi_and_mor.html">http://azur.typepad.com/bpel/2005/12/sca_jbi_and_mor.html</a></p><p>上面的链接有详细的讨论，我简单整理了一下。</p><p>JBI 的由来</p><p>Java One 2005 had a very heavy emphasis on JSR-208, Java Business <br />Integration. However, he says, &quot;there seemed to be some folks with <br />confused looks on their faces in some JBI talks.&quot; As a response, he's <br />written a blog entry on what JBI actually is <br />&lt;<a href="http://radio.weblogs.com/0112098/2005/07/07.html#a530">http://radio.weblogs.com/0112098/2005/07/07.html#a530</a>&gt;.</p><p>JBI是提供了一些简单的API定义， 这些定义包括 Normalized<br />Message Service , 在一个Router组件，以及一个管理模型用来管理服务<br />的部署集成，例如  routing engines, BPEL engines, rule systems, transformation engines </p><p>JBI提供了一个逻辑的XML消息网络， 这一网络能够很容易的映射到<br />HTTP, email 和 JMS/MOM ，并很方便地适应遗留系统，二进制地传输，<br />和RPC系统（EJB和CORBA)。 JBI可以看做是对JMS的更高层次的逻辑<br />抽象，并提供了不同的消息交换方式（ 单步， 请求应答等）</p><p /><p>什么是SCA ，它试图解决什么样的问题？<br />WSDL 在增强应用之间的可连接性以及互操作性方面迈出了一大步。<br />然而，WSDL只关注了服务接口，它并不提供描述一个服务所依赖的其它服务，<br />以及这个服务所需要使用的配置策略和服务之间的依赖关系。</p><p>单独通过WSDL 很难实现服务之间的组合调用。</p><p>SCA比WSDL走的更远的方面是定义了一个服务组件模型以及一个服务组装模型。服务模型提供了比WSDL更多的功能，它允许服务开发者不单定义服务的接口而且还可以定义 这个服务和其他服务的依赖关系，以及这些交互（事务，安全，以及可靠 传输）之间的策略 还有服务所可能提供的配置功能。</p><p>一个SCA模型对等于一个SOA项目，模型允许开发者组装一组服务组件，解决引用依赖和使用策略。这是一个很大的进步，因为当前的SOA平台需要开发者自己获取那些私有的服务部署引用，甚至有时要在他们的服务实现中写hard code.</p><p /><p>SCA与JBI的区别</p><p>SCA的美丽之处在用它关注的重点只是SOA开发这 所看到和接触到的。 SCA并没有关注用来执行SCA模块的runtime是如何构架的。 这个runtime可以实现为一个将所有的SCA服务组件编译成为Java classes的丑陋的单一服务，或者是一组模块化的引擎（每个组件一个的那种），这些引擎可以通过 一个企业服务总线来进行通讯。</p><p>JBI从另一个方面来说就是一组关注创建一个开发的，可扩这的以及标准组件的企业服务总线。 这样它的内核是和SCA有一些重合的地方。同时两者之间也存在互补的机制。</p><p>说它们互补，为什么不把他们绑定在一起呢。 这里有两方面的原因。<br />第一个原因 是JBI关注的是如果将一组引擎组装并运行 于一个JVM中。 相反SCA在另一方面并不将一个模块约束单个JVM中。 一个SCA模块可以执行在一个JVM中，同时它也可以很方便的将这些引擎部署在不同的进程甚至是不同的节点上。<br />第二个原因 是 SCA不但支持Java而且还支持C，在今后也许还会支持C#,php。 而JBI只是SCA的一个实现方式，而不是唯一的选择。<br /></p><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjnn.blogbus.com%2Flogs%2F2010052.html&title=JBI%E4%B8%8ESCA%E7%9A%84%E5%8C%BA%E5%88%AB">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jnn.blogbus.com/logs/2010052.html</link>
   <author>jnn</author>
   <pubDate>Sun, 05 Mar 2006 21:13:11 +0800</pubDate>
  </item>
  <item>
   <title>读取配置文件动态创建对象[C++](5)</title>
   <description><![CDATA[<PRE>额外收获</PRE><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjnn.blogbus.com%2Flogs%2F1879323.html&title=%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%8A%A8%E6%80%81%E5%88%9B%E5%BB%BA%E5%AF%B9%E8%B1%A1%5BC%2B%2B%5D%285%29">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jnn.blogbus.com/logs/1879323.html</link>
   <author>jnn</author>
   <pubDate>Thu, 02 Feb 2006 11:36:17 +0800</pubDate>
  </item>
  <item>
   <title>读取配置文件动态创建对象[C++](4)</title>
   <description><![CDATA[<PRE><FONT face=宋体>全局函数</FONT></PRE><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjnn.blogbus.com%2Flogs%2F1879321.html&title=%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%8A%A8%E6%80%81%E5%88%9B%E5%BB%BA%E5%AF%B9%E8%B1%A1%5BC%2B%2B%5D%284%29">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jnn.blogbus.com/logs/1879321.html</link>
   <author>jnn</author>
   <pubDate>Thu, 02 Feb 2006 11:34:07 +0800</pubDate>
  </item>
  <item>
   <title>读取配置文件动态创建对象 [C++] (3)</title>
   <description><![CDATA[<PRE>源代码续</PRE><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjnn.blogbus.com%2Flogs%2F1879313.html&title=%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%8A%A8%E6%80%81%E5%88%9B%E5%BB%BA%E5%AF%B9%E8%B1%A1+%5BC%2B%2B%5D+%283%29">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jnn.blogbus.com/logs/1879313.html</link>
   <author>jnn</author>
   <pubDate>Thu, 02 Feb 2006 11:30:20 +0800</pubDate>
  </item>
  <item>
   <title>读取配置文件动态创建对象 [C++] (2)</title>
   <description><![CDATA[<P>源代码</P><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjnn.blogbus.com%2Flogs%2F1879308.html&title=%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%8A%A8%E6%80%81%E5%88%9B%E5%BB%BA%E5%AF%B9%E8%B1%A1+%5BC%2B%2B%5D+%282%29">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jnn.blogbus.com/logs/1879308.html</link>
   <author>jnn</author>
   <pubDate>Thu, 02 Feb 2006 11:28:14 +0800</pubDate>
  </item>
  <item>
   <title>读取配置文件动态创建对象[C++] (1)</title>
   <description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: " Roman?? New ?Times mso-hansi-font-family: Roman?; Times><STRONG>问题的由来</STRONG></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: " Roman?? New ?Times mso-hansi-font-family: Roman?; Times>使用过</SPAN><SPAN lang=EN-US><A href="http://logging.apache.org/log4j/docs/" target=_blank>Log4J </A></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: " Roman?? New ?Times mso-hansi-font-family: Roman?; Times>的朋友应该有这样酷的体会，通过修改配置文件可以很方便得实现对应用程序的日志行为进行定义，而这些都不需要修改任何的应用程序代码。也许你会说，这些在</SPAN><SPAN lang=EN-US>Java</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: " Roman?? New ?Times mso-hansi-font-family: Roman?; Times>中是很容易实现的（使用</SPAN><SPAN lang=EN-US>classforname </SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: " Roman?? New ?Times mso-hansi-font-family: Roman?; Times>就可以很容易实现了）。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>
<P></SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: " Roman?? New ?Times mso-hansi-font-family: Roman?; Times>但是对于使用</SPAN><SPAN lang=EN-US>C++</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: " Roman?? New ?Times mso-hansi-font-family: Roman?; Times>来进行日常开发的朋友，如果要实现这样的功能又如何来做呢？因为</SPAN><SPAN lang=EN-US>C++</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: " Roman?? New ?Times mso-hansi-font-family: Roman?; Times>语言本身并不支持这样的通过<B style="mso-bidi-font-weight: normal">读取配置文件动态创建对象</B>的功能。</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US>
<P>&nbsp;</P></SPAN>
<P></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: " New Roman?; Times AR-SA? mso-bidi-language: ZH-CN; mso-fareast-language: EN-US; mso-ansi-language: 1.0pt; mso-font-kerning: 宋体; mso-fareast-font-family: 12.0pt; mso-bidi-font-size:><SP< P></SPAN></SPAN></P><!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjnn.blogbus.com%2Flogs%2F1879300.html&title=%E8%AF%BB%E5%8F%96%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%8A%A8%E6%80%81%E5%88%9B%E5%BB%BA%E5%AF%B9%E8%B1%A1%5BC%2B%2B%5D+%281%29">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jnn.blogbus.com/logs/1879300.html</link>
   <author>jnn</author>
   <pubDate>Thu, 02 Feb 2006 11:15:42 +0800</pubDate>
  </item>
  <item>
   <title>ACE Tutorial [翻译] 08－page04</title>
   <description><![CDATA[在 broadcast_client.cpp中，我们将展示如..............<!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjnn.blogbus.com%2Flogs%2F520213.html&title=ACE+Tutorial+%5B%E7%BF%BB%E8%AF%91%5D+08%EF%BC%8Dpage04">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jnn.blogbus.com/logs/520213.html</link>
   <author>jnn</author>
   <pubDate>Mon, 29 Nov 2004 19:45:12 +0800</pubDate>
  </item>
  <item>
   <title>ACE Tutorial [翻译] 08－page03</title>
   <description><![CDATA[在 directed_client.cpp我们创建一个客户端来向指定的服务器发送数据报。如果你知道服务器在什么地方，这是一个比较好的建立连接的方法。例如在Unix中的talk服务，就是采用这样的方式来实现的。 ..............<!--sp--><div class="addfav"><br />收藏到：<span class= "delicious"><a href="http://delicious.com/save?url=http%3A%2F%2Fjnn.blogbus.com%2Flogs%2F520210.html&title=ACE+Tutorial+%5B%E7%BF%BB%E8%AF%91%5D+08%EF%BC%8Dpage03">Del.icio.us</a></span></div><br /><br /><div class="sysmsg"><b><a href="http://www.blogbus.com" target="_blank">博客大巴，你的个人传媒早班车</a></b></div><br /><br />]]></description>
   <link>http://jnn.blogbus.com/logs/520210.html</link>
   <author>jnn</author>
   <pubDate>Mon, 29 Nov 2004 19:43:20 +0800</pubDate>
  </item>
 </channel>
</rss>

