﻿<?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-展翅飞翔-随笔分类-非主流技术类 </title><link>http://www.blogjava.net/loyalgl/category/47367.html</link><description>实现解读客户思想与架构现有最成熟技术的完美融合</description><language>zh-cn</language><lastBuildDate>Wed, 15 Dec 2010 02:14:04 GMT</lastBuildDate><pubDate>Wed, 15 Dec 2010 02:14:04 GMT</pubDate><ttl>60</ttl><item><title>【原】浮点数的二进制表示</title><link>http://www.blogjava.net/loyalgl/archive/2009/12/01/304380.html</link><dc:creator>龙樱</dc:creator><author>龙樱</author><pubDate>Tue, 01 Dec 2009 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/loyalgl/archive/2009/12/01/304380.html</guid><wfw:comment>http://www.blogjava.net/loyalgl/comments/304380.html</wfw:comment><comments>http://www.blogjava.net/loyalgl/archive/2009/12/01/304380.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loyalgl/comments/commentRss/304380.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loyalgl/services/trackbacks/304380.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 负数转化成32位二进制浮点数的方法&nbsp;&nbsp;<a href='http://www.blogjava.net/loyalgl/archive/2009/12/01/304380.html'>阅读全文</a><img src ="http://www.blogjava.net/loyalgl/aggbug/304380.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loyalgl/" target="_blank">龙樱</a> 2009-12-01 15:12 <a href="http://www.blogjava.net/loyalgl/archive/2009/12/01/304380.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【原】JBPM开发资料整理</title><link>http://www.blogjava.net/loyalgl/archive/2009/03/03/257558.html</link><dc:creator>龙樱</dc:creator><author>龙樱</author><pubDate>Tue, 03 Mar 2009 07:11:00 GMT</pubDate><guid>http://www.blogjava.net/loyalgl/archive/2009/03/03/257558.html</guid><wfw:comment>http://www.blogjava.net/loyalgl/comments/257558.html</wfw:comment><comments>http://www.blogjava.net/loyalgl/archive/2009/03/03/257558.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/loyalgl/comments/commentRss/257558.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loyalgl/services/trackbacks/257558.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 引用：JBPM是一个扩展性很强的工作流系统，百分百用JAVA语言开发，持久层采用Hibernate实现，理论上说，只要Hibernate支持的数据库JBPM都支持。同时它还能被部署在任何一款JAVA应用服务器上。---BSTEK（2007-07版权所有，翻版必究）&nbsp;&nbsp;<a href='http://www.blogjava.net/loyalgl/archive/2009/03/03/257558.html'>阅读全文</a><img src ="http://www.blogjava.net/loyalgl/aggbug/257558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loyalgl/" target="_blank">龙樱</a> 2009-03-03 15:11 <a href="http://www.blogjava.net/loyalgl/archive/2009/03/03/257558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【增】JBOSS 工作流与JBPM开发实例</title><link>http://www.blogjava.net/loyalgl/archive/2009/03/03/257547.html</link><dc:creator>龙樱</dc:creator><author>龙樱</author><pubDate>Tue, 03 Mar 2009 06:27:00 GMT</pubDate><guid>http://www.blogjava.net/loyalgl/archive/2009/03/03/257547.html</guid><wfw:comment>http://www.blogjava.net/loyalgl/comments/257547.html</wfw:comment><comments>http://www.blogjava.net/loyalgl/archive/2009/03/03/257547.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/loyalgl/comments/commentRss/257547.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loyalgl/services/trackbacks/257547.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 本文介绍了对开源工作流引擎JBPM的核心代码引用方法，便于研究工作流的朋友们快速掌握JBPM的流程模板开发与使用。其中程序部分使用的是TEST的形式便于朋友们快速掌握。&nbsp;&nbsp;<a href='http://www.blogjava.net/loyalgl/archive/2009/03/03/257547.html'>阅读全文</a><img src ="http://www.blogjava.net/loyalgl/aggbug/257547.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loyalgl/" target="_blank">龙樱</a> 2009-03-03 14:27 <a href="http://www.blogjava.net/loyalgl/archive/2009/03/03/257547.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】GNU 较宽松公共许可证 (简体中文翻译版)</title><link>http://www.blogjava.net/loyalgl/archive/2009/03/03/author-rabbit.html</link><dc:creator>龙樱</dc:creator><author>龙樱</author><pubDate>Tue, 03 Mar 2009 01:19:00 GMT</pubDate><guid>http://www.blogjava.net/loyalgl/archive/2009/03/03/author-rabbit.html</guid><wfw:comment>http://www.blogjava.net/loyalgl/comments/257462.html</wfw:comment><comments>http://www.blogjava.net/loyalgl/archive/2009/03/03/author-rabbit.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loyalgl/comments/commentRss/257462.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loyalgl/services/trackbacks/257462.html</trackback:ping><description><![CDATA[<span style="color: rgb(128, 136, 255);"><span style="color: rgb(18, 0, 0);"><span style="color: rgb(8, 23, 255);">本文其他格式: PDF 和 TXT<br />
GNU 较宽松公共许可证 (简体中文翻译版)<br />
<br />
&nbsp;<br />
声明!<br />
这是一份 GNU 较宽松公共许可证非正式的中文翻译。它不是自由软体基金会所发布，并且不能适用于使用 GNU LGPL 的软体 —— 只有 GNU LGPL 英文原文的版本才行。然而，我们希望这份翻译能帮助中文的使用者更了解 GNU LGPL。&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <br />
This is an unofficial translation of the GNU Lesser General Public License into Chinese. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU LGPL--only the original English text of the GNU LGPL does that. However, we hope that this translation will help Chinese speakers understand the GNU LGPL better.<br />
<br />
&nbsp;<br />
GNU 较宽松公共许可证<br />
<br />
1999.2, 第 2.1 版<br />
<br />
版权所有 (C) 1991, 1999 Free Software Foundation, Inc.<br />
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA<br />
<br />
允许每个人复制和发布本授权文件的完整副本，<br />
但不允许对它进行任何修改。<br />
<br />
[这是第一次发表的较宽松公共许可证 (Lesser GPL) 版本。它同时也可视为 GNU 函数库公共许可证 (GNU Library Public License) 第 2 版的后继者，故称为 2.1 版]<br />
<br />
本版本由 Leo-Hong (leohca (at) yahoo.com) 翻译整理, Chao-Hong Liu 校正.</span></span></span><br />
<br />
<br />
<strong>导言</strong><br />
<br />
大多数软体许可证决意剥夺您共享和修改软体的自由。相反的，GNU 通用公共许可证力图保证您共享和修改自由软体的自由 —— 保证自由软体对所有使用者都是自由的。<br />
<br />
这个许可证，较宽松公共许可证，适用于一些由自由软体基金会与其他决定使用此许可证的软体作者，所特殊设计的软体套件 —— 象是函数库。您也可以使用它，但我们建议您事先仔细考虑，基于以下的说明是否此许可证或原来的通用公共许可证在任何特殊情况下均为较好的方案。<br />
<br />
当我们谈到自由软体时，我们所指的是自由，而不是价格。我们的 GNU 通用公共许可证是设计用以确保使您有发布自由软体备份的自由（如果您愿意，您可以对此项服务收取一定的费用）；确保您能收到程式原始码或者在您需要时能得到它；确保您能修改软体或将它的一部分用于新的自由软体；而且还确保您知道您可以做上述的这些事情。<br />
<br />
为了保护您的权利，我们需要作出限制：禁止任何人否认您上述的权利，或者要求您放弃这些权利。如果您发布软件的副本，或者对之加以修改，这些规定就转化为您的责任。<br />
<br />
例如，如果您发布此函数库的副本，不管是免费还是收取费用，您必须将您享有的一切权利给予接受者；您必须确保他们也能收到或得到原始程式码；如果您将此函数库与其他的程式码连结，您必须提供完整的目的对象文件和程序(object file)给接受者，则当他们修改此函数库并重新编译过后，可以重新与目的档连结。您并且要将这些条款给他们看，使他们知道他们有这样的权利。<br />
<br />
我们采取两项措施来保护您的权利: （1）用版权来保护函数库。并且，（2）我们提供您这份许可证，赋予您复制，发布和（或）修改这些函数库的法律许可。<br />
为了保护每个发布者，我们需要非常清楚地让每个人明白，自由函数库是没有担保责任的。如果由于某人修改了函数库，并继续加以传播，我们需要它的接受者明白：他们所得到的并不是原始的版本。故由其他人引入的任何问题，对原作者的声誉将不会有任何的影响。<br />
<br />
最后，由于软体专利不断地威胁自由软体的存在，我们希望商业公司无法藉由自专利持有者取得一个受限的许可证，而有效地限制自由软体的使用者。因此，我们坚持一个函数库所能取得的任何专利，必须与本许可证所声明的&#8220;完全自由使用&#8221;一致。<br />
<br />
大部分的 GNU 软体，包括一些函数库，是受到原来的 GNU 通用公共许可证的保护。本许可证， GNU 较宽松通用公共许可证，适用于特殊设计的函数库，且与原来的通用公共许可证有很大的不同。我们在特定的函数库中使用它，以准许非自由的程式可以与这些函数库连结。当一个程式与一个函数库连结，不论是静态连结或使用共享函数库，二者的结合可以合理地说是结合的作品，一个原来的函数库的衍生品。因此，原来的通用公共许可证只有在整个结合品满足其自由的标准时，才予许连结。较宽松通用公共许可证则以更宽松的标准允许其他程式码与本函数库连结。<br />
<br />
我们称此许可证 "较宽松" 通用公共许可证，是因为它比起原来的通用公共许可证对使用者的自由做到较少的保护。在与非自由软体竞争时，它也提供其他自由软体的写作者较少的优势。这些不利之处正是我们使用原来的通用公共许可证于许多函数库的理由。然而，较宽松的许可证可在某些特殊场合下带来好处。例如，在少数情况下，可能会有特殊的需要而鼓励大家尽可能广泛地使用特定的函数库，因而使它成为实际上的标准。为了达到此目标，必须允许非自由的程式使用此函数库。一个较常发生的情况是一个自由的函数库与一个被广泛使用的非自由函数库做相同的工作，在此情况下，限制只有自由软体可以使用此自由函数库不会有多少好处，故我们如用了较宽松通用公共许可证。<br />
<br />
在其他情况下，允许非自由程式使用特定的函数库，可以让更多的人们使用自由软体的大部分。例如，允许非自由程式使用 GNU C 函数库可以让更多的人们使用整个 GNU 作业系统，以及它的变形，GNU/Linux 作业系统。<br />
<br />
尽管较宽松通用共公许可证对使用者的自由是较少的保护的，它却能确保与此函数库连结的程式的使用者拥有自由，而且具有使用修改过的函数库版本来执行该程式的必要方法。<br />
<br />
以下是复制、发布、以及修改的精确条款与条件。请注意 "基于函数库的作品" 以及 "使用函数库的作品" 之间的差异：前者包含来自函数库修改过的原始码；而后者则必须与函数库结合才能执行。<br />
<br />
<br />
<strong>有关复制，发布和修改的条款和条件</strong><br />
<br />
0. 本许可证适用于任何软体函数库，或其他包含了由版权所有者加入的注意事项的程式，或其他有公信力的团体宣称其程式可以在较宽松通用公共许可证 (也称之为 "本许可证") 的条款下发布。每一位许可证接受者以 "您" 来称呼。<br />
<br />
一个 "函数库" 意指一些软体函数的集合，以及或准备好的资料以方便与应用程式 (其使用了其中某些函数与资料) 连结形成可执行的程式。<br />
<br />
以下，"函数库" 一词指的是任何在本条款下发布的这一类软体函数库或作品，一个 "基于本函数库的作品" 意指函数库或任何在版权法下的衍生作品：也就是说，一个包含了本函数库或其一部分的作品，可以是原封不动的，或经过修改的，和/或直接翻译成其他语言的。 (在下文中，翻译是不受限地包含在 "修改" 的条款中。)<br />
<br />
作品的 "原始码" 意指对作品进行修改最优先择取的形式。对函数库而言，完整的原始码意指所有模组的所有原始程式，加上有关的介面的定义，加上控制函数库的安装和编译的 script。<br />
<br />
本许可证条款不适用于复制，发布和修改以外的活动。这些活动超出这些条款的范围。使用本函数库来执行本程式的动作不受条款的限制，而程式的输出只有在其内容所构成的作品是基于本函数库时 (与在什么样的工具中使用本函数库来输出无关) ，这一条款才适用。以上是否为真则取决于本函数库具体用来做什么。<br />
<br />
1. 只要您在每一程式副本上明显和恰当地宣告版权声明和不承担担保的声明，并保持此许可证的声明和没有担保的声明完整无损，并和程式一起给其他每位程式接受者一份许可证的副本，您就可以用任何媒体复制和发布您收到的函数库的完整原始码。<br />
<br />
您可以为转让副本的实际行动收取一定费用。您也可以选择提供担保以换取一定的费用。<br />
<br />
2. 只要您同时满足下面的所有条件，您就可以按前面第一款的要求修改函数库的一个或几个副本或它的任何部分，以此形成基于此函数库的作品，并且复制和发布这一经过修改的程式或作品:<br />
<br />
<br />
被修改的作品本身必须是一个软体函数库。<br />
<br />
您必须在修改过的档案中附有明确的说明：您修改了此一档案及任何修改的日期。<br />
<br />
您必须让整个作品允许第三方在此许可证条款下可以免费使用。<br />
<br />
如果修改过的函数库其某个设备使用到了「使用本函数库的应用程式」所提供的函数或资料表格，却不是当此设备被呼叫时以参数列传入时，则您必须确实做到，当应用程式不提供这样的函数或表格时，则此设备依旧能工作，且其执行的任何目的仍然有意义。<br />
(例如，一个函数库的函数用来计算平方根，其目的是有完整的定义且与应用程式是无关的。因此， 2d 小节要求任何本函数会使用的，由应用程式所提供的函数或表格必须是选择性的：如果应用程式不提供的话，则计算平方根的函数必须依旧能计算平方根)<br />
<br />
这些要求适用于整个修改过的作品。如果能够确定作品的一部分并非本函数库的衍生产品，且可以合理地单独考虑并将它与原作品分开的话，则当您将它作为独立的作品发布时，它不受此许可证和其条款的约束。但是当您将这部分与基于本函数库的作品一同发布时，则整个套件将受到本许可证条款约束，其对于其他许可证持有人的使用范围扩大到整个产品，也就是套件的每个部分，不管它是谁写的。<br />
<br />
因此，本条款的意图不在于索取权利，或剥夺完全由您完成的作品的权利，而是履行权利来控制基于本函数库的集体作品或衍生作品的发布。 此外，将与本函数库无关的作品和本函数库 (或基于本函数库的作品) 一起放在贮存媒体或发布媒体的同一卷上，并不导致将其他作品置于此许可证的约束范围之内。<br />
<br />
3. 对于一个函数库的副本，您可以选择性地使用原来的 GNU 通用公共许可证上的条款来取代本许可证上的条款。如果您要这么做，您必须修改所有的参考到本许可证的注意事项，使它们指向原来的 GNU 通用公共许可证，第二版，以取代本许可证(如果有比第二版的原来的 GNU 通用公共许可证更新的版本出现的话，则如果您愿意的话可以特别指明使用新版)。请不要对这些注意事项做出其他的改变。<br />
<br />
一旦在一个副本上做了这样的改变，则该副本就无法撤回这样的改变，故原来的 GNU 通用公共许可证将适用于所有后续的副本以及由此副本衍生出来的作品。<br />
<br />
此一选择性适用于当您想要将一部分的函数库原始码复制到一个非函数库的程式使用时。<br />
<br />
4. 您可以以目标码或可执行形式复制或发布本函数库 (或符合第 2 款，基于本函数库的作品)，只要您遵守前面的第 1、2 款，并同时提供完整的相关机器可读的原始码，而这些原始码必须在前面的第 1 与第 2 款条件下，在一般习惯上用来做软体交换的媒体上发布。<br />
<br />
如果所发布的目标码是由指定的地点提供拷贝索取，那么由同一地点所提供等价的原始码拷贝索取可以算作原始码的发布，即使第三方不强求与目标码一起复制原始码。<br />
<br />
5. 一个程式若包含不经任何部分修改的函数库，但却是设计经由编译或连结的方式与本函数库一同工作者，称之为 "使用函数库的作品"。这样的一个作品，严格地说，并非本函数库的衍生作品，因而不在本许可证的范围之内。<br />
<br />
然而，将 "使用函数库的作品" 与本函数库连结而产生可执行程式，则是本函数库的衍生品 (因为它包函了本函数库的一部分)，而不是 "使用函数库的作品"，因此其可执行程式包含在本许可证的范围内。第 6 款说明了发布此可执行程式的条款。<br />
<br />
当 "使用函数库的作品" 使用了函数库部分的标头档内容时，则此作品即使其原始码不属于本函数库的衍生品，但其目标码仍然是。这一点是否为真特别在是否本作品可以在不需要本函数库即可连结，或者是否该作品本身也是一个函数库时特别明显。<br />
<br />
如果这样的目标档只使用数字参数、资料结构层级与附属品、以及小巨集和小内□式 (小于或等于十行) ，则此目标档的使用是不受限的，不论是否它是合法的衍生作品。 (但可执行程式若包函此目标档以及一部分的函数库，仍然将在第 6 款的规定下)<br />
<br />
否则的话，如果本作品是本函数库的衍生品，您必须在第 6 款的规定下发布该作品的目标码。任何包含该作品的可执行程式也在第 6 款的范围内，不论它们是否直接与本函数库连结。<br />
<br />
6. 做为上述条款的例外情况，您也可以将 "使用函数库的作品" 与本函数库结合或连结，以产生包含部分本函数库的作品，并在允许使用者自身使用时可以修改该作品，以及在对修改进行反组译除错的情况下，您可以依照您的选择发布该作品。<br />
<br />
您必须在每个作品的副本突显出如下的注意事项：本函数库在作品中被使用，以及本函数库以及它的使用是在本许可证的规定下。您必须提供本许可证的副本。如果该作品在执行时显示版权声明，您必须在其中包含本函数库的版权声明，以及指引使用者取得本许可证的副本。同时，您必须做到以下其中一件事： <br />
<br />
<br />
必须将完整的机器可读的函数库原始码包含在该作品中，包括任何该作品使用到的改变 (这些改变必须在前述第 1 与第 2 款的要求下发布)；而且，如果该作品是一个与函数库连结的「完整的、机器可□的 "使用函数库的作品"」，则要有目标码和/或原始码，如此使用者可以修改本函数库且可以重新连结，以产生包函修改过的函数库的修改过的可执行程式。 (理所当然的若使用者修改了函数库的档案定义内容时，则该作品不必然可以重新编译以使用修改过的定义。)<br />
<br />
在与函数库连结时使用适当的分享函数库连结机制。一个适当的机制是： (1) 在执行时使用已存在于使用者的电脑中的函数库副本，而不是将函数库的函数复制到可执行程式里，以及 (2) 如果使用者安装了一份修改过的函数库，只要修改过的版本在介面上与该作品在编译连结时所用的版本是相容的，则该执行程式可以与修改过的函数库运作良好。<br />
<br />
在该作品内提供书面报价，有效期不少于三年，以提供同样的使用者上述第 6a 款中的内容，费用不得超过该程式发布的实际成本。 如果所发布的作品是由指定的地点提供拷贝索取，则由同一地点提供上述内容的等价拷贝索取。<br />
<br />
确定使用者已经收到该作品的一份复制，或是您已经寄给该使用者一份复制品。<br />
对于一个可执行程式，其所需的 "使用函数库的作品" 的形式必须包括任何要从中再产生可执行程式时所需的资料与工具程式。然而，有一个特殊例外，其所发布的内容不需要包括任何一般与「可执行本程式的作业系统」的主要部分 (如编译器、核心等) 一起发布的部分 (不论是原始码或可执行码)，除非这些组成部分和可执行作品结合在一起。<br />
<br />
有一个可能情况是，这些要求与其他通常不与作业系统在一起的私有函数库的版权限制相抵触，这样的抵触表示您不能将它们与本函数库一起用于您发布的可执行程式中。<br />
<br />
7. 您可以将使用本函数库的函数库设备，以及其他不在本许可证范围内的函数库，对等地放入一个单独的函数库中，并在基于本函数库的作品以及其他函数库在其他状态下同意可以个别发布，以及您做到以下两点的情况下，您可以发布此结合的函数库：<br />
<br />
<br />
将基于本函数库的作品单独不与其他函数库设备结合地，与此结合的函数库一同发布。该作品必须在上述条款的规定下发布。<br />
<br />
在此结合的函数库中明显地指出其中一部分的作品是基于本函数库，并且说明那里可以找到同样不具结合形式的作品。 <br />
8. 除非您明确按许可证提出的要求去做，否则您不能复制、修改、转发许可证、与本函数库连结、和发布本函数库。任何试图用其他方式复制、修改、转发许可证、与本函数库连结、和发布本函数库是无效的，而且将自动结束许可证赋予您的权利。然而，对那些从您那里按许可证条款得到副本和权利的人们，只要他们继续全面履行条款，许可证赋予他们的权利仍然有效。<br />
<br />
9. 您没有在许可证上签字，因而您没有必要一定接受此一许可证。然而，没有任何其他东西赋予您修改和发布本函数库及其衍生作品的权利。如果您不接受许可证，这些行为是法律禁止的。因此，如果您修改或发布函数库 (或任何基于函数库的作品) ，您就表明您接受这一许可证以及它的所有有关复制、发布和修改本函数库或基于它的作品的条款和条件。<br />
<br />
10. 每当您重新发布函数库 (或任何基于函数库的作品) 时，接受者自动从原始许可证颁发者那里接到受这些条款和条件支配的复制、发布、连结或修改本函数库的许可。您不可以强迫接受者履行除了这里赋予他们的权利之外的其他限制。您也没有强求第三方履行许可证条款的义务。<br />
<br />
11. 如果由于法院判决或违反专利的指控或任何其他原因 (不限于专利问题) 的结果，使得强加于您的条件 (不管是法院判决，协议书或其他) 和许可证的条件有冲突时，他们也不能令您背离许可证的条款。在您不能同时满足本许可证规定的义务及其他相关的义务来发布函数库时，则结果您只能够根本不发布函数库。例如，如果某一专利许可证不允许所有直接或间接从您那里接受副本的人们，在不付专利费的情况下重新发布函数库，唯一能同时满足两方面要求的办法是停止发布函数库。<br />
<br />
如果本条款的任何部分在特定的环境下无效或无法实施，就使用条款的其余部分，并将这部分条款作为整体用于其他环境。本条款的目的不在于引诱您侵犯专利或其他财产权的要求，或争论这种要求的有效性。本条款的主要目的在于保护自由软体发布系统的完整性。它是通过公共许可证的应用来实现的。许多人已依赖同是出自此系统的应用程式，经由此系统发布大量自由软体而做出慷慨的供献。作者/捐献者有权决定他/她是否通过任何其他系统发布软体，许可证持有人不能强加这种选择。<br />
<br />
本节的目的在于明确说明许可证其余部分可能产生的结果。<br />
<br />
12. 如果由于专利或者由于有版权的介面问题使函数库在某些国家的发布和使用受到限制，则在许可证约束下的原始版权拥有者可以增加发布地区的限制条款，将这些国家明确排除在外，并在这些国家以外的地区发布函数库。在这种情况下，许可证套件含的限制条款和许可证正文一样有效。 13. 自由软体基金会可能随时出版较宽松通用公共许可证的修改版或新版。新版和当前的版本在原则上保持一致，但在提到新问题时或有关事项时，在细节上可能出现差别。<br />
<br />
每一版本都有不同的版本号。如果函数库指定可适用的许可证版本号以及 "任何更新的版本" ，您有权选择遵循指定的版本或自由软体基金会以后出版的新版本。如果函数库未指定许可证版本，您可选择自由软体基金会已经出版的任何版本。 14. 如果您愿意将函数库的一部分结合到其他自由程式中，而它们的发布条件不同，请写信给作者，要求准予使用。如果是自由软体基金会加以版权保护的软体，写信给自由软体基金会，我们有时会作为例外的情况处理。我们的决定受两个主要目标的指导，这两个主要目标是：我们的自由软体的衍生作品继续保持自由状态，以及从整体上促进软体的共享和重复利用。<br />
<br />
没有担保<br />
15. 由于函数库准予免费使用，在适用法准许的范围内，对函数库没有担保。除非另有书面说明，版权所有者和/或其他提供函数库的人们 "一样" 不提供任何类型的担保，不论是明确的，还是隐含的，包括但不限于可销售和适合特定用途的隐含保证。全部的风险，如函数库的质量和性能问题都由您来承担。如果函数库出现缺陷，您应当承担所有必要的服务、修复和改正的费用。<br />
<br />
16. 除非适用法或书面协议的要求，在任何情况下，任何版权所有者或任何按许可证条款修改和发布函数库的人们都不对您的损失负有任何责任。包括由于使用或不能使用函数库引起的任何一般的、特殊的、偶然发生的或重大的损失 (包括但不限于数据的损失，或者数据变得不精确，或者您或第三方的持续的损失，或者函数库不能和其他软体协调运行等) 。即使版权所有者和其他人提到这种损失的可能性也不例外。<br />
<br />
-条文结束-<br />
<br />
<br />
<strong>如何将这些条款用到您新的函数库</strong><br />
<br />
<span style="color: rgb(128, 136, 255);"><span style="color: rgb(18, 0, 0);">如果您开发了新函数库，而且您需要它得到公众最大限度的利用，要做到这一点的最好办法是将它变为自由软体，使得每个人都能在遵守本条款 (或者是在原来的通用公共许可证的条款) 的基础上对它进行修改和重新发布。<br />
<br />
为了做到这一点，请将函数库附上下列声明。最安全的方式是将它放在每个原始码档案的开头，以便最有效地传递拒绝担保的信息。每个文件至少应有 "版权所有" 行以及在什么地方能看到声明全文的说明。<br />
<br />
用一行空间描述函数库的名称和它的用途简单说明<br />
版权所有 (C) 19XX 作者姓名<br />
这一函数库是自由软体，您可以遵照自由软体基金会出版的 GNU 较宽松通用公共许可证条款来修改和重新发布这一程式，或者用许可证的第二版，或者 (根据您的选择) 用任何更新的版本。<br />
<br />
发布这一函数库的目的是希望它有用，但没有任何担保。甚至没有适合特定目的而隐含的担保。更详细的情况请参阅 GNU 较宽松通用公共许可证。<br />
<br />
您应该已经和函数库一起收到一份 GNU 较宽松通用公共许可证的副本。如果还没有，写信给：<br />
<br />
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.<br />
<br />
此外还应加上如何藉由电子邮件或一般信件与您保持联系的信息。 <br />
如果需要，您应该取得您的上司 (如果您是程式员) 或您的学校签署放弃函数库版权的声明。下面只是一个例子，您应该改变相应的名称：<br />
<br />
Yoyodyne 公司以此方式放弃 James Random Hacker 所写的 `Frob' 函数库 (用以扭转 knobs 的函数库) 的全部版权利益。<br />
Ty coon 签名，1990.4.1<br />
Ty coon 副总裁<br />
<br />
全部就只有这样了!</span></span><br />
<img src ="http://www.blogjava.net/loyalgl/aggbug/257462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loyalgl/" target="_blank">龙樱</a> 2009-03-03 09:19 <a href="http://www.blogjava.net/loyalgl/archive/2009/03/03/author-rabbit.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【原】JBOSS开源工作流引擎JBPM初探介绍</title><link>http://www.blogjava.net/loyalgl/archive/2009/02/21/255948.html</link><dc:creator>龙樱</dc:creator><author>龙樱</author><pubDate>Sat, 21 Feb 2009 06:58:00 GMT</pubDate><guid>http://www.blogjava.net/loyalgl/archive/2009/02/21/255948.html</guid><wfw:comment>http://www.blogjava.net/loyalgl/comments/255948.html</wfw:comment><comments>http://www.blogjava.net/loyalgl/archive/2009/02/21/255948.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loyalgl/comments/commentRss/255948.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loyalgl/services/trackbacks/255948.html</trackback:ping><description><![CDATA[<strong>前言：</strong><br />
<br />
<em>1 工具资料：</em><br />
<br />
<span style="color: rgb(0, 112, 255);"><span style="font-size: 10pt;">a.JBoss IDE插件的捆绑式Eclipse版本.&nbsp;&nbsp; <a href="http://www.jboss.com/products/jbosside/downloads">http://www.jboss.com/products/jbosside/downloads</a> <br />
&nbsp;（windows平台用户选择JBossIDE-1.6.0.GA-Bundle-win32.zip, linux用户选择JBossIDE-1.6.0.GA-Bundle-linux-gtk.tar.gz）<br />
<br />
b.JBOSS服务器下载地址 <a href="http://www.jboss.org/products/jbossas/downloads">http://www.jboss.org/products/jbossas/downloads</a><br />
<br />
c.JBPM 下载地址： <a href="http://labs.jboss.com/jbossjbpm/jpdl_downloads/">http://labs.jboss.com/jbossjbpm/jpdl_downloads/</a><br />
<br />
d.ant 下载地址： <a href="http://apache.mirror.phpchina.com/ant/binaries/apache-ant-1.7.0-bin.zip">http://apache.mirror.phpchina.com/ant/binaries/apache-ant-1.7.0-bin.zip</a><br />
<br />
e tomcat 下载地址： <a href="http://apache.mirror.phpchina.com/tomcat/">http://apache.mirror.phpchina.com/tomcat/</a><br />
<br />
f.JBMP 在线演示DEMO ： <a href="http://docs.jboss.com/jbpm/v3/demos/movies/jbpm-overview.htm">http://docs.jboss.com/jbpm/v3/demos/movies/jbpm-overview.htm</a></span></span><br />
<br />
<em>2 必读的资料：<br />
<br />
</em><span style="font-size: 10pt;"><span style="color: rgb(0, 112, 255);">&nbsp;a.[总结]揭秘jbpm流程引擎内核设计思想及构架收藏 <a href="http://blog.csdn.net/james999/archive/2007/09/02/1769592.aspx#1">http://blog.csdn.net/james999/archive/2007/09/02/1769592.aspx#1</a> <br />
&nbsp;b.[论坛]关于工作流引擎的问题！ <a href="http://www.javaeye.com/topic/2784">http://www.javaeye.com/topic/2784</a><br />
&nbsp;c.[论坛]工作流系统：在误区中漫步 <a href="http://www.javaeye.com/topic/199074?page=1">http://www.javaeye.com/topic/199074?page=1</a><br />
&nbsp;d.[总结]最新JBoss jBPM 3.1 开始指南之三---创建流程和部署流程 <a href="http://www.99inf.net/SoftwareDev/Java/43324.htm">http://www.99inf.net/SoftwareDev/Java/43324.htm</a><br />
&nbsp;e.[总结]jBPM入门学习Hello World&nbsp; <a href="http://www.zxbc.cn/html/javajc/0511064135264.html">http://www.zxbc.cn/html/javajc/0511064135264.html</a><br />
&nbsp;f.[总结]jBPM-JPDL v3.2环境部署——发布到Tomcat + MySQL&nbsp; <a href="http://www.uml.org.cn/workclass/200809085.asp">http://www.uml.org.cn/workclass/200809085.asp</a><br />
&nbsp;g.[总结] 三大主流工作流引擎技术分析与市场预测 <a href="http://dev.csdn.net/develop/article/64/64170.shtm">http://dev.csdn.net/develop/article/64/64170.shtm</a><br />
&nbsp;h.[总结]jBPM开发入门指南（1-5） <a href="http://www.blogjava.net/chengang/category/12967.html">http://www.blogjava.net/chengang/category/12967.html</a><br />
<span style="background-color: rgb(95, 255, 72);">&nbsp;i.[工具]JBPM详细说明 ： <a href="http://www.open68.com/doc/jbpm-3.0/index.html">http://www.open68.com/doc/jbpm-3.0/index.html</a><br />
&nbsp;j.[工具]jbpm表结构说明：<a href="http://www.blogjava.net/libin2722/articles/143249.html">http://www.blogjava.net/libin2722/articles/143249.html</a></span><br />
</span></span>
<br />
<br />
<strong>正文：<br />
<br />
</strong><em><span style="color: rgb(255, 0, 0);">1 关于jBPM</span></em><br />
<br />
<span style="font-size: 12pt;">jBPM，全称是Java Business Process Management，是一种基于J2EE的轻量级工作流管理系统。jBPM是公开源代码项目，它使用要遵循 Apache License。jBPM在2004年10月18日，发布了2.0版本，并在同一天加入了JBoss，成为了JBoss企业中间件平台的一个组成部分，它的名称也改成JBoss jBPM。随着jBPM加入JBoss组织，jBPM也将进入一个全新的发展时代，它的前景是十分光明的。<br />
<br />
jBPM最大的特色就是它的商务逻辑定义没有采用目前的一些规范，如WfMC&amp;acute;s XPDL, BPML, ebXML, BPEL4WS等，而是采用了它自己定义的JBoss jBPM Process Definition Language (jPDL)。jPDL认为一个商务流程可以被看作是一个UML状态图。jPDL就是详细定义了这个状态图的每个部分，如起始、结束状态，状态之间的转换等。<br />
<br />
jBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域最好的一种数据持久层解决方案。通过Hibernate，jBPM将数据的管理职能分离出去，自己专注于商务逻辑的处理。</span><br />
<br />
<em><span style="color: rgb(255, 0, 0);">2 关于jPDL</span></em><br />
<br />
jPDL（JBoss jBPM Process Definition Language）是构建于jBPM框架上的流程语言之一。在jPDL中提供了任务（tasks）、待处理状态 （wait states）、计时器（timers）、自动处理（automated actions）&#8230;等术语，并通过图型化的流程定义，很直观地描述业务流程。<br />
<br />
jPDL可以部署于Java语言的任何应用环境下，JavaSE Application(Swing/SWT)、JavaEE Application(Application Server) 。<br />
<br />
<br />
<br />
<br />
<em><span style="color: rgb(255, 0, 0);">3 jPDL分发包的组成<br />
<br />
</span></em>目前jPDL的最新版本是3.2.3，通过<a href="http://labs.jboss.com/jbossjbpm/jpdl_downloads/">http://labs.jboss.com/jbossjbpm/jpdl_downloads/</a> 可以获得官方下载包。<br />
一种是标准包(jbpm-jpdl-3.2.3.zip)，一种是套件包(jbpm-jpdl-suite-3.2.3.zip),还有JBoss jBPM Starters Kit是一个综合包，前两者最大的区别是套装包自带一个已经配置好的jboss服务，下载解压缩后，可直接运行。<br />
<br />
（1）jPDL的核心程序包(jbpm-jpdl.jar)<br />
<br />
它是一个典型的jar文件，它涵盖对流程定义和运行时流程实例上下文环境的操作API。在最简化的业务流程样例中，jPDL将流程定义存储与XML 格式的定义文件中，在运行时载入内存，在内存里记录完整的业务实例和执行过程的环境变量，并完成全部操作。显然，在实际应用中，流程信息必须被持久化的存储于数据库中。jPDL使用了Hibernate作为其对象持久化的API。<br />
<br />
（2）Graphical Process Designer插件(jbpm-jpdl-designer-3.1.2.zip)<br />
<br />
它是一个基于Eclipse的图型编辑插件。使用它可以对业务流程进行可视化的定制，而无须手动编辑XML文件。该插件还提供了流程定义上传功能，可以将新定义的流程发布到在线运行的jPDL系统上。<br />
<br />
（3）jPDL身份包(jbpm-identity.jar)<br />
<br />
它是jPDL的一个轻量级扩展包，简单实现了组Group、用户User、许可权Permission等用户身份认证和鉴权机制。如果您的应用环境只需要简单的用户认证鉴权管理，那么它十分适合您。<br />
<br />
（4）jPDL Web控制台(jbpm-console.war)<br />
<br />
它是一个标准Web应用（使用了JSF技术），提供了对jPDL平台执行情况的监控程序（对jPDL数据库的监控）。管理员可以通过该程序方便的维护jPDL的数据库，管理流程定义和流程实例的执行情况。同时，它还提供了一个简单的Getting started DEMO，方便初学者了解jPDL。<br />
<br />
（5）JBoss jBPM Starters Kit  是一个综合包，它包括了 jBPM 软件包、开发插件、一个配置好了的基于 JBoss 的 jBPM 示例、一些数据库配置文件示例。<br />
<br />
（6）JBoss jBPM BPEL Extension jBPM 关于 BPEL 的扩展包 <br />
<br />
<br />
<em><span style="color: rgb(255, 0, 0);">4 包详细介绍</span></em><br />
<br />
<br />
<span style="color: rgb(104, 113, 255);">&nbsp;&nbsp;&nbsp; 4.1JBoss jBPM Starters Kit</span><br />
<br />
&nbsp;&nbsp;&nbsp; 是一个综合包，它包括了jBPM软件包、开发插件、一个配置好了的基于JBoss的jBPM示例、一些数据库配置文件示例。<br />
<br />
&nbsp;&nbsp;&nbsp; JBoss jBPM Process Designer Plugin是辅助开发jBPM的Eclipse 插件。<br />
<br />
&nbsp;&nbsp;&nbsp; JBoss jBPM BPEL Extension jBPM关于BPEL的扩展包<br />
<br />
&nbsp;&nbsp;&nbsp; 下载JBoss jBPM Starters Kit 3.1.2。解压到系统某个目录（E:\java\jbpm-starters-kit-3.1.2）。目录下含有五个子目录：<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jbpm jBPM的软件包，包含源码，例子等文件内容。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jbpm-bpel只含有一个网页<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jbpm-db各种数据库hibernate配置文件示例，有些还包含了相应的jdbc驱动程序。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jbpm-designer辅助开发jBPM的Eclipse插件，具体在jbpm-gpd-feature子目录中<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jbpm-server一个已经配置好了的基于JBoss的jBPM示例。<br />
&nbsp;&nbsp;&nbsp; <span style="color: rgb(104, 113, 255);">登录地址</span>：http://localhost:8080/jbpm<br />
&nbsp;&nbsp;&nbsp; <span style="color: rgb(104, 113, 255);">特点</span>：是一个在开发环境上配置流程权限的DEMO，在浏览器上进行流程操作和管理员查看。<br />
<br />
<br />
&nbsp;&nbsp;&nbsp; <span style="color: rgb(104, 113, 255);">4.2 jbpm-jpdl-suite-3.2.3.zip压缩包组成</span><br />
&nbsp;&nbsp;&nbsp; 在解压jbpm-jpdl-suite-3.2.3.zip后，会看到很多目录，如下所示：<br />
<br />
&nbsp;&nbsp;&nbsp; （1）config目录<br />
<br />
&nbsp;&nbsp;&nbsp; 该目录存放了jPDL的默认配置文件 ，包括hibernate.cfg.xml 、jbpm.cfg.xml（jPDL的主配置文件，默认是空的）、&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; jbpm.mail.templates.xml（邮件模板配置文件）、 log4j.properties（日志配置文件）<br />
<br />
&nbsp;&nbsp;&nbsp; （2）db目录<br />
<br />
&nbsp;&nbsp;&nbsp; 该目录存放了jPDL针对不同数据库的表初始化sql文件。这里要说的是，jbpm.jpdl.mysql.sql在MySql下批量运行时，会出现错误提示，原&nbsp;&nbsp;&nbsp; 因是语句后缺少&#8221;;&#8221;号，需要修订后才能使用。<br />
<br />
&nbsp;&nbsp;&nbsp; （3）designer目录<br />
<br />
&nbsp;&nbsp;&nbsp; 该目录存放了GPD（Graphical Process Designer）插件。<br />
<br />
&nbsp;&nbsp;&nbsp; （4）examples目录<br />
<br />
&nbsp;&nbsp;&nbsp; 该目录存放了jPDL的简单范例。<br />
<br />
&nbsp;&nbsp;&nbsp; （5）doc目录<br />
<br />
&nbsp;&nbsp;&nbsp; 该目录存放jPDL 的相关说明文档，包括用户指南、Java API文档等。<br />
<br />
&nbsp;&nbsp;&nbsp; （6）server目录<br />
<br />
&nbsp;&nbsp;&nbsp; 该目录存放了配置好的jBoss和控制台程序，Windows下双击start.bat可立即执行。数据库使用HSQL，存放于&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /server/server/jbpm/data&nbsp;&nbsp;&nbsp; 下。<br />
<br />
&nbsp;&nbsp;&nbsp; （7）src目录<br />
<br />
&nbsp;&nbsp;&nbsp; 该目录下存放的是源代码，可以通过查看代码来了解其具体实现，有助于增强理解。<br />
<br />
&nbsp;&nbsp;&nbsp; （8）deploy目录<br />
<br />
&nbsp;&nbsp;&nbsp; 该目录下面包含3个war包：jbpm-console.war、jbpm-enterprise.ear、jbpm-mail.war。<br />
<br />
&nbsp;&nbsp;&nbsp; （9）lib目录<br />
<br />
&nbsp;&nbsp;&nbsp; 该目录中存放了支持的jar包。<br />
<br />
&nbsp;&nbsp;&nbsp; <span style="color: rgb(104, 113, 255);">登录地址</span>：http://localhost:8080/jbpm-console<br />
&nbsp;&nbsp;&nbsp; <span style="color: rgb(104, 113, 255);">特点</span>：是一个在网页上配置流程权限的DEMO<br />
<br />
<strong>备注：<br />
</strong>&nbsp;&nbsp;&nbsp; 本文介绍了我在学习JBPM的心得体会以及一些有建设性的网址，希望能对大家有所帮助，目前，本人正在从事公司内部项目中有关工作流的开发，有兴趣的朋友可以联系我一起研究，本人MSN:loyal_gl@hotmail.com（请大家没事不要恶意骚扰，谢谢。）<br />
<br />
<br />
<img src ="http://www.blogjava.net/loyalgl/aggbug/255948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loyalgl/" target="_blank">龙樱</a> 2009-02-21 14:58 <a href="http://www.blogjava.net/loyalgl/archive/2009/02/21/255948.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>