Hµ D¬ng TuÊn,
Kü s Tin häc vµ ViÔn th«ng,
ViÖt kiÒu t¹i Ph¸p.§Þa chØ th ®iÖn tö : tuan.hd@wanadoo.fr
Tãm t¾tNh÷ng ghi chó cã tÝnh c¸ch tæng quan trong bµi nµy cã tham väng ph¸c häa mét khung c¶nh chung cho nh÷ng nghiªn cøu vµ ph¸t triÓn trong C«ng NghÖ Th«ng Tin (CNTT) trªn khÝa c¹nh xö lý ph©n t¸n, ë tÇm møc cña m¹ng toµn cÇu Internet.
§Ó n¾m b¾t khuynh híng tiÕn triÓn cña CNTT trong chiÒu híng Êy, nh÷ng ®iÒu c¬ b¶n cÇn thiÕt t×m hiÓu lµ : 1) ChuÈn CORBA, cho phÐp c¸c sù vËt tin häc ph©n t¸n céng t¸c ®îc víi nhau ; 2) ChuÈn XML, x¸c ®Þnh ng«n ng÷ giao diÖn cho m¹ng Internet, tæng qu¸t h¬n ng«n ng÷ HTML ; 3) Ng«n ng÷ Java, cho phÐp chØ viÕt ch¬ng tr×nh mét lÇn ®Ó nã ho¹t ®éng ®îc ë bÊt cø n¬i nµo ; vµ 4) C«ng nghÖ t¸c tö, c«ng nghÖ ®Ó thùc hiÖn trong t¬ng lai nh÷ng øng dông di ®éng vµ cã trÝ tuÖ. Bèn c«ng nghÖ nãi trªn ®ang trªn ®µ héi tô ®Ó thÓ hiÖn mét tæng hîp míi gi÷a tin häc vµ viÔn th«ng, vµ h×nh thµnh mét m« thøc míi trong ho¹t ®éng ph¸t triÓn m¹ng th«ng tin còng nh dÞch vô CNTT trong thêi ®¹i Internet.
Trong t¬ng lai kh«ng xa c¸c ®iÒu kiÖn sÏ héi ®ñ ®Ó cho phÐp cã nh÷ng øng dông tiªn tiÕn cña CNTT, mµ ®Æc tÝnh lµ dÔ dïng, ph©n t¸n vµ di ®éng trong ph¹m vi toµn cÇu. Cã thÓ tiªn ®o¸n lµ chóng sÏ ®Èy m¹nh nh÷ng thay ®æi trong sinh ho¹t kinh tÕ x· héi cña con ngêi nãi chung, vµ lao ®éng trÝ ãc nãi riªng, trªn ®µ khëi ®éng bëi Internet. ' T¸c tö di ®éng' lµ mét trong nh÷ng c«ng cô ®Ó thùc hiÖn nh÷ng øng dông nãi trªn, b»ng c¸ch kÕt hîp nh÷ng thµnh qu¶ thõa hëng tõ c¸c nghiªn cøu vµ ph¸t triÓn vÒ xö lý ph©n t¸n vµ vÒ trÝ tuÖ nh©n t¹o trong nhiÒu n¨m qua.
1. dÉn nhËp
HiÖn nay c¸i nh×n vÒ kiÕn tróc m¹ng th«ng tin cña céng ®ång nh÷ng ngêi c«ng t¸c trong ngµnh c«ng nghÖ th«ng tin (CNTT) trªn thÕ giíi cha ®îc râ rµng l¾m. §iÒu ®ã còng dÔ hiÓu, v× nhiÒu yÕu tè ®ang ¶nh hëng m¹nh ®Õn c¸c quan niÖm vÒ kiÕn tróc m¹ng nhng l¹i cha æn ®Þnh : sù bïng næ cña Internet ®a ®Õn vai trß næi tréi cña m¹ng th«ng tin sè liÖu lªn trªn m¹ng ®iÖn tho¹i vÒ mÆt kinh tÕ ; ®ång thêi nhiÒu tiÕn bé vît bùc vÒ kü thuËt truyÒn tin nh sîi quang dÉn, kü thuËt v« tuyÕn... lµm cho c¸c dÞch vô ®a mª®ia 2hiÖn chØ ®îc tháa m·n côc bé víi mét m¸y tÝnh c¸ nh©n, sÏ ®îc thùc hiÖn phæ biÕn trªn m¹ng tÇm réng. Trong khung c¶nh ®ã c¸c tËp ®oµn kinh tÕ - kü thuËt võa ph¶i th¬ng lîng víi nhau trong c¸c tæ chøc ngµnh nghÒ quèc tÕ nh OMG (Object Management Group), W3C (World Wide Web Consortium)... ®Ó x¸c ®Þnh c¸c chuÈn kh«ng thÓ thiÕu trong viÖc ph¸t triÓn CNTT ; võa ®Êu tranh víi nhau ®Ó chiÕm ¶nh hëng lín cho c¸i së trêng cña m×nh ; võa l¹i cã thÓ liªn kÕt víi nhau ®Ó më réng thÞ trêng theo nh÷ng xu híng cña thêi ®¹i. Theo c¸c tÇng líp cña CNTT tõ díi lªn trªn cã thÓ kÓ : c¸c tËp ®oµn s¶n xuÊt vµ khai th¸c m¹ng truyÒn tin nh Alcatel, AT&T, Cisco, Lucent, Nortel, France Telecom... c¸c tËp ®oµn b¸n dÞch vô Internet nh AOL... c¸c tËp ®oµn lµm tin häc cæ ®iÓn h¬n nh Microsoft, Sun, IBM... §¸ng chó ý lµ c¸c tËp ®oµn nµy cã mÆt trong c¸c tæ chøc ngµnh nghÒ kh¸c nhau, vµ nhiÒu khi b¶o vÖ c¸c gi¶i ph¸p kh¸c nhau, v× b¶n th©n trong néi bé hä còng kh«ng thèng nhÊt, hay kh«ng cÇn thèng nhÊt ; mét h·ng lín rÊt cã thÓ cã lîi Ých ®Ó nu«i dìng nhiÒu nhãm lµm viÖc trªn (vµ b¶o vÖ) c¸c chuÈn m©u thuÉn víi nhau, trong t×nh tr¹ng c¸c chuÈn nµy cßn cha chÝn mïi vµ cÇn nghiªn cøu vµ ph¸t triÓn thªm. §iÒu ®ã khiÕn cho viÖc dù ®o¸n t¬ng lai l¹i cµng thªm khã kh¨n.
CORBA (Common Object Request Broker Architecture) lµ mét chuÈn hÕt søc quan träng ra ®êi trong khung c¶nh nµy, nã nh»m cho phÐp thùc hiÖn kiÕn tróc "kh¸ch-hµng - phôc-vô" theo ph¬ng ph¸p tiÕp cËn híng sù vËt, trªn nh÷ng hÖ thèng m¸y kh¸c nhau vµ ph©n t¸n, ®Ó cho phÐp nhiÒu nhãm s¶n xuÊt phÇn mÒm kh¸c nhau cïng céng t¸c. ChuÈn CORBA khi ®Çu chØ ®îc quan niÖm víi c¸c phÇn mÒm 'cè ®Þnh' vµ ho¹t ®éng ph©n t¸n trong mét m¹ng côc bé. ChuÈn nµy võa ra ®êi th× còng cïng lóc ®ã xuÊt hiÖn ng«n ng÷ Java vµ c«ng nghÖ t¸c tö, cho phÐp mçi khi cÇn dïng th× b¶n th©n tr¹m phôc vô th«ng qua m¹ng n¹p xuèng vµo m¸y kh¸ch nh÷ng t¸c tö 'kh¸ch hµng', do ®ã viÖc chuÈn ho¸ giao diÖn "kh¸ch hµng-phôc vô" ë møc ®é øng dông trë nªn ®¬n gi¶n h¬n. Thªm n÷a, víi sù bïng næ Internet th× më réng CORBA ®Ó xö lý ph©n t¸n ë m¹ng tÇm réng qua Internet trë thµnh quan träng, vµ khi ®ã ph¶i kÕt hîp CORBA víi ng«n ng÷ giao diÖn XML cña Internet, XML ®ang ®îc triÓn khai ®Ó më réng HTML mµ chóng ta quen thuéc, v× c¸i ¸o HTML ®· qu¸ chËt.
T×m hiÓu chuÈn CORBA, chuÈn XML, ng«n ng÷ Java vµ c«ng nghÖ t¸c tö v× thÕ trë nªn thiÕt yÕu ®Ó n¾m b¾t nh÷ng khuynh híng tiÕn triÓn cña CNTT trong nghÜa mét tæng hîp míi gi÷a tin häc vµ viÔn th«ng. Ch¼ng h¹n, khuynh híng lµm c¸c "tr¹m vÊn tin máng" (thin terminal) ë gi÷a kh¶ n¨ng cña mét tr¹m vÊn tin "qu¸ dèt" (dumb) nh thêi xa, vµ mét lo¹i tr¹m vÊn tin "qu¸ nÆng nÒ" cÇn chøa s½n qu¸ nhiÒu ch¬ng tr×nh nh hiÖn nay, chÝnh v× kh¶ n¨ng truy n¹p nãi trªn. Nhng, nh chóng ta sÏ thÊy, c«ng nghÖ t¸c tö sÏ kh«ng chØ dõng ë ®ã, nã cßn cho phÐp nghÜ tíi viÖc thùc hiÖn dÔ dµng c¸c thuËt to¸n ph©n t¸n vµ di ®éng trªn m¹ng th«ng tin tÇm réng ®Ó tËn dông kh¶ n¨ng gÇn nh v« h¹n cña søc tÝnh to¸n vµ xö lý th«ng tin n»m trong m¹ng réng, cã thÓ thÝch hîp cho nhiÒu líp bµi to¸n h÷u Ých, tuy r»ng kh«ng ph¶i lµ cho mäi bµi to¸n.
Bµi nµy cã 5 phÇn chÝnh, sau ®o¹n 2 ®iÓm l¹i c¸c ng«n ng÷ lËp tr×nh vµ c¸c m« h×nh quy chiÕu th× cã 4 ®o¹n lÇn lît ®Ò cËp ®Õn CORBA, XML, Java vµ t¸c tö. C¸c chuÈn vµ c«ng nghÖ nµy cã liªn hÖ chÆt chÏ víi nhau, tuy r»ng viÖc tÝch hîp chóng thµnh mét thÓ thèng nhÊt cha hoµn chØnh vµ cßn cÇn nhiÒu nghiªn cøu vµ ph¸t triÓn, ngêi ta cã thÓ nhËn thÊy râ rÖt chóng ®ang trªn ®µ héi tô. §iÓm bµi nµy muèn lµm s¸ng tá lµ vÞ trÝ trung t©m cña ng«n ng÷ Java vµ vÞ trÝ mòi nhän cña c¸c nghiªn cøu vÒ t¸c tö di ®éng, dùa trªn hai chuÈn thiÕt yÕu lµ CORBA vµ XML.
Nh÷ng ghi chó trong bµi nµy chØ cã tham väng ph¸c häa mét khung c¶nh chung cho nh÷ng nghiªn cøu vµ ph¸t triÓn cña CNTT, giíi h¹n trong khÝa c¹nh xö lý ph©n t¸n trªn m¹ng réng. Víi ®èi tîng lµ c¸c ngêi thùc sù ®i vµo nghiªn cøu th× hy väng bµi nµy gióp ®ì cho viÖc ®äc nh÷ng tµi liÖu kü thuËt vÒ nh÷ng vÊn ®Ò nµy ®îc dÔ dµng h¬n, nhng nã kh«ng thÓ thay thÕ cho viÖc t×m hiÓu s©u nh÷ng tµi liÖu kü thuËt ®ã.
Sau cïng, bµi nµy cã mét tham väng bªn lÒ lµ ®Ò nghÞ mét sè thuËt ng÷ míi mµ ngêi viÕt cha ®îc biÕt lµ cã s½n, vµ sö dông chóng trong khung c¶nh mét bµi viÕt ®Ó thö nghiÖm.
2. §iÓm l¹i c¸c ng«n ng÷ vµ m« h×nh quy chiÕu
2.1. Ng«n ng÷ lËp tr×nh
KÓ tõ khi ph¸t minh ra m¸y tÝnh ®iÖn tö, so víi sù tiÕn triÓn cña thiÕt bÞ th× sù tiÕn triÓn cña phÇn mÒm lu«n lu«n lµ chËm ch¹p, ®Çy nh÷ng h¨m hë s«i næi tëng r»ng lµm g× còng dÔ, vµ tiÕp theo lµ nguéi l¹nh n¶n lßng. C¸c hîp ng÷ (assemblers) ra ®êi kh¸ nhanh tõ nh÷ng n¨m 50, vµ khi Êy ®«i khi còng ®· ®îc gäi lµ ng«n ng÷ lËp tr×nh tù ®éng ! Råi ®Õn nh÷ng n¨m 60, COBOL vµ FORTRAN... xuÊt hiÖn nh nh÷ng tiÕn bé vît bùc... Nhng cuèi cïng ngêi ta nhËn thÊy ng«n ng÷ lËp tr×nh kh«ng ®ñ ®Ó tù nã cho phÐp lµm nªn nh÷ng s¶n phÈm hÖ mÒm cã chÊt lîng. Ngêi ta thÊy thiÕu ë phÝa h¹ nguån nh÷ng phÐp t¾c, nh÷ng kû luËt lËp tr×nh ; vµ thiÕu ë phÝa thîng nguån nh÷ng ph¬ng ph¸p m« h×nh ho¸ mét c¸ch dÔ hiÓu vµ trong s¸ng c¸c vÊn ®Ò cÇn gi¶i quyÕt ; còng nh lµ, ®i song song víi tiÕn tr×nh ph¸t triÓn mét s¶n phÈm hÖ mÒm lín, cßn cÇn cã nh÷ng quy tr×nh vµ c«ng cô ®Ó tæ chøc, qu¶n lý ®Ò ¸n mét c¸ch chÆt chÏ. Mét phÇn nµo cña nh÷ng ý niÖm trªn ®· ®îc tÝch hîp vµo trong c¸c ng«n ng÷ lËp tr×nh hiÖn ®¹i vµ c¸c m« h×nh quy chiÕu ®îc chuÈn ho¸, nhng dÜ nhiªn kh«ng thÓ lµ tÊt c¶.
2.2 C¸c m« h×nh quy chiÕuKh¸i niÖm lËp tr×nh cã cÊu tróc (structured programming) lµ mét thµnh qu¶ cña nh÷ng n¨m 70, cho tíi nay vÉn cßn gi÷ nguyªn gi¸ trÞ. Kh¸i niÖm nµy phÇn nµo ®îc lång trong c¬ cÊu cña tÊt c¶ nh÷ng ng«n ng÷ lËp tr×nh kÓ tõ ALGOL, Pascal, C ... MÆt kh¸c ngêi ta ý thøc ®îc r»ng cÇn b¶o vÖ c¸c d÷ liÖu b»ng c¸ch 'bao bäc' chung quanh chóng nh÷ng thao t¸c ®Æc thï theo tõng kiÓu d÷ liÖu (nh÷ng thao t¸c nµy hiÖn nay gäi lµ nh÷ng ph¬ng ph¸p (methods) trong ng«n ng÷ híng sù vËt). D÷ liÖu vµ ph¬ng ph¸p ®îc gép l¹i trong mét thÓ thèng nhÊt ngµy nay gäi lµ sù vËt (object). Ngêi ®· ®a ra kh¸i niÖm ®ã tõ cuèi nh÷ng n¨m 60, vµ gäi lµ kiÓu d÷ liÖu trõu tîng (abstract data type) lµ bµ Barbara Liskov, hiÖn nay lµ gi¸o s ®¹i häc MIT. Nhng kh¸i niÖm nµy chØ trë thµnh quen thuéc tõ nh÷ng n¨m 80 - 90 víi c¸c ng«n ng÷ SIMULA, SMALL TALK, vµ nhÊt lµ C++ ... Híng tiÕn bé thø ba ph¸t triÓn tõ cuèi nh÷ng n¨m 80 lµ viÖc ®a vµo c¸c ng«n ng÷ lËp tr×nh cÊp cao viÖc m« t¶ vµ ®iÒu khiÓn c¸c tiÕn tr×nh song hµnh cã liªn hÖ chÆt chÏ víi nhau, chø kh«ng chØ ®Ó cho c¸c hÖ ®iÒu hµnh qu¶n lý mét c¸ch tù ®éng (viÖc nµy tèt cho nh÷ng tiÕn tr×nh kh«ng hoÆc rÊt Ýt liªn hÖ) ; hoÆc ®Ó cho mçi hÖ mÒm 'thêi gian thùc' lín ph¶i tù viÕt lÊy viÖc ®iÒu khiÓn ®ã, nh ®· ph¶i lµm trong c¸c hÖ thêi gian thùc cña nh÷ng n¨m 70-80. Ng«n ng÷ lËp tr×nh tæng hîp ®îc tèt nhÊt nh÷ng kh¸i niÖm trªn cã lÏ lµ ng«n ng÷ ADA, do bé quèc phßng Mü ®Æt yªu cÇu vµ lùa chän. Nhng ADA kh«ng ®îc sö dông nhiÒu ngoµi m«i trêng 'thêi gian thùc', cã lÏ v× nh÷ng lý do lÞch sö ; vµ ADA còng cha cã c¸c c«ng cô thuËn tiÖn cho viÖc céng t¸c cña c¸c m¸y tÝnh ®iÖn tö víi nhau trªn m¹ng. VÊn ®Ò nµy trë nªn chñ yÕu trong thêi ®¹i ngµy nay khi viÔn th«ng vµ tin häc ®ang hoµ nhËp vµo nhau. ë ®©y kh«ng ®Ò cËp tíi nhiÒu lo¹i ng«n ng÷ lËp tr×nh chuyªn dông vµ kh¸c h¼n c¸c ng«n ng÷ tæng qu¸t, nh LISP, Prolog... Vai trß cña c¸c ng«n ng÷ nµy cã thÓ trë thµnh quan träng h¬n ®Ó bæ sung cho c¸c ng«n ng÷ tæng qu¸t, trong quy tr×nh tiÕn ho¸ vÒ híng c¸c øng dông tÝch hîp ngµy cµng réng hiÖn nay. §i song song, vµ ®Ó bæ tóc cho c¸c c«ng cô lËp tr×nh hiÖn ®¹i, cÇn nhng kh«ng ®ñ ®Ó ph¸t triÓn tèt ®Ñp nh÷ng hÖ mÒm lín nh lo¹i dïng trong viÔn th«ng ; tËp thÓ c¸c c«ng ty s¶n xuÊt vµ qu¶n lý m¹ng viÔn th«ng ®· tõ l©u ngåi l¹i víi nhau ®Ó x¸c ®Þnh nh÷ng m« h×nh quy chiÕu (reference model). §ã lµ mét thø ng«n ng÷ ®Ó m« t¶ râ rµng h¬n ng«n ng÷ thêng, nhng còng kh«ng hoµn toµn h×nh thøc nh ng«n ng÷ lËp tr×nh, vµ thêng ®îc minh häa b»ng c¸c h×nh khèi ; chóng cho phÐp hiÓu gièng nhau có ph¸p vµ ý nghÜa cña c¸c th«ng tin cÇn truyÒn qua c¸c ®iÓm quy chiÕu (reference points) ®îc quy ®Þnh gi÷a hai hÖ thèng. ViÖc nµy cho phÐp chuÈn ho¸ c¸c giao thøc (protocol) cÇn thiÕt trong viÔn th«ng ®Ó göi nhËn th«ng tin vµ ®Ó qu¶n lý m¹ng.
S¸ng t¹o ®Çu tiªn lµ chuÈn OSI ( Open System Interconnection) cña tæ chøc chuÈn quèc tÕ ISO (International Organisation for Standardization) thµnh lËp mét m« h×nh 7 tÇng giao thøc tõ thÊp (gÇn vËt chÊt, thÊp nhÊt lµ viÖc truyÒn c¸c bÝt qua gi©y ®iÖn) ®Õn cao. M« h×nh nµy kh«ng ®îc ¸p dông hoµn toµn trªn thùc tÕ v× nhiÒu lý do, ngoµi mét vµi ¸p ®Æt cã tÝnh h¬i gi¸o ®iÒu (nh nhÊt ®Þnh ph¶i tuyÕn tÝnh tõ 1 ®Õn 7), nã võa qu¸ ®¬n gi¶n võa qu¸ phøc t¹p so víi thùc tÕ. Tuy nhiªn nã ®· cã ¶nh hëng tri thøc rÊt m¹nh vµ lµ nguån c¶m høng cho nhiÒu m« h×nh quy chiÕu kh¸c.
Trong l·nh vùc viÔn th«ng kÓ tõ ®ã cã kh¸ nhiÒu m« h×nh quy chiÕu ra ®êi ; mçi m« h×nh nh»m lµm c¬ së cho viÖc chuÈn hãa mét kü thuËt m¹ng hay mét vÊn ®Ò nµo ®ã. ThÝ dô nh m« h×nh ISDN cña m¹ng ®iÖn tho¹i sè, m« h×nh TMN nh»m vµo viÖc qu¶n lý c¸c m¹ng viÔn th«ng, m« h×nh TINA dïng ®Ó ph¸t triÓn c¸c øng dông viÔn th«ng... Cã thÓ nãi c¸c m« h×nh nµy nh»m phôc vô viÖc thiÕt lËp, b¶o tr× vµ ph¸t triÓn c¸c m¹ng vµ dÞch vô viÔn th«ng, mét m¶ng lín cña c«ng nghÖ th«ng tin, chóng t¬ng øng víi c¸c tÇng tõ 1 ®Õn 4 cña m« h×nh OSI, vµ kh«ng ph¶i lµ chñ ®Ò cña bµi nµy. ë ®©y chóng ta chØ ®Ò cËp ®Õn c«ng nghÖ tin häc ph©n t¸n, tøc lµ phÇn trªn cña m« h×nh OSI, vµ nh thÕ m« h×nh quan träng nhÊt hiÖn nay lµ OMA (Object Management Architecture) vµ trong OMA th× bé phËn nßng cèt lµ CORBA (Common Object Request Broker Architecture), sau ®©y sÏ gäi chung c¶ lµ CORBA cho gän. Tríc khi CORBA trë thµnh c¬ b¶n v× tiÕp cËn híng sù vËt ®îc ®¹i ®a sè trong ngµnh CNTT chÊp nhËn, th× ®· cã nhiÒu m« h×nh quy chiÕu kh¸c nh»m cô thÓ ho¸ phÇn trªn cña m« h×nh OSI, thÝ dô nh DCE (Distributed Computing Environment), mµ CORBA thõa hëng kh¸ nhiÒu. ë ®©y kh«ng cã chç m« t¶ DCE ; còng nh kh«ng cã chç m« t¶ DCOM (Distributed Component Object Model), mét m« h×nh híng sù vËt vµ ph©n t¸n kh¸c cña riªng Microsoft. Tr¸i víi CORBA lµ mét m« h×nh më, DCOM khÐp kÝn trong c¸c s¶n phÈm hoµn toµn tuú thuéc Microsoft.
3. OMG, OMA vµ CORBA
OMG lµ mét tæ chøc chuyªn ngµnh v« vô lîi, do 8 c«ng ty quèc tÕ thµnh lËp th¸ng 5 n¨m 1989, trong ®ã ®¸ng kÓ lµ Hewlett-Packard vµ SUN, nh»m thiÕt lËp mét khung c¶nh kh¸i niÖm chung vÒ híng tiÕp cËn sù vËt ph©n t¸n, ®Ó cã thÓ cho phÐp c¸c hÖ ¸p dông híng sù vËt, ®· vµ sÏ ®îc ph¸t triÓn trªn nh÷ng hÖ ®iÒu hµnh vµ thiÕt bÞ kh¸c nhau, cã thÓ trao ®æi víi nhau. OMG ®¸p øng ®óng nhu cÇu chung vµ cã mét ph¬ng ph¸p lµm viÖc kh¸ kh¸ch quan, nªn ®· ®îc hëng øng m¹nh mÏ. Tíi nay ®· cã kho¶ng 800 (tøc lµ hÇu hÕt) tæ chøc vµ c¸c c«ng ti CNTT lín trªn c¶ thÕ giíi tham gia.
VÊn ®Ò muèn gi¶i quyÕt kh«ng ®¬n gi¶n, vµ l¹i ph¶i gi¶i quyÕt 'gi÷a chî ' huyªn n¸o vµ ®«ng ngêi, cho nªn tiÕn bé còng chËm ch¹p. OMG theo con ®êng cña OSI-ISO : cïng nhau thµnh lËp mét m« h×nh quy chiÕu, vµ tõ ®ã tháa thuËn dÇn vÒ c¸c chuÈn giao diÖn vµ giao thøc 3 . Sau gÇn 3 n¨m bµn c·i mét sè tµi liÖu cã tÝnh giai ®o¹n (CORBA 1) ®îc c«ng bè n¨m 1992. Nhng, tuy r»ng môc ®Ých chÝnh ®· ®¹t lµ c¸c ch¬ng tr×nh øng dông th× cã thÓ mua tõ nhiÒu nguån, sai lÇm kh¸ lín cña CORBA 1 lµ chØ tho¶ thuËn vÒ chuÈn giao diÖn mµ ®· ®Ó cho c¸c giao thøc ®îc ph¸t triÓn tù do. Cã lÏ v× mét mÆt c¸c tËp ®oµn s¶n xuÊt CNTT tho¶ thuËn ngÇm víi nhau lóc Êy lµ mçi ngêi gi÷ kh¸ch hµng cña m×nh, hay/vµ mÆt kh¸c hä kh«ng thèng nhÊt ®îc víi nhau vÒ mét kü thuËt ORB duy nhÊt 4. HËu qu¶ lµ trong mét m¹ng c¬ quan th× chØ ¸p dông ®îc CORBA gi÷a nh÷ng m¸y cïng mét hÖ, vµ hoµn toµn kh«ng thÓ ®i ra ngoµi, v× ®Ó trao ®æi víi nhau c¸c ch¬ng tr×nh øng dông cÇn ®Õn nh÷ng giao thøc ë phÝa díi.
§Õn gi÷a 1996 ta cã mét hÖ thèng tµi liÖu t¬ng ®èi hoµn chØnh tuy cha ®Çy ®ñ (CORBA 2). CORBA 2 ph¶i sèng víi nh÷ng sai lÇm cña CORBA 1 nhng ®· ®a ra ®îc nh÷ng biÖn ph¸p phô tréi cho phÐp c¸c s¶n phÈm tu©n thñ CORBA 2 cña c¸c nhµ s¶n xuÊt kh¸c nhau liªn hÖ ®îc víi nhau. Nhng ®iÒu nµy còng chØ h¹n chÕ trong mét m¹ng c¬ quan, v× nÕu ®i ra ngoµi th× cßn vÊp ph¶i mét sè vÊn ®Ò nh an toµn th«ng tin, kiÓm tra chÊt lîng c¸c sù vËt ë xa... Nh÷ng vÊn ®Ò nµy, theo OMG, hiÖn nay ®· ®îc gi¶i quyÕt, vµ CORBA 3, dù kiÕn ra ®êi trong n¨m 2000, sÏ lµ mét tËp hîp chuÈn ®Çy ®ñ, më réng CORBA 2 ®Ó cho phÐp c¸c øng dông híng sù vËt céng t¸c ®îc víi nhau trªn ph¹m vi toµn thÕ giíi, qua m¹ng Internet.
CORBA lµ mét m« h×nh quy chiÕu n»m ë tÇng c¸c ch¬ng tr×nh sö dông m¹ng, nã coi nh viÖc truyÒn tin qua m¹ng ®îc b¶o ®¶m ; vµ chØ thiÕt lËp c¸c chuÈn ®Ó liªn l¹c gi÷a c¸c phÇn ph©n t¸n cña øng dông (t¬ng ®¬ng víi c¸c tÇng 5 vµ 6 cña m« h×nh OSI). TÇm quan träng cña c¸c ch¬ng tr×nh phôc vô tæng qu¸t viÖc øng dông ph©n t¸n nµy thÓ hiÖn qua viÖc n¶y sinh thuËt ng÷ 'middleware', t¹m dÞch lµ hÖ gi÷a. CORBA nh thÕ lµ mét chuÈn cña hÖ gi÷a, 'gi÷a' ®©y cã thÓ hiÓu lµ gi÷a c¸c bé phËn ph©n t¸n cña mét øng dông, hay gi÷a tÇng øng dông ë trªn vµ tÇng viÔn th«ng ë díi. Cã thÓ h×nh dung mét c¸ch gi¶n lîc CORBA qua h×nh vÏ sau :
CORBA 2 vµ 3, trêng hîp nèi b»ng Internet
Qua h×nh nµy ta cã thÓ ghi chó vµi ®iÓm sau :
Trªn ®©y lµ mét vµi ®Æc ®iÓm còng nh t×nh h×nh hiÖn nay cña CORBA, 'nh×n tõ m¸y bay'. Kh«ng thÓ ®i s©u thªm trong ph¹m vi bµi nµy v× ®©y lµ mét chuÈn kh¸ phøc t¹p gåm mÊy tr¨m trang ®Æc t¶ kü thuËt.CORBA 1 chñ yÕu ®Æc t¶ giao diÖn chuÈn cho phÐp sö dông c¸c ORB (Object Request Broker). ORB gåm nh÷ng ch¬ng tr×nh ph©n t¸n trong c¸c m¸y cña m¹ng, qu¶n lý tªn vµ ®Þa chØ c¸c sù vËt ë tÇng øng dông, chóng liªn l¹c víi nhau b»ng mét giao thøc riªng. Chøc n¨ng cña ORB lµ lµm m«i giíi (broker) cho phÐp mét sù vËt trong m¸y kh¸ch hµng yªu cÇu sö dông (request) mét sù vËt trong m¸y phôc vô, mµ kh«ng cÇn biÕt nã ë ®©u. DÜ nhiªn hai m¸y nµy ph¶i dïng cïng mét hÖ ORB vµ n»m trong cïng mét m¹ng truyÒn tin trong nghÜa c¶ vÒ thiÕt bÞ lÉn hÖ ®iÒu hµnh m¹ng. TÇng ORBn»m trªn tÇng vËn chuyÓn (tÇng 4, transport layer), vµ c¸c giao thøc cña ORB kh«ng cÇn chuÈn ho¸. CORBA 1 kh«ng nãi g× ®Õn c¸c chøc n¨ng chuyÓn ®æi giao thøc. Mét tr¹m phôc vô còng cã thÓ chøa nh÷ng sù vËt kh¸ch hµng cña nh÷ng tr¹m phôc vô kh¸c, vµ trong mét øng dông kh«ng nhÊt thiÕt chØ cã nh÷ng quan hÖ song ph¬ng. CORBA 2 ®Æc t¶ sù liªn l¹c vµ vËn hµnh (interworking) gi÷a c¸c ORB kh¸c nhau qua mét giao thøc trung gian tæng qu¸t gäi lµ GIOP (General Inter-ORB Protocol). Giao thøc nµy sÏ l¹i sö dông nh÷ng lo¹i giao thøc '®Öm' kh¸c nhau ®Ó truyÒn tin qua c¸c lo¹i m¹ng kh¸c nhau ; trong ®ã ®Çu tiªn vµ quan träng nhÊt lµ giao thøc IIOP (Internet Inter-ORB Protocol), cho phÐp sö dông Internet. ViÖc sö dông c¸c lo¹i m¹ng trung gian kh¸c ®ang ®îc bæ tóc dÇn. Chøc n¨ng chuyÓn ®æi c¸c giao thøc ORB ®· cã sang giao thøc GIOP lµ tr¸ch nhiÖm cña nh÷ng ngêi ®· s¶n xuÊt c¸c ORB kh¸c nhau. CORBA 2 gi¶i quyÕt ®îc vÊn ®Ò cña mét c¬ quan dïng mét m¹ng nhng l¹i cã hai nhãm m¸y mçi nhãm mét ORB kh¸c nhau A vµ B. Khi Êy hai m¸y cöa ngâ nhËp l¹i víi nhau thµnh mét tr¹m chØ cã chøc n¨ng chuyÓn ®æi giao thøc th«i, bëi kh«ng cÇn m¹ng trung gian. NÕu muèn hiÖu n¨ng cao ngêi ta cã thÓ lo¹i trõ lu«n GIOP, nhng khi Êy ph¶i viÕt thªm chøc n¨ng chuyÓn ®æi th¼ng gi÷a c¸c giao thøc ORB A vµ ORB B. Nhng nh trªn ®· nãi, trong thùc tÕ CORBA 2 cha ®ñ ®em l¹i ®é tin cËy cho ngêi dïng nÕu thùc sù muèn nèi 2 ORB b»ng Internet hay mét kü thuËt m¹ng kh¸c. Nã cha ®Æc t¶ nhiÒu chøc n¨ng quan träng trong ®¬n vÞ chuyÓn ®æi giao thøc, ®Æc biÖt lµ cha gi¶i quyÕt sù xung ®ét víi chøc n¨ng têng chÆn löa (firewall) trong m¸y cöa ngâ. Ngêi ta ph¶i ®îi CORBA 3 míi hy väng thµnh c«ng. §iÓm rÊt quan träng vµ ®éc ®¸o cña CORBA, mét tiÕn bé rÊt lín so víi nh÷ng ®Æc t¶ vÒ giao diÖn tríc nã, lµ quan niÖm vÒ giao diÖn nh s¶n phÈm cña mét ng«n ng÷ m« t¶, v× vËy rÊt mÒm dÎo, rÊt tæng qu¸t, mµ l¹i rÊt dÔ dïng. Ng«n ng÷ nµy gäi lµ IDL (Interface Definition Language, ng«n ng÷ m« t¶ giao diÖn) 5 , mçi sù vËt phôc vô cÇn cã mét m« t¶ b»ng IDL (hay nhiÒu, mçi m« t¶ t¬ng øng víi mét c¸ch dïng kh¸c nhau), ®îc chÐp l¹i bªn phÝa sù vËt kh¸ch hµng. Sau ®ã ch¬ng tr×nh biªn dÞch sÏ biÕn m« t¶ nµy thµnh hai ch¬ng tr×nh con, kh¸ch hµng mét bªn vµ phôc vô mét bªn. ChÝnh hai ch¬ng tr×nh con nµy lµ giao diÖn cho phÐp gäi tÇng phôc dÞch ORB ®Ó liªn hÖ gi÷a hai bªn. Ngoµi CORBA theo nghÜa hÑp ra, OMG cßn cã tham väng ®a vµo m« h×nh OMA mét sè chuÈn vµ ®Æc t¶ kh¸c n÷a mµ ë ®©y kh«ng ®Ò cËp, ®Æc biÖt ë trong b¶n th©n tÇng øng dông (tÇng 7 theo m« h×nh OSI). Nh÷ng cè g¾ng vÒ kiÕn tróc nµy cha cã g× æn ®Þnh, nã võa bÞ x¸o trén bëi, võa ®îc ®¬n gi¶n ho¸ nhê sù xuÊt hiÖn cña Internet vµ Java. Nh ®· nãi trong phÇn dÉn nhËp, chÝnh nhê cã mét ng«n ng÷ nh Java vµ c«ng nghÖ t¸c tö mµ viÖc chuÈn ho¸ c¸c giao diÖn ë møc øng dông ®îc ®¬n gi¶n ho¸ ®i rÊt nhiÒu, v× nÕu nh tríc th× mçi øng dông cÇn ph¶i ®îc cµi ®Æt kh«ng nh÷ng ch¬ng tr×nh phôc vô ë tr¹m phôc vô mµ cßn ch¬ng tr×nh kh¸ch hµng ë mäi tr¹m kh¸ch hµng. NÕu quan niÖm kh¸ch hµng cã thÓ xuÊt hiÖn bÊt cø lóc nµo ë kh¾p n¬i trªn thÕ giíi vµ liªn hÖ víi tr¹m phôc vô qua Internet th× viÖc cµi ®Æt kiÓu ®ã trë thµnh v« cïng tèn kÐm. Ngµy nay th× ch¬ng tr×nh kh¸ch hµng lµ mét t¸c tö ®¬n gi¶n ®îc n¹p tõ xa th¼ng vµo m¸y cña ngêi dïng khi cÇn. 4. W3C vµ chuÈn XML
4.1. S¬ lîc vÒ XML
Víi sù bïng næ cña Internet th× tæ chøc W3C cã tÇm quan träng ®Æc biÖt. W3C héi ®ñ mäi c«ng ty, ®¹i häc vµ c¬ quan hµnh ch¸nh vÒ CNTT lín trªn thÕ giíi, còng nh OMG. W3C cã môc tiªu x¸c ®Þnh nh÷ng chuÈn toµn cÇu cho viÖc øng dông Internet ; vµ nh thÕ vai trß cña OMG vµ W3C cã phÇn nµo trïng lÆp. ë ®©y kh«ng trë l¹i vai trß kü thuËt quyÕt ®Þnh cña giao thøc HTTP (Hyper-Text Transport Protocol) vµ ng«n ng÷ HTML trong hiÖn tîng bïng næ Internet trªn toµn cÇu, còng nh kh«ng m« t¶ HTTP (c«ng cô vËn chuyÓn, sö dông giao thøc TCP ë phÝa díi) vµ HTML (c«ng cô m« t¶ trang Web, do HTTP vËn chuyÓn), ®· trë thµnh quen thuéc. Nhng kh«ng thÓ nãi tíi CNTT trªn thÕ giíi hiÖn nay, dï chØ díi d¹ng h¹n hÑp, mµ kh«ng cã vµi ghi chó vÒ XML.
4.2. Lîi ®iÓm cña XMLXML (eXtensible Mark-up Language) lµ mét chuÈn do W3C quy ®Þnh, nh»m tæng qu¸t ho¸ vµ thay thÕ chuÈn HTML, ®Ó cho phÐp thùc hiÖn nh÷ng ng«n ng÷ giao diÖn ®Æc thï cho tõng ph¹m vi ho¹t ®éng kinh tÕ, ®iÒu ®ã sÏ cµng lµm dÔ dµng h¬n n÷a viÖc viÕt c¸c ch¬ng tr×nh øng dông víi mµn h×nh cho Internet. Thùc ra th× HTML lµ mét h×nh thøc tr×nh bµy ®Æc thï cña mét chuÈn cò lµ SGML, cã bæ tóc thªm ®Ó cho phï hîp víi Internet, nh thªm vµo kh¸i niÖm siªu liªn hÖ (hyper-link). SGML lµ mét chuÈn rÊt ®Çy ®ñ vµ phøc t¹p ®Ó m« t¶ v¨n b¶n trong viÖc in Ên, do tæ chøc ISO thùc hiÖn tõ ®Çu nh÷ng n¨m 60, chñ yÕu dïng trong c¸c ch¬ng tr×nh ®iÒu khiÓn m¸y in lín cña c¸c nhµ xuÊt b¶n chuyªn nghiÖp. Nã cho phÐp m« t¶ c¸c cÊu tróc ®Æc thï cña tõng lo¹i v¨n b¶n b»ng mét tµi liÖu riªng ®i kÌm ®Ó x¸c ®Þnh kiÓu v¨n b¶n (DTD, Document Type Definition). DTD ®Þnh nghÜa c¸c nh·n ghi chó (tag) 6dïng ®Ó ®¸nh dÊu c¸c c©u, ®o¹n trong v¨n b¶n, vµ x¸c ®Þnh có ph¸p (syntax) cña tËp hîp c¸c nh·n ghi chó ®ã. Cã thÓ coi HTML nh lµ SGML kh«ng cã DTD ®i kÌm, hay nãi c¸ch kh¸c chØ cã mét DTD cè ®Þnh duy nhÊt vµ Èn tµng, thÝch hîp víi c¸c trang nhÖn. Nh÷ng h×nh thøc tr×nh bµy ®Æc thï cho tõng lo¹i ph¸t hµnh kh¸c nhau cña cïng mét v¨n b¶n, thÝ dô in Ên hay chiÕu trªn mµn h×nh ph¶i ®îc x¸c ®Þnh bëi mét tµi liÖu riªng kh¸c, tê th ph¸p7 (style sheet). Tµi liÖu nµy tuú thuéc thiÕt bÞ ngo¹i vi, vµ x¸c ®Þnh h×nh thøc tr×nh bµy cña nh÷ng c©u ®o¹n, theo nh c¸c nh·n ghi chó cã trong DTD ; nã chØ cã ý nghÜa trong viÖc tr×nh bµy th«i, néi dung v¨n b¶n hoµn toµn ®éc lËp víi nã. C¸c tê th ph¸p cña SGML ®îc viÕt b»ng ng«n ng÷ DSSSL (Document Style Semantics and Specification Language, ý nghÜa cña th ph¸p c¸c tµi liÖu vµ ng«n ng÷ ®Æc t¶ th ph¸p). XML më réng HTML b»ng c¸ch trë l¹i víi SGML sau khi ®· ®¬n gi¶n ho¸ 8 . Ên b¶n XML 1.0 ®· ®îc ph¸t hµnh tõ th¸ng Hai-1998. Tuy trong DTD cßn thiÕu nhiÒu thø, nhÊt lµ phÇn kiÓm so¸t néi dung c¸c trêng tuú thuéc nh·n ghi chó cßn ®ang ®îc bµn c·i vµ ph¸t triÓn thªm, nhng XML ®· ®îc ®a vµo sö dông m¹nh mÏ. Nh÷ng ngêi lµm tin häc trong mçi ngµnh nghÒ hiÖn ®ang lµm nh÷ng ®Æc t¶ DTD ®Ó dïng cho nh÷ng tµi liÖu trong ngµnh m×nh. Khi c¸c c«ng viÖc nµy hoµn chØnh th× viÖc thùc hiÖn giao diÖn ngêi-m¸y vµ m¸y-m¸y qua liªn m¹ng sÏ trë nªn dÔ dµng v× mçi ngêi chØ cÇn n¾m nh÷ng nh·n ghi chó trong c¸c DTD cña ngµnh m×nh 9 . XML t¬ng thÝch víi HTML 10. Ng«n ng÷ m« t¶ c¸ch tr×nh bµy v¨n b¶n cña XML ®îc gäi lµ XSL (eXtensible Style Language), tho¸t thai tõ DSSSL cña SGML. XSL hiÖn nay ®ang ë giai ®o¹n hoµn chØnh, cha cã chuÈn chÝnh thøc. Hy väng sau ®ã sÏ cã nh÷ng ch¬ng tr×nh xö lý v¨n b¶n còng dÔ dïng vµ tèt h¬n hiÖn nay víi ®Çu vµo vµ ®Çu ra lµ XML. Mét viÖc tríc m¾t kh«ng khã kh¨n g× lµ lµm ch¬ng tr×nh ho¸n chuyÓn hai chiÒu gi÷a d¹ng XML vµ d¹ng riªng cña c¸c ch¬ng tr×nh xö lý v¨n b¶n ®· cã. Nãi chung, mét lo¹i s¶n phÈm ®ang ®îc nhiÒu n¬i triÓn khai lµ c¸c ch¬ng tr×nh ph©n tÝch có ph¸p XML (XML parser) ®Ó biÕn tµi liÖu XML thµnh ra mét ®iÒu g× kh¸c cã thÓ khai th¸c trong nh÷ng ¸p dông ®Æc thï, chø kh«ng ph¶i chØ xö lý v¨n b¶n. Trong ®ã quan träng nhÊt lµ biÕn mét tµi liÖu XML thµnh mét sù vËt m« t¶ tµi liÖu, xö lý ®îc bëi c¸c ng«n ng÷ híng sù vËt (ch¼ng h¹n ®Ó lµm c¸c c¬ së tµi liÖu, documentation base, hay c¸c kho URL... ). Hai chuÈn vÒ c¸c sù-vËt-tµi-liÖu hiÖn ®ang ®îc bµn c·i lµ SAX (Simple API for XML, giao diÖn lËp tr×nh ®¬n gi¶n cho XML) vµ DOM (Document Object Model, m« h×nh cña sù-vËt-tµi-liÖu). HiÖn ®· cã c¸c ch¬ng tr×nh ph©n tÝch v¨n b¶n XML ®Ó cho ra d¹ng SAX, c¸c ch¬ng tr×nh cho ra d¹ng DOM th× cßn ë møc thö nghiÖm. Kh«ng nªn hiÓu XML mét c¸ch h¹n hÑp nh chØ lµ mét chuÈn ®Ó m« t¶ v¨n b¶n cã tÝnh v¨n ch¬ng, dïng cho mµn ¶nh hay in Ên vµ truyÒn ®îc qua liªn m¹ng. Nh thÕ còng rÊt quan träng råi, nhng tiÒm n¨ng cña nã vît lªn trªn kÝch thíc ®ã kh¸ nhiÒu, nÕu ta lu ý r»ng tÊt c¶ nh÷ng d÷ kiÖn dïng cho m¸y hay cho m¹ng truyÒn tin nh c¸c th«ng ®iÖp, c¸c ch¬ng tr×nh, c¸c c¬ së d÷ liÖu... ®Òu cÇn, ®Õn mét lóc nµo ®ã, hiÖn h÷u díi d¹ng con ngêi ®äc ®îc, nghÜa lµ díi d¹ng mét v¨n b¶n cã cÊu tróc. Mµ cã thÓ nãi ®Þnh nghÜa c¬ b¶n cña XML lµ nh thÕ : mét chuÈn m« t¶ c¸c lo¹i v¨n b¶n cã cÊu tróc (x¸c ®Þnh trong DTD) díi d¹ng con ngêi ®äc ®îc. Tõ ®ã, mÆc dï mét sè ®iÓm bÊt tiÖn (nhá, vµ cµng ngµy cµng kh«ng quan träng tríc tiÕn triÓn kü thuËt) nh :
XML ch¾c ch¾n sÏ ®îc sö dông trong rÊt nhiÒu chuÈn cña CNTT, nhÊt lµ c¸c chuÈn truyÒn tin ë møc øng dông vµ trªn m¹ng réng, v× nh÷ng thuËn lîi rÊt lín :V¨n b¶n XML thêng kh«ng hiÖn h÷u mét c¸ch ®éc lËp, mµ ph¶i ®îc ®i kÌm víi mét hay nhiÒu tµi liÖu DTD mµ nã sö dông. V¨n b¶n XML dµi v× mang theo c¸c nh·n ghi chó ®Ó dµn trang, m« t¶ cÊu tróc... l¹i thªm n÷a mçi ch÷ c¸i dïng 16 bÝt theo chuÈn míi Unicode thay v× 8 bÝt. NhiÒu trêng cña cÊu tróc (fields, champs), nh c¸c con sè ®¸ng lÏ ®Ó díi d¹ng nhÞ nguyªn, tiÖn cho m¸y vµ cã hiÖu n¨ng h¬n, th× vÉn ph¶i viÕt b»ng ch÷ c¸i. 4.3. §Ò nghÞ chuÈn SOAPMét thÝ dô rÊt quan träng ®èi víi ViÖt Nam lµ : viÖc m· ho¸ c¸c ch÷ c¸i b»ng 16 bÝt theo chuÈn Unicode sÏ chÊm døt ®îc t×nh tr¹ng "thËp nhÞ sø qu©n" hiÖn nay cña c¸c m· tiÕng ViÖt dïng 8 bÝt, víi c¸c khã kh¨n do nã g©y ra trong viÖc xö lý v¨n b¶n vµ viÖc truyÒn tin trªn m¹ng. 'chuÈn' de facto cña c¸c v¨n b¶n Word theo Microsoft, vµ do Microsoft lîi dông thÕ m¹nh cña m×nh tù ý thay ®æi ®Ó b¾t kh¸ch hµng ch¹y theo vµ tr¶ tiÒn n©ng cÊp mçi lÇn, sÏ kh«ng cßn lý do tån t¹i. Vµ nh thÕ ai còng cã thÓ s¶n xuÊt nh÷ng ch¬ng tr×nh xö lý v¨n b¶n, v× mäi s¶n phÈm cña c¸c ch¬ng tr×nh nµy sÏ ®Òu t¬ng thÝch. Víi nhiÒu lo¹i ch¬ng tr×nh øng dông kh¸c vÊn ®Ò còng t¬ng tù, nÕu cã thÓ m« t¶ ®Çu vµo vµ ®Çu ra b»ng XML. Víi XML m¹ng Web sÏ thùc sù lµ mét m¹ng th«ng tin quèc tÕ, v× ch÷ viÕt cho mäi níc ®Òu sÏ ®îc thÓ hiÖn b»ng mét chuÈn thèng nhÊt. Mäi ch¬ng tr×nh ®Òu cã thÓ ®îc dïng t¹i kh¾p n¬i trªn thÕ giíi b»ng c¸ch thay ®æi ng«n ng÷ giao diÖn mét c¸ch dÔ dµng h¬n hiÖn nay. Mét thÝ dô ¶nh hëng cña XML lªn trªn viÖc x¸c ®Þnh c¸c chuÈn : ng«n ng÷ IDL cña CORBA cã thÓ ®îc viÕt l¹i mét c¸ch rÊt dÔ dµng díi d¹ng XML, v× IDL còng chØ lµ mét v¨n b¶n cã cÊu tróc díi d¹ng con ngêi ®äc ®îc. VËy th× c¸c ch¬ng tr×nh kh¸ch hµng vµ phôc vô còng cã thÓ trao ®æi víi nhau b»ng ng«n ng÷ XML víi mét DTD ®Æc thï t¬ng thÝch víi IDL. §ã lµ ý ®å c¬ b¶n n»m ®»ng sau ®Ò nghÞ chuÈn SOAP (Simple Object Acces Protocol). ChuÈn nµy do Microsoft ®Ò nghÞ vµ ®ang ®îc bµn c·i. NÕu so s¸nh SOAP víi GIOP vµ IIOP th× ta nhËn thÊy : SOAP cã chøc n¨ng t¬ng tù víi IIOP, nhng thay v× dïng IIOP ®Ó chuyªn chë GIOP th× SOAP dïng HTTP ®Ó chuyªn chë XML víi nh÷ng chøc n¨ng t¬ng tù vµ ®¬n gi¶n h¬n GIOP :
Tuy nhiªn, ®©y lµ nh÷ng vÊn ®Ò cßn ®ang ®îc bµn c·i, triÓn khai, vµ cã thÓ thay ®æi. Cha cã kÕt luËn râ rµng, nhng rÊt ®¸ng theo dâi. Cã lÏ híng trong tu¬ng lai gÇn lµ OMG vµ W3C ph¶i céng t¸c ®Ó cã mét gi¶i ph¸p toµn bé gi÷ ®îc c¶ u ®iÓm cña XML vµ CORBA.u ®iÓm cña ph¬ng ph¸p nµy lµ sö dông l¹i ®îc nh÷ng c«ng cô vµ hÖ thèng ®· cã s½n v× thÕ ®a vµo dïng rÊt nhanh chãng. §Æc biÖt lµ kh«ng bÞ xung ®ét víi chøc n¨ng têng chÆn löa, v× têng chÆn löa kh«ng ng¨n chÆn HTTP. Gi¶i ph¸p cña GIOP/IIOP tuy còng qua ®îc têng chÆn löa nhng cÇn n©ng cÊp c¸c têng chÆn löa hiÖn cã, v× dïng mét ch©n c¾m (socket) cho giao thøc TCP/IP kh¸c víi ch©n c¾m cña HTTP. Mét u ®iÓm n÷a cña SOAP lµ v× dïng XML nªn cã kh¶ n¨ng më réng dÔ dµng néi dung vµ cÊu tróc cña c¸c th«ng ®iÖp. Nhng c¸c u ®iÓm nµy còng lµ nhîc ®iÓm v× HTTP kh«ng cho kÕt nèi l©u dµi (persistent connection), chØ cã hái vµ tr¶ lêi lµ hÕt (chÝnh v× thÕ OMG ®· dïng IIOP trªn mét ch©n c¾m kh¸c). SOAP hiÖn nay míi dïng cho nh÷ng øng dông ®¬n gi¶n, nÕu muèn nèi l©u dµi th× còng ph¶i x©y dùng lªn trªn HTTP mét kh¶ n¨ng nèi l©u dµi gi÷a kh¸ch hµng vµ tr¹m phôc vô. Thªm n÷a v× SOAP chuyªn chë th¼ng XML nªn dµi dßng h¬n, chËm vµ tèn gi¶i tÇn cña m¹ng h¬n. §iÒu nµy kh«ng ®¸ng ng¹i l¾m, ®¸ng ng¹i h¬n lµ mçi lÇn c¸c sù vËt gäi nhau qua SOAP l¹i ph¶i th«ng dÞch giao diÖn viÕt b»ng XML, hiÖu n¨ng sÏ rÊt thÊp so s¸nh víi IDL lµ mét ng«n ng÷ biªn dÞch mét lÇn råi th«i. Tõ ®ã suy ra, víi t×nh tr¹ng hiÖn nay, viÖc chän lùa XML/SOAP hay IDL(biªn dÞch)/IIOP tïy thuéc tÇn sè vµ c¸ch thøc liªn hÖ cña c¸c sù vËt. 5. JAVA
Ng«n ng÷ Java do h·ng SUN s¸ng t¹o vµ ph¸t triÓn tõ ®Çu nh÷ng n¨m 90, nã trë thµnh rÊt ®îc a chuéng tõ kho¶ng bèn n¨m n¨m nay, nhê ë mét sè ®Æc ®iÓm hÕt søc thÝch hîp víi m¹ng Internet, hiÖn ®· bïng næ trªn toµn thÕ giíi, vµ ®a tíi yªu cÇu ph¸t triÓn nh÷ng øng dông cho Internet. Java lµ mét ng«n ng÷ lËp tr×nh hoµn chØnh 11 ®îc thiÕt kÕ theo híng sù vËt vµ kÕ thõa cã n©ng cÊp cña nh÷ng ng«n ng÷ lËp tr×nh ®i tríc nã :
Nh÷ng ®Æc tÝnh kÓ trªn cã thÓ ®îc coi nh ®· tæng hîp vµ rót kinh nghiÖm kh¸ tèt nh÷ng kü thuËt cæ ®iÓn. Nhng cßn ®¸ng chó ý h¬n, Java thªm vµo nh÷ng ®Æc thï míi khiÕn cho nã ®¸p øng ®îc nh÷ng nhu cÇu cña thêi ®¹i lµ viÖc xö lý ph©n t¸n trªn nh÷ng hÖ m¸y kh«ng thuÇn nhÊt, dùa trªn c¸c m¹ng th«ng tin hÑp, võa hay réng, vµ theo giao diÖn WWW cña Internet. §ã lµ :VÒ mÆt có ph¸p, Java rÊt gièng C++, ng«n ng÷ lËp tr×nh híng sù vËt phæ biÕn nhÊt hiÖn nay, nhng : Java lo¹i ra khái C++ nh÷ng kh¶ dông (facilities) qu¸ m¹nh nhng khã vµ Ýt dïng, hoÆc thõa vÒ mÆt ng«n ng÷ : kh«ng cã kiÓu d÷ liÖu cÊu tróc (structure) cña C hay C++, v× cã thÓ thay thÕ dÔ dµng b»ng nh÷ng sù vËt ®Æc thï ; kh«ng cho phÐp sù kÕ thõa nhiÒu líp (multiple inheritance), nhng t¹o ra kh¸i niÖm 'líp bªn trong' (inner class) cho phÐp thùc hiÖn nh÷ng chøc n¨ng t¬ng ®¬ng trong nhiÒu trêng hîp mét c¸ch chÆt chÏ (nhng còng h¬i nÆng nÒ) h¬n. Kh«ng cho phÐp thao t¸c sè häc trªn kiÓu con trá (pointer, mµ Java gäi lµ handle), v× ®©y lµ nguån gèc cña nh÷ng 'con bä ' kh«ng thÓ ph¸t hiÖn khi biªn dÞch... V× vËy ®èi víi nh÷ng ngêi lËp tr×nh chuyªn nghiÖp ®· quen víi C hay C++ th× Java kh«ng linh ®éng vµ hiÖu n¨ng b»ng C hay C++ ®Ó lµm nh÷ng ch¬ng tr×nh lín vµ phøc t¹p. §©y chØ lµ vÊn ®Ò thãi quen, v× tuy r»ng víi cïng chøc n¨ng th× ch¬ng tr×nh Java cã thÓ dµi vµ chËm h¬n, nã dÔ hiÓu vµ dÔ chØnh lý h¬n. §ã l¹i chÝnh lµ ®iÒu quan träng nhÊt trong nh÷ng ch¬ng tr×nh lín. MÆt kh¸c th× Java cßn cao cÊp h¬n C++ ë nhiÒu mÆt : §ã lµ mét ng«n ng÷ ®a m¹ch (multi-thread), cho phÐp thùc hiÖn nhiÒu m¹ch song hµnh, còng nh ADA hay nhiÒu ng«n ng÷ 'thêi gian thùc' kh¸c. §ång thêi, víi viÖc khëi ®éng vµ ®ãng c¸c m¹ch hay/vµ sù vËt th× ng«n ng÷ Java kh«ng cã c¸c lÖnh xin vµ tr¶ bé nhí, v× gi¶ thiÕt m¸y ¶o Java (JVM, Java Virtual Machine, xem sau ®©y) cã bé phËn tù ®éng qu¶n lý 12 bé nhí. 6. C«ng nghÖ t¸c töTheo g¬ng PASCAL, Java lµ mét ng«n ng÷ nöa biªn dÞch (compilation) nöa th«ng dÞch (interpretation). C¸c ch¬ng tr×nh Java ®îc biªn dÞch thµnh mét chuçi gi¶ lÖnh (gäi lµ byte code, tu¬ng tù nh p-code cña PASCAL) ng«n ng÷ gi¶ lÖnh nµy ®îc mét m¸y ¶o Java (JVM) th«ng dÞch ngay thµnh ng«n ng÷ m¸y, khi ch¬ng tr×nh ho¹t ®éng. BÊt cø lo¹i m¸y nµo muèn sö dông Java chØ cÇn ®îc cµi ®Æt mét JVM, chuyÖn t¬ng ®èi dÔ dµng, vµ khi ®ã thõa hëng ®îc tÊt c¶ c¸c ch¬ng tr×nh viÕt cho Java, kÓ c¶ bé biªn dÞch Java. Nhng ®iÒu ®ã kh«ng ph¶i lµ lý do chñ chèt cña thµnh c«ng, v× nÕu thÕ th× PASCAL ®· chiÕm l·nh vÞ trÝ thîng phong nµy tõ h¬n 20 n¨m tríc. YÕu tè khiÕn b©y giê kh¸i niÖm gi¶ lÖnh trë thµnh kh«ng thÓ thiÕu lµ c«ng nghÖ t¸c tö vµ Internet : ngêi ta cã thÓ göi tíi bÊt cø m¸y nµo trªn thÕ giíi cã JVM (hay bé th«ng dÞch Javascript) mét øng dông nhá hay mét t¸c tö Java (hoÆc Javascript) ®Ó ®îc thùc hiÖn ngay tøc kh¾c. Vµ ®ã lµ trêng hîp cña hÇu nh tÊt c¶ c¸c m¸y tÝnh hiÖn nay, ®Æc biÖt lµ c¸c m¸y PC víi kh¶ n¨ng nhËp m¹ng Internet qua Internet Explorator cña Microsoft, hay Netscape Navigator. Khi thùc hiÖn nh÷ng lÖnh m¸y tõ n¬i kh¸c göi ®Õn cã nguy c¬ lµ phÇn mÒm cña m¸y bÞ ph¸ huû hay th«ng tin bÞ chÐp tr¸i phÐp tõ nh÷ng sai lÇm v« t×nh hay h÷u ý. V× thÕ bé gi¶ lÖnh cña Java chØ cho phÐp göi ®i mét lo¹i øng dông nhá (applet) kh«ng ®îc phÐp truy nhËp vµo hÖ thèng d÷ liÖu cña m¸y chñ nhµ. §iÒu nµy kh¸c víi c¸c ch¬ng tr×nh chÝnh cña Java, còng nh viÖc c¸c ch¬ng tr×nh chÝnh cã thÓ (vµ applet kh«ng thÓ) ®îc biªn dÞch th¼ng ra ng«n ng÷ m¸y ®Ó t¨ng hiÖu n¨ng nÕu cÇn. §Ó tr¸nh nguy c¬ phÇn mÒm bÞ ph¸ huû th× kü thuËt nguy hiÓm nhÊt, thao t¸c sè häc trªn con trá, ®· bÞ lo¹i. Cßn l¹i mét sai lÇm hay xÈy ra n÷a lµ thao t¸c sai vÒ c¸c chØ sè (index) cña cÊu tróc b¶ng, khiÕn cho ch¬ng tr×nh cã thÓ viÕt ra ngoµi b¶ng vµ ph¸ ho¹i bé nhí cña m¸y. §ã lµ lý do t¹i sao JVM nhÊt thiÕt ph¶i kiÓm ®iÓm chØ sè mçi lÇn truy nhËp b¶ng, trong khi th«ng dÞch gi¶ lÖnh (còng nh mét lùa chän cho phÐp nhng Ýt khi ®îc dïng cña tr×nh biªn dÞch PASCAL). Víi nh÷ng thËn träng 'di truyÒn' nh thÕ th× kh«ng thÓ viÕt ®îc mét øng dông con cã thÓ lµm háng (vÒ néi dung) bé nhí hay bé ®Üa cña m¸y chñ nhµ. Tuy nhiªn, khi biªn dÞch hay th«ng dÞch kh«ng cã c¸ch nµo ph¸t hiÖn mét ch¬ng tr×nh ph¹m vµo lçi 'quay vßng v« h¹n ®Þnh' vµ tõ ®ã còng cã thÓ tiªu dïng tÊt c¶ tµi nguyªn (resource) cho phÐp cña m¸y vµ lµm nã yÕu ®i rÊt nhiÒu. Nh÷ng ngêi quen th©m nhËp Internet ®Ó ®i tíi nh÷ng trang nhµ (home page) xa l¹ ®Òu cã kinh nghiÖm vÒ hiÖn tîng nµy vµ c¸ch duy nhÊt lµ dïng c¸c lÖnh u tiªn cña hÖ ®iÒu hµnh ®Ó giÕt c¸c øng dông nhá lo¹i ®ã. HiÖn tîng nµy ch¾c sÏ cßn lan truyÒn do thiÕu c¸c 'Web-master ' cã tr×nh ®é, vµ ai còng cã thÓ tù m×nh häc lÊy vµ lµm 'Web-master '. ThÕ nhng, gi¸ ph¶i tr¶ cho nh÷ng thËn träng nãi trªn lµ : Java t¬ng ®èi chËm h¬n kh¸ nhiÒu so víi nh÷ng ng«n ng÷ kh¸c. Theo nh÷ng ®o ®¹c ®· ®îc thùc hiÖn th× nÕu dïng JVM thuÇn tuý (nh b¾t buéc ®èi víi c¸c applet) Java chËm h¬n C++ trªn díi 20 lÇn tuú theo øng dông. Vµ nhiÒu t¸c gi¶ cho r»ng (chñ yÕu v× viÖc kiÓm tra thêng trùc c¸c chØ sè) c¸c cè g¾ng tèi u ho¸ (nh biªn dÞch th¼ng ra ng«n ng÷ m¸y) còng kh«ng thÓ nµo lµm cho Java chËm Ýt h¬n kho¶ng 3 lÇn so víi C++. MÆc dï vËy trªn thùc tÕ hiÖn nay phong trµo ph¸t triÓn b»ng Java vÉn ngµy cµng m¹nh, vµ nh÷ng ngêi lµm tin häc øng dông, trõ nh÷ng n¬i cÇn tÝnh to¸n khoa häc kü thuËt nhanh vµ nhiÒu, kh«ng ai cho r»ng søc xö lý cña Java lµ mét trë ng¹i 13. Thùc tÕ lµ c¸c tr¹m vÊn tin ®· qu¸ thõa th·i søc xö lý vµ trªn c¸c tr¹m phôc vô th× nãi chung còng thÕ, chñ yÕu ngêi ta cÇn vËn tèc truy nhËp vµo c¸c bé ®Üa. NÕu Java l¹i cho phÐp thùc hiÖn dÔ dµng c¸c hÖ ph©n t¸n (dùa trªn CORBA, hoÆc RMI, Remote Method Invocation, mét ORB riªng cña SUN ) th× ®· qu¸ bï trõ l¹i ®îc ®iÓm yÕu cña nã, do hiÖn tîng thiÕt bÞ ngµy cµng rÎ so víi nh©n lùc cÇn thiÕt ®Ó ph¸t triÓn c¸c øng dông trong CNTT. Cuèi cïng, ®Æc ®iÓm hÊp dÉn vµ hiÖn ®¹i cña Java lµ : nã ®îc tung ra cïng mét lóc víi c¶ mét th viÖn ch¬ng tr×nh ®Çy ®ñ ®Ó cho phÐp lµm viÖc víi mµn h×nh, coi ng«n ng÷ HTML (Hyper-text Mark-up Language) nh lµ hÖ thèng vµo ra chñ yÕu chø kh«ng ph¶i nh÷ng dßng ch÷ nh c¸c ng«n ng÷ cæ ®iÓn kh¸c. TÊt c¶ nh÷ng g× ta thÊy qua viÖc truy nhËp Internet hiÖn nay lµ ®îc viÕt b»ng HTML. Sau nµy trong Java sÏ thay thÕ HTML b»ng XML. ThuËt ng÷ t¸c tö tho¸t thai tõ m«i trêng nghiªn cøu vÒ trÝ tuÖ nh©n t¹o, tõ cuèi nh÷ng n¨m 80 ngêi ta ®· nãi tíi c¸c t¸c tö ph©n t¸n. T¸c tö lµ g× ? vÒ lËp tr×nh cã thÓ hiÓu t¸c tö mét c¸ch gi¶n dÞ nh lµ mét sù vËt ho¹t ®éng tÝch cùc mét c¸ch thêng trùc trong mét m¸y tÝnh nµo ®ã, chø kh«ng ph¶i nh nh÷ng sù vËt th«ng thêng chØ thô ®éng chê ®îi c¸c th«ng ®iÖp göi tíi nã råi míi khëi ®éng mét ph¬ng ph¸p nµo ®ã do th«ng ®iÖp yªu cÇu. TÝch cùc cã nghÜa lµ t¸c tö lu«n lu«n kh¶o s¸t khung c¶nh chung quanh nã (ch¼ng h¹n b»ng mét quay vßng v« h¹n ®Þnh), vµ cã thÓ tù ®éng ph¶n øng víi nh÷ng thay ®æi chung quanh nã. NghÜa lµ t¸c tö cã mét trÝ tuÖ nhÊt ®Þnh nµo ®ã x¸c ®Þnh bëi m«i trêng nã kh¶o s¸t vµ nh÷ng ph¶n øng cã thÓ cña nã, tuy r»ng dï sao ch÷ 'trÝ tuÖ ' ë ®©y còng chØ lµ mét sù l¹m ph¸t danh tõ nh thêng thÊy trong tin häc14.
Kh¸i niÖm Êy kh¸ m¬ hå : ë møc ®é thÊp nhÊt m«i trêng ®ã ®îc gi¶n lîc vµo b¶n liÖt kª c¸c th«ng ®iÖp göi tíi nã cïng víi nh÷ng ph¬ng ph¸p t¬ng øng nã ph¶i thùc hiÖn ; nh thÕ t¸c tö chØ lµ mét sù vËt tin häc, kh«ng h¬n kh«ng kÐm. Khã cã thÓ x¸c ®Þnh møc trÝ tuÖ cao nhÊt cña t¸c tö, ë ®©y chØ ghi chó l¹i t×nh tr¹ng tiÕn triÓn hiÖn nay víi hy väng ®em l¹i mét ý niÖm s¬ lîc vÒ kh¶ n¨ng cña nã. §iÒu ®¸ng chó ý lµ trõ nh÷ng t¸c tö cè ®Þnh vµ ®éc lËp, hÇu hÕt c¸c nghiªn cøu vµ ph¸t triÓn vÒ t¸c tö di ®éng ®Òu dùa trªn chuÈn CORBA, chuÈn XML vµ ng«n ng÷ Java.
Mçi t¸c tö cã hai kÝch thíc kh«ng hoµn toµn ®éc lËp víi nhau : ®ã lµ tÝnh di ®éng vµ tÝnh cã trÝ tuÖ. Cµng di ®éng cao cµng Ýt cã trÝ tuÖ vµ ngîc l¹i, nhng dÜ nhiªn víi tiÕn triÓn kü thuËt th× vÉn cã thÓ t¨ng cêng vÒ c¶ hai kÝch thíc. Mét t¸c tö di ®éng th× khèi lîng (®o b»ng bÝt) cña nã ph¶i nhá ®Ó dÔ dµng truyÒn qua m¹ng, thªm n÷a nh÷ng n¬i tiÕp nhËn ®Òu ph¶i cã mét khung c¶nh tiÕp ®ãn chung (c¬-së-cho-t¸c-tö-ho¹t-®éng, = t¸c së 15) cho phÐp t¸c tö ho¹t ®éng ®îc, vµ nã l¹i ph¶i ho¹t ®éng víi nh÷ng gi¶ thiÕt tèi thiÓu vÒ nguån tµi nguyªn ë n¬i tiÕp nhËn nã, do ®ã còng ph¶i tù h¹n chÕ chøc n¨ng. HiÖn cã nhiÒu hÖ thèng t¸c së kh¸c nhau ®ang ®îc nghiªn cøu vµ ph¸t triÓn, vµ ®Ò nghÞ vÒ chuÈn cho c¸c t¸c së. Cßn mét t¸c tö cè ®Þnh th× kh«ng bÞ nh÷ng h¹n chÕ ®ã. HiÖn nh÷ng t¸c tö cã trÝ tuÖ ®Òu cè ®Þnh, tuy cã thÓ hîp thµnh mét côm t¸c tö céng t¸c vµ trao ®æi víi nhau qua m¹ng réng hay hÑp.
6.1. TÝnh di ®éng
Trong kÝch thíc di ®éng cã thÓ xÕp t¸c tö vµo c¸c lo¹i : cè ®Þnh, n¹p tõ xa ®îc (telechargeable), vµ thùc sù di ®éng. C¸c t¸c tö lo¹i cuèi nµy cã thÓ tù di chuyÓn ®i nhiÒu n¬i, cßn c¸c t¸c tö n¹p tõ xa th× chØ ®i tõ tr¹m phôc vô tíi tr¹m kh¸ch hµng.
6.2. TÝnh trÝ tuÖMét thÝ dô cña t¸c tö cè ®Þnh lµ t¸c tö gióp ®ì (help agent) trong hÖ v¨n phßng MS Office, mét thÝ dô ®¬n gi¶n trong ®ã t¸c tö chØ t¬ng t¸c víi nh÷ng ch¬ng tr×nh n»m t¹i chç mét c¸ch thêng trùc nhng kÝn ®¸o, nã chØ nh¶y ra khi nhËn thÊy ngêi dïng cã vÎ ®· thao t¸c sai khi dïng mét dÞch vô nµo ®ã (vÒ sù h÷u Ých cña nã th× xin miÔn bµn, cã ngêi thÝch cã ngêi kh«ng). Trong nhiÒu ®Ò ¸n nghiªn cøu hiÖn nay nh÷ng t¸c tö cã chøc n¨ng trÝ tuÖ cao nhÊt thêng cè ®Þnh vµ thêng céng t¸c víi nhau trong mét nhãm n»m ë nhiÒu n¬i trªn m¹ng. Mét thÝ dô vÒ t¸c tö n¹p tõ xa lµ c¸c r«b«t t×m kiÕm quy chiÕu trong m¹ng Web cña c¸c h·ng lµm dÞch vô t×m kiÕm th«ng tin trªn m¹ng nh Yahoo hay Altavista. C¸c r«b«t nµy thêng xuyªn ®îc göi ®i tõ c¸c c¬ së tµi liÖu rÊt lín cña c¸c h·ng trªn, tíi c¸c kho chøa c¸c trang Web, ®Ó ®em vÒ cËp nhËt mçi ngµy vµ tÝch tô cho tíi nay hµng tû nh÷ng URL vµ s¾p xÕp chóng theo ch÷ kho¸ (keywords). Tõ ®ã phôc vô ®îc sù t×m kiÕm th«ng tin cña hµng tr¨m triÖu ngêi kh¸ch Internet trªn thÕ giíi. DÜ nhiªn c¸c applet hay cookies còng cã thÓ ®îc coi lµ thø t¸c tö ®¬n gi¶n nhÊt trong lo¹i nµy. §iÒu kiÖn ®Ó c¸c t¸c tö n¹p tõ xa ho¹t ®éng ®îc lµ trong m¸y chñ nhµ ph¶i ®· ®îc cµi ®Æt JVM, m¸y ¶o Java (hay Javascript). HiÖn trªn thÞ trêng cha cã nh÷ng t¸c tö thùc sù di ®éng. ViÖc thùc hiÖn nh÷ng t¸c tö lo¹i nµy khã h¬n nhiÒu v× ®ã ph¶i lµ mét tËp hîp Ýt ra lµ hai t¸c tö trong ®ã mét lµ cè ®Þnh, hîp t¸c víi nhau trong m¹ng réng 16 . Do ®ã ngoµi viÖc ®ßi hái c¸c n¬i chÊp nhËn chóng, ngoµi c¸c chøc n¨ng t¸c së riªng (trong ®ã dÜ nhiªn cã JVM), cßn ph¶i gi¶i quyÕt vÊn ®Ò di ®éng cña t¸c tö, tøc lµ sÏ ph¶i n©ng cÊp CORBA 3 lªn mét møc kh¸ cao ®Ó thø nhÊt lµ theo dâi, theo thêi gian thùc, viÖc thay ®æi ®Þa chØ ; vµ thø hai lµ chuyªn chë ®îc XML v× cã phÇn ch¾c lµ ng«n ng÷ trao ®æi gi÷a c¸c t¸c tö (ACL, Agent Communication Language) sÏ dùa trªn XML. §©y cßn lµ chñ ®Ò cho nhiÒu nghiªn cøu vµ thö nghiÖm ®ang ®îc tÝch cùc tiÕn hµnh. M« t¶ tÝnh trÝ tuÖ cña t¸c tö lµ ®iÒu kh«ng ®¬n gi¶n, kh«ng cã mét chØ tiªu tuyÕn tÝnh tõ thÊp tíi cao. Díi ®©y lµ mét vµi khÝa c¹nh kh¸c nhau ®Ó ®¸nh gi¸, theo ngêi viÕt bµi t×m hiÓu, danh s¸ch nµy còng h¬i kh¸c nhau tuú t¸c gi¶. Nh chóng ta sÏ thÊy, nh÷ng ®Æc ®iÓm vÒ trÝ tuÖ nµy thõa hëng mét qu¸ tr×nh l©u dµi nh÷ng nghiªn cøu vµ ph¸t triÓn trong ngµnh trÝ tuÖ nh©n t¹o. Nh÷ng kh¸i niÖm sÏ ®îc ®Ò cËp, tuy r»ng cÇn ®îc hiÓu theo lu ý ®· nãi trªn vÒ sù l¹m ph¸t ng«n tõ, ch¾c r»ng sÏ ¶nh hëng m¹nh ®Õn nh÷ng ph¬ng ph¸p vµ ng«n ng÷ lËp tr×nh tu¬ng lai.
Cã môc tiªu : T¸c tö, còng nh bÊt cø ch¬ng tr×nh nµo kh¸c, ®îc viÕt ra nh»m môc ®Ých gi¶i quyÕt mét vÊn ®Ò nµo ®ã. §iÒu míi lµ trong c¸c ch¬ng tr×nh cæ ®iÓn th× môc ®Ých gi¶i quyÕt kh«ng ®îc m« t¶ trong ch¬ng tr×nh, ch¬ng tr×nh thùc hiÖn nã nhng kh«ng nãi tíi nã. Trong t¸c tö ®iÒu nµy cã thÓ ®îc m« t¶ hiÓn hiÖn thµnh môc tiªu râ rµng viÕt trong b¶n th©n ch¬ng tr×nh t¸c tö. §iÒu Êy cho phÐp sö dông nh÷ng gi¶i thuËt mÒm dÎo dùa trªn c¸c tham sè cã thÓ thay ®æi víi thêi gian sau khi so s¸nh (tù ®éng hay kh«ng) kÕt qu¶ víi môc tiªu, nhê ë tÝnh tù qu¶n (autonomy) vµ tù thÝch nghi (auto adaptation). "Tù qu¶n vµ tù thÝch nghi ®Ó tiÕn ®Õn mét môc tiªu" lµ mét m« thøc (paradigm, nÕp suy nghÜ vµ ho¹t ®éng trong mét ngµnh nµo ®ã) thõa hëng tõ nh÷ng nghiªn cøu vÒ r«b«t. Tù qu¶n : Tù qu¶n tríc hÕt cã nghÜa lµ t¸c tö tÝch cùc ho¹t ®éng mét c¸ch thêng trùc, kh«ng chØ thô ®éng ph¶n øng tríc nh÷ng sù kiÖn rêi r¹c xÈy ra víi nã. T¸c tö lu«n lu«n xem xÐt m«i trêng chung quanh nã vµ cã ý thøc vÒ thêi gian. §Ó lµm ®îc nh thÕ t¸c tö cÇn cã bé nhí gi÷ l¹i nhiÒu tr¹ng th¸i biÕn ®æi (vµ cã thÓ tù biÕn ®æi theo thêi gian) trong 'cuéc ®êi ' cña nã, vµ cã thÓ mét lóc nµo ®ã tù ®éng thùc hiÖn mét ®iÒu cÇn thiÕt. Tù thÝch nghi : Mét t¸c tö cã trÝ tuÖ ph¶i biÕt tù thÝch nghi ®Ó tù n©ng cao kh¶ n¨ng víi thêi gian. Muèn thùc hiÖn ®iÒu ®ã thêng lµ bé nhí thêng trùc cña t¸c tö ®îc tæ chøc theo kiÓu hÖ chuyªn gia (xem ®o¹n vÒ b¶n luËn phÝa sau), cã mét c¬ së c¸c d÷ liÖu vÒ sù kiÖn vµ mét c¬ së c¸c quy luËt diÔn dÞch (inference rules). Thªm vµo ®ã lµ mét quy tr×nh häc hay tù häc gåm nh÷ng quy luËt ®¸nh gi¸ kÕt qu¶ hµnh ®éng qu¸ khø b»ng c¸ch so s¸nh víi môc tiªu. Ngêi ta thÊy ë ®©y gia s¶n cña c¸c nghiªn cøu vÒ trÝ tuÖ nh©n t¹o vµ c¸ch lËp tr×nh theo l«gÝch nh trong ng«n ng÷ Prolog ... BiÕt trao ®æi vµ th¬ng lîng : Khi mét tËp hîp nhiÒu t¸c tö céng t¸c víi nhau th× mét t¸c tö nµo ®ã ph¶i biÕt c¸ch ®i t×m mét hay nh÷ng t¸c tö kh¸c cã chøc n¨ng m×nh cÇn. Nhng v× ®èi tîng còng lµ mét t¸c tö cã kh¶ n¨ng tù qu¶n vµ ®éc lËp cao nªn kh«ng ch¾c nã ®· chÊp nhËn c«ng viÖc nhê cËy lóc Êy ! trong ng«n ng÷ trao ®æi gi÷a hai bªn khi Êy ph¶i cã mét thñ tôc th¬ng lîng nµo ®ã. §©y lµ ®iÓm míi trong m« thøc t¸c tö kh«ng cã trong m« thøc sù vËt, quan hÖ gi÷a hai sù vËt cã tÝnh mÖnh lÖnh, quan hÖ gi÷a hai t¸c tö cã tÝnh ngang hµng h¬n, tuy r»ng viÖc nµy cã thÓ thùc hiÖn b»ng nh÷ng c«ng cô lËp tr×nh híng sù vËt.
Mét thÝ dô cña t¸c tö cã trÝ tuÖ hay ®îc nãi ®Õn lµ lo¹i t¸c tö t×m kiÕm th«ng tin. Nh hiÖn nay th× viÖc nµy gåm hai phÇn : phÇn cè ®Þnh n»m trong tr¹m chøa kho quy chiÕu URL ®Ó t×m theo nhu cÇu, vµ phÇn cè ®Þnh n»m trong c¸c ch¬ng tr×nh ®äc quÐt (browser) nh Netscape hay IE. ThÕ hÖ hiÖn nay cña c¸c ch¬ng tr×nh phôc vô lo¹i nµy n»m trong kho cña Altavista hay Yahoo thêng chØ chÊp nhËn, tõ ch¬ng tr×nh ®äc quÐt göi ®Õn, nh÷ng c©u hay ch÷ ch×a kho¸ víi mét quan hÖ l«gÝch nµo ®ã gi÷a chóng víi nhau, céng thªm vµi th«ng tin ®Ó thanh läc theo thêi gian, ng«n ng÷ v.v. ; sau ®ã tr¹m phôc vô göi tr¶ l¹i mét danh s¸ch nh÷ng URL, thêng khi võa thõa võa thiÕu.
ThÕ hÖ s¾p tíi cña c¸c ch¬ng tr×nh phôc vô t×m kiÕm th«ng tin, hiÖn ®ang ®îc thö nghiÖm t¹i nhiÒu n¬i, sÏ lµ c¸c t¸c tö cã trÝ tuÖ t¹i c¶ n¬i kh¸ch hµng vµ phôc vô, t¸c tö kh¸ch hµng thÝch hîp víi t¸c tö phôc vô sÏ do tr¹m phôc vô n¹p xuèng m¸y kh¸ch hµng, víi ®iÒu kiÖn m¸y kh¸ch hµng lµ mét t¸c së cho nã. Khi Êy t¸c tö cña kh¸ch hµng sÏ trao ®æi víi ngêi dïng vµ trao ®æi víi tr¹m phôc vô ®Ó chÊp nhËn nh÷ng lÖnh t×m kiÕm 'th«ng minh' h¬n. C¸c t¸c tö cßn cã thÓ dïng b¶n luËn ®Ó hái l¹i ngêi dïng cho râ ý muèn, vµ t×m kiÕm nh÷ng kh¸i niÖm, tõ ng÷ t¬ng ®¬ng kh«ng cÇn cã trong c©u hái v.v. ®Ó ®em l¹i th«ng tin chÝnh x¸c, Ýt nhiÔu vµ ®Çy ®ñ h¬n.
Trong t¬ng lai, khi c¸c t¸c së cña mäi n¬i ®· theo cïng mét chuÈn th× ta cã thÓ tëng tîng kh¸ch hµng göi mét t¸c tö lu ®éng ®Õn nhiÒu kho th«ng tin kh¸c nhau ; theo mét lé tr×nh ®Õn tõng kho th«ng tin ®Ó tù nã t×m kiÕm, thanh läc vµ lo¹i trïng lÆp ; råi l¹i mang theo kÕt qu¶ ®Õn n¬i kh¸c vµ tiÕp tôc c«ng viÖc cho ®Õn khi xong lé tr×nh míi trë vÒ. C¸ch lµm nµy gi¶m th«ng lîng cÇn ®Õn trong m¹ng, thay v× N lÇn ®i vµ N lÇn vÒ th× chØ cÇn N lÇn ®i theo mét vßng, thªm n÷a mçi lÇn th× th«ng tin chuyÓn qua m¹ng còng nhÑ h¬n v× ®· ®îc thanh läc råi (dÜ nhiªn cßn c¸i céng thªm lµ khèi lîng th«ng tin cña b¶n th©n t¸c tö tù di chuyÓn). Cã thÓ suy ra dÔ dµng lµ N cµng lín th× c¸ch ®i vßng cµng cã lîi.
KÞch b¶n ®ã cã thÓ ¸p dông cho nhiÒu sù phôc vô kh¸c, ch¼ng h¹n trong th¬ng m¹i ®iÖn tö : kh¸ch hµng cã thÓ göi mét t¸c tö víi nh÷ng chØ tiªu nhÊt ®Þnh vÒ hµng ho¸, gi¸ c¶ v.v. theo mét vßng ®i ®Õn nhiÒu n¬i b¸n ®Ó chän lùa mÆt hµng vµ quyÕt ®Þnh...
§ã kh«ng hoµn toµn lµ tëng tîng mµ lµ chñ ®Ò cña nhiÒu ®Ò ¸n ®ang ®îc tÝch cùc nghiªn cøu vÒ t¸c tö di ®éng vµ cã trÝ tuÖ.
6.4. Ph¹m vi vµ ®iÒu kiÖn øng dông
Cã mét sù t¨ng trëng hç t¬ng gi÷a c«ng nghÖ m¹ng truyÒn tin vµ c«ng nghÖ t¸c tö. Mét mÆt m¹ng truyÒn tin cµng nhanh vµ cã ®é tin cËy cao th× t¸c dông cña c¸c t¸c tö cµng ®îc ph¸t huy, mÆt kh¸c chÝnh nh÷ng dÞch vô c¬ b¶n cña m¹ng th«ng tin còng sÏ ®îc hç trî bëi c«ng nghÖ t¸c tö. Còng nh cã mét sù t¨ng trëng hç t¬ng kh¸c gi÷a chÊt lîng cña c«ng nghÖ th«ng tin (m¹ng truyÒn tin céng víi thiÕt bÞ tin häc vµ phÇn mÒm), vµ nhu cÇu cña ngêi sö dông.
Víi m¹ng Internet hiÖn nay th× c¸c dÞch vô mµ c«ng nghÖ t¸c tö cã thÓ ®¸p øng nãi chung lµ do c¸c t¸c tö n¹p tõ xa thùc hiÖn. Trong t¬ng lai gÇn c¸c t¸c tö nµy cã thÓ t¨ng thªm trÝ tuÖ vµ lµm tèt h¬n viÖc t×m kiÕm th«ng tin trong kh«ng gian xibe (Ýt nhiÔu, nhanh vµ ®ñ h¬n) b»ng c¸ch thanh läc th«ng tin theo ®óng nhu cÇu c¸ nh©n cña ngêi dïng. C¸c t¸c tö còng sÏ ®îc dïng trong viÖc tù ®éng gi¸m s¸t c¸c th«ng tin trong c¸c ®Ò môc yªu cÇu, vµ chØ lu ý ngêi dïng khi cã c¸c sù cè hoÆc sù kiÖn ®¸ng chó ý ; thÝ dô nh gi¸m s¸t thÞ trêng, gi¸m s¸t c¸c t¸c phÈm, bµi b¸o hay th«ng b¸o chuyªn ngµnh... chän läc vµ ®Ò nghÞ c¸c tiÕt môc gi¶i trÝ / v¨n ho¸, chän läc vµ ®Ò nghÞ c¸c ®Ò tµi du lÞch, n¬i nghØ m¸t ...
MÆt kh¸c c«ng nghÖ t¸c tö còng sÏ ®îc øng dông vµo trong b¶n th©n m¹ng th«ng tin ®Ó cã thÓ qu¶n lý m¹ng tèt h¬n, ch¼ng h¹n b»ng nh÷ng t¸c tö di ®éng gi¸m s¸t chÊt lîng vµ th«ng lîng cña c¸c nót vµ c¸c kªnh trong m¹ng vµ ®em vÒ kÞp thêi nh÷ng th«ng tin b¸o ®éng, thËm chÝ cã thÓ tù thay ®æi c¸c cÊu h×nh cña m¹ng th«ng tin ®Ó ph¶n øng nhanh tríc c¸c sù cè. §©y lµ nh÷ng ®Ò tµi nghiªn cøu cã thÓ trë thµnh hiÖn thùc trong t¬ng lai kh«ng xa.
Trong t¬ng lai xa h¬n, nhng cã lÏ kh«ng qu¸ mét thËp kû, v× ®· cã nh÷ng tiÒn ®Ò kinh tÕ kü thuËt rÊt râ rµng, t¹i ¢u Mü m¹ng th«ng tin cho mäi ngêi sÏ nhanh h¬n b©y giê hµng tr¨m lÇn, vµ nh thÕ cã thÓ nghÜ ®Õn nh÷ng t¸c tö di ®éng vµ cã trÝ tuÖ, ®èi tîng nghiªn cøu kh¸ 'nãng' hiÖn nay. Ch¼ng h¹n, ®iÒu nµy cã thÓ phôc vô cho nh÷ng nhãm lµm viÖc chuyªn ngµnh (trong bÊt cø ngµnh nµo) n»m ë kh¾p n¬i trªn thÕ giíi vµ ngêi trong nhãm cã thÓ tù do di chuyÓn. Trong m¸y tÝnh x¸ch tay cña mçi ngêi sÏ cã nh÷ng t¸c tö ®éc lËp phô gióp trong sinh ho¹t riªng, còng nh cã nh÷ng t¸c tö phô gióp trong sinh ho¹t nghÒ nghiÖp vµ b¶n th©n chóng l¹i céng t¸c víi c¸c t¸c tö kh¸c cña nh÷ng ngêi trong nhãm. Nh÷ng t¸c tö di ®éng cña trung t©m qu¶n lý sÏ cã thÓ t×m ®Õn nh©n viªn ë bÊt cø ®©u ®Ó göi/nhËn th«ng tin díi nh÷ng d¹ng c« ®äng vµ ®îc b¶o vÖ an toµn... §Ó ý lµ qua thÝ dô nµy ta thÊy cã hai lo¹i t¸c tö di ®éng, nh÷ng t¸c tö di ®éng v× m¸y tÝnh chøa nã di ®éng, vµ nh÷ng t¸c tö di ®éng v× b¶n th©n nã tù di ®éng qua m¹ng, ®ã lµ lo¹i nãi ®Õn trong bµi nµy. Nh÷ng vÊn ®Ò cña hai lo¹i nµy kh«ng ®éc lËp víi nhau.
Nhng cÇn nªu mét vÊn ®Ò chñ chèt cÇn (vµ cha) gi¶i quyÕt tháa ®¸ng ë møc chuÈn quèc tÕ : khã cã thÓ h¹n chÕ c¸c tµi nguyªn cña mét t¸c së ®èi víi t¸c tö cã trÝ tuÖ vµo nh÷ng giíi h¹n qu¸ h¹n hÑp mµ JVM dµnh cho nh÷ng øng dông con n¹p tõ xa nh hiÖn hay, tuy r»ng nh ta ®· thÊy, chØ thÕ th«i còng cßn cha hoµn toµn æn tho¶. Nh vËy th× cÇn tæ chøc kho d÷ liÖu vµ hÖ ®iÒu hµnh cña t¸c së ®Ó cã phÇn c«ng céng vµ phÇn riªng t, ®©y kh«ng ph¶i lµ c¸i g× khã l¾m. VÊn ®Ò thø hai quan träng h¬n lµ ®Ó b¶o vÖ an toµn c¸c t¸c së còng cÇn chØ chÊp nhËn nh÷ng t¸c tö 'tin cËy ®îc' ®Õn th¨m viÕng mµ th«i. Mét ®iÒu thó vÞ lµ híng gi¶i quyÕt cho yªu cÇu nµy ®· cã : ®ã lµ dïng nh÷ng thuËt to¸n cña th¬ng m¹i ®iÖn tö gåm ch÷ ký ®iÖn tö vµ x¸c minh ®iÖn tö.
Mét híng ph¸t triÓn cÇn thiÕt vµ cßn ®Ó ngá lµ cÇn ®em vµo mét ng«n ng÷ nh Java ph¬ng ph¸p lËp tr×nh l«gÝch ®Ó cho phÐp thùc hiÖn dÔ dµng c¸c hÖ diÔn dÞch (inference systems).
6.4 C«ng t¸c chuÈn ho¸
FIPA (Foundation for Intelligent Physical Agent, tæ chøc v× c¸c t¸c tö vËt chÊt cã trÝ tuÖ) ®îc thµnh lËp n¨m 1996 víi môc ®Ých viÕt ra nh÷ng ®Æc t¶ cho t¸c tö trÝ tuÖ thùc hiÖn ®îc trong ng¾n h¹n, ®ång thêi víi viÖc thùc hiÖn nh÷ng ®Ò ¸n cô thÓ nh»m vµo viÖc thö nghiÖm sù céng t¸c gi÷a c¸c t¸c tö ®îc s¶n xuÊt tõ nh÷ng nguån kh¸c nhau.
FIPA ho¹t ®éng theo hai chiÒu. Ho¹t ®éng chiÒu ngang nh»m thùc hiÖn nh÷ng chuÈn ®Æc t¶ c¸c chøc n¨ng nh : qu¶n lý c¸c t¸c tö, ng«n ng÷ trao ®æi gi÷a c¸c t¸c tö, giao diÖn ngêi-m¸y, viÖc tÝch hîp víi nh÷ng phÇn mÒm kh«ng ph¶i t¸c tö, tÝnh di ®éng, an toµn cña t¸c tö, b¶n luËn. Ho¹t ®éng chiÒu däc nh»m viÕt c¸c híng dÉn cµi ®Æt c¸c t¸c tö trong mét vµi ph¹m vi sinh ho¹t ®îc chän läc : phô t¸ cho ngêi du lÞch, phô t¸ cho ho¹t ®éng v¨n phßng, phô t¸ chän lùa c¸c gi¶i trÝ vµ truyÒn h×nh, qu¶n lý m¹ng vµ kÕ ho¹ch ph¸t triÓn m¹ng. C¸c híng dÉn cµi ®Æt nµy ®îc rót ra tõ nh÷ng kinh nghiÖm cña c¸c ®Ò ¸n thö nghiÖm dÉn ®¹o. C¸c ®Ò ¸n nµy theo s¸t vµ ph¶n håi l¹i cho c«ng viÖc lµm chuÈn.
C¸ch ho¹t ®éng nh vËy kh¸ hay, v× nã t¹o ra sù qua l¹i gi÷a hai chiÒu ®Ó ®i ®Õn nh÷ng chuÈn thùc tÕ. Nhng nh vËy ch¾c lµ ph¶i qua nhiÒu ®ît thö nghiÖm, v× vËy kh«ng thÓ cã nhanh c¸c chuÈn æn ®Þnh cho c«ng nghÖ t¸c tö. Cã lÏ ph¶i theo dâi vµ chê ®îi hai ba n¨m n÷a.
MÆt kh¸c tæ chøc OMG còng võa thµnh lËp nhãm lµm viÖc cho chuÈn míi gäi lµ MASIF (Mobile Agent System Interoperability Facility, kh¶ dông cho phÐp c¸c t¸c tö di ®éng cïng vËn hµnh) nh»m t¨ng cêng CORBA ®Ó lµm c¬ së dÞch vô viÔn th«ng cho c¸c t¸c tö di ®éng. OMG vµ FIPA hîp t¸c ( ®iÒu Êy kh«ng cã nghÜa kh«ng cã nh÷ng bµn c·i vµ ®Ò nghÞ kh¸c nhau trªn nh÷ng chuÈn c¶ hai bªn ®Òu quan t©m) chø kh«ng c¹nh tranh, FIPA ®Æt träng t©m vµo khÝa c¹nh trÝ tuÖ, cßn OMG coi nÆng tÝnh di ®éng.
7. KÕt luËn
CORBA, XML, Java vµ t¸c tö ®ang trªn ®µ héi tô ®Ó t¹o thµnh mét m« thøc míi trong viÖc ph¸t triÓn m¹ng th«ng tin vµ dÞch vô CNTT trong thêi ®¹i Internet, mµ ®Æc tÝnh lµ nh÷ng øng dông dÔ dïng, ph©n t¸n vµ di ®éng trong ph¹m vi toµn cÇu. HiÖn nay nh÷ng khã kh¨n vÒ hiÖu n¨ng cña m¹ng Internet còng nh cña c¸c c«ng nghÖ nµy, céng víi t×nh tr¹ng non trÎ cña chóng vµ cña c¸c chuÈn t¬ng øng, cßn cha cho phÐp ph¸t triÓn ®¹i trµ c¸c øng dông. Nhng trong vµi n¨m n÷a c¸c nghiªn cøu vµ ph¸t triÓn sÏ chÝn mïi, chÊt lîng vµ th«ng lîng cña m¹ng th«ng tin sÏ t¨ng cao. Nh thÕ c¸c ®iÒu kiÖn sÏ héi ®ñ ®Ó cho phÐp cã nh÷ng øng dông míi dùa trªn c¸c c«ng nghÖ nµy, vµ cã thÓ tiªn ®o¸n lµ chóng sÏ ®Èy m¹nh nh÷ng thay ®æi trong sinh ho¹t kinh tÕ x· héi cña con ngêi nãi chung, vµ lao ®éng trÝ ãc nãi riªng, trªn c¸i ®µ mµ Internet ®· khëi ®éng.
Tuy nhiªn c¸c c«ng nghÖ CORBA, XML, Java vµ t¸c tö chØ lµ nh÷ng ph¬ng tiÖn vµ ®iÒu kiÖn. Néi dung cña mçi øng dông tuú thuéc c¸c vÊn ®Ò riªng cña mçi ngµnh nghÒ vµ tæng céng l¹i míi lµ khèi lîng c«ng viÖc rÊt lín vµ l©u dµi cho thÞ trêng ph¸t triÓn phÇn mÒm. MÆt kh¸c c«ng nghÖ t¸c tö còng cßn cÇn nhiÒu tiÕn bé c¬ b¶n kh¸c n÷a trong c«ng nghÖ th«ng tin nãi chung, ®Ó trë nªn hÊp dÉn vµ dÔ dïng h¬n : hiÓu vµ viÕt ng«n ng÷ tù nhiªn, ng«n ng÷ lËp tr×nh (Java cha h¼n lµ thiªn ®êng cña ngêi lËp tr×nh), nhËn d¹ng vµ tæng hîp tiÕng nãi, trÝ tuÖ nh©n t¹o, c¬ së d÷ liÖu, ph¬ng ph¸p luËn ph¸t triÓn hÖ mÒm, tæ chøc vµ qu¶n lý m¹ng th«ng tin thÕ giíi ...
8. C¶m t¹
T¸c gi¶ xin c¶m t¹ ë ®©y sù khuyÕn khÝch, gióp ®ì bæ tóc vµ chØnh lý bµi nµy tõ c¸c b¹n : Lª Ph¹m ngng H¬ng, Hå tó B¶o, James §ç, NguyÔn Hoµng, Hå v¨n TiÕn, Ng« trung ViÖt. Mäi sù khiÕm khuyÕt thuéc tr¸ch nhiÖm riªng cña t¸c gi¶.
9. ThAm kh¶o