ñaët bieät laø khi coù nhieàu client truy xuaát cuøng moät luùc. phöùc taïp. phía client phaûi ñaûm nhaän caû 2 lôùp laø giao dieän vaø chöùc naêng. o Tính toaùn taäp trung ôû server(fat server – thin client): ôû loaïi naøy. naâng caáp vaø do ñoù moâ hình naøy raát thích hôïp vôùi nhöõng öùng duïng coù yeâu caàu thay ñoåi thöôøng xuyeân. 3. CAÙC KIEÁN TRUÙC COM/DCOM VAØ CAÙCH HIEÄN THÖÏC ÖÙNG DUÏNG DÖÏA TREÂN CAÙC KIEÁN TRUÙC NAØY I. Caùc thaønh phaàn COM coù theå ñöôïc lieân keát ñoäng. Ngöôïc laïi vôùi loaïi treân. loaïi naøy giaûm söï löu thoâng giöõa client vaø server. a. cung caáp taát caû nhöõng chöùc naêng coù theå coù cuûa chöông trình cho lôùp giao dieän beân treân. ñaùng tin caäy hôn. Noù chæ ra laøm theá naøo ñeå xaây döïng caùc thaønh phaàn coù theå thay theá moät caùch “ñoäng”. Giôùi thieäu moâ hình laäp trình öùng duïng: 1. Moâ hình ba möùc (3 – tier) client/server: Trong moâ hình 3 möùc. höôùng ñoái töôïng.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng KYÕ THUAÄT VEÀ CAÙC MOÂ HÌNH LAÄP TRÌNH ÖÙNG DUÏNG. II. + Do lôùp chöùc naêng cuûa chöông trình naèm ôû phía client neân khi chöông trình caàn naâng caáp thì seõ raát khoù khaên vì phaûi caäp nhaät laïi chöông trình naèm ôû toaøn boä caùc client. o Thaønh phaàn COM trong suoát veà vò trí. COM cung caáp moät “chuaån” ñeå caùc öùng duïng vaø caùc thaønh phaàn phaûi tuaân theo ñeå chuùng coù theå hoaït ñoäng ñöôïc vôùi nhau. caùc thaønh phaàn khaùc. client ñaûm nhaän phaàn giao dieän coøn server thöïc hieän nhieäm vuï lôùp chöùc naêng vaø lôùp CSDL. Caùc thaønh phaàn COM coù theå ñöôïc ñoùng bao vì noù thoûa maõn caùc raøng buoäc: o Thaønh phaàn COM hoaøn toaøn ñoäc laäp vôùi ngoân ngöõ hieän thöïc noù. caùc chöùc naêng ñöôïc chöùa trong file . COM laø gì ? COM chæ laø moät söï ñaët taû.DLL hoaëc . Caùc thaønh phaàn COM coù theå ñöôïc noái keát vôùi caùc öùng duïng cuõng nhö caùc thaønh phaàn COM khaùc. khaû naêng xöû lyù thaáp coù theå chaïy ñöôïc nhöõng öùng duïng raát lôùn.. Öu ñieåm cuûa moâ hình naøy laø ñôn giaûn. + Do moïi thao taùc naèm treân client neân thao taùc yeâu caàu döõ lieäu giöõa client vaø server nhieàu daãn ñeán toác ñoä chöông trình chaäm. Thaønh phaàn COM caàn phaûi thoûa maõn ñöôïc nhöõng “chuaån” cuûa COM. Thaønh phaàn COM laø gì ? Thaønh phaàn COM laø nhöõng ñoaïn maõ hieän thöïc caùc haøm. Giôùi thieäu sô löôït veà COM: COM (Component Object Model) laø moät caùch thöùc ñeå vieát caùc thaønh phaàn phaàn meàm(software componet) cung caáp caùc chöùc naêng phuïc vuï cho caùc öùng duïng. Vieäc phaân chia öùng duïng thaønh nhieàu lôùp coøn giuùp cho öùng duïng trôû neân deã daøng thay ñoåi. Moâ hình naøy ñöôïc chia laøm hai loaïi: o Tính toaùn taäp trung ôû client hay coøn goïi laø fat client – thin server: ôû loaïi naøy. cung caáp nhöõng chöùc naêng öùng duïng cho ngöôøi duøng vaø nhaän leänh töø ngöôøi duøng cho öùng duïng. lôùp chöùc naêng cuûa chöông trình ñöôïc taùch ra thaønh moät möùc taïo thaønh 3 möùc rieâng bieät. Giao dieän (Interface) GV:Hoà Quang Khaûi 1 . o Thaønh phaàn COM ñöôïc söû duïng döôùi daïng maõ nhò phaân. Giôùi thieäu moâ hình client/server : Moâ hình client/server laø moâ hình coù aûnh höôûng lôùn nhaát ñeán ngaønh coâng ngheä thoâng tin. c. Moâ hình hai möùc (2 – tier) client/server: ÔÛ moâ hình naøy khi client yeâu caàu moät thoâng tin gì ñoù thì client seõ gôûi yeâu caàu ñeán cho server. coøn server chæ ñaûm nhaän nhieäm vuï cuûa lôùp CSDL. o CSDL (Data Access logic): lôùp naøy cung caáp khaû naêng truy xuaát ñeán CSDL cho lôùp chöùc naêng neáu caàn. b. Visual Basic. Thaønh phaàn COM coù theå ñöôïc hieän thöïc baèng nhieàu ngoân ngöõ nhö Visual C++. 2. Vieát moät thaønh phaàn COM cuõng nhö vieát moät haøm API ñoäng.EXE. Java …. Tuy nhieân noù cuõng coù moät soá nhöôïc ñieåm sau: + Do tính toaùn nghieâng veà phía client nhieàu neân ñoøi hoûi client phaûi coù caáu hình ñuû maïnh. Lôùp naøy ñöôïc thieát keá sao cho caøng thaân thieän vôùi ngöôøi duøng caøng toát. Moâ hình client/server giuùp phaùt trieån moät phöông thöùc phaùt trieån öùng duïng môùi laø vieäc phaân chia öùng duïng thaønh nhieàu lôùp thöïc hieän nhöõng chöùc naêng chuyeân bieät. o Thaønh phaàn COM coù theå ñöôïc naâng caáp maø khoâng laøm hoûng chöông trình ñang chaïy. Vieäc taùch lôùp naøy laøm cho caùc phaàn cuûa chöông trình ñoäc laäp hôn. server xöû lyù caùc yeâu caàu töø client gôûi veà ñuùng nhöõng thoâng tin maø client caàn. chöông trình trôû neân linh ñoäng hôn trong vieäc thay theá. o Chöùc naêng (Business logic): ñaây laø phaàn loõi cuûa moät chöông trình. Moâ hình client/server giuùp cho nhöõng maùy tính rieâng leû. thích hôïp cho nhöõng öùng duïng nhoû. caäp nhaät vaø ñaùng tin caäy hôn. Tuy nhieân do coâng vieäc taäp trung nhieàu taïi server neân ñoøi hoûi caáu hình server ñuû maïnh. Moät öùng duïng thoâng thöôøng ñöôïc chia laøm 3 lôùp: o Giao dieän (Presentation logic): lôùp naøy laø caàu noái giöõa ngöôøi duøng vôùi öùng duïng.

