MAGICIAN
IS CASTOR
(Castor
JDO,Castor XML,魔术)
作者: 乐晨光 airwalker@263.net
(2002/3/18)
INDEX
1.INTRO
2.MAGICAL TOUCHING OF
3.MAGICAL TOUCHING OF
4.MAPPING
5.CONCLUSION
1.
INTRO
1.1
Before Intro
基于中间件体系的业务系统,一般是由 数据库管理系统(关系数据库,面向对象数据库等),数据事务处理系统(Enterprise
JavaBean),以及客户表现负责层(JSP,Servlet-基于WEB)这三方面构成;业务过程中,XML将是远程数据通信的格式。
其具体的运作过程为:
数据库管理系统,负责存储整个业务逻辑的所有永久数据,其类型可能是最流行的关系数据库,或是面向对象数据库或其它。数据事务处理系统(如EJB)根据其客户的业务需求调用,负责从数据库管理系统中读出数据,并将其转换成该管理系统的工作格式(譬如转换成OO对象)根据一定的事务规则进行业务处理,结果可能是将该转换对象重新存入数据库,或是把一些对象或数据传递给它的客户;注意这个客户或许是该系统的客户表现负责层(JSP,Servlet-基于WEB),也可能是远程的应用程序,当然也可能是别的数据事务处理系统。客户表现负责层(JSP,Servlet-基于WEB),负责WEB客户的页面输送,它可以把从数据事务处理系统获取的对象转换成XML数据,然后进一步利用XSL生成HTML页面传给WEB客户;它也可能将XML数据直接传给客户,由客户负责将其转换成别的格式(HTML,对象) 
关注以下几个过程:
1. 数据事务处理系统(如EJB)将从数据库管理系统查询的数据转换成系统特定的类对象,进行业务处理。系统需要将数据库逻辑(譬如关系数据库)根据一套映射规则定义成类,
并且把对数据库查询所获取的数据填充类生成对象。大都数来讲,关系数据库中表以及描述逻辑并不是很复杂,类似于编程语言中的结构(包含若干数据属性)。
2. 数据事务处理系统(如EJB)将类对象通过查询语句转换成数据库数据反返存入数据库管理系统。处理方式与上类似,可视为其逆过程)
3. 客户表现负责层(JSP,Servlet-基于WEB) 或是数据事务处理系统在业务过程中将Object转换成XML数据作为传输介质。系统要为该转换定义一个映射规则,特别还要处理面向对象的继承与组合规则的XML映射描述。
4. 客户应用程序将获取的XML数据重新转换成对象,作业务处理。处理方式与上类似,是一个逆过程)
这些过程由下图概括:
这个过程几乎存在于任何一个系统,数据载体映射规则在一个新的业务系统中都可能将被重定义。我们可以将这个映射规则反映在代码中,当然也可以放在一个脚本文件里。后者获取会有更大的重用性与易用性。这是将回是一个复用模块。
能否将 数据库数据,OO类对象,XML这3个当今应用最广泛的数据载体格式之间的互换映射 建立出一个通用的映射规则,形成复用框架,甚至达成标准,将会大大提高业务开发的效率。
1.2
Preface Of Castor
Castor是ExoLab Group下面的一个开放源代码的项目,它主要实现的是O/R映射功能。它主要API和数据接口为:JDO-like,
SQL, OQL, JDBC, LDAP, XML, DSML。它支持分布式目录事务处理和时间;提供处理XML、Directory、XADirectory的类库,提供从XML到JAVA类的转换机制。
Castor将以上所提的数据载体格式的映射转换规则搭成了一个应用框架:
Castor JDO负责数据库数据与OO Object的映射转换。
Castor XML负责XML数据与OO Object的映射转换。marshaller和unmarshaller负责对象和XML数据间的转换。
Castor
JDO (Java Data Objcet)
实现的是O/R映射,它最主要的功能可以直接将面向对象的类对象从关系数据库中读出或永久存取。JDO用户完全可以可将关系数据库以及SQL查询语句透明化,这将由JDO的O/R映射代劳。工作模式如下描述:






