2.1 Giới thiệu chung: Lịch sử phát triển của MSMQ: MSMQ đã được Microsoft phát triển song song cùng với hệ điều hành Window…MSMQ là một cơ sở hạ tầng truyền thông message được tạo nên từ
Trang 1Mục lục
Mục lục 1
Mục lục hình 1
Lời cảm ơn 2
Các từ viết tắt trong đồ án 3
Lời giới thiệu 4
1 Giới thiệu bài toán tin học hoỏ cỏc dịch vụ bưu chính dưa trên mạng bưu chính (POST* NET) 6
2 Giới thiệu công nghệ ứng dụng MSMQ: 8
3 Vấn đề bảo mật 30
4 Mô hình lưu trữ và sử dụng dữ liệu của POST*NET 35
5 Áp dụng với bài toán chuyển tiền cụ thể 42
6.Hạn chế - mở rộng: 66
Kết Luận 68
Tài liệu tham khảo: 69
Mục lục hình Hình 1 Queue và Message 9
Hình 2 Mô hình MSMQ Server 10
Hình 3 In-routing và out-routing server 19
Hình 4 Net bandwidth và MSMQ 20
Hình 5 Định tuyến giữa hai site 21
Hình 6 Liờn lạc qua nhiều site 21
Hình 7 Kiến trúc của môi trường phát triển Visual Studio.NET 23
Hình 8 Kiến trúc một hệ thống phát triển trên công nghệ NET 24
Hình 9 Mô hình phát triển ứng dụng đa tầng của Microsoft 24
Hình 10 Mô hình lập trình của MSMQ 25
Hình 11 Mô hình truyền thông với MSMQ 26
Hình 12 Mô hình mó hoỏ 34
Hình 13 Encryptor và Decryptor 35
Hình 14 Mô hình tổ chức dữ liệu 36
Hình 15 Quan hệ “hàng xúm” trong mô hình đồng bộ 1 37
Hình 16 Quan hệ “hàng xúm” trong mô hình đồng bộ 2 38
Hình 17 Đồng bộ dữ liệu giữa các nhóm 39
Hình 18 Trình tự cập nhật dữ liệu hợp lệ 40
Hình 19 Dữ liệu thay đổi bất thường 40
Hình 20 Trình tự đồng bộ dữ liệu 41
Hình 21 State diagram của NT Services 42
Hình 22 Các dịch vụ đang khai thác 43
Hình 23 Mô hình phân tầng nghiệp vụ 44
Hình 24 Mô hình phân tầng hệ thống 45
Hình 25 Cỏc gói phần mềm 47
Hình 26 Các tác nhân sử dụng hệ thống 48
Hình 27 Các chức năng của CT2003 Branch 50
Trang 2Hình 28 Usecase của quản lý danh mục 50
Hình 29 Usecase của quản lý người dùng 51
Hình 30 Các Usecase nghiệp vụ 51
Hình 31 Mô hình 3 lớp của CT2003 Branch 52
Hình 32 Quan hệ trong DataServices 53
Hình 33 Quan hệ theo hướng nhìn đối tượng 53
Hình 34 Chi tiết các lớp trong DataServices 54
Hình 35 Biểu đồ chuyển trạng thái của Service 55
Hình 36 Squence diagram của DataServices 55
Hình 37 Liên hệ các đối tưọng nghiệp vụ 58
Hình 38 Quan hệ làm việcgiữa 3 lớp đối tượng 59
Hình 39 Quan hệ các lớp Danh mục 61
Hình 40 Chi tiết các lớp Danh mục 62
Hình 41 Bảng và quan hệ bưu cục 63
Hình 42 Các bảng danh mục cước 63
Hình 43 Bảng và quan hệ người sử dụng 64
Hình 44 Hai bảng chứa thông tin nghiệp vụ 65
Hình 45 Các bảng tạm chứa thông tin từ Queue đổ về 65
Lời cảm ơn
Với kết quả ngày hôm nay, cầm trong tay một sản phẩm phần mềm, một thành quả lao động đầy tự hào , tôi không thể dấu nổi niềm hạnh phúc là mình đã trải qua một chặng đường dài, đánh dấu bước trưởng thành vượt bậc của một sinh viên với biết bao mong chờ của gia đình, thầy cô và bạn bè
Để đi đến kết quả ngày hôm nay, tôi thật sự xúc động và tự hào mình đã hoà nhập
và tiến bộ trong môi trường Đại Học Bách Khoa, với sự tận tình chỉ bảo của các thầy cô giáo, sự giúp đỡ nhiệt tình của bè bạn và trên cả là một môi trường làm việc kỉ luật, năng suất cao và đầy tớnh sáng tạo
Tôi xin gửi lời cảm ơn trõn trọng nhất của mình tới các thầy cô giáo trong khoa CNTT trong suốt 5 năm học vất vả vừa qua đã luôn ở bên tôi, cũng như tập thể các bạn lớp Tin Pháp k44, luôn động viên nhiệt tình và giúp đỡ tôi không chỉ trong học tập mà cũn cùng sẻ chia bao vui buồn, khó khăn , kinh nghiệm…
Để hoàn thành tốt sản phẩm cuối cùng này với tư cách một sinh viên, tôi xin gửi lời cảm ơn đến thầy giáo hướng dẫn Lê Đức Trung và Trung tâm CTTT CDiT đã giúp đỡ tôi một môi trường làm việc thuận lợi để hoàn tất đồ án này Đặc biệt là các anh Ngô
Trang 3Quang Lựa, Nguyễn Như Anh, Trịnh Tố Toản,… và các anh khác trong nhúm phần mềmbưu chớnh cho tôi nhiều kinh nghiệm quý giá.
Các từ viết tắt trong đồ án.
• MSMQ : Microsoft Message Queue Công cụ truyền thông của hóng Micorsoftdựa trên Queue và Message
• CNTT : Công nghệ thông tin
• POST * NET : Mạng truyền thông của VNPT, có thể coi là một WAN độc lập, cókiểm soát
• GUID (special globally unique identifier)- Định danh duy nhất toàn cầu đặc biệt(dựa trên phần cứng để xác định)
• CT2003PO Các điểm đầu mối dịch vụ tại bưu cục địa phương
• CT2003Branch Các điểm đầu mối các bưu cục tỉnh thành phố
• CT2003 MainCenter Trung tâm chuyển tiền
Trang 4Lời giới thiệu
Hiện nay, trong nền kinh tế thông tin và kinh tế tri thức, ngành bưu chính truyềnthống Việt Nam đứng trước một thách thức to lớn, xuất phát từ các yếu tố : các nghiệp vụtruyền thồng đối với sự hình thành các kỹ thuật thông tin điện tử- tự động hoá ,sự cạnhtranh mạnh mẽ của các doanh nghiệp tư nhân trong cũng như ngoài nước và nhu cầu tănglên không ngừng của người dùng Trong quá trình kinh tế và tin học hoá toàn cầu, bưuchính hiện đại bắt buộc phải kết thành một thể thống nhất với mạng thông tin tiên tiếnnhất – Internet - nhằm trở thành một trong những những hệ thống phục vụ thương mạinhanh nhạy, đáng tin cậy và có hiệu quả cao nhất
Bưu chính đang thực hiện biến đổi từ bưu chính truyền thống sang bưu chính hiệnđại và sẽ phát huy hơn nữa ưu thế phổ cập của nú.Mặt khỏc nú cũng phải đối mặt vớinhững thách thức sau:
Yêu cầu của người sử dụng đang thay đổi:
Doanh nghiệp hoặc cá nhân đưa ra yêu cầu ngày càng cao hơn đối với tốc độ lưuthông vật phẩm và tin tức Điều đó biểu hiện nổi bật ở chỗ yêu cầu thông tin bưu chính đitheo hướng đa dạng hoá và tiêu chuẩn hoá cao Do đó bưu chính phải đảm bảo dịch vụcung ứng, chuyển phát đúng giờ, chấp hành hợp đồng có bảo hiểm, đáng tin cậy và có thể
Trang 5làm cho khách hàng tìm hiểu tình hình chuyển phát bưu kiện một cách thuận lợi, bất cứlúc nào Đi đôi với sự gia tăng cạnh tranh của thị trường thông tin, người sử dụng bưuchính mong muốn dịch vụ bưu chính có thể hướng đến người sử dụng nhiều hơn và làmđược việc bảo đảm dịch vụ bưu chính từ đầu này đến đầu kia, chất lượng phục vụ có thểđạt đến nhanh chóng, an toàn, tin cậy; bảo đảm cung cấp dịch vụ gia tăng giá trị, như dịch
vụ theo dõi tra tìm bưu kiện và và dịch vụ bưu kiện-bưu phẩm lai ghộp…
Thành phần người sử dụng các dịch vụ bưu chính đang biến đổi:
Những năm gần đây, lượng thư tín toàn cầu phải xử lý đã tăng lên không ngừng,nhưng kết cấu của người sử dụng bưu chính cũng đó cú sự biến đổi to lớn: bưu phẩm-bưu kiện từ doang nghiệp đến gia đình tăng lên rõ rệt, bưu phẩm-bưu kiện từ doanhnghiệp đến doanh nghiệp cũng tăng lên rất nhanh, và có thể đi đôi với sự bùng nổ cácphương tiện thông tin khác, sẽ giảm nhiều lượng nghiệp vụ
Nhu cầu của người sử dụng đang biến đổi
Hiện nay người sử dụng bưu chính mong muốn dịch vụ bưu chính có thể hướng đếnngười sử dụng nhiều hơn và làm cho được các công việc: Cung cấp dịch vụ bưu chính từđầu này đến đầu kia, chất lượng phục vụ nhanh chóng, an toàn tin cậy;
Cung cấp dịch vụ mới, như dịch vụ theo dõi tra tìm bưu phẩm-bưu kiện và dịch vụbưu kiện-bưu phẩm lai ghộp…
Môi trường kỹ thuật thay đổi nhanh chóng:
Tiến bộ về kỹ thuật đã tăng cường quy mô kinh tế trờn cỏc mặt sản xuất, hậu cần,mua bán hoặc nghiên cứu phát triển Kỹ thuật thông tin cao tốc, đủ tin cậy và có giá thànhtương đối thấp với phát triển bưu chính, vừa là sự uy hiếp,vừa là cơ hội Nếu biết tậndụng thời cơ, đi tắt đón đầu thì khả năng thành công là rất lớn
Ngành BC_VT Việt Nam hiện đó cú những bước chuẩn bị quan trọng để tiến hànhhội nhập với một trường CNTT hiện đại như: tiến hành áp dụng CNTT vào các dịch vụtruyền thống như dịch vụ chuyển tiền, điện hoa, phát hành bưu chính , e-stamp, cũng nhưtrong công tác quản lý- điều hành : ERP cho tổng công ty BC-VT Việt Nam(VNPT)…Mục tiêu của đồ án này cũng là đề cập đến một dịch vụ đang được tin học hoá, đó làdịch vụ chuyển tiền
Trang 61 Giới thiệu bài toán tin học hoỏ cỏc dịch vụ bưu chính dưa trên mạng bưu chính (POST* NET)
Do nhu cầu thực tế, VNPT đang khẩn trương tiến hành tin học hoỏ cỏc dịch vụ bưuđiện với mục tiêu chính là xây dựng hệ thống phần mềm phục vụ thống nhất Ngoài các
hệ thống dịch vụ bưu điện truyền thống như thư tín , điện báo, phát chuyển hàng , tiền…còn cần bổ sung thờm cỏc dịch vụ điện tử kiểu mới như e-stamps,điện hoa, mua hàngqua bưu điện
1.1 Các yêu cầu chung của các dịch vụ Bưu Điện qua mạng ( Một mô hình dùng chung cho nhiều loại dịch vụ)
Mạc dù khác nhau về chiến lược phát triển và hình thức phục vụ nhưng chúng cómột số đặc điểm chung đặt ra cần phải giải quyết
Các yêu cầu cơ bản đặt ra với hệ thống các ứng dụng trong giao dịch bưu chớnh quamạng (máy tớnh) mang đầy đủ các yêu cầu của một mạng thương mại, tức là phải đápứng tối thiểu các yêu cầu sau:
• Tính tiện lợi: Hệ thống phải có giao diện trực quan, dễ sử dụng, phù hợp kỹnăng sử dụng máy tính của nhân viên giao dịch trong điều kiện phải phục vụkhách hàng
• Tính sẵn sàng: Hệ thống vẫn hoạt động bình thường khi đường truyền lêntrung tâm bị gián đoạn tạm thời Khi một máy tính gặp sự cố, việc cài đặtđược thực hiện nhanh chóng và đơn giản, nhân viên giao dịch có thể dễ dàng
Trang 7làm chủ hệ thống để có thể tiến hành phục vụ khách hàng bình thường ngay
cả khi các thiết bị phần cứng trong giao dịch gặp sự cố
• Phụ thuộc tối thiểu vào mạng: Hệ thống phụ thuộc tối thiểu mạng diện rộngtại bất kỳ thời điểm nào Điều này đặc biệt quan trọng khi mà hạ tầng viễnthông ở Việt Nam đang trong giai đoạn phát triển Ngoài ra, khi mạng hoạtđộng trở lại, hệ thống sẽ tự khôi phục và thực hiện các chức năng cần thiếtđối với các chức năng trước đó
• Tính toàn vẹn: Cơ chế đồng bộ giúp cho dữ liệu trên toàn hệ thống có tínhtoàn vẹn cao, dữ liệu được chuyển đến hệ thống thì không thể bị mất hoặc bịsửa đổi tùy tiện Ngoài ra hệ thống có cung cấp khả năng đối phó với cáchành động phá hoại cố tình
• Tính bảo mật: Hệ thống có khả năng ngăn chặn sự truy nhập trái phép vào
cả mức ứng dụng và mức cơ sở dữ liệu Tất cả các truy nhập vào hệ thốngphải được kiểm duyệt thông qua tài khoản người sử dụng bao gồm tên người
• Cơ chế sao lưu tự động: Hệ thống có khả năng bảo vệ sự mất mát dữ liệu khithiết bị phần cứng cục bộ bị hỏng, thông qua các cơ chế sao lưu tự động
• Chi phí sử dụng mạng thấp: Hệ thống không yêu cầu các hệ thống mạng line và băng thông cao, phải có khả năng hoạt động thông qua các đườngdial-up 56K cũng như ISDN Hệ thống được thiết kế sử dụng việc truyềnthông trên mạng là tối thiểu trong khi có thể hỗ trợ sự bảo mật và số lượngkết nối tối đa
on-• Chi phí quản lý hệ thống thấp: Hệ thống yêu cầu một chi phí quản lý thấp,
do cách cài đặt, cấu hình và giao diện sử dụng hệ thống đơn giản, dễ hiểu,
dễ thao tác và được tự động hóa ở nhiều khâu
• Cho phép triển khai từng bước: hệ thống cho phép triển khai từng bước đểthay thế dần các hệ thống hiện có và từ phạm vi hẹp đến toàn bộ mạng lưới
mà không làm ảnh hưởng đến hoạt động sản xuất kinh doanh của bưu chính
• Hỗ trợ thiết bị ngoại vi: Hệ thống có khả năng quản lý các thiết bị ngoại vinhư máy quét mã vạch, máy in sổ, máy in hoá đơn, Đồng thời hệ thốngcũng có khả năng chia sẻ các thiết bị ngoại vi giữa các vị trí giao dịch khácnhau trong trạm giao dịch nhằm giảm chi phí và không gian sử dụng
• Khả chuyển: Hệ thống cần cho phép dễ dàng chuyển dần từ hệ thống hiệntại sang hệ thống mới mà không làm ảnh hưởng đến hoạt động của dịch vụ
Trang 81.2 Tính mở và thích nghi cao
Nhu cầu hệ thống mở là một tất yếu trong quá trình mở rộng và phát triển nhưngtrong tình hình hiện nay nó càng được xem như một yếu tố quyết định đánh giá sự thànhcông của hệ thống
Hệ thống được thiết kế thuận tiện cho việc bổ sung các chức năng mới, đồng thời dễdàng tích hợp với các hệ thống đang tồn tại do sử dụng cỏc cụng nghệ tiên tiến như WebService, NT Service
Để đảm bảo sự thích nghi công nghệ và tương thích cao, tớnh hiện đại các ứng dụngloại này sẽ được xõy dựng trên môi trường Net của Microsoft
1.3 Vấn đề truyền thông qua mạng nội bộ POST* NET
Các chương trình phải được thiết kế và xây dựng trên nền tảng truyền thông quamạng riêng POST-NET của ngành bưu điện Đặc thù của mạng này có nhiều điểm cònbất cập như:
• Đường truyền trên mạng còn nhiều tuyến không ổn định, băng thông thấp,còn phải sử dụng đường Dial-up Tỉ suất lỗi trên đường truyền cao…
• Có sự không đồng bộ về truyền nhận giữa các nơi, thậm chí ở những vựngsõu vựng, xa, liên lạc còn khó khăn, gián đoạn …Phương thức truyền hầuhết là offline hoặc xử lý theo từng phiờn(bú)( batch –processing)
• Từ đặc thù này xuất hiện cơ chế kiểm soát , đối soát qua một trung tâm đầumối nhằm kiểm tra lại độ an toàn, chính xác thông tin Từ đó phát sinh vấn
đề truyền thông song song( từ một đích đi hai nơi: một đích đến thật và mộtđích là nơi tập hợp dữ liệu để kiểm tra, tổng hợp báo cáo)
Như vậy giải quyết bài toán dịch vụ thống nhất cho nghành bưu điện chính là đềxuất giải pháp truyền thông cho các dịch vụ, tổ chức thành một nền tảng thống nhất vàxây dựng trên đó các ứng dụng tương ứng cho các dịch vụ
2 Giới thiệu công nghệ ứng dụng MSMQ:
Công nghệ phù hợp đáp ứng được các nhu cầu trên là MSMQ
2.1 Giới thiệu chung:
Lịch sử phát triển của MSMQ:
MSMQ đã được Microsoft phát triển song song cùng với hệ điều hành Window…MSMQ là một cơ sở hạ tầng truyền thông message được tạo nên từ các máy tính hỗtrợ nhiều chức năng khác nhau và được kết nối trong một mạng Windows bao gồm nhiềumáy tính chạy các phiên bản khác nhau của Windows Nó xuất hiện trong hệ điều hành
Trang 9như một service chạy ngầm và có thể hiểu như một hỗ trợ của hệ điều hành cho các ứngdụng truyền thông.
Công nghệ MSMQ cho phép các ứng dụng chạy không đồng thời có thể liên lạc vớinhau thông qua hệ thống mạng không đồng nhất và có thể tạm thời offline bất kỳ khinào Các ứng dụng gửi các bản tin (message) tới các hàng đợi (queue) và thu nhận cácmessage từ queue về
Hình minh họa sau mô tả cách một queue lưu trữ các message được sinh ra bởi cácứng dụng gửi khác nhau và cỏch cỏc ứng dụng nhận khác nhau thu nhận các message đó
Hình 1 Queue và MessageMSMQ có thể được sử dụng trong môi trường Domain cũng như môi trườngWorkgroup Ở đây, môi trường Domain bao gồm các Domain controller hỗ trợ dịch vụdirectory (directory service) như Active Directory còn môi trường Workgroup không hỗtrợ một directory service nào Một mỏy cú MSMQ nào thuộc về một domain có thể thiết
lập cấu hình không truy cập vào directory service và nó được gọi là làm việc trong offline mode (chế độ offline) Và một mỏy cú MSMQ nằm trong Workgroup được gọi là làm việc trong workgroup mode (chế độ workgroup).
2.2 Các mô hình Message Queuing:
Cỏc mỏy dựng message queuing kết nối vào một mạng có thể với các chức năngkhác nhau, điều đó tùy thuộc vào các thành phần được cài đặt trờn nú
2.2.1 MSMQ Server
Trang 10Hình 2 Mô hình MSMQ ServerMSMQ Server cung cấp xương sống để truyền thông trong mạng MSMQ Tất cảcác MSMQ Server đều chạy MSMQ Service, Host queue, lưu trữ cục bộ các message vàcho phép gửi và nhận các message MSMQ Server cũng cung cấp directory service truynhập tới pre-Windows XP client và routing.
MSMQ Server cài đặt trên Windows 2000 domain controller cung cấp khả nănghiển thị và thay đổi thông tin sắp xếp trong Active Directory của pre-Windows XPclient Windows XP client có thể truy nhập trực tiếp vào Active Directory mà không cần
sự giúp đỡ của MSMQ Server
MSMQ Server cài đặt dịch vụ routing cho phép định tuyến các message và cácqueue lưu trữ trung gian Vì thế các MSMQ Server có thể định tuyến message bên trongmột site hoặc giữa các site khác nhau khi không có kết nối trực tiếp giữa cỏc mỏy client.MSMQ Server hỗ trợ chức năng định tuyến message trong cùng một site được gọi là in-routing server (InRS) và giữa các site được gọi là out-routing server (OutRS) Kết nối
Trang 11giữa các site sẽ xác định một routing link Các message truyền từ site này tới site khácbằng một routing link thông qua một server, gọi là site gate
Biên dịch địa chỉ mạng
Đây là giao thức cho phép một mạng với các địa chỉ riêng truy nhập vào các thôngtin trên Internet thông qua tiến trình biên dịch địa chỉ IP Giao thức này có thể dùng đểđịnh hình cho một mạng nhỏ để chia sẻ chung một kết nối tới Internet
2.2.2 Independent Client (IC)
IC chạy MSMQ service, host queue, gửi và nhận các message và có thể hoạt độngtrong khi không có kết nối tới mạng IC không yêu cầu truy nhập đồng bộ tới MSMQServer để gửi và nhận các message Sự khác biệt lớn nhất giữa IC và MSMQ Server là ICkhông hỗ trợ truy nhập Active Directory và khả năng định tuyến các message
IC và MSMQ Server không hỗ trợ routing có chức năng tương tự nhau Sự khácbiệt giữa chúng chỉ là IC có thể chạy trên Windows XP Professional còn MSMQ Serverbắt buộc phải chạy trên nền Windows 2000 Server Family hoặc Windows 2003ServerFamily Khi này có thể coi IC như một MSMQ Server (equivalent MSMQ Server) Khi IC ngắt kết nối ra khỏi mạng, nó vẫn hoạt động bình thường IC lưu trữ cục bộcác message và tự động gửi chúng đi ngay khi kết nối với mạng được thiết lập lại
Khi client chuyển tới một site khỏc,cỏc server in-routing và out-routing không sửdụng cho định tuyến message trong site mới Khi IC trở về site gốc của nó, các server đólại tiếp tục được sử dụng cho việc định tuyến message
2.2.3 Dependent client (DC)
DC yêu cầu truy nhập đồng bộ tới MSMQ Server, được gọi là supporting server,cho tất cả các chức năng của message Supporting server có thể là bất kỳ MSMQ Servernào hoạt động trong chế độ Domain với các chức năng IC tối thiểu, tốt nhất là trong sitenội tại nhưng cũng có thể là trong site gần đó DC dựa vào supporting server của nó để
Trang 12thực hiện các chức năng về message như host queue, lưu trữ message, gửi message vànhận các message Nếu supporting server trở nên offline thì DC sẽ không thể gửi và nhậncác message.
Những đặc điểm mới của MSMQ trong Windows XP như vận chuyển qua giao thứcHTTP, gửi đa đích không thể có trong DC
Trong tương lai, mô hình DC sẽ không tồn tại trong các phiên bản sau của MSMQ
Do lí do này, chúng ta nên sử dụng IC thay vì DC trong các hệ thống của mình MSMQRPC được hỗ trợ trong các phiên bản trước cuả MSMQ nhưng không lâu nữa sẽ không
hỗ trợ trong các phiên bản tiếp theo
2.2.4 Lưu trữ MSMQ Object trong Active Directory
Trong môi trường domain, một hoặc nhiều đối tượng MSMQ được tạo ra trong suốtqua trỡnh thiờt lập tất cả các kiểu MSMQ trừ DC Các đối tượng này lưu trữ các thông tinkhác nhau liên quan đến MSMQ Việc truy cập của user tới đối tượng MSMQ được điềukhiển bằng cách gán sercurity descriptor tới đối tượng đó Sercurity descriptor sẽ liệt kêcác user và nhóm user có quyền hay bị cấm truy nhập vào đối tượng và cho phép gánquyền tới các user hay nhóm user
Các đối tượng này có thể được thay đổi tên trong những trường hợp đặc biệt Dướiđây là tờn cỏc đối tượng được thiết lập mặc định trờn mỏy mà chúng ta có thể hiển thịchúng thông qua Computer Managtôient snap-ins
tượng
Lớp đối tượng
MSMQ Server không có chức năng
Directory Service hoặc dịch vụ định tuyến
trên một domain controller
MSMQ-Configuration
MSMQ Server với chức năng
Directory Service trên một domain
controller
msmq;
Settings
Configuration
MSMQ-MSMQ Server có dịch vụ định tuyến msmq;
Settings
Configuration
MSMQ-MSMQ Server không có domain msmq;
Trang 13Khi tạo mới một đối tượng trong Active Directory, bạn sẽ phải xác định một sốthông tin tối thiểu để thiết lập đối tượng đó Mỗi đối tượng có nhiều thuộc tính khác nhaucần phải xác định Hơn thế, sau khi thiết lập xong đối tượng ta có thể thay đổi hoặc nhậpthờm cỏc giá trị cho chúng
Hầu hết các thông tin về MSMQ được lưu trữ trên đối tượng MSMQ, ngoài ra cònmột số thông tin được lưu trữ trong các đối tượng khác Đặc biệt, đối tượng user chứađựng thông tin về user certificate, các thông tin liên quan tới site bên ngoài được lưu trữtrên đối tương site,
2.2.5 Các kiểu Queue
Queue là nơi lưu trữ các kiểu message khác nhau Có nhiều loại queue khác nhauđược sử dụng tùy theo mục đích
a Public queue
Trong môi trường domain, public queue được ban hành trong Active Directory và
từ đó có thể được tái tạo trong Windows 2000 forest Chú ý rằng chỉ có thuộc tính củachúng được tái tạo chứ không phải bản thân queue hay nội dung của chúng
Bất kỳ máy nào thuộc Windows 2000 forest đó đều có khả năng truy cập các thôngtin trên queue này và public queue hỗ trợ cho user đủ quyền để truy nhập vào đối tượngqueue thích hợp
Thông thường, bất kỳ user nào trong forest truy cập vào Active Directory và đượcchấp nhận đối với public queue nhất định thì có thể gửi message đến queue đó
Public queue không thể sử dụng trong môi trường workgroup
b Private queue
Đó là các queue chỉ được hiển thị trên nội bộ máy chứa nó Private queue chỉ có thểtruy nhập bởi ứng dụng MSMQ nào biết chính xác tên đường dẫn đầy đủ hoặc tên địnhdạng của queue đó
Trang 14Trong MSMQ 2.0 có hỗ trợ cơ chế RCP (Remote Call Procedure), cho phép truycập vào các private queue của mỏy khỏc nhưng từ phiên bản MSMQ 3.0 trở đi, cơ chếnày sẽ không được hỗ trợ Điều này sẽ đảm bảo tính chất riêng tư cho nguồn tài nguyêntrong môi trường mạng.
c Outgoing queue
Đây là queue nội tại, nó được sử dụng để lưu trữ các message gửi tới queue ởxa.Message cũng có có thể được lưu trữ trên outgoing queue trong điều kiện máy hoạtđộng offline hoặc khi gửi tới một queue ở trên mỏy khỏc mà kết nối chưa được thiết lậphoặc đã bị đứt.Cỏc outgoing queue được liệt kê trong thư mục outgoing queues Cácqueue này được sinh ra một cách tự động và không thể tạo ra hay xóa được một cách thủcông
Không những thế, đối với các message được gửi tới các queue sai đường dẫn nhưsai địa chỉ IP, tờn mỏy, hoặc queue đú khụng tồn tại thỡ chỳng cũng được lưu trữ trênOutgoing queue Chúng ta có thể dừng các outgoing queue này một cách thủ công bằngcách sử dụng Console Management
d Systems queue
Có 3 loại queue chính bao gồm: Journal, Dead-letter và Transactional Dead-letter
• Journal: Tiến trình sẽ lưu giữ bản sao của message lại và chúngđược gọi là journal message
• Dead-letter: Các nontransactional message mã không gửi đi đượchoặc hết hiệu lực sẽ được đưa ra queue này
• Transactional Dead-letter: Các transactional message mã khônggửi đi được hoặc hết hiệu lực sẽ được đưa ra queue này
Ngoài ra, cũn cú cỏc queue lưu trữ các message trả lời, message thông báo, và cảcác connector queue để hỗ trợ cho quá trình giao tiếp với foreign computer
e.Tên Queue
Các queue có thể được xác định theo hai cách: path names và format names
Path name của một queue bao gồm tên của máy chứa queue đó và tên của queue có
dạng ComputerName\QueueName hoặc \QueueName đối với public queue
ComputerName\private$\QueueName or .\private$\QueueName đối với private
queue
Trang 15(Dấu thể hiện localhost)
Format name được sử dụng trong hầu hết các ứng dụng MSMQ để thực thi các
công việc Tuy nhiên, chúng cũng được sử dụng trong vài công việc quản lí Có nhiềukiểu kiểu format name khác nhau được sử dụng trong MSMQ
•Direct format name
Hình thức thường được dùng cho các public hoặc private queue mà không cần truynhập vào directory service.Vỡ vậy, kiểu này thường được sử dụng trong chế độworkgroup cũng như gửi các message trên Internet
Các kiểu tên queue theo định dạng này được liệt kê sau đây:
•Public format name
Hình thức này thường sử dụng cho các public queue Khi dùng định dạng này,MSMQ sử dụng thuật toán định tuyến bên trong nó để định tuyến tới queue đớch Cũn ởhình thức trờn, cỏc message được gửi thẳng tới queue đớch Cỏc giá trị QueueGUID nàyđược sinh ra tự động khi khởi tạo queue
PUBLIC=QueueGUID
Ví dụ: PUBLIC=308FB580-1EB2-11CA-923B-08002B1075A7
Chú ý rằng, vị trí của queue không được dùng trong public format name Điều đócho phép các thủ tục với message vẫn tốt đẹp mà không cần biết vị trí của queue Haypublic queue có thể được định vị lại trờn mỏy khỏc mà định dạng tên này vẫn có giá trị
•Private format names
Hình thức này dùng cho các private queue Giống như Public format names,
MSMQ cũng sử dụng thuật toán định tuyến bên trong nó để định tuyến tới queue đích.MSMQ phải dùng Directory Service để tìm kiếm thông tin trờn mỏy để cho mục đíchđịnh tuyến
PRIVATE=ComputerGUID\QueueNumber
PRIVATE=ae0c5671-f190-12ce-ae10-00dd0114290f\0000000d
Trang 16Giống như định dạng trên, ComputerGUID được gán cho mỗi máy riêng biệt vàQueueNumber sẽ tự động sinh ra khi khởi tạo queue
•Ngoài ra cũn cỏc định dạng khác như Distribution list format names,Multiple-element format names
2.3 Các kiểu Message:
Mỗi message bao gồm body và một tập các thuộc tính cuả nó Message body có thểchứa đựng dạng text hay bất kỳ dạng thông tin nhị phân nào và có thể được mã hóa Hầuhết các thuộc tính của message được xác định bởi ứng dụng MSMQ Một message, baogồm cả body và tất cả các thuộc tính, có độ dài tối đa là 4MB
Các kiểu message thường gặp bao gồm:
• Normal messages Đó là tất cả các message được tạo ra bởi ứng dụng.
Các message này có thể được gửi tới public, private hay dead-letter queue với cả 2kiểu nontransactional và transactional
• Acknowledgment messages Message thông báo trạng thái của normal
message Acknowledgment message có thể là khẳng định hoặc phủ nhận Mộtacknowledgment message khẳng định chỉ ra rằng message đã được gửi tới đíchhoặc được nhận bởi ứng dụng Một acknowledgment message phủ nhận chỉ ramessage chưa đến đích trước khi thời hạn tới đích (time-to-reach-queue TTRQ) hếthay không tới được đích do một lí do nào đó hoặc không được thu nhận khi thờigian được thu nhận đã hết (time-to-be-received TTBR)
• Report messages Message này thông báo quá trình định tuyến bản tin tới
đích Report message được gửi tới report queue trờn máy nguồn nếu thiết lập
tracking flag
• Response messages Message này được gửi trả về bởi ứng dụng nhận tới
response queue xác định bởi ứng dụng gửi
2.3.1 Độ ưu tiên của Message
Độ ưu tiên này sẽ xác định thứ tự được gửi đi của message Đầu tiên, nó dựa vào độ
ưu tiên của queue (Base Priority) sau đó mới tới độ ưu tiên của message (Priority) Độ ưutiên của queue dành cho public queues trong Active Directory có giá trị từ -32768 đến
32767 Giá trị mặc định là 0 Ứng dụng MSMQ thiết lập độ ưu tiên cuả message chonontransactional messages trong miền [0 7], với 7 là mức ưu tiên cao nhất giá trị mặc
Trang 17định cũng là 0 Private queue không hỗ trợ độ ưu tiên queue (giá trị base priority choprivate queue là 0).
Các message với cùng độ ưu tiên sẽ lưu trong queue dựa vào thời gian nhận đượcchúng Chúng ta chỉ có thể thiết lập priority cho các nontransactional message Còn với
transactional message, MSMQ tự động thiết lập priority là 0.
2.3.2.Cơ chế truyền message
Có hai phương thức truyền message là: express và recoverable Phương thức truyềnexpress sử dụng tài nguyên một cách tối thiểu còn phương thức recovery sẽ đem lại độ tincậy cao và các khả năng phục hồi khi xảy ra lỗi Cách thức truyền sẽ được xác định bởiứng dụng gửi
• Express messaging
Trong cơ chế này, các message lưu trữ bên trong RAM trong suốt qua trình địnhtuyến và vận chuyển, điều này cho tốc độ thực thi tối đa nhưng không khôi phục đượcnếu bất kỳ máy nào mà message đi qua bị lỗi Và express message sẽ mất khi nào MSMQservice dừng Hơn thế nữa, qua nhiều express message lưu trong RAM có thể làm cho bộnhớ phải paging ra đĩa làm tăng thời gian Vì vậy không nên lưu trữ quá nhiều expressmessage trong bộ nhớ vật lý
• Recoverable messaging
Trong cơ chế này, các message được lưu trữ trên đĩa cứng trong suốt quá trình địnhtuyến và vận chuyển Do đo tốc độ vận chuyển sẽ lâu hơn nhưng khi gặp lỗi các messagevẫn tồn tại trong queue Khi khởi động lại MSMQ Service thì tiến trình gửi sẽ tự độngphục hồi Điều này sẽ đảm bảo độ tin cậy cao cho hệ thống
Trong Recoverable messaging, có 2 cơ chế truyền các mesage là transactional và
nontransactional messaging
• Transactional mesaging:
Đây là các bản tin được trao đổi trong một transaction Đó là một hoặc một chuỗihành động (action) thực hiện Trong MSMQ, một transaction chỉ gồm một công việc gửihoặc nhận các mesage và được thực thi theo 2 pha Đầu tiên, MSMQ xác định xem liệutất cả các action có thể hoàn thành được không Nếu được, nó sẽ cam kết và chuyển cácmessage đó đến queue Cũn khụng, nú bỏ transaction này và phục hồi lại các action đãthực thi Cuối cùng, các message được chuyển tới đích một cách chính xác theo đúngtrình tự truyền đi
Trang 18• Nontransactional mesaging:
Cơ chế này có thể đem lại tốc độ truyền nhanh hơn do không đòi hỏi các bước kiểmtra sự thi hành của các action Và không phải ghi nhiều lần message lên đĩa cứng và yêucầu nhiều tài nguyờn mỏy
Chỉ có các transaction message mới có thể gửi tới các transaction queue Chỉ có thểthu nhận các message trong một transaction từ transaction queue nội bộ Nhưng cácmessage có thể thu nhận từ các transaction queue nội bộ hoặc từ xa thông qua các thủ tụcnontransaction Thuộc tính transation của queue được thiết lập ngay khi khởi tạo queue
và không thể thay đổi thuộc tính này trong chương trình hay thủ công
• Không thể thiết lập phiên giữa máy nguồn và mỏy đớch nhất là khi mỏy đớchoffline
• Server định tuyến MSMQ được chỉ định để lưu trữ và vận chuyển message thay chomáy nguồn hoặc mỏy đớch
Nhờ hỗ trợ tập trung session mà việc sử dụng MSMQ routing server sẽ làm giảmchi phí vận hành Do vậy, các server có thể làm giảm bandwidth yêu cầu trong site vàgiảm số lượng session giữa các site Hơn nữa do các MSMQ routing server sẵn có và cácmessage không thể tích lũy nhiều trong IC do nó chỉ hỗ trợ hạn chế dung lượng lưu trữnhưng có thể vận chuyển tới một out-routing server, ở đó sẽ lưu trữ message cho tới khimỏy đớch trở nên online
MSMQ routing server hỗ trợ phân hướng trong nội bộ site được gọi là in-routing server (InRS) hoặc out-routing server (OutRS) MSMQ server hỗ trợ định tuyến message trên routing link , qua đó xác định kết nối giữa các site được gọi là site gate.
Chi phí cho việc sử dụng một tuyến kết nối tới mỏy đớch được tính bằng hop, mỗi
hop đại diện cho sự vận chuyển message từ một máy này tới một mỏy khỏc Trongtrường hợp có nhiểu tuyến đường khác nhau tới cùng một đớch thỡ tuyến tối ưu là tuyến
có tổng hop nhỏ nhất
Trang 19a.Định tuyến trong nội bộ site
Trong trường hợp đơn giản nhất là cỏ mỏy nguồn và mỏy đớch khụng sử dụngInRS và OutRS Khi đó, MSMQ sẽ cố gắng chuyển message trực tiếp tới mỏy đớch (1hop) hoặc, nó sẽ chuyển message tới một MSMQ routing server ngẵ nhiên nằm trong site
supporting server
Tất cả các InRS hay OutRS cần phải đặt trên site gốc mà chúng phục vụ Khi mộtclient di đông di chuyển tới một site khỏc thỡ cỏc server đó sẽ không được dùng cho việcđịnh tuyến cho tới khi client quay trở lại site gốc
b.Network bandwidth
Chức năng định tuyến nội bộ site có thể làm giảm thiểu việc sử dụng networkbandwidth nhờ hỗ trợ việc tập trung session Ví dụ như trong cấu hình mạng star trongmột site và mỗi IC thường truyền thông trực tiếp tới IC khác, ta có thể làm giảm việc sửdụng bandwidth nhờ tập trung session bằng cách thiết lập mỗi IC đều sử dụng cùng mộtMSMQ routing server cho cả hai chức năng
Trang 20Hình 4 Net bandwidth và MSMQ
c.Định tuyến giữa các site
Công việc này đòi hỏi kết nối giữa các site và kết nối đo được xác định bởi các
logical communications link hay còn gọi là routing link Nếu lưu lượng message giữa 2
site xác định có thể thiết lập thông qua một MSMQ routing server xác định hoặc một
trong số vài server như thế thì MSMQ routing server đó được gọi là site gate Các
routing link có thể dựng cỏc site gate để định tuyến messages giữa 2 site
Mỗi routing link đều được gán một giá trị chi phí, nó phản ánh mức độ tiều hao vềtài nguyên của đường truyền vật lý Giá trị này nằm trong khoảng từ 1 tới 999999 và mặcđịnh bằng 1
Trong môi trường domain có hơn một Windows 2000 site, ta có thể tạo ra routinglink để đảm bảo rằng các message có thể được định tuyến giữa các site khác nhau Nếukhông có routing link thì MSMQ sẽ cố gắng thiết lập một kết nôi trực tiếp tới mỏy đớchnằm trong một site không có kết nối
Khi một message được gửi đi từ một IC trên một site tới một máy nằm trên sitekhác, trước tiên máy nguồn sẽ cố gắng kết nối trực tiếp tới mỏy đớch Và nếu không thành
nó gửi message tới một routing server nằm trong cùng site để chuyển message tới mộtsite gate Quá trình này sẽ tiếp tục cho tới khi message được chuyển tới mỏy đớch
Trang 21Hình 5 Định tuyến giữa hai siteKhi có nhiều routing link kết nối giữa các site khác nhau thì sự lựa chọn cácrouting link khác nhau để tạo thành một tuyến kết nối giữa 2 site được lựa chọn trên tiêu
chí về tổng chi phí trên tuyến kết nối đó là bé nhất
Hình 6 Liờn lạc qua nhiều site
d.Định tuyến Message giữa các mạng khác nhau
MSMQ có thể sử dụng để gửi và nhận message với các mạng bên ngoài, ví dụ nhưmột Windows 2000 forest khác MSMQ computer có thể sử dụng nhiều port dịch vụ khácnhau để truyền thông với các mạng ngoài thông qua các giao thức trung gian đã đượcthống nhất giữa các nhà sản xuất phần mềm trên thế giới
2.3.4.Lưu trữ Message
Các message được lưu trữ hạn chế về kích thước cũng như hạn chế về kích thướccủa các queue Chúng ta có thể xác định kích thước đĩa cứng dành cho lưu trữ cácmessage để từ đó có thể xác định được số lượng các message có thể lưu trữ được
Trang 22Các file dùng để lưu trữ các message được đặt tại thư mục Msmq\Storage vàMsmq\Storage\Lqs (trong thư mục mặc định là \Windows\Systems32).
Các message được lưu trữ trong các file bản đồ bộ nhớ (các file mq) trên đĩa cứngcủa máy nguồn, mỏy đớch hoặc các MSMQ Server trung gian Không gian đĩa cứngspace được chỉ định cho cả express và recoverable message trong dung lượng tối đa4MB Với mỗi recoverable message, các file tương ứng được ghi ra đĩa cứng để đảm bảocác message có thể phục hồi Với express message, các file chỉ được lưu ra đĩa khi máykhông còn tài nguyên để xử lý message trong bộ nhớ
Các file đó được lưu giữ theo kiểu của message tương ứng:
• r — Express message
• p — Recoverable message
• j — Journal message.
• l — Các file message log
Mỗi file mq không tương ứng với một queue cụ thể mà một file có thể lưu trữnhiều message từ các queue khác nhau và ngược lại Tuy nhiên, mỗi message không thểchia ra lưu trữ trên nhiều file Vì thế, kích thước tối đa xác định của message là 4-MB
2.3.5 Làm việc với MSMQ trong môi trường Net
Xử lý không đồng bộ là ý tưởng sử dụng trong nhiều trường hợp, đặc biệt là trênWeb, nơi mà các yêu cầu của user cần được xử lý trong một thời gian dài nhưng bạn vẫnmuốn hỗ trợ phản hồi cho user ngay tức thì Bằng cách xử lý không đồng bộ các yêu cầucủa user, hệ thống của bạn có thể phản hồi mà không cần quan tâm xem là bao lâu nữa thìyêu cầu đó mới thực sự được thực thi
Một vài tính năng của công nghệ Net
Một trong những đặc điểm nổi trội của Microsoft NET là ngay từ đầu được thiết kếvới mục tiêu hướng tới môi trường Internet, một môi trường phân tán rộng lớn Với việc
hỗ trợ rất nhiều chuẩn công nghệ chung như XML, WSDL, SOAP, cộng với các công
cụ phát triển trực quan như Visual Studio NET thì việc lập trình phân tán đơn giản hơnrất nhiều
Trang 23Hình 7 Kiến trúc của môi trường phát triển Visual Studio.NET
Trong Microsoft NET, Microsoft vẫn tiếp cận với việc xây dựng các ứng dụngphân tán bằng kiến trúc Windows DNA (Windows Distributed Internet Applications)thông qua các component Tuy nhiên các thành phần mới của Windows DNA trong NET
là Windows Form, Web Form, COM+, XML Web Service,
Nhằm tạo sự thuận lợi trong việc xây dựng qui tắc nghiệp vụ dựa trên cáccomponent, Windows DNA bao gồm một tập các dịch vụ được tích hợp một cách chặtchẽ:
• Các dịch vụ Web (Web service), thông qua Microsoft Internet Information Server(IIS)
• Các dịch vụ giao dịch và thành phần (Transaction và Component service), thôngqua Microsoft Transaction Server (MTS)
• Các dịch vụ Queuing và Asynchronous, thông qua Microsoft Message QueueServer (MSMQ)
Ngoài ra, trong .NET framework, Microsoft đưa ra khái niệm CLR (CommonLanguage Runtime) CLR quản lý và thực hiện các mã nguồn viết bằng các ngôn ngữ.NET, CLR tương tự như ngôn ngữ máy ảo của Java Việc đưa ra CLR cho thấyMicrosoft đã hướng NET tới khả năng làm việc trên cả những môi trường phi Windows,nhằm đảm bảo tính chất viết một lần chạy mọi nơi Tuy nhiên tại thời điểm hiện tại NETchỉ hỗ trợ mạnh cho cho việc phát triển các ứng dụng trên môi trường Windows
Trang 24Hình 8 Kiến trúc một hệ thống phát triển trên công nghệ NET
Về phương diện bảo mật NET hỗ trợ công nghệ SSL(Security Socket Layer) đốivới việc xây dựng các chế độ bảo mật cho ứng dụng trên môi trường Interner
Ngoài ra, Microsoft đưa ra một tập các Server được gọi là các NET Server như:SQL Server, BizTalk Server, Exchange Server, Application Center Server… tạo rất nhiềuthuận lợi cho việc triển khai các bài toán phân tán Mô hình phát triển ứng dụng đa tầng(multi-tier) của Microsoft có thể mô tả trong hình vẽ sau:
Hình 9 Mô hình phát triển ứng dụng đa tầng của Microsoft
Trang 25Nhằm giải quyết vấn đề truyền thông, khắc phục nhược điểm của hạ tầng mạng viễnthông chưa ổn định, Microsoft đưa ra giải pháp Message Queuing (MSMQ) Giải phápnày đã phần nào giải quyết được vướng mắc mà chúng ta luôn gặp phải khi phát triển cácứng dụng phân tán phức tạp, đó là: truyền, đồng bộ và bảo mật dữ liệu trong trường hợpcác kết nối mạng không ổn định MSMQ là giải pháp tốt cho việc giải quyết các vấn đềtrên Khi sử dụng MSMQ để xây dựng và triển khai hệ thống, việc trao đổi dữ liệu giữacác thành phần trong hệ thống được thực hiện thông qua các Message Microsoft hỗ trợnhiều khuôn dạng dữ liệu và độ lớn khác nhau cho Message và các Message có thể truyềntrên nhiều môi trường khác nhau và nhờ thế có giao tiếp với các hệ thống khác, ngay cảvới các hệ thống của Sun và IBM.
Servers
Queue Manager
Queue Manager
Servers
Queue Manager
Queue Manager
Queues
MQIS
Clients
Locate Open Receive Close
Locate Open Receive Close
Locate Open Send Close
Hình 10 Mô hình lập trình của MSMQCấu trúc hoạt động của hệ thống khi sử dụng MSMQ như sau:
Khi hai ứng dụng muốn trao đổi dữ liệu với nhau thông qua MSMQ, một ứng dụngphải đóng vai trò người gửi và ứng dụng còn lại đóng vai trò người nhận Trong thực tế,hầu hết các thao tác đòi hỏi đối với lập trình viên phải sử dụng chỉ gồm 5 hàm API:Locate, Open, Send, Receive, Close
Trang 26Hình 11 Mô hình truyền thông với MSMQ
Làm việc với các Queue
Trong NET Framework, hỗ trợ lớp đối tượng Systems.Messaging để làm việc vớiMSMQ và đưa các workflow không đồng bộ vào ứng dụng
• Xác định theo đường dẫn
<servername>\private$\<queuename> với private queue
<servername>\<queuename> với public queue
servername =”.” nếu queue nằm trờn mỏy hiện tại
• Xác định theo tên định dạng
Format Name là một chuỗi mô tả queue sử dụng chi tiết kết nối và đường dẫn tớiqueue DIRECT=OS:liquidsoap\private$\Orders hoặc sử dụng từ định danh đặc biệt toàncầu duy nhất (special globally unique identifier - GUID) để xác định duy nhất để xác địnhduy nhất một message queue
• Xác định theo nhãn
Nhãn là một giá trị mà chúng ta có thể gán cho queue thông qua mã hoặc giao diệnđiều hành MSMQ
• Tạo Queue trong chương trình
Mặc dù giao diện MSMQ hỗ trợ các phương thức tạo, xóa hay khám phá queuenhưng chúng ta cũng có thể làm việc với queue thông qua không gian tênSystems.Messaging trong chương trình Một số phương thức tĩnh hỗ trợ cho lớpMessageQueue khả năng kiểm tra xem queue có tồn tại không (Exists), tạo mới một
Trang 27queue (Create) và xóa bỏ queue (Delete) Với các phương thức này, ứng dụng có thểkiểm tra sự tồn tại của một queue và tạo ra queue một cách tự động nếu nó không tồn tại.Đoạn code thực hiện việc tạo một queue có dạng sau:
'Tạo mới một queue
msgQ = MessageQueue.Create(queueName)
Catch CreateException As Exception
'Bắt các lỗi phát sinh khi tạo queue
Throw New Exception("Error Creating Queue", CreateException)
Gửi Message
• Phương thức đơn giản
Để gửi một message tới một queue trong phương thức này chỉ mất vài bước :
Đầu tiên, khởi tạo một đối tượng MessageQueue đại diện cho queue Sau đó, sửdụng phương thức Send của đối tượng MessageQueue (Tất cả các lựa chọn đều đượcthiết lập ở giá trị mặc định)
Private Const QUEUE_NAME As String = ".\private$\Orders"
Dim msqQ As MessageQueue
Dim msgText As String
' Đưa nội dung message muốn gửi đi
msgText = String.Format("Sample Message Sent At {0}", DateTime.Now())
Trang 28Khi này, ta có thể thiết lập lựa chọn về khuôn dạng, mã hóa, thời gian chờ và cònnhiều thuộc tính khác nữa.
Khuôn dạng mặc định được sử dụng là XMLMessageFormatter Ngoài ra cũn cú 2loại khuôn dạng khác là : BinaryMessageFormatter và ActiveXMessageFormatter Khuôndạng ActiveX sử dụng khi truyền một đối tượng COM tới một hệ thống non-.NET, ví dụmột ứng dụng Microsoft Visual Basicđ 6.0 Khuôn dạng Binary đem lại tốc độ nhanhhơn khuôn dạng XML nhưng không hỗ trợ khả năng đọc và phân tích trực tiếp nội dungmessage
Sau đây là một đoạn mã ví dụ cho phương thức này:
Dim msgQ As MessageQueue
'Tạo một đối tượng Message để gửi đi
Dim myMsg As New Message()
'Tạo một đôi tương của lớp Order
Dim myOrder As New Order() ` Lớp đối tượng sử dụng
Đầu tiên, xây dựng đối tượng MessageQueue đại diện cho queue đó:
Dim msgQ As New MessageQueue(QUEUE_NAME)
Kế tiếp,dựng phương thức Receive để thu nhận message từ queue đó Phương thứcnày sẽ trả về message đầu tiên trong queue:
Dim myMessage As Message
myMessage = msgQ.Receive()
Sau đó, sử dụng khuôn mẫu đã truyền để thu nhận lại message đã gửi.Ở đây, mặcđịnh sử dụng khuôn dạng XML:
Trang 29Dim targetTypes(0) As Type
targetTypes(0) = GetType(String)
myMessage.Formatter = New XmlMessageFormatter(targetTypes)
Cuối cùng, lấy dữ liệu từ Body của message Trong ví dụ này, dữ liệu gửi đi là mộtString :
Dim msgText As String
msgText = CStr(myMessage.Body)`CStr là hàm tự xây dựng để xử lý xâu
Ngoài ra, NET Framework còn hỗ trợ phương thức Peek cho phép ứng dụng có thể
chỉ cần nhận về một bản sao của message từ queue Để từ đó ứng dụng có thể tiến hành
xử lý trên message đó mà không ảnh hưởng tới dữ liệu gốc Và khi xử lý thành công thì
ta có thể Receive để loại message ra khỏi queue
Trên đây là phần trình bày về MSMQ với các đặc điểm chung của nó Để sử dụng
có hiệu quả MSMQ cần một nền tảng mạng vững chắc và các kiến thức chung về quản trịmạng
2.4 Các đặc tính nổi trội của MSMQ phù hợp với bài toán bưu chớnh dặt
ra :
• Phương thức truyền message không kết nối (Connectionless messaging)
Với đặc tính lưu trữ- chuyển tiếp (store-and-forward message queuing), máytính không bị ảnh hưởng bởi sự phân tán của mạng và không tạo ra cácphiên làm việc (sessions) (Vì trong ứng dụng xây dựng theo mô hình không
có phiên làm việc (sessionless),hai máy nguồn và đích không cần thiết phải
có chung một giao thức mạng Cả Internet Protocol (IP) và Internet PacketExchange (IPX) Protocols đều được hỗ trợ
• Hỗ trợ truyền offline: Nhờ hỗ trợ khả năng truyền offline, các ứng dụng sẽ trở nên mềm dẻo hơn, linh hoạt và sử dụng thích nghi theo hoàn cảnh, chất
lượng của phần cứng (mạng)
• Message ưu tiên (message prioritization): Sự phân quyền ưu tiên cho các
message cho phép trong trưũng hợp khẩn cấp hoặc các message quan trọngđược quyền gửi đi trước các message khác Do đó, có thể đảm bảo tính thíchnghi truyền đạt của các ứng dụng tuỳ theo mức độ quan trọng của chúng
Trang 30• Đảm bảo truyền cho message (guaranteed message delivery): Các message có thể được lưu trữ trên queue (đĩa cứng chứa hệ điều hành) và sau
đó được truyền tiếp (forward) để đảm bảo truyền an toàn
• Giao tác truyền (transactional messaging): Bằng cách sử dụng các khả
năng transaction, có thể gúp nhúm cỏc hoạt động có quan hệ với nhau trong
một giao tác duy nhất, đảm bảo được thứ tự của các message truyền đi cũng
như truyền cả gói trong một lần và cú bỏo nhận từ queue đích
• Phương thức tạo queue động (dynamic queue creation): Có thể tạo
queue hoặc thay đổi các thuộc tính của nó mà không làm ảnh hưởng đến ứngdụng
• Định tuyến message (message routing): Message Queuing hỗ trợ định
tuyến dựa trên các giao thức vật lý của mạng, sự tập trung các phiên làmviệc trong một lần truyền (session concentration - chủ động làm giảmbandwidth và số lượng session của sites, dành tài nguyên phục vụ chomessage) Session concentration sử dụng hiệu quả cho các đường truyền tốc
độ chậm
• Không phụ thuộc cấu hình hệ thống (disparate systtôi integration):
Message Queuing có thể được sử dụng trờn cỏc platform đa dạng của phầncứng bằng cách sử dụng phương thức kết nối được hỗ trợ từ nhà sản xuấtthống nhất với nhau
Các đặc tính trên làm cho MSMQ rất lý tuởng và khả thi cho các hệ thống bán độclập theo dạng client- server (như hệ đặt hàng, tiếp nhập, kế toán, kho ) xử lý theo lô(batch- processing), các hệ thống xử lý dữ liệu dựa trên queue (first-come, first-servedresource access), và cho việc di chuyển của các hệ thống truyền thống Do đó, lựa chọnMSMQ để phát triển chính là giải pháp được đề xuất
3 Vấn đề bảo mật
Bất cứ một hệ thống nào cũng cần phải đảm bảo có thể hoạt động an toàn , tức là cócác đặc tớnh như : tớnh chịu lỗi, tớnh bảo mật cao, tớnh khả mở…
Trong quá trình sử dụng các công cụ phát triển , tôi lưu ý đến một số vấn đề sau:
3.1 Cơ chế bảo mật tự động của MSMQ:
Khi phát triển MSMQ, các nhà sản xuất đã xõy dựng cho nó một cơ chế bảo mật sẵn có và được coi như là tích hợp trên nền hệ thống như:
• Cơ chế xác thực message tự động (thông qua routing)
Trang 31• Cơ chế xác thực qua chữ kí điện tử lên mỗi message.
• Các cơ chế bảo đảm truyền- nhận của transaction –message
• Các cơ chế mã hoá thông tin khi truyền theo các mã tổ hợp do Microsoft xõy dựng
Tất cả cả điểm nói trên đều không được Microsoft công bố chi tiết công khai để tránh bị phá hoại và đảm bảo môi trường truyền thông lành mạnh
Như vậy, chúng ta có thể yên tõm về truyền thông và môi trường truyền đạt của MSMQ
3.2 Cơ chế bảo mật của SQL Server 2000:
SQL Server 2000 là hệ quản trị cơ sở dữ liệu mới nhất của Microsoft, được hỗ trợ các tớnh năng bảo mật như:
• Xác thực người dùng Nhằm kiểm tra các đối tượng sử dụng hệ thống
• Phõn quyền và kiểm tra quyền hạn người sử dụng
3.3 Cơ chế bảo mật của hệ thống mạng và hệ điều hành
Các hệ thống nói chung hiện nay đều được bảo vệ trước sự tấn công bên ngoài qua nhiều mức, thông dụng nhất là qua kiểm tra quyền đang nhập, qua cổng và firewall
3.4 Phân quyền cho người sử dụng
Đõy là một quá trình phân tích và góp nhúm các đối tượng sử dụng nhằm đưa ra phạm vi hoạt động, khả năng, mức độ sử dụng chương trình của một - một nhúm các đối tượng
Người sử dụng tuỳ theo công việc, chức năng mà có các quyền hạn tương ứng Cácquyền này sẽ được thể hiện ở mức ngữ cảnh (chức năng cho phép hoạt động của chươngtrình: menu, button ) Chớnh sách phõn quyền trong chương trình thể hiện như sau:Cao nhất sẽ là Quản trị viên, có toàn quyền trong chương trình (quan trọng nhất làphõn quyền người và thao tác vói CSDL) nhưng phải kiểm soát trong việc xõm nhập cáthông tin cá nhõn
Tiếp đến là các thủ truởng đơn vị, có quyền đối với các thông tin quản trị nhân viên,
và các thông tin khác trừ thông tin cá nhõn về ID,password
Sau là kiểm soát viên, có quyền đối với tất cả các chức năng nghiệp vụ
Nhõn viên có quyền thao tác trên phạm vi nghiệp vụ của mình, và các thông tin cánhõn về bản thõn….Bảng sau minh hoạ các quyền và phõn quyền trong CT2003
Trang 32Khối chức năng hệ thống
viên
QT hệ thống
Trưởng bưu cục
Khối chức năng chuyển tiền nhanh
viên
QT hệ thống
Trưởng bưu cục
Nhận ngân phiếu chuyển tiền nhanh x x
Lập bản kê tổng hợp phát hành chuyển tiền
Lập bản kê chi tiết phát hành chuyển tiền nhanh
Truyền lại ngân phiếu chuyển tiền nhanh x x
Tìm kiếm ngân phiếu chuyển tiền nhanh x x x x
Khối chức năng thư chuyển tiền
viên QT hệ thống bưu cục Trưởng
Xem thư chuyển tiền phát hành/trả trong toàn
Lập bản kê các ngân phiếu thư chuyển tiền
Tìm kiếm ngân phiếu thư chuyển tiền x x x x
Khối chức năng điện chuyển tiền
Trang 33Chức năng KS viên Kế toán
viên QT hệ thống bưu cục Trưởng
Xem ngân phiếu điện chuyển tiền phát hành/trả
Lập bản kê các ngân phiếu điện chuyển tiền
nhận được trong một ngày
Tìm kiếm ngân phiếu điện chuyển tiền x x x x
Khối chức năng ngân phiếu quốc tế
viên
QT hệ thống
Trưởng bưu cục
Xem ngân phiếu quốc tế trả trong tỉnh x x x xLập bản kê tổng hợp phiếu chuyển tiền quốc tế
Lập bản kế toán tổng hợp phiếu chuyển tiền
Lập bản kê các ngân phiếu quốc tế nhận được
Trưởng bưu cục
Mô hình mó hoỏ cú thề hình dung như sau:
Trang 34Hình 12 Mô hình mó hoỏModule Encryption được xây dựng trờn cỏc thuật toán cơ bản như:
Modul Encryption có mô tả cụ thể gồm các lớp như sau:
Modul Encryption có mô tả cụ thể gồm các lớp như sau:
• Lớp EncryptTransformer chứa thuật toán mã hoá và khoá, vector khởi tạo vàcác tớnh toán để mã hoá
• Lớp Encryptor sử dụng các đối tượng EncryptTransformer và các tham sốđàu vào khác để điều khiển mã hoá
• Lớp DecryptTransformer chứa các thuật toán tương ứng để giải mã dựa trênkhoá
• Lớp Decryptor điều khiển giải mã qua sử dụng đối tượngDecryptTransformer để làm việc
Sử dụng module này chủ yếu là trong quá trình ghi, đọc dữ liệu khởi tạo củachương trình từ registry
Mô hình của module này dưới đõy