| ÍøÕ¾Ê×Ò³ | ÆÚ¿¯ÖªÊ¶ | ÂÛÎÄ×ÊÁÏ | Îĸ彻Ò× | ÆÚ¿¯·ç²É | ÂÛÎÄ·¢±í | ÆÚ¿¯¼ÓÃË | ÁªÏµ·½Ê½ | ÆÚ¿¯ÂÛ̳ | ÁôÑÔ°å | ·± ów | 
ÄúÏÖÔÚµÄλÖ㺠ÖÐÎÄÆÚ¿¯·¢±íÍø >> ÂÛÎÄ×ÊÁÏ >> ¼ÆËã»ú >> ¼ÆËã»úÓ¦Óà>> ÎÄÕÂÕýÎÄ
ר Ìâ À¸ Ä¿
ÈÈ ÃÅ ÎÄ ÕÂ
ÍÆ ¼ö ÎÄ ÕÂ
Ïà ¹Ø ÎÄ ÕÂ
ûÓÐÏà¹ØÎÄÕÂ
Òì¹¹Êý¾Ý¼¯³ÉϵͳµÄÓ¦ÓÃģʽÓë¼¼ÊõʵÏÖ    ÈÈ     ¡ï¡ï¡ï
Òì¹¹Êý¾Ý¼¯³ÉϵͳµÄÓ¦ÓÃģʽÓë¼¼ÊõʵÏÖ
×÷ÕߣºÑîºêÓ¢1ÁÖ¡­ ÎÄÕÂÀ´Ô´£ºÎ¢µç×ÓѧÓë¼ÆËã»ú µã»÷Êý£º ¸üÐÂʱ¼ä£º2006-12-15

Òì¹¹Êý¾Ý¼¯³ÉϵͳµÄÓ¦ÓÃģʽÓë¼¼ÊõʵÏÖ

ÑîºêÓ¢1ÁÖ³¤ËÉ2

£¨1Öйú¿ÆÑ§ÔºÑо¿ÉúÔº  ±±¾©ÊÐʯ¾°É½ÇøÓñȪ·19ºÅ¼× 100049£¬ 2±±¾©ÊÐÌìÏãÔ°ÉúÎï¿Æ¼¼ÓÐÏÞ¹«Ë¾ ±±¾©Êг¯ÑôÇøÔ£Ãñ·12ºÅÖйú¹ú¼Ê¿Æ¼¼»áÕ¹ÖÐÐÄB×ù905  100029£©

ÕªÒª£ºËæ×ÅWebµÄ²»¶Ï·¢Õ¹£¬³öÏÖÁËÐí¶àеÄÊý¾ÝÐÎʽ£¬ÈçºÎ½«ÕâЩÒì¹¹µÄÊý¾Ý¼¯³ÉÆðÀ´£¬ÒѳÉΪµ±Ç°Ò»¸öÊ®·ÖÈÈÃŵϰÌâ¡£Ê×ÏȽéÉÜÁËÊý¾ÝÒì¹¹ÐÔµÄÖ÷Òª±íÏÖ¡¢¼¯³ÉÄѵ㣻Ȼºó¼òµ¥½éÉÜÁËĿǰÒì¹¹Êý¾Ý¼¯³ÉµÄÒ»°ã¿ò¼Ü£¬×îºóÌá³öÁËÒ»ÖÖ»ùÓÚXMLµÄÒì¹¹Êý¾Ý¼¯³É·½°¸¡£

¹Ø¼ü´Ê£ºÒì¹¹Êý¾Ý£¬Êý¾Ý¼¯³É£¬¼¯³Éϵͳ

Applying Model and Technological

Research about Heterogeneous Data Integrating System

Yang Hong-ying1 Lin Chang-song2

(1 the Graduate School of the Chinese Academy of Sciences  No.19 jia,Yuquan Street, Shijingshan District, BEIJING 100049;2 Beijing Tianxiangyuan Biology Scientific Co.,Ltd, No12,Yumin Road,Chaoyang District ,China

International Scientific Meeting Center  B-905)

Abstract£ºWith the development of Web technology, many kinds of new data format have appeared. The ways of how to integrate these heterogeneous data have been a hot issue.This paper firstly introduced the main representation of heterogeneous data and the hard issues of heterogeneous data integration. In succession, it simply discussed the common framework of present heterogeneous data integration. At last, a proposal of heterogeneous data integration based on XML is given.

Keywords£ºheterogeneous data, data integration, integration system

 

1.       ÒýÑÔ

Ëæ×ÅÍøÂç¼¼ÊõµÄÍÆ¹ãºÍÆÕ¼°£¬ÍøÂçÉϵÄÐÅϢѸÃÍÔö¼Ó£¬³ÉΪÁËÒ»¸ö¾Þ´óµÄÐÅÏ¢¿â¡£Õâ¸öÐÅÏ¢¿âÓɳÉǧÉÏÍò¸öÒì¹¹µÄÊý¾ÝÔ´×é³É£¬ÆäÖмÈÓд«Í³µÄÊý¾Ý¿âϵͳ¡¢Îļþϵͳ£¬ÓÖÓÐWebÉÏÓ¦Óù㷺µÄHTML¡¢XMLµÈ°ë½á¹¹»¯ÐÅϢϵͳ¡£µ«ÓÉÓÚÆ½Ì¨²îÒì¡¢Êý¾Ý¿â¼¼ÊõÒÔ¼°Í¨ÐÅЭÒéµÈ·½ÃæµÄ²»Í¬£¬Ê¹¸÷Êý¾ÝÔ´¼äµÄ»¥²Ù×÷±äµÃ¸´ÔÓÓÖÀ§ÄÑ£¬´Ó¶øÊ¹ËüÃdzÉΪÐÅÏ¢¹Âµº¡£ÈçºÎ¸üºÃµØÀûÓÃÍøÂçÉÏÕâЩÊý¾ÝÐÅÏ¢£¬ÒѳÉΪÈËÃÇÈÕÒæ¹ØÐĵÄÎÊÌâ¡£ÔÚÕâÖÖ±³¾°Ï£¬Òì¹¹Êý¾Ý¼¯³ÉϵͳÊܵ½Ô½À´Ô½¶àµÄÈ˵ÄÖØÊÓ£¬Õâ·½ÃæµÄÑо¿Ò²³ÉΪµ±Ç°µÄÑо¿Èȵ㡣

