Transcript Bai 1(LTPT)

CHƯƠNG 1
TỔNG QUAN
LẬP TRÌNH PHÂN TÁN
Nội dung
Khái niệm lập trình phân tán
 Khái niệm hệ phân tán
 Các mô hình ứng dụng
 Lợi ích của các ứng dụng phân tán
 Giới thiệu một số ngôn ngữ lập trình phân
tán
 Bài tập và thực hành

1. Khái niệm lập trình phân tán
Lập trình phân tán là lập trình trên các hệ
thống phân tán
 Lập trình CSDL phân tán
 Lập trình Client-server
 Lập trình Peer to peer

2. Khái niệm hệ phân tán

Theo Andrew S.Tanenbaum:
◦ Hệ phân tán là một tổ hợp các máy tính độc
lập mà đối với người dùng nó có vẻ như một
hệ thống đơn nhất quán.
◦ => không tồn tại một hệ thống lý tưởng như
vậy trong thực tế.

Định nghĩa “yếu hơn” về hệ phân tán:
◦ Hệ phân tán là một tổ hợp các máy tính độc
lập được sử dụng kết hợp để thực hiện một tác
vụ hoặc để cung cấp một dịch vụ.
Ví dụ về hệ phân tán
VD1: World-Wide-Web - tổ hợp các Web
server – các máy cài giao thức HTTP,
FTP,… đang cùng nhau cung cấp cơ sở dữ
liệu phân tán gồm các tài liệu siêu văn bản
và tài liệu đa phương tiện.
 VD2: Các máy tính của một mạng LAN
cung cấp một hình ảnh đồng nhất về một
hệ thống tệp phân tán.
 Tap hop cac may tinh trong mang internet
co chay dich vu ten mien DNS

Kiến trúc hệ phân tán
Client – server
 Peer – to – peer (P2P)

3. Các mô hình ứng dụng
Hệ tính toán phân tán
 Hệ thông tin phân tán
 Hệ thông tin di động

a. Hệ tính toán phân tán

Nhiều hệ thống phân tán được cấu hình
cho tính toán hiệu năng cao:
◦ Cluster Computing: trong LAN, dùng để chạy
các thuật toán song song
◦ Grid Computing: trong WAN, tổ chức ảo
b. Hệ thông tin phân tán


VD: Các hệ giao tác (transaction)
Các hệ này phải thỏa mãn các tính chất sau
(ACID):
◦ Atomicity (tính nguyên tử): trạng thái của đối
tượng không bị ảnh hưởng bởi thao tác thành
công hay thất bại.
◦ Consistency (tính nhất quán): một giao tác phải là
hợp lệ.
◦ Isolation (tính cô lập): các giao tác tương tranh
không dính líu tới nhau.
◦ Durability (tính bền vững): giao tác được đảm bảo
cho dù hệ thống có gặp sự cố.
c. Hệ thông tin di động

Gồm các thiết bị tính toán nhúng và di
động. Trong đó, tính không bền vững là
mặc định, cấu tạo ad-hoc (mỗi nút phải
đơn giản và dễ cấu hình)
4. Lợi ích của các ứng dụng phân tán
Cho phép truy nhập tài nguyên
 Tính trong suốt
 Khả năng mở rộng
 Đảm bảo độ tin cậy và nhất quán
 Hiệu năng
 Tính mềm dẻo
(Tham khảo file CSDL_2/trg 5, 6)

5.Giới thiệu một số ngôn ngữ lập trình
phân tán
Lập trình phân tán với COM+/MTS
 Lập trình phân tán đối tượng với RMI
 Lập trình phân tán đối tượng với Corba
 Lập trình phân tán REMOTING trong
.NET
 Lập trình phân tán với Web Service

a. Lập trình với COM+/MTS
COM (Component Object Model) là một
cách thức để viết các thành phần phần mềm
(software componet) cung cấp các chức năng
phục vụ cho các ứng dụng, các thành phần
khác.
 Viết một thành phần COM cũng như viết một
hàm API động, hướng đối tượng. Các thành
phần COM có thể được nối kết với các ứng
dụng cũng như các thành phần COM khác.
 Thành phần COM là những đoạn mã hiện
thực các hàm, các chức năng được chứa
trong file .DLL hoặc .EXE.

Lập trình với COM+/MTS

Thành phần COM cần phải thỏa mãn được những
“chuẩn” của COM. Các thành phần COM có thể
được liên kết động. Các thành phần COM có thể
được “bao gói” lại vì nó thỏa mãn các ràng buộc:
 Thành phần COM hoàn toàn độc lập với ngôn ngữ
hiện thực nó. được thực hiện bằng nhiều ngôn ngữ
như Visual C++, Visual Basic, Java …..
 Thành phần COM được sử dụng dưới dạng mã nhị
phân.
 Thành phần COM có thể dễ ràng nâng cấp
 Thành phần COM trong suốt về vị trí.
