
开源技术研究 - Open Source Research
文章平均质量分 72
AlexanderHu
京东运营体系移动研发部门创建人,负责京东物流仓储、配送、大家电和客服售后、乡村电商5大条线移动互联网业务的产品设计和研发工作。之前作为研发负责人创建京东全国物流配送“青龙”系统。入选京东技术十年50牛人。多次代表京东参与行业技术和业务交流,扩大京东研发对外影响力。Sourceforge.net 上2个开源项目的发起人。国内第一部 jBPM 工作流技术图书唯一作者(电子工业出版社出版,被多家培训机构选为指定教材)。在工作期间获得7项技术专利,带领团队申报数十项技术专利。具有掌控互联网高吞吐量应用、复杂业务逻辑企业级应用以及移动客户端应用的产品设计、技术研发和团队管理经验。
展开
-
使用Ajax技术可能面临的一些问题
Ajax确实能给客户甚至开发者带来很棒的体验,但在某些情况下,Ajax所表现出来的特性很可能成为了它的弱点、甚至缺陷。那么,谈谈使用Ajax技术可能面临的一些问题:XMLHttpRequest 的可用性Ajax 开发人员面临的一个最大问题是:在没有XMLHttpRequest 可用时该如何响应?虽然主要的现代浏览器都支持XMLHttpRequest,但仍然有少数用户的浏览器不支持,或者转载 2007-06-23 23:45:00 · 1273 阅读 · 0 评论 -
提升基于JDBC的应用程序访问数据库的效率
一般来说,我们的JavaEE - JDBC企业应用程序的主要瓶颈之一就是在访问数据库,而数据库的瓶颈又主要在海量数据的查询上。如何解决这个问题?最简单的方法就是为数据库表建立精确的索引。如何做到有效的建立索引?不妨利用P6Spy(http://www.p6spy.com/)及SQL Profiler(http://www.jahia.net/jahia/page597.html)软件包针对应用原创 2007-11-18 22:51:00 · 2076 阅读 · 1 评论 -
导致Lucene无法索引查询的NoClassDefFoundError
Lucene乃是当今免费开源搜索引擎的霸主,确实它十分好用,发展势头也很生猛,在Apache组织的支持下不断的更新、推出新版本。但是其存在一个隐藏的很深的bug,相信困扰了不少和我一样研究使用过它的人,这个bug从早期的版本到目前的V2.3.1一个存在,不能不说是一个遗憾。具体触发这个bug的原因很复杂,在某些环境、服务器、应用中……表现为建立索引文件和执行查询时报“NoClassDe原创 2008-03-07 15:52:00 · 1568 阅读 · 0 评论 -
jBPM与业务系统集成-通过定制Task Instance等方式实现
最近在jBPM的咨询/培训中,客户经常问到这么一个问题:jBoss jBPM很好,可是它只能为我们提供一个工作流引擎、一个业务流转的机制,但它不能替我们处理业务问题、管理业务数据,如何才能将已开发好的特定业务系统和jBPM流程引擎结合在一起运行呢?把jBPM流程系统和客户业务系统整合在一起,归根到底其实就是将流程运行过程中的任务实例(task instance)和业务实例(business ins原创 2008-11-17 17:15:00 · 4564 阅读 · 4 评论 -
jBPM最佳实践 (jBPM Best Practices)
没有最完美的规则来对你的工作流程进行建模,这依赖于你对于过程的需求、涉及到的执行者等。无论如何,我想同你分享一下开发人员通常认可的关键规则。如果你认可或者你想提些建议,请反馈给我。 保持你的 JBPM executionContext 整洁在我曾经见过的正式的第一个JBPM项目中,我注意到开发人员有时使用 executionContext 来放置很多流程的变量。翻译 2009-08-05 11:44:00 · 2421 阅读 · 0 评论 -
如何在Eclipse中调试JBoss应用
一般来说在JavaEE应用程序的开发过程中,大家都习惯使用Tomcat作为调试服务器,相应的在EclipseIDE中调试Tomcat也很简单,可以下载tomcateclipse插件即可轻松方便的在IDE中调试应用(参见com.sysdeo.eclipse.tomcat)。但是,如果应用是企业级的,即需要EJB容器部署,Tomcat就无能为力了,这时候,我们可以选择JBoss A原创 2009-06-01 21:20:00 · 1422 阅读 · 0 评论 -
使用Git替代SVN的可行性分析
试用了一把Git,感觉Git的优势在于:版本库本地化——每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。因为是私有的本地版本库,因此实现“真正的”脱机工作成为可能。只有在必要的时候,才会和公共版本库合并,每个开发原创 2009-08-14 18:13:00 · 9063 阅读 · 0 评论 -
Maven最佳实践
本文不想讨论Maven是什么、能做什么、我们选择Maven有什么好处……本文只是提出在公司大规模开发环境中使用Maven技术的一个案例、一次实践、一种思路,供大家借鉴和参考。至于是不是“最佳”?当然不是!因为没有“最佳”,只有“更佳”:-)POM,不得不说一下对Maven而言,POM(Poject Object,项目对象)文件就是一个项目的全部,再不需要原创 2009-09-28 11:04:00 · 2316 阅读 · 0 评论 -
Maven调用Ant脚本的最佳实践
本文所述的 maven-antrun-plugin 版本是2.1,Ant 版本是 1.7.1。Maven工程改造中如果实在脱离不开对于Ant 的依赖,这样做: maven-antrun-plugin 2.1 ant ant-juni原创 2009-11-07 13:27:00 · 3692 阅读 · 0 评论 -
我的新书《jBPM4工作流应用开发指南》出版了
内容简介 - 序 随着在现代企业管理中对于信息化、流程化的深度挖掘,具有业务流程管理(Business Process Management,简称BPM)的技术和思想已经成为致力于全面掌控企业级应用系统人士“日常生活,居家旅行”的必备素质。 本书分3篇。 第一篇,概念篇——介绍工作流管理技术(也即BPM技术)的概念、起源和发展历程。开源工作流选型,以及jBPM——这个迄今为止最成功的Java开源工作流项目的“前世今生”。 第二篇,应用掌握篇——可以帮助您快速上手jBPM4、使用jBPM4开发企业流程原创 2010-10-19 23:53:00 · 11260 阅读 · 7 评论 -
Linux网络服务参数配置说明及实战
本文对应的运行时参数位于:/proc/sys/net/ipv4/*。“掌控”这些参数,能使您在Linux网络服务问题解决、调优方面功力大增。此乃“系统高手”之必备知识。 临时改动某个系统参数的值,可用两种方法来实现,例如,想启用IP路由转发功能: echo 1 > /proc/sys/net/ipv4/ip_forward 或 sysctl -w net.ipv4.ip_forward=1 以上两种方法都可以即时开启路由转发功能。但如果系统重启,或执行了“service network re原创 2011-02-07 22:37:00 · 21069 阅读 · 0 评论 -
基于Spring的轻量级Web Service事务管理框架及其实现
正如我们所知的,Web Service的SOAP消息可以通过许多种基于Internet的网络传输协议来传送。大部分情况下,我们使用HTTP协议来传送SOAP消息,一个优势是,由于HTTP协议的无状态特性,那么,基于其的SOAP消息很容易的穿过防火墙;但同时也有一个副作用就是,无法保证Web Service客户端和服务端的一致性,即Web Service事务不可控制。我并不十分了解诸如SDO(S原创 2007-11-04 00:17:00 · 4112 阅读 · 1 评论 -
XPath应用
XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。怎么说呢,有了XPath,XML文档就像一个数据库,使用XPath查询XML文档就像使用SQL查询数据库一样快捷有效。从最简单有用的说: XPath路径描述符号。你可以通过诸如这样的方式检索具有特定属性的节点:"..//nodename[@attribut原创 2007-10-07 14:32:00 · 1767 阅读 · 0 评论 -
DocBook vs Apache Forrest
最近工作需要在研究开源的文档产品,举个例子吧,Spring和Hibernate的官方帮助手册就是借助这类产品生成的。在这个方面,DocBook和Apache Forrest这两种基于XML的文档框架工具无疑是占有统治地位的。基本来说,这两种框架都可以让你自由的定义文档的布局、格式、章节,从而完成你的“著作”。它们需要你完全使用基于一种特定schema/dtd的XML书写文档,然后根据应用的样式翻译 2007-10-05 15:49:00 · 2599 阅读 · 0 评论 -
Ajax技术原理分析
可以说Ajax不是一项技术,而是一种Web交互的操作模式。同时,Ajax并不是这两年出现的什么新东西,因为所有实现Ajax应用程序的组件都已经在我们的浏览器里存在若干年了。下面的时序图可以清晰的展现Ajax技术在客户端与服务器之间往返交换数据的过程。Ajax通过浏览器内置的XMLHttpRequest对象与服务器端交互,但需要注意的是,不同的浏览器,创建XMLHttpRequest对象原创 2007-06-23 23:25:00 · 2265 阅读 · 1 评论 -
对Spring事务管理实现技术的分析
Spring提供了TransactionProxyFactoryBean作为动态代理的生成工厂,该工厂产生目标bean的动态AOP(——面向方面编程)事务代理。事务代理根据所配置的事务属性自动管理事务操作。该事务代理对事务的透明管理依赖于一个在ApplicationContext范围全局可见的PlatformTransactionManager。Spring提供两个默认的事务管理器实现:Dat原创 2007-06-23 12:33:00 · 1787 阅读 · 1 评论 -
蚂蚁、原形、大水牛和粗麻布
因为技术选型的需要,了解或再次认识了几个开源的小东西,感觉还是收到了一定启发效果的,杂谈一下吧:-)蚂蚁——Ant (another neat tool)使用IDE来完成项目构建不是更方便么,为什么还要使用Ant?一般来说,IDE设计初衷都是为了提高程序员的个人生产率,而不是开发团队的持续构建,即使某些IDE能很好的支持团队开发构建,甚至我们能确保大家都使用相同类型的IDE。但,程序员仍然原创 2007-06-23 12:27:00 · 1535 阅读 · 0 评论 -
从建立宠物医院(PetClinic)项目开始你的Spring2之旅
搞Java企业级应用的人都知道Spring是个好东西,记得这玩意1.0出来的时候,有人甚至说“有了Spring,架构师就可以下岗了”。当然,Spring不是上帝,它提供的只是一套优雅的框架(Framework)。这套框架以依赖注入(Dependency Injection)控制反转(IOC,Inversion of Control)和面向切面编程(AOP,Aspect Oriented Pro原创 2007-07-22 10:56:00 · 6232 阅读 · 0 评论 -
MySQL数据库使用快速上手
MySQL作为一个开源的、轻量级的数据库产品真是不错,乃是制作开源、演示甚至小型商业项目的首选货色,不愧为IT人士居家旅行之必备产品。个人认为它最大的特色就是“轻量”、“简便”、“快捷”,当然还有Free:-)所以这就是本文的目标。Whats default username and password with MySQL?Default user: rootDefault pa原创 2007-08-28 21:27:00 · 2282 阅读 · 0 评论 -
如何将多个jar包合并为一
最近集成开源项目的时候发现一个问题,每个项目都要引用一堆jar包,多有重复,且版本也不统一,如果能把功能相似的jar文件合并为一岂不是很方便?比如apache的commons一族,axis/axis2一族,xml处理一族……做法很简单,其实jar文件就是压缩文件,装了win rar/zip的话就好办了。首先,选中多个jar文件,点右键“解压到……”某个目录,这时候应该会有些文件重叠,主要是原创 2007-08-28 21:01:00 · 9542 阅读 · 1 评论 -
使用jBPM开发企业流程应用之安装流程设计器
在开源的工作流项目中,jBPM受到的评价不错。其官方网站 www.jbpm.org 可以下载最新的版本,以jbpm-jpdl-3.2.*版本为例,说说如何安装jBPM的流程设计器。首先,下载之,可以选择下载jbpm-gpd-feature版本——图形化流程设计器,就是单单一个eclipse插件;或者下载suite版本——这个套装版本含有jBPM的所有内容,当然包括流程设计器,它位于desi原创 2007-06-12 17:11:00 · 2626 阅读 · 0 评论 -
了解几种常见的开源软件许可证
因为工作上的原因,需要了解一下几种常见的开源软件许可证。这可以规避一些法律上的麻烦、做到心里有底;对项目、技术选型也会有所帮助。GPLGPL授予程序接受人以下权利,或称“自由”:* 以任何目的运行此程序的自由* 以学习程序工作机理为目的,对程序进行修改的自由(能得到源代码是前提)* 再发行复制件的自由* 改进此程序,并公开发布改进的自由(能得到源代码是前提)相反地,随版原创 2007-06-14 14:04:00 · 5875 阅读 · 1 评论 -
2007年开源工作流项目的评价比较和参考意见
optaros是美国的开源软件研究及解决方案咨询公司,以下是其2006年底发布的2007开源软件评点报告中关于工作流系统的介绍,值得参考。Enhydra Shark版本:2.0b2具有可扩展的工作流引擎框架体系,使用XML流程定义语言(XPDL)完整的实现了工作流管理联盟(WfMC)的定义。这个项目也为业务流程的定义提供了图形化的设计器。http://shark.objectw原创 2007-06-14 16:26:00 · 3155 阅读 · 5 评论 -
使用jBPM开发企业流程应用之在Tomcat上部署流程引擎及控制台
jBPM是jBoss的子项目,那么其在jBoss上的部署就相当简单了,基本不用废话,因为在jBPM套装版本(suite)中的server目录就是一个已经部署好jBPM的jBoss,不过这个jBoss启动的时候要连带启动很多应用,太慢了,有点受不了。所以我们最好在Tomcat上部署一个纯洁的、独立的jBPM应用,以便研究。 那么,首先,我们需要建库,在db目录中有各种数据库的建库脚本,方便起原创 2007-06-13 16:38:00 · 3479 阅读 · 0 评论 -
工欲善其事必先利其器——研发团队开源管理工具最佳实践
持续集成:jenkins 加速项目推进心跳项目管理及构建:maven+nexus 强制的组件化开发开发任务及缺陷跟踪:redmine 高效的沟通自动化测试及自动缺陷检测:Junit,findbugs,checkstyle,pmd 实现部分的自动取代人工质量跟踪:sonar 持续的、量化的质量评估测试管理:testlink 测试用例和自动化测试复用版本管理:git 离线式版本管理,比svn高原创 2013-12-19 23:09:31 · 10962 阅读 · 0 评论