9)保护你的产品
如果前面所提的那些您认为都是一些常见的话题,那么我至少还可以最后一次诱惑你:SICS可以保护你的劳动果实!
说到保护自己的(JAVA)劳动果实,大家首先想到的肯定会有混淆、反编译、加密之类的话题。是的,SICS所做的保护也正是这些问题。
在基于通常的服务器,包括WEB容器和EJB容器的开发中,你是如何发布你的应用系统的?几乎只是一个简单的打包过程吧?当你的竞争对手拿到你的程序(一 个JAR包)后,我想你肯定能想到结果会怎样吧!你一定很想混淆吧,那么你为什么不混淆?“没办法,一旦混淆,很多程序根本运行不了了!”这是常见的原 因,是你不得不让你的产品在没有任何保护的情况下裸奔的一个关键原因,尤其是一些利用基本的JAVA反射原理工作的工具更让这样的情形雪上加霜!混淆做不 到,加密常常是更加无从说起,或者说加密也没有太实际的意义了!
这些问题实际上也是我所面临的问题:如果我费尽心血写的一个程序,在交付市场的时候也就拱手送人,那么我肯定不会把这个程序作为一个产品去认认真真地写的,因为写的再好,也只能卖一次,还不如老老实实的做项目来得实际!
所以,我肯定不会允许这样的事情发生!所以,在SICS的设计过程中,产品保护被作为一个重要的任务!包括,为了实现产品保护任务,仅是系统配置部分我就写了好几个版本,以适应不同的运行和发布模式,包括混淆,加密等等。
包括前面我所描述的MiniHttp,保护基于其之上的产品也是MiniHttp抛弃规范的一个关键原因!
虽然混淆和加密并不能阻挡高手的技术和意志,但是至少不至于让你的产品裸奔,不是吗?