Lập trình với COM+/MTS
Tầng trung gian của các ứng dụng thường là các thành
phần COM được viết bằng các ngôn ngữ lập trình hỗ
trợ giao thức COM (như Visual Basic, Visual C++,...)
và được quản lý bởi Micrsoft Transaction Server
(MTS).
 Khi tầng trung gian là các thành phần COM và được
quản lý bởi MTS thì chúng được gọi là COM+/MTS.
 COM+/MTS có nhiệm vụ quản lý tất cả các
component, điều khiển, giám sát mọi tác vụ như: tạo
mới một thành phần, quản lý các hàng đợi, giao dịch...
COM+/MTS luôn lắng nghe các kết nối từ máy
khách, khi các yêu cầu chấm dứt (không còn sử dụng
đến nữa) thì nó giải phóng tài nguyên và kết nối đó.

Lập trình với RMI
RMI (Remote Method Invocation) là một công nghệ phân tán
cho phép các phương thức trên các máy ảo Java được gọi từ
xa.
 Là cách đơn giản để truyền tin giữa một ứng dụng này với
ứng dụng khác so với truyền tin trực tiếp dùng TCP socket
(cách truyền tin này đòi hỏi cả hai phía đều sử dụng cùng một
giao thức).
 Thay vì viết các chương trình cài đặt giao thức, những người
phát triển có thể tương tác với các phương thức đối tượng
được định nghĩa bởi một giao tiếp dịch vụ RMI.
 Mỗi khi có được một tham chiếu tới đối tượng từ xa, tham
chiếu này có thể được xem như là một đối tượng cục bộ, đây
là cách trực quan để phát triển các ứng dụng mạng.

Lập trình với CORBA
CORBA (Common Object Request Broker Architecture) định
nghĩa nhiều dịch vụ, một trong những dịch vụ đó thực hiện
chức năng tương tự như RMI
 CORBA họat động với nhiều ngôn ngữ lập trình khác nhau
 CORBA được định nghĩa bởi một liên kết bao gồm 800 công
ty thành viên, được gọi là Nhóm Quản Lý Đối Tượng (Object
Management Group - OMG)
 CORBA định nghĩa 2 thành phần:

 Một thực thể cho phép liên lạc giữa 2 tiến trình (hay còn gọi là 1
môi giới yêu cầu đối tượng (Object Request Broker - ORB))
 Một giao thức được ORB dùng để liên lạc giữa nhiều tiến trình,
được gọi là IIOP (Internet Interoperability Protocol)
Sự khác nhau giữa RMI và CORBA




RMI là một phần của bộ J2SDK và là các hàm thư viện hỗ trợ các
lời gọi phương thức từ xa và trả về giá trị cho các ứng dụng tính
toán phân tán.
CORBA là một chuẩn công nghiệp cho phép gọi các phương thức
từ xa và nhận kết quả trả về, nhưng không giống như RMI, nó có
thể được sử dụng khi bên phía gọi và bên phía phương thức được
gọi có thể sử dụng các ngôn ngữ lập trình khác nhau.
RMI là một tập các hàm thư viện đơn giản vì cả 2 bên đều sử dụng
cùng môt ngôn ngữ lập trình và kiến trúc máy. Điều này sẽ làm cho
việc gọi phương thức từ xa dễ giải quyết hơn.
Bộ phát triển J2SDK cũng hỗ trợ RMI-CORBA, cho phép một đối
tượng Java gọi một đối tượng CORBA sử dụng hai cách tiếp cận
khác nhau.
.NET Remoting



NET Remoting là một kĩ thuật .NET được
giới thiệu từ .NET framework 1.1. Cùng với
.NET Webservice, .NET remoting là lựa
chọn cho giải pháp xử lý tính toán từ xa.
.NET Remoting là một kĩ thuật cho phép một
đối tượng này truy xuất đến một đối tượng
khác.
Có thể sử dụng .NET Remoting để gọi một
chương trình hoặc một service chạy trên một
máy tính khác để xử lý một vấn đề và trả lại
kết quả tính toán.
Khác biệt giữa .NET Remoting và
COM
Việc giao tiếp giữa các tiến trình thường được thực hiện bằng
cách sử dụng Distributed COM hay còn gọi là DCOM.
 DCOM đã rất hữu ích cho những chương trình chạy trên các
máy tính cùng loại và nằm trong cùng một mạng. Tuy nhiên,
DCOM trở nên lỗi thời vì nó không thể chạy trên Internet.
 DCOM dựa trên một tập giao thức mà không phải đối tượng
nào cũng hỗ trợ và điều này khiến DCOM không chạy được
trên những platform khác nhau. Ngoài ra, DCOM sử dụng
nhiều port trong khi các port ấy thường bị chặn bởi firewall.
(Tất nhiên mở những port đó để nó hoạt động được không
khó nhưng đó là một trong những phiền phức).
 .NET Remoting khắc phục những yếu kém của DCOM bằng
