2 Cơ SỞ LÝ THUYẾT
2.6.3 Các thủ tục chuyển đổi
String 7 chuỗi ký tự
Fixed array 7 mảng có kích thước cô" định Counted array 7 mảng có kích thước nhỏ hơn một sô" cô"
định nào đó
Structure 7 câu trúc
Discriminate
Union 7 giông kiểu Union của c
void 0 Không có dữ liệu
Symbolic
constant 7
Optional data 7 Có tôi đa 1 item
Thủ tục Các đôi số Kiểu dữ liệu chuyển
đổi
Xdr_bool xdrs, ptrbool Boolean (int)
Xdr_byte
s xdrs, ptrstr, strsize, maxsize char *
Xdr_char xdrs, ptrchar char
Xdr_doubl
e xdrs, ptrdouble double
Xdr_enu
m xdrs, ptrint enum
Xdr_float xdrs, ptríloat float
Xdr_int xdrs, ptrint int
Xdr_long xdrs, ptrlong long
Xdr_opaq xdrs, ptrchar, count không chuyển đổi
Xây dưng dich vu tính toán phân bô" CBHD : K.S. THOAI NAM
Mỗi cấu trúc đều có những tiện lợi và bất tiện.
Group membership và group addressing là rất cần thiết trong quản lý group. Trong group Communications, phải có send và receive primitive để các thành viên trong group có thề trao đổi thông tin với nhau.
Một đặc tính quan trọng của group Communications là tính chất all-or- nothing (tính atomic). Một group được thiết kế ra để khi một message được gởi đến
group thì nó phải đến chính xác các thành viên của group hoặc là không đến thành
viên nào cả.
Một tính chất khác cũng rất quan trọng của group Communications là
SVTH :NGUYỄN VĂN Nổi - 59406114 58
Xây dưng dich vu tính toán phân bô" CBHD : K.S. THOAI NAM Các group có thể overlapping lẫn nhau.
Tính scalability phải được xem xét khi dùng mô hình group Communications.
2.6 XDR (eXternal Data Representation)
2.6.1 Tại sao lại phải sử dụng XDR
Do các kiến trúc máy tính khác nhau sử dụng các cách biểu diễn dữ liệu khác nhau. Thí dụ, việc chứa một sô" nguyên , ở một sô" máy tính, byte thâ"p
chứa ở
địa chỉ thấp, byte cao ở địa chỉ cao nhưng ở một sô" máy khác, byte thâ"p nhâ"t lại
được chứa trong bộ nhớ ở địa chỉ cao nhâ"t.
Nếu chỉ lập chương trình chạy trên một máy thì không cần quan tâm đến vân
đề trên .
MSB LSB
---Địa chì tăng---► (b)
Hai kiểu biểu diễn thông dụngcủa một sô" nguyên 32 bit 1230h. "big endian", (b) "little endian".
Để giải quyết vân đề trên ta có các giải pháp sau :
• Máy A muôn truyền dữ liệu cho máy B thì nó sẽ chuyển dữ liệu đó theo dạng
câu trúc của máy B.
• Các máy khi chuyển dữ liệu đi thì đổi thành dạng chuẩn nào đổ. Các máy
SVTH :NGUYỄN VĂN Nổi - 59406114 59
Xây dưng dich vu tính toán phân bô" CBHD : K.S. THOAI NAM Phương pháp 1 : Đòi hỏi một máy phải biết rỏ cấu trúc của các máy khác.
Điều này dẫn đến khả năng khó mở rộng chương trình và làm tăng tính phức tạp
của chương trình nếu có nhiều máy có cấu trúc khác nhau.
Phương pháp 2 : Khắc phục những nhược điểm của phương pháp 1. Tuy nhiên nếu chương trình chạy trên các máy có cấu trúc giông nhau hoàn toàn thì vấn
2.6.2 Các kiểu dữ liệu chuẩn của XDR chuẩn của XDR
SVTH :NGUYỄN VĂN Nổi - 59406114 60
Xây dưng dich vu tính toán phân bô" CBHD : K.S. THOAI NAM
2.6.3 Các thủ tục chuyển đổi chuyển đổi
Xdr_point
er xdrs, ptrobj, objsize, xdrobj void *
Xdr_short xdrs, ptrshort short
Xdr_strin
g xdrs, ptrstr, maxsize char *
Xdr_u_ch
ar xdrs, ptruchar unsigned char
Xdr_u_in
t xdrs, ptrint unsigned int
Xdr_u_lon
g xdrs, ptrulong unsigned long
Xdr_u_sh
ort xdrs, ptrushort unsigned short
Xdr_unio
n xdrs, ptrdiscrim, ptrunion,choicefcn,default Union Xdr_vect
or xdrs, ptrarray, size, elemsize,elemproc void *
3 Phân tích .thiết kế và hiên thức
3.1 Tổng kết phẩn cơ sử lý thuyết
Những đặc tính chính của hệ phân bô" là : hỗ trợ dùng chung tài nguyên
, tính
mở , tính đồng thời , khả năng chịu lỗi và tính trong suốt. Và đó cũng là điều phải
quan tâm khi xây dựng các ứng dụng trên hê phân bô".
TCP/ĨP cung câ"p cho người lập trình hai dich vụ sơ câ"p là sự phân
phôi các
gói dữ liệu và vận chuyển các dòng dữ liệu một cách tin cậy. TCP/IP có những đặc
điểm nổi bật làm cho nó phổ biến một cách rộng rãi là : • Không phụ thuộc vào sơ đồ vật lý của mạng. • Không phụ thuộc vào phần cứng câu tạo trên mạng. • Chuẩn giao thức mở.
• Tổ chức địa chỉ toàn cầu.
• Làm theo mô hình Client-Server một cách tiện lợi. • Chuẩn giao thức cho nhiều ứng dụng khác.
Mô hình Client-server là một mô hình rất phổ biến trong thiết kê" các ứng
dụng phân bô". Mô hình này với Concurrent và Connection-Oriented Server dùng
TCP đảm bảo truyền tin cậy nhưng vẫn có những nhược điểm: • Client phải biết địa chỉ server.
• Khó có thể bảo vệ Server khi địa chỉ giao tiếp không còn được bảo mật .
Xây dưng dich vu tính toán phân bô" CBHD : K.S. THOAI NAM Tại sao phải là Multicast ? Khi nào ?
• Khi gởi cùng một dữ liệu đến nhiều nơi nhận. • Sử dụng băng thông tốt hơn.
• Xử lý host/router ít hơn.
• Không cần biết địa chỉ nới nhận. ưu điểm của Multicast:
• Tăng hiệu quả : điều khiển lưu lượng mạng và giảm tải CPU và các Server . • Hiệu suất tôi ưu: loại bỏ bớt dư thừa về lưu thông trên mạng.
• ứng dụng phân bô": làm cho các ứng dụng nhiều điểm có thể . Một nhược điểm lớn của Multicast vẫn là UDP .
3.2 Phân tíc h 3.2.1 Bài toán
Bài toán đặt ra cho luận văn này như sau :
Một hệ thông máy tính gồm các máy tính chuyên dụng có khả năng tính toán
lớn (các Server) được kết nôi trên mạng LAN. Những Server này có thể đảm nhận
các dịch vụ tính toán khoa học đặc biệt gọi là các Service.Người sử dụng từ một
máy tính PC bình thường (Client) bằng môi trương lặp trình có thể sử dụng - truy
xuất các dịch vụ tính toán trên các Server. Người quản trị hệ thông (Admin) quản
lý hoạt động các server . Ngừời phát triển dịch vụ xây dựng thêm các dịch vụ trên
Xây dưng dich vu tính toán phân bô" CBHD : K.S. THOAI NAM
• Làm sao để Admin có thể quản lý ,kiểm soát và thông kê hoạt động của các server và việc truy xuất các dịch vụ từ các Client để cho hệ thông các server hoạt động đạt hiệu quả cao nhất.
• Làm sao để có cơ chế thuận lợi cho người phát triển thêm các dịch vụ tính toán
trên các server mà không cần quan tâm việc truyền nhận dữ liệu từ Client....
3.2.2 Các giả thuyết của bài toán:
1- Các Server có khả năng tính toán lớn hơn các máy tính PC bình
thường và
chỉ đảm nhận các dịch vụ tính toán mà không làm thêm chức năng nào khác, nghĩa
là không là không có một User nào (trừ Admin) được login trực tiếp vào các Server
để chạy các ứng dụng khác.
2- Các Server được kết nối trên cùng một mạng LAN (một subnet của mạng
LAN không thông qua router) để bảo đảm các message gởi bằng Multicast có thể
đến được các Server.
3- Thời gian mà các Server chạy các Service để phục vụ cho Client là lớn
hơn rất nhiều so với thời gian truyền dữ liệu từ Client đến Server.
4- Các message điều khiển hoạt hệ thông sẽ ưu tiên xử lý trước so với các
packet dữ liệu.
5- Nếu hai Server A và Server B trong hệ thông còn đường kết nối thì các
message do Server A gởi cho Server B phải đến được Server B và đúng thứ tự có
nghĩa là bỏ qua sự mất mát hay suy giảm tín hiệu trên đường truyền.
3.2.3 Phân tích bài toán và các giả thuyết
Hệ thông cần xây dựng là tập hợp các Server.
Các Server kết nôi trên mạng LAN nên sô" lượng các Server là ít, điều này
giới hạn là tính châ"t của mạng LAN.Các Server này có thể có kiến trúc khác nhau.
Các Server kết nôi trên mạng LAN nên nếu một Server nào đó gởi một packet thì hoặc là đụng độ hoặc là thành công. Vì vậy trên mạng nếu có thì chỉ
Ba loại người tham gia vào hoạt động của hệ thống : người quản trị hệ thông
, người phát triển các dịch vụ , người sử dụng các dịch vụ. Ngoài ra , còn một loại
người cô" tình phá hoại hệ thông của chúng ta. • Người quản trị hệ thông :
-phải nắm toàn bộ thông tin của hệ thông :
Thông tin về các Server : hệ thông gồm các Server nào , trạng thái ra
sao ,
tải hiện tại là bao nhiêu , Server có những dịch vụ nào và những dịch vụ nào đang
chạy.
Thông tin về dịch vụ :các dịch vụ có Server nào ,...
Thông tin về User xác User nào được phép trên hệ thông ,điíỢc phép
với dịch
vụ nào, và hiện tại User đang truy xuất dịch vụ nào ở Server nào ...
-có quyền điều khiển toàn bộ hoạt động của hệ thông : thêm Server ,bỏ Server , restart lại hệ thông , hủy tất cả các giao dịch mà Server đang phục vụ . • Người phát triển các dịch vụ xhỉ quan tâm đến giải thuật trong chương trình
của
dịch vụ mà họ không quan tâm đến hệ thông Server và họ càng không quan tâm
đến truyền nhận dữ liệu từ Client. Do đó ,hệ thông phải cung câ"p cho họ
một cơ
chế truyền nhận dữ liệu tiện lợi cho họ viết các chương trình dịch vụ.
• Người sử dụng các dịch vụ (Client) :không biết hệ thông gồm có các Server nào
và địa chỉ các Server là bao nhiêu mà họ chỉ quan tâm hệ thông có thể có được
những dịch vụ nào,cách sử dụng như thế nào. Với những dịch vụ này ,không
phải bất kỳ User nào cũng được phép mà chỉ những User đăng ký dịch vụ với
Admin là User được phép sử dụng dịch vụ này tôi đa bao nhiêu lần ,khi đó User
được câ"p accout với username và password. Khi đó User mới được quyền sử
dụng dịch vụ đã đăng ký.
Như vậy, tới đây thì hệ thông gồm 4 chương trình : chương trình điều
Xây dưng dich vu tính toán phân bô" CBHD : K.S. THOAI NAM và giải thuật cho từng dịch vụ cũng khác nhau. Điều này gây ra khó khăn về mặt
giao tiếp ở phiá Client khi người sử dụng truy xuất các dịch vụ khác nhau. Một câu hỏi đặt ra là tại sao không đặt chương trình dịch vụ này chung với
chương trình Server như mô hình Client -Server đã làm? Nên nhớ chương trình Server là chương trình quản lý thì nó không được phụ thuộc vào dịch vụ. Mà
nếu để
chương trình dịch vụ chung với chương trình Server thì sau này không thể nào thêm
một dịch mới vào hệ thông ( nếu thêm thì mở chương trình Server ra dịch lại !). Điều này đã vi phạm tính mở trong hệ phân bô?
Môi trường giao tiếp ở Client được chọn là môi trường lập trình bằng ngôn
ngữ c trên Unix.( Có thể mở rộng giao tiếp ở Client bằng Web chẳng hạn.) Client
là một module để người sử dụng liên kết vào chương trình c khi truy xuất một dịch
vụ , khi đó Client module nên là một hàm tổng quát nhất và duy nhất cho tất cả các
dịch vụ để đơn giản vấn đề lập trình ở Client nhất là những người không có kinh
nghiệm nhiều về lập trình thì cần đơn giản hóa trong vấn đề giao tiếp với hệ
thông .
VI là lập trình c trên Unix,nên User của hệ thống dịch vụ cũng là User của hệ thống
Unix đơn giản trong vấn đề quản lý User.
3.3 Các mỏ hình và lưa chon mô hình
Với một yêu cầu của Client ,có thể có nhiều Server hoặc không có Server
nào có khả năng đáp ứng. Việc lựa chọn mô hình sao cho nếu còn Server thì phải
đáp ứng cho Client mà vẫn bảo đảm rằng thông tin của hệ thông không bị mất. Có
ba mô hình được đề nnghị như sau :
3.3.1 Chỉ dùng mô hình Client -Server
Client lần lược gởi yêu cầu đến các Server. Khi tìm được Server đúng yêu
Thông tin về User sử dụng dịch vụ rất khó quản lý vì quyết định chọn Server
nào là do Client.
Hoạt động hệ thông theo mô hình này là tự phát vì tất cả xuất phát từ Client.
Hoạt động của hệ thống theo mô hình này có thể xem như sau :
Client là một người khách , hệ thông Server là một siêu thị ,dịch vụ là món
hàng. Người khách vào siêu thị với nhu cầu tìm món hàng và cứ đi tìm mà không
biết món hàng đó có trong siêu thị hay không ,cứ đi tìm hết nếu không có thì thôi
và nếu tìm có thì một lần nữa lại lựa chọn và lựa chọn xong rối khách hàng có chi
phí hay không ? và hay là người khách đó vào trong siêu thị không với mục
đích tìm
kiếm mà là phá hoại hệ thông của chúng ta? Nếu như mà hệ thông có người đứng
ngay cửa siêu thị để giúp dở khách hàng với mặt hàng này thì siêu thị chúng tôi không có để khách hàng khỏi mất công tìm kiếm, với mặt hàng đó thì siêu thị chúng
tôi có và anh có thề tìm ở vị trí X hay anh cứ ở đây tôi sẽ cử người mang ra cho anh Như vậy thì có lẽ tốt hơn ,tốt hơn cho Client mà cả hệ thông cũng được bảo vệ. Người giúp đỡ ở trên vừa làm nhiệm vụ giúp đỡ vừa gián tiếp làm nhiệm vụ giám sát ,bảo vệ hệ thông .
Mô hình Client -Server này sẽ không được chọn trong hệ thông của
chúng ta
nhưng mô hình này vẫn là nền tảng của các ứng dụng trong hệ phân bô".
3.3.2 Dùng Client -Server kết hỢp với Peer Group
Các Server thuộc vào một group với địa chỉ group là địa chỉ Multicast . Client dùng Multicast gởi yêu cầu đến group. Nếu Server nào thỏa yêu cầu thì trả
lời cho Client. Các Server là ngang hàng nhau ,không có Server nào ưu tiên
hơn cả.
Đây là sự kết hơp giữa mô hình Client -Server và mô hình Peer Group . • Ưu điểm :
Client chỉ cần gởi một bản yêu cầu đến group các Server nhằm làm giảm
lưu thông trên mạng
Client không cân biết tất cả các địa chỉ của các Server mà chỉ cần biết SVTH :NGUYỄN VĂN Nổi - 59406114
Xây dưng dich vu tính toán phân bô" CBHD : K.S. THOAI NAM Khắc phục hai nhược điểm trên , ta có mô hình thứ ba .
3.3.3 Dùng Client -Server kết hỢp với Hierarchical Group
Client vẫn dùng Multicast gởi yêu cầu đến group các Server như ở mô hình
thứ hai . Nhưng trong các Server , chỉ có một Server chính sẽ trả lời cho Client biết
Server nào là thích hợp nhất. Mô hình này cải tiến mô hình thứ hai trong viêc khắc
phục lỗi và giảm lưu lượng thông tin trên mạng. Phần tử Server chính trả lời cho
Client được gọi là Agent. • Ưu điểm :
Client chỉ cần gởi một yêu cầu đến group các Server và chỉ có 1 Server chính trả lời cho Client.
Client không cân lưu danh sách địa chỉ các Server mà chỉ cần biêt địa chỉ
group các Server.
Thông tin được giảm cả hai chiều . Client không cần tính toán chọn Server .
Client không cần biết hệ thông có agent hay không mà chỉ gởi yêu cầu vào
nhóm. Nếu hệ thông không có Agent, thì các Server bằng giải thuật bầu cử sẽ chọn
ra một agent mới để trả lời cho Client.
Có khả năng khắc phục lỗi cao khi Server bi lỗi Client yêu cầu , agent gởi
một địa chỉ Server khác. • Nhược điểm :
Trong hệ thông luôn có một phần tử yếu là Agent. Khi chọn mô hình này
cần xem xét vấn đề bầu chọn lại Agent khi Agent cũ không còn nũa.
Mô hình rất phù hợp với hoạt động trên mạng LAN và được chọn để hiện
thực trong hoạt độn của hệ thông .
3.4 Cấu trúc của hê thông
Một Agent : điều khiển hoạt động các Server , xữ lý yêu cầu của Client , phục vụ Admin . Agent luôn luôn tồn tại trong hệ thông và sẽ do Admin chỉ định
hoặc do Server bầu ra. Nó phải được Admin program start trước tiên trên một server
do người quản trị hệ thông chỉ định .
Server : quản lý các dịch vụ trên Server và chiụ sự điều khiển của Agent ,ứng củ để trở thành Agent khi Agent không còn nữa. Chỉ một Server trên một máy
và Admin program gọi chạy từ xa.