1、用面向服务构架实现敏捷的农业信息化平台2010年3月24日纵览信息化建设的历史可以发现,组织结构的价值取向是推动技术和工艺发展的原动力,而通过信息化技术所实现的价值也驱动着相应竞争优势的提升。作为一个农业大国,我国从1994年12月在“国家经济信息化联席会议”第三次会议上提出建设”金农工程以来,特别是加入世界贸易组织后,外部竞争环境极大地激发了农业及农村领域对信息服务的需求和渴望.一、金农工程现状在农业部主导的“金农工程”具体实施2年以来,我国已经建立以信息中心为技术依托,各专业司局和有关直属事业单位共同参与的信息组织机构体系.全国有9的地(市)、的县(市)和的乡镇建立了农业信息服务机构并发展
2、起一批骨干农村信息员队伍。同时,在全国共建立了条信息采集渠道,采集点多个,定期采集农村政策、生产动态、供求、价格、科技、灾害、疫情、农民收入等信息,初步形成了覆盖农业和农村经济领域的信息采集系统。建立了一批全国性和区域性数据库,开发应用了相关的信息处理和服务软件.随着信息服务网络已开始向基层延伸。构建了以农业部中国农业信息网为龙头的、具有较强支持功能的综合信息网络平台,初步形成了以批发市场价格行情、农产品供求、科技教育、种植、畜牧兽医、水产、农垦、乡镇企业、农机化、饲料、农产品质量、绿色食品等专业网为骨干的中国农业信息网.但是我们从多个省市建立的农业信息网得到的运行反馈也看到当前一些“金农工程
3、”在信息化过程中遇到的问题和困惑.同时,在一些权威人士的文章中也有从各种角度的分析。综合来说,主要有“3个多,3个少”:1、农业信息网点多,信息人员多;但信息采集面和发布渠道还是少有些相关报道把这个问题称为“农业信息化的最后一公里问题,因为八亿农民当中的绝大部分手中没有计算机,也没有条件上网,常规的信息传播也不是处处通畅,由于“数字鸿沟”的阻隔,造成电脑、网络、信息服务距离农民还差“最后一公里”.根据最近的一项数据表明,农民上网用户人数仅仅占我国网民总数的2。3%,只有“可怜的”200万人.当然,这个问题背后的根源在于城乡经济发展水平的不平衡、在于“二元结构”的障碍。农村经济上不发达,“数字鸿
4、沟差距就难以真正缩小。因此,仅仅就信息化讲信息化是不够的。但是,针对目前这一客观存在的应用环境,我们在技术上可以做些什么来缓解这个问题,增加信息系统与广大农民的交互渠道,至少相对的拉近“农业信息化的最后一公里”呢?2、网站作为信息发布平台多;但是作为应用平台少近年来,随着信息技术的快速发展,各地都不同程度地加强了信息基础设施建设。但信息资源建设远不适应,“重建设轻服务”和“重硬件轻软件”的还是现象比较普遍。信息资源匮乏不仅制约了信息服务的开展,而信息如果只是数据的话,就无法体现信息系统的投资回报。比如,有些地区的农业信息发布只有事后数据而缺乏预测数据和相应的决策支持能力,就无法为政府决策提供依
5、据,适时向公众发布预测信息,引导农产品生产经营者及时采取措施规避市场风险.3、各涉农部门各自为政多,有效的信息资源整合与共享再利用少经过多年的建设,农业部信息资源建设取得了很大成果,农业部本级和各级农业部门相继建立了农业政策法规、农村宏观经济、农产品进出口、农产品价格、农产品供求、农业科技等数据库,初步构建了农业分析预测预警等数据仓库,据不完全统计,已经建立了各类规模、标准的数据库一百多个。但与信息化进展情况相比较,存在明显的问题.一是资源开发建设明显滞后,突出表现在有价值的信息匮乏和信息结构不合理,缺乏指导性和权威性;二是资源开发建设标准不统一、不规范,已有资源共享性差;三是市场信息采集处理
6、分析手段落后、力量薄弱,资源开发先天不足。那么如何解决上述金农工程信息化建设过程中所面临的主要问题呢?又如何在解决这些现有问题的同时还能为未来金农工程更长远的发展打下良好的基础呢?一个开放的、基于标准的面向服务应用架构提供了这样的基础,它不但可以将现有农业应用整合到统一的应用服务平台中,还可以为金农工程的长久发展提供一个可持续发展的基础架构。二、面向服务架构SOA目前在金农工程中,已有的应用系统分布广泛,业务和数据复杂且分散。因此为了能够在金农工程的实现过程中建成标准统一、功能完善、安全可靠的政务信息网络平台,需要一种架构统一、符合开发技术规范的应用运行和接入手段.现有分散的基础农业信息可以通
7、过这个平台进行交换和共享;异构实现的农业应用也可以利用这种平台更高效的实现业务互访,这种平台就是面向服务架构。面向服务的SOA架构是一种应用架构模型,它是一种按需连接资源的系统。在SOA架构中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员.与传统的系统结构相比,SOA规定了资源间更为灵活的松散耦合关系。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。基于可复用服务的SOA架构采用Web服务做为应用集成核心.与Java、CORBA和。NET不同,Web服务不是一种编程语言,它是一种能够跨越各种硬件平台和软件平台的开放标准,就像TCP/IP
8、协议一样,各种应用开发平台通过支持一种应用访问标准,就能实现异构平台之间不同应用的相互访问.因此通过Web服务可以非常方便的实现应用之间的集成.利用面向服务架构(SOA)实现金农工程的应用系统架构,就要将金农工程中的数据信息,应用业务等政务资源通过Web服务的方式,变为可以被复用的信息资产,然后将这些Web服务按照不同层面,部署、运行在统一的SOA架构中。在这个架构中,底层的服务成为更高层服务运行和实现的基础例如上层的应用服务通过底层的数据集成服务提供的数据访问接口统一访问下层复杂的数据;而复合业务应用可以通过组合多个单一应用服务,从而形成新的综合业务。农业部SOA架构示意图在上图农业部SOA
9、实现架构示意中包括了:数据服务层、应用服务层、综合服务层和政务门户层。最下层的数据接入层包括了现有农业系统中的不同类型数据源,除了传统的关系型数据外,还会有文件型数据,或者实时产生的数据流.众多分散的数据无论是数据源存储位置,还是数据访问方式都是复杂多样的。另外分散的数据形成了数据孤岛,导致上层应用产生矛盾的业务处理结果。数据服务层通过数据集成消除了数据孤岛,实现了分布数据源的统一管理,无论底层数据源有多复杂,通过将数据访问变为Web服务,所有上层应用都可以使用统一的方式进行数据访问,实现了基于SOA的数据访问服务。通过统一的数据访问,解决了农业信息访问不标准、不规范的问题,而且通过Web服务
10、的方式提高了信息的共享性。此外数据服务层还可以实现不同地域范围的农业信息的交换需要,通过数据交换服务,数据信息可以被及时地传送到其他系统或应用当中,这样就有效地提高了农业信息的使用范围。应用服务层利用数据服务层提供的统一数据服务接口能访问到完整的集成数据。在应用服务层中运行着诸多单一功能的应用业务,不但包括以后农业应用,还包括未来金农工程新的业务系统。这些应用不可能是使用单一技术实现的,而且也不可能始终运行在一种平台上。它们有可能是采用Java、.NET等不同技术实现的,可能部署在Windows或是UNIX系统上。由于开发语言或运行系统的限制,这些应用无法直接跨越所有平台实现应用集成访问,因此
11、可以利用SOA架构的Web服务技术,将可复用的业务功能封装起来,将它们由业务应用提升为业务服务。这样,这些基于Web服务的可复用应用模块就可以利用SOA架构方便地实现互连互通.服务总线层首先可以管理众多位于应用服务层中运行的Web服务.可以将Web应用服务的标准访问接口注册到服务总线层中,这样众多以Web服务形式存在的农业应用信息资产可以得到集中、有效的管理。此外,可以利用综合服务层提供的灵活的服务编排功能,将多个单一的应用服务组装为统一的复合业务,以便在更高的应用层面实现金农工程的业务需要。最后,政务门户服务层将SOA架构底层提供的复合业务服务、单一应用服务和整合数据服务通过统一的金农门户显
12、示到最终用户前。由于门户包括的农业应用和信息访问都是通过Web服务方式实现的,所以可以根据不同的用户需要、根据不同时期金农工程的应用实现重点,非常方便、快捷地推出基于不同侧重点的农业信息门户。而且通过农业信息门户提供的移动订阅服务、个性化服务、多媒体服务等不同信息推送技术和手段,还可以保证将农业信息及时、准确地传递给广大农业用户,从而实现金农工程服务于农民的目标.三、SOA规划和实施过程使用Web服务做为主要的技术标准,实现金农工程基于SOA的信息化架构不是一蹴而就的事情。其核心的信息化系统实现SOA架构过程可以分为三个阶段:规划资源与规范、改造现有系统、实现完整的SOA架构。通过有序地实施这
13、几个步骤,才能最终实现敏捷大农业的应用目标.图:实现SOA信息化架构的过程第一阶段:规划资源与规范首先需要通过统计和分析现有金农工程中信息系统的应用功能和数据模型,得到完整的现有应用和已有业务数据。然后需要根据金农工程对信息化建设的需要,统一制定出信息化建设中的应用和信息的访问标准。对于应用访问标准,可以统一到以Web服务为标准的统一接口;而对于数据访问的标准,可以先定义农业领域内部的基于XML的数据规范,然后再通过Web服务接口来实现符合XML数据规范的数据访问服务。在定义应用信息访问接口的过程中,为了能够在以后阶段统一利用基于SOA架构进行数据和应用的集成,需要使用WSDL标准来定义各种应
14、用访问服务的接口属性,并使用XML Schema规范来定义数据规范的元数据结构。使用复合SOA的技术定义的应用和信息的访问接口,是未来实现金农工程中异构应用集成和复杂数据集成的基础。第二阶段:改造现有系统在清楚地了解了有哪些应用系统之间需要进行集成后,为了确保能将这些应用系统顺利集成到统一的SOA架构中,还需要使用SOA的各种实现标准,对这些原有的应用系统进行适当改造,使它们的应用访问接口和信息数据访问接口符合前一阶段定义的金农工程接口规范。无论原有系统是.NET还是基于Java平台开发实现的,都可以利用符合Web服务标准将已有业务功能按照应用和数据访问规范封装成为业务组件,以便在SOA架构中
15、服务于其他应用。第三阶段:实现完整的SOA架构在完成利用Web服务技术改造原有系统的准备后,就可以通过引入SOA平台来实现完整的、更加敏捷的基于服务的应用架构了。在金农工程中,实现完整的SOA架构可以按照实施顺序分为如下几个层次:业务数据服务、业务应用服务、信息访问服务,应用服务管理。1、首先是实现业务数据服务.由于金农工程中的所有应用都必须依靠业务数据来支撑,所以必须先将现有分布在各个业务系统内部的异构数据源统一成完整的、逻辑一致的数据源.然后再在这种统一的数据基础上实现数据信息的访问规范。数据服务层提供了数据统一访问,进而可以将数据服务层方便地发布为Web服务,以便被其他应用系统重复使用,
16、从而实现了基于SOA架构的数据交付。数据服务平台使得SOA架构能够快速实施数据服务层,它为整个企业不同来源的相关业务数据提供了一个统一的数据视图,允许使用者通过单个接入点访问并获取统一和一致的信息。它采用元数据驱动的方法,能自动完成数据服务的创建和维护,而不要求应用开发人员创建工作流或手动编写Java代码。此外数据服务平台可以自动完成服务读写,优化数据库、Web服务和其他资源的组成,完成数据服务的建模和元数据管理,并具备策略驱动的安全实现和数据缓冲机制.2、当通过数据服务平台实现数据集成,从而得到完整的数据信息后,所有金农工程的应用就可以使用这个统一的数据访问服务,然后在SOA架构上实现应用业
17、务的集成。利用SOA架构进行应用集成的核心是应用采用Web服务的方式相互访问被开放的应用功能或者传输应用所需要的数据。利用SOA架构进行集成的优势就是能够敏捷地调整应用自身,从而可以用较低的成本确保应用能够灵活地随着业务需要进行的变化,而这些是依靠SOA的集成架构实现的.基于SOA架构的业务集成平台采用以BPEL标准为核心的业务集成引擎.它通过基于XML的规范来定义如何集成多个Web服务,如何编排多个Web服务形成一个完整的复合业务.当不同应用业务的Web服务接口需要不同类型的XML数据时候,我们可以利用SOA架构中支持的XQuery、XSLT等技术,实现不同格式XML数据之间的转换.金农工程
18、中那些封装好的可复用的Web服务是分布在异地各自的业务平台中。这些Web服务是可以通过HTTP协议访问到,如果能不加以限制的访问这些应用功能,这会给整个集成应用带来很大的安全隐患。所以在实现SOA架构应用集成的时候,需要非常注意集成的安全性.例如可以通过HTTPS和SSL实现Web服务的网络层安全访问,保证Web服务的访问者和被访问的真实身份。其次可以通过支持WSSecurity等Web服务安全标准,通过消息签名等手段,确保消息本身的安全性和一致性。3、当应用业务的逻辑通过Web服务集成到服务平台上后,我们最后可以实现应用信息访问服务,用门户的方式提供更加丰富的农业信息。金农工程包括众多信息网
19、站,对于广大农业用户来说,他们对信息的需求是千差万别的,如何能汇集众多农业应用中提供的大量有价值的信息,并按照用户所需及时提供给他们呢?这需要利用金农工程的门户系统来实现全面农业信息的统一访问。在金农门户中包含了完整的信息访问功能.首先需要在各个网站上通过Web服务技术实现可以共享的农业信息接口,这些接口可以通过Web服务的方式被远程访问。然后通过门户系统支持的WSRP技术,可以将此应用信息的访问接口在金农工程的信息门户上自动生成相应当门户小应用程序(Portlets)。最后将众多的显示不同农业信息的门户小应用程序分类别集成到整个金农门户架构中.这样即可实现一个完整、统一的基于SOA架构的金农
20、门户系统。4、当数量众多的业务应用需要使用Web服务技术集成在一起的时候,可以进一步采用企业服务总线(ESB)的架构来管理这些可复用的应用组件,从而可以实现更加清晰地管理所有金农工程所包含的可复用信息资产。服务总线提供了一个面向服务的基础架构。服务总线提供智能化消息代理,可实现动态路由和转换,支持异构的服务端点,具有服务生命期管理能力包括服务注册、监控和设定界限的SLA实施.对于金农工程中非常灵活的业务,还可以利用服务总线快速地通过配置界面,管理并组织各种服务和资源,将服务和资源组织成用户需要的逻辑过程。利用服务总线,实现金农工程中的复合应用业务就不需要进行开发,就能快速配置出相关应用服务的交
21、互过程,并在异构平台中快速地重用和部署服务。四、SOA的架构优势对于利用SOA架构做为统一的农业信息基础架构,能够为金农工程的未来发展提供非常多的技术和业务优势:基于开放的标准金农工程中部署的完整SOA架构是建立在一整套开放的标准和技术上的.这些标准应该在金农工程中被广泛推广和运用。开放的标准能够从技术底层上保证金农工程的不同应用在不同平台上能相互兼容、互联互通。通过这些标准改造、实现的已有或未来应用也具有开放功能的特性,因此它们再也不是那种封闭的私有应用系统了。基于标准的开放的系统不会随着架构变化而被淘汰,因此有效的延长了金农工程的应用服务生命周期。这些技术标准和规范包括:XML定义标准:X
22、ML SchemaXML数据查询和转换标准:XQuery、XSLT、XPathWeb服务标准:SOAP、WSDL、UDDIWeb服务安全标准:WS-Security服务管理和质量控制:WSPolicy、WS-Reliable Messaging基于Web服务的业务编排标准:BPEL/WSCI基于Web服务的门户整合标准:WSRP广泛的适应性-SOA架构的核心是Web服务,它是应用的标准访问规范,所以无论金农工程中原有的应用是采用哪些技术开发的Java、VB、C、Delphi,PB,也无论应用是运行在什么平台上Windows、UNIX、主机,都可以保证迅速实现各种异构平台之间的集成。如此广泛的平
23、台适应性,让复杂业务和数据更容易的集成在一起,从而加速了金农工程中政务信息平台建设步伐。松散的系统耦合-通过数据服务层提供的统一数据访问功能,可以集成众多农业应用底层的大量异构的孤立数据源。因此可以将金农工程中包括的所有分散信息数据按照不同的属性分成几类,然后再利用数据服务层,把一类所包括的分散数据库集成起来,最后形成若干综合农业信息源。此外数据服务层还在应用和数据之间以起到数据缓冲作用。数据缓冲降低了金农工程中上层应用对不同数据源访问的紧密依赖度,提高了系统的灵活性。因为如果数据和集成的复合应用是通过紧耦合方式链接的,一旦数据库升级或者数据逻辑结构发生变化,集成应用不得不修改代码来适应数据的
24、变化,这样严重影响了金农工程未来的业务扩展。而如果复合应用是通过数据服务层访问数据,而数据服务层可以将数据对应用的直接影响降低到最小,甚至完全屏蔽掉,从而有效地增加了金农工程中应用对数据的适应能力。高效的实现过程基于SOA架构带来的高效的整合效率,可以有效缩短金农工程的实施的时间。传统的应用集成方式采用基于专业系统的适配器和基于特殊平台的消息总线集成方式,这两种集成方式都有不同的限制,无法满足金农工程中复杂的业务和数据集成的全面需要。例如适配器方式只支持点对点的集成,这就使得在存在大量的被集成系统的时候,需要开发、部署和管理繁多的应用适配器,这就使得集成效率大打折扣.虽然基于消息总线的集成方式
25、在效率上有了很大的提高,但是消息总线通常采用异步方式集成,并且通常限制于某种平台,如Java的JMS,。NET的MSMQ.因此在实现异构系统集成的时候无法体现出高效率.而以Web服务是一种应用访问的标准接口,所以无论金农工程的应用运行于何种平台,应用都可以通过它实现和其它应用的相互访问。所以一旦使用Web服务定义好金农工程的应用业务访问标准,它就可以被集成到整个农业信息架构中。最终实现了业务功能被广泛复用,从而更高效地实现了金农工程中不同应用整合。快速的业务需求响应金农工程的业务和数据并不是一成不变的,例如各个地区需要结合当地的农业发展状况,不断地推出新的农业信息服务。为了能使农业应用快速实现新的业务需要,需要让应用和数据具备一种敏捷的适应变化能力,从而迅速实现关键业务服务,从而来满足变化的需求。通过SOA平台可以灵活的控制以Web服务为核心的业务逻辑,实现高效的业务组合和数据格式转换,在最短的时间内实现各种金农工程中的新型业务.要在金农工程中实现面向服务的应用架构,就必须有一个统一、可扩展、基于开放标准的服务基础平台,以便在不考虑底层技术的情况下,在异构IT环境中管理SOA的整个生命周期,它可以发现、保护和管理应用服务,并能将服务组装成复合应用和流程,帮助提高响应敏捷性和实现效率,为更好地实现金农工程提供坚实、可靠的基础。