Neáu muoán naâng caáp moät giao dieän thì giao dieän môùi phaûi toàn taïi song song vôùi giao dieän cuõ. Xöû lyù ñöôïc vaán ñeà coù nhieàu yeâu caàu taïo thread töø phía nhieàu client. COM trong Windows: Trong Windows. GV:Hoà Quang Khaûi 2 . Client seõ duøng teân naøy ñeå taïo moät ñoái töôïng COM.dll): Trong döï aùn ActiveX (. Teân cuûa döï aùn keát hôïp vôùi teân cuûa class taïo neân ProgID.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng Giao dieän laø taát caû ñoái vôùi COM.exe) trong Visual Basic Khi taïo moät project môùi trong visual basic. Vôùi daïng naøy thì lôïi ñieåm laø deã kieåm soaùt vieäc taïo thread. Windows 98. Ña soá thì ta thieát laäp thuoäc tính naøy laø None. + Project Name : laø teân cuûa döï aùn maø ta ñang taïo. Teân naøy cuõng laø ID cuûa thaønh phaàn COM trong windows registry. caùc thaønh phaàn COM cuõng cuõng nhö giao dieän cuûa COM ñeàu ñöôïc gaùn moät ID. ta coù theå choïn caùc daïng maãu coù saün ñeå taïo moät project môùi. ID cuûa thaønh phaàn COM ñöôïc goïi laø CLSID(class identifier). khi moät client gôûi moät yeâu caàu taïo thread ñeán.exe) Visual Basic seõ töï ñoäng thieát laäp caùc thuoäc tính maëc ñònh cho döï aùn ñoù. + Startup Object : Startup Object cho pheùp ta chæ ñònh lieäu code coù ñöôïc thöïc thi khi thaønh phaàn ñöôïc load leân hay khoâng.dll) hay ActiveX (.dll).Nhöõng lôïi ñieåm cuûa söï löïa choïn Apartment Threaded. . and Windows NT. d. Thread Model cho pheùp ta löïa choïn Single Threaded hoaëc Apartment Threaded.Single Threaded: khi löïa choïn daïng naøy thì moïi client seõ chaïy treân moät thread duy nhaát. Giao dieän khoâng bao giôø thay ñoåi. nhöng taïi moät thôøi ñieåm chæ coù moät client ñöôïc phuïc vuï. nhöng ngöôïc laïi khaû naêng phuïc vuï keùm. Ñeå taïo thaønh phaàn COM ta coù hai löïa choïn daïng COM(. Khi öùng duïng muoán söû duïng COM. code ñöôïc thöïc thi khi visual basic taïo moät theå hieän cuûa class.exe) trong hoäp thoaïi New Project tuøy theo öùng duïng cuûa chuùng ta. . Taát caû caùc ID naøy ñeàu ñöôïc chöùa trong registry cuûa windows cuøng vôùi thoâng tin veà caùc thaønh phaàn hoaëc giao dieän maø noù ñaïi dieän. Sau ñaây laø caùc thuoäc tính cô baûn cuûa moät döï aùn thaønh phaàn COM. Ta coù theå thay ñoåi nhöõng thuoäc tính ñoù ñeå chöông trình thöïc hieän toát hôn. Caùc öùng duïng chæ coù theå nhìn thaáy vaø truy xuaát ñeán caùc thaønh phaàn COM thoâng qua giao dieän cuûa noù. maø thread ñang phuïc vuï cho moät client khaùc thì client vöøa gôûi yeâu caàu phaûi ñôïi cho ñeán khi thread phuïc vuï xong client kia môùi ñaùp öùng lôøi goïi cuûa mình. Töï ñoäng quaûn lyù vieäc cung caáp thread phuïc vuï cho nhieàu client. Caùc ID naøy ñöôïc goïi chung laø GUID(globally unique identifier) laø moät caáu truùc 16 byte vaø ñöôïc xaùc ñònh duy nhaát treân toaøn theá giôùi.dll) hoaëc daïng COM(. . Giao dieän laøm taêng möùc ñoä ñoäc laäp giöõa öùng duïng vaø caùc thaønh phaàn COM. Giaù trò maët ñònh laø Apartment Threaded. + Threading Model (ActiveX .Apartment Threaded veà hình thöùc thöïc hieän chöùc naêng multithreading gioáng nhö Windows 95. nhôø coù giao dieän maø moät thaønh phaàn COM coù theå ñöôïc thay theá ñoäng maø khoâng aûnh höôûng ñeán öùng duïng ñang chaïy. Khi taïo moät döï aùn môùi daïng ActiveX (. . e. Ña phaàn caùc thaønh phaàn COM thöïc hieän vôùi Visual Basic ñeàu thöïc hieän vôùi Apartment Threaded. noù seõ goïi moät haøm API cuûa windows laø CoCreateInstance vôùi thoâng soá truyeàn vaøo laø CLSID vaø IID töông öùng vôùi thaønh phaàn vaø giao dieän maø thaønh phaàn ñoù hoã trôï ñeå coù ñöôïc giao dieän mong muoán. Caùch taïo COM(. cuûa giao dieän COM laø IID(interface identifier).dll) vaø COM(.

<Ñöôøng daãn cuûa file exe ñaõ bieân dòch>\<teân file Exe> /unregserver trong tröôøng hôïp muoán gôõ boû ñaêng kyù. Laøm cho chöông trình deã vieát. Ñieàu naøy gaây khoù khaên cho vieäc quaûn lyù caùc ñoái töôïng do client taïo ra.Moïi yeâu caàu taïo phuïc vuï töø nhieàu client seõ ñöôïc ñaùp öùng baèng caùch taïo cho moãi client moät thread môùi.dll) vaø COM(. click Run.exe <DLLPath>\<DLL name>.exe) : Caùch ñaêng kyù hay gôõ ñaêng kyù cuûa COM Exe cuõng thöïc hieän caùc böôùc töông töï nhö vieäc ñaêng kyù COM Dll. nhöng trong hoäp thoaïi Run ta goõ vaøo nhö sau: Regsvr32. ta goõ vaøo nhö sau: Regsvr32.dll) ta thöïc hieän tuaàn töï caùc böôùc sau: o Nhaán vaøo nuùt start cuûa Windows o Treân Start menu. o Trong Run dialog box.exe): Trong döï aùn ActiveX Exe ta coù nhöõng löïa choïn cho Threading Model nhö sau: . 2.exe /u <DLLPath>\<DLL name>. deã kieåm tra loãi. ÖÙng duïng COM chaïy moät maùy. gôõ boû ñaêng kyù COM(. Coù 3 caùch ñeå giao tieáp giöõa öùng duïng Client vaø ÖÙng duïng COM: GV:Hoà Quang Khaûi 3 .dll + Caùch ñaêng kyù COM (.Chæ coù moät thread phuïc vuï: Chæ cho taát caû client duøng chung moät thread . Nhöng trong hoäp thoaïi Run ta goõ vaøo nhö sau . vaø soá thread naøy ñöôïc quaûn lyù ñeå phuïc vuï cho nhieàu client theo phöông phaùp round-robin . naâng caáp maø khoâng aûnh höôûng ñeán nhöõng öùng duïng Client ñang chaïy noù.dll Click vaøo nuùt OK. ÖÙng duïng Client vaø öùng duïng COM chaïy treân cuøng moät maùy: Muïc ñích xaây döïng thaønh phaàn ñoái vôùi moâ hình naøy laø : . . Caùc kieán truùc cuûa COM/DCOM: 1.exe) trong Windows Sau khi bieân dòch moät döï aùn COM thaønh moät file daïng dll hay daïng exe ta phaûi ñaêng kyù caùc thaønh phaàn COM naøy ñeå coù theå söû duïng ñöôïc coù nhieàu caùch ñeå ñaêng kyù sau ñaây laø caùch tieâu bieåu ñeå ñaêng kyù: + Caùch ñaêng kyù COM DLL : Ñeå ñaêng kyù ñöôïc thaønh phaàn COM (. ÖÙng duïng COM coù theå ñöôïc taùi söû duïng cho nhieàu öùng duïng Client khaùc nhau. Luùc naøy thaønh phaàn COM ñöôïc goïi laø DCOM. <Ñöôøng daãn cuûa file exe ñaõ bieân dòch>\<teân file Exe> /regserver trong tröôøng hôïp muoán ñaêng kyù. Nhöng hai maùy naøy cuøng moät maïng local.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng + Threading Model (ActiveX . .dll) cuõng thöïc hieän caùc böôùc nhö treân.Chæ ñònh moät con soá cuï theå thread duøng chung. Neáu ñaêng kyù thaønh coâng seõ hieån thò dialog thoâng baùo sau o Caùch gôõ boû ñaêng kyù cuûa thaønh phaàn COM (. Caùch ñaêng kyù. III. f. ÖÙng duïng Client chaïy moät maùy.

Löu yù: taát caû nhöõng thieát laäp coù hieäu löïc khi ta khôûi ñoäng laïi heä thoáng. + Default Properties Tab: Nhöõng giaù trò ñöôïc hieån thò trong Default Properties Tab coù theå ñöôïc tìm thaáy trong registry cuûa Windows ôû vò trí sau : HKEY_LOCAL_MACHINE\Software\Microsoft\OLE Tieâu ñeà ñaàu tieân trong Default Properties Tab laø moät check box : "Enable Distributed COM on this computer" khi check box naøy ñöôïc ñaùnh daáu seõ cho pheùp taïo ñoái töôïng DCOM. + Applications Tab: Applications Tab hieån thò nhöõng ñoái töôïng ñaõ ñaêng kyù vaøo trong khoùa registry: HKEY_CLASSES_ROOT\AppId\ Moãi ñoái töôïng ñöôïc hieån thò trong Applications Tab. Ngöôïc laïi khoâng taïo ñöôïc ñoái töôïng DCOM.exe) Cuõng laø moät öùng duïng COM nhöng ñöôïc xaây döïng cho pheùp chia seû öùng duïng cho nhieàu öùng duïng Client ôû caùc maùy khaùc nhau(trong cuøng moät maïng) söû duïng. ñaët tính cuûa moãi öùng duïng coù theå ñöôïc hieån thò baèng caùch choïn ñoái töôïng vaø nhaán vaøo nuùt “Properties…” hay nhaán ñuùp vaøo ñoái töôïng caàn xem.Exe) chính laø hình thöùc daïng DCOM. Thaønh phaàn thöù 2 cuûa Default Properties Tab laø Default Distributed COM Communication Properties thaønh phaàn naøy ñöôïc chia laøm 2 muïc sau: . Default Properties. Default Security.exe ñeå caáu hình öùng duïng COM (ActiveX Exe) Trong giao dieän chính cuûa DCOM Config coù 3 tabs chính sau ñaây: • • • Applications.exe) ñeå nhöõng öùng duïng Client coù theå lieân keát vaø söû duïng ñöôïc ta phaûi chaïy taäp tin Dcomcnfg.exe) o Duøng MTS (Microsoft Transaction Server) ñeå trieån khai ActiveX DLL töø xa o RDS (Remote Data Access) a. Giôùi thieäu Dcomcnfg. Connect Authentication occurs when a connection is made to the server.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng o ActiveX (.Default Authentication Level (Packet Level) Muïc naøy coù nhieàu giaù trò choïn nhö sau: Name Description None No authentication.exe cuûa Windows ñeå caáu hình cho öùng duïng COM naøy. Connectionless protocols do not use this. Sau khi xaây döïng vaø bieân dòch moät öùng duïng COM daïng ActiveX (. ActiveX (. Giôùi thieäu veà ActiveX (. GV:Hoà Quang Khaûi 4 .

Connectionless protocols do not use this. and checks that the data has not been modified. The server can impersonate the client and access system objects on the client's behalf. In addition to the checks made by the other authentication techniques. May vary depending upon operating system. The server can impersonate the client to check permissions in the ACL (Access Control List) but cannot access system objects. Nhöõng giaù trò cuûa tab naøy ñöôïc löu tröõ trong Windows Registry taïi vò trí: HKEY_LOCAL_MACHINE\Software\Microsoft\OLE Caùch caáu hình Visual Basic DCOM duøng Dcomcnfg.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng Call The authentication occurs when a RPC call is accepted by the server. Authenticates the data on a per-packet basis. This is not supported in the current release of DCOM. All data is authenticated.CUSTOM ACCESS PERMISSIONS: Everyone -allow access System -allow access Interactive -allow access CUSTOM LAUNCH PERMISSIONS: Everyone -allow launch System -allow launch Interactive -allow launch GV:Hoà Quang Khaûi 5 .Default Impersonation Level Name Anonymous Description The client is anonymous. Packet Packet Integrity Packet Privacy Default . o Choïn Security Tab o Thöïc hieän nhöõng thay ñoåi sau. this encrypts the packet. o Nhaán ñuùp vaøo öùng duïng DCOM vöøa choïn. Identify Impersonate Delegate + Default Security Tab Coù 3 söï löïa choïn ôû Default Security tab. In addition to the Impersonate level.exe Vieäc caáu hình ñöôïc thöïc hieän theo nhöõng böôùc sau: o Run Dcomcnfg. .exe o Taïi Applications Tab choïn öùng duïng DCOM caàn caáu hình. This authenticates that the data has come from the client. This setting is not currently supported by DCOM. this level can impersonate the client on calls to other servers.

Save öùng duïng laïi. vaøo menu Project\Project Properties thieát laäp nhö sau: . 5.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng . Caùch hieän thöïc moät öùng duïng DCOM daïng ActiveX(. GV:Hoà Quang Khaûi 6 .exe) 1. Trong maøn hình Included Files. Nhaán Next ñeå chuyeån qua böôùc tieáp theo.Cuoái cuøng Version Compatibility choïn Project Compatibility. 7. Ñeå trieån khai öùng duïng phaân boá vöøa taïo ra ta phaûi söû duïng coâng cuï “Package and Deployment Wizard” cuûa Visual Basic Tools baèng caùch choïn Start\Program\Microsoft Visual Basic 6. sau naøy ta seõ ñoåi sang löïa choïn Project Compatibility. taïi text box duøng browser daãn tôùi taäp tin . . . nhaán OK moät laàn nöõa. choïn "The Interactive User.exe cuûa öùng duïng server. Bieân dòch öùng duïng server Tröôùc khi phaân boá öùng duïng." . Nhaán Next treân maøn hình Cab Information.Remote Sever ñaùnh daáu vaøo Remote Server Files seõ laøm cho Visual Basic taïo ra VBR(Visual Basic Registry) vaø TLB (Type Library) ngay khi ta xaây döïng xong öùng duïng server. 1. Nhaán Next tieáp. Duøng Browser choïn döï aùn server môùi vöøa taïo. Tieáp theo thöïc hieän tuaàn töï theo caùc böôùc sau: 1. 3. Choïn Dependency File trong Package Type.Choïn Identity Tab. Nhaán vaøo nuùt Package 3.Vieäc ôû Start Mode choïn ActiveX Component seõ cho pheùp ta chaïy öùng duïng server döôùi moâi tröôøng phaùt trieån Visual Basic. Môû Visual Basic taïo moät döï aùn daïng ActiveX EXE 2. Choïn No khi ñöôïc hoûi veà hoã trôï Remote Automation 6. Choïn Standard Setup Package trong danh saùch Package Type.0\Microsoft Visual Basic Tools. nhaán vaøo nuùt Package 2. Neáu khoâng choïn thì öùng duïng server seõ thoaùt ra ngay khi ta chaïy noù trong Visual Basic. 8.exe). Nhaán Finish. 9. Boû ñaùnh daáu khoâng choïn döï aùn server(. 2. 4. Taïo chöông trình Setup cho Client. Taïo moät döï aùn DCOM daïng ActiveX(. Khôûi ñoäng chöông trình Package and Deployment moät laàn nöõa. vaøo project properties cuûa öùng duïng server thieát laäp laïi Version Compatibility choïn Binary Compatibility. ta môû laïi öùng duïng server. Choïn moät folder maø noù seõ ñöôïc truy caäp qua maïng. Trieån khai öùng duïng server ñeå öùng duïng Client coù theå giao tieáp ñöôïc. Nhaán Next treân Install Locations. 3. Sau khi taïo xong döï aùn. 4.Nhaán OK. bieân dòch laïi öùng duïng server.exe) duøng Visual Basic. 5. Nhaán Next treân maøn hình Included Files.

9. 4. Nhaán Next. 2.exe ñöôïc taïo bôûi Package and Deployment Wizard cho öùng duïng server treân maùy chaïy öùng duïng COM + Chaïy chöông trình Setup. Thoâng thöôøng. + Chaïy chöông trình Setup. Taïo moät instance cuûa thaønh phaàn. Giaûi phoùng thaønh phaàn ra khoûi boä nhôù. Tuy nhieân trong khoaûng thôøi gian söû duïng thaønh phaàn ñoù thöôøng coù raát nhieàu thao taùc khoâng söû duïng thaønh phaàn hoaëc khoâng coù thao taùc naøo söû duïng ñeán thaønh phaàn. Ngoaøi chöùc naêng chính laø quaûn lyù giao dòch. 8. ÔÛ maøn hình Remote Servers. b. Nhaán vaøo nuùt Add. MTS coøn quaûn lyù nhieàu thöù khaùc “MTS quaûn lyù caùch maø öùng duïng söû duïng caùc thaønh phaàn” hay noùi caùch khaùc laø MTS quaûn lyù caùc thaønh phaàn giuùp cho caùc öùng duïng söû duïng caùc thaønh phaàn ñoù ñöôïc hieäu quaû hôn.0.0. Neáu söû duïng toát hôn thì khôûi taïo thaønh phaàn ngay khi caàn ñeán vaø giaûi phoùng sau khi chaéc chaén khoâng coøn caàn duøng ñeán thaønh phaàn ñoù nöõa. Nhaán choïn Next ñeán heát. Coøn ñoái vôùi Windows 2000 thì MTS ñöôïc tích hôïp vaøo IIS 5.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng 6. Muoán söû duïng MTS thì phaûi caøi ñaët Option Pack 4 cho Windows NT. ñöa COM vaø MTS tích hôïp laïi trong COM+ Applications. Caøi ñaët treân maùy chaïy öùng duïng DCOM vaø treân maùy chaïy öùng duïng Client. coù nghóa laø ta coù theå chaïy (start) hoaëc ngöng chaïy (stop) chuùng khi caàn vaø MTS chaïy background ñeå phuïc vuï cho caùc öùng duïng caàn ñeán noù Trong Windows NT 4. MTS ñöôïc coi nhö laø moät phaàn phuï (add-on). ñöôïc caøi thoâng qua NT4 Option Pack. choïn file . Choïn VBR ôû combo box file type.exe exe ñöôïc taïo bôûi Package and Deployment Wizard cho öùng duïng Client treân maùy chaïy öùng duïng Client. Caùc böôùc thoâng thöôøng ñeå söû duïng moät thaønh phaàn: 1. Khôûi ñoäng giaù trò cuûa caùc thuoäc tính cuûa thaønh phaàn. Coøn trong Windows 2000 noù trôû thaønh moät phaàn maëc ñònh cuûa chính heä ñieàu haønh. File hay Print …. Nhaán Finish. Duøng MTS ñeå trieån khai ActiveX DLL töø xa Ñoái vôùi Windows NT thì MTS ñöôïc taùch rieâng ra thaønh moät öùng duïng rieâng bieät. goõ vaøo Net Address cuûa Server. Söû duïng thaønh phaàn. Giôùi thieäu MTS (Microsoft Transaction Server) MTS laø moät dòch vuï treân Windows gioáng nhö caùc dòch vuï khaùc nhö IIS.vbr 7. vieäc khôûi taïo vaø giaûi phoùng thaønh phaàn naèm ôû ñaàu vaø ôû cuoái moät thuû tuïc hay chöông trình. 3. nhöng vaãn phaûi giöõ thaønh phaàn ñoù trong boä nhôù chôø ñöôïc söû duïng sau ôû caùc thao taùc khaùc GV:Hoà Quang Khaûi 7 .

trong khi öùng duïng 1 khoâng thöïc söï söû duïng noù (tuy nhieân öùng duïng thöù 1 vaãn chöa giaûi phoùng thaønh phaàn) thì MTS seõ ñöa instance maø öùng duïng thöù 1 ñang giöõ cho öùng duïng thöù 2 söû duïng. Nhaán Start \ Settings \ Control Panel 3. Quaûn lyù giao dòch trong MTS: MTS cung caáp moâi tröôøng giao dòch cho caùc thaønh phaàn. Taïo moät thaønh phaàn COM daïng ActiveX DLL 2. Xuaát hieän hoäp thoaïi COM Application Install Wizard. Neáu coù thì MTS seõ ñöa instance ñoù cho öùng duïng 1 söû duïng. Neáu moät trong caùc thaønh phaàn vì lyù do naøo ñoù khoâng theå thöïc thi nhieäm vuï cuûa mình thì toaøn boä caùc coâng vieäc cuûa caùc thaønh phaàn khaùc seõ bò huûy boû vaø heä thoáng seõ trôû laïi traïng thaùi ban ñaàu. Trong cöûa soå Control Panel môû folder Administrative Tools 4. Trong console tree cuûa Component Services. nhaán Next. coù nghóa laø neáu toaøn boä caùc thaønh phaàn trong moâi tröôøng cuøng thöïc thi thaønh coâng nhieäm vuï cuûa mình thì giao dòch coi nhö laø thaønh coâng.dll) vaøo.Create an emty Application : Neáu taïo moät öùng duïng troáng roài import thaønh phaàn COM (. Neáu moät öùng duïng thöù 2 muoán söû duïng thaønh phaàn ñoù. Nhaán ñuùp vaøo My Computers. Neáu öùng duïng thöù 1 ñoät nhieân muoán söû duïng tieáp thaønh phaàn thì MTS seõ tìm trong caùc instance cuûa thaønh phaàn ñoù coù instance naøo khoâng thöïc söï ñöôïc söû duïng bôûi öùng duïng khaùc khoâng. Neáu taát caû caùc instance cuûa thaønh phaàn ñoù ñeàu ñang ñöôïc söû duïng thì MTS seõ taïo moät instance môùi vaø giao noù cho öùng duïng thöù 1 söû duïng. Nhaán ñuùp vaøo Computers 6. troû tôùi New roài nhaán vaøo Application. 1. 9. Caùc böôùc ñeå trieån khai moät thaønh phaàn töø xa trong Windows 2000 duøng MTS : Caùc böôùc thöïc hieän treân maùy chaïy thaønh phaàn COM DLL muoán trieån khai töø xa. Nhaán phaûi chuoät vaøo COM+ Applications. nhaán ñuùp vaøo COM+ Applications 7. Ñieàu ñoù taïo neân moät söï laõng phí raát lôùn taøi nguyeân cuûa heä thoáng. . Môû Component Services 5. MTS giaûi quyeát vaán ñeà treân baèng caùch: khi moät öùng duïng caàn moät thaønh phaàn thì MTS seõ cung caáp 1 instance cuûa thaønh phaàn ñoù cho öùng duïng. 8. GV:Hoà Quang Khaûi 8 . Taïi ñaây seõ coù hai löïa choïn.Install pre-built application(s) Neáu muoán xaây döïng laïi öùng duïng maø ta ñaõ taïo tröôùc ñoù. Choïn Create an emty Application . traïng thaùi tröôùc khi giao dòch ñöôïc thöïc hieän.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng maø khoâng theå giaûi phoùng thaønh phaàn vì khi giaûi phoùng thì caùc traïng thaùi beân trong cuûa thaønh phaàn cuõng bò xoùa ñi. Caùc thaønh phaàn trong cuøng moät moâi tröôøng seõ thöïc hieän moät giao dòch.

Goõ vaøo vaøo moät caùi teân naøo ñoù cho öùng duïng vöøa taïo. nhaán vaøo Next 11. Nhaán Finish. ta löïa choïn giaù trò default cuûa noù. Nhaán tieáp vaøo Next. Tieáp theo xuaát hieän hoäp thoaïi coù hai löïa choïn. troû tôùi New. 12. GV:Hoà Quang Khaûi 9 . Nhaán ñuùp vaøo öùng duïng Example1 vöøa taïo.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng 10. Nhaán phaûi chuoät vaøo Components. nhaán vaøo Component. nhaán ñuùp vaøo Components 14. 13.

Ñeå cho pheùp öùng duïng Client truy caäp vaøo thaønh phaàn chaïy döôùi MTS. Hoäp thoaïi Import or Install a Component xuaát hieän. Nhaán Next. Sau moät luùc. ta phaûi ñaêng kyù vaøo Registry cuûa maùy Client ñeå baùo vôùi noù raèng thaønh phaàn töø xa. Nhaán vaøo Export… 2.dll. Nhaán vaøo Next. 3. nhaán nuùt Open 17. nhaán Save.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng 15. ta laøm nhö sau: 1. 16. hieån thò ra moät hoïp thoaïi thoâng baùo sau: GV:Hoà Quang Khaûi 10 . Cho vaøo teân taäp tin. Daãn ñeán choã löu tröõ file . Nhaán vaøo nuùt Next. Ñeå Client nhaän ra thaønh phaàn MTS phaân phaùt töø xa. Nhaán phaûi chuoät vaøo Example1 vöøa taïo. choïn Install new Component(s). Roài nhaán vaøo Finish ñeå keát thuùc. Duøng nuùt Browse ñeå choïn moät thö muïc roãng ñeå export goùi.

"http://awebsrvr") GV:Hoà Quang Khaûi 11 . Coøn giaûi phaùp duøng ActiveX(. hoaëc Windows 2000. maùy chaïy öùng duïng COM coù theå chaïy treân neàn Windows 98.DataControl. RDS hoã trôï maïnh cho nhöõng öùng duïng Web. 2 maùy naøy khoâng cuøng maïng. Ngoaøi ra kyõ thuaät naøy coøn hoã trôï cho nhöõng öùng duïng WEB. Giôùi thieäu veà RDS: RDS laø moät moâ hình laäp trình cho pheùp öùng duïng Client coù theå taïo moät theå hieän cuûa moät öùng duïng COM ñaët töø xa thoâng qua maïng Internet baèng caùc giao thöùc http. Windows 2000. Kyõ thuaät naøy seõ ñöôïc giôùi thieäu sau. Ñeå hieän thöïc vieäc giao tieáp giöõa öùng duïng Client vaø öùng duïng COM ñoái vôùi moâ hình naøy thì phaûi duøng RDS(Remote Data Access). Maùy chaïy öùng duïng Client vaø maùy chaïy öùng duïng COM khaùc maùy. cho pheùp nhöõng öùng duïng Web vieát nhöõng ñoaïn Script thao taùc döõ lieäu treân Server vaø laáy döõ lieäu veà thoâng qua thaønh phaàn RDSServer. Keát luaän: Toùm laïi ñoái vôùi moâ hình kieán truùc maùy chaïy öùng duïng Client vaø maùy chaïy öùng duïng COM cuøng moät maïng local thì ta choïn giaûi phaùp “Duøng MTS (Microsoft Transaction Server) ñeå trieån khai ActiveX DLL töø xa”.exe) vaø giaûi phaùp duøng RDS. Nhaán vaøo Finish ñeå hoaøn taát. https. Caùc böôùc thöïc hieän treân maùy chaïy öùng duïng Client.DataFactory. Khuyeát ñieåm: o Maùy chaïy öùng duïng COM cuûa giaûi phaùp naøy chæ coù theå chaïy treân heä ñieàu haønh Windows NT. Duøng RDS (Remote Data Access): Kyõ thuaät naøy khoâng neân söû duïng ñoái vôùi moâ hình naøy vì toác ñoä chaäm.exe).Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng 4. Chaïy taäp tin .MSI trong thö muïc naøy ñeå ñaêng kyù vaøo maùy Client. o Coøn so vôùi RDS thì kyõ thuaät naøy seõ laøm cho öùng duïng chaïy nhanh hôn. 3. Muoán gôõ boû ñaêng kyù naøy ra khoûi maùy Client ta coù theå vaøo Control Panel\Add/Remove Programs ñeå gôõ boû ra.CreateObject("ProgId".CreateObject("ProgId". löu yù: ñeå duøng RDS ñeå truy caäp DCOM döôùi ñaây thì ta phaûi duøng MTS trieån khai thaønh phaàn COM ñoù thì ta môùi coù theå duøng Set object = DataSpace.exe) thì öùng duïng duøng giaûi phaùp naøy seõ chaïy chaäm hôn vì coù keát hôïp vôùi MTS.exe) thì daïng naøy quaûn lyù caùc theå hieän thaønh phaàn vaø quaûn lyù giao dòch toát hôn nhieàu nhôø söï hoã trôï cuûa MTS. RDS. Windows NT. "Myserver") Coøn neáu duøng trong daïng COM thì phaûi khai baùo vôùi hình thöùc In-process. Cheùp thö muïc maø ta vöøa Export ñöôïc ôû treân vaøo maùy Client 2. o Veà vaán ñeà quaûn lyù security thì daïng naøy cuõng hoã trôï toát hôn so vôùi ActiveX (. c. o So vôùi öùng duïng duøng giaûi phaùp duøng ActiveX(. 1. Protocol HTTP Syntax Set object = DataSpace. Vì kyõ thuaät RDS ñöôïc duøng hoã trôï cho vieäc truy caäp töø xa ñoái vôùi nhöõng maùy khoâng cuøng maïng. kyõ thuaät naøy ñöôïc duøng cho tröôøng hôïp maùy chaïy öùng duïng vaø maùy chaïy öùng duïng COM khoâng cuøng maïng. Öu ñieåm cuûa giaûi phaùp naøy sau: o So vôùi daïng ActiveX (.

5. + RDS security: Ñeå öùng duïng Client coù theå duøng RDS ñeå giao tieáp vôùi öùng duïng COM thì treân thö muïc aûo(wwwroot ñoái vôùi windows 2000) cuûa maùy chaïy öùng duïng COM phaûi coù thö muïc MSADC. caùc boä maät maõ vaø giaûi thuaät neùn döõ lieäu maø client hoã trôï. Caû hai cuøng gôûi thoâng baùo “chaám döùt” phaàn thuû tuïc vaø baét ñaàu giao tieáp coù baûo maät baèng khoùa session ôû treân. Client môû moät caàu noái ñeán server vaø gôûi thoâng ñieäp “ClientHello”. Web Server caàn phaûi coù baèng chöùng nhaän(Certificate) do moät nhaø cung caáp chöùng nhaän (CA – Certificate Authority) nhö Verisign caáp. noù seõ gôûi moät thoâng baùo khoâng coù baèng. 2. Caû Client vaø Server cuøng gôûi thoâng baùo “ChangeCipherSpec” ñeå xaùc nhaän caû hai ñaõ saün saøng giao tieáp. SSL coù theå hoã trôï nhieàu boä maät maõ. Server gôûi “baèng chöùng nhaän” cuûa noù ñeå ñònh danh noù ñoái vôùi Client.exe) ProgId cuûa öùng duïng COM (teân döï aùn. trong ñoù coù taäp tin msadcs. Ñieàu naøy khoâng baét buoäc vaø ít khi xaûy ra. Ñeå söû duïng SSL. + Moät quaù trình SSL : Muïc ñích cuûa moät quaù trình SSL laø ñònh danh server( hoaëc coù theå ñònh danh client) vaø cuoái cuøng coù ñöôïc moät khoùa session cho vieäc giao tieáp giöõa client vaø server trong moät phieân laøm vieäc (session). Server yeâu caàu “baèng chöùng nhaän” cuûa client. 6.CreateObject("ProgId". "computername") Set object = DataSpace. SSL laø giao thöùc thoâng duïng cho vieäc giao tieáp coù maõ hoùa giöõa browser vaø server. "") Vì RDS cho pheùp öùng duïng Client coù theå thao taùc döõ lieäu thoâng qua maïng Internet neân vaán ñeà baûo maät ñöôøng truyeàn laø vaán ñeà quan troïng ñeå traùnh vieäc thaát laïc döõ lieäu hay vieäc ñaùnh caép döõ lieäu thì ngöôøi laáy ñöôïc nhöõng döõ lieäu naøy cuõng khoâng theå xem nhöõng döõ lieäu naøy ñöôïc. Thoâng ñieäp coøn keøm theo moät soá thoâng tin nhö version cuûa SSL. Client gôûi thoâng ñieäp “trao ñoåi khoùa” cuøng vôùi moät bao ñieän töû chöùa khoùa session do client taïo ngaãu nhieân vaø ñöôïc maõ hoùa baèng khoùa public cuûa server ñöôïc laáy töø baèng chöùng nhaän cuûa server. Thoâng ñieäp keøm theo thoâng tin veà boä maät maõ vaø giaûi thuaät neùn maø server choïn cuøng vôùi moät SessionID töông öùng cuûa Client. Neáu caùc boä maõ ñöôïc hoã trôï bôûi client vaø server khoâng hôïp nhau thì server seõ gôûi moät thoâng baùo “handshake failure” vaø chaám döùc session. Caáu hình RDS trong Windows 2000(Maùy chaïy öùng duïng COM) Coù hai söï caáu hình lieân quan ñeán Remote Data Access: RDS security vaø IIS security. 7. moät haøm giaûn löôïc thoâng ñieäp vaø moät caùch ñònh danh ñöôïc goïi laø moät boä maät maõ(cipher suite).CreateObject("ProgId". Server traû lôøi baèng thoâng ñieäp “Server Hello”.dll.teân nhöõng class) taïi vò trí sau: \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\ Parameters\ADCLaunch\ GV:Hoà Quang Khaûi 12 . Neáu client coù “baèng chöùng nhaän” thì noù seõ gôûi cho server. 8. Söï keát hôïp giöõa moät giaûi thuaät maõ/giaûi maõ. Neáu khoâng. Giao thöùc naøy ñöôïc söû duïng vôùi coâng ngheä baûo maät ñöôøng truyeàn SSL(Secure Sockets Layer). Ngoaøi ra thoâng ñieäp cuoái cuøng naøy coøn coù chöùa hash cuûa toaøn boä quaù trình laøm thuû tuïc treân ñeå caû hai cuøng kieåm tra xem quaù trình coù bò truïc traëc gì khoâng. + Caùc böôùc cuûa moät quaù trình SSL: 1. Vì vaäy RDS coù hoã trôï vieäc taïo ñoái töôïng qua maïng Internet duøng giao thöùc https. 4. Ngoaøi ra coøn coù theå söû duïng baèng chöùng nhaän do Certificate Server cuûa Windows NT Server hay cuûa Windows 2000 server caáp (cuõng gioáng nhö cuûa CA nhöng khoâng coù giaù trò quoác teá). 3.CreateObject("ProgId". Giôùi thieäu SSL(Secure Socket Layer) Treân Web. Ngoaøi ra caàn phaûi khai baùo baèng tay trong registry cuûa maùy chaïy öùng duïng COM (môû ra baèng caùch chaïy taäp tin regedit. "https://awebsrvr") Set object = DataSpace.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng HTTPS DCOM In-process Set object = DataSpace.

nhaán Properties. môû Administrative Tools.Neáu muoán taát caû caùc Client coù theå giao tieáp vôùi öùng duïng choïn Granted Access.Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng + IIS security: Ñeå thieát laäp IIS security thöïc hieän laàn löôïc caùc böôùc sau: 1. choïn Client roài Add vaøo danh saùch. Duøng RDS ñeå truy caäp nhöõng öùng duïng DCOM daïng ActiveX EXE. Nhaán phaûi chuoät treân thö muïc aûo MSADC. Ngoaøi ra ta coù theå duøng RDS ñeå truy caäp ñeán nhöõng öùng duïng COM ñöôïc khai trieån töø xa duøng MTS thoâng qua Internet. GV:Hoà Quang Khaûi 13 . 2. . nhaán Edit. Môû Control Panel. Nhaán ñuùp leân Default Web Site. 3. Treân Directory Security tab. môû Internet Services Manager. . choã IP Address and Domain Name Restrictions.Neáu muoán chæ cho pheùp moät soá Client naøo ñoù coù theå truy caäp ñeán öùng duïng. 4.

Sign up to vote on this title
UsefulNot useful