Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Mụ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
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
1
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Hì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ô
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
2
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Quang Lựa, Nguyễn Như Anh, Trịnh Tố Toản,… và các anh khác trong nhúm phần mềm
bư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 Micorsoft
dự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.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
3
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Lờ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ền
thố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ạnh
tranh 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ăng
lê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ưu
chí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ến
nhất – Internet - nhằm trở thành một trong những những hệ thống phục vụ thương mại
nhanh 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ới
nhữ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ưu
thô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 đi
theo 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ể
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
4
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
là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ưu
chí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ừ doanh
nghiệ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ác
phươ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 đến
ngườ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ành
tươ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ận
dụ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ành
hộ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.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
5
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
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)
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àng
qua 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 qua
mạ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ên
trung 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
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
6
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
là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ộng
tạ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ễn
thô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ính
toà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ác
hà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ống
phả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
sử dụng và mật khẩu.
• Chống gian lận: Có khả năng ngăn chặn sự gian lận trong quá trình kinh
doanh.
• Khả năng kiểm chứng: Tất cả các hành động và giao dịch của người sử dụng
phải được ghi lại cùng với thông tin về ngày, giờ, tên người sử dụng,
Người sử dụng không thể xoá, sửa những thông tin này.
• 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 khi
thiế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 on-
line và băng thông cao, phải có khả năng hoạt động thông qua các đường
dial-up 56K cũng như ISDN. Hệ thống được thiết kế sử dụng việc truyền
thông trên mạng là tối thiểu trong khi có thể hỗ trợ sự bảo mật và số lượng
kết nối tối đa.
• 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 vi
như máy quét mã vạch, máy in sổ, máy in hoá đơn, Đồng thời hệ thống
cũ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ác
nhau 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ện
tại sang hệ thống mới mà không làm ảnh hưởng đến hoạt động của dịch vụ
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
7
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
1.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ưng
trong 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ành
cô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ư Web
Service, 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ụng
loạ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 qua
mạ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òn
bấ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ựng
sõu vựng, xa, liên lạc còn khó khăn, gián đoạn …Phương thức truyền hầu
hế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 đầu
mố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ều
má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
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
8
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
như 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 ứng
dụ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ới
nhau thông qua hệ thống mạng không đồng nhất và có thể tạm thời offline bất kỳ khi
nà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ác
message 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à Message
MSMQ có thể được sử dụng trong môi trường Domain cũng như môi trường
Workgroup. Ở đâ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ăng
khá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
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
9
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Hình 2 Mô hình MSMQ Server
MSMQ 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 truy
nhậ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ăng
hiển thị và thay đổi thông tin sắp xếp trong Active Directory của pre-Windows XP
client. 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ác
queue lưu trữ trung gian. Vì thế các MSMQ Server có thể định tuyến message bên trong
mộ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
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
10
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
giữ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ác
bằ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ông
tin 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 động
trong 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 MSMQ
Server để gửi và nhận các message. Sự khác biệt lớn nhất giữa IC và MSMQ Server là IC
khô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ác
biệt giữa chúng chỉ là IC có thể chạy trên Windows XP Professional còn MSMQ Server
bắt buộc phải chạy trên nền Windows 2000 Server Family hoặc Windows 2003Server
Family. 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.
Sử dụng lưu động
Các IC lưu động, ví dụ như được cài đặt trên máy tính xách tay, có thể gửi, nhận
message khi chúng di chuyển. Khi một IC kết nối tới một site Windows 2000 mới, nó sẽ
tự động nhận ra các domain controller bên trong domain mới và directory service để
quyết định site mới để IC cư trú. Sau khi site mới được thiết lập, tất cả các message được
gửi tới client trong khi nú khụng kết nối vào mạng sẽ tự động định tuyến từ site trước đó
tới site hiện tạ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 Server
nà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 site
nội tại nhưng cũng có thể là trong site gần đó. DC dựa vào supporting server của nó để
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
11
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
thự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ận
các message.
Những đặc điểm mới của MSMQ trong Windows XP như vận chuyển qua giao thức
HTTP, 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. MSMQ
RPC đượ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ốt
qua 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 tin
khác nhau liên quan đến MSMQ. Việc truy cập của user tới đối tượng MSMQ được điều
khiể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án
quyề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.
Message Queue Tên đối
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 MSMQ-
Configuration
MSMQ Server với chức năng
Directory Service trên một domain
controller.
msmq;
MSMQ-
Settings
MSMQ-
Configuration
MSMQ Server có dịch vụ định tuyến. msmq;
MSMQ-
Settings
MSMQ-
Configuration
MSMQ Server không có domain msmq; MSMQ-
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
12
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
controller MSMQ-
Settings
Configuration
Independent Client msmq;
MSMQ-
Settings
MSMQ-
Configuration
Dependent Client Không có Không có
Khi 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 nhau
cầ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ập
thờ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òn
mộ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ủa
chú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ông
tin trên queue này và public queue hỗ trợ cho user đủ quyền để truy nhập vào đối tượng
queue thích hợp.
Thông thường, bất kỳ user nào trong forest truy cập vào Active Directory và được
chấ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 định
dạng của queue đó.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
13
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Trong MSMQ 2.0 có hỗ trợ cơ chế RCP (Remote Call Procedure), cho phép truy
cậ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ên
trong 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ập
hoặc đã bị đứt.Cỏc outgoing queue được liệt kê trong thư mục outgoing queues. Các
queue 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ên
Outgoing queue. Chúng ta có thể dừng các outgoing queue này một cách thủ công bằng
cá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 được
hoặc hết hiệu lực sẽ được đưa ra queue này.
• Transactional Dead-letter: Các transactional message mã không
gử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
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
14
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
(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ều
kiể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 truy
nhậ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:
DIRECT=ComputerAddress\PublicQueueName
DIRECT=ComputerAddress\PRIVATE$\QueueName
DIRECT=HTTP://URL_Address\msmq\PublicQueueName
DIRECT=HTTPS://URL_Address\msmq\PublicQueueName
DIRECT=TCP:157.18.3.1\PublicQueue
• 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. Hay
public 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
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
15
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Giố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ầu
hết các thuộc tính của message được xác định bởi ứng dụng MSMQ. Một message, bao
gồ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ả 2
kiể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ột
acknowledgment message khẳng định chỉ ra rằng message đã được gửi tới đích
hoặc được nhận bởi ứng dụng. Một acknowledgment message phủ nhận chỉ ra
message chưa đến đích trước khi thời hạn tới đích (time-to-reach-queue TTRQ) hết
hay không tới được đích do một lí do nào đó hoặc không được thu nhận khi thời
gian đượ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). Độ ưu
tiê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 cho
nontransactional messages trong miền [0 7], với 7 là mức ưu tiên cao nhất. giá trị mặc
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
16
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
định cũng là 0. Private queue không hỗ trợ độ ưu tiên queue (giá trị base priority cho
private 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 được
chú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ền
express 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 độ tin
cậ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 định
tuyế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 được
nếu bất kỳ máy nào mà message đi qua bị lỗi. Và express message sẽ mất khi nào MSMQ
service 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 express
message 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 định
tuyế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 message
vẫn tồn tại trong queue. Khi khởi động lại MSMQ Service thì tiến trình gửi sẽ tự động
phụ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ỗi
hành động (action) thực hiện. Trong MSMQ, một transaction chỉ gồm một công việc gửi
hoặc nhận các mesage và được thực thi theo 2 pha. Đầu tiên, MSMQ xác định xem liệu
tấ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ác
message đó đế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 đúng
trình tự truyền đi.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
17
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
• 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ểm
tra 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êu
cầ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ác
message có thể thu nhận từ các transaction queue nội bộ hoặc từ xa thông qua các thủ tục
nontransaction. 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.
2.3.3 Định tuyến Message
Mỗi MSMQ client đều cố gắng thiết lập kết nối trực tiếp tới mỏy đớch thông qua
giao diện mạng IP. Nếu không thiết lập được kết nối trực tiếp thì MSMQ Server có dịch
vụ routing có thể lưu trữ tạm thời message và sau đó đưa nó tới mỏy đớch hoặc tới một
routing server khác. Như vậy đã diễn ra qua trình định tuyến message tới mỏy đớch.
Đặc biệt , phải định tuyến message khi xảy ra 1 trong 2 trường hợp sau:
• 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 đớch
offline.
• Server định tuyến MSMQ được chỉ định để lưu trữ và vận chuyển message thay cho
má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ảm
chi 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ác
message 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 khi
mỏ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. Trong
trườ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.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
18
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
a.Đị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ụng
InRS và OutRS. Khi đó, MSMQ sẽ cố gắng chuyển message trực tiếp tới mỏy đớch (1
hop) hoặc, nó sẽ chuyển message tới một MSMQ routing server ngẵ nhiên nằm trong site
đó (2 hop)
Hình 3 In-routing và out-routing server
Trong quá trình định tuyến nội bộ site, chức năng của IC và MSMQ server không
hỗ trợ routing là tương đương nhau. Cỏc mỏy này có thể thiết lập InRS hay OutRS để lưu
giữ và chuyển message theo mục đích của nó. Nếu máy này thiết lập InRS thì bất kỳ
message nào gửi đi đều phải định tuyến thông qua server đó. Tương tự khi thiết lập
OutRS. Và một máy có thể sử dụng một MSMQ routing server cho cả hai chức năng trên.
Các DC không thể làm được điều đó vỡ cỏc chức năng về message đều được thực thi bởi
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ột
client 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 network
bandwidth nhờ hỗ trợ việc tập trung session. Ví dụ như trong cấu hình mạng star trong
mộ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ột
MSMQ routing server cho cả hai chức năng.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
19
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Hì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 routing
link để đảm bảo rằng các message có thể được định tuyến giữa các site khác nhau. Nếu
khô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 đớch
nằ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 site
khá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ột
site gate. Quá trình này sẽ tiếp tục cho tới khi message được chuyển tới mỏy đớch.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
20
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Hình 5 Định tuyến giữa hai site
Khi có nhiều routing link kết nối giữa các site khác nhau thì sự lựa chọn các
routing 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ác
nhau để truyền thông với các mạng ngoài thông qua các giao thức trung gian đã được
thố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ước
củ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ác
message để từ đó có thể xác định được số lượng các message có thể lưu trữ được.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
21
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Cá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ứng
của máy nguồn, mỏy đớch hoặc các MSMQ Server trung gian. Không gian đĩa cứng
space được chỉ định cho cả express và recoverable message trong dung lượng tối đa
4MB. Với mỗi recoverable message, các file tương ứng được ghi ra đĩa cứng để đảm bảo
các message có thể phục hồi. Với express message, các file chỉ được lưu ra đĩa khi máy
khô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ên
Web, 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ẫn
muố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ầu
củ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ơn
rất nhiều.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
22
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Hì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ụng
phâ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ác
component, Windows DNA bao gồm một tập các dịch vụ được tích hợp một cách chặt
chẽ:
• 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ông
qua Microsoft Transaction Server (MTS)
• Các dịch vụ Queuing và Asynchronous, thông qua Microsoft Message Queue
Server (MSMQ)
Ngoài ra, trong .NET framework, Microsoft đưa ra khái niệm CLR (Common
Language 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ấy
Microsoft đã 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 .NET
chỉ hỗ trợ mạnh cho cho việc phát triển các ứng dụng trên môi trường Windows.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
23
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Hì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) đối
vớ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ều
thuậ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
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
24
Xây dựng ứng dụng chuyển tiền cho mạng bưu chính POST * NET
Nhằ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ễn
thông chưa ổn định, Microsoft đưa ra giải pháp Message Queuing (MSMQ). Giải pháp
nà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ợp
cá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ữa
cá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ền
trê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
Servers
Queue
Manager
Queue
Queue
Manager
Manager
Servers
Servers
Queue
Manager
Queue
Queue
Manager
Manager
Queues
Queues
MQIS
MQIS
Clients
Clients
Locate
Open
Receive
Close
Locate
Locate
Open
Open
Receive
Receive
Close
Close
Apps
Apps
Sender
Sender
Sender
Apps
Apps
Receiver
Receiver
Receiver
Clients
Clients
Locate
Open
Send
Close
Locate
Locate
Open
Open
Send
Send
Close
Close
Hình 10 Mô hình lập trình của MSMQ
Cấ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ụng
phả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.
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
Phạm Đức Toàn - Lớp Tin Pháp K44 Mail :
25