cách hỗ trợ nhiều giao thức khác nhau.

Web Service



Web Serivce là một công nghệ cho phép
client truy xuất để thực hiện mọi tác vụ như
một Web Application.
Về bản chất, Web service dựa trên XML và
HTTP, trong đó XML làm nhiệm vụ mã hóa
và giải mã dữ liệu và dùng SOAP để truyền
tải.
Web Service không phụ thuộc vào platform
nào, do đó có thể dùng Web Service để
truyền tải dữ liệu giữa các ứng dụng hay giữa
các platform.
Khác biệt giữa Web Services và
.NET Remoting





Về khía cạnh xử lý từ xa thì Web Services hoàn toàn tương tự như .NET
Remoting.
ASP.NET Web Services chỉ có thể được truy xuất qua HTTP còn .NET
Remoting có thể được dùng trên nhiều giao thức khác nhau như TCP,
HTTP.
Web Services là một môi trường stateless. Khi có một request từ phía
client, sẽ có một object mới được tạo ra để thực hiện request đó trên server.
Còn .NET Remoting lại hỗ trợ nhiều lựa chọn state management và có thể
thực hiện nhiều request từ một client, đồng thời có hỗ trợ callbacks.
Web Services serialize các đối tượng thành XML bên trong SOAP message
và vì thế có thể truyền tải thông tin của bất cứ thành phần nào miễn có thể
chuyển thành XML. Còn đối với .NET Remoting thì tùy giao thức và định
dạng message mà nó có thể truyền đi thông tin như thế nào..NET Remoting
cho phép đối tượng được truyền vào theo cả kiểu tham chiếu(reference) và
tham trị (value).
Web services có thể hoạt động trên các platform môi trường khác nhau
trong khi .NET Remoting yêu cầu phía clients phải là .NET application.
Bài tập và thực hành

Cài đặt Oracle (bản Express)
CHƯƠNG 2: CƠ SỞ DỮ LIỆU PHÂN TÁN
(10 tiết)
2.1. Định nghĩa CSDL phân tán
2.2. Các đặc điểm chính của cơ sở dữ liệu phân tán
2.3. Mục đích của việc sử dụng cơ sở dữ liệu phân tán
2.4. Kiến trúc cơ bản của CSDL phân tán
2.5. Hệ quản trị CSDL phân tán
2.6. Hệ quản trị cơ sở dữ liệu Oracle
2.6.1. Cài đặt Oracle
2.6.2. Hiển thị dữ liệu
2.6.3. Cập nhật dữ liệu
2.6.4. Xóa, sửa dữ liệu
Bài tập và thực hành
DOC 1.1.3 VA 4.25 TRONG FLIE hdsd
2.1. Định nghĩa CSDL phân tán
Một CSDL phân tán là một tập hợp nhiều CSDL có
quan hệ với nhau về mặt logi và được phân bố trên
một mạng máy tính
 Tính chất phân tán: Toàn bộ dữ liệu của CSDL phân
tán không được cư trú ở một nơi mà cư trú ra trên
nhiều trạm thuộc mạng máy tính
 Tương quan logic: Toàn bộ dữ liệu của CSDL phân
tán có một số các thuộc tính ràng buộc chúng với
nhau

2.2. Các đặc điểm của cơ sở dữ liệu phân tán
a. Chia sẻ tài nguyên:
 Được thực hiện thông qua mạng truyền thông, mỗi tài
nguyên cần được quản lý bởi một chương trình có giao
diện truyền thông, có khả năng truy cập, cập nhật tin cậy
b. Tính mở:
 Tính mở của hệ phân tán được xem như là mức độ bổ
sung các dịch vụ dùng chung tài nguyên mà không phá
hỏng hay nhân đôi các dịch vụ đang tồn tại, nó được
hoàn thiện bằng cách xác định hay phân định rõ các giao
diện chính của một hệ.
2.2. Các đặc điểm của cơ sở dữ liệu phân tán
c. Khả năng song song:
 Hệ phân tán hoạt động trên mạng truyền thông có
nhiều máy tính, mỗi máy có thể có 1 hay nhiều CPU.
Tại một thời điểm nếu có N tiến trình cùng tồn tại, ta
nói chúng thực hiện đồng thời. Việc thực hiện tiến
trình theo cơ chế phân chia thời gian (một CPU) hay
song song (nhiều CPU)
d. Khả năng mở rộng
 Khả năng mở rộng được đặc trưng bởi tính không
thay đổi phần mềm hệ thống và phần mềm ứng dụng
khi hệ được mở rộng. Điều này chỉ đạt được mức độ
nào đó với hệ phân tán hiện tại. Yêu cầu mở rộng
không chỉ là sự mở rộng về