Công cụ phát triển ứng dụng - Kỹ thuật về các mô hình lập trình ứng dụng, các kiến trúc COM/DCOM và cách hiện thức ứng dụng dựa trên các kiến trúc này
Mô hình client/server là mô hình có ảnh hưởng lớn nhất đến ngành công nghệ thông tin. Mô hình client/server giúp cho những máy tính riêng lẻ, khả năng xử lý thấp có thể chạy được những ứng dụng rất lớn, phức tạp. Mô hình client/server giúp phát triển một phương thức phát triển ứng dụng mới là việc phân chia ứng dụng thành nhiều lớp thực hiện những chức năng
chuyên biệt. Một ứng dụng thông thường được chia làm 3 lớp:
o Giao diện (Presentation logic): lớp này là cầu nối giữa người dùng với ứng dụng, cung cấp những chức năng ứng dụng cho người dùng và nhận lệnh từ người dùng cho ứng dụng. Lớp này được thiết kế sao cho càng thân thiện với người dùng càng tốt.
o Chức năng (Business logic): đây là phần lõi của một chương trình, cung cấp tất cả những chức năng có thể có của chương trình cho lớp giao diện bên trên.
3. Trong cửa sổ Control Panel mở folder Administrative Tools 4. Mở Component Services 5. Trong console tree của Component Services, Nhấn đúp vào Computers 6. Nhấn đúp vào My Computers, nhấn đúp vào COM+ Applications 7. Nhấn phải chuột vào COM+ Applications, trỏ tới New rồi nhấn vào Application. 8. Xuất hiện hộp thoại COM Application Install Wizard, nhấn Next. 9. Tại đây sẽ có hai lựa chọn. Chọn Create an emty Application - Install pre-built application(s) Nếu muốn xây dựng lại ứng dụng mà ta đã tạo trước đó. - Create an emty Application : Nếu tạo một ứng dụng trống rồi import thành phần COM (.dll) vào. GV:Hồ Quang Khải 8 Tài liệu môn học Công cụ phát triển ứng dụng 10. Gõ vào vào một cái tên nào đó cho ứng dụng vừa tạo, nhấn vào Next 11. Tiếp theo xuất hiện hộp thoại có hai lựa chọn, ta lựa chọn giá trị default của nó. Nhấn tiếp vào Next. 12. Nhấn Finish. 13. Nhấn đúp vào ứng dụng Example1 vừa tạo. nhấn đúp vào Components 14. Nhấn phải chuột vào Components, trỏ tới New, nhấn vào Component. GV:Hồ Quang Khải 9 Tài liệu môn học Công cụ phát triển ứng dụng 15. Nhấn vào Next, Hộp thoại Import or Install a Component xuất hiện, chọn Install new Component(s). 16. Dẫn đến chỗ lưu trữ file .dll, nhấn nút Open 17. Nhấn vào nút Next. Rồi nhấn vào Finish để kết thúc. Để cho phép ứng dụng Client truy cập vào thành phần chạy dưới MTS, ta phải đăng ký vào Registry của máy Client để báo với nó rằng thành phần từ xa. Để Client nhận ra thành phần MTS phân phát từ xa, ta làm như sau: 1. Nhấn phải chuột vào Example1 vừa tạo. Nhấn vào Export… 2. Dùng nút Browse để chọn một thư mục rỗng để export gói. Cho vào tên tập tin, nhấn Save. 3. Nhấn Next. Sau một lúc, hiển thị ra một họp thoại thông báo sau: GV:Hồ Quang Khải 10 Tài liệu môn học Công cụ phát triển ứng dụng 4. Nhấn vào Finish để hoàn tất. Các bước thực hiện trên máy chạy ứng dụng Client. 1. Chép thư mục mà ta vừa Export được ở trên vào máy Client 2. Chạy tập tin .MSI trong thư mục này để đăng ký vào máy Client. Muốn gỡ bỏ đăng ký này ra khỏi máy Client ta có thể vào Control Panel\Add/Remove Programs để gỡ bỏ ra. c. Dùng RDS (Remote Data Access): Kỹ thuật này không nên sử dụng đối với mô hình này vì tốc độ chậm, kỹ thuật này được dùng cho trường hợp máy chạy ứng dụng và máy chạy ứng dụng COM không cùng mạng. Kỹ thuật này sẽ được giới thiệu sau. Kết luận: Tóm lại đối với mô hình kiến trúc máy chạy ứng dụng Client và máy chạy ứng dụng COM cùng một mạng local thì ta chọn giải pháp “Dùng MTS (Microsoft Transaction Server) để triển khai ActiveX DLL từ xa”. Ưu điểm của giải pháp này sau: o So với dạng ActiveX (.exe) thì dạng này quản lý các thể hiện thành phần và quản lý giao dịch tốt hơn nhiều nhờ sự hỗ trợ của MTS. o Về vấn đề quản lý security thì dạng này cũng hỗ trợ tốt hơn so với ActiveX (.exe). o Còn so với RDS thì kỹ thuật này sẽ làm cho ứng dụng chạy nhanh hơn. Vì kỹ thuật RDS được dùng hỗ trợ cho việc truy cập từ xa đối với những máy không cùng mạng. Ngoài ra kỹ thuật này còn hỗ trợ cho những ứng dụng WEB. Khuyết điểm: o Máy chạy ứng dụng COM của giải pháp này chỉ có thể chạy trên hệ điều hành Windows NT, hoặc Windows 2000. Còn giải pháp dùng ActiveX(.exe) và giải pháp dùng RDS, máy chạy ứng dụng COM có thể chạy trên nền Windows 98, Windows NT, Windows 2000. o So với ứng dụng dùng giải pháp dùng ActiveX(.exe) thì ứng dụng dùng giải pháp này sẽ chạy chậm hơn vì có kết hợp với MTS. 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. Để hiện thực việc giao tiếp giữa ứng dụng Client và ứng dụng COM đối với mô hình này thì phải dùng RDS(Remote Data Access). Giới thiệu về RDS: RDS là một mô hình lập trình cho phép ứng dụng Client có thể tạo một thể hiện của một ứng dụng COM đặt từ xa thông qua mạng Internet bằng các giao thức http, https. RDS hỗ trợ mạnh cho những ứng dụng Web, cho phép những ứng dụng Web viết những đoạn Script thao tác dữ liệu trên Server và lấy dữ liệu về thông qua thành phần RDSServer.DataFactory, RDS.DataControl. lưu ý: để dùng RDS để truy cập DCOM dưới đây thì ta phải dùng MTS triển khai thành phần COM đó thì ta mới có thể dùng Set object = DataSpace.CreateObject("ProgId", "Myserver") Còn nếu dùng trong dạng COM thì phải khai báo với hình thức In-process. Protocol Syntax HTTP Set object = DataSpace.CreateObject("ProgId", "") GV:Hồ Quang Khải 11 Tài liệu môn học Công cụ phát triển ứng dụ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 phép ứng dụng Client có thể thao tác dữ liệu thông qua mạng Internet nên vấn đề bảo mật đường truyền là vấn đề quan trọng để tránh việc thất lạc dữ liệu hay việc đánh cắp dữ liệu thì người lấy được những dữ liệu này cũng không thể xem những dữ liệu này được. Vì vậy RDS có hỗ trợ việc tạo đối tượng qua mạng Internet dùng giao thức https. Giao thức này được sử dụng với công nghệ bảo mật đường truyền SSL(Secure Sockets Layer). Giới thiệu SSL(Secure Socket Layer) Trên Web, SSL là giao thức thông dụng cho việc giao tiếp có mã hóa giữa browser và server. Sự kết hợp giữa một giải thuật mã/giải mã, một hàm giản lược thông điệp và một cách định danh được gọi là một bộ mật mã(cipher suite). SSL có thể hỗ trợ nhiều bộ mật mã. Để sử dụng SSL, Web Server cần phải có bằng chứng nhận(Certificate) do một nhà cung cấp chứng nhận (CA – Certificate Authority) như Verisign cấp. Ngoài ra còn có thể sử dụng bằng chứng nhận do Certificate Server của Windows NT Server hay của Windows 2000 server cấp (cũng giống như của CA nhưng không có giá trị quốc tế). + Một quá trình SSL : Mục đích của một quá trình SSL là định danh server( hoặc có thể định danh client) và cuối cùng có được một khóa session cho việc giao tiếp giữa client và server trong một phiên làm việc (session). + Các bước của một quá trình SSL: 1. Client mở một cầu nối đến server và gởi thông điệp “ClientHello”. Thông điệp còn kèm theo một số thông tin như version của SSL, các bộ mật mã và giải thuật nén dữ liệu mà client hỗ trợ. 2. Server trả lời bằng thông điệp “Server Hello”. Thông điệp kèm theo thông tin về bộ mật mã và giải thuật nén mà server chọn cùng với một SessionID tương ứng của Client. Nếu các bộ mã được hỗ trợ bởi client và server không hợp nhau thì server sẽ gởi một thông báo “handshake failure” và chấm dức session. 3. Server gởi “bằng chứng nhận” của nó để định danh nó đối với Client. 4. Server yêu cầu “bằng chứng nhận” của client. Điều này không bắt buộc và ít khi xảy ra. 5. Nếu client có “bằng chứng nhận” thì nó sẽ gởi cho server. Nếu không, nó sẽ gởi một thông báo không có bằng. 6. Client gởi thông điệp “trao đổi khóa” cùng với một bao điện tử chứa khóa session do client tạo ngẫu nhiên và được mã hóa bằng khóa public của server được lấy từ bằng chứng nhận của server. 7. Cả Client và Server cùng gởi thông báo “ChangeCipherSpec” để xác nhận cả hai đã sẵn sàng giao tiếp. 8. Cả hai cùng gởi thông báo “chấm dứt” phần thủ tục và bắt đầu giao tiếp có bảo mật bằng khóa session ở trên. Ngoài ra thông điệp cuối cùng này còn có chứa hash của toàn bộ quá trình làm thủ tục trên để cả hai cùng kiểm tra xem quá trình có bị trục trặc gì không. Cấu hình RDS trong Windows 2000(Máy chạy ứng dụng COM) Có hai sự cấu hình liên quan đến Remote Data Access: RDS security và IIS security. + RDS security: Để ứng dụng Client có thể dùng RDS để giao tiếp với ứng dụng COM thì trên thư mục ảo(wwwroot đối với windows 2000) của máy chạy ứng dụng COM phải có thư mục MSADC, trong đó có tập tin msadcs.dll. Ngoài ra cần phải khai báo bằng tay trong registry của máy chạy ứng dụng COM (mở ra bằng cách chạy tập tin regedit.exe) ProgId của ứng dụng COM (tên dự án.tên những class) tại vị trí sau: \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\ Parameters\ADCLaunch\ GV:Hồ Quang Khải 12 Tài liệu môn học Công cụ phát triển ứng dụng + IIS security: Để thiết lập IIS security thực hiện lần lược các bước sau: 1. Mở Control Panel, mở Administrative Tools. mở Internet Services Manager. 2. Nhấn đúp lên Default Web Site. 3. Nhấn phải chuột trên thư mục ảo MSADC, nhấn Properties. 4. Trên Directory Security tab, chỗ IP Address and Domain Name Restrictions, nhấn Edit. - Nếu muốn tất cả các Client có thể giao tiếp với ứng dụng chọn Granted Access. - Nếu muốn chỉ cho phép một số Client nào đó có thể truy cập đến ứng dụng, chọn Client rồi Add vào danh sách. Ngoài ra ta có thể dùng RDS để truy cập đến những ứng dụng COM được khai triển từ xa dùng MTS thông qua Internet. Dùng RDS để truy cập những ứng dụng DCOM dạng ActiveX EXE. GV:Hồ Quang Khải 13
File đính kèm:
- Unlock-Ky_thuat_lap_trinh_COM_DCOM_voi_VB.pdf