Đề tài cũng tiến hành thử nghiệm một hệ thống xử lý phân tán áp dụng c á c khuyến nghị đã nêu như m ột hệ thống có thể áp dụng để xây dựng hệ thống thực tế... C ác hệ thống này thường đư
Trang 1TRƯỜNG ĐẠI HỌC QUỐC GIA HÀ NỘI
LUẬN VĂN TI ÍẠC SỸ KHOA HỌC
Người hướng dán kỉioiì học: PGS.TSKH Nguyền Xuân Huy
H à N ộ i, n ă m 2 0 0 1
Trang 2Trang /
M Ự C L Ụ C
MỞ Đ Ầ U 4
BẢ N G C Á C T H U Ậ T N G Ữ V IÊ T T Ắ T 6
C H U Ơ N G 1 T Ổ N G Q U A N V Ề H Ệ T H ố N G P H Â N T Á N 8
1.1 Khái niệm về hộ thống phân t á n 8
1.2 M ô hình xử lý phân tán m ở 9
1.3 C ác đ ặc trưng củ a hệ phân t á n 10
1.3.1 C hia sẻ tài n g u yên 10
1 3 2 Tính m ở (O p e n e s s ) 11
1.3 3 Tính tương tranh (C o n c u rre n c y ) 12
1 3 4 Tính chịu lỗi (F au lt to le ra n c e ) 15
1.3 5 Tính trong suốt (T ra n sp a re n c y ) 17
1 3 6 K h ả năn g thay đổi quy m ô (S a c la b ility ) 18
1.4 C ác m ụ c tiêu khi thiết kế m ột hộ thống phân t á n 18
1.5 C ác m ô hình hệ thống phân t á n 2 0 1.5.1 Phân loại m ức xử lý phân tá n 2 0 1 5 1 1 M ô hình truyền tập t i n 2 0 1 5 1 2 M ô hình C lien t/S erver 2 0 1 5 1 3 M ô hình ngang h à n g 2 4 1.5.2 M ột s ố m ô hình thiết k ế hệ thống phân t á n 2 4 1 5 2 1 C á c đối tượng phân t á n 2 4 1 5 2 1 Phần m ểm trung g ia n 2 6 1 5 2 2 Phương pháp gọi thủ tục từ x a 2 7 1 5 2 3 Kiến true D C O M , C O R B A 2 8 1.6 uũ nhược điểm củ a hệ thống phân tá n 2 8 1.6.1 Ưii đ iể m 2 8 1.6 2 N hược đ iể m 2 8 CHƯƠNG 2 M Ộ T SỐ M Ô I T R Ư Ờ N G ÚNG D Ụ N G X Â Y DỤNG H Ệ THỐ N G PH Â N T Á N 2 9 2.1 Giới th iệ u 2 9 2 2 M ô hinli đối tượng thành phần phân tán ( D C O M ) 2 9 2 2 1 G iới th iệ u 2 9 2 2 2 M ô hình đối tượng thành phần (C O M ) 3 0 2 2 3 M ô hình đối tượng thành phần phân tán ( D C O M ) 31
2 2 3 1 K h á i n iệ m về D C O M ! 31
2 2 3 2 C á c đặc trưng c ơ bản củ a D C O M 3 2 2 2 4 K iến trúc D C O M .33
2 2 4 1 Định vị c á c đối tư ợng 3 4 2 2 4 2 Đ ón g gói c á c đối tượng và c á c tham s ô 35
2 2 4 3 Quản lý liên k ế t 3 7
Luận văn tết niịhiỘỊ) cao học
D ể tài: M ột sở khiu cạnh / v thuyết và thực tiễn trong x ử Ị ỷ phân tán
Trang 3TraiĩíỊ 2
2 2 4 4 Quản lý tương tranh và c á c m ô hình phân lu ồn g 38
2 2 4 5 Bảo m ật 4 0 2 2 5 M ột số nhận xét về D C O M 41
2 2 5 1 C ác điểm thuận lợ i 41
2 2 5 2 C ác điểm không thuận lợ i 41
2.3 K iến trúc môi giới yêu cầu đối tượng chung (C O R B A ) 4 2 2 3 1 C á c thành phần c ơ bản củ a C O R B A 4 2 2 3 1 1 Kiến truc C O R B A 4 4 2 3 1 2 C O R B A client và C O R B A se rv e r 62
2 3 1 3 Stub và Skeleton 63
2 3 1 4 C O R B A Services và C O R B A F a cilitie s 63
2 3 1 5 Giao diện lời gọi động (D I I ) 63
2 3 1 6 Giao diện skeleton động (D S I ) 6 4 2.3.2 Các dịch vụ C O R B A 64
2 3 2 1 Dịch vụ đặt tê n 65
2 3 2 2 Dịch vụ sự k iệ n 6 8 2 3 2 3 D ịch vụ duy trì bền v ữ n g 7 0 2 3 2 4 Dịch vụ về chu kỳ sống của đối tượng 71
2 3 2 5 Dịch vụ điều khiển tương tra n h 7 3 2 3 2 6 Dịch vụ thể hiện đối tư ợ n g 7 4 2 3 2 1 Dịch vụ quan hệ của đối tư ợn g 7 4 2 3 2 8 Dịch vụ quản lý giao d ịc h 7 5 2 3 2 9 D ịch vụ truy v ấ n 75
2 3 2 1 0 Dịch vụ cấp p h é p 75
2 3 2 1 1 Dịch vụ về quyền sở h ữ u 75
2 3 2 1 2 Dịch vụ thời g i a n 7 6 2 3 2 1 3 Dịch vụ bảo m ậ t 7 6 2 3 2 1 4 Dịch vụ giới thiệu đối tư ợn g 7 6 2 3 2 1 5 DỈch vụ tạp h ợ p 7 6 2 3 3 C ác đặc điểm của C O R B A 7 7 2 3 3 1 C ác điểm thuận lợ i 7 7 2 3 3 2 C ác điểm k h ô n g thuận lợ i 7 8 2 3 4 So sánh giữa DCOM và C O R B A 7 8 2 3 4 1 G iố n g n h a u 7 8 2 3 4 2 K hác n h au 7 9 2 3 4 3 Nguyên tắc ánh xạ C O R B A sang C O M 7 9 2 3 5 Kiến trúc C O R B A và cá c yêu cầu phần mềm trung g ia n 7 9 2 3 5 1 Định nghĩa giao d iệ n 79
23.5.2 X á c định địa chỉ đối tượng phục v ụ 8 0 2 3 5 3 Gọi đối tượng phục v ụ 8 0 2 3 6 C ác ứng dụng C O R B A 80
2 3 6 1 Chương trình S erv er 80
Luận văn tốt Hi>hiệp cao học
Đè tài: Một so khiu cạ/ilì /Ý thuyết và thực tien iron % A iílÝ phản tán
Trang 4Tranq 3
2 3 6 2 Chương trình Client 81
2 4 K ết luận 81
C H U Ơ N G 3 C Ô N G c ụ P H Á T T R IẺ N C O R B A t r o n g c á c h ệ T H ố N G X Ử L Ý PH Â N T Á N 83
3.1 Giới thiệu m ột số công cụ phát triển C O R B A 83
3 1 1 V isiB ro k er 83
3 1 2 O rb ix 8 4 3 1 3 O rb it 8 5 3 1 4 E O R B 85
3 1 5 O racle Application Server (O A S ) 85
3 1 6 O racle JS erver 85
3 2 Đánh giá m ột số côn g cụ phát triển C O R B A 87
3 2 1 C ác tiêu chuẩn đánh giá công cụ phát triển C O R B A 88
3 2 1 1 Đánh giá về môi trường O R B 88
3 2 1 2 Đánh giá về cá c dịch vụ đối tư ợ n g 91
3 2 1 3 C ác tiêu ch í đánh giá k h á c 91
3 2 2 K ết quả đánh giá m ột số côn g cụ phát triể n 9 2 3 2 2 1 Đánh giá về môi trường O R B 9 2 3 2 3 K ết luận 9 7 3 3 Tiêu chuẩn lựa chọn công cụ C O R B A 9 7 C H Ư Ơ N G 4 H Ệ T H Ố N G T H Ử N G H IỆ M Ú N G D Ụ N G K IÊ N T R Ú C C O R B A * 9 9 4.1 L ự a chọn và m ô tả bài to án 9 9 4 1 1 Đặt vấn đ ề 9 9 4 1 2 M ô tả bài to á n 100
4 2 M ột số phương án thiết k ế 101
4 2 1 Dùng c ơ c h ế trao đổi thông qua c ơ sở dữ liệ u 101
4 2 2 Sử dụng kiến trúc C o r b a 102
4 2 2 1 M ô hình hệ thống 102
4 2 2 1 T hự c hiện hệ thống thử n g h iệ m 104
4 3 Nhận xét chung về kết quả áp dụng thực tiễn 106
K Ế T L U Ậ N 108
T À I L IỆ U T H A M K H Ả O ] 10
Luận V'án tốt nghiệp cao học
Dè tài M ột s ố khiu cạnh lý thuyết và thực tiễn tron ÍỊ x ử lý phản tán
Trang 5Tran É,' 6
BẢNG CÁC THUẬT NGỮ VIẾT TẮT
API A p p lication Program m ing
E n vironm ent
M ô i trư ờng tín h to á n phân tán
D II D ynam ic Invovation Interface G iao diện gọi động
D SI D ynam ic Skeleton Interface G iao diện gọi Sk eleto n động
ID L In te r fa c e D e fin itio n L a n g u a g e Ngôn ngữ định nghĩa giao diện
ĩ PC InterProcess C om m unication T ruyền thông liên tiến trình
O L E O bject L in k Em beded Liên kết đối tượng được nhúng
A rch itectu re
K iến trúc quản lý đối tượng
O M G O b je c t M anagem ent Group T ên gọi củ a tổ ch ứ c đưa ra cá c
tiêu chuẩn về quản lý đối tượng
O R B O b je c t R eq u est B roker M ôi trường yêu cầu đối tượng
PO A P ortable O b je ct A dapter Thành phần thích nghi đối tượng
R P C R e m o te Procedure Call G ọi thủ tục từ x a
S1I S ta tic In te rfa c e In v o ca tio n Phương pháp gọi g iao diện tĩnh
SN M P S im p le N etwork M anagem ent
P rotocol
G iao thức quản lý m ạng đơn giản
!1
Luận văn tốt tỉíịhiệp cao học
Đ ề tà i: M ột sô' khí ít cạnh lý ìỉmyếr và thực tiền trong x ử lý phún tủn
Trang 6Trang 7
R M I Java R em ote Method Gọi thao tác từ x a ứng dụng trong
Luận văn tôt nghiệp cao học
Đ ề tủi: M ột s ổ khiu cạnh lý thuyết và thực tiên trotìịị x ử lý phún tán
Trang 7Trang 4
MỞ ĐẦU
Trong những năm gần đây, cùng với sự phát triển củ a nền kinh tế xã hội, nhu cầu thông tin trên diện rộng ngày càng được áp dụng rộng rãi Đ ể đáp ứng được ycu cầu đó, nhiều tổ chức và quốc gia trên th ế giới đã đầu tư nghiên cứu
c á c hệ thống xử lý phân tán, và đã đạt được những thành tựu đáng kể.
Tại Việt N am , c á c hệ thống xử lý phân tán đã và đang được áp dụng trong rất nhiều lĩnh vực như: tài chính, ngân hàng, hàng không, đường sắt, bưu chính viễn thông, v.v M ặc dù V iệt nam còn là m ột nước nghèo, và côn g nghệ thông tin là lĩnh vực còn non trẻ, nhưng c á c hệ thống xử lý phân tán được áp dụng đã phát huy được những hiệu quả nhất định Đầu tiên có thể kể đến cá c
hệ thống độc lộp, được viết trên c á c ngôn ngữ, côn g cụ không hỗ trợ m ạng, làm việc bán tự động qua truy cập m odem ch o đến c á c hệ thống có quy m ô lớn, sử dụng c á c c ơ sở dữ liệu phân tán, đường truyền tốc độ cao , và điều khiển xử lý phân tán nhờ c á c tác tử thông minh.
Tuy đã đạt được m ột số bước tiến đáng khích lệ, nhưng qua thực tế có thể thấy rằng việc áp dụng c á c cô n g nghệ để thực hiện xử lý phân tán tại V iệt N am vẫn còn nhiều khía cạnh đáng nói Đơn cử như cùng trong lĩnh vực bưu chính viễn thông, c á c đơn vị trên c á c địa bàn khác nhau vẫn thường phải tương tác với nhau để có thể cung cấp c á c địch vụ phục vụ khách hàng, nhưng c á c đơn vị này lại đ ộ c lộp với nhau về m ặt hành chính, nôn c á c hệ thống phục vụ tại đơn
vị nào thường do đơn vị đó tự đảm nhiệm C ác chỉ đạo, hoặc đầu tư nhằm đổng bộ hoá hộ thống từ c á c cấp quản lý phía trên thường khó thực hiện do vướng m ắc thủ tục và kinh phí Vì vậy, nội dung củ a luận văn đề tài này đề cập đến m ột số khía cạnh lý thuyết và thực tiễn trong xử lý phân tán với m ục đích tìm hiểu c á c vấn đề còn vướng m ắc, c á c cô n g nghệ có nhiều ưu điểm để khuyến nghị áp dụng Đề tài cũng tiến hành thử nghiệm một hệ thống xử lý phân tán áp dụng c á c khuyến nghị đã nêu như m ột hệ thống có thể áp dụng để xây dựng hệ thống thực tế.
Nội dung trong luận văn được trình bày trong 4 chương với bố cụ c như sau:
- C hương l Tổn ạ quan: G iới thiệu m ột số khái niệm mang tính tổng quan về hệ thống phân tán như; khái niệm về hệ thống phân tán, mô hình phân tán m ở, c á c đặc trưng của hệ thống phân tán, một số m ục tiêu
khi th iết k ế h ệ th ố n g phân tán, m ột s ố m ô h ìn h c á c hệ th ốn g phân tán
đặc trưng về ưu nhược điểm cơ bản của hệ thống phân tán.
- C hương 2 M ộ t s ố m ô i t r ư ờ n ẹ ứ n g d ụ n g x â y d ự n g h ệ t h ố n g p h â n t á n :
G iớ i th iệu m ột sô rnô hình phân tán ch ín h đ an g dư ợc quan tâm và c á c
Luận ván tốt nghiệp cao học
D ề tải: M ột sỏ khiu cạnh IÝ thuxết và thực tien troniỊ \ ử lý plìàn tán
Trang 8Trang 5
môi trường xây dựng hệ thống phân tán ứng dụng c á c m ô hình đó: môi trường kiến trúc DCOM và C O R B A C ác kiến trúc này đểu dựa trên nguyên tắc của m ô hình đối tượng Sau c á c trình bày về từng kiến trúc là
c á c đánh giá về ưu nhược điểm , c á c so sánh và đánh giá chung về
D COM và C O R B A
- Chương 3 : Công cụ phát triển CORBA trong c á c h ệ thống xử lý phân
tán : Giới thiệu m ột s ố công cụ để phát triển hệ thống phân tán dựa trên kiến trúc Corba, so sánh, đánh giá và khuyến nghị sử dụng đối với cá c
cô n g cụ này.
- Chương 4; H ệ thống thử nghiệm ứng dựng kiến trúc C o rb a ; Thực hiện
thử nghiệm m ột hệ thống phân tán nhỏ dựa trên kiến trúc C O R B A và
m ột số nhận xét thực tế khi xầy dựng hệ thống phân tán sử dụng kiến trúc này.
Đ ể thực hiện được luận văn này, em xin được gửi lời cảm ơn sâu sắc tới c á c
th ầy c ô g iá o K h o a c ô n g n g h ệ - T rư ờ n g Đ ại h ọ c q u ố c g ia H à n ộ i, và đ ặc b iệ t là
PG S.TSK H Nguyễn X uân Huy đã giúp đỡ em rất tận tình Đ ồng thời, cũng xin được gửi lời cảm ơn tới c á c đồng nghiệp đã giúp đ ỡ rất nhiều trong quá trình thực hiện.
Luận văn tốt nạhiệp cao học
Đè tà i: M ột so khiu cạnh /ỷ thuyết và thực tien trong x ứ lỹ phàn tán
Trang 9Trang H
CHƯƠNG 1 TỔNG QUAN VỂ HỆ THỐNG PHÂN TÁN
Tóm lược: N ội dung chính của chương s ẽ giới thiệu một s ố khái niệm mang tính tổng quan v ề hệ thống phân tán như: khái niệm về h ệ thống phân tán, mô hình phân tán m ỏ, c á c đ ặc trưng của h ệ thống phân tán, một s ố mục tiêu khi thiết k ế h ệ thống phân tấn, đồng thời, nội dung của chương cũng đ ề cập đến
m ột s ố m ô hình c á c h ệ thống phân tán đ ặ c trưng Cuối chương s ẽ là một sô' ưu nhược điểm c ơ bản của h ệ thống phân tán.
1.1 Khái niệm về hệ thống phân tán
K h á i niệm về h ệ thống phân tán c ó thể h iểu theo nhiều m ức độ k h ác nhau, đơn
giản nhất là việc trao đổi thông tin giữa c á c chương trình sử dụng c ơ ch ế
đường ố n g , ch o đến mức độ cao hơn là sự trao đổi thông tin giữa c á c chương trình trên m ạng N hìn chung v iệc xây dựng c á c ứng dụng phân tán phức tạp hơn nhiểu so với c á c ứng đụng tập trung T ron g nhiều trường hợp, v iệc bắt
b u ộc phải xây dựng c á c ứng dụng phân tán thường vì những lý do sau:
- Y ê u c ầ u tính toán phân tá n : ứ ng dụng chạy trên nhiều m áy tính khác
nhau nhằm tận dụng khả năng tính toán song song h o ặc nhằm m ục đích
sử dụng khả năng tính toán của c á c m áy tính chuyên dụng.
- Y êu c ầ u x ử lý phân tá n : ú n g dụng ch ạy trên nhiều m áy tính khác nhau mới c ó để đáp ứng được yêu cầu bài toán bài toán Trong trường hợp
này, đối tượng được phục vụ, được g iải quyết trong bài toán thường ở xa
đối tượng phục vụ, đối tượng giải quyết.
- Y ê u cầ u tính chính x á c v à a n toàn d ữ liệu: Y êu cầu này liên quan tới
c á c hệ thống cần phải đảm bảo tính chính x á c cao và an toàn dữ liệu lớn C ác hệ thống này thường được thiết k ế để có thể đáp ứng được yêu cầu tính toán ngay cả khi có sự c ố x ảy ra, điều này được thực hiện bằng
c á ch tăng số lần tính toán ch o cù ng m ột nhiệm vụ, tăng số ứng đụng
ch ạy dự phòng nhằm m ục đích kịp thời phát hiện và xử lý lỗi
- C h ia sẻ tài n g u y ên : C ác ứng dụng ch ạy trên m ạng thực hiện trao đổi
thông tin với nhau C ác ứng dụng này có thể ch ia sẻ tài ngu yên của
mình ch o c á c ứng dụng khác, hoặc sử dụng tài nguyên được chia sẻ với
m ột quyền hạn được định nghĩa M ột số ứng dụng phải chạy trên nhiều
m áy tính vì dữ liệu được đặt phân tán trôn m ạng liên quan đến quyền
Luận văn tốt nghiệp cao học
Đ ể tài: M ột sỏ' khiu cạnh / v thuyết và thực tiễn trong x ứ ì ỷ phân tán
Trang 10Hiện nay c ó hai loại hẹ phân tán là:
- Hê điều hành phân tán
- C ác hệ ihống thông tin phân tán: C ơ sở dữ liệu phân tán, c á c hệ tính toán phân tán, c á c ứng dụng phân tán, .
Trong cá c hệ thống phân tán, môi trường m ạng đóng vai trò quan trọng trong việc phân phát thông tin đến cá c thành phần và tập hợp kết quả tính toán củ a
c á c thành phần đó C ác m áy tính kết nối với nhau trên m ạng đảm nhiệm chứ c năng truyền thông ch o c á c ứng dụng Do chúng không chia sẻ bộ nhớ cho nhau nên không thể sử dụng c á c biến toàn cụ c để trao đổi thông tin, thông tin trao đổi giữa c á c m áy tính chỉ được thực hiện thông qua c ơ ch ế trao đổi tin báo M ạng là tài nguyên chung củ a hệ thống do đó khi xây dựng hệ thống phân tán cần phải xem xét đến c á c vấn đề như: băng thông, cá c điểm có thể
xả y ra sự cố , bảo mật và an toàn dữ liệu, đồng bộ tiến trình.
1.2 Mô hình xử lý phân tán mở
V iệc phát triển c á c ứng dụng trong hệ thống phân tán thường gặp m ột số khó khăn sau:
- K hác hiệt chủnq lo ạ i: Trên m ạng có nhiều loại m áy tính và thiết bị
m ạng của nhiều nhà sản xuất khác nhau và c á c m áy tính được cài đặt
c á c hệ điểu hành khác nhau.
- K hôn ẹ tương thích giao diện liên kết: C á c nhóm phát triển hệ thống
phân tán hoàn toàn có thể tự qui định giao diện liên kết giữa c á c hệ
th ố n g với n h au , d o đó c ó th ể sẽ ç â p k h ó kh ăn khi liên kết với h ệ th ố n g
phân tán do nhóm khác phát triển
- K hó tích hợp: C ác phần m ềm thường được phát triển trên c á c hệ điểu
hành khác nhau, c á c ngôn ngữ khác nhau, do nhiểu đơn vị độc lập phát triển, sử dụng c ơ sở dữ liệu khác nhau Do vậy, để tích hợp được c á c
phần m ềm n ày th ư ờ n g đòi hỏi nh iều thời g ia n , nhận lự c, và đôi k h i, k h ả
năng tích hợp là không thề.
Luận văn tốt Hiịhiệp cao học
D ề tài: M ộ! sò klìia cạnh /ý thuyết và thực tiên tronq xử lý plián tán
Trang 11- Tính rủi ro sản p h ẩ m c a o : X â y dựng và triển kh ai c á c hệ th ốn g phân
tán thường chịu nhiều rủi ro do không tuân thủ c á c chuẩn được khuyến nghị trước, hoặc bản thân c á c khuyên nghị không đổng nhất Vì vậy, giá thành phát triển cũng bị kéo theo Thời gian phát triển và khả năng bảo hành bảo trì thường lớn hơn c á c hệ thống độc lập
C ác tổ chứ c trên thế giới đang ngày càng chuẩn hoá dần c á c tiêu chuẩn để thiết k ế và phát triển c á c hệ thống phân tán Với m ục đích đó, hiện nay m ô hình tham chiếu xử lý phân tán m ở đã được đưa ra với c á c điều kiện m à m ột
hệ xử lý phân tán cần tuân thủ:
- Đ ộc lập với thiết b ị phần cứng: cung cấp giao diện vói cá c thiết bị phần
cứng củ a c á c nhà cung cấp khác nhau trong việc sử dụng tài nguyên như bộ nhớ, ổ đĩa và bộ vi xử lý.
- Đ ộc ỉập với h ệ điều hành: Đ ảm bảo khả năng làm v iệc trên c á c hệ điều
hành khác nhau như U N IX , W indow s N T, W indow s 9 x , Lin u x, o s / 2
- Đ ộc lập về ngôn ngữ cài đặt: Cung cấp khả năng giao tiếp với c á c ngôn
ngữ phát triển ứng dụng phân tán như c + + , Java, P ascal, C obol
Thực tế việc xây dựng khung cho c á c hệ thống phân tán vẫn dựa trên m ô hình
7 lớp O SI, trong đó 3 lớp thấp (vật lý, liên kết dữ liệu, m ạng) giải quyết cá c vấn đề như phát hiện và sửa lỗi, định tu yến , những vấn đề này thường do hệ điều hành đảm nhiệm Ba lớp trên (lớp giao vận, phiên làm v iệc, trình diễn) đã được sử dụng trong cá c sản phẩm nền củ a hệ thống phân tán nhằm m ục đích
xử lý c á c thủ tục kết nối giữa c á c thành phần phân tán và thể hiện cấu trúc dữ liệu phức tạp củ a c á c ứng dụng, c á c sản phẩm như vậy gọi là phần m ềm trung gian X u th ế hiện nay phần m ềm trung gian được phát triển dựa trên khung kiến trúc m ở và tuân thủ c á c qui định củ a m ô hình tham chiếu xử lý phân tán
m ở.
1.3 Các đặc trưng của hệ phân tán
ĩ 3.1 Chia sẻ tài nguyên
T rong m ột hộ phân tán luôn có sự chia sẻ tài nguyên C ác tài nguyên trong hệ phân tán gồm có : Phần cứng (c á c ổ đĩa, m áy in, .), phần m ềm , và dữ liệu Trong m ột hệ m áy tính, những người sử dụng tham gia trong hệ thống đều có thể ch ia sẻ tài nguyên của mình ch o những người sử dụng k h ác Ngược lại, họ cũn g có thể sử dụng c á c tài nguyên được người khác ch o phép Tuy nhiên, cá c tài nguyên được chia sẻ này sẽ thường không tự động đạt được hiệu quả cao
n h ấ t, dẫn đến sự lãn g phí, và k h ô n g đảm b ảo được tính b ả o an đối với v iệ c sở
hữu tài nguyên.
Luận vãn tốt nghiệp cao học
Đ ề tời: M ột s ố khiu cạnh lý thuyết vù thực tiền trong x ứ lý phân tán
Trang 12Trong một hệ thống phân tán, cá c tài nguyên dược đóng gói vật lý trong một (hoặc nhiều) m áy tính và c á c m áy khác chỉ có thể truy cập nhờ giao tiếp đã được phân định Đổ đạt được hiệu quả ca o , việc ch ia sẻ tài nguyên phải được quán lý bởi hệ thống chương trình Chương trình này đưa ra m ột giao diện qua
đó tài nguyên được truy cập, sử dụng, cập nhật tính xác thực và tính tương thích.
Hiộn nay có hai m ô hình quản lý tài nguyên:
a Mô hình khách chủ:
Gần đây, m ô hình này thường được sử dụng nhiều trong c á c hệ phân tán M ô hình này gồm m ột tập c á c xử lý củ a server M ỗi xử lý này hoạt động như m ột chương trình quản lý tài nguyên C ác xử lý này định ra
c á c kiểu tài nguyên và cho phép c á c client lựa chọn để xử lý Trong m ô hình client — server, tất cả c á c tài nguyên chia sẻ đều được giữ và quản
lý bởi c á c xử lý củ a server Khi client cần sử ciụng m ột tài nguyên chung nào đó, client sẽ gửi yêu cầu củ a mình tới server Server sẽ nhận yêu cầu và xét xem yêu cầu đó có phải được gửi đi từ client mình cần phục vụ không Sau đó, server sẽ phân tích nội dung củ a yêu cầu Nếu mức độ yêu cầu phù hợp với tài nguyên chia sẻ, server sẽ thực hiện việc chia sẻ tài nguyên củ a mình cho client Ngược lại, yêu cầu sẽ bị từ chối phục vụ
b M ô hình đ ối tượng
T rong m ô hình này, mỗi tài nguyên chia sẻ được coi như m ột đối tượng
C ác đối tượng này được x á c định duy nhất và có thể được di chuyển đến bất cứ nơi nào trên m ạng chứ không nhất thiết phải lưu trữ trên một server, nhưng vẫn không làm thay đổi tính x á c định củ a nó Khi có một
ứng d ụ ng n ào đ ó c ầ n truy cập vào m ột tài n g u y ên , n ó s ẽ gửi th ôn g b áo chứa yêu cầu tới đối tượng tương ứng Thông báo này được chuyển qua
m ột thủ tục thích hợp hoặc một xử lý thích hợp để kiểm tra và hoàn
th àn h c ô n g v iệ c củ a yêu cầ u Sau đ ó thủ tục n ày sẽ gử i m ộ t th ô n g b áo
trả lời ch o đối tượng yêu cầu nếu điểu này được đòi hỏi Trong m ô hình này đối tượng vừa là người sử dụng tài nguyên, đồng thời cũng là người quản lý tài nguyên.
Luận văn tốt nghiệp cao học
D ề tủi: M ột s ố khiu cạnh lý thuyết vù thực tiên trong xử /ý phàn tán
Trang 13Trang 12
- Tính d ễ tươnẹ tác (in terop erab ility ): M ột hệ thống được gọi là dễ tương tác với hệ thống khác nếu hộ thống đó có thể:
• làm việc chung trong m ột m ôi trường với c á c hệ thống khác
• hệ thống đó có thể xử lý được c á c đối tượng do hệ thống khác phát sinh và ngược lại
- Tính d ễ chuyển mcinq (portability): M ột hệ thống được gọi là dễ chuyển
m ang nếu nó có thể làm việc trong nhiều môi trường khác nhau và trên nhiều chủng loại thiết bị khác nhau (không kén chọn môi trường, thiết bị).
Khi xây dựng c á c hệ thống theo chuẩn côn g nghiệp, và nhất là c á c hệ thống phân tán, tính m ở luôn được đề cập như m ột yếu tố không thể thiếu khi thiết
k ế hệ thống M ột hệ thống có m ở rộng được hay không thường do hệ thống phần m ềm hỗ trợ, quản lý và điều khiển (phần m ềm ờ đây bao gồm cả
softw are và firm w are) Do vậy, trong hệ phân tán, người ta đưa ra m ột giao diện chuẩn và coi như giao diện phần m ềm chìa khoá để c á c nhà phát triển phẩm m ềm tuân thủ khi thiết kế Tính m ở còn được thực hiện thông qua việc cung cấp cơ ch ế truyến thông chuẩn giữa c á c tiến trình C ơ c h ế này đảm bảo
c á c ứng dụng khác nhau có thể tuân thủ để giao tiếp viới nhau m à không phụ thuộc nền, hay phụ thuộc môi trường phát triển ứng dụng.
1.3.3 Tính tương tranh (Concurrency)
Hiện tượng tương tranh xảy ra khi có đồng thời nhiều tiến trình xử lý cùng tác động lên m ột đối tượng Trong c á c hệ thống m áy tính, đối tượng ở đây có thể
là c á c tài nguyên được chia sẻ, c á c chương trình ứng dụng, và thậm chí là cá c
xử lý kh ác trong hệ thống.
T rong hệ thống phân tán, hiện tượng tương tranh xảy ra bao gồm c ả tương tranh thông thường và c á c tương tranh đ ặc trưng của nhu cầu phân tán Ở đây,
ta không xét tới cá c tương, tranh trong nội bộ tài nguyên của m ột đối tượng (ví
dụ như c á c xung đột giữa cá c bộ vi xử lý trong m ột server khi server này có nhiều bộ xử lý trung tâm hoạt động song song), Iĩià xét c á c tương tranh ở g óc
độ xử lý phân tán.
Hiện tượng tương tranh trong hệ thống phân tán thường được phân loại và đề phòng, ch ế ngự hay khắc phục C ó rất nhiều kiểu phân loại khác nhau Thông thường, có thể phân thành hai loại c ơ bản như sau:
- Tương tranh chủ độn %: T ro n g hệ th ố n g phân tán , VI n h iều m ụ c đ ích
khác nhau như: tận dụng khả năng củ a cá c m áy cấu hình m ạnh, tận
Luận văn tốt nghiệp cao học
Đ ề tà i: M ột sỏ'khiu cạnh lý thuyết và thực ỉiè/ỉ trong x ử ìỷ phàn tán
Trang 14Trang ỉ 3
dụng kha năng tính toán song song trên nhiều m áy, hoặc phân tải tính toán, một trình ứng dụng có thổ được thực đồng thời tại nhiều m áy tính, hoặc trong bản thân một m áy tính, nhưng do c á c đối tượng khác nhau thực hiện Do vậy có thể xảy ra c á c tương tranh được dự báo trước, những tương tranh này có thể kiểm soát được một cá ch chặt ch ẽ Hiện tượng tương tranh ở đây được m ở rộng hơn ở khía cạnh c á c xử lý là độc lập, không giống nhau, không xung đột nhau, và có thể không đồng thời, nhưng khi có yêu cầu về chọn lựa kết quả xử lý, việc nhận định kết quả củ a xử lý nào là chính x á c sẽ rất khó khăn Khi đó ta hiểu c á c xử lý trong hệ thống đã xảy ra tương tranh trong việc trả lại kết quả v ề hiện tưựng này, c ó thể ví dụ rằng hai tiến trình cùng thực hiện phân tích số liệu với dữ liệu đầu vào có thể là c á c tập m ò khác nhau Tiến trình thứ
ba chịu trách nhiệm thu nhận m ột kết quả đế làm đầu vào ch o mình
V iệc lựa chọn kết quả nào trong trường hợp c ả hai kết quả đều chấp nhận được là một hiện tượng tranh.
- Tươnq t r a n h thụ đ ộn ẹ: Tương tranh thụ động là hiện tượng tương tranh
m à người ta có thể dự báo, đề phòng, c h ế ngụ, và có thể khắc phục, nhưng lại không biết chính x á c thời điểm sẽ xảy ra Dạng tương tranh này không thể khắc phục tất cả T rong nhiều trường hợp người ra phải
c ố gắng tạo ra cá c thoả hiệp giữa c á c xử lý gây tương tranh nhằm đảm
bảo hoạt động của hệ thống, v ề hiện tượng này có thể ví dụ rằng hai tiến trình cùng yêu cầu một đối tượng với quyền ưu tiên tương đương, trong khi tại thời điểm đó, đối tượng này chỉ thực hiện được tối đa một yêu cầu.
Để thực hiện việc xử lý tương tranh thường phải xét nhiều khía cạnh như: nguyên nhân x ả y ra tương tranh, khả năng phục vụ của đối tượng m à ở đó c á c
xử lý xảy ra tương tranh, khả năng bị lặp lại chính tương tranh này, và khả năng thoa hiệp giữa c á c xử lý Thực tế, nhiều yếu tố trong c á c khía cạnh được
đề cập không thể x á c định, hoặc không thể dự báo chính x á c bằng m ột thuật toán cụ thể Từ đó, người ta thường tìin cá ch đề phòng và khắc phục tương
tran h Đ ê tránh tương tran h , người ta th ư ờng phải g iá m sát và điều ph ối c á c xử
lý trong hệ thống Trong hộ thống phàn tán, có thể để phòng và khắc phục tương tranh theo m ột số phương pháp:
- Giảm thiểu khả năn° (ươnẹ tran h: Như đã nói ở trên, hiện tượng tương tranh x ả y ra khi có nhiều xử lý cùng đồng thời tác động lên m ột đối tượng, nghĩa là c á c tác động này xảy ra trong cùng một khoảng thời gian At nào cỉó Khoáng thời gian này càng lớn, kha năng xảy ra tương
tran h c à n g lớn D o v ậy, v iệ c g iả m th iểu thời gian c ó thổ g â y tư ơng tranh
chính là m ột phương pháp phòng ngừa tương tranh.
Luận vein tốt niịhiệp cao học
Đê rủi M ột sỏ khiu cạnh lý thuyết vù thực ticn iron ạ xử /ỷ phàn tán
Trang 15thể nhỏ đến mức không thể giảm được, nhưng n bước xử lý lại là một
k h o ả n g thời g ia n đ án g k ể đ ối với c á c xử lý tro n g h ệ th ố n g m áy tín h
Trong hệ thống phân tán thường có đổng thời nhiều tiến trình cùng thực hiện để phục vụ nhiều đối tượng yêu cáu khác nhau Do vậy, khi bước thứ i+ j lấy kết quả đã xử lý của bước thứ / (m à kết quả này được lưu thành tài nguyên được chia sẻ) thì kết quả này đã bị m ột đối tượng khác
ra yêu cầu thay đổi Khi đó, xung đột xảy ra sẽ làm sai lệch kết quả tính toán.
Đ ể hạn c h ế c á c tương tranh kiểu này, điều đầu tiên phải thực hiện là kết quả của bước thứ / ở trên phải không được thay đổi m à vẫn không làm ảnh hưởng đến sự hoạt động của c á c tiến trình xử lý khác Điều này có thể được giải quyết khi toàn bộ n bước trên được xử lý độc lập trước khi
toàn bộ tiến trình xử lý hoàn toàn kết thúc Hiểu theo một nghĩa khác,
khi một đối tượng đưa ra yêu cầu xử lý, tiến trình thực hiện việc xử lý này có thể coi là trong suốt với đối tượng đưa ra yêu cầu , và trong suốt với c á c tiến trình khác Toàn bộ quá trình này phải được cấp, và được server quản lý Quá trình đó được gọi là m ột giao dịch (transaction) Thời gian để m ột giao dịch hoàn thành côn g việc củ a mình có thể lớn, hoặc rất lớn, nhưng gần như được xử lý như trên m ột hệ thống độc lập,
n g h ĩa là hệ th ố n g sẽ c ấ p ra m ột se rv er ảo , m ộ t vùng tài n g u y ên ả o là
bản sao của tài nguyên thật để giao dịch này thực hiện trên đó Khi đối
tư ợng sử dụng đưa ra yêu cầu k ết th ú c xử lý , to àn b ộ bản sa o n ày m ới
được cập nhật thực sự vào hộ thống để ch ia sẻ ch o đối tượng khác trên
m ạ n g T ro n g k h o ả n g thời g ian cậ p nhạt n à y , c ó th ể x ả y ra x u n g đột với
c á c tiến trình kh ác, nhưng thông thường, khoảng thời gian này tương đối nhỏ Do vậy, khả năng gây ra tương tranh được giảm đáng kể.
- K h oá tài nguyên chia sẻ: Tại cá c tài nguyên chung được chia sẻ sẽ có
c á c khoá, được hiểu như cá c khoá đọc ghi Mồi tiến trình xử lý khi gặp tài nguycn này đều phải kiểm tra khoá Nếu tài nguyên chưa khoá, tài nguyên sẽ được tiến trình sử dụng và khoá được khoá lại Khi nào sử dụng xong, tài nguyên sẽ được giải phóng (m ở khoá) Nếu tài nguyên
đã bị khoá nghĩa là đã c ó tiến trình xử lý khác đang sử dụng Tiến trình
sẽ phải đợi đế tài nguyên được giải phóng mới có thể sử dụng được Phương pháp khoá tài nguyên thường dược sử dụng nhiều trong trường hợp xử lý đơn luồng (c á c tiến trình lần lượt được xử lý).
Luận vân tốt nghiệp cao học
Đ ề tài: Một sỏ khía cạnh lý thuyết vù thực tiên trong xử/ Ý phùn rán
Trang 16- K hắc phục dơ tươnạ tranh: Như đã nói ở trên, khoảng thời gian m à cá c
giao dịch đưa ra yêu cẩu hoàn thành để x á c nhận cập nhật, khả năng tương tranh dễ x ả y ra nhất C á c xử lý gây ra tương tranh này nếu mâu thuẫn nhau sẽ thực sự là m ột bài toán khó, và có thể nói là không có thuật giải tối ưu Hiện nay, việc đầu tư nghiên cứu để giải quyết vấn đề này vẫn được tiếp tục nhằm tìm ra giải pháp tối ưu Tuy vậy, có nhiều tiến trình xử lý gây ra tương tranh nhưng lại không m âu thuẫn C ác xử
lý này nếu có m ức ưu tiên như nhau, (và có thể còn có c á c ràng buộc ở nhau) sẽ dẫn đến hệ thống bị treo ả o vì c á c xử lý này không trả được tài nguyên đã ch iếm ch o hệ thống X é t về phương diện kết quả tính toán, nếu m ột xử lý này nhường ch o xử lý kia thực hiện trước thì vấn đề sẽ được giải quyết T uy nhiên, c á c giao dịch này lại có cùng mức ưu tiên nên m áy tính không tự giải quyết được.
K hắc phục vấn đề này, người ta thường tạo ra c á c tài nguyên ả o và chọn
m ột tiến trình xử lý nào đó đi theo tài nguyên ảo đó C ác tiến trình còn lại tương tranh với tiến trình nói trên sẽ thực hiện trên tài nguyên thật Tài nguyên ảo ở đây có thể làm cho xử ỉý nhầm tưởng là thật và thực hiện trên đó Nhưng thực ch ất củ a vấn đề là xử lý đó bị ch ạy vòng rồi sẽ quay lại với tài nguyên thật T uy nhiên, khi quay lại, thời gian xung đột
đã qua vì c á c tiến trình k h ác đã kết thúc Như vậy vấn đề đã được giải quyết.
1.3.4 Tính chịu lỗi (Fault tolerance)
Khi một hệ thống m áy tính có lỗi, và bất kể nguyên nhân lỗi là do phần cứng hay phần m ềm , thì c á c chư ơng trình hoặc là đưa ra kết quả sai, hoặc sẽ bị dừng ngoài ý muốn trước khi chú ng kịp hoàn tất việc tính toán Lỗi ở đây hiểu theo nghĩa là c á c sự c ố vể phần cứ ng hoặc phần m ềm gây ra trong quá trình xử
lý như: hỏng thiết bị phần cứng củ a hệ thống, m ất kết nối đường truyền trong quá trình xử lý, sai lệch h o ặc m ất c ơ sở dữ liệu tại m ột điểm phân tán do m ột nguyên nhân nào đ ó Đ ây là c á c sự c ố phát sinh (và khó tránh khỏi) trong vòng đời củ a hệ thống C ác sự c ố ở đây không xét đến c á c lỗi cú pháp trong lập trình, hay c á c lỗi phần cứng khi thiết kế hoặc sản xuất sản phẩm.
M ột ứng dụng đ ộ c lập khi gặp lỗi, nếu có sai sót thì chỉ ứng dụng đó chịu ảnh hưởng Còn khi m ột hệ thống phân tán gặp lỗi, cả hệ thống sẽ bị ảnh hưởng
Do vậy tính chịu lỗi củ a hệ thống phân tán luôn là vấn đề được quan tâm khi thiết kế, xây dựng và triển khai hệ thống.
T ín h ch ịu lỗi củ a hệ th ố n g phân tán thường đư ợc đề cậ p ỏ' hai k h ía cạn h :
Luận văn tốt nghiệp cao học
D ề tài: Một s ố khiu cạnh lý thuyết và thực tiến trong x ử/ v phán tân
Trang 17Đ ể tăng tính ch ịu lỗi ch o m ột hệ thống m áy tính c ó thể sử dụng c á c giải pháp sau:
- Tâng đ ộ d ư thừa tài nguyên p h ần cứ n q: Hệ thống sẽ dự phòng nhiều thiết bị phần cứng ngoài c á c thiết bị yêu cầu cần có K h i gặp lỗi, hệ thống sẽ tự động chu yển c á c xử lý tại m odule đang hoạt động trên cá c trạm c ó lỗi sang c á c m odule dự phòng trên cá c trạm dự phòng Khi đó,
hộ thống vẫn đảm bảo hoạt động bình thường
- T ăng k h ả năng p h ụ c h ồ i c h o h ệ thốn ạ p h ần m ềm : H ệ thống phần m ềm phải đảm bảo c ó thể phát hiện lỗ i, sửa chữa lỗi hoặc ít nhất tự phục hồi
về trạng thái ban đầu trước kh i tính toán K hả năng phục hồi phải đảm bảo về tố c độ để hệ thống c ó thể vận hành bình thưòng
T ron g hệ phân tán, giải pháp thứ nhất thường không được áp dụng, hoặc ít được áp dụng vì nó sẽ làm hệ thống c ó giá thành quá cao, và gây lãng phí khi không c ó lỏi x ả y ra D o vậy, người ta thường áp dụng việc th iết k ế c á c hệ phần
m ềm có khả năng chịu lỗ i, và tự sửa lỗi
Đ ể thực hiện giải pháp này, người ta phải thiết k ế c á c thủ tụ c để x á c định lỗi
và c á c thủ tụ c để xử lý lỗ i V iệ c xác định lỗi thường phụ th u ộc vào cá c đặc trưng riêng củ a từng hệ thống V ớ i c á c hệ thống khác nhau, c á c lỗi gặp phải
cũ n g kh ác nhau, và do đó định danh c á c lỗi này cũng khác nhau C ác lỗi được định danh sẽ c ó thủ tục tương ứng để xử lý C ác thủ tục này cũ ng tuỳ từng hệ thống m à có cá c h xử ỉý riêng
T ron g trường hợp không x á c định được lỗi, hoặc lỗi không thể sửa được, người ta phải phục hồi lại giá trị ban đầu C ó nhiều phương pháp để thực hiện
cô n g v iệc này T hông thường nhất là dùng c á c g iao dịch như đã nói ở phẩn trên M ỗi người sử dụng khi đăng nhập hộ thống sẽ dược định danh và cấp cho
m ột g ia o địch T ất cả c á c dữ liệu đầu vào, đầu ra, và luồng dữ liệu hoạt dộng trong toàn bộ quá trình xử lý của 11 cười sử dụng này đểu chỉ được thực hiện và quán lý trong g ia o dịch đó Khi g iao dịch kết thúc, c á c kếì quả xử [ý mới được cập nhật vào hộ thống Còn nếu hệ thống gặp lỏi mà thủ tục xử lý lỗi ra lệnh
L u ậ n văn tôi ngh iệ p ca o học
D (’ tà i : M ộ t sở k h iu vạnh lý thuyết và thực tien rro iìiỉ x ử lý phán tán
Trang 18T ra n q 17
phục hổi dữ liệu, toàn bộ giao dịch (bao gồm cả tên g iao d ịch , dữ liệu củ a giao
d ịch ) sẽ bị huỷ Như vậy, dữ liệu chính củ a hệ thống vẫn được b ao toàn nếu
g iao d ịch gặp lõ i, bị dừng giữa chừng, ngh ĩa là không thành cô n g
Hệ phân tán cũ n g cung cấp mức độ sẵn sàng cao khi đối m ặt với c á c lỗi phần
cứ ng H iện nay, người ta thường dùng c á c sản phẩm phấn cứ ng theo tiêu chuẩn cô n g n gh iệp để sử dụng ch o c á c th iết bị chính củ a hệ thống C ác thiết bị này c ó thể th êm , bớt, hoặc thay th ế c á c m odule m à vẫn đảm b ảo sự hoạt động
C ác thiết bị này cũng thường được đặt trong m ôi trường tiêu chu ẩn về nhiệt
độ, độ ẩm , ánh sáng, v.v (như c á c tổng đài viễn thông, c á c m áy ch ủ , .) D o vậy, tính sẵn sàng của hệ thống luôn đảm bảo
1.3.5 Tính trong suốt (Transparency)
T ín h trong su ốt là sự ch e dấu của hệ thống với người sử dụng (b ao gồm cả người lập trình ứng dụng phân tán và người sử dụng ứng dụng phân tán) V ì
th ế hệ th ốn g được nhận biết như m ột thể thống nhất chứ không phải là tập hợp
củ a nhiều thành phần độc lập T ính trong suốt tạo ch o níĩirời sử dụng khả năng
dề thao tá c hơn trên hệ thống H iểu theo ngh ĩa thông thường, tính trong suốt
c ó thể co i như m ột giao diện chu yển đổi (m ediation in terface) m à ở đó người
sử dụng sẽ th ao tác với hệ thống bằng b ộ lệnh được chuẩn hoá C ác lệnh này qua g ia o d iện chuyển đổi nói trên sẽ thao tác đến c á c đối tượng phù hợp trong
hệ th ốn g T ín h trong suốt là nhân tố chính trong việc thiết k ế phần m ềm hệ thống phân tán
T ính tro n g su ốt của một hệ thống phân tán thường được xem xét ở c á c khía cạnh sau:
- T ron g su ốt truy c ậ p : ch o phép c á c đối tượng cụ c bộ, hay từ xa đều được truy cộp bằng c á c hoạt động giống nhau
- T ron g su ố t định vị: cá c đối tượng sử dụng dịch vụ không cần biết vị trí
cà i đặt củ a c á c đối tượng cu ng cấp dịch vụ
- 'ĩ'romỉ su ốt tươnỉ> tran h: ch o phép nhiều xử lý được thực hiện đồng thời
sử dụng thông tin ch ia sẻ m à không xảy ra xung đột
- T ron g su ất lặ p : ch o phép nhiều bản sao củ a c á c đôi tượng được sử dụng
để tăng đ ộ tin cậy và hiệu năng của hệ thống mà không ch o người sử dụng thấy được sự nhân bản đó
- T ron ẹ suốt lỏ i: cung cấp khả năng chịu lỗi đê người sử dụng có thổ hoàn thành dược cò n g việc ngay cả khi hệ thống gặp lỗi về phần cứng
h o ặc phần m ềm
Luận văn for nghiệp cao học
Đe tài: Một s ố khiu cạnh lý thuyết và thực tiên trong xử lý phân tan
Trang 19T ra nạ 18
- TroníỊ suốt di chuyển: cho phép di chu yên c á c đối tượng trong hệ thống
mà không ảnh hưởng đến hoạt động củ a người sử dụng K h a năng di chuyển thường được thể hiện khi c á c đối tượng thành phần trong hệ thống chu y ển dịch vị trí khi chuyển sang c ơ c h ế dự phòng đổ kh ắc phục lỗi tại m áy tính chính, hoặc nhằm m ục đích cân bằng tải
năng
- T rong suốt quy m ô : cho phép c á c thành phần trong hệ thống c ó thể thay đổi quy m ô m à không ảnh hưởng đến cấu trúc của hê thống cũ ng như hoạt động củ a hệ thống
1.3.6 Khả nàng thay đổi quy mô (Saclabilỉty)
K h ả năng thay đổi quy m ô là khả năng ch o phép hệ thống c ó thể thay đổi quy
m ô m à không ảnh hưởng đến cấu trúc cũ ng như hoạt động của hệ thống Đ ây
là m ột đ ặc điểm quan trọng của hệ thống phân tán Nó ch o phép c á c m ạng
m áy tính c ó kết nối được với nhau để c ó thể sử dụng chung tài nguyên (V D như m ạng Internet)
K h ả năng thay đổi quy m ô thường nhằm m ục đích m ở rộng và nâng cấp hệ thống, cả về phần cứ ng, kết nối m ạng cũ ng như m ở rộng hoặc nâng cấp cá c ứng dụng phần m ềm N goài ra, v iệc thay đổi quy m ô còn nhằm m ục đích bảo
an ch o hệ thống
1.4 Các mục tiêu khi thiết kê một hệ thông phân tán
M ột hệ phân tán khi thiết k ế cần có c á c đặc trưng cơ bản sau:
- C hia sẻ tài nguyên
- Tính m ở
- Tính tương tranh
- Tính chịu lỗi
- Tính trong suốt
- T ính thay đổi quy m ô
V à nhằm đạt được năm m ục tiêu c ơ bản:
L u ậ n văn tót lU ịhiệp ca o h ọc
Đ ề tà i: M ộ t sỏ k h iu cạnh lý thuyết và thực tiễn troni> x ử IÝ phùn !(Ì)I
Trang 20- A n toàn thông tin
V ới c á c yêu cầu trên, c á c vấn đ ề cần quan tâm kh i thiết k ế m ột h ệ p h â n tán
là:
Đ ịn h d a n h : H ệ phân tán dựa trên CO' sở ch ia sẻ tài nguyên và sự trong suốt khi phân tán Tên được đưa ra ch o c á c tài nguyên hay c á c đối tượng phải c ó ý nghĩa toàn cụ c và không phụ thuộc vào vị trí của tài nguyên hay c á c đối tượng Chúng phải được hỗ trợ bởi hệ thống hiện tên Hệ thống này c ó thể dịch c á c tên nhằm m ục đích để c á c chương trình c ó thể truy cập vào c á c tài nguyên c ó tên M ột vấn đề trong thiết k ế được đưa ra là thiết k ế được c á c lư ợc
đồ tên C á c lược đổ này sẽ m ở rộng tới m ột m ức độ thích hợp, là tên nào sẽ được d ịch ra c ó hiệu quả khi gặp kết quả thích hợp ch o v iệc thực hiện
T r u y ề n th ô n g : T ăn g hiệu năng và độ tin cậy củ a cô n g nghệ truyền thông sử dụng trong hệ phân tán nhằm m ục đích đạt được sự tối ưu của hệ thống Chúng ta đã biết cô n g nghệ truyền thông tốc đ ộc c a o đã dược áp dụng trong cả
m ạng cụ c bộ và m ạng diện rộng, tuy nhiên với m ạng tố c độ cao c á c lóp phần
m ềm có liên quan sẽ rất phức tạp V ấn đề th iết k ế cần quan tâm là tối ưu được
v iệc truyền thông trong hệ phân tán trong khi vẫn giữ lại m ô hình lập trình ở
m ức cao ch o việc sử dụng của nó
C ấ u tr ú c p h ầ n m ề m : T ính m ở là kết quả đạt được củ a thiết k ế và xây dựng
c á c thành phần phần m ềm với c á c g iao diện đã được định nghĩa Dữ liệu trừu tượng là cô n g nghệ thiết k ế quan trọng trong hệ phân tán C ác dịch vụ có thể
co i là c á c bộ quản lý đối tượng củ a kiểu dữ liệu cần lấy V ấn đề thiết k ế cần đặt ra ở đây là cấu trúc củ a hệ thống N ó sẽ giúp ch o c á c dịch vụ m ới c ó thể
cù n g làm việc m à không bị trùng với cá c dịch vụ đã c ó sẵn của hệ thống
P h â n tai c ô n g v iệc: Đ em lại hiệu năng cao là m ột yêu cầu của hầu hết c á c sản phẩm và nó cũng là m ối quan tâm lớn nhất củ a c á c nhà thiết k ế hệ thống
và nhà lập trình V ấn đề thiết k ế cần đặt ra với hệ phân tán là làm th ế nào để triển khai v iệc xử lý và truyền thông tới cá c tài nguyôn củ a hệ thống một cách hiệu qua nhất trên m ột khối cô n g v iệc thay đổi
L u ậ n vãn tố i nghiệp ca o học
t ìé tài M ộ t sô khiu cạnh lý thuyết vù thực liề n troiìỊỊ xử lý phún rún
Trang 21D uv tr ì tín h n h ấ t q u á n : Tính nhất quán c ó ảnh hưởng rất lớn đến v iệc hoàn thành một hệ phân tán hay c á c ứng dụng Duy trì tính nhất quán tại mức giáhợp lý c ổ lẻ vấn là vấn đề khó khăn nhất khi thiết k ế m ột hệ phân tán C ó c á c
loại nhất quán như:
- nhất quán truy cập
- nhất quán lặp
- nhất quán lỗi
- nhất quán vé thời gian
- nhất quán về giao diện người d ù n g ,
1.5 Các mô hình hệ thống phán tán
1.5.1 Phân loại mức xử lý phân tán
Tuỳ theo yêu cầu sử dụng và khả năng phát triển, có thể x ây dựng hệ thống phân tán th eo c á c m ức độ sau:
- M ô hình truyền tập tin
- M ô hình khách chủ thuần tuý (C lien t/Serv er)
- M ô hình ngang hàng (P ear - T o - Pear)
1.5.1.1 M ô hình truyền tập tin
M ô hình truyền tập tin là m ô hình c ổ điển nhất, về c ơ bản c á c chương trìnhtrên c á c m áy tính cùng sử dụng inột g iao thức để trao đổi thông tin với nhaudưới dạng truyền tập tin
ỉ 5.1.2 M ô hình C lient/Server
M ô hình C lien t/Serv er đang được áp dụng phổ biến vì c á c chương trình sử dụng c ó c h ế trao đổi tin báo để liên lạc với nhau, như vậy m ềm dẻo hơn m ô hình truyền tập tin T hự c chất m ô hình này xuất phát từ phương pháp gọi thủtục từ xa R P C , hiện nay m ô hình C lien t/Serv er đã phát triển theo hướng sửdụng c á c đối tượng phân tán
T ron g lĩnh vực công nghệ thông tin, m ô hình C lien t/Serv er được hiểu là hình thức trao đổi thông tin giữa c á c tiến trình cu ng cấp dịch vụ (Server) và tiến trình sử dụng dịch vụ (C lie n t) T ron g m ô hình này, C lient ycu cầu cá c dịch vụ
dã được cài đặt trên Server, Server xử lý ycu cầu và trả vé kết quả ch o C lient
T ra nạ 20
L u ậ n văn tô) nghiệp ca o học
D ề tà i: M ộ t sò k h ía cạnh /ý thuvết vù thực tiễn tron ịỉ x ử lý p h â n tán
Trang 22- C lient và Server là c á c m odule chứ c năng với cá c g iao diện x á c định
C ác chứ c năng thực hiện của C lient h o ặc Server c ó thể gồm nhiều chức năng con, việc cài đặt cá c ứng dụng C lien t h oặc Server không nhất thiết phải trên m áy chủ m à c ó thể cài đặt tại bất cứ m áy nào trên m ạng
- Q uan hệ C lient/Server được thiết lập giữa hai m odule khi C lient đưa raycu cầu dịch vụ và được Server đáp lại K h ái niệm C lien t và Server chỉ ]à tương đối, m ột m odule có thể đóng vai trò Server đối với m odule này nhưng lại đóng vai trò C lient đối với m odule khác
- T rao đổi thông tin giữa c á c m odule được thực hiện thông qua có c h ế truyền tin báo T ất cả c á c yêu cầu củ a C lien t được tập hợp thành tin báo
để chuyển đến Server và ngược lại c á c kết quả trả về cũ ng được đặt trong c á c tin báo để chu yển đến O ie n t
- T rao đổi tin báo giữa C lien t và Server thường được thực hiện theo cơ
c h ế hỏi đáp
- C lien t và Server được cài đặt trên cá c m áy tính k h á c nhau và được nối với nhau trên m ạng, v ề m ặt lý thuyết, trên cù ng m ột m áy c ó thể cà i đặt đồng thời m odule C lien t và m odule Server, tuy nhiên trong thực tế thường c á c m odule này được cài đặt trôn c á c m áy k h ác nhau
V ớ i c á c đặc điểm trên, m ô hình C lien t/Serv er c ó thể cài đặt theo hai m ức:
- Mức dịch vụ n ền : tạo c ơ sở để phát triển, hỗ trợ và quản lý c á c ứng dụng C lient/Server
- Mức ứng dụng: là c á c phần m ềm cu ng cấp c á c chứ c năng nghiệp vụ theo mô hình C lienl/Serv er
M ỏ hình C lient/Server cu ng cấp c á c phương tiện tích hợp c á c ứng dụng riêng với c á c nhu cầu xử lý nghiệp vụ chung để đảm bảo thống nhất việc xử lý thông tin trong toàn bộ hệ thống M ô hình này có c á c ưu điểm sau:
- C h ia sẻ dữ liệ u : trong m ô hình C lient/Server, dữ liệu c ó thể ch ia sẻ để tất cá những người sử dụng c ó thể iruy nhập được với quyền truy nhập nào đó Dữ liệu ch ia sẻ thường được lưu trữ trên server C ơ c h ế truy
L u ậ n văn tốt nghiệp ca o hục
í) c tà i: M ộ t s ố khiu cạnh lý /huvếỉ và thực tiễn trong x ử lý phàn rán
Trang 23ch u n g c á c dịch vụ do Server cu n g cấp.
- Chia sẻ tài nguyên giữa các hệ thống khác nhau: Có thể tạo các ứng
dụng đ ộ c lập vói hệ điều hành và thiết bị phần cứ ng, do đó c á c ứng dụng C lie n t đều c ó thể sử dụng c á c tài nguyên chung trên m ạng: dữ liệu, d ịch vụ
- Khả năng trao đổi và tương thích dữ liệu: Hầu hết các công cụ sử
dụng để phát triển cá c sản phẩm theo m ô hình C lien t/Serv er đều dựa trên tiêu chuẩn củ a ngôn ngữ S Q L , do đó đảm bảo được tính tương thích và k h ả năng trao đổi dữ liệu giữa cá c tiến trình C lien t và Server
- K h ô n g p h ụ th u ộ c th iế t bị lưu t r ữ d ữ liệ u : T rên Server dữ liệu c ó thể được lưu trữ trong c á c thiết bị k h ác nhau như đĩa từ h o ặc băn g từ, người
sử dụng vẫn dùng tập c á c lệnh ch u n g để truy xuất dữ liệu m à không phụ
th u ộc vào phương tiện lưu trữ
- Độc lậ p với vị t r í x ử lý d ữ liệu: V iệ c truy xuất dữ liệu k h ô n g phụ thuộc vào thiết bị phần cứng, hệ điều hành và vị trí lưu trữ dữ liệu
- Q u ả n lý tậ p tr u n g : V iệ c quản lý tập trung được thực hiện bằng cá ch sử dụng c á c cô n g cụ giám sát và hỗ trợ từ trung tâm
T iế n trình Client G ia o thức
trao đổi lớp trên
< — ►
T iến trình ServerPhần m ềm trung
gian C lient (M id d le w a re )
Phần m ểm trung gian Server (M id d le w a re )
thiết bị phần cứng thiết bị phần cứng
T rao đổi thông tin lớp vật lý
Hỉnh 1.1 Các thành phần cơ bản trong mó hình Client/Server
L u ậ n văn tốt ttiịh iệ p cao học
D e tài: M ộ t sô k h ía cạnh lý thuyết vù thực tiền troiHỊ ,\li' IV phân tán
Trang 24Hình 1.1 thể hiện c á c thành phần cơ bản trong m ô hình C lien t/Serv cr, baogồm :
- C á c tiến trình C lien t, Server
• G iao tiếp với người sử dụng
• T h ự c hiện c á c chức năng ứng dụng cần th iết như hiển thị thông tin, tính toán c á c bảng tính
• G ia o tiếp vói c á c phần m ềm trung gian qua g iao diện lập trình ứng dụng (A P I) để gửi c á c yêu cầu đến Server và nhận k ết quả tính toán từ Server
- T iế n trình Server thực hiện c á c chứ c năng lớp ứng dụng ở phía Server,
nó c ó c á c đ ặc điểm sau:
• C ung cấp c á c dịch vụ ch o C lient
• C he dấu c á c thông tin riêng
• C ung cấp cá c dịch vụ xử lý lỏi
• C ó thể thực hiện chức năng giám sát và điều phối (tránh xảy
ra lương tranh, thường chứ c năng này do Server M id d le w a re thực h iện )
Phẩn m ềm trung gian (M id d le w a re ) cung cấp nhiều tính năng khác nhau như thiết lập phicn làm v iệc giữa cá c tiến trình, bảo m ật dữ liệu, nén/giải nén dữ liệu, xử lý lỗi M id d le w a re là m ôi trường trung gian kết nối tiến trình C lient với tiến trình Server, nó g iao tiếp với c á c tiến trình C lien t, Server qua g iao diện
A P I C lient M id d le w a re thực hiện c á c chức năng sau:
- C ung cấp g iao diện A PI để giao tiếp với tiến trình C lient
- T h iết lập liên kết với tiến trình Server bằng cách gửi cá c lệnh thông qua íĩiao diện m ạng và Server M id d le w a re
- Gửi yêu cầu đến Serv er M id d le w a re và nhận kết quả trả về
- Đ ồng hộ hoạt động giữa Client và Server
L u ậ n văn rết HỊịhiệp ca o h ọc
t ìé tài M ộ ! sò k ìĩía cạnh lý thuyết và thực tiền trong x ử lý p hàn tán
Trang 25T ra n g 24
- X ử lý điều khiển truy nhập
- Serv er M id d le w a re giám sát c á c yêu cầu từ phía C lien t và gọi c á c tiến trình Server tương ứng, nó thực hiện c á c chứ c nãng sau:
• Nhận cá c yêu cầu từ phía C lien t và chuyển cá c yêu cầu đó cho tiến trình Server
• K iểm tra bảo m ật hệ thống
• X ử lý tương tranh khi đồng thời nhận được nhiều yêu cẩu từ phía C lient
• N hận k ết quả xử lý của tiến trình Server và chu yển đến C lient
c á c m áy k h ác nhau , do đó v iệc thiết k ế và cài đặt c á c ứng dụng phải dựa trên
c á c đối tượng bị phân tán N ói cá ch k h ác v iệc x ây dựng c á c ứng dụng m ạng dựa trên hai quan điểm : Hướng đối tượng và hệ thống phân tán
L u ậ n văn tốt n gh iệ p ca o học
Đ ề tà i: M ộ t sô khít) cạnh /ý thuyết và thực tiểu trong x ử ỉỷ p h â n tán
Trang 26T ra n g 25
C ó thể hình dung ứng dụng phân tán như m ột tập c á c đối tượng (g iao diện ngư ời sử dụng, c ơ sở dữ liệu , cá c m ô đun củ a ứng d ụ n g ), m ỗi đối tượng có
c á c thuộc tính và c á c hàm riêng, tương tác giữa c á c đối tượng được thực hiện
th ôn g qua v iệc trao đổi tin báo để gọi c á c hàm thích hợp M ô hình c á c đối tượng phân tán được thể hiện trên hình 1.2, trong đó:
- Đ ối tượng: là dữ liệu được đóng gói trong chương trình, nó có đầy đủ
cá c tính ch ất củ a m ột đối tượng th eo quan điểm lập trình hướng đối tượng như: tính thừa k ế, tính đa h ìn h C ác đối tượng c ó thể đóng vai trò C lien t, Server h o ặc cả hai
- M ô i trư ờ n g yêu c ầ u đ ố i tượng ( O R B ) : là m ôi trường ch o phép c á c đối tượng tìm thấy nhau theo phương pháp động và g iao tiếp với nhau qua
m ạng, đây là xương sống củ a c á c hệ thống hướng đối tượng phân tán
- C á c dịch vụ đối tư ợ n g : là c á c d ịch vụ ch o phép người sử dụng thao tác
và xử lý c á c đối tượng
Phần m ềm trung gian đóng vai trò cu ng cấp c á c cô n g cụ hỗ trợ việc xác định
c á c đối tượng từ xa và tạo m ôi trường thuận tiện để đối tượng g iao tiếp với nhau
L u ậ n vãn tốt nghiệp cao học
Đ ề tà i: M ộ t sô kh iu cạnh /Ý’ thuyết vù thực tiến trong x ử lý phún tán
Trang 27d iễn và lớp phiên H iện nay c ó nhiều k iến trúc khác nhau dùng để thể hiện phần m ềm trung gian như: G ọi thủ tục lừ x a (R P C ), kiến trúc m ôi trường yêu cầu đối tượng chung (C O R B A ), m ô hình đối tượng thành phần phân tán (D C O M ) và gọi thao tác từ xa ứng dụng trong Ja v a (R M I) G iả i pháp R M I
áp dụng riêng ch o ngôn ngữ lập trình Ja v a , nó sử dụng nhiều đặc tính củ a phương pháp gọi thủ tụ c từ x a R P C và k iến trúc C O R B A T u y nhiên khi kiến trúc C O R B A được đưa vào lõ i củ a ngôn ngữ Ja v a thì k iến trúc này sẽ dần thay th ế R M I M ô hình D C O M ch ỉ được ứng dụng trong c á c hệ thống cài đặt hệ điều hành của M icro so ft và c ó hiều hạn c h ế trong v iệc th iết k ế hệ
th ốn g
2 Xu thê chuẩn hoá phần mềm trung gian
V iệ c thiết lập c á c tiêu chu ẩn ch o phần m ềm trung gian nhằm m ục đích cung
cấ p khả năng tương th ích và tính m ềm dẻo củ a c á c ứng dụng C ỉien t/Serv er, trong đó tập trung vào v iệc:
- Chuẩn hoá giao diện lập trình A P I
- Chuẩn hoá giao thức trao đổi thông tin
- T h eo hai tiêu c h í trên, phẩn m ềm trung gian được ch ia thành bốn loại sau:
• Phần m ềm trung gian m ở hoàn toàn: sử dụng g iao diện A PIchung và g iao thức trao đổi chung giữa C lien t và Server, nóichung c á c sản phẩm loại này phải đảm b ảo khả năng g iao tiếpgiữa C lient và Server m à không phụ thuộc g iao thức trao đổi thông tin gữa c á c cổ n g m ạng Sản phẩm loại này bao gồm
D C E R P C (g ọi thủ tục từ xa trong môi trường tính toán phân tán ), C O R B A , O p en D oc
• Phần m ềm trung gian với giao diện A PI m ở: C ho phép C lient
g iao tiếp với Server sir dụng sản phẩm của cá c hãng k h ác nhau với điều kiện g iao thức sử dụng trao đổi thông tin g iố n g nhau,
ví dụ sán phẩm O D BC ’ của M icro soft
L u ậ n vân tốt nghiệp ca o h ọc
D ê tà i : M ộ t sỏ kill'll cạnh lý thuyết và thực tiên tro tiii x ử lý phàn tân
Trang 28T ra n g 2 7
• Phần m ềm trung gian với g ia o thức trao đổi thông tin m ở: sử dụng giao thức trao đổi thông tin chung, tuy nhiên c ó chuyển đổi giao diện A PI khi C lient và Server sử dụng phần m ềm trung gian của c á c nhà cu n g cấp khác nhau (ví dụ kiến trúc c ơ
sở dữ liệu quan hệ phân tán D R D A của I M B )
• Phẩn m ềm trung gian riên g : c á c ứng dụng C lien t, Server chỉ
g ia o tiếp với nhau khi sử dụng phẩn m ềm trung gian củ a cùng hãng (ví dụ A c tiv e X /O L E )
1.5.22 Phương pháp gọi thủ tục từ xa
C á c khuyến n g h ị về phương pháp gọi thủ tục từ xa (R P C ) được đưa ra nám
1975 và sản phẩm đầu tiên đã được đưa ra thị trường năm 1 9 8 4 R P C ch o phép
cà i đặt c á c hệ th ốn g phân tán theo m ô hình C lient/Server: C ác ứng dụng C lient kết nối với m áy Server và sử dụng c á c dịch vụ do m áy Server cu ng cấp C ác bước gọi thủ tụ c trên m áy Server được thực hiện tương tự như gọi thủ tục trên
m áy cụ c bộ, C lie n t chuyển c á c tham s ố đầu vào khi gọi thủ tục và dịch vụ trên Server sẽ k iểm tra trinh hợp lệ của c á c tham s ố đó, thực hiện tính toán và trả
về cá c giá trị th eo yêu cầu củ a ứng dụng C lien t
Đ ể sử dụng tính năng gọi thủ tục từ xa, m ột chương trình trên m áy Serv er phải cung cấp c á c d ịch vụ m ô tả trong ngôn ngữ R P C M ỗi m áy Server được gán tên và số ch ư ơ n g trình, tất cả cá c dịch vụ được khai báo trong danh sách với đầy đủ c á c tham s ố thể hiện dịch vụ V ớ i nguyên tắc này, ngôn ngữ R P C ch o phép thực hiện c á c kiểu dữ liệu đơn giản cũ ng như c á c dữ liệu phức tạp như: struct, en u m Q u i trình thực hiện bao gồm c á c bước sau:
- C lien t sử dụng tính năng gọi thủ tục cụ c bộ trong clie n t stub
- C lient stub gửi chuyển cá c tham số đến Server bằng cá ch gửi yêu cầu
R P C
- Y êu cầu củ a C lien t được Server phân tích dựa trên tập tin server stub
- T hự c hiện thủ tục đã được phân tích trôn Server
- T rả về c á c giá trị ch o Client
R P C thể hiện quan điểm tách biệt giữa g iao diện và phần cài đặt thực hiện
X u ất phát từ v iệc khai báo g iao diện, phần m ềm trung gian tạo c á c m ã lệnh hỗ trợ ch o v iệc xử lý phân tán bằng cách thè hiện c á c ứng dụng dưới dạng ngữ nghĩa truyền th ôn g trên m áy cụ c bộ, tuy nhicn nó phải đảm bảo nhiều nhiệm
vụ phức tạp như: Iruyền dữ liệu, đồng bộ tiến trình
L u ậ n văn tết H iịh iệp cao h ọc
Đ ề tài: M ộ t sò k h iu cạnh /v thuyết vù thực tiễn tro n g x ử lý phân rán
Trang 29T ra n g 2 8
1.5.2.3 Kiến trúc D C OM, CORBA
C ác kiến trúc D C O M và C O R B A được n ghiên cứu và phát triển vào những nấm của thập niên 9 0 Đ ây là c á c kiến trúc tiêu biểu trong hệ thống phân tán
và có nhiều ưu điểm C ác kiến trúc này đều dựa trên nguyên tắc củ a m ô hình
c á c đối tượng phân tán T ron g chương 2 luận văn sẽ đề cập chi tiết về c á c kiến trúc này
1.6 ưu nhược điểm của hệ thống phân tán
1.6.1 Ưu điểm
- Tính sẵn sà?ig c a o.'Hệ thống là phân tán nhằm m ục đích đáp ứng nhu cầu xử lý phân tán V ì vậy, có thể tăng tính sẵn sàng củ a hệ thống nhờ tăng độ dự phòng phần cứng, phần m ềm trong hệ thống, hoặc dựa trên việc lưu trữ dữ liệu phân tán tại nhiều điểm để dự phòng lỗi
- T ăn ẹ hiệu năng xử lý: Hệ thống phân tán c ó thể g iải quyết được nhu cầu
về tính toán song song, phân tải hệ th ốn g, đồng th òi, c á c yêu cẩu truy cập dữ liệu thường xuyôn cũng nhanh hơn do dữ liệu được lưu trữ gần
- C h ia s ẻ tài nguyên: Hộ thống phân tán c ó th ể thay đổi quy m ô D o đó
có thể kết nối với c á c m ạng bên ngoài để ch ia sẻ tài nguyên, và sử dụng tài nguyên được ch ia sẻ
- N hất quán trong sử dụng: C ác ứng dụng trong m ột hệ thống phân tán đều nhất quán về g iao diộn, về chuẩn kết nối dữ liệu , về giao thức truyền thông D o vậy sẽ giúp người sử dụng hệ thống dễ dàng nắm bắt
c á c m odule trong hệ thống
1.6.2 Nhược điểm
- K h ó thiết k ế và xây dựnq: Hệ thống phân tán thường rất phức tạp Đ ể một hệ thống phân tán có thể hoạt động được, người ta phải tính toán đến nhiều g ó c độ lý thuyết và thực tiễn như: G iao thức truyền thông, thuật toán tối ưu truy xuất dữ liệu, bảo m ật và an toàn dữ liệu tại cá c điểm phân tán và trên được truyền, D o vậy, hệ phân tán khó thiết k ế
và xây dựng
- K hó b ả o hành b ả o trì: Hệ thống phân tán có c á c đối tượng thành phần
t r o n g h ệ t h ố n g đ ặ t t ạ i n h i ề u đ i ể m k h á c n h a u n ê n k h i b ả o h à n h b ả o trì
thường khó khăn hơn c á c hệ thống độc lập h oặc c á c hộ thống tập trung
L u ậ n VÓIÌ tôt nghiệp ca o học
Đ i’ ten M ộ t sở khiu cạnh IÝ thuyết và tlìựí tiễn trong x ứ !ỹ phún tán
Trang 30D CO M và CORBA.
2.1 G iớ i th iệu
Đ ể thực hiện v iệc thiết k ế c á c ứ n s dụng phân tán , người ta thường dùng nhiều
m ô hình kiến trúc, với c á c tiêu ch u ẩn k h ác nhau T ro n g ch ư ơ n g 1, ỉuận văn đã
đề cập đến m ột s ố m ứ c xử lý phân tán như: T ru y ền tập tin, K h ách /C h ủ (C lien t/Serv er) và m ô hình N g a n ẹ hàn g (P ear to P ear) Phư ơng pháp xây dựng
c á c ứng dụng kiểu truyền tập tin đã gần như k h ô n g cò n được ứng dụng trong thời điểm hiện nay Phương pháp ứng dụng m ô hình C lie n t/S e rv e r thực ra là thực hiện cá c lời g ọi thủ tụ c từ x a M ô hình ngang h àng với v iệc ch ia sẻ tài nguyôn như c á c đối tượng làm v iệ c được n ghiên cứu và ứng dụng nhiều
T ron g chương này sẽ đề cậ p đến c á c k iến trú c dựa trôn ngu yên tắ c củ a m ô hình đối tượng Đ ó là hai k iến trú c nổi bật:
- M ô hình đối tượng thành phần phân tán D C O M (D istribu ted
C om ponent O b je c t M o d el)
- K iến trúc m ôi trường yêu cầu đối tượng ch u n g C O R B A (C om m o n
O b je c t R eq u est B ro k er A rc h ite ctu re )
2.2 Mỏ hình đôi tượng thành phần phân tán (DCOM)
2.2.1 G iớ i thiệu
M icro soft đưa ra phương pháp đ ó n g gói và liên kết dữ liệu (O L E - O b je c t L in k
Ë m b cd cd ) vào năm 1 9 9 0 nh ằm m ụ c đích tích hợp c á c kiểu dữ liệu k h ác nhau,
nó ch o phép một ứng dụng c ó th ể chứ a c á c đối tượng th u ộ c ứng dụng khác
O L E ch o phcp truy nhập đối tượng th eo hai c á c h : L iê n kết với đối tượng và
L u ậ n văn tôt Hi>liiép c a o h ọ c
D ề tủi: M ộ t sô kill'd c ạ n li lý thu xết vù thực ticn fro m ! x ử lý p h á n tán
Trang 31sao ch ép dữ liệu củ a đối tượng C ác thành phần kiến trúc c ơ bản củ a O L E bao
- Mô hình truyền dữ liệu thống nhất: Cho phép người sử dụng chuyển dữ
liệu thống nhất thông qua v iệc gọi c á c hàm A PI
- Thành p h ầ n cu n g c ấ p g ia o d iệ n : ch o phép c á c ứng dụng thể hiện c á c
g iao diện C O M để ứng dụng k h ác sử dụng c á c đối tượng O L E
T iếp theo phương pháp sử dụng O L E , năm 199 6 hãne; M icro so ft đưa ra phương pháp sử dụng A c tiv e X dựa trên v iệc kết hợp c á c địch vụ trôn m áy tính với trình duyệt W E B , đây là m ôi trường ch o c á c thành phần và c á c đối tượng phân tán T uy nhiên để c á c đối tượng c ó thể liên lạ c với nhau trong m ôi trường
m ạng, A c tiv e X sử dụng m ô hình đối tượng thành phần phân tán D C O M đóng vai trò tương tự O R B trong kiến trúc C O R B A C á c đặc điểm c ơ bản củ a m ô hình D C O M b ao gồm :
- Cung cấp c á c dịch vụ ch o A c tiv e X và O L E
- Hỗ trợ c á c giao diện A PI để gọi c á c đối tượng động và tĩnh
- C á c đối tượng tương tác với nhau bằng cá ch sử dụng c ơ c h ế gọi thủ tục
từ xa R P C trong m ôi trường tính toán phân tán
2.2.2 Mỏ hình đối tượng thành phần (COM)
M ô hình đối tượng thành phần C O M (C om ponent O b je ct M o d el) là m ột thànhphần kiến trúc c ơ bản của O L E để x á c định g iao diện gữa c á c đối tượng thành phần C O M c ó c á c đặc điểm :
- C O M là m ột kiến trúc m ở ch o v iệc phát triển c á c ứng dụng clien t/serv er dựa trên cô n g nghệ hướng đối tượng C ác chương trình clien t c ó thể truy cập đến m ột đối tượng thông qua c á c ghép nối được thực hiện trên đối tượng dó
Trang 32Tirang J /
- C O M là tiêu chuẩn đánh giá tính liên tác giữa c á c thành phần
{com p on en t interop erability), không phụ thuộc vào ngôn ngữ lập trình, sán dùng trcn nhiều trạm , và C O M c ó khả năng m ở rộng
2.2.3 Mô hình đôi tượng thành phần phản tán (DCOM)
2 2 3 ỉ K h á i niệm vềD C O M
M ô hình đối tượng thành phần phân tán D C O M (D istribu ted C om ponent
O b je c t M o d el) là m ô hình m ở rộng củ a C O M nhằm hỗ trợ truyền thông giữa
c á c đối tượng trên nhiều m áy k h ác nhau qua m ạng L A N , W A N , hay m ạng Internet qua c á c k h ía cạnh:
- D C O M là m ột g iao thức đối tượng để c á c thành phần C O M c ó thể g iao tiếp với c á c thành phần k h ác qua m ôi trường m ạng m áy tính D C O M có tính đ ộ c lập ngôn ngữ, nên m ọi ngôn ngữ xây đựng c á c thành phần
C O M đểu c ó thể tạo ra cá c ứng dụng D C O M
- D C O M (hay C O M phân tán) xây dựng m ột m ô hình khái niệm chuẩn
để tạo dựng, quản lý và truy cập c á c thành phẩn đối tượng (o b je c t- b a s e d com p on en ts) nơi cu ng cấp c á c dịch vụ ch o c á c ứng dụng và c á c đối tượng k h á c T hàn h phần D C O M có thể tồn tại như m ột thành phần củ a
hệ điều hành hay m ột ứng dụng, h o ặc như m ột thực thể đ ộc lập {stan d
a lo n e).
- C ác thành phần D C O M có thể được dùng để biểu diễn dữ liệu và c á c dịch vụ củ a những chương trình được xây dựng bởi c á c nhà sản xuất khác, h oặc để tạo ra c á c ứng dụng nhằm tận dụng c á c dịch vụ đó
- C ác nhà phát triển có thể m ở rộng h oặc tùy biến c á c dịch vụ D C O M cơ
sở để phù hợp nhu cầu c á c ứng dụng củ a họ trong khi vẫn đảm bảo tiếp tục cô n g v iệc với cá c đối tượng D C O M kh ác
- C O M là nền tảng của M ô hình liên kết và nhúng đối tượng - O L E
('O bject Linking a n d E m bbedin q). C O M được coi là tiêu chuẩn đánh giá
dể c á c thành phần phần m ềm sử dụng c á c thành phẩn kh ác nhằm tích hợp c á c đ ặc trưng giữa cá c ứng dụng kh ác nhau
- D C O M dược hiểu là O L E m ạng {netw ork O LE), ]à sự m ở rộng của
C O M C ông nghệ mới D C O M ch o phép c á c thành phần phần m ềm giao tiếp với c á c thành phần phần m ềm kh ác qua m ạng m áy tính
L u ậ n văn tốt ni>hiệp ca o học
D ê tà i : M ộ t sô kh iu cạn h lý thuyết vù thực tiễn trong \ử / V p hàn rán
Trang 33T ra n g 32
2 2 3 2 C á c đ ặ c trưníỊ c ơ bản của D C OM
D C O M là m ột m ô hình nhằm hỗ trợ v iệc xây dựng cá c ứng dụng phân tán trên
c ơ sở m ô hình đối tượng, với v iệc dùng cá c phần m ềm trung gian (m id d lew are) V ới tiêu ch í đó, D C O M được thiết k ế có c á c đặc trưng c ơ bản như sau:
- Đ ộ c lập vị trí (L ocation in d ep en d en ce): C ác đối tượng D C O M không phụ thuộc vị trí cài đặt trên m ạng
- Đ ộ c ỉậ p ngôn ngữ (L an gu age neutrality): C ác ứng dụng phân tán dựa trên D C O M không phụ th ộc vào ngôn ngữ phát triển ứng dụng
- Quản ỉỷ kết n ối (C onnection m an agem en t): C ác kết nối tới c á c thành phần củ a D C O M đều có thể quản lý và điều khiển
- K h ả năng thay đ ổ i quy m ô (S ca la b ility); C ác hệ thống dựa trên
D C O M đều c ó thể thay đổi quy m ô của hộ thống m à không ảnh hưởng đến hoạt động của hộ thống V iệ c thay đổi quy m ô thường là
để m ở rộng hoặc nâng cấp hệ thống
- H iệu năng (P erfo rm a n ce): D C O M đảm bảo c á c ứng dụng phát triển đều đạt hiệu năng cao trong xử lý
- B ả o m ật (Security): D C O M cu ng cấp m ột bộ khung bảo m ật dễ dàng
m ở rộng và tuỳ biến để làm c ơ sở ch o c á c nhà phát triển xây dựng khi thiết k ế c á c hệ phân tán
- C ân bằn g tải (L o a d ba la n cin g ): D C O M hỗ trợ khả năng điều khiển phân luồng, đồng thời hỗ trợ khả năng dịch chu yển bị trí c á c đối tượng với m ục đích cân bằng tải
- Tính chịu lỗ i (F au lt to ler a n c e ): C á c ứng dụng phân tán dựa trên
D C O M đều c ó c ơ c h ế đề phòng, phát hiện, xử lý lỗi, hoặc phục hồi
dữ luệu vẻ trạng thái ban đẩu khi gặp lỗi
L u ậ n văn tốt nghiệp cao h ọc
D i’ tủi: M ộ t s ố k h íư cạnh lý thuyết và thực tiên tron ạ xử lý phàn tán
Trang 34T ra n g 33
2.2.4 Kiến trúc DCOM
Hình 2.1 Kiến trúc DCOM.
S C M (Serv ice C ontrol M an ag er): là thành phần củ a thư viện C O M chịu trách
nh iệm định vị phần thực thi củ a đối tượng SC M đảm b ảo rằng kh i yêu cầu của
c lie n t được gửi đi, server tương ứng sẽ được kết nối và sẵn sàng nhận yêu cầu
D C O M là m ô hình phát triển củ a C O M C O M x á c định phương thức kết nối
củ a c á c thành phần với c á c chương trình clien t Sự tương tác này c ó thể là trực tiếp, không cần thành phần hệ trung gian
T ron g c á c hệ điều hành hiện nay, c á c tiến trình { p r o c e s s) được bảo vệ tách khỏi nhau M ột tiến trình clie n t cần giao tiếp với m ột thành phần thuộc tiến trình kh ác, thì không thể gọi trực tiếp thành phần đó, m à phải dùng m ột số dạng truyền thông giữa tiến trình (in ter-process com m u n ication ) được cung cấp b ở i hệ điều hành C O M cung cấp dạng truyền thông này theo m ột m ô hình hoàn toàn trong suốt: nó đón ch ặn c á c lời gọi từ c lie n t và hướng cá c lời gọi này đến c á c thành phần thuộc tiến trình khác
K hi clie n t và thành phần đặt tại c á c m áy k h ác nhau, D C O M chỉ thay truyền thông giữa tiến trình cụ c bộ bởi m ột giao thức m ạng
L u ậ n vân tốt nghiệp cao học
D é tà i: M ộ t sô khiu cạnh /v thuyết và thực tiễn troní> x ử lý p h ả n rán
Trang 35T ra n g 34
2 2 4 1 Định vị c á c đ ối tượnẹ
M ột trong những bộ phận trọng tâm củ a C O M là c ơ c h ế th iết lập liên kết với
c á c thành phần và tạo ra c á c bản sao củ a c á c thành phần đó N hững c ơ c h ế này thường được g ọi là những c ơ c h ế k ích hoạt
D C O M c ó thể tạo ra cá c đối tượng cụ c b ộ và c á c đối tượng từ xa
T ron g C O M , c á c lớp đối tượng được đặt tên theo c á c định danh tổng thể duy nhất (G U ID ) K h i c á c G Ư ID được dùng để tham chiếu đến c á c lớp đối tượng nhất định, thì chú ng được gọi là c á c C la s s ID C ác C lass ID này thực ch ất là
c á c số nguyên lớn (1 2 8 bits) để tránh xung đột và phân quyền k h ô n g gian tên
c h o c á c lớp đối tượng Đ ể tạo m ộ t đối tượng C O M m ới, chú ng ta sẽ gọi m ột trong số c á c hàm trong thư viện C O M
C lass factory là m ột đối tượng tồn tại để tạo ra c á c đối tượng (nên được gọi là
“ fa cto ry ” ) củ a m ột lớp nào đó
J2) Manufacture Object
Hình 2.2 Class Factory
Đ ố i với D C O M , c ơ c h ế tạo đối tượng trong c á c thư viện C O M được nâng cao
để ch o phép tạo đối tượng trên c á c m áy khác nhau Đ ể tạo m ột đối tượng từ
xa, c á c hàm thư viện C O M cần biết tên m ạng củ a server đó M ột khi đã biết tên server và định danh C L S ID , m ột thành phần quản lý điều khiển dịch vụ —
S C M (S erv ice C on trol M an ager) củ a thư viện C O M trên m áy clie n t kết nối với SC M trên m áy server và nó yêu cầu tạo đối tượng này
L u ậ n van tốt nghiệp ca o học
D ê tài: M ộ t sô k ììía cạnh /ý thuyết vù thực tiền n o riíỊ x ử lý p hân tán
Trang 36T ra n g 35
D C O M cung cấp 2 c ơ c h ế cơ bản ch o phép c á c clien t có ihể ch ỉ định tên server từ xa m ỗi khi:
- M ột đ ối tượng được tạo ra như m ột cấu hình c ố định trong đăng ký
hệ thống, h oặc trong Lưu trữ lớp D C O M (D C O M C lass Store)
- M ột đối tượng được tạo ra là tham số truyền qua c á c hàm
C o C r e a t e ln s t a n c e E x , C o G e t ln s t a n c e F r o m F ile ,
C o G e t ln s t a n c e F r o m S to r a g e , h o ặ c C o G e t C la s s O b je c t
D C O M có thể k h ỏ i tạo c á c thành phần in -p ro cess từ xa thông qua tiến trình đại diện trên m áy tính ờ x a đó N goài v iệc k ích th ích hoạt động từ xa, tiến
í rình đại diện cò n cu n g cấp m ột số thuận lợi sau:
- C ác lỗ i trên server từ x a được tách k h ỏ i tiến trình đại diện
- M ỗi tiến trình đại diện có thể phục vụ nhiều clie n t đồng thời
- C ác c lie n t tự bảo vệ khỏi những chư ơng trình server trong khi truy cập c á c d ịch vụ củ a c á c server đó
- Chạy m ột server in -process trong tiến trình đại diện
2 2 4 2 Đ óng ẹ ó i c á c đ ố i tượng và c á c tham s ố
K h i m ột chương trình c lie n t muốn gọi đến m ột đối tượng kh ác không gian địa
ch ỉ, c á c tham s ố ch o lời gọi phải được truyền từ tiến trình clie n t sang tiến trình
củ a đối tượng C lie n t đặt c á c tham số trong ngăn xếp (co i ngăn xếp là c ơ c h ế truyển tham số ) T ron g trường hợp gọi đối tượng trực tiếp, thì đối tượng lấy
c á c tham số từ ngăn xếp và cũng cất giá trị trả vể vào ngăn xếp đó
Đ ối với c á c lời gọi từ x a (cụ thể là khi trình gọi và đối tượng không dùng chu ng m ột ngăn xếp ), m ột số m ã chương trình (thường là c á c thư viện C O M ) phải đ ọ c toàn b ộ tham số từ ngăn xếp và ghi vào vùng đệm bộ nhớ để c ó thể truyền c á c tham số đó qua m ạng Quá trình đ ọ c tham số từ ngăn xếp vào vùng đệm gọi là đ ư a d ẫ n {m a rsh a l). V iệ c đưa dẫn tham số không đơn giản, như trường hợp c á c tham số là c á c con trỏ, trỏ đến c á c m ảng h o ặc c á c cấu trúc
C ác cấu trúc này lại chứ a c á c co n trỏ, h oặc chứ a c á c cấu trúc k h ác, c ó thổ dẫn đến tham ch iếu quay vòng Đ ổ dẫn hướng cá c tham số phức tạp, m ã đưa dẫn phải đi theo toàn bộ phân cấp con trỏ của m ọi tham số và khôi phục tất c ả clữ liệu để có thể phuc hồi trong không gian tiến trình của đối tượng
Lập bản sao dưa dẫn là quá trình đọc c á c dữ liệu tham số và tái tạo lại m ột ngăn xếp sao ch o g iố n g như ngăn xếp gốc đã dược thiết lập bởi trình gọi Q uá
L u ậ n văn tốt nghiệp ca o học
D ê rủ i M ộ t s ố k h iu cạn h iỹ thuyết vù thực tiễn trong x ứ ỉỷ phân tán
Trang 37T ra n g 36
trình này gọi là n h ậ n về (u n m a rs h a l) M ột khi ngăn xếp được tái tạo, đối tượng sẽ dược gọi Khi lời gọi kết thúc, c á c giá trị trả về và c á c tham số ra dược dẫn ra từ ngăn xếp củ a đối tượng, gửi về chư ơng trình clie n t, và được đặt vào ngăn xếp của tiến trình client
C ô n g việc củ a proxy là đ ư a dẫn c á c đối số vào và n h ậ n lạ i cá c giá trị trả về
và tham số ra được truyền về theo trình tự c á c lời gọi đến ghép nối củ a đối tượng proxy
C ông việc của stub là n h ậ n về c á c đối số hàm và truyền chúng cù ng với đối tượng g ố c, sau đó đư a d ẫ n c á c giá trị trả về và c á c tham số ra m à đối tượng đó trả về
Stub đại diện ch o clien t trong không gian địa ch ỉ củ a đối tượng
C O M cung cấp c á c c ơ c h ế phức tạp để đưa dẫn và nhận về c á c tham số hàm ,
c ơ c h ế này là nền tảng c ơ sở xây dựng lên thủ tục lòi gọi từ x a ( R P C - R em ote
P r o c ed u r e C all), một thành phần của chuẩn M ôi trường xử lý phân tán - D C E
( D istribu ted C om puting E nvirom ent). Til ủ tục lời gọi xây dựng m ột biểu diễn
dữ liệu chuẩn ch o m ọi kiểu dữ liệu liên quan
Đ ể C O M c ó thể đưa dẫn và nhận về c á c tham số m ộ t cá ch đúng đắn, nó cần
b iết chính x á c dấu hiệu củ a phương thức, bao gồm c á c kiểu dữ liệu, kiểu thành viên cấu trú c, k ích thước củ a c á c m ảng trong danh sách tham số Những m ô tả này được cu ng cấp qua ngôn ngữ định nghĩa ghép nối - I D L (.In terfa ce
D efin ition L an g u ag e). C ác file .ID L được biên dịch bởi m ột trình biên dịch
đ ặc biệt (thường là M icro so ft ID L (M ID L )) T rình biên dịch ID L sinh ra c á c file m ã nguồn c chứa m ã thực hiện việc đưa dẫn và nhận về ch o ghép nối được
m ô tả trong file ID L đó M ã phía clien t được gọi là proxy, và m ã phía server được gọi là stub. C ác proxy và c á c stub được tạo bởi M ID L và c á c đối tượng
C O M đều được nạp bởi c á c thư viện C O M khi cần thiết
K h i m ột phương thức chứ a tham số ra là m ột co n trỏ ghép nối, C O M sẽ đưa dẫn co n trỏ này bên phía đối tượng (tạo m ột stub) và nhận co n trỏ đó bên phía clie n t (tạo m ột proxy) Chương trình clien t sau đó c ó thể gọi proxy, proxy gọi stu b, và stub gọi phương thức ghép nối
K hi m ột phương thức chứa tham số vào là m ột con trỏ ghép nối C O M sẽ dưa dẫn co n trỏ ghép nối này bên phía clien t (lạo m ột stub) và nhận về con trỏ bên phía đối tượng (tạo m ột p roxy) Sau dó, đối tượng c ó thể gọi proxy, proxy gọi stub (bên phía clie n t), stub gọi phương thức ghép nối bên phía clien t
K hi chương trình clie n t gọi c á c hàm activation của A P I, như
C o C r e a t e ín s t a n c e C O M thường tạo một đối tượng và lấy một con trỏ ghép
L u ậ n văn tốt nạhiệp ca o học
t ì é tà i: M ộ t sô kh iu cạnh lý thuyết vù thực liề n tro n iị x ử lý p hân tán
Trang 38T ra n g 3 7
nối biểu diễn ch o đối tượng này Sau đó, nó đưa dẫn co n trỏ ghép nối bên phía dôi tượng (như m ột tham số ra củ a m ột phương thứ c) và nhận về co n trỏ bên phía client
ỉĩỉnh 2.3 Client có thể s ử dụng các thành phần trên các máy khác nhau.
Q uá trình đưa dẫn m ột co n trỏ ghép nối cũ n g c ó thể được m ở rộng C O M thông báo ch o đối tượng rằng nó sắp sửa tạo p ro xy và stub ch o m ột ghép nối
ch o trước Đ ối tượng c ó thể sử dụng quy tắc đưa dẫn chu ẩn củ a C O M , h o ặc
cu ng cấp c á c đối tượng p ro xy và stub tuỳ b iến
K h i đưa dẫn m ột co n trỏ ghép n ố i, tập dữ liệu phải được đặt vào vùng đệm
N D R Khi C O M nhận về tập dữ liệ u , nó cầ n m ột đối tượng C O M để thực hiện ghép nối được đưa dẫn T ập dữ liệu này được gọi là tham ch iếu đối tượng -
Trang 39T ra n g 3 H
g h ép nối IU n k n o w n D C O M tối ưu hoá c á c lời gọi A d d R e f và R e le a s e ch o
c á c đối tượng từ xa
Q uá trình tối ưu hóa sử cỉụng c á c đối tượng O X ID (o b je c t ex p o rter id en tifier),
c á c đối tượng này thực thi ghép nối IR e m U n k n o w n Đ ếm tham chiếu từ xa được điều khiển theo từng ghép nối (p er ỈP ỈD in terfa ce p o in te r identifier)
dùng c á c phương thức R e m A d d R e f và R e m R e le a s e củ a IR e m U n k n o w n Sử dụng một lời gọi đơn, R e m A d d R e f và R e m R e le a s e c ó thể tăn g, giảm tuỳ ý biến đếm tham chiếu củ a nhiều IP ID khác nhau
2 2 4 4 Quàn lý tươnq tranh và c á c m ô hình p h ân luồng
M ộ t tiến trình {p r o c e s s) gồm m ột tập c á c không gian nhớ chứ a m ã ch ạy, dữ liệu và tài nguyên hệ thống
M ộ t luồng (th read ) là m ột dòng thực thi qua m ột p rocess B ộ xử lý chỉ thực hiện cá c thread chứ không phải c á c process D o đó, c á c ứng dụng 3 2 -b it c ó tối
th iểu m ột process và m ột thread
C á c process g iao tiếp với p ro cess kh ác thông qua c á c thông điệp, dùng R P C
để truyền thông tin giữa c á c p ro cess, nên không c ó sự phân biệt c á c process là trên cùng m ột m áy hay k h ác m áy
M ỗ i process c ó một thread ch ín h {prim ary th read ) và c ó thể c ó nhiều thread
K h i m ột thread được thực th i, nó tiếp tục ch o đến khi nó kết thúc h o ặc bị ngắt
b ở i m ột thread khác c ó quyền ưu tiên cao hơn (bởi người sử dụng, hoặc lịch trình thread của phần nhân hệ điều hành) C ác thread trong m ột p rocess dùng
ch u n g c á c biến tổng thể và tài nguyên củ a process
C á c lời gọi hàm thông thường được đồn g b ộ (sy n ch ro n o u s), nghĩa là trình gọi phải đợi hàm đó kết thúc (trả về) trước khi xử lý tiếp
th ú c mà vẫn c ó thê thực hiện c á c cô n g việc khác
L u ậ n văn tót m ịhiệp cao học
D ề tà i: M ộ i sò 'k h ía cạn/ì lý thuyết vù thực tiền tro iiỊị x ử /ý p h à n tun
Trang 40C ó 2 loại phòng:
- Phòng đơn luồng {sin g le-th rea d ed apartm en t - S T A ): ch ỉ có m ột luồng thực thi ch o m ỗi phòng D o đó, m ọi đối tượng C O M trong phòng đơn luồng ch ỉ có thể nhận c á c lời gọi phương thức từ m ột luồng trong phòng đó
- Phòng đa luồng {m u lti-threaded apartm en t - MTA): c ó thể có nhiều thread thực thi trong m ột phòng Nên cá c đối tượng C O M trong phòng
đa luồng có thể nhận c á c lời gọi phương thức trực tiếp từ bất cứ luồng nào trong phòng
M ột tiến trình c ó thể không có , h oặc c ó nhiều phòng đơn luồng; và c ó thể không có , h oặc c ó m ột phòng đa luồng
D o đó, m ột tiến trình có thể bao gồm :
- C hỉ có m ộ t phòng đơn luồng (sin gle-th read ed p ro cess)
- N hiều phòng đơn luồng và không c ó phòng đa luồng (apartm ent model