物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  物流  >  正文

跨数据库中间件在ERP中的应用

作者:刘一Liu Yi,李玲Li Lin
来源:RFID世界网
日期:2011-01-04 09:41:46
摘要:网络数据库是动态网站源泉 为保证网络数据库安全,一般采用含有中间件的三层结构访问数据库。文中采用C/M/S结构.实现了一个跨数据库中间件在ERP中的应用。利用l2EE技术开发中间件,详细阐述了在数据库连接、查询等方面的开发设计。
关键词:ERP中间件数据库

  引言
 
  世界由传统型经济向知识型经济和网络型经济发展,信息化已成为大趋势 ERP(Enterprise Resource Planning,企业资源计划)在企业信息化中发挥了巨大作用。而随着企业规模、结构变化,各种兼并或进入新业务领域,会遇到企业各部分分布异构情况,在这种环境中,通常存在多种硬件系统平台、系统软件、数据库及多种风格各异的用户界面,这就要求传统的ERP软件转型以适应需要,但它们的应用和商业逻辑一般都是紧耦合的,改造难度很大。因此,为了实现内部逻辑与外部实现的松耦合结构,中间件技术的引入就十分必要,在跨数据库的中间件应用技术上,提出数据访问中间件的三层C/M/S fClient/Middleware/Server)体系结构。浏览器端程序要访问数据库,首先通过中间件。

  然后由中间件对数据库操作 该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过Web服务器返回到浏览器端用户 通过中间件,客户端应用程序开发工作量大大减轻 因为中间件可重复利用,只要掌握了中间件编程接口,就可以很容易利用中间件来访问数据库,或运行在网络上的其它大型应用程序。

  本文介绍利用J2EE技术实现中间件跨数据库访问的几点应用。

  1 中间件技术

  1,1中间件的概念


  中间件(middleware)是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源, 中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。中间件处于操作系统软件和应用软件之间。中间件在操作系统、网络和数据库之上,应用软件的下层,主要作用就是为处于自己上层的应用软件提供运行与开发的环境,帮助开发者灵活、高效地开发和集成复杂的应用软件嘲

  1,2中间件的分类

  中间件大致可分为六大类:终端仿真/屏幕转换中间件、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件。由于中间件要屏蔽各类应用软件和网络协议与操作系统之间的异构问题,所以它必须能够提供分布系统环境下的通信服务,在这里,将这种通信服务称为平台。基于功能和实现机制的不同,平台分为以下几类:① 远程过程调用中间件(Remo~ Procedure Cal1); ② 面向消息的中间件(Message Oriented Middleware);③面向对象请求代理中间件(Object Request Brokers);④ 事务处理监控(Transaetion Processing Monitors)。

  1,3中间件的特点

  中间件屏蔽了底层操作系统复杂性,减少了程序设计复杂性,使程序开发人员面对简单而统一的开发环境,将注意力集中在自己业务上,不必再为程序在不同系统软件上移植而重复工作,减少了技术上的负担。中间件带给应用系统的不只是开发简单、开发周期缩短,也减少了系统维护、运行和管理工作量及计算机总体费用投入。随着研究深入和应用普及,已形成了中间件标准化规范或产品。如CORBA、DCOM、J2EE都成为著名的业界标准规范 其中美国Sun公司的J2EE规范,目标是提供与平台无关、可移植、支持并发访问和安全的,完全基于Java的开发服务器端中间件的标准。它具有完整的基于Java语言开发、面向企业发布的应用规范, 包括Javaservlet、JSP(JavaServerPage)、EJB等多种形式,以支持不同业务需求

  2 采用J2EE进行C/M/S结构设计和跨数据库访问

  2,1基于J2EE的C/M/S体系结构


  J2EE(Java 2 Platform,Enterprise Edition)是Sun公司推出的一种全新的概念模型,与传统互联网应用程序模型相比具有不可比拟的优势 J2EE是一种利用Java2平台简化诸多与多级企业解决方案的开发、部署和管理相关的复杂问题的体系结构 J2EE技术的基础是核心Java平台或Java2平台标准版,不仅巩固了标准版中许多优点,例如“一次编写,到处运行”(Write once,l'un anywhere)的特性、方便存取数据库的JDBC,CORBA技术以及能够在[nternet应用中保护数据的安全模式等,同时还提供EJB (Enterprise Java Beans),Servlet。JSP(JavaServerPages)以及XML等技术的全面支持。J2EE体系结构如图1所示


图1 J2EE的体系结构

  J2EE是一种全新概念的多层分布式应用平台,通过提供企业计算环境所必须的各种服务,使部署在J2EE平台上的C/M/S三层体系结构实现高可用性、安全性、可扩展性和可靠性。C/M/S体系结构的优劣会直接制约整个企业信息共享、运行管理以及经营决策:必须要满足3个目标:

  (1)系统必须具有高可扩展性,可维护性。由于企业经营中不确定因素很多,经常导致新的功能需求不断变化。这就要求系统具有很高可扩展性,以满足新功能添加。

  (2) 实现企业管理的3A (Anyone,Anywhere,Anyway)。即可以通过本系统的使用达到任何人在任何地方以任何方式了解和参与企业运营管理。

  (3)最大范围内节约系统的开发成本。企业的最终目的是以最小的成本获得最多的投资回报。因此,系统开发成本直接影响着企业的利润。
 
  2,2基于J2EE的跨数据库访问体系结构设计

  应用软件进行跨数据库开发或移植困难,主要是由数据库异构性引起的数据库操作语言不一致所造成。应用软件数据操作语言都是针对特定的数据库,直接调用相关的JDBC程序来完成数据库操作,无法使用统一的数据操作语言来操纵多种异构数据库,造成应用软件在异构数据库间移植困难 本文主要研究屏蔽异构数据库操作语言差异的中间件JUBD (Java UniverseData Base Manage system),实现应用软件进行跨数据库移植,在异构数据库之间进行数据快速转换。JUBD是在JDBC与应用程序之间的一层,它屏蔽异构数据库不同的JDBC之间的差异,应用程序只需使用标准数据库操作语言,JUDB就可以将其转换为针对不同数据库的SQL操作语言,样开发人员只需了解标准的SQL语言,而不需要记住各数据库操作语言的特性系统采用三层结构,划分为:表示层(客户机)、业务逻辑层(应用服务器)、数据存储层(数据库服务器)。

  在方案中,用户发出标准化的SQL语言进行跨数据库操作 通过解析测试器完成对SQL字符串解析及查找错误的操作,进而得到一个语句对象。该语句对象由管理器进一步转换,将语句对象中的属性值提取重新组合成SQL语句,使原本符合标准SQL操作语言的字符串,转变成可以为实际关系型数据库系统处理的数据结构,再通过数据库连接池获得相应数据库系统的JDBC接13,执行重组后的SQL语句并返回执行结果。

  为了保证可靠安全地传输数据,在每个数据库服务器上创建一个信息处理队列管理器,承担信息收发实际工作:另外,在其中任一台应用服务器上再添加一个额外的路由队列管理器作为信息路由点,避免路由点的单点故障:在另外一台应用服务器上也创建一个路由队列管理器备份,确保路由点不会出现单点故障,当其发生意外故障时,由另一台应用服务器上的路由队列管理器实现自动接管和切换:结构如图2所示


图2 中间件部署方式

  3 跨数据库访问的实现

  通常在程序中用到的SOL语言基本都是对数据库的增删改操作, 还有CREATE TABLE、DROP TABLE、ALTER TABLE操作。应用程序通过JUDB提供的一组对外接El执行SQL语句。

  DBPEER是JUDB提供的一个专门对外的接口模块,其功能主要是实现数据库操作。它通过一个类的静态模块来初始化系统配置(JUOBKERNEL,INIT),并获得各项配置信息 DBPEER提供四种SQL语句接13,应用软件通过这四种接13操作数据源 同时,DBPEER也开放直接与JDBC通讯的接口,用户可以通过这些接口将一些目前JUBD还未支持的SQL语句提交给JDBC,由数据库系统直接处理。方法如下:

  (1)executeDelete(String deleteSQL),exeeuteDelete(String deleteSQL,String dbname)函数功能:为删除记录,这两个方法是为在指定或缺省的数据源执行“Delete"语句,人口参数为执行delete语句的标准SQL语句,例如“delete from table where col==value”,还有重载方法的参数为数据库名。例如“Orae1e” 若是没有指定数据库名,系统会根据配置文件来自动获得

  (2)executelnsert (String insertSQL),executelnse(String insertSQL,String dbname)函数功能:在指定或缺省的数据源执行一条插入语句,并且如果所操作表为自增主键表,则返回新增记录的主键值

  (3)excuteSelect (String selectSQL),executeSelect(String selectSQL,String dbname)函数功能:在指定或缺省的数据源执行一条查询语句,同时返回结果集

  (4)exeeuteUpdate(String updateSQL),executeUpdate(String updateSQL,Stringdbname)i~i数功能:在指定或缺省数据源执行一条更新语句。

  (5)executeQuery(String queryString),executeQuery(String queryString,Stringdbname)函数功能:在指定或缺省的数据源,执行一条非LSQL标准的查询语句。

  (6)executeStatement(String stmt),executeStatement(String stmt,Stringdbname)函数功能:在指定或缺省的数据源,执行一条非LSQL标准的插入、删除、更新语句。

  (7)executeCreate(String createSQL),Public static boolean executeCreate (String createSQL, String dbname)函数功能:在指定或缺省的数据源,执行一条创建表语句。

  (8)executeDrop (String dropSQL),executeDrop(String dropSQL,String dbname)函数功能:在指定或缺省的数据源,执行一条表删除语句应用软件可以调用以上方法来操作异构数据库DBPEER提供所有SQL语言转换功能 当一个外部应用调用JUDB的DBPEER中的方法时,无需考虑数据库特性,只需应用标准LSQL语言:且DBPEER对外提供非常丰富的函数,可执行各种SQL操作

  4 结束语

  中间件发展日趋成熟,为计算机网络发展注入了新鲜血液 中间件简化了应用程序开发难度,提高了软件开发可重复性,节省资源配置,解决了大部分操作系统与应用软件之间异构问题,使分布式结构体系得到推广和发展 本文从运用中间件建立三层体系结构着手,介绍了中间件和三层体系结构特点,提出了在跨数据库系统中的应用方式。同时,设计了一个基于J2EE的解决异构数据库互操作问题的中间件方案,具有很强灵活性,并有很高的可扩展性和可重用性。