ÔçÆÚµÄÒì¹¹Êý¾ÝÔ´¼¯³ÉϵͳµÄʵÏÖ¶à²ÉÓöàÊý¾Ý¿â¼¯³É¼¼Êõ¡£¶àÊý¾Ý¿â¼¯³Éϵͳ֧³ÖÓû§Ê¹Óõ¥Ò»Êý¾Ý¶¨ÒåºÍ²Ù×÷ÓïÑÔ£¬Í¬Ê±·ÃÎʶà¸ö¶ÀÁ¢µÄÊý¾ÝÔ´¡£´ú±íÐԵĶà¿âϵͳÓÉÃÀ¹úÆÕ¶È´óѧ¿ª·¢µÄInterBase[1]ºÍHP¹«Ë¾¿ª·¢µÄPegasus[2]¡£¹úÄÚÓж«±±´óѧÊý¾Ý¿âÑо¿ÊÒ¿ª·¢µÄPolyBase[3]ºÍSCOPEϵͳÒÔ¼°±±¾©Àí¹¤´óѧµÄUUHDBϵͳµÈ£¬ÕâЩϵͳ¶à²ÉÓöÔÏóÄ£ÐÍ×÷ΪÊý¾Ý¼¯³ÉÄ£ÐÍ¡£

È»¶ø£¬Ëæ×Å·Ö²¼Òì¹¹¼ÆËã»·¾³Ï»¥²Ù×÷ÐÔµÄÑо¿ºÍInternet¼¼ÊõµÄ·¢Õ¹£¬¶àÊý¾Ý¿âµÄ¼¯³É·½·¨¼ºÎÞ·¨ÊÊÓ¦ÈËÃÇ»ñÈ¡¸ü¶à¡¢¸üÐÂÊý¾ÝµÄÐèÒª¡£ÏÖÔÚµÄÒì¹¹Êý¾Ý¼¯³Éϵͳ³ýÁËÒªÇóÄܹ»¼¯³É¾ßÓйæÔò½á¹¹(well_structured)µÄÊý¾ÝÖ®Í⣬»¹ÐèÒª¼¯³ÉÀ´×ÔwwwµÈÊý¾ÝÔ´µÄ°ë½á¹¹»¯(semi_structured)Êý¾Ý[4]£»ÒªÇó²»½öÄܼ¯³É´«Í³Êý¾Ý£¬¶øÇÒÄܼ¯³É¶àýÌåÊý¾Ý£»ÒªÇó²»½öÄܼ¯³É¼ºÓÐÊý¾ÝÔ´ÖеÄÊý¾Ý£¬¶øÇÒÄܼ¯³ÉËæÊ±¼ÓÈëµÄÐÂÊý¾ÝÔ´ÖеÄÊý¾Ý¡£¶øÕâЩ¶¼ÊÇÔçÆÚ²ÉÓöàÊý¾Ý¿â¼¯³É¼¼ÊõËù´ï²»µ½µÄ¡£

1998Äê2Ô£¬W3C¶¨ÖƵÄXML(Extensible Markup Language)±ê׼Ϊ½â¾öÕâЩ¹Ø¼ü¼¼ÊõºÍ²»×ãÌṩÁËÐÂµÄÆõ»ú¡£XML¾ßÓÐÄÚÈݵÄ×ÔÃèÊöÐÔ¡¢¿çƽ̨ÐÔ¡¢¿ÉÀ©Õ¹ÐÔµÈÌØµã£¬ÎªÊý¾Ý·ÃÎʺͽ»»»ÌṩÁËÒ»ÖÖеÄģʽ£¬Ê¹ÃèÊö¸÷ÖÖ¸ñʽµÄÊý¾Ý³ÉΪ¿ÉÄÜ¡£

±¾ÎÄÌá³öÁËÒ»ÖÖ»ùÓÚXMLµÄÒì¹¹Êý¾Ý¼¯³É·½°¸£¬ÓëÆäËûÒì¹¹Êý¾Ý¼¯³ÉϵͳÏà±È£¬Ëü×î´óµÄÌØµãÔÚÓÚ£ºÍ¨¹ýÓ¦ÓÃXML¼°ÆäÏà¹Ø¼¼Êõ£¬¿É¹ã·º¼¯³É²»Í¬Êý¾Ý¸ñʽµÄÊý¾ÝÔ´£¬´Ó¶øÄܶԽṹ»¯ºÍ°ë½á¹¹»¯Êý¾Ý¶¼ÓнϺõÄÖ§³Ö£¬ÌåÏÖÁËϵͳµÄÁé»îÐÔ¡¢¿ÉÀ©Õ¹ÐÔµÈÌØÐÔ¡£

2.       Òì¹¹Êý¾Ý¼¯³É

