2006 年 07 月 22日, 星期六
APPLE大赛
前一段时间和同学参加了APPLE创新大赛,体会颇多,写下此文总结经历。
比赛之初,我们定下方案:先在windows上编好程序,调试运行通过之后,再拿到苹果机器上去调试,最后交作品。
但后来的事实证明我们的方案欠妥,害得作品没能完成。
我们做的是一个词典,其实涉及的内容不多,但其中的SQLite数据库弄得我头昏脑胀。
由于SQLite的源码是C,而我们用的是“咖啡”java,所以首先要找到SQLite的jdbc驱动程序。第一个郁闷的事情发生了,SQLite官方网站上居然没有提供jdbc驱动!不会要自己写一个吧,我可从来没有写过jdbc的驱动,这可是一件极为痛苦的事情,况且时间不多,从开始做东西到交作品只有仅仅10天的时间(之前刚参加完IBM的SOA大赛把时间占用了许多)。
在查阅参考资料准备自己写jdbc驱动程序的时候,一件极为幸福的事情又发生了,我无意间在http://www.ch-werner.de/javasqlite上找到了SQLite的jdbc驱动。只是经过我的实验,发现这个驱动只能用于jre1.4.2。不过这算是小事,调整一下jre版本就可以了。
我们在windows上把代码完成了,经过简单的调试能正常运行,随后将程序转移到APPLE机器上去运行。第二件郁闷的事情又发生了,举办方要求必须用APPLE机器上的XCode工具来编码、调试和运行程序,但我们从来没有用过APPLE的东西。别说XCode这样的编程环境,就连系统也很少用。不过,我们是以适应力强而著称的,经过一个上午的时间,XCode的用法基本上被我们搞清楚了。
接着第三件郁闷的事情又发生了。在windows上运行完全没问题的代码,居然到XCode下出错N多,而且都不是环境带来的错误,而是些语法错误。怎么会这样呢?完全无语。
后来,我们不断调试,才发现原来是中文支持问题,只要是有中文的地方就出错。然后我们把有中文的地方全都删了,再调试,错误少了一大半,但还有一些错误。我完全崩溃了,根本不知道错误的原因。正准备放弃的时候,我的队友说了一句很经典的话:“nothing is impossible!”然后他接着调,最后居然把程序调出来了!看来我也应该把这句话当作我的座右铭了。不过这个时候已经超期两天了。既然已经把程序做出来了,管他这么多,当然是先交了再说了。
2006 年 07 月 21日, 星期五
SOA之我见
这篇文章就主要谈谈我对SOA的看法。
首先我觉得SOA这个概念的产生首先有这么一些原因。以ERP系统为例来说,ERP这样的系统一般都针对大公司,价格也非常昂贵。当然,对ERP的开发也有很大的难度。而公司的运作机制随时可能面临着改革,那么一些运作流程当然也会变化。这就需要ERP这样庞大的系统也必须跟着变化,那么如果以传统的方式对ERP进行修改的话,开销也会相当的大。在这样的情况下SOA的概念便产生了。
说了这么多,那么到底我理解的SOA到底是什么呢?以我的理解,通俗的讲,SOA首先必须是以服务为中心的。在这个基础之上,通过对老系统的服务部件进行整合来实现一个新的更加适应公司要求的系统。
什么是以服务为中心?而以服务为中心之后又是通过怎样的方式进行整合的呢?通常我们开发的系统的都是由组件构成的,如果要以服务为中心的话,简单说来,就是要对企业的运作流程多加考虑,也就是对组件进行设计时,是从企业的运作角度进行的。对服务进行整合时,其实和对组件进行集成差不多,只是接口不同。也正是因为是面向服务的集成,所以集成时也方面得多,面向服务的接口比传统组件的接口更加统一。
通过这样的整合,节约了开销,也满足了企业的要求,何乐而不为呢。
以上仅仅是我SOA很浅显的看法,写在博客里留作纪念,意义好似“××到此一游”!