Endeca自动化流程管理之浅淡

DreamForce从事Endeca架构设计与开发有半年之多,Endeca其实也不算是什么神奇的东西,大可以认为就是一个搜索引擎同时配置了一个以数据为驱动的视图引擎。

不过遗憾的是,Endeca在中国的份额并不多,而且Endeca对于大多数IT从业人员来说也较为陌生,所以关于Endeca的自动化流程管理也并没有所谓的最佳实践,DreamForce就谨此以半年左右的所思所想进行一下总结。

Continue Reading →
 

Gradle最佳实践

为什么会用Gradle

其实这个也是我最先使用Gradle这个脚本的的疑问,说实话,dreamforce是带着疑问去编写这个脚本的,幸运的是, gradle并不是一个非主流的脚本,他结合并保持了动态脚本语言的特色和书写方式,而dreamforce有着JAVA和Python的基础能很顺利的上手这门脚本语言。

gradle上面支持Groovy语法,也就是说也支持着原生的JAVA语法,如果你实在不清楚groovy的API,可以干脆直接写JAVA代码,这是完全支持的。gradle与Maven可以完美的结合,gradle也可以完美的支持ANT脚本,shell脚本..etc..

经过了数天的脚本编写后,Dreamforce发现Gradle确实比较实用,扩展性相当不错,甚至可以书写出非常良好可维护的代码结构,而这是ANT这些脚本很难做到的。(你见过面向对象的ANT么?可是你可以写面向对象的Gradle)

Continue Reading →
 

Gradle入门(DreamFroce精选版)

What’s Gradle?

Gradle is build automation evolved. Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else.

Gradle combines the power and flexibility of Ant with the dependency management and conventions of Maven into a more effective way to build. Powered by a Groovy DSL and packed with innovation, Gradle provides a declarative way to describe all kinds of builds through sensible defaults. Gradle is quickly becoming the build system of choice for many open source projects, leading edge enterprises and legacy automation challenges.

Continue Reading →
 

Groovy 教程入门精选(DreamForce整理版)

What’s Groovy?

Groovy is an alternate language for the JVM — alternate meaning that you can use Groovy for Java programming on the Java platform in much the same way you would use Java code. Groovy code combines well with Java code when writing new applications, and can also be used to extend existing ones. Groovy currently is in version 1.5.4 and works on the Java 1.4 and Java 5 platforms, as well as Java 6.

Continue Reading →
 

JAVA序列化的浅析与性能优化(Best Practice about Serialization)

文章会的简要目录如下:
Serialization的概述
用‘transient’进行性能优化
关键点总结
Serializtion的概述
Serializtion是将一个完整的JAVA对象写入输出流的过程,这个流可以是文件,字节数组或者TCP/IP相关的Socket流。
Deserializtion就是反序列化,也就是说将一个完整的JAVA对象从输入流里读取出来。

JAVA类必须如果实现 java.io.Serializable或 java.io.Externalizable 接口,也可以继承实现了这些接口的超类。那么此JAVA对象就被序列化或者反序列化了。
所以的基本数据类型和一些JAVA API类都是进行了序列化的,你不必要进行额外的序列化。
如果你使用Externalizable可以定制你的序列化方式。这篇文章主要关注的是Serializtion接口
Serializable接口是一个标志位接口,他没有任何的接口方法。像EJB,RMI,ATG这些主流的JAVA技术都是基于序列化进行对象传输的,这些技术本身都暗中的将你的对象进行了序列化的操作。。

Continue Reading →
 

关于JMS与SPRING的整合实例(基于Apache ActiveMQ)

什么是JMS?
jms即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
JMS的优势
当前,CORBA、DCOM、RMI等RPC中间件技术已广泛应用于各个领域。但是面对规模和复杂度都越来越高的分布式系统,这些技术也显示出其局限性:
(1)同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果后才能继续执行;
(2)客户和服务对象的生命周期紧密耦合:客户进程和服务对象进程 都必须正常运行;如果由于服务对象崩溃或者网络故障导致客户的请求不可达,客户会接收到异常;
(3)点对点通信:客户的一次调用只发送给某个单独的目标对 象。

Continue Reading →
 

浅析 HashTable 碰撞拒绝服务漏洞

在去年(其实只是半个月前而已),Tomcat就紧急发布安全漏洞通知,同时微软也发布了相应的安全漏洞通知,他们都是通过变通的方式来解决此拒绝服务漏洞。而在这风口浪的碰撞拒绝服务漏洞是什么呢?

1.什么是HashTable 碰撞?

我觉得有必要先阐述一下什么是HashTable碰撞,因为这个拒绝服务漏洞不是因为服务器的编码原因或是疏忽造成的,而是程序语言自身的问题,此问题除了perl,ruby外,几乎无一幸免,可怜的JAVA当然也在其中了.

Continue Reading →
 

ANT , So easy !

1.什么是ANT?
我套用它的开发者James Duncan Davidson的一句话,它只是针对许多人遇到的一个明显问题而提出的一个简单的解决方案。对于这一个解决方案,但凡做WEB应用的都应该比较熟悉,在过去的开发中,或者是没有使用到ANT的项目中,布署一直是一个很麻烦繁锁而且相当无聊的一件事情,你总是不断的重复重复再重复,而ANT也就应运而生,你只需通过很精简的脚本就可以实现非常灵活的布署或者是其它你想做的事情。

Continue Reading →