Òì¹¹Êý¾Ý¼¯³ÉµÄÄ¿µÄ¾ÍÊÇÒª½«»¥Ïà¹ØÁªµÄ·Ö²¼Ê½Òì¹¹Êý¾ÝÔ´¼¯³Éµ½Ò»Æð£¬Ê¹Óû§Äܹ»ÒÔ͸Ã÷µÄ·½Ê½·ÃÎÊÕâЩÊý¾ÝÔ´²¢Äܹ»ÒԵʹú¼Û¡¢¸ßЧÂʵÄʹÓÃÕâЩÒì¹¹Êý¾Ý¡£Òì¹¹Êý¾Ý¼¯³ÉϵͳÌṩÁ˵ײãÊý¾ÝÔ´´æ´¢Êý¾ÝµÄ¡°È«¾ÖÊÓͼ¡±£¬Ê¹Óû§²Ù×÷ËùÓÐÊý¾ÝÔ´¾ÍÏñ²Ù×÷Ò»¸öÊý¾ÝÔ´Ò»Ñù¡£Í¬Ê±£¬Òì¹¹Êý¾Ý¼¯³Éϵͳ»¹Ìṩȫ¾ÖÊÓͼµÄ¹ÜÀíÓëά»¤¡¢Ä£Ê½×ª»»Ó뼯³É¡¢È«¾Ö²éѯ´¦ÀíµÈ¹¦ÄÜ£¬Íê³É´Óʵ¼ÊÊý¾ÝÔ´µ½Í³Ò»µÄÊý¾ÝÔ´ÊÓͼµÄת»»£¬ÔÚÓ¦ÓÃϵͳÖг䵱Êý¾Ý×ÜÏßµÄ×÷Óá£

2.1.     Êý¾ÝÒì¹¹ÐÔµÄÖ÷Òª±íÏÖ

Ëæ×ÅÐÅÏ¢»¯½¨ÉèµÄ²»¶ÏÍÆ½ø£¬ÔÚÑ¡Ôñ´¦ÀíÊý¾Ý·½Ê½Ê±´æÔÚ×Åʱ¼äºÍ¿Õ¼äÉϵIJîÒ죬ʹµÃÎÒÃÇËùʹÓõÄÊý¾ÝԴǧ²îÍò±ð£¬Ö÷Òª±íÏÖÔÚÒÔϼ¸¸ö·½Ã棺

1)      ϵͳÒì¹¹£¬¼´Êý¾ÝÔ´ËùÒÀÀµµÄÒµÎñÓ¦ÓÃϵͳ¡¢Êý¾Ý¿â¹ÜÀíϵͳÄËÖÁ²Ù×÷ϵͳ֮¼äµÄ²»Í¬¹¹³ÉÁËϵͳÒì¹¹£»

2)        ģʽÒì¹¹£¬¼´Êý¾ÝÔ´Ôڴ洢ģʽÉϵIJ»Í¬¡£´æ´¢Ä£Ê½Ö÷Òª°üÀ¨¹ØÏµÄ£Ê½¡¢¶ÔÏóģʽ¡¢¶ÔÏó¹ØÏµÄ£Ê½ºÍÎĵµÇ¶Ì×ģʽµÈ¼¸ÖÖ£¬ÆäÖйØÏµÄ£Ê½£¨¹ØÏµÊý¾Ý¿â£©ÎªÖ÷Á÷´æ´¢Ä£Ê½¡£µ«ÊÇ£¬¼´±ãÊÇͬһÀà´æ´¢Ä£Ê½£¬ËüÃǵÄģʽ½á¹¹Ò²¿ÉÄÜ´æÔÚ×ŲîÒì¡£ÀýÈ磬²»Í¬µÄ¹ØÏµÊý¾Ý¹ÜÀíϵͳµÄÊý¾ÝÀàÐ͵ȷ½Ãæ²¢²»ÊÇÍêȫһÖµģ¬ÈçDB2¡¢Oracle¡¢Sybase¡¢SQL ServerµÈ¡£

2.2.       Òì¹¹Êý¾Ý¼¯³ÉÑо¿µÄÎÊÌâ

ÔÚÒì¹¹Êý¾Ý¼¯³ÉϵͳÖУ¬ÈçºÎÓÐЧ½â¾öÊý¾Ý·Ö²¼µÄÒì¹¹ÐÔ£¬ÊµÏÖ¿Í»§·ÃÎʵÄ͸Ã÷ÐÔ£¬Í¬Ê±»¹Òª±£³Ö¾Ö²¿ÏµÍ³µÄ×ÔÖÎÐÔ£¬ÊÇϵͳ¿¼ÂǵÄÖ÷ÒªÎÊÌâ¡£

£¨1£©Òì¹¹ÐÔ

Òì¹¹ÐÔÊÇÖ¸Êý¾Ý¼¯³ÉϵͳÖÐÁ½¸öÊý¾ÝÔ´µÄ²îÒì³Ì¶È¡£Òì¹¹·¢ÉúÔÚ²»Í¬µÄ¼¶±ð¡£×îµ×²ãÊÇÓ²¼þƽ̨¡¢²Ù×÷ϵͳºÍÍøÂçЭÒéµÄÒì¹¹¡£Æä´ÎÊDz»Í¬µÄ±à³ÌÓïÑÔºÍÊý¾ÝÄ£ÐÍ£¬ÒÔ¼°¶ÔÏàͬµÄ¸ÅÄͬµÄÀí½âºÍÃèÊö¡£ÓÉÓÚÿ¸öÊý¾ÝÔ´¶¼ÓÐ×Ô¼ºµÄÃèÊöÊý¾ÝµÄ·½Ê½£¬ËùÒÔ£¬Ã¿¸öÊý¾ÝÔ´ÖжÔÏàËÆµÄÓïÒåµÄÃèÊö¿ÉÄܲ»Í¬£¬¿ÉÄÜÒýÆð¸÷ÖÖÓïÒå³åÍ»¡£

£¨2£©Í¸Ã÷ÐÔ

͸Ã÷ÐÔÓëϵͳ½â¾öÒì¹¹ÐԵij̶ÈÏà¹Ø£¬¾ö¶¨ÏµÍ³µÄ¹¦ÄܺÍʹÓõķ½±ãÐÔ¡£°üÀ¨Æ½Ì¨Í¸Ã÷ÐÔ¡¢ÏµÍ³Í¸Ã÷ÐÔ¡¢Êý¾ÝԴ͸Ã÷ÐԵȵȡ£

ƽ̨͸Ã÷ÐÔÊÇÖ¸Òþ²ØÁËÓ²¼þƽ̨¡¢²Ù×÷ϵͳºÍͨѶЭÒéµÈ¸÷ÖÖÊý¾ÝÔ´Ëù»ùÓ򵀮½Ì¨¼äµÄ²îÒì¡£¶ÔÓÚÓû§À´½²£¬Ã¿¸öÊý¾ÝÔ´ÏñÔËÐÐÔÚͬһ¸öÓ²¼þ/Èí¼þƽ̨ÉÏÒ»Ñù¡£

ϵͳ͸Ã÷ÐÔÊÇÖ¸µ±Êý¾ÝÔ´µÄÊý¾Ý¹ÜÀíϵͳ¡¢Êý¾ÝÄ£ÐͺÍÓïÑÔ¼äµÄ²îÒì±»Òþ²ØÊ±.¶ÔÓû§À´½²£¬Ã¿¸öÊý¾ÝÔ´ÏñÊÇÓÃͬһ¸öÊý¾ÝÄ£ÐÍÀ´ÃèÊöµÄ¡¢ÓÉͬһ¸öÊý¾Ý¹ÜÀíϵͳºÍÊý¾ÝÓïÑÔÀ´¹ÜÀíºÍά»¤µÄ¡£

Êý¾ÝԴ͸Ã÷ÐÔÊÇÖ¸Òþ²ØÁËÊý¾ÝÔ´µÄÃèÊöÐÅÏ¢£¬ÓÉϵͳ½â¾öÖîÈ磺Êý¾ÝµÄ´æ´¢Î»Öã¬Êý¾ÝÈçºÎ±»²éѯµÄÎÊÌâ¡£Óû§Ëù¼ûµ½µÄÖ»ÊÇÒ»¸öÂß¼­Êý¾ÝÔ´¡£

£¨3£©×ÔÖÎÐÔ

×ÔÖÎÐÔÖ¸µÄÊÇÒ»¸öÊý¾ÝÔ´ÊǶÀÁ¢ÓÚÆäËüÊý¾ÝÔ´£¬Ò²¶ÀÁ¢ÓÚ¼¯³ÉϵͳµÄÐÔÖÊ¡£Ö÷ÒªÓÐÈýÀà×ÔÖΣº

1£©Éè¼Æ×ÔÖΣºÊý¾ÝÔ´ÔÚÊý¾ÝÄ£ÐÍ¡¢Êý¾ÝÔªËØµÄÃüÃû¡¢Êý¾ÝµÄÓïÒå½éÉܼ°Ô¼ÊøµÈ·½ÃæÊǶÀÁ¢µÄ¡£

2£©Í¨ÐÅ×ÔÖΣºÊý¾ÝÔ´¶ÀÁ¢¾ö¶¨¸ø¼¯³ÉϵͳÖÐÆäËü×é¼þÌṩʲôÐÅÏ¢ºÍ¸ø×é¼þ·¢Ê²Ã´ÇëÇó¡£

3£©Ö´ÐÐ×ÔÖΣºÊý¾ÝÔ´¶ÀÁ¢Ö´Ðк͵÷¶ÈÊäÈëÇëÇó¡£

3.       Òì¹¹Êý¾ÝÔ´¼¯³ÉµÄ»ù±¾Ä£Ê½

ĿǰÓкܶàÖÖ¼¯³ÉÒì¹¹Êý¾ÝÔ´µÄÌåϵ½á¹¹£¬Ö÷ÒªµÄÒ²ÊÇ×î³£¼ûµÄÓÐÈýÖÖ£ºÁª°îÊý¾Ý¿â¡¢MediationºÍÊý¾Ý²Ö¿â¡£ÎÄÏ×[5]°ÑÕâÈýÖÖÌåϵ½á¹¹·Ö³ÉÁ½ÀࣺһÀàÊÇÐéÄâÊÓͼ·¨£¬ÁíÒ»ÀàÊÇÎﻯ·½·¨£¬¼´Êý¾Ý²Ö¿â·¨¡£

£¨1£©ÐéÄâÊÓͼ·¨

ÐéÄâÊÓͼ·¨Êǹ¹ÔìÒ»¸ö»ò¶à¸ö¡°Öмäģʽ¡±£¬Ä£Ê½ÊÇÓøø¶¨Êý¾ÝÄ£ÐͶԾßÌåÊý¾ÝµÄÃèÊö£¬·´Ó³Ò»¸öµ¥Î»µÄ¸÷ÖÖÊÂÎïµÄ½á¹¹¡¢ÊôÐÔ¡¢ÁªÏµºÍÔ¼Êø¡£Óû§µÄ²éѯ»ùÓÚÖмäģʽ£¬²»±ØÖªµÀ¸÷¸öÊý¾ÝÔ´µÄÌØµã£¬¶øÊý¾ÝÈÔ±£´æÔÚ¾Ö²¿Êý¾ÝÔ´¡£ÏµÍ³½«»ùÓÚÖмäģʽµÄ²éѯת»»ÎªÕë¶Ô¸÷¾Ö²¿Êý¾ÝԴģʽµÄ²éѯ£¬½«Óû§µÄ²éѯ·Ö½â³É¶Ô¸÷¸öÊý¾ÝÔ´µÄ×Ó²éѯ£¬²¢½«¸÷×Ó²éѯ·µ»ØµÄÊý¾Ý×ÛºÏÆðÀ´µÃµ½²éѯ½á¹û¡£ÆäÓŵãÊÇÊý¾Ý²»ÐèÈßÓ࣬²¢Äܱ£Ö¤ÊÇ×îеġ£ÐéÄâÊÓͼ·¨ÊÊÓÃÓÚÊý¾ÝÔ´ÊýÄ¿¶à£¬¾Ö²¿Êý¾ÝÔ´×ÔÖÎÐԺܸߣ¬¼¯³Éϵͳ¶ÔÊý¾ÝԴûÓпØÖÆÇÒÊý¾Ý¸üÐÂÆµ·±µÄInternet»·¾³ÖС£ÔÚÐéÄâÊÓͼ·½·¨ÖÐÊý¾Ý¼¯³Éϵͳ¿ÉÄÜ»ùÓÚ²»Í¬µÄÊý¾ÝÄ£ÐÍÀ´¹¹Ô죬ÔçÆÚµÄ´ó¶àÊýϵͳ¶¼»ùÓÚ¹ØÏµÊý¾ÝÄ£ÐÍÀ´¹¹Ôì[6]¡£Ëæ×ÅWebµÄ²»¶Ï·¢Õ¹£¬Ô½À´Ô½¶àµÄÑо¿½«»ùÓÚ°ë½á¹¹»¯Êý¾ÝÄ£ÐÍÀ´¹¹ÔìÊý¾Ý¼¯³Éϵͳ¡£

