Ebook Lập tình công COM

Mục lục: I: GIỚI THIỆU MÔ HÌNH ỨNG DỤNG 1. Giới thiệu mô hình client/server 2. Mô hình hai mức (2 – tier) client/server: 3. Mô hình ba mức (3 – tier) client/server: II. Gioi thiệu sơ lược về cổng COM III. các kiến thức COM/DCOM: 1. ứng dụng Client và ứng dụng COM chạy trên cùng 1 máy 2. ứng dụng Client chaỵ 1 máy 3. Máy chạy ứng dụng Client và máy chạy ứng dụng COM khác máy, 2 máy này không cùng mạng. kết luận

pdf14 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 1912 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Ebook Lập tình công COM, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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, 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. Giôùi thieäu moâ hình laäp trình öùng duïng: 1. 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. Moâ hình client/server giuùp cho nhöõng maùy tính rieâng leû, khaû naêng xöû lyù thaáp coù theå chaïy ñöôïc nhöõng öùng duïng raát lôùn, phöùc taïp. 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. 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, 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 naøy ñöôïc thieát keá sao cho caøng thaân thieän vôùi ngöôøi duøng caøng toát. o Chöùc naêng (Business logic): ñaây laø phaàn loõi cuûa moät chöông trình, 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. 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. 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, caäp nhaät vaø ñaùng tin caäy hôn. 2. 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, 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. 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, phía client phaûi ñaûm nhaän caû 2 lôùp laø giao dieän vaø chöùc naêng, coøn server chæ ñaûm nhaän nhieäm vuï cuûa lôùp CSDL. Öu ñieåm cuûa moâ hình naøy laø ñôn giaûn, thích hôïp cho nhöõng öùng duïng nhoû. 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. + 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. + 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. o Tính toaùn taäp trung ôû server(fat server – thin client): ôû loaïi naøy, 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. 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. 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, ñaët bieät laø khi coù nhieàu client truy xuaát cuøng moät luùc. 3. Moâ hình ba möùc (3 – tier) client/server: Trong moâ hình 3 möùc, 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. 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, ñaùng tin caäy hôn, chöông trình trôû neân linh ñoäng hôn trong vieäc thay theá, 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. II. 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, caùc thaønh phaàn khaùc. Vieát moät thaønh phaàn COM cuõng nhö vieát moät haøm API ñoäng, höôùng ñoái töôïng. 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. a. COM laø gì ? COM chæ laø moät söï ñaët taû. 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”. 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. b. 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, caùc chöùc naêng ñöôïc chöùa trong file .DLL hoaëc .EXE. Thaønh phaàn COM caàn phaûi thoûa maõn ñöôïc nhöõng “chuaån” cuûa COM. Caùc thaønh phaàn COM coù theå ñöôïc lieân keát ñoäng. 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ù. Thaønh phaàn COM coù theå ñöôïc hieän thöïc baèng nhieàu ngoân ngöõ nhö Visual C++, Visual Basic, Java ….. o Thaønh phaàn COM ñöôïc söû duïng döôùi daïng maõ nhò phaân. 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. o Thaønh phaàn COM trong suoát veà vò trí. c. Giao dieän (Interface) GV:Hoà Quang Khaûi 1 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. 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ù. 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. 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. Giao dieän khoâng bao giôø thay ñoåi. 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õ. d. COM trong Windows: Trong Windows, 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. ID cuûa thaønh phaàn COM ñöôïc goïi laø CLSID(class identifier); cuûa giao dieän COM laø IID(interface identifier). 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. 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. Khi öùng duïng muoán söû duïng COM, 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. e. Caùch taïo COM(.dll) vaø COM(.exe) trong Visual Basic Khi taïo moät project môùi trong visual basic, ta coù theå choïn caùc daïng maãu coù saün ñeå taïo moät project môùi. Ñeå taïo thaønh phaàn COM ta coù hai löïa choïn daïng COM(.dll) hoaëc daïng COM(.exe) trong hoäp thoaïi New Project tuøy theo öùng duïng cuûa chuùng ta. Khi taïo moät döï aùn môùi daïng ActiveX (.dll) hay ActiveX (.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ù. 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. 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. + 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. Ña soá thì ta thieát laäp thuoäc tính naøy laø None, code ñöôïc thöïc thi khi visual basic taïo moät theå hieän cuûa class. + 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. Teân cuûa döï aùn keát hôïp vôùi teân cuûa class taïo neân ProgID. Client seõ duøng teân naøy ñeå taïo moät ñoái töôïng COM. + Threading Model (ActiveX .dll): Trong döï aùn ActiveX (.dll), Thread Model cho pheùp ta löïa choïn Single Threaded hoaëc Apartment Threaded. Giaù trò maët ñònh laø Apartment Threaded. - Apartment Threaded veà hình thöùc thöïc hieän chöùc naêng multithreading gioáng nhö Windows 95, Windows 98, and Windows NT. Ñ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. - 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, khi moät client gôûi moät yeâu caàu taïo thread ñeán, 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. Vôùi daïng naøy thì lôïi ñieåm laø deã kieåm soaùt vieäc taïo thread, nhöng ngöôïc laïi khaû naêng phuïc vuï keùm. - Nhöõng lôïi ñieåm cuûa söï löïa choïn Apartment Threaded. . Xöû lyù ñöôïc vaán ñeà coù nhieàu yeâu caàu taïo thread töø phía nhieàu client. Töï ñoäng quaûn lyù vieäc cung caáp thread phuïc vuï cho nhieàu client, nhöng taïi moät thôøi ñieåm chæ coù moät client ñöôïc phuïc vuï. GV:Hoà Quang Khaûi 2 Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng + Threading Model (ActiveX .exe): Trong döï aùn ActiveX Exe ta coù nhöõng löïa choïn cho Threading Model nhö sau: - Chæ coù moät thread phuïc vuï: Chæ cho taát caû client duøng chung moät thread - Chæ ñònh moät con soá cuï theå thread duøng chung, vaø soá thread naøy ñöôïc quaûn lyù ñeå phuïc vuï cho nhieàu client theo phöông phaùp round-robin - 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. Ñ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. f. Caùch ñaêng kyù, gôõ boû ñaêng kyù COM(.dll) vaø COM(.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 (.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, click Run. o Trong Run dialog box, ta goõ vaøo nhö sau: Regsvr32.exe \.dll o Click vaøo nuùt OK. Neáu ñaêng kyù thaønh coâng seõ hieån thò dialog thoâng baùo sau Caùch gôõ boû ñaêng kyù cuûa thaønh phaàn COM (.dll) cuõng thöïc hieän caùc böôùc nhö treân, nhöng trong hoäp thoaïi Run ta goõ vaøo nhö sau: Regsvr32.exe /u \.dll + Caùch ñaêng kyù COM (.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 . \ /regserver trong tröôøng hôïp muoán ñaêng kyù. . \ /unregserver trong tröôøng hôïp muoán gôõ boû ñaêng kyù. III. Caùc kieán truùc cuûa COM/DCOM: 1. ÖÙ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ø : . ÖÙng duïng COM coù theå ñöôïc taùi söû duïng cho nhieàu öùng duïng Client khaùc nhau. . Laøm cho chöông trình deã vieát, deã kieåm tra loãi, naâng caáp maø khoâng aûnh höôûng ñeán nhöõng öùng duïng Client ñang chaïy noù. 2. ÖÙng duïng Client chaïy moät maùy, ÖÙng duïng COM chaïy moät maùy. Nhöng hai maùy naøy cuøng moät maïng local. Luùc naøy thaønh phaàn COM ñöôïc goïi laø DCOM. 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 Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng o ActiveX (.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 veà ActiveX (.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. ActiveX (.Exe) chính laø hình thöùc daïng DCOM. Sau khi xaây döïng vaø bieân dòch moät öùng duïng COM daïng ActiveX (.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 cuûa Windows ñeå caáu hình cho öùng duïng COM naøy. ™ Giôùi thieäu Dcomcnfg.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. • Default Properties. • Default Security. + 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, ñ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. + 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. Ngöôïc laïi khoâng taïo ñöôïc ñoái töôïng DCOM. 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. 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 Authentication Level (Packet Level) Muïc naøy coù nhieàu giaù trò choïn nhö sau: Name Description None No authentication. Connect Authentication occurs when a connection is made to the server. Connectionless protocols do not use this. GV:Hoà Quang Khaûi 4 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. Connectionless protocols do not use this. Packet Authenticates the data on a per-packet basis. All data is authenticated. Packet Integrity This authenticates that the data has come from the client, and checks that the data has not been modified. Packet Privacy In addition to the checks made by the other authentication techniques, this encrypts the packet. Default May vary depending upon operating system. - Default Impersonation Level Name Description Anonymous The client is anonymous. This setting is not currently supported by DCOM. Identify The server can impersonate the client to check permissions in the ACL (Access Control List) but cannot access system objects. Impersonate The server can impersonate the client and access system objects on the client's behalf. Delegate In addition to the Impersonate level, this level can impersonate the client on calls to other servers. This is not supported in the current release of DCOM. + Default Security Tab Coù 3 söï löïa choïn ôû Default Security tab. 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.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. o Nhaán ñuùp vaøo öùng duïng DCOM vöøa choïn. o Choïn Security Tab o Thöïc hieän nhöõng thay ñoåi sau. - 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 Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng - Choïn Identity Tab, choïn "The Interactive User." - Nhaán OK, nhaán OK moät laàn nöõa. ™ Caùch hieän thöïc moät öùng duïng DCOM daïng ActiveX(.exe) duøng Visual Basic. ‹ Taïo moät döï aùn DCOM daïng ActiveX(.exe) 1. Môû Visual Basic taïo moät döï aùn daïng ActiveX EXE 2. Sau khi taïo xong döï aùn, vaøo menu Project\Project Properties thieát laäp nhö sau: - 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. Neáu khoâng choïn thì öùng duïng server seõ thoaùt ra ngay khi ta chaïy noù trong Visual Basic. - 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. - Cuoái cuøng Version Compatibility choïn Project Compatibility, sau naøy ta seõ ñoåi sang löïa choïn Project Compatibility. 3. Bieân dòch öùng duïng server ‹ Tröôùc khi phaân boá öùng duïng, ta môû laïi öùng duïng server, vaøo project properties cuûa öùng duïng server thieát laäp laïi Version Compatibility choïn Binary Compatibility, taïi text box duøng browser daãn tôùi taäp tin .exe cuûa öùng duïng server. Save öùng duïng laïi, bieân dòch laïi öùng duïng server. ‹ Trieån khai öùng duïng server ñeå öùng duïng Client coù theå giao tieáp ñöôïc. Ñ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.0\Microsoft Visual Basic Tools. Tieáp theo thöïc hieän tuaàn töï theo caùc böôùc sau: 1. Duøng Browser choïn döï aùn server môùi vöøa taïo, nhaán vaøo nuùt Package 2. Choïn Dependency File trong Package Type. 3. Nhaán Next ñeå chuyeån qua böôùc tieáp theo. 4. Nhaán Next tieáp. 5. Choïn No khi ñöôïc hoûi veà hoã trôï Remote Automation 6. Nhaán Next treân maøn hình Included Files. 7. Nhaán Next treân maøn hình Cab Information. 8. Nhaán Next treân Install Locations. 9. Nhaán Finish. ‹ Taïo chöông trình Setup cho Client. 1. Khôûi ñoäng chöông trình Package and Deployment moät laàn nöõa. 2. Nhaán vaøo nuùt Package 3. Choïn Standard Setup Package trong danh saùch Package Type. 4. Choïn moät folder maø noù seõ ñöôïc truy caäp qua maïng. 5. Trong maøn hình Included Files, Boû ñaùnh daáu khoâng choïn döï aùn server(.exe). GV:Hoà Quang Khaûi 6 Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng 6. Nhaán vaøo nuùt Add, Choïn VBR ôû combo box file type, choïn file .vbr 7. Nhaán Next. 8. ÔÛ maøn hình Remote Servers, goõ vaøo Net Address cuûa Server. 9. Nhaán choïn Next ñeán heát. Nhaán Finish. ‹ 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. + Chaïy chöông trình Setup.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.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. b. 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. Muoán söû duïng MTS thì phaûi caøi ñaët Option Pack 4 cho Windows NT. Coøn ñoái vôùi Windows 2000 thì MTS ñöôïc tích hôïp vaøo IIS 5.0, ñöa COM vaø MTS tích hôïp laïi trong COM+ Applications. ™ 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, File hay Print …, 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.0, MTS ñöôïc coi nhö laø moät phaàn phuï (add-on), ñöôïc caøi thoâng qua NT4 Option Pack. 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. Ngoaøi chöùc naêng chính laø quaûn lyù giao dòch, 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. Caùc böôùc thoâng thöôøng ñeå söû duïng moät thaønh phaàn: 1. Taïo moät instance cuûa thaønh phaàn. 2. Khôûi ñoäng giaù trò cuûa caùc thuoäc tính cuûa thaønh phaàn. 3. Söû duïng thaønh phaàn. 4. Giaûi phoùng thaønh phaàn ra khoûi boä nhôù. Thoâng thöôøng, 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. 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. 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, 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 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. Ñ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. 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. Neáu moät öùng duïng thöù 2 muoán söû duïng thaønh phaàn ñoù, 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. 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 coù thì MTS seõ ñöa instance ñoù cho öùng duïng 1 söû duï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. 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. 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, 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. 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, traïng thaùi tröôùc khi giao dòch ñöôïc thöïc hieän. ™ 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. 1. Taïo moät thaønh phaàn COM daïng ActiveX DLL 2. Nhaán Start \ Settings \ Control Panel 3. Trong cöûa soå Control Panel môû folder Administrative Tools 4. Môû Component Services 5. Trong console tree cuûa Component Services, Nhaán ñuùp vaøo Computers 6. Nhaán ñuùp vaøo My Computers, nhaán ñuùp vaøo COM+ Applications 7. Nhaán phaûi chuoät vaøo COM+ Applications, troû tôùi New roài nhaán vaøo Application. 8. Xuaát hieän hoäp thoaïi COM Application Install Wizard, nhaán Next. 9. Taïi ñaây seõ coù hai löïa choïn. Choïn Create an emty Application - 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ù. - Create an emty Application : Neáu taïo moät öùng duïng troáng roài import thaønh phaàn COM (.dll) vaøo. GV:Hoà Quang Khaûi 8 Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng 10. 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. Tieáp theo xuaát hieän hoäp thoaïi coù hai löïa choïn, ta löïa choïn giaù trò default cuûa noù. Nhaán tieáp vaøo Next. 12. Nhaán Finish. 13. Nhaán ñuùp vaøo öùng duïng Example1 vöøa taïo. nhaán ñuùp vaøo Components 14. Nhaán phaûi chuoät vaøo Components, troû tôùi New, nhaán vaøo Component. GV:Hoà Quang Khaûi 9 Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng 15. Nhaán vaøo Next, Hoäp thoaïi Import or Install a Component xuaát hieän, choïn Install new Component(s). 16. Daãn ñeán choã löu tröõ file .dll, nhaán nuùt Open 17. Nhaán vaøo nuùt Next. Roài nhaán vaøo Finish ñeå keát thuùc. Ñeå cho pheùp öùng duïng Client truy caäp vaøo thaønh phaàn chaïy döôùi MTS, 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. Ñeå Client nhaän ra thaønh phaàn MTS phaân phaùt töø xa, ta laøm nhö sau: 1. Nhaán phaûi chuoät vaøo Example1 vöøa taïo. Nhaán vaøo Export… 2. Duøng nuùt Browse ñeå choïn moät thö muïc roãng ñeå export goùi. Cho vaøo teân taäp tin, nhaán Save. 3. Nhaán Next. Sau moät luùc, hieån thò ra moät hoïp thoaïi thoâng baùo sau: GV:Hoà Quang Khaûi 10 Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng 4. Nhaán vaøo Finish ñeå hoaøn taát. ‹ Caùc böôùc thöïc hieän treân maùy chaïy öùng duïng Client. 1. Cheùp thö muïc maø ta vöøa Export ñöôïc ôû treân vaøo maùy Client 2. Chaïy taäp tin .MSI trong thö muïc naøy ñeå ñaêng kyù vaøo maùy Client. 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. c. 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, 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. Kyõ thuaät naøy seõ ñöôïc giôùi thieäu sau. 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”. Öu ñieåm cuûa giaûi phaùp naøy sau: o So vôùi daïng ActiveX (.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. 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 (.exe). 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. 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. Ngoaøi ra kyõ thuaät naøy coøn hoã trôï cho nhöõng öùng duïng WEB. 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, hoaëc Windows 2000. Coøn giaûi phaùp duøng ActiveX(.exe) vaø giaûi phaùp duøng RDS, maùy chaïy öùng duïng COM coù theå chaïy treân neàn Windows 98, Windows NT, Windows 2000. o So vôùi öùng duïng duøng giaûi phaùp duøng ActiveX(.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. 3. Maùy chaïy öùng duïng Client vaø maùy chaïy öùng duïng COM khaùc maùy, 2 maùy naøy khoâng cuøng maïng. Ñ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). ™ 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, https. RDS hoã trôï maïnh cho nhöõng öùng duïng Web, 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.DataFactory, RDS.DataControl. 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.CreateObject("ProgId", "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. Protocol Syntax HTTP Set object = DataSpace.CreateObject("ProgId", "") GV:Hoà Quang Khaûi 11 Taøi lieäu moân hoïc Coâng cuï phaùt trieån öùng duïng HTTPS Set object = DataSpace.CreateObject("ProgId", "https://awebsrvr") DCOM Set object = DataSpace.CreateObject("ProgId", "computername") In-process Set object = DataSpace.CreateObject("ProgId", "") 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. 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. 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). ‹ Giôùi thieäu SSL(Secure Socket Layer) Treân Web, SSL laø giao thöùc thoâng duïng cho vieäc giao tieáp coù maõ hoùa giöõa browser vaø server. Söï keát hôïp giöõa moät giaûi thuaät maõ/giaûi maõ, 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). SSL coù theå hoã trôï nhieàu boä maät maõ. Ñeå söû duïng SSL, 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. 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á). + 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). + Caùc böôùc cuûa moät quaù trình SSL: 1. Client môû moät caàu noái ñeán server vaø gôûi thoâng ñieäp “ClientHello”. Thoâng ñieäp coøn keøm theo moät soá thoâng tin nhö version cuûa SSL, caùc boä maät maõ vaø giaûi thuaät neùn döõ lieäu maø client hoã trôï. 2. Server traû lôøi baèng thoâng ñieäp “Server Hello”. 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. 3. Server gôûi “baèng chöùng nhaän” cuûa noù ñeå ñònh danh noù ñoái vôùi Client. 4. Server yeâu caàu “baèng chöùng nhaän” cuûa client. Ñieàu naøy khoâng baét buoäc vaø ít khi xaûy ra. 5. Neáu client coù “baèng chöùng nhaän” thì noù seõ gôûi cho server. Neáu khoâng, noù seõ gôûi moät thoâng baùo khoâng coù baèng. 6. 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. 7. 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. 8. 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. 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á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. + 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, trong ñoù coù taäp tin msadcs.dll. 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.exe) ProgId cuûa öùng duïng COM (teân döï aùn.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 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. Môû Control Panel, môû Administrative Tools. môû Internet Services Manager. 2. Nhaán ñuùp leân Default Web Site. 3. Nhaán phaûi chuoät treân thö muïc aûo MSADC, nhaán Properties. 4. Treân Directory Security tab, choã IP Address and Domain Name Restrictions, nhaán Edit. - Neáu muoán taát caû caùc Client coù theå giao tieáp vôùi öùng duïng choïn Granted Access. - 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, choïn Client roài Add vaøo danh saùch. ‹ 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. Duøng RDS ñeå truy caäp nhöõng öùng duïng DCOM daïng ActiveX EXE. GV:Hoà Quang Khaûi 13

Các file đính kèm theo tài liệu này:

  • pdfLập tình công COM.pdf
Tài liệu liên quan