Ghi chó vÒ chuÈn CORBA, chuÈn XML
ng«n ng÷ Java vµ c«ng nghÖ 't¸c tö'1
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¾t

Nh÷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 ch­a ®­î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 nh­ng l¹i ch­a æ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 ch­a 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 x­a, 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. Nh­ng, 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 ch­a 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, nh­ng 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 ch­a ®­î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... Nh­ng 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¸, nh­ng dÜ nhiªn kh«ng thÓ lµ tÊt c¶.

  • Kh¸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. Nh­ng 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. Nh­ng 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 ch­a 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.
  • 2.2 C¸c m« h×nh quy chiÕu

    §i song song, vµ ®Ó bæ tóc cho c¸c c«ng cô lËp tr×nh hiÖn ®¹i, cÇn nh­ng 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, nh­ng 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. Nh­ng, 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 ch­a ®Çy ®ñ (CORBA 2). CORBA 2 ph¶i sèng víi nh÷ng sai lÇm cña CORBA 1 nh­ng ®· ®­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. Nh­ng ®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 va 3, truong hop noi bang Internet

    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 :

  • 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 nh­ng 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, nh­ng 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.
  • Nh­ng nh­ trªn ®· nãi, trong thùc tÕ CORBA 2 ch­a ®ñ ®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ã ch­a ®Æc t¶ nhiÒu chøc n¨ng quan träng trong ®¬n vÞ chuyÓn ®æi giao thøc, ®Æc biÖt lµ ch­a 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 ch­a 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.
  • 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.

    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. Nh­ng 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.

  • XML (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 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, nh­ng 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, ch­a 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.
  • 4.2. Lîi ®iÓm cña XML

    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, nh­ng tiÒm n¨ng cña nã v­ît lªn trªn kÝch th­íc ®ã kh¸ nhiÒu, nÕu ta l­u ý 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­ :

  • 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.
  • 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 :
  • Mé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.
  • 4.3. §Ò nghÞ chuÈn SOAP

    §ã 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, nh­ng 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 :

  • ­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 nh­ng 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.
  • Nh­ng 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.
  • 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. Ch­a cã kÕt luËn râ rµng, nh­ng 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.

    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ã :

  • 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, nh­ng :
  • Java lo¹i ra khái C++ nh÷ng kh¶ dông (facilities) qu¸ m¹nh nh­ng 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), nh­ng 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Ï (nh­ng 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í.
  • 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. Nh­ng 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µ :
  • 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.
  • Nh­ng ®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 nh­ng Ý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Õ nh­ng, 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.
  • 6. C«ng nghÖ t¸c tö

    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, nh­ng 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.

  • 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 nh­ng 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 ch­a 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.
  • 6.2. TÝnh trÝ tuÖ

    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 l­u ý ®· 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ã nh­ng 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. Nh­ng 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.
  • NÕu c¸c t¸c tö lµ di ®éng th× l¹i cÇn biÕt t×m ®Þa chØ còng nh­ biÕt thÝch øng víi nh÷ng giao thøc cÇn thiÕt cho viÖc liªn hÖ víi ®Þa chØ ®ã. Ng­êi ta cßn muèn nghÜ tíi viÖc thµnh lËp nh÷ng tæ hîp t¸c tö mét c¸ch linh ®éng trong ®ã c¸c t¸c tö cã thÓ tham gia hay rót ®i mét c¸ch tù ®éng. §iÒu nµy ®Æt ra nh÷ng khã kh¨n míi trªn nhiÒu tÇng giao thøc. Tõ ng÷ lµ phÇn quan träng trong b¶n luËn, v× thÕ cÇn ph©n biÖt hai b¶n luËn cã thÓ lµ ®¼ng cÊu (isomorphe, tõ ®iÓn to¸n häc) nh­ng dïng tõ ng÷ kh¸c nhau. ChÝnh nh÷ng thao t¸c ph¸t hiÖn ra c¸c b¶n luËn ®¼ng cÊu, hoÆc h¬i kh¸c nhau nh­ng cã mét phÇn ®¼ng cÊu, cho phÐp ng­êi ta hy väng c¸c t¸c tö biÕt chÊp nhËn nh÷ng kh¸ch hµng dïng ng«n ng÷ tù nhiªn víi nh÷ng phong c¸ch kh¸c nhau. §i xa h¬n n÷a ng­êi ta hy väng tù ®éng dÞch tõ tiÕng n­íc nµy sang tiÕng n­íc kh¸c qua suy luËn cho ®Õn b¶n thÓ nhê ë sù ph¸t hiÖn vµ so s¸nh nh÷ng khung c¶nh ng÷ nghÜa t­¬ng ®ång, mµ kh«ng ph¶i chØ lµ dÞch mét c¸ch v« ý thøc tõng ch÷ mét. Nh­ng mçi b¶n luËn tin häc hiÖn nay chØ lµ mét m¶ng nhá cña hiÖn thùc (tuy kh«ng rÊt nhá nh­ nh÷ng s¬ ®å thùc thÓ quan hÖ dïng trong c«ng nghÖ c¬ së d÷ liÖu) mét bé phËn chñ yÕu ë trong mét ®Ò môc chuyªn m«n nµo ®ã th«i. Kh«ng nh­ 'b¶n thÓ luËn' trong triÕt häc. VÒ SOAP cã thÓ tham kh¶o Microsoft hoÆc ë tr¹m .