²ÉÓÃÐéÄâÊÓͼ·¨¼¯³ÉÊý¾ÝÔ´Ö÷ÒªÓÐÁ½ÖÖÌåϵ½á¹¹£ºÒ»ÖÖÊÇÁª°îÊý¾Ý¿âϵͳ£¬ÁíÒ»ÖÖÊÇMediatedϵͳ¡£

Áª°îÊý¾Ý¿âϵͳ(Fedrated Database System, FDBS)ÊÇÓɲÎÓëÁª°îµÄ°ë×ÔÖεÄÊý¾Ý¿âϵͳ×é³É£¬Ä¿µÄÊÇʵÏÖÊý¾Ý¿âϵͳ¼ä²¿·ÖÊý¾ÝµÄ¹²Ïí[7]¡£Áª°îÖеÄÿ¸öÊý¾Ý¿âµÄ²Ù×÷ÊǶÀÁ¢ÓÚÆäËüÊý¾Ý¿âºÍÁª°îµÄ¡£Ö®ËùÒԽС°°ë×ÔÖΡ±ÊÇÒòΪÁª°îÖеÄËùÓÐÊý¾Ý¿â¶¼Ìí¼ÓÁ˱˴˷ÃÎʵĽӿڡ£Èçͼ1Ëùʾ£º

 

 

 

 

 

 

 

 

 

 

DB1

DB2

DB5

DB3

DB4

ͼ1 Áª°îÊý¾Ý¿âÌåϵ½á¹¹µÄÀý×Ó

ÖнéÆ÷£¨Mediator£©

²éѯ

½á¹û

ÔªÊý¾Ý

°ü×°Æ÷

²éѯ

½á¹û

°ü×°Æ÷

²éѯ

½á¹û

²éѯ

½á¹û

Êý¾ÝÔ´1

²éѯ

½á¹û

Êý¾ÝÔ´n

¡­¡­

ͼ2 MediatedϵͳÌåϵ½á¹¹

 

 

 

 

 

 

 

 

 

 

 

 

 


Mediatedϵͳͨ¹ýÌṩËùÓÐÒì¹¹Êý¾ÝÔ´µÄÐéÄâÊÓͼÀ´¼¯³ÉËüÃÇ£¬ÕâÀïµÄÊý¾ÝÔ´¿ÉÒÔÊÇÊý¾Ý¿â¡¢ÒŲúϵͳ¡¢WebÊý¾ÝÔ´µÈµÈ¡£¸ÃϵͳÌṩ¸øÓû§Ò»¸öÈ«¾Öģʽ(Ò²½Ðmediatedģʽ)£¬Óû§Ìá½»µÄ²éѯÊÇÕë¶Ô¸ÃģʽµÄ£¬ËùÒÔÓû§²»±ØÖªµÀÊý¾ÝµÄλÖá¢Ä£Ê½¼°·ÃÎÊ·½·¨¡£ÈçÉÏҳͼ2Ëùʾ¡£

£¨2£©Îﻯ·½·¨

Îﻯ·½·¨Ò²¾ÍÊÇÊý¾Ý²Ö¿â·¨[8]£¬¸Ã·½·¨ÐèÒª½¨Á¢Ò»¸ö´æ´¢Êý¾ÝµÄ²Ö¿â£¬ÓÉETL (extract, transform, and load)¹¤¾ß¶¨ÆÚ´ÓÊý¾ÝÔ´¹ýÂËÊý¾Ý£¬È»ºó×°ÔØµ½Êý¾Ý²Ö¿â£¬¹©Óû§²éѯ¡£ËùÓеIJéѯ¶¼Õë¶ÔÊý¾Ý²Ö¿âÖеÄÊý¾Ý£¬Êý¾Ý²Ö¿â±ØÐëËæÊý¾ÝµÄ±ä»¯¶øËæÊ±¸üС£Æä×î´óÓŵãÊÇÄܱ£Ö¤²éѯµÄÐÔÄܵĿìËÙ¸ßЧ£¬È±µãÊÇÊý¾Ýȱ·¦Ê±Ð§ÐÔ£¬ËùÓеÄÊý¾Ý¶¼ÐèÒªÈßÓ࣬ÇÒʵÏÖÊý¾Ýͬ²½·Ç³£À§ÄÑ¡£

ÓëÐéÄâÊÓͼ·¨ÏàËÆµÄÊÇÓÃÊý¾Ý²Ö¿â¼¯³ÉÒì¹¹Êý¾ÝÔ´Ò²ÐèҪͳһµÄÊý¾ÝÊÓͼ£¬µ«²»Í¬µÄÊÇETL¹¤¾ß¹ýÂ˵õ½µÄÊý¾Ý´æ´¢µ½²Ö¿âÖС£¶øÓ봫ͳµÄÊý¾Ý¿â²»Í¬µÄÊÇÊý¾Ý²Ö¿âÖÐÖ÷Òª´æ´¢µÄÊÇÀúÊ·ºÍ»ã×ÜÊý¾Ý£¬ÓÃÓÚ¾ö²ßÖ§³Ö£¬Ö÷Òª¹©·ÖÎö»òÖ´ÐеÈÈËԱʹÓ㬶øÇÒΪ±ÜÃâÊý¾Ý²Ö¿âÓëÊý¾ÝÔ´ÖÐÊý¾Ý³öÏÖ²»Ò»Ö£¬Í¨³£²»ÔÊÐíÓû§¶ÔÊý¾Ý²Ö¿â½øÐиüС£

