các hệ phân tán, giúp hệ thống phân tán dữ liệu trên các trạm của mạng máytính, giúp xóa bỏ việc dư thừa dữ liệu của các hệ xử lý tệp truyền thống.. - Định nghĩa 2: Hệ phân tán là một hệ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TIỂU LUẬN
ĐỀ TÀI
CÁC HỆ PHÂN TÁN DỰA TRÊN WEB
Giảng viên TS Vũ Thị Hương Giang Nhóm thực hiện Nhóm 14
Trương Thủy Phương Nguyễn Xuân Trường Trần Thị Mơ
Trần Đăng Minh
Lớp 12BCNTT2
Hà Nội, Năm 2012
Trang 2MỤC LỤC
1 Định nghĩa 3
1.1 Định nghĩa 3
1.2 Mục tiêu của hệ phân tán 4
1.2.1 Kết nối người sử dụng và tài nguyên 4
1.2.2 Tính trong suốt 4
1.2.3 Tính mở 5
1.2.4 Tính co giãn (Scalability) 5
1.3 Các khái niệm phần cứng 5
1.3.1 Phân loại máy tính 5
1.4 Các khái niệm phần mềm 6
1.5 Mô hình client - server 6
TÀI LIỆU THAM KHẢO 19
LỜI MỞ ĐẦU
Ngày nay, với sự phát triển như vũ bão của Internet, đòi hỏi cần có một hệ thống quản lý cơ sở dữ liệu cho trang Web mạnh và đáp ứng nhu cầu truy cập của người sử dụng Nếu như hệ thống quản trị cơ sở dữ liệu theo hình thức tập trung thì việc đáp ứng những yêu cầu của người dùng sẽ gây ra tắc nghẽn và đòi hỏi yêu cầu lưu trữ của hệ thống dữ liệu lớn hơn rất nhiều Với việc xây dựng
Trang 3các hệ phân tán, giúp hệ thống phân tán dữ liệu trên các trạm của mạng máytính, giúp xóa bỏ việc dư thừa dữ liệu của các hệ xử lý tệp truyền thống Đồngthời đảm bảo tính nhất quán của dữ liệu sử dụng Internet cũng là một hệ thốngphân tán rất lớn World Wide Web đã thay đổi cách chúng ta làm kinh doanh,học tập và nghiên cứu… Nó cũng mang lại một rất nhiều thách thức, hẳng hạnnhư nội dung gần như vô hạn, tài nguyên đa dạng, và nội dung thường xuyênđược cập nhật Với quyên truy cập chính đáng, nó cho phép người sử dụng, bất
cứ nơi nào có thể sử dụng các dịch vụ như Web Wide World (WWW) email vàtruyền tập tin Ở bài tiểu luận này, chúng tôi tập trung tìm hiểu về đặc điểm vàcách xử lý dữ liệu của các hệ phân tán dựa trên Web
Chương 1 : Tổng quan về hệ phân tán.
1 Định nghĩa
1.1 Định nghĩa
Có nhiều định nghĩa về hệ phân tán:
Trang 4- Định nghĩa 1: Hệ phân tán là tập hợp các máy tính tự trị được kết nối vớinhau bởi một mạng máy tính và được cài đặt phần mềm hệ phân tán
- Định nghĩa 2: Hệ phân tán là một hệ thống có chức năng và dữ liệu phântán trên các trạm (máy tính) được kết nối với nhau bởi một mạng máytính
- Định nghĩa 3: Hệ phân tán là một tập các máy tính độc lập giao tiếp vớingười dùng như một hệ thống thống nhất, toàn vẹn
Như vậy, có thể nói : Hệ phân tán = mạng máy tính + phần mềm hệ phân tán.Phân loại hệ phân tán
1.2 Mục tiêu của hệ phân tán.
1.2.1 Kết nối người sử dụng và tài nguyên
Hệ phân tán giải quyết bài toán chia sẻ tài nguyên trong hệ thống(resource sharing)
1.2.2 Tính trong suốt
Hệ phân tán giúp ẩn giấu sự rời rạc và những nhược điểm nếu có của hệphân tán đối với người sử dụng (end - user) và những nhà lập trình ứng dụng(application programmer)
Tính trong suốt thể hiện qua các đặc trưng:
- Truy nhập (Access transparency): che giấu sự khác biệt trong cáchbiểu hiện dữ liệu và cách thức truy nhập tài nguyên
- Vị trí (Location transparency): che giấu vị trí tài nguyên → ngườidùng hoàn toàn không biết về vị trí vật lý của tài nguyên trong hệthống
- Di trú (Migration transparency): che giấu việc tài nguyên di chuyểnsang máy khác → tài nguyên có thể không nằm ở vị trí cố định, mà nó
có thể được di chuyển sang các máy khác nhau trong hệ thống để phục
vụ các yêu cầu khác nhau mà không ảnh hưởng tới việc truy nhập tàinguyên
- Di chuyển (Relocation transparency): che giấu việc tài nguyên có thể
bị di chuyển sang nơi khác → tài nguyên có thể di chuyển sang nơikhác ngay cả khi nó đang bị truy cập
Trang 5- Nhân bản (Repilcation transparency): che giấu việc sao chép tàinguyên → việc sao chép tài nguyên giúp đơn giản hóa và tăng tốc độtruy cập dữ liệu, các bản sao đặt gần hoặc ngay tại nơi truy cập dữ liệu.Các bản sao này phải có cùng tên, để che giấu với người dùng; và hệthống cần có tính trong suốt về vị trí, để đảm bảo khả năng quản lý cácbản sao khác nhau trên các máy trong hệ thống.
- Tương tranh (Concurrency transparency): che giấu sự chia sẻ tàinguyên bởi một số người sử dụng, nhiều người dùng có thể cùng truycập dữ liệu tại cùng một thời điểm, đặc biệt sử dụng nhiều trong mạngtruyền thông
- Lỗi (Failure transparency): che giấu lỗi và khắc phục lỗi → đảm bảongười dùng hoàn toàn không biết về các lỗi xảy ra trong hệ thống và sựkhắc phục các lỗi này
1.2.3 Tính mở
Hệ phân tán được gọi là mở nếu nó cung cấp các dịch vụ theo các quy tắcchuẩn mô tả cú pháp và ngữ nghĩa của dịch vụ đó Thông thường trong hệ phântán các dịch vụ thường đặc tả qua các giao diện bằng ngôn ngữ đặc tả giao diện(Interface Definition Language- IDL) Vì thế chỉ quan tâm đến cú pháp Nó chophép các dịch vụ khác nhau cùng chung sống Nếu các giao diện của hệ phân tánđược đặc tả đầy đủ và đúng đắn
1.3 Các khái niệm phần cứng.
1.3.1 Phân loại máy tính
a Máy tính có chia sể bộ nhớ/máy tính không chia sẻ bộ nhớ
Trang 6- Các loại máy tính có chia sẻ bộ nhớ (Shared memory): các loạimáy đa xử lý (multiproccessor)
- Các máy tính không chia sẻ bộ nhớ (Private memory): các hệthống multicomputors
b Hệ thuần nhất / hệ không thuần nhất;
- Hệ thống thuần nhất: mạng máy tính cùng sử dụng một côngnghệ, các bộ xử lý là như nhau, truy cập đến cùng một bộ nhớ giống nhau.Thường dùng trong hệ thống có tính toán song song
- Hệ không thuần nhất: những máy tính khác nhau kết nối với nhau
1.4 Các khái niệm phần mềm
a DOS (distributed OS): Là hệ điều hành cho các hệ multiproccessor vàcác hệ homogenous multicomputer Mục tiêu là ẩn giấu và cung cấp các dịch vụquản trị tài nguyên Đặc điểm là các dịch vụ có thể được thực hiện bởi các lờitriệu gọi từ xa
b NOS (Network OS): Là hệ điều hành cho các hệ thống heterogenousmulticomputer (LAN, WAN) Mục tiêu của NOS là cung cấp các dịch vụ từ xa
c Middleware: Là tầng phụ nằm giữa tầng dịch vụ của NOS và tầng ứngdụng phân tán
1.5 Mô hình client - server
Tổng quan về mô hình Client – server
Mô hình client - server trong một hệ phân tán được phân chia thành hainhóm chính là nhóm các server và nhóm các client Nhóm các server chứa cácdịch vụ đặc biệt Nhóm các client là nhóm gửi yêu cầu đến server để được sửdụng các dịch vụ đó trên server
Phân tầng các ứng dụng:
Việc phân định rạch ròi chức năng của client và server đến giờ cũng rấtkhác biệt và không thuần nhất Do đó người ta đưa ra ý tưởng là chia thành bamức chức năng: User – interface - level: bao gồm các chương trình cung cấpgiao diện cho phép người sử dụng tương tác với chương trình ứng dụng
Trang 7• Gọi thủ tục từ xa RPC (Remote Procedure Call)
• Triệu gọi đối tượng từ xa ROI(Remote Object Invocation)
• Truyền thông điệp MOM (Message Oriented Middleware)
• Truyền thông hướng dòng (Stream Oriented Middleware)
2.1 Gọi thủ tục từ xa RPC
Rất nhiều hệ phân tán dựa trên việc trao đổi thông điệp chi tiết giữa cáctiến trình Tuy nhiên các thủ tục truyền và nhận trong giao tiếp không hoàn toànđược che giấu, trong khi tính trong suốt trong truy cập là một trong những đặctính quan trọng của hệ phân tán
Vấn đề này đã được đặt ra từ lâu nhưng chỉ cơ bản được giải quyết khiBirrell và Nelson (1984) đề ra một cách xử lý giao tiếp hoàn toàn khác Haingười đã đề ra một số quy tắc cho phép chương trình gọi các hàm trên máykhác Khi một tiến trình trên máy A gọi một hàm trên máy B, tiến trình trên máy
A sẽ tạm thời bị treo và việc xử lý hàm được gọi được thực hiện trên máy B.Thông tin có thể truyền đến máy được gọi qua các tham số và trả kết quả vềtrong hàm kết quả Không có bất kì thông điệp của tiến trình này biểu hiện rabên ngoài đối với người lập trình Đây chính là nội dung của phương pháp RPC
Mặc dù ý tưởng đưa ra có vẻ rất đơn giản và hiệu quả nhưng vẫn tồn tạimột số vấn đề như : các hàm trên máy gọi và được gọi chạy trên các máy khácnhau và các máy này xử lý trên các không gian địa chỉ khác nhau , điều này sẽ
Trang 8tạo ra một số rắc rối,bên cạnh đó các tham số và kết quả phải được truyền giữacác máy, tuy nhiên nếu các máy này không đồng bộ sẽ dẫn đến một số vấn đề rấtphức tạp Cuối cùng có thể một trong hai máy hoặc thậm chí cả hai máy đềuhoạt động không đúng và mỗi lỗi lại gây ra cac vấn đề khác nhau Tuy nhiên,hầu hết các vấn đề trên đều có thể xử lý được và RPC đang trở thành một côngnghệ được sử dụng rộng rãi trên rất nhiều hệ phân tán.
Hoạt động của RPC
Các quy ước trong thủ tục gọi
- Khi một thủ tục được thực hiện , các tham số của nó đươc đẩy vào trong ngăn xếp Sau khi thủ tục được thực hiện xong , kết quả được lưu trong thanh ghi Thủ được trả quyền điều khiển, các tham số trong ngăn xếp được xóa và ngăn xếp trở về trạng thái trước khi có lời gọi hàm
- Các cách truyền tham số:
• Truyền bằng tham trị
• Truyền bằng tham biến
• Truyền bằng cách sao chép và phục hồi ( không phổ biến)
Client stub và Server stub
Cách thức hoạt động của RPC ( cách thức RPC hoạt động một cách trong suốt)
- Client stub và server stub ở máy client và server là thành phần nhằm giảm nhẹ công việc cho client và server, làm cho hệ thống hoạt động một cách trong suốt hơn
- Trong mô hình client – server thì lời gọi thủ tục từ xa được thực hiện qua các bước sau:
Trang 9Một phiên làm việc theo giao thức RPC
(1) Tiến trình muốn thực hiện thủ tục ở máy client sẽ gọi client stub
(2) Client stub sẽ tạo một bản tin và có lời gọi đến hệ điều hành của client đó.(3) Hệ điều hành của máy client sẽ gửi bản tin đó tới hệ điều hành của máy server
(4) Hệ điều hành của server sẽ gửi bản tin tới server stub
(5) Server stub lấy các thông tin của gói tin và gọi server tương ứng
(6) Server thực hiện công việc được yêu cầu và trả kết quả về cho server stub
(7) Server stub đóng gói kết quả đó vào bản tin rồi gọi hệ điều hành của server đó
(8) Hệ điều hành của máy server này sẽ gửi bản tin kết quả đó hệ điều hành của
máy client
(9) Hệ điều hành của máy client sẽ gửi bản tin cho client stub
(10) Client stub sẽ mở gói tin kết quả và trả về cho client
Các mô hình RPC mở rộng:
- RPC dị bộ (Asynchronous RPC): Client gửi tới Server lời gọi thủ tục
và chờ bản tin chấp nhận từ Server Server sẽ gửi bản tin chấp nhận vàthực hiện yêu cầu RPC Client tiếp tục thực hiện công việc của mình
mà không chờ kết quả từ Server
Trang 10- RPC đồng bộ trễ (Deferred Asynchronous RPC): Client gửi tới Serverlời gọi thủ tục và chờ bản tin chấp nhận từ Server Server sẽ gửi bảntin chấp nhận và thực hiện yêu cầu RPC Client tiếp tục thực hiện côngviệc của mình Khi thực hiện thủ tục xong Server sẽ thực hiện lời gọitới Client báo nhận kết quả Client thực hiện ngắt, nhận kết quả vàthông báo đã nhận kết quả thành công.
- RPC đơn tuyến (one – way RPC): Sau khi thực hiện lời gọi thủ tục từ
xa tới server, client không chờ đợi thông báo nhận yêu cầu thành công
mà thực hiện ngay các công việc khác của mình
2.2 Triệu gọi đối tượng từ xa ROI(Remote Object Invocation)
Đối tượng phân tán:
- State: các dữ liệu đã được đóng gói
- Method: Các thao tác có thể thực hiện trên dữ liệu
- Interface: nơi để giao tiếp với các phương thức của đối tượng
Các bước thực hiện triệu gọi đối tượng từ xa.
- Khi cần triệu gọi các phương thức từ xa, client sẽ gửi yêu cầu đến
proxy – một thể hiện của interface.
- Proxy sẽ marshal (sắp xếp và đưa vào hàng theo thứ tự) các phương
thức được yêu cầu vào một bản tin rồi gửi cho hệ điều hành của máy client
- Hệ điều hành của client sẽ gửi bản tin yêu cầu đó đến hệ điều hành củaserver
Trang 11- Hệ điều hành server nhận bản tin và chuyển cho skeleton (giống serverstub của RPC).
- Skeleton sẽ unmarshal bản tin nhận được đẻ gửi đến interface của đối tượng có phương thức tương ứng
- Đối tượng thực thi phương thức rồi trả kết quả về cho skeleton
- Skeleton marshal kết quả nhận được rồi gửi trả về cho hệ điều hành của client
- Hệ điều hành của client nhận bản tin kết quả rồi chuyển tới cho proxy
- Proxy unmarshal bản tin đó rồi chuyển kết quả về cho client
2.3 Truyền thông điệp MOM (Message Oriented Middleware)
Các loại truyền thông cơ bản
- Truyền thông kiên trì (Persistent communication): Một trạm muốn
gửi bản tin đi trên mạng, nó sẽ gửi bản tin đó đến interface của máy mình Qua bộ nhớ đệm, bản tin đó được truyền đi trong mạng cục bộ
để đến mail server cụ bộ Mail server này tạm thời lưu trữ bản tin đó vào bộ nhớ đệm của mình, xác định địa chỉ trạm đích, rồi gửi tới servercục bộ của trạm đích tương ứng (có thể đi qua nhiều mail server trung gian khác) Tới mail server cuối cùng, bản tin lúc này sẽ được lưu lại trước khi phát cho trạm đích tương ứng
- Truyền thông nhất thời (Transient communication): Bản tin gửi đi
chỉ được lưu lại trong phiên trao đổi đó Khi phiên trao đổi đã hoàn thành hoặc khi kết nối bị hủy bỏ thì các bản tin đó cũng bị hủy bỏ trên các server
- Truyền thông đồng bộ (Synchronous communication): khi trạm gửi
gửi đi một bản tin thì nó sẽ ở trạng thái khóa (blocked) cho đến khi nhận được thông báo bản tin đó đã đến đích thành công
- Truyền thông dị bộ (Asynchronous communication): khi trạm gửi
gửi đi bản tin, nó sẽ tiếp tục thực hiện công việc của mình Điều này cũng có nghĩa là bản tin đó được lưu lại trên bộ nhớ đệm của trạm gửi hoặc của server cục bộ
Một số loại truyền thông hổ hợp.
Trang 12- Truyền thông dị bộ, kiên trì: bản tin được lưu trữ lâu dài hoặc là ở bộ
nhớ đệm của trạm gửi hoặc là trên server truyền thông đầu tiên mà bảntin đó tới
- Truyền thông đồng bộ, kiên trì: bản tin được lưu trữ lâu dài ở trạm
nhận, trạm gửi sẽ ở trạng thái blocked cho đến khi bản tin được lưu trữ
ở bộ nhớ đệm trạm nhận
- Truyền thông dị bộ, nhất thời: sau khi lưu trữ bản tin cần gửi ra bộ
nhớ đệm của máy mình, trạm gửi sẽ tiếp tục thực hiện công việc của mình Cùng lúc, bản tin sẽ được truyền tới trạm nhận Khi bản tin đến được trạm nhận mà trạm nhận đó lại không làm việc, khi đó quá trình truyền thông bị hủy bỏ
- Truyền thông đồng bộ, nhất thời: bản tin không được lưu trữ lâu dài
Khi gửi đi một bản tin, trạm gửi sẽ chờ bản tin báo đã nhận thành côngcủa trạm nhận gửi về mới thực hiện tiếp công việc của mình
2.4 Truyền thông hướng dòng (stream- oriented communication).
Một số khái niệm cơ bản.
- Medium (số nhiều là media) : chỉ các phương tiện dùng để truyền
thông tin như các thiết bị lưu trữ, đường truyền, các phương tiện hiển thị…
- Continuous media: quan hệ thời gian giữa các mục là yếu tố cơ bản để
thông dịch đúng ngữ nghĩa thực sự của dữ liệu
- Discrete media: quan hệ thời gian không còn là yếu tố cơ bản để thông
dịch đúng dữ liệu
- Data stream: là một chuỗi các đơn vị dữ liệu Với data stream thì thời
gian là yếu tố quyết định Để kiểm soát thời gian người ta đưa ra ba phương thức truyền sau:
- Truyền dị bộ (asynchronous transmission mode): các mục dữ liệu
truyền tuần tự và không có ràng buộc thời gian đối với việc truyền
- Truyến đồng bộ (synchronous transmission mode): quy định trước độ
trễ tối đa cho mỗi đơn vị dữ liệu trong data stream
- Truyền đẳng thời (isochronous transmission mode): quy định độ trễ
lớn nhất và nhỏ nhất cho mỗi đơn vị dữ liệu trong data stream Cách
Trang 13truyền này đóng một vai trò quan trọng trong việc trình diễn audio và video.
- Dòng đơn (simple stream) là dòng chỉ gồm một chuỗi đơn vị dữ liệu.
- Dòng phức (complex stream): bao gồm nhiều chuỗi đơn vị dữ liệu
khác nhau Mỗi chuỗi này được gọi là một dòng con (sub stream)
Đồng bộ các dòng.
- Đồng bộ đơn giản: thực hiện đồng bộ giữa dòng trễ và dòng liên tục
Ví dụ trong việc trình diễn slide có kèm âm thanh Dòng hình ảnh slide
là dòng trễ còn dòng âm thanh là dòng liên tục, phải đồng bộ hai dòng này để thu được kết quả trình diễn như ý muốn
- Đồng bộ phức tap: là việc đồng bộ giữa các dòng dữ liệu liên tục Ví
dụ trong việc xem phim trực tuyến, cả dòng âm thanh và dòng hình ảnh đều là các dòng liên tục cần phải được đồng bộ
Chương 2 : Các hệ phân tán dựa trên Web
1 Giới thiệu
World Wide Web đã thay đổi cách chúng ta làm kinh doanh, học tập vànghiên cứu Web cũng mang lại rất nhiều thách thức, chẳng hạn như nội dunggần như vô hạn, tài nguyên đa dạng, và việc bảo trì và cập nhật nội dung thườngxuyên Việc tạo ra một hệ thống phân tán giúp giải quyết các thách thức trên Ở
đó, các thành phần trong mạng tự động kết nối thông tin liên lạc và có tính nhấtquán với môi trường sử dụng, khả năng chia sẻ tài nguyên, mở rộng mà minhbạch…
Web - Based Database Distributed Systems (WBDB): Kiến trúc hệ phân
tán dựa trên Web được thiết kế dựa trên sự phản ánh, sắp xếp không gian dữ liệu