从零做起
Vasconi为新建的分公司组建了10人核心小组(这些人多半是Polk的信息技术员工)后,他的第一项任务是弄清楚新系统将是什么样子。
公司有三大目标,简称“50/50/100”,意思是:新系统把效率提高50%(换句话说,把运营成本削减一半)、数据提供速度加快50%;数据准确性力求达到100%。
新系统名为“数据工厂”(Data Factory),执行与IBM大型机同样的三项任务:先是获取数据,从260处来源汇总数据;然后把数据转换成标准格式,并使用统一的结构和命名,以便存储下来的得克萨斯州报告上去的车辆识别号码能够被Polk的其他应用所读取。最后,系统需要通过与其他数据库进行相互参照来提高数据准确性——比方说,核实消费者的姓名和地址,或者把某辆车与贷款历史联系起来。
Vasconi明白系统要有面向服务的架构(SOA),以便不同系统里面的软件组件能够以一种标准方式进行联系。因为新系统需要这种灵活性,可以自由地添加或者更新组件,又不干扰整个系统。SOA的扩展性也有望胜过整体式架构(这意味着它能够处理负载逐步加大的任务),因为较大的任务更容易细分成多个子任务。另外,他希望使用网格计算,从而利用多台机器来处理同一项任务,而不是使用功能强大的独立服务器。
他说:“我们需要构建能用30年的系统。”
RLPTechnologies的小组勾划了新系统的功能部分,然后确定哪些部分是市场上可以买到的商业软件产品、哪些部分需要自己内部开发。Vasconi说:“如果我们能找到可以买来的技术,就希望买现成的,以便加快我们开发的东西进入市场。”
Polk的“数据工厂”的硬件模块包括:采用英特尔处理器的戴尔服务器,运行Linux操作系统;使用两路及四路处理器的服务器配置成不同网格来处理不同应用;一个网格运行Oracle 10g数据库;第二个网格运行JBoss的应用服务器,负责托管自定义的Java代码;第三个网格运行Tibco Software公司的BusinessWorks消息总线软件,充当系统其他部分之间的通信代理;Tibco软件提供了该系统的SOA骨干部分。
“数据工厂”采用了其他现成软件包。来自Informatica公司的软件把进来的数据变成了可扩展标记语言(XML)文档,从而把数据处理成通用格式。使用DataFlux(隶属商业智能厂商SAS)的软件分析数据质量,以便能够发现可能的错误,进而调查分析。
RLPTechnologies自行开发了其他所需软件。Vasconi估计系统大约50%的部分运行在自定义的Java代码上——这个比例低于他原先预计的数字。他说:“SOA架构让我们能够上市场找到推崇SOA方法及支持性行业标准的公司。”
小组需要自行编写的主要功能与“服务编制”有关。服务编制软件分析进来的XML文档后,确定需要采取什么措施;比方说,地址中的ZIP代码是否需要在后面加上额外的ZIP+4数字?然后,编制软件把来自文档的数据相关部分提交给相应系统,通过Tibco消息总线来处理这项任务。RLPTechnologies还自行开发了数据访问层,汇总所有的更新信息后,插入到Oracle数据库的存储库里面。
公司在2005年12月开始分阶段部署“数据工厂”,5月初完成了部署项目。其正式名称是“企业信息工厂”(Enterprise Information Factory);Vasconi期望它能成为利润中心:RLPTechnologies打算最终把数据处理服务出售给其他公司。
如今这个系统共由约50台服务器组成,每周处理600万个XML文档。项目从启动到部署大约花了18个月时间。
不过在公司迁离大型机之前,Vasconi及其小组进行了一系列最后测试,确保新系统得到的结果与旧系统的一模一样。他说:“我们必须花大量时间来核实数据,确保直到数据库里面每一行数据的各方面都一样。”