Êý¾Ý²Ö¿â·¨Ìåϵ½á¹¹£¬¼ûͼ3Ëùʾ£º

Êý¾Ý²Ö¿â

Óû§²éѯ

½á¹û

¼¯³ÉÆ÷

ÔªÊý¾Ý

ETL¹¤¾ß

ETL¹¤¾ß

Êý¾ÝÔ´1

Êý¾ÝÔ´n

¡­¡­¡­¡­¡­¡­

ͼ3 Êý¾Ý²Ö¿âÌåϵ½á¹¹

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


4.       ϵͳµÄʵÏÖ·½°¸

XML£¨Extensible Markup Language£¬¿ÉÀ©Õ¹±ê¼ÇÓïÑÔ£©ÊÇÒ»¸ö¾«¼òµÄSGML£¬ÓÉW3CÓÚ1998Äê2Ô·¢²¼µÄÒ»ÖÖ±ê×¼¡£XMLÊÇÒ»ÖÖ°ë½á¹¹»¯µÄÊý¾ÝÄ£ÐÍ£¬¿ÉÒÔÓÃÀ´ÃèÊö²»¹æÔòµÄÊý¾Ý£¬¼¯³ÉÀ´×Ô²»Í¬Êý¾ÝÔ´µÄÊý¾Ý¡£XMLµÄÖ÷ÒªÌØµãÓУº

1)       ¸ßЧÇÒ¿ÉÀ©Õ¹ÐÔ¡£ËüÖ§³Ö¸´ÓÃÎĵµÆ¬¶Ï£¬Ê¹ÓÃÕß¿ÉÒÔ·¢Ã÷ºÍʹÓÃ×Ô¼ºµÄ±êÇ©£¬Ò²¿ÉÒÔÓëËûÈ˹²Ïí£¬¿ÉÑÓÉìÐԴ󣬿ÉÒÔ¶¨ÒåÎÞÏÞÁ¿µÄÒ»×é±ê¼Ç£¬Õë¶Ô²»Í¬µÄϵͳ¡¢³§ÉÌÌṩ¸÷¾ßÌØÉ«µÄ¶ÀÁ¢½â¾ö·½°¸¡£

2)       ½á¹¹ÐÔ¡£XML½«Êý¾ÝºÍÏÔʾÏà·ÖÀë¡£Ëü°ÑÎĵµµÄÈýÒªËØ¼´Êý¾Ý¡¢½á¹¹ºÍÏÔʾ·½Ê½¶ÀÁ¢¿ªÀ´£¬·Ö±ð´¦Àí¡£Ê×ÏȰÑÏÔʾ¸ñʽ´ÓÊý¾ÝÄÚÈÝÖжÀÁ¢³öÀ´£¬±£´æÔÚÑùʽÎļþ£¨CSS/XSL£©ÖУ¬ÕâÑù¶ÔÓÚʹÓÃͬһ¸öÎļþµÄ²»Í¬Óû§£¬¿ÉÒÔ¸ù¾Ý²»Í¬µÄÐèÒªÒÔ²»Í¬µÄ·½Ê½ÏÔʾ£¬Ö»ÒªÐÞ¸ÄÑùʽ±í¾Í¿ÉÒԸıäÏÔʾµÄ·½Ê½¡£

3)       ×ÔÃèÊöÐÔ¡£XMLÎļþͨ³£°üº¬Ò»¸öÎĵµÀàÐÍÉùÃ÷£¨DTD/Schema£©£¬Òò¶øÊÇ×ÔÃèÊöµÄ¡£²»½öÈËÄܶÁ¶®XMLÎļþ£¬¼ÆËã»úÒ²ÄÜ´¦Àí¡£XML±íʾÊý¾ÝµÄ·½Ê½ÕæÕý×öµ½¶ÀÁ¢ÓÚÓ¦Ó㬶ÀÁ¢ÓÚÆ½Ì¨¡£ËùÒÔXMLÎĵµ±»¿´×÷ÊÇÎĵµµÄÊý¾Ý¿â»¯ºÍÊý¾ÝµÄÎĵµ»¯¡£

ÓÉÓÚXMLÊÇÒ»ÖÖ°ë½á¹¹»¯µÄÊý¾ÝÄ£ÐÍ£¬ÓÃËü¿ÉÒÔÃèÊö¸÷ÖÖ¸÷ÑùµÄÊý¾Ý°üÀ¨½á¹¹»¯¡¢°ë½á¹¹»¯ºÍ·Ç½á¹¹»¯Êý¾Ý£¬Òò´ËÀûÓÃXMLÄܹ»ºÜºÃµÄ½â¾öÒì¹¹Êý¾ÝÖ®¼äµÄ¼¯³ÉÎÊÌâ[9]¡£»ùÓÚÒÔÉϵÄÀíÂÛÎÒÃÇÌá³öÁËÒ»ÖÖ»ùÓÚXMLµÄÒì¹¹Êý¾ÝÔ´¼¯³É·½°¸£¬Í¼4¼´Îª¸Ã·½°¸µÄ×ÜÌå¿ò¼Üͼ¡£

 

 

ͼ4 »ùÓÚXMLµÄÒì¹¹Êý¾ÝÔ´¼¯³É¹¹¼Ü

WEBä¯ÀÀÆ÷

XMLÎĵµ

Data Model

Transform

²éѯ

ת»»Æ÷

½á¹û

ת»»Æ÷

Transform

²éѯ

ת»»Æ÷

½á¹û

ת»»Æ÷

Transform

²éѯ

ת»»Æ÷

½á¹û

ת»»Æ÷

Data source 1

Data source 2

Data source 3

Style Sheet

¼äÖмä¼þ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


