BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC ĐÀ NẴNG
BAN ĐÀO TẠO SAU ĐẠI HỌC
HỆ TIN HỌC PHÂN TÁN
ĐỀ TÀI: Vấn đề thực hiện từ xa và vai trò của nó
trong các hệ thống hiện đại.
Giảng viên hướng dẫn : PGS.TS Lê Văn Sơn
Sinh viên thực hiện : Nguyễn Hải Minh
Lớp : Khoa học máy tính K24
Đà Nẵng ngày 15 tháng 04 năm 2012
SVTH : NGUYỄN HẢI MINH
MỤC LỤC
Sinh viên thực hiện : Nguyễn Hải Minh 1
SVTH : NGUYỄN HẢI MINH
LỜI MỞ ĐẦU
Trong thời đại ngày nay, chúng ta đang chứng kiến sự phát triển mạnh mẽ
của khoa học kỹ thuật, tiên phong cho sự phát triển này chính là công nghệ thông
tin, đây là yếu tố góp phần quyết định đến sự phát triển của tất cả các lĩnh lực
trong đời sống xã hội.
Sự ra đời của hệ tin học phân tán như là một hệ thống tin học hiện đại được
tích hợp từ những nghiên cứu tiên tiến nhất nhằm hỗ trợ cho việc phân tích và
thiết kế các hệ thống tin học. Đây là lĩnh vực có phạm vi ứng dụng rộng, phát triển
nhanh chóng và đã đạt được những thành tựu lớn.
Hệ tin học phân tán cung cấp khả năng xử lý phân tán nhằm đảm bảo tính
tương thích cho việc phân bố ngày càng rộng rãi của các công ty, xí nghiệp, với độ
tin cậy cao. Chính vì thế, hiện nay nhiều ứng dụng khoa học công nghệ được phân
tán hóa như một hệ quả tất yếu. Chẳng hạn như : giao thương điện tử trên Internet,
các ứng dụng đa phương tiện như việc cung cấp tin tức theo yêu cầu, các kỹ thuật
chẩn đoán hình ảnh trong y khoa hoặc các hệ thống điều khiển sản xuất…
Từ thực tiễn đó, nhằm tổng kết những kiến thức đã đạt được từ môn “Hệ tin
học phân tán” em xin phép được thực hiện tiểu luận môn học với nội dung:
Phần lí thuyết: Vấn đề thực hiện từ xa và vai trò của nó trong các hệ thống hiện
đại.
Phần bài tập: Hãy lập chương trình tạo website giới thiệu và bán các sản phẩm
máy tính bằng ASP. Hãy rút ra kết luận về những khía cạnh phân tán của ASP.
Em xin cảm ơn thầy giáo PGS.TS Lê Văn Sơn đã tận tình hướng dẫn em
hoàn thành bài tiểu luận này. Mặc dù em đã cố gắng hết sức nhưng với thời gian
và kiến thức hữu hạn nên chắc chắn vẫn còn nhiều thiếu sót, rất mong nhận được
sự góp ý chân thành của thầy cùng các bạn.
Đà Nẵng ngày 14 tháng 04 năm 2012
SVTH : NGUYỄN HẢI MINH
SVTH : NGUYỄN HẢI MINH
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
Chương 1: Cơ chế điều khiển việc thực hiện từ xa trong hệ phân tán
Công cụ chính yếu để lập trình và thực hiện các ứng dụng trong hệ tin học
phân tán là các ngôn ngữ lập chương trình được bổ sung thêm một số lệnh, hàm
hay thủ tục chuẩn cho phép người lập trình biên soạn và thực hiện trong môi
trường phân tán. Các ngôn ngữ thuật toán mà ta thường sử dụng để lập chương
trình trong các hệ tập trung không có khả năng đặc biệt này. Các khái niệm mới
như vấn đề trỏ đến các đối tượng xử lý trong các ứng dụng và các biểu thức điều
khiển xác định dãy tạm thời các thao tác sơ đẳng khác nhau.
I.1 Giới thiệu ứng dụng
Một ứng dụng quen thuộc hàng ngày đối với NSD là hệ thống mua bán hàng,
HỆ KINH DOANH TỪ XA (viết tắt là HKDTX). Đối tượng chính của ứng dụng
này là tra cứu giá cả trong các bảng CSDL về giá được lưu trữ tại các thành phố
khác nhau. Bảng giá hàng hoá là một tập hợp với cú pháp:
trong đó, mã hàng hoá là con trỏ tới một loại hàng hoá duy nhất.
Để thực hiện được ứng dụng này, người ta triển khai trên hệ thống thiết bị tin
học không có bộ nhớ chung như hình vẽ
Hình I.1.Cấu trúc ứng dụng
Trên hình vẽ, ta thấy hệ thống bao gồm các trạm phân bố trên một bình diện
rộng bao gồm ba thành phố A, B, C được nối với nhau thông qua mạng viễn
thông. Trong hệ thống ta thấy có hai trạm lưu trữ và một trạm truy vấn. Trạm lưu
trữ không chỉ có khả năng ghi lại các thông tin trong CSDL của mình, mà còn có
SVTH : NGUYỄN HẢI MINH Trang
1
<mã hàng hoá, tên gọi hàng hoá, giá thời điểm tại địa phương>
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
thể truy tìm thông tin cần thiết trong chính các CSDL đó. Trạm truy vấn có khả
năng đặt ra các câu hỏi cho trạm đáp ứng trả lời.
Ta cần xác định hai loại chức năng chủ yếu của ứng dụng là đối thoại và tra
cứu. Tra cứu được tiến hành nhằm mục đích tìm ra thông tin cần tìm với điều kiện
tên gọi của hàng hóa hoặc mã hàng hoá đang tồn tại trong CSDL và bản thân việc
đề nghị là hợp thức về quyền truy cập. Tên gọi của tập tin và mã hàng hóa trong
bảng CSDL là các tham số của thủ tục hay hàm. Đối thoại nhằm xác định tên từ
CONSOLE. Nó thực hiện các hai chức năng tra cứu trong trường hợp có hai
CSDL và hiện lên màn hình.
Nhằm thực hiện chương trình cho việc thực hiện ứng dụng nêu trên, ta cần phải
có các kỹ thuật cho phép xác định:
- Ở thời điểm cho trước, biểu diễn các mối liên hệ lô gích giữa các chức năng
khác nhau của ứng dụng như tình tuần tự, độc lập hoàn toàn, song song với các
điểm kiểm tra,
- Các chức năng được thực hiện nằm trên trạm nào
Và cuối cùng là các đối ứng dụng khác nhau (các hàm, tập tin và các trạm) cần
phải được trỏ tới bởi các biến xuất hiện trong bản thân văn bản các hàm doi_thoai
và truy_van.
I.2 Điều khiển việc thực hiện
Các hoạt động khác nhau của một chương trình cho trước được đảm nhận bởi
một hay nhiều bộ xử lý. Trước khi đi vào đa xử lý thật sự, ta cần xem xét việc thực
hiện một ứng dụng bao gồm nhiều hoạt động song song lô gích và xác định các
lệnh chuyển điều khiển cho phép điều khiển các hoạt động song song đó.
Khi một hoạt động A nào đó nhờ lệnh chuyển điều khiển kích hoạt mới B thì
phải:
SVTH : NGUYỄN HẢI MINH Trang
2
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
- Chính xác hoá định nghĩa của hoạt động B: điều đó cho phép tạo nên trong
chương trình nguồn sẽ thực hiện và trong ngữ cảnh hay ít nhất là một phần trong
ngữ cảnh không được liên kết theo kiểu tĩnh
- Xác định để nó trở thành hoạt động A: điều đó thực tế có thể bị huỷ bỏ, treo
hay tiếp tục thực hiện
- Chỉ ra hoạt động nào B cần phải liên thông các kết quả tính toán. Trên thực tế
B có thể không biết trước được. Ví dục: một thủ tục nào đó gọi thủ tục khác mà nó
không biết một cách tường minh. Như vậy, ta hình thành khi gọi một liên hệ điều
khiển mà liên hệ điều khiển này được sử dụng khi trở về. Các liên hệ điều khiển
được thể hiện bằng các lệnh đặc biệt.
Khi đi tìm hiểu cơ chế điều khiển việc thực hiện thì ta phải dựa trên các liên hệ
hệ điều khiển và các dạng thành có thể của một hoạt động gọi.
I.2.1 Kết nối có kiểm soát
I.2.1.1 Thủ tục
Hình thức phổ biến nhất nhằm vận hành một hoạt động là gọi thủ tục. Ngữ
cảnh của một thủ tục được kết hợp với chính thủ tục đó theo kiểu tĩnh (các đối
tượng cục bộ, toàn cục) và được làm đầy đủ khi gọi bởi các đối tượng có liên hệ
của các hoạt động gọi (các tham số thực tế)
Khi gọi, các hoạt động gọi chuyển sang trạng thái treo và một liên hệ điều
khiển được hình thành sẽ cho phép hoạt động bị gọi tìm hoạt động gọi và kích hoạt
trở lại về sau. Ta hãy lưu tâm đến điều rất quan trọng là ngữ cảnh của hoạt động
gọi được lưu trữ trong suốt quá trình treo.
Nhờ gọi thủ tục mà ta có thể lập trình hoạt động hợp đồng mua bán theo nhiều
kiển khác nhau. Để lập trình các ví dụ, một thủ tục cho kết quả gọi là hàm.
Khi gọi, ta làm đầy theo kiểu động ngữ cảnh của hoạt động gọi bằng cách trao
đổi danh mục mà nó phải làm việc trên đó.
SVTH : NGUYỄN HẢI MINH Trang
3
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
I.2.1.2 Tiếp tục
Khái niệm thủ tục rất gượng ép trong một số trường hợp. Thực tế xuất phát từ
hai vấn đề:
1. Hoạt động có tình chất lô gích hoặc có tính chất hàm, thủ tục là một hộp
đen, thông qua đó ta có thể xác định chính xác các giá trị đầu, các tác động và các
giá trị đầu ra.
2. Mối liên hệ điều khiển tất yếu thuộc loại trở về hoạt động gọi sau khi thực
hiện xong thủ tục. Ta có thể liên hệ khái niệm này với lệnh go to trong một số
ngôn ngữ.
Như vậy, ta có thể định nghĩa hàm là nguyên thủy chuyển điều khiển một cách
tổng quát nhất như sự chuyển tiếp tục.
Chuyển tiếp tục là mối liên hệ điều khiển, thay vì ngầm định như trong trường
hợp gọi thủ tục (trở về chương trình gọi), thì được xây dựng một cách tường minh
trong hoạt động gọi. Do vậy, để cho hoạt động được gọi các mối liên hệ này là các
tham số đặc biệt thuộc kiểu hoạt động và nó có thể được khai thác nhờ vào lệnh
khởi sự.
Sau đây, ta trình bày hai hoạt động gọi và được gọi:
SVTH : NGUYỄN HẢI MINH Trang
4
Hoạt động gọi
Khai báo D: hoạt động
K:
nem_ra M(D, K)
{Tiếp tục của M}
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
I.2.1.3 Nguyên tố so sánh
Sơ đồ mang tính chất thủ tục này thích nghi rất tốt với tình huống là sau các
tính toán trung gian (đó là một thủ tục), ta có thể trở lại trên cùng một ngữ cảnh.
Các tiếp tục đó cho phép xây dựng các sơ đồ thực hiện một cách tổng quát như sơ
đồ không trở lại như sau:
Trong khi đó, nếu ta muốn tìm lại một hoạt động được đặt ở dầu dãy các
nguyên tố của ngữ cảnh khởi động, ta bị buộc phải chuyển ngữ cảnh này thông
qua tất cả các hoạt động trung gian
Có nhiều cấu trúc phân tán áp dụng thành công khái niệm tiếp tục. Thực tế ta
có thể áp dụng cho mỗi một trong các nguyên tố của dãy máy tính thích nghi (ví
dụ các bộ xử lý phối hợp để thực hiện việc tìm kiếm trong các bảng) tính toán
chung của chúng. Thêm vào đó, việc sử dụng khái niệm tiếp tục không chỉ cho
phép thiết lập động các sơ đồ kiểu này mà còn cho phép khái quát hoá các nguyên
tố mang đến các sơ đồ khác nhau.
Việc chuyển ngữ cảnh dọc theo chiều dài của một dãy tiêp tục, lúc này, thể
hiện tính ưu việt trong cung cấp biểu diễn duy nhất tiện lợi (định vị trong một hoạt
động) của các dữ liệu ứng dụng và các liên hệ điều khiển. Đặc điểm nổi bật là khi
SVTH : NGUYỄN HẢI MINH Trang
5
Ghi →truy_van1→truy_van2→tra_loi
Hoạt động được gọi
hoạt dộng M (hoạt động AVC,
tham số X)
<Tính toán trên tham số X>
nem_ra AVC( )
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
xử lý lỗi thông thường liên quan đến việc huỷ bỏ một hoạt động kéo theo việc huỷ
luôn ngữ cảnh một cách dễ dàng.
I.2.2 Song song
Gọi thực hiện mang tính chất thủ tục bằng cách treo hoạt động gọi là nguyên
nhân chủ yếu cho việc cố định số lượng hoạt động đang thực hiện trong một hệ.
Do vậy, một chương trình nào đó không bao giờ chứa các yêu tố song song lớn
hơn số lượng mà bản thân nó có được khi xuất phát.
Ta có thể dễ dàng tránh được hạn chế vừa nêu bằng cách tạo ra khả năng mới.
Đó là một hoạt động không chuyển sang trạng thái treo khi kích hoạt một hoạt
động khác. Như vậy, cần phải tồn tại giữa hoạt động tạo và hoạt động được tạo
một song song. Trong quá trình thực hiện của các hoạt dộng song song, việc đồng
bộ hóa là rất cần thiết bằng cách trao đổi thông tin. Điều này đặc biệt rất đúng, khi
ta kết thúc một hoạt động có khai thác liên hệ điều khiển.
Ví dụ
Nếu hai truy_van không giao nhau, chúng có thể được thực hiện hoàn toàn
theo kiểu song song nhau và lúc này ứng dụng thương mại điện tử được cấu trúc
hóa theo kiểu như hình vẽ
Hình I.2. Ứng dụng truy vấn giá cả theo kiểu song song
SVTH : NGUYỄN HẢI MINH Trang
6
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
Trong đó, lệnh điều khiển đã được đặt trong S thể hiện ý tưởng song song. Nói
một cách tổng quát, ta có thể đánh giá:
1. Hoạt động chính tạo ra hoạt động mới đồng thời tiếp tục thực hiện công
việc của mình.
2. Hoạt động chính được tách ra thành nhiều hoạt động con song song.
Các lệnh điều khiển kết thúc các hoạt động của mình (tại điểm R trong hình vẽ)
là khác nhau theo các liên hệ điều khiển được truyền vào thời điểm khởi sự. Trong
trường hợp 1, hoạt động được tạo nên cần phải đồng bộ với hoạt động chính mà đã
không bị treo. Trong trường hợp 2, các hoạt động con khác nhau cần phải được kết
nối với nhau.
Sau đây, ta chỉ ra một số ví dụ minh họa thể hiện các khả năng có thể của điều
vừa nêu trên.
1. Hoạt động cặp song song
Hình thức sơ khai nhất là fork-join có thể so sánh với lệnh go to trong lập trình
tuần tự. Nó không có sự thiết lập thực sự nào về liên hệ điều khiển. Hoạt động
song song được tạo ra và điểm trở về được đánh dấu bằng nhãn. Ví dụ: để lập
chương trình ứng dụng thương mại, điểm S tương ứng với lệnh kích hoạt fork và
mỗi điểm R là một lệnh join E.
Với các lệnh náy, người ta có thể biểu diễn bằng một đồ thị nào đó mà các nút
của nó là các điểm kích hoạt (đưa ra) và các điểm nối. Một hình thức cặp chặt chẽ
được hình thành theo kiểu parbegin-parend hay par của ALGOL 68. Ứng dụng
thương mại từ xa bây giờ có thể lập trình như sau:
SVTH : NGUYỄN HẢI MINH Trang
7
parbegin
gia1:= truy_van(mahh)
gia2:= truy_van(mahh)
parend
ghiramanhinh(console1, mahh, ten, gia1, gia2)
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
2. Tiếp tục
Việc chuyển với tiếp tục cho ta khả năng về song song bởi vì hoạt động gọi
không bị treo và có thể ném ra rất nhiều hoạt động bằng cách ghi dấu tường minh
cho các liên hệ điều khiển.
Khai thác liên hệ điều khiển được tiến hành bởi các lệnh ném ra các hoạt động
tương ứng xác định bới các tiếp tục
3. Hoạt động song song hình cây
Đương nhiên, ta có thể không cần có sự đồng bộ ở cuối mỗi hoạt động, cũng
chính vì thế mà ta cũng không cần thiết có mối liên hệ điều khiển giữa hoạt động
gọi và hoạt động được gọi. Một chương trình kiểu như vậy có thể được sơ đồ hóa
bằng một hay nhiều đồ thị hình cây mà các nhánh là các hoạt động và các nút là
các “ném ra” song song như hình vẽ sau đây.
Hình I.3. Hình cây song song của các hoạt động
SVTH : NGUYỄN HẢI MINH Trang
8
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
I.2.3 Triển khai các hoạt động trong cấu trúc phân tán
Các cấu trúc điều khiển mà ta vừa mô tả (thủ tục, tiếp tục, cấu trúc song song)
đã được triển khai trên các hệ tập trung.
Đối với các hệ tin học phân tán, các cấu trúc này cần phải là:
1. Các hàm nguyên thuỷ liên lạc
2. Một số lượng nào đó các hoạt động tiền xác định trên mỗi trạm.
Trong thực tế để ném ra một hoạt động từ xa, một mặt, cần phải có thông điệp
mang chỉ dẫn tường minh chương trình cần phải thực hiện và các hàm tham số cần
trao đổi, mặt khác, một thực thể trong trạng thái sẵn sàng nhận trên một trạm xa.
Thực thể đó chính là tiến trình.
Tiến trình theo nghĩa thông thường là thực hiện chương trình trên một trạm xác
định. Ta giả thiết rằng trên mỗi trạm tồn tại một chương trình cung cấp cho phép
chia sẻ một (hay nhiều) bộ xử lý của trạm cho các tiến trình (thông thường số
lượng thay đổi) và các tiến trình của hai trạm ở xa có thể trao đổi thông điệp nhờ
các hàm nguyên thuỷ liên lạc.
Việc khai thác các liên hệ điều khiển thông thường kéo theo việc chờ đợi thông
điệp khi các hoạt động cần phải kết nối với nhau.
I.2.3.1 Quản lý các hoạt động được phát sinh từ xa
Trên mỗi trạm có ít nhất một tiến trình gọi là tiến trình đánh thức đang đợi các
thông điệp. Mỗi một thông điệp đòi hỏi một sự ném ra hoạt động cần phải chứa lai
lịch của chương trình cần thực hiện, các gía trị tham số và tất cả các thông tin cần
thiết cho việc ném hoạt động như lai lịch nguồn trong trường hợp sử dụng liên hệ
điều khiển kiểu trở về, tiếp tục,
Ta cần phân biệt hai chiến lược quản lý các yêu cầu dựa theo số lượng cố định
hay không cố định các tiến trình. Ta gọi server là tiến trình thực hiện việc xử lý
các yêu cầu.
SVTH : NGUYỄN HẢI MINH Trang
9
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
1. Tiến trình tạo ra khi yêu cầu
Để cho mỗi yêu cầu sẽ có một tiến trình server được thành lập và tiến trình này
có nhiệm vụ đáp ứng yêu cầu truy vấn, sau đó tự kết thúc.Mỗi mô hình server
tương ứng với một loạt hoạt động trên trạm. Điều đặc biệt là các server mới mỗi
khi thông điệp được nhận trên mô hình phối hợp với hoạt động được yêu cầu. Do
vậy, trên một trạm xác định, số lượng tiến trình thay đổi biến thiên theo đà của
chương trình đánh thức khởi động các server.
2. Số lượng tiến trình cố định theo kiểu tĩnh
Để tránh trường hợp phải điều khiển một lượng tiến trình biến thiên cần phải
cố định theo kiểu tĩnh số lượng các tiến trình server kết hợp với một loạt hoạ động
cho trước. Lúc này, các tiến trình được lập chương trình theo kiểu vòng lặp để xử
lý các yêu cầu cho mỗi lần lặp. Các thông điệp vẫn ở trạng thái chờ chừng nào
chưa có một server được giải phóng. Mỗi khi chỉ có một server được kết hợp với
một loại hoạt động cho trước thì tiên trình đánh thức thường được đồng nhất với
server chờ thông điệp rồi thực hiện việc xử lý tương ứng trong mỗi vòng lặp.
3. So sánh hai chiến lược
Chiến lược gắn liền với số lượng cố định các tiến trình server có hai đặc điểm
sau đây:
a. Không diễn ra quá trình quản lý động các tiến trình cho một hoạt động cho
trước, bộ nhớ có thể được quản lý tĩnh vì số lượng bảng sao chép của các biến cục
bộ được biết rất rõ.
b. Việc nạp lại vào bộ nhớ bị hạn chế cho số lượng các server kết hợp với mỗi
một loại hoạt động. Trong trường hợp chỉ có một server, không thể diễn ra trường
hợp sau đây: khi một hoạt động A đang trong trạng thái thực hiện thì không có bất
kỳ lời gọi mới nào từ A được tính đến, server chỉ trở thành sẵn sàng khi kết thúc
hoạt động . Thêm vào đó, nếu A ném ra trong khi nó đang thực hiện một hoạt
động khác theo sơ đồ gọi thủ tục thì server này phối hợp với A ở trong trạng thái
SVTH : NGUYỄN HẢI MINH Trang
10
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
thụ động, do vậy không thể sử dụng được. Điều đó tất yếu dẫn đến trạng thái bế
tắc khi gọi chéo nhau.
Trong trường hợp tiến trình được tạo ra theo kiểu động, các đặc tính này được
mô tả như sau:
1. Các thông điệp được tính đến (được tiếp nhận) nhanh nhất có thể (nhưng
không bắt buộc phải thực hiện nhanh nhất) vì nguyên nhân phân luồng các tiến
trình trên các bộ xử lý.
2. Một tiến trình không phải ở lâu trong tình trạng không được sử dụng, khi
mà các thông điệp đến; khi ta có nhìều bộ xử lý, ta có thể thực hiện song song với
các hoạt động khác.
Trong cùng một hệ thống, hai chiến lược nếu trên có thể cùng song song tồn tại
căn cứ trên hoạt động cụ thể. Trong hệ thống định hướng cho việc sử dụng ứng
dụng nêu trên, người ta có thể rút ra một phần của kiến thức hoạt động nhằm phối
hợp tĩnh chỉ với một server với mỗi một hoạt động không gọi các hoạt động khác
(theo kiểu gọi thủ tục). Như vậy, ta đảm bảo được tính ưu việt trong những quản lý
giản đơn và tránh được các rủi ro của ứng dụng cấp thấp và đặc biệt là trạng thái
bế tắc.
I.2.3.2 Hợp tác và liên lạc
Bây giờ, ta đưa ra một số khái niệm tổng quan về biểu diễn có tính chất hình
thức của các hàm nguyên thủy liên lạc trong số ngôn ngữ lập trình cho hệ tin học
phân tán sau đây:
1. Việc đồng bộ giữa các thực thể trao đổi nhau
2. Bản chất của các thông điệp
3. Lai lịch của các đối tượng
4. Các khả năng xử lý lỗi trong khi truyền tin
SVTH : NGUYỄN HẢI MINH Trang
11
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
Một trong các kiểu khái quát hóa thông dụng là sử dụng cú pháp:
để biểu diễn việc chờ đợi một thông điệp do tiến trình phát đi. Nội dung của thông
điệp sẽ được gán cho biến R. Nếu ta không ghi trong phần tham số một X cụ thể
nào thì trường hợp đó được hiểu trạm phát bất kỳ.
Đây là trường hợp tiến trình M gửi thông điệp cho tiến trình X.
I.2.3.2.1 Đồng bộ hoá giữa các thực thể trao đổi
Có ít nhất là hai hàm nguyên thủy cần thiết cho quá trình gửi và nhận một
thông điệp. Để triển khai các hàm này, ta giả thiết rằng có một hộp thư gắn với
mỗi tiến trình mà tại đó các thông điệp được đặt tự động mỗi khi chuyển đến. Tiếp
nhận thông điệp là phép toán tường minh theo đó một tiến trình cụ thể có thể nhận
thông điệp và thực hiện công việc xử lý. Nếu một tiến trình nào đó gắng lấy thông
điệp từ một hộp thư rỗng, thì nó phải chuyển sang trạng thái chờ. Ngược lại với
công việc nhận một thông điệp (thông thường các nhà thiết kế cho vào trạng thái
treo), gửi một thông điệp được thể hiện dưới hai dạng như trong bảng sau:
STT Dạng Giải thích
1 Không treo Tiến trình gửi thông điệp tiếp tục thực hiện các công việc
của nó
2 Treo Tiến trình gửi thông điệp chờ nhận lời khẳng định phía
nhận đang ở trong trạng thái sẵn sàng nhận
I.2.3.2.2 Bản chất các thông điệp
Một thông điệp nào đó sử dụng có hiệu quả trong quá trình xử lý truyền thông
được xem như là dãy các ký tự có cấu trúc thống nhất được trạm nhận cũng có thể
hiểu được
SVTH : NGUYỄN HẢI MINH Trang
12
R:=Cho_thong_diep(X)
Gui_thong_diep(M,X)
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
Xét trên giác độ ngôn ngữ lập trình, việc cải tiến các hàm nguyên thủy chính là
gắn kiểu dữ liệu cho mỗi loại thông điệp, nhờ đó mà ta có thể kiểm tra tính tương
thích giữa thông điệp gửi và thông điệp nhận.
Nhằm đảm bảo một cuộc hội thảo thật gắn bó giữa các tiến trình với nhau, bên
nhận cần phải có khả năng phân loại và lựa chọn giữa các thông điệp gửi đến,
trong hộp thư của mình, các thông điệp cần được xử lý theo đúng từng bước chức
năng riêng biệt của nó.
Ta sẽ thể hiện chờ đợi một thông điệp và khả năng lựa chọn này theo dạng này.
Nếu có một thông điệp nào đó được chuyển đến mà nội dung thuộc về kiểu 1
thì việc xử lý được tiến hành theo xử lý 1. Tương tự như vậy, ta có kiểu 2, kiểu
3, , kiểu n.
Các dạng hàm nguyên thủy liên lạc và các khả năng của chúng sẽ thay đổi dựa
vào việc xác định chính xác hay không lai lich của đối tác
Ở đây, ta sẽ giới thiệu các hình thức phổ biến nhất dựa vào sự minh họa trong
ứng dụng thương mại điện tử. Ta sẽ tìm cách biểu diễn tiến trình truy_van1, thuộc
loại server, trong điều kiện có hai tiến trình có nhu cầu thông tin về giá cả là
phong_van1 và phong_van2.
SVTH : NGUYỄN HẢI MINH Trang
13
Lựa chọn
Kiểu1: V1:=cho_thong_diep
Xử lý 1
Hoặc
Kiểu2: V2:=cho_thong_diep
Xử lý 2
Hoặc
Hoặc
Kiểun: Vn:=cho_thong_diep
Xử lý n
Kết thúc lựa chọn
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
1. Ta có thể giả định là lai lịch của đối tác được ghi nhận theo kiểu tĩnh ở trong
hàm nguyên thủy liên lạc.
Kiểu biểu thức này thường áp dụng trong hệ CSP cho phép kiểm tra sự tồn tại
của đối tác khi dịch hay liên kết (nếu các tiến trình được chuẩn bị theo kiểu độc
lập nhau). Ngược lại, viết một vài thuật toán thường gặp (như tiến trình đánh thức
chẳng hạn) rất nặng nề bởi vì khi đó tiến trình truy_van1 cần phải thực hiện công
việc lựa chọn trên mã hàng hoá của đối tác của mình. Ngoài ra, nó còn phải biết tất
cả các đối tác gửi thông điệp đến cho nó.
2. Để giải bài toán vừa nêu, ta cần phải xây dựng hàm nguyên thủy tiếp nhận
khác mà không cần lai lịch của người phát.
3. Khi ta sử dụng loại hàm nguyên thủy như vậy thì cũng cần phải biết lai lịch
của tiến trình gửi để cho trường hợp cần thiết có thể liên lạc được với nhau. Một
biện pháp tổng quát là hàm nguyên thủy nhận cần phát sinh tên của tiến trình đã
phát thông điệp. Tên này có thể được sử dụng cho việc truyền sau này.
Sự mở rộng của phương pháp kỹ thuật này thường được sử dụng trong thiết kế
thủ tục hay rẽ nhánh song song. Lúc này một số hàm nguyên thủy liên lạc cần phải
được xác định. Hàm nguyên thủy gửi thông điệp cho giá trị lai lịch của hội thoại
đặc biệt. Giá trị này cho phép phối hợp với trả lời cho yêu cầu tương ứng. Điều đó
tạo thuận lợi cho trường hợp có nhiều thông điệp khác nhau được gửi đến cùng
một nơi nhận.
Trong trường hợp gọi thủ tục, ta có thể sử dụng hàm nguyên thủy đặc biệt
nhằm thực hiện gửi và chờ thông điệp.
I.2.3.2.3 Lai lịch của đối tác
Các dạng hàm nguyên thuỷ liên lạc và các khả năng của chúng sẽ thay đổi dựa
vào việc xác định chính xác hay không lai lịch của đối tác. Các hình thức phổ biến
nhất dựa vào sự minh họa trong ứng dụng thương mại điện tử.
SVTH : NGUYỄN HẢI MINH Trang
14
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
1. Ta có thể giả định là lai lịch của đối tác được ghi nhận theo kiểu tĩnh ở
trong hàm nguyên thuỷ liên lạc
2. Xây dựng hàm nguyên thủy tiếp nhận khác mà không cần lại lịch của người
phát.
3. Khi ta sử dụng loại hàm nguyên thuỷ như vậy thì cũng cần phải biết lai lịch
của tiến trình để cho trường hợp cần thiết có thể liên lạc được với nhau. Một biện
pháp tổng quát là hàm nguyên thủy nhận cần phái sinh tên của tên trình đã phát
thông điệp. Tên này có thể được sử dụng cho việc truyền sau này.
Sự mở rộng của phương pháp kỹ thuật này thường được sử dụng trong thiết kế
thủ tục hay rẽ nhánh song song. Lúc này một số hàm nguyên thuỷ liên lạc cần phải
được xác định. Hàm nguyên thuỷ gửi thông điệp cho giá trị là lai lịch của hội thoại
đặc biệt. Giá trị này cho phép phối hợp với trả lời cho yêu cầu tương ứng. Điều đó
tạo thuận lợi cho trường hợp có nhiều thông điệp khác nhau được gửi đến cùng
một nơi nhận.
Trong trường hợp gọi thủ tục, ta có thể sử dụng hàm nguyên thủy đặc biệt
nhằm thực hiện gửi và chờ thông điệp.
I.2.3.2.4 Khả năng có lỗi trong quá trình liên lạc
Lỗi trong quá trình truyền thông tin có thể xử lý theo hai cách
STT Tên gọi Thuyết minh
1 Ẩn NSD không hề biết các lỗi phát sinh trong quá trình khai
thác. Các lỗi này thường được khắc phục ở mức trong
2 Điều khiển
tường minh
Các lỗi được điều khiển tường minh bời người lập trình.
Trong trường hợp này các tham số của chương trình. Trong
trường hợp này các tham số của chương trình (hàm nguyên
thủy) cần phải chỉ ra lỗi, thời hạn cần thiết cho việc khắc
phục và tên thủ tục bị lỗi khi gọi
I.3 Liên kết động và thành lập chuỗi các truy cập.
SVTH : NGUYỄN HẢI MINH Trang
15
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
I.3.1 Liên kết
I.3.1.1 Định nghĩa
Tuyệt đại bộ phận các chương trình trong đó có các chương trình nguồn
thường có các định danh thể hiện dưới dạng một dãy các ký tự đặc trưng duy nhất
cho đối tượng. Trong khi thực hiện chương trình, các định danh này cần phải gắn
chặt với các đối tượng thực để trỏ chính xác vị trí của chúng. Trong từng thời
điểm, cặp <định danh, đối tượng trỏ> tạo thành ngữ cảnh thực hiện. Mối quan hệ
giữa đối tượng cần trỏ đến và định danh của nó gọi là liên kết.
Liên kết hướng ta đến việc thành lập một chuỗi các truy cập đến đối tượng và
nó cần phải thực hiện muộn hơn thời điểm thực hiện một lệnh truy cập đối tượng.
Thực hiện theo kiểu như vậy tốn nhiều thời gian, cho nên trong một số trường hợp,
người ta có thể thực hiện trước.
I.3.1.2 Liên kết động
Khi triển khai cơ chế liên kết động, ta gặp hai vấn đề cơ bản sau đây:
1. Xuất phát từ định danh cần phải tìm đối tượng
2. Hình thành dãy truy cập đến đối tượng
I.3.2 Cấu trúc và phiên dịch con trỏ
Để trình bày một cách chi tiết các đặc trưng cho một con trỏ nào đó, người ta
thường chỉ ra các đặc tính của nó. Các đặc tính đó được phản ánh như sau:
STT Đặc tính
1 Sự vận động hay miền tác dụng của con trỏ
Một con trỏ gọi là toàn cụ khi có cùng định danh không phụ thuộc vào môi
trường sử dụng của nó.
2 Sự phụ thuộc rõ rệt của con trỏ vào sự định vị đối tượng
Sự định danh có thể tường minh và trong trường hợp đó, thông thường,
con trỏ chứa một phần đặc trưng cho trạm và một phần khác riêng cho bản
thân nó
I.3.3 Thành lập dãy truy cập
SVTH : NGUYỄN HẢI MINH Trang
16
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
Để thực hiện các truy cập từ xa cần phải thực hiện liên thông các tiến trình đã
được đưa vào trên các trạm khác nhau. Sự liên thông đó tất yếu dựa trên cơ sở trao
đổi các thông điệp với nhau. Một thông điệp bất kỳ luôn luôn chứa các thông tin
cần thiết cho việc định danh các tiến trình phát và thu.
Thông thường, việc trao đổi giữa hai tiến trình ở xa diễn ra (ít nhất vì lý do cần
thông tin) thông qua các đối tượng trung gian. Các đối tượng trung gian này gọi là
windows, các cửa sổ. Hai tiến trình ở xa nhau có thể hiểu lai lịch riêng tương ứng
của các cửa sổ của chúng với mục đích cho phép nhập cuộc vào liên kết trao đổi.
Để giải quyết vấn đề này, ta cần phải định nghĩa các lớp tiến trình căn cứ vào chức
năng phục vụ mà chúng đảm nhận vào ứng dụng gắn bó chúng lại với nhau, nghĩa
là phải phối hợp tiến trình với windows.
Trong hệ phân tán không có bộ nhớ chung. Tất cả các truy cập từ xa đều được
thực hiện bằng liên lạc giữa các tiến trình. Để cho các trao đổi, các bộ định danh
của các cửa sổ và mỗi trạm có thể sử dụng các quy tắc riêng của mình trong việc
định danh
Trong hệ thống như vậy, người ta có thể xây dựng các ứng dụng có sử dụng
các hệ riêng của mình để định danh tổng quát cho các đối tượng khác nữa (ngoài
các tiến trình).
I.4 Kết luận
Qua những nội dung tìm hiểu được trong chương I, bước đầu giúp chúng ta
hiểu được phần nào cơ chế cơ bản nhất trong điều khiển việc thực hiện từ xa trong
hệ phân tán. Ngoài ra, nó còn giúp hiểu được khái niệm cơ bản cũng như một cái
nhìn khái quát về cấu trúc và ứng dụng của hệ phân tán , từ đó có cái nhìn tổng
quan hơn khi thiết kế các ứng dụng phục vụ cho cuộc sống.
SVTH : NGUYỄN HẢI MINH Trang
17
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
Chương II: Phần bài tập
II.1 Yêu cầu bài tập
Hãy lập chương trình tạo website giới thiệu và bán các sản phẩm máy tính
bằng ASP. Hãy rút ra kết luận về những khía cạnh phân tán của ASP.
II.2 Kết quả Demo chương trình
1. Trang Chủ:
2. Trang giới thiệu
SVTH : NGUYỄN HẢI MINH Trang
18
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
3. Trang tin tức
4. Trang baó gía
SVTH : NGUYỄN HẢI MINH Trang
19
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
5. Trang bảo hành
6. Trang liên hệ
SVTH : NGUYỄN HẢI MINH Trang
20
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
II.3 Kết luận về những khía cạnh phân tán của ASP
Khi bạn xem một trang web trên một site, thực ra bạn đang sử dụng một hệ
thống phân tán có chứa site đó. Khi bạn duyệt web, trình duyệt của bạn chạy trên
máy tính của bạn giao tiếp với những máy chủ web khác nhau và cung cấp cho
bạn các trang web mà bạn yêu cầu.
Rất có thể trình duyệt của bạn dùng qua một máy chủ proxy để truy cập đến
nội dung các trang web chứa trên máy chủ web nhanh chóng và an toàn hơn.
Để có thể xác định những máy chủ này, trình duyệt phải dùng hệ thống tên
miền phân tán DNS. Trình duyệt có thể truy cập tới tất cả những máy chủ này trên
Internet thông qua hệ thống các router mà chính bản thân chúng cũng tạo nên một
hệ thống phân tán khổng lồ.
SVTH : NGUYỄN HẢI MINH Trang
21
TIỂU LUẬN-HỆ TIN HỌC PHÂN TÁN GVHD : PGS.TS LÊ VĂN SƠN
Nhằm bảo đảm việc liên lạc gắn bó giữa các tiến trình với nhau, bên nhận cần
phải có khả năng phân loại các thông điệp và có xử lý tương ứng:
1. Trao đổi giữa hai tiến trình
2. Trao đổi của n tiến trình (n>2)
III.1 Trường hợp trao đổi giữa hai tiến trình
Không mất tính tổng quát, ta giả sử tiến trình 1 là server, còn tiến trình 2 là
tiến trình yêu cầu,
Ta có sơ đồ như sau:
Trong trường hợp chỉ có hai tiến trình thì không cần phải kiểm tra định danh
của tiến trình gửi mà chỉ xác định loại yêu cầu. Như vậy, khi bên tiến trình 1
(server) nhận được yêu cầu, nó phải có một hàm cơ sở (nguyên thủy) để xác định
loại yêu cầu sau đó gửi trả lại kết quả cho tiến trình 2 (tiến trình yêu cầu)
Như vậy ta cần xây dựng lại ba hàm nguyên thuỷ như sau:
Hàm Cho_thong_diep là hàm chờ thông điệp của tiến trình kia
Hàm Gui_thong_diep(X) là hàm gửi yêu cầu X cho tiến trình còn lại
Có 2 cơ chế hoạt động sau đây:
III.1.1 Cơ chế 1
Khi 1 tiến trình gửi thông điệp cho tiến trình kia và tiếp tục thực hiện công việc
của nó và cũng không quan tâm đến sự phúc đáp của tiến trình nhận.
SVTH : NGUYỄN HẢI MINH Trang
22
Tiến trình 1
(server)
Tiến trình 2
(client)
Gui_thong_diep(Yều cầu)
Kết quả = Cho_thong_diep
Yêu cầu = Cho_thong_diep
; xác định loại yêu cầu
; Tìm kết quả
Gui_thong_diep(kết quả)