ϵͳ²ÉÓÃB/S£¨Browser/Server£¬ä¯ÀÀÆ÷/·þÎñÆ÷£©½á¹¹£¬ËüÊÊÓÃÓÚ¹ãÓòÍø»·¾³£¬Äܹ»Ö§³Ö¸ü¶àµÄÓû§£¬¿ÉÒÔ¸ù¾Ý·ÃÎÊÁ¿¶¯Ì¬µÄÅäÖÃWeb·þÎñÆ÷¡¢Ó¦Ó÷þÎñÆ÷£¬ÒÔ±£Ö¤ÏµÍ³µÄÐÔÄÜ£¬¿Í»§¶ËÖ»ÐèÒªÓбê×¼µÄä¯ÀÀÆ÷£¬ÕâÑùϵͳÀ©Õ¹Î¬»¤¼òµ¥£¬´úÂë¿ÉÖØÓÃÐԺá£

Óû§¶ÔÓÚÐÅÏ¢µÄ·ÃÎʺͲÙ×÷²¢²»ÊÇÖ±½Ó×÷ÓÃÓÚ¸÷¸öÊý¾ÝÔ´ÉÏ£¬¶øÊÇͨ¹ýÒ»¸öÖмä¼þ²ã¼ä½ÓÀ´ÊµÏֵġ£Ê×ÏÈ£¬Óû§Í¨¹ýWebä¯ÀÀÆ÷Ìá³ö²éѯÇëÇó£¬ÏµÍ³½«Óû§µÄ²éѯÇëÇó×éÖ¯³ÉXML²éѯÎĵµ£¬Ìá½»¸øXML¼¯³ÉÖмä¼þ£¬Öмä¼þ²Î¿¼¹«¹²Êý¾ÝÄ£ÐÍ£¨Data Model£©£¬¸Ã¹«¹²Ä£ÐͲÉÓÃXML×÷ΪÃèÊöÓïÑÔ£¬ÓÃÓÚÃèÊöÊý¾ÝÔ´µÄÄÚ²¿½á¹¹£¬È·¶¨Óû§¼¯³ÉÊÓͼµ½¸÷¸öÊý¾ÝÔ´µÄÓ³É䣬½«»ùÓÚ¼¯³ÉÊÓͼµÄ²éѯת»»Îª¶Ô¸÷¸öÊý¾ÝÔ´µÄ×Ó²éѯ£¬Í¨¹ý²éѯת»»Æ÷´ÓXML×Ó²éѯÎĵµÖÐÌáÈ¡³öÆäÖеIJéѯ²ÎÊý£¬²¢×éÖ¯³É¸÷¸öÒì¹¹Êý¾ÝÔ´Äܹ»Ê¶±ðµÄ²éѯÓï¾ä¡£

¸÷¸öÊý¾ÝÔ´Ö´ÐвéѯÓï¾äÖ®ºó£¬½«µÃµ½µÄ½á¹ûͨ¹ý½á¹ûת»»Æ÷£¬×ª»¯Îª±ê×¼µÄXML×ÓÎĵµ£¬È»ºó½«À´×Ô¸÷Òì¹¹Êý¾ÝÔ´µÄXML×ÓÎĵµ¼¯³ÉΪһ¸öÍêÕûµÄXMLÎĵµ£¬·µ»Ø¸øWebä¯ÀÀÆ÷¡£µ±½á¹û·µ»Øµ½¿Í»§¶ËÖ®ºó£¬Óû§¿ÉÒÔ¸ù¾Ý¸÷×ÔµÄÐèÒª£¬Ñ¡Ôñ²»Í¬µÄÑùʽ±íÎļþ£¨Style Sheet£©¶Ô½á¹û½øÐÐÏÔʾ£¬°üÀ¨ÅÅÐò£¬¼ÆË㣬ɸѡµÈµÈ¡£ÆäÖнÏÖØÒªµÄ´úÂëʾÀýÈçÏ£º

1)²éѯxml

<?xml version="1.0" encoding="gb2312"?>

<query>

    <selectfield>

        <field name="ProjName" datasource="indebtproject" label="ÏîÄ¿Ãû³Æ" order="asc"/>

        <field name="HigherProjIDS" datasource="indebtproject" label="Éϼ¶ÏîÄ¿"/>

        <field name="ProtocolMoney" datasource="indebtproject" label="ЭÒé½ð¶î" format="money"/>

    </selectfield>

    <condition>

        <datequery name="ProtocolDate" datasource="indebtloan" label="ЭÒéÉúЧʱ¼ä" lower="2006-01-01">indebtproject.ProtocolMoney.ProtocolDate</datequery>

    </condition>

</query>

2)·ÃÎÊÊý¾ÝÔ´²¿·Ö´úÂ룬

public static javax.naming.Context getContext() throws ContextException

   {

      Context ctx = null;

      String server_url = "";

      try

      {

          server_url = SystemConfig.getValue("server_url");

          String server_user = SystemConfig.getValue("server_user");

          String server_pass = SystemConfig.getValue("server_pass");

          if (server_url.length() <= 0)

          {

              ctx = new InitialContext();

          }

         else

         {

           Properties properties = new Properties();

           properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");

           properties.put(Context.PROVIDER_URL, server_url);

           if(server_user == null)server_user = "";

           if (server_user.length() != 0)

           {

             properties.put(Context.SECURITY_PRINCIPAL, server_user);

             properties.put(Context.SECURITY_CREDENTIALS, server_pass == null ? "" : server_pass);

           }

           ctx = new InitialContext(properties);

         }

      }

      catch(NamingException ne)

      {

         throw new ContextException("000","can't get context from host:"+server_url);

      }

      return ctx;

   }

3)ת»»Æ÷²¿·Ö´úÂë Transform..javaÈçÏ£º

      Public Document  transform(RecordSet rs)

   {

   ResultSetMetaData rsmd = rs.getMetaData();

            //»ñÈ¡½á¹û¼¯µÄ±íÃû

            try

            {

                this.setTablename(rsmd.getTableName(1));

            }

            catch (Exception e)

            {

                System.out.println("Warning At RecordSet (" + e.getMessage() +

                                   ")");

            }

    while (rs.next())

            {

                record = new HashMap();

                for (int i = 0; i < numberOfColumns; i++)

                {

                    try

                    {

                        if(columnType[i] == Types.LONGVARBINARY ||

                           columnType[i] == Types.BÓÃLOB ||

                           columnType[i] == Types.CLOB ){

                            //Èç¹û×Ö¶ÎÀàÐÍÊÇCLOB BLOB »ò ImageÀàÐÍʱ£¬

                            //ÐèÒªÒÔInputStreamÈ¡³ö,ת»»³É×Ö·û´®

                            java.io.BufferedInputStream  in = new BufferedInputStream(rs.getBinaryStream(columnName[i]));

                            byte[] bytes = new byte[1024];

                            int endflag = 0;

                            StringBuffer sb = new StringBuffer();

                            do{

                                endflag = in.read(bytes);

                                sb.append(new sun.misc.BASE64Encoder().encode(bytes));

                            }while(endflag>0);

                            record.put(columnName[i], sb.toString());

                        }else{

                            record.put(columnName[i], rs.getString(columnName[i]));

                        }

                    }

                    catch (Exception e)

                    {

                        record.put(columnName[i], "");

                    }

                }

                vector.add(record);

            }

        }

      Document dom  createDocument(vector);

Return dom;

}

3¡¢Éú³ÉµÄxmlÎĵµ

<?xml version="1.0" encoding="gb2312"?>

<result>

    <row>

        <column name="ProjName"  value="1" />

        <column name="HigherProjIDS" value=¡±xweieuiyeu2435621¡±/>

        <column name="ProtocolMoney" value=¡¯23.00¡¯/>

    </row>

   ¡­¡­

</result>

   

5.       ×ܽáÓëÕ¹Íû

Ëæ×ÅÍøÂçʱ´úµÄµ½À´£¬¸÷ÖÖÒì¹¹Êý¾Ý²»¶ÏÓ¿ÏÖ£¬ÈçºÎ½«ÕâЩÒì¹¹µÄÊý¾Ý¼¯³ÉÆðÀ´¾Í³ÉΪһ¸öÆÈÇÐÐèÒª½â¾öµÄÎÊÌâ¡£¶øXMLµÄ³öÏÖÕý¿ÉÒÔ½â¾öÕâЩÎÊÌ⣬ËüÌṩÁËÒ»¸öÀíÏëµÄ»º³å²ã£¬Ê¹µÃÒì¹¹Êý¾ÝÔ´Ö®¼ä¿ÉÒÔ±£³Ö»¥Ïà͸Ã÷£¬²»ÔÙÐèÒªÖªµÀ¶Ô·½µÄÄÚ²¿´æ´¢¸ñʽ£¬Ä³¸öÊý¾ÝÔ´ÄÚ²¿µÄ±ä¸ü£¬Ò²²»»áÓ°ÏìÆäËûÊý¾ÝÔ´¡£»ùÓÚXMLµÄÊý¾Ý¼¯³ÉÎÊÌ⣬ÒѾ­³ÉΪÊý¾Ý¿âÑо¿ÁìÓòÖÐÒ»¸öÖØÒªµÄÑо¿·½Ïò¡£

»ùÓÚXMLµÄÒì¹¹Êý¾Ý¼¯³ÉϵͳËäÈ»ÔÚÒ»¶¨³Ì¶ÈÉϸĽøÁËÒÑÓз½·¨£¬µ«ÊÇÈÔÓÐÐí¶à¹¤×÷ÐèÒª½øÒ»²½½øÐУ¬ÀýÈçϵͳµÄ½¡×³ÐÔ¡¢°²È«ÐÔ»¹Ðè½øÒ»²½¿¼ÂÇ£»Ð§ÂÊÎÊÌâÐèÒª½øÒ»²½ÓÅ»¯£»ÒÔ¼°Êý¾ÝÔ´µÄ¸üУ¬±ØÐë¶ÔÊý¾ÝÔ´¼àÊÓÆ÷»úÖÆ½øÐÐÑо¿µÈµÈ¡£´ËÍ⣬Òì¹¹Êý¾Ý¼¯³ÉÊÇÒ»¸ö¸´ÔÓµÄÉæ¼°ÖªÊ¶ÁìÓòºÜ¹ãµÄÎÊÌ⣬±¾ÎÄÖ»ÔÚÒ»¶¨³Ì¶ÈÉϽâ¾öÁËÏÖ´æµÄ²¿·ÖÎÊÌ⣬»¹ÓÐһЩÎÊÌâûÓнâ¾ö¡£ÔÚ¼¯³ÉϵͳµÄÕûÌåÐÔÄÜ·½Ã棬ÈÔ´æÔÚ´¦ÀíЧÂʲ»¸ßµÈÎÊÌâ¡£

È»¶ø£¬¶ÔÓÚ½â¾öÓïÒå³åÍ»·½Ã棬±¾Ìå(Ontology)ÀíÂÛµÄÌá³öΪÕâÒ»ÎÊÌâµÄ½â¾öÌṩÁËеÄ˼Ïë¡£OntologyÊÇÒ»ÖÖÄÜÔÚÓïÒåºÍ֪ʶ²ã´ÎÉÏÃèÊöÐÅϢϵͳµÄ¸ÅÄîÄ£Ðͽ¨Ä£¹¤¾ß£¬ËüÄÜÓÃÀ´ÃèÊö¸ÅÄî¼°¸ÅÄîÖ®¼äµÄ¹ØÏµ£¬²¢ÄÜͨ¹ý¸ÅÄîÖ®¼äµÄ¹ØÏµÀ´ÃèÊö¸ÅÄîµÄÓïÒå¡£½ÏÖ®ÒÑÓÐÄ£ÐÍ£¬Ontology¶Ô¸ÅÄîµÄ¶¨Òå¸ü¼ÓÑϸñ¡¢¾«È·£¬¿ÉÒԽϺõĽâ¾öÓ