SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
2/15/2011
1
Phát triển phần mềm phân tán
GV. TS. Vũ Thị Hương Giang
Viện CNTT&TT
CHƯƠNG I.
KHÁI NIỆM CHUNG
1. Tổng quan về hệ phân tán, ứng dụng phân tán và phần
mềm phân tán
2. Phát triển phần mềm phân tán : mục đích, cách tiếp
cận và các vấn đề cần giải quyết
3. Vai trò của phần dẻo, truyền thông và hệ điều hành
cũng như các dịch vụ hỗ trợ khác trong quá trình phát
triển phần mềm phân tán, ví dụ minh họa
2/15/2011
2
1. HỆ PHÂN TÁN, ỨNG DỤNG
PHÂN TÁN VÀ PHẦN MỀM
PHÂN TÁN
I.1. Hệ phân tán (distributed system)
[Tanenbaum]:
“A collection of independent computers that
appears to its users as a single coherent system.”
3 đặc tính chính:
Tính tự trị (autonomous) của máy tính
Phần mềm chỉ cho người dùng thấy một hệ thống duy
nhất
Dễ dàng mở rộng hệ thống mà không cần báo trước
cho người dùng
2/15/2011
3
I.2. Tính toán phân tán
(distributed computing)
• [Webopedia] :
“A type of computing in which
different components and
objects comprising an
application can be located on
different computers
connected to a network.”
• [Wikipedia] :
“Decentralized and parallel
computing, using two or more
computers communicating
over a network to accomplish
a common objective or task.”
I.3. Khác biệt giữa hệ thống (system), phần
mềm (software) và ứng dụng (application)
• Hệ thống:
– Quản lý tài nguyên chung, cơ sở hạ tầng, cung cấp các chức năng quản lý chung
qua các giao diện có mức độ trừu tượng cao
– Gắn liền với các thiệt bị liên quan, che giấu sự phức tạp và việc trao đổi thông tin
giữa các thiết bị này
– Ví dụ: hệ điều hành, hệ thống truyền thông
• Phần mềm
– Chương trình máy tính + tài liệu liên quan (thường tham chiếu đến khái niệm dữ
liệu của máy tính)
– Không nhất thiết phải ở trạng thái thực thi (executable) hay gắn liền với một hệ
điều hành cụ thể
– Không nhất thiết phải tương tác với người dùng trong quá trình họat động
• Ứng dụng
– Một kiểu phần mềm đặc biệt, nhằm mục đích thực hiện một nhiệm vụ nhất định
– Chỉ thực thi được trên hệ điều hành cụ thể
– Cần có sự tương tác với người dùng trong quá trình họat động
2/15/2011
4
I.4. Phần mềm / ứng dụng phân tán
(distributed software / application)
Ví dụ về phần mềm / ứng dụng phân tán ?
Các đặc tính khác
Khả năng mở rộng phạm vi
(scalability) ?
Tính trong suốt
(transparency) ?
Tương tác với người dùng?
Tập các thành phần phần mềm/ tiến trình
trong 1 mạng máy tính, cùng hoạt động
nhằm phục vụ mục đích nhất định
Phân tán trong phạm vi nào ?
Ví dụ: thương mại điện tử
(eCommerce)
• Có phải là HPT hay không? Tại sao?
– Các thành phần phân tán?
– Kiểu tương tác giữa các thành phần này?
LAN
DB client
DB server
internet
app server
app client (UI)
http
2/15/2011
5
Ví dụ: timesharing
• Có phải là HPT hay không? Tại sao?
– Các thành phần phân tán?
– Kiểu tương tác?
dumb terminals
mainframe
keystrokes
over wire
Ví dụ: parallel computing
• Có phải là HPT hay không? Tại sao?
– Các thành phần phân tán?
– Kiểu tương tác?
dumb terminals
mainframe
multiprocessor
keystrokes
over wireMột số ứng dụng nổi bật ?
2/15/2011
6
II. PHÁT TRIỂN PHẦN
MỀM PHÂN TÁN
Online bookstore (e.g. in the World Wide Web)
Customers can connect their computer to your computer (web
server):
 Browse your inventory
 Place orders
 …
Ví dụ: ứng dụng nhà sách trực tuyến
Quy trình nghiệp vụ
2/15/2011
7
What if
Your customer uses a completely different hardware? (PC,
MAC,…)
… a different operating system? (Windows, Unix,…)
… a different way of representing data? (ASCII,
EBCDIC,…)
Or
You want to move your business and computers to the
Caribbean (because of the weather)?
Your client moves to the Caribbean (more likely)?
Ví dụ: ứng dụng nhà sách trực tuyến
Thách thức
What if
Someone tries to break into your system to steal data?
… sniffs for information?
… your customer orders something and doesn’t accept the
delivery saying he didn’t?
Or
You are so successful that millions of people are visiting your
online store at the same time?
Ví dụ: ứng dụng nhà sách trực tuyến
Thách thức
2/15/2011
8
When building the system…
Do you want to write the whole software on your own (network,
database,…)?
What about updates, new technologies?
Ví dụ: ứng dụng nhà sách trực tuyến
Thách thức
What if
Two customers want to order the same item at the same time?
Or
The database with your inventory information crashes?
Your customers computer crashes in the middle of an order?
Ví dụ: ứng dụng nhà sách trực tuyến
Thách thức
2/15/2011
9
Heterogeneity
Các thành phần không thuần nhất phải có khả năng tương thao tác với
nhau
Distribution transparency
Giấu người dùng sự phân tán nhiều nhất có thể
Fault tolerance
Việc một thành phần trong hệ thống bị hỏng không làm hỏng cả hệ thống
Scalability
Hệ thống có khả năng hoạt động hiệu quả khi số lượng người dùng tăng
lên
Hiệu năng của hệ thống tăng lên khi bổ sung thêm tài nguyên
Concurrency
Có khả năng cùng truy cập vào tài nguyên và chia sẻ tài nguyên
Openness
Giao diện công khai, sẵn dùng và dễ dàng thêm các thành phần mới vào hệ
thống
Security
Hệ thống chỉ có thể được sử dụng theo cách định sẵn
II.1. Thách thức
II.2. Mục đích
• Kết nối người dùng và các tài nguyên trong hệ thống
– Kinh tế: mua 1 máy in
– Cộng tác: chia sẻ tài nguyên
– Cần đảm bảo an toàn (security)
• Che giấu sự phân tán (Transparency)
– Các khía cạnh cần quan tâm?
• Tính mở (Openness)
– Khả năng tương thao tác (Interoperability)
– Khả chuyển (Portability)
– Khả năng co dãn (Extensibility)
– Phân biệt giữa chính sách và kỹ thuật
• Khả năng thay đổi phạm vi (Scalability)
• Nâng cao tính sẵn dùng (Availability)
2/15/2011
10
II.3. Cách tiếp cận
• Tận dụng thế mạnh sẵn có của hệ phân tán
• Độ trễ trong quá trình truyền thông
• Tích phối (coordination)
– Chia sẻ tài nguyên và loại trừ lẫn
nhau
– Thứ tự thực hiện, deadlock, live-lock
– Thời gian thực hiện
• Thích nghi với các thay đổi
– Hỏng (failures), lỗi phần mềm (soft
faults), tối ưu
– Tìm kiếm và cấu hình các dịch vụ
– Sự không thuần nhất và các phần
mềm của bên thứ ba
– Mở rộng phạm vi và tiến hóa
• Tính an toàn an ninh và tính riêng
tư
– Tin tưởng vào thiết bị, phần mềm,
truyền thông và người dùng khác
trong hệ thống
• Khả năng xử lý
• Dung lỗi, mở rộng
phạm vi, tiến hóa
• Kiểm soát công khai,
quyền ưu tiên
II.3. Cách tiếp cận
• Phân tách chính sách / kỹ thuật
– Giảm độ phức tạp trong quá trình phát triển phần mềm
phân tán
– Tăng khả năng thích nghi của PMPT
lower layer
upper layer
’80s: spaghetti
lower layer
upper layer
’90s: hiding
lower layer
upper layer
’00s: adaptation
narrow access
full exposure
hidden mechanisms mechanisms
info control
2/15/2011
11
Ví dụ: kỹ thuật tạo bản sao
(replication) để dung lỗi
server app
failure rate: F
F = probability server fails
Xác suất để tất cả các server đều hỏng là bao nhiêu?
Cần bao nhiêu bản sao để đảm bảo là tỉ lệ lỗi server luôn nhỏ hơn G?
Ví dụ: hạn chế của việc áp dụng kỹ
thuật tạo bản sao
• Mua nhiều phần cứng hơn
• Chi phí quản lý
• Nâng cấp phần mềm
• Cân bằng tải
– Quá tải
– Phần mềm phức tạp hơn
2/15/2011
12
Ví dụ: kỹ thuật hiding nhằm mục tiêu
giảm bớt sự phức tạp
[Tanenbaum] “transparency” goals:
Ví dụ: kỹ thuật hiding nhằm mục tiêu
giảm bớt sự phức tạp
hiding consists of:
(1) push handling
complexity to a
lower level Application
Middleware
Network OS
OS Kernel
Network
(2) implementing a
one-size-fits-all
solution
2/15/2011
13
Ví dụ: hạn chế của kỹ thuật hiding
conversion of complex formats, e.g. media
latency vs. fidelity of access, e.g. DBs, Web…
trusted hosts (security and privacy)
different performance
different capabilities
different network access (bandwidth & latency)
select server based on QoS (e.g., mirrors)
cannot hide sharing of resources:
resources are consumed, data is modified by others
unexplained behavior
someone needs to decide whether an object is
persistent, and someone needs to commit it to disk
Ví dụ: Bài toán scaling
Examples of scalability
limitations.
2/15/2011
14
Ví dụ: kỹ thuật scaling
The difference between letting (a) a server or (b)
a client check forms as they are being filled.
Ví dụ: kỹ thuật scaling
An example of dividing the DNS name space into
zones.
2/15/2011
15
Ví dụ: kỹ thuật scaling
• Thúc đẩy các giải thuật phi tập trung
(decentralized algorithms):
– Các máy không cần cung cấp thông tin về trạng thái của
hệ thống
– Các máy tự đưa ra quyết định dựa trên những thông tin
riêng
– Nếu một máy bị lỗi, lỗi này không làm ảnh hưởng đến
giải thuật
– Không cần giả thiết là các máy trong hệ thống phải thực
hiện đồng bộ
III. CÁC NỀN TẢNG HỖ TRỢ
QUÁ TRÌNH PHÁT TRIỂN
PHẦN MỀM PHÂN TÁN
2/15/2011
16
Mở đầu
• Phát triển các phần mềm
tốt là công việc khó khăn
• Phát triển các phần mềm
phân tán tốt còn khó
khăn hơn nữa: khó xây
dựng PMPT trực tiếp trên
các thiết bị phần cứng
 Cần có các software
platforms trợ giúp việc
phát triển PMPT
– Hệ điều hành mạng
– Hệ điều hành phân tán
– Phần dẻo
III.1. Hệ điều hành mạng
(Network OS)
• Không che giấu sự phân tán
• Cung cấp các dịch vụ hỗ trợ
phân tán:
– remote login (ssh),
– remote copying (scp)
– distributed file systems
(samba, nsf)
• Thích nghi tốt với các HPT
khác nhau
– mount a samba share (MS
technology) on a Mac (Apple)
– use ssh to connect from a PC
to a Unix server
Kernel
Network
OS service
Kernel
Network
OS service
Kernel
Network
OS service
ApplicationDistributed Application
Machine A Machine B Machine C
2/15/2011
17
Ví dụ: local networks
• Có phải là HPT hay không? Tại sao?
– Các thành phần phân tán?
– Kiểu tương tác?
LAN
application
Truy cập vào các tài nguyên hệ thống
(ví dụ các files) thông qua mạng
Khó phát triển các
ứng dụng phân tán !!!
Kernel
Network
OS service
Kernel
Network
OS service
Kernel
Network
OS service
ApplicationDistributed Application
Machine A Machine B Machine C
III.2. Hệ điều hành phân tán
(distributed OS)
• Che giấu hoàn toàn sự
phân tán: hình ảnh của
một hệ thống duy nhất
• Người dùng có cảm
giác như đang sử dụng
một máy tính có nhiều
bộ xử lý (symmetric
multi-processing, SMP)
• Có nhiều điểm tương
đồng với HĐH hỗ trợ
nhiều bộ xử lý
Kernel Kernel Kernel
Distributed Applications
Machine A Machine B Machine C
Distributed Operating System Services
Network
2/15/2011
18
Ví dụ: clusters
• Có phải là HPT hay không? Tại sao?
– Các thành phần phân tán?
– Kiểu tương tác?
LAN
app server
app client
(UI)
gateway
high-speed
network
homogeneous machines
Kernel Kernel Kernel
Distributed Applications
Machine A Machine B Machine C
Distributed Operating System Services
Network
III.3. Phần dẻo (middleware)
• Trong 1 HPT, các ứng dụng khó sử dụng trực tiếp các chức năng được
cung cấp thông qua giao diện của hệ điều hành hay hệ truyền thông:
– Tính không đồng nhất (heterogenous)
– Sự phức tạp của các kỹ thuật bên dưới
• DOS thân thiện với người dùng nhưng khó mở rộng.
• NOS dễ mở rộng nhưng ít thân thiện với người dùng
 Cần quản lý các khả năng tương tác khác nhau và che giấu (dù chỉ
phần nào) các điểm khác biệt này
• Giải pháp:
– Thêm vào một tầng trung gian (phân tán) giữa các tầng ở mức thấp (hệ thống
và truyền thông) và tầng ứng dụng  phần dẻo
 Phần dẻo đóng vai trò tương tự như một siêu hệ điều hành trong 1
hệ phân tán
2/15/2011
19
III.3. Phần dẻo
Kernel
Network OS
service
Kernel
Network OS
service
Kernel
Network OS
service
Distributed Applications
Machine A Machine B Machine C
Middleware services
Tăng mức độ trừu tượng
(mẫu dễ sử dụng)
API mức cao
API mức thấp
API mức thấp
Ví dụ: middleware
• Có phải là HPT hay không? Tại sao?
– Các thành phần phân tán?
– Kiểu tương tác?
Kernel
Network OS
service
Kernel
Network OS
service
Kernel
Network OS
service
Distributed Applications
Machine A Machine B Machine C
Middleware services
data (sharing)-oriented
service-oriented
process oriented
2/15/2011
20
Ví dụ: ubiquitous computing
• Ứng dụng phân tán ?
internet
LAN
wireless
radiotelephony
Là phần dẻo, mạnh hơn
Phân loại phần mềm do các
software platforms cung cấp theo
mục đích sử dụng
Hệ thống Miêu tả Mục đích
DOS
Hệ điều hành dành riêng cho các máy
tính đa xử lý và các máy tính thuần
nhất
Che giấu và
quản lý tài
nguyên phần
cứng
NOS
Hệ điều hành cho các máy tính không
thuần nhất, kết nối qua mạng LAN,
WAN
Cung cấp dịch
vụ tại chỗ cho
các khách hàng
ở xa
Middleware
Tầng xây dựng trên NOS, cài đặt các
dịch vụ với mục tiêu chung
Che giấu sự
phân tán
2/15/2011
21
So sánh các software platforms
Item
Distributed OS Network
OS
Middleware-
based OSMultiproc. Multicomp.
Degree of
transparency
Very High High Low High
Same OS on all
nodes
Yes Yes No No
Number of copies of
OS
1 N N N
Basis for
communication
Shared
memory
Messages Files
Model
specific
Resource
management
Global,
central
Global,
distributed
Per node Per node
Scalability No Moderately Yes Varies
Openness Closed Closed Open Open
Kết luận
• Tổng quan về hệ phân tán, ứng dụng phân tán và
phần mềm phân tán
– Tại sao phải phân tán ?
– Ví dụ thực tế của các hệ phân tán ?
– Khả năng mở rộng/tiến hóa của các hệ thống này?
• Phát triển phần mềm phân tán : mục đích, cách
tiếp cận và các vấn đề cần giải quyết
– Tại sao việc phát triển phần mềm phân tán lại khó khăn
hơn phát triển phần mềm thông thường ?
• Vai trò của phần dẻo, truyền thông và hệ điều
hành cũng như các dịch vụ hỗ trợ khác trong quá
trình phát triển phần mềm phân tán, ví dụ minh
họa
2/15/2011
22
Tại sao phải phát triển các phần mềm
phân tán
• Nhu cầu ứng dụng
– Tích hợp các ứng dụng riêng rẽ đang có
– Tích hợp các nguồn tài nguyên đang có
• Lưới tính toán
• Quản lý dữ liệu
– Đưa tin học vào các lĩnh vực ứng dụng mới
• Tích hợp các đối tượng trong cuộc sống thực
• Khả năng kỹ thuật
– Chi phí và hiệu năng của máy tính và truyền thông

Contenu connexe

Tendances

Hệ điều hành (chương 2)
Hệ điều hành (chương 2)Hệ điều hành (chương 2)
Hệ điều hành (chương 2)realpotter
 
Distributed OS - An Introduction
Distributed OS - An IntroductionDistributed OS - An Introduction
Distributed OS - An IntroductionSuhit Kulkarni
 
Presentation điện toán đám mây
Presentation   điện toán đám mâyPresentation   điện toán đám mây
Presentation điện toán đám mâyxKinAnx
 
Hệ PhâN TáN
Hệ PhâN TáNHệ PhâN TáN
Hệ PhâN TáNit
 
Bài giảng công nghệ phần mềm PTIT
Bài giảng công nghệ phần mềm PTITBài giảng công nghệ phần mềm PTIT
Bài giảng công nghệ phần mềm PTITNguynMinh294
 
Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...
Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...
Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...Dịch vụ viết bài trọn gói ZALO: 0909232620
 
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...Le Cuong
 
01 - Introduction to Distributed Systems
01 - Introduction to Distributed Systems01 - Introduction to Distributed Systems
01 - Introduction to Distributed SystemsDilum Bandara
 
Lecture 1 distriubted computing
Lecture 1 distriubted computingLecture 1 distriubted computing
Lecture 1 distriubted computingARTHURDANIEL12
 
Tổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinTổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinNguyen Thi Lan Phuong
 
Chapter 8 distributed file systems
Chapter 8 distributed file systemsChapter 8 distributed file systems
Chapter 8 distributed file systemsAbDul ThaYyal
 
05. performance-concepts-26-slides
05. performance-concepts-26-slides05. performance-concepts-26-slides
05. performance-concepts-26-slidesMuhammad Ahad
 
Bao cao thuc tap - Điện toán đám mây
Bao cao thuc tap - Điện toán đám mâyBao cao thuc tap - Điện toán đám mây
Bao cao thuc tap - Điện toán đám mâyVan Pham
 
Bài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmBài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmHoài Phạm
 

Tendances (20)

Hệ điều hành (chương 2)
Hệ điều hành (chương 2)Hệ điều hành (chương 2)
Hệ điều hành (chương 2)
 
CS6601 DISTRIBUTED SYSTEMS
CS6601 DISTRIBUTED SYSTEMSCS6601 DISTRIBUTED SYSTEMS
CS6601 DISTRIBUTED SYSTEMS
 
Distributed OS - An Introduction
Distributed OS - An IntroductionDistributed OS - An Introduction
Distributed OS - An Introduction
 
Phan1.3
Phan1.3Phan1.3
Phan1.3
 
Presentation điện toán đám mây
Presentation   điện toán đám mâyPresentation   điện toán đám mây
Presentation điện toán đám mây
 
Hệ PhâN TáN
Hệ PhâN TáNHệ PhâN TáN
Hệ PhâN TáN
 
Bài giảng công nghệ phần mềm PTIT
Bài giảng công nghệ phần mềm PTITBài giảng công nghệ phần mềm PTIT
Bài giảng công nghệ phần mềm PTIT
 
Chuong 2. cnpm
Chuong 2. cnpmChuong 2. cnpm
Chuong 2. cnpm
 
Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...
Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...
Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...
 
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
 
01 - Introduction to Distributed Systems
01 - Introduction to Distributed Systems01 - Introduction to Distributed Systems
01 - Introduction to Distributed Systems
 
Điên toán đám mây
Điên toán đám mâyĐiên toán đám mây
Điên toán đám mây
 
Đề tài Quản lý tiền điện
Đề tài Quản lý tiền điệnĐề tài Quản lý tiền điện
Đề tài Quản lý tiền điện
 
Lecture 1 distriubted computing
Lecture 1 distriubted computingLecture 1 distriubted computing
Lecture 1 distriubted computing
 
Tổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinTổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tin
 
Chapter 8 distributed file systems
Chapter 8 distributed file systemsChapter 8 distributed file systems
Chapter 8 distributed file systems
 
05. performance-concepts-26-slides
05. performance-concepts-26-slides05. performance-concepts-26-slides
05. performance-concepts-26-slides
 
Bao cao thuc tap - Điện toán đám mây
Bao cao thuc tap - Điện toán đám mâyBao cao thuc tap - Điện toán đám mây
Bao cao thuc tap - Điện toán đám mây
 
Tấn Công DDOS
Tấn Công DDOSTấn Công DDOS
Tấn Công DDOS
 
Bài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmBài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần Mềm
 

Similaire à Dsd01 sta

Giaotrinh hedieuhanh
Giaotrinh hedieuhanhGiaotrinh hedieuhanh
Giaotrinh hedieuhanhHai Nguyen
 
Chuong1 tongquanvehedieuhanh
Chuong1 tongquanvehedieuhanhChuong1 tongquanvehedieuhanh
Chuong1 tongquanvehedieuhanhluyenshare
 
Chuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttChuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttvo nhan
 
Nhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmNhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmTrần Gia Bảo
 
Phan Tich Httt Bang Uml
Phan Tich Httt Bang UmlPhan Tich Httt Bang Uml
Phan Tich Httt Bang Umlhbgfd
 
phan tich thiet ke he thong
phan tich thiet ke he thongphan tich thiet ke he thong
phan tich thiet ke he thongvantinhkhuc
 
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]bookbooming1
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlMai Mit
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlAxnet Dung
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umldlmonline24h
 
Lecture01_Phan mem va ky nghe phan mem.pdf
Lecture01_Phan mem va ky nghe phan mem.pdfLecture01_Phan mem va ky nghe phan mem.pdf
Lecture01_Phan mem va ky nghe phan mem.pdfMai Hieu
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinNguyen Patrick
 
Co so du lieu phan tan
Co so du lieu phan tanCo so du lieu phan tan
Co so du lieu phan tanThao Vu
 
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVERTRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVERBảo Bối
 

Similaire à Dsd01 sta (20)

Chuong 1. cnpm
Chuong 1. cnpmChuong 1. cnpm
Chuong 1. cnpm
 
Giaotrinh hedieuhanh
Giaotrinh hedieuhanhGiaotrinh hedieuhanh
Giaotrinh hedieuhanh
 
Chuong1 tongquanvehedieuhanh
Chuong1 tongquanvehedieuhanhChuong1 tongquanvehedieuhanh
Chuong1 tongquanvehedieuhanh
 
Chuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_htttChuong 2 cac thanh_phan_cua_httt
Chuong 2 cac thanh_phan_cua_httt
 
Nhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmNhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềm
 
Phan Tich Httt Bang Uml
Phan Tich Httt Bang UmlPhan Tich Httt Bang Uml
Phan Tich Httt Bang Uml
 
phan tich thiet ke he thong
phan tich thiet ke he thongphan tich thiet ke he thong
phan tich thiet ke he thong
 
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]
Giao trinh he_dieu_hanh_tech24_vn[bookbooming.com]
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng uml
 
Lecture01_Phan mem va ky nghe phan mem.pdf
Lecture01_Phan mem va ky nghe phan mem.pdfLecture01_Phan mem va ky nghe phan mem.pdf
Lecture01_Phan mem va ky nghe phan mem.pdf
 
--De cuong on tap hdh
 --De cuong on tap hdh --De cuong on tap hdh
--De cuong on tap hdh
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tin
 
Co so du lieu phan tan
Co so du lieu phan tanCo so du lieu phan tan
Co so du lieu phan tan
 
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVERTRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
TRIỂN KHAI OPENVPN TRÊN UBUNTU SERVER
 
Bai10 bai giang
Bai10 bai giangBai10 bai giang
Bai10 bai giang
 
Bai10 bai giang
Bai10 bai giangBai10 bai giang
Bai10 bai giang
 
Baigiangbai10
Baigiangbai10Baigiangbai10
Baigiangbai10
 
Cong nghnet
Cong nghnetCong nghnet
Cong nghnet
 

Dsd01 sta

  • 1. 2/15/2011 1 Phát triển phần mềm phân tán GV. TS. Vũ Thị Hương Giang Viện CNTT&TT CHƯƠNG I. KHÁI NIỆM CHUNG 1. Tổng quan về hệ phân tán, ứng dụng phân tán và phần mềm phân tán 2. Phát triển phần mềm phân tán : mục đích, cách tiếp cận và các vấn đề cần giải quyết 3. Vai trò của phần dẻo, truyền thông và hệ điều hành cũng như các dịch vụ hỗ trợ khác trong quá trình phát triển phần mềm phân tán, ví dụ minh họa
  • 2. 2/15/2011 2 1. HỆ PHÂN TÁN, ỨNG DỤNG PHÂN TÁN VÀ PHẦN MỀM PHÂN TÁN I.1. Hệ phân tán (distributed system) [Tanenbaum]: “A collection of independent computers that appears to its users as a single coherent system.” 3 đặc tính chính: Tính tự trị (autonomous) của máy tính Phần mềm chỉ cho người dùng thấy một hệ thống duy nhất Dễ dàng mở rộng hệ thống mà không cần báo trước cho người dùng
  • 3. 2/15/2011 3 I.2. Tính toán phân tán (distributed computing) • [Webopedia] : “A type of computing in which different components and objects comprising an application can be located on different computers connected to a network.” • [Wikipedia] : “Decentralized and parallel computing, using two or more computers communicating over a network to accomplish a common objective or task.” I.3. Khác biệt giữa hệ thống (system), phần mềm (software) và ứng dụng (application) • Hệ thống: – Quản lý tài nguyên chung, cơ sở hạ tầng, cung cấp các chức năng quản lý chung qua các giao diện có mức độ trừu tượng cao – Gắn liền với các thiệt bị liên quan, che giấu sự phức tạp và việc trao đổi thông tin giữa các thiết bị này – Ví dụ: hệ điều hành, hệ thống truyền thông • Phần mềm – Chương trình máy tính + tài liệu liên quan (thường tham chiếu đến khái niệm dữ liệu của máy tính) – Không nhất thiết phải ở trạng thái thực thi (executable) hay gắn liền với một hệ điều hành cụ thể – Không nhất thiết phải tương tác với người dùng trong quá trình họat động • Ứng dụng – Một kiểu phần mềm đặc biệt, nhằm mục đích thực hiện một nhiệm vụ nhất định – Chỉ thực thi được trên hệ điều hành cụ thể – Cần có sự tương tác với người dùng trong quá trình họat động
  • 4. 2/15/2011 4 I.4. Phần mềm / ứng dụng phân tán (distributed software / application) Ví dụ về phần mềm / ứng dụng phân tán ? Các đặc tính khác Khả năng mở rộng phạm vi (scalability) ? Tính trong suốt (transparency) ? Tương tác với người dùng? Tập các thành phần phần mềm/ tiến trình trong 1 mạng máy tính, cùng hoạt động nhằm phục vụ mục đích nhất định Phân tán trong phạm vi nào ? Ví dụ: thương mại điện tử (eCommerce) • Có phải là HPT hay không? Tại sao? – Các thành phần phân tán? – Kiểu tương tác giữa các thành phần này? LAN DB client DB server internet app server app client (UI) http
  • 5. 2/15/2011 5 Ví dụ: timesharing • Có phải là HPT hay không? Tại sao? – Các thành phần phân tán? – Kiểu tương tác? dumb terminals mainframe keystrokes over wire Ví dụ: parallel computing • Có phải là HPT hay không? Tại sao? – Các thành phần phân tán? – Kiểu tương tác? dumb terminals mainframe multiprocessor keystrokes over wireMột số ứng dụng nổi bật ?
  • 6. 2/15/2011 6 II. PHÁT TRIỂN PHẦN MỀM PHÂN TÁN Online bookstore (e.g. in the World Wide Web) Customers can connect their computer to your computer (web server):  Browse your inventory  Place orders  … Ví dụ: ứng dụng nhà sách trực tuyến Quy trình nghiệp vụ
  • 7. 2/15/2011 7 What if Your customer uses a completely different hardware? (PC, MAC,…) … a different operating system? (Windows, Unix,…) … a different way of representing data? (ASCII, EBCDIC,…) Or You want to move your business and computers to the Caribbean (because of the weather)? Your client moves to the Caribbean (more likely)? Ví dụ: ứng dụng nhà sách trực tuyến Thách thức What if Someone tries to break into your system to steal data? … sniffs for information? … your customer orders something and doesn’t accept the delivery saying he didn’t? Or You are so successful that millions of people are visiting your online store at the same time? Ví dụ: ứng dụng nhà sách trực tuyến Thách thức
  • 8. 2/15/2011 8 When building the system… Do you want to write the whole software on your own (network, database,…)? What about updates, new technologies? Ví dụ: ứng dụng nhà sách trực tuyến Thách thức What if Two customers want to order the same item at the same time? Or The database with your inventory information crashes? Your customers computer crashes in the middle of an order? Ví dụ: ứng dụng nhà sách trực tuyến Thách thức
  • 9. 2/15/2011 9 Heterogeneity Các thành phần không thuần nhất phải có khả năng tương thao tác với nhau Distribution transparency Giấu người dùng sự phân tán nhiều nhất có thể Fault tolerance Việc một thành phần trong hệ thống bị hỏng không làm hỏng cả hệ thống Scalability Hệ thống có khả năng hoạt động hiệu quả khi số lượng người dùng tăng lên Hiệu năng của hệ thống tăng lên khi bổ sung thêm tài nguyên Concurrency Có khả năng cùng truy cập vào tài nguyên và chia sẻ tài nguyên Openness Giao diện công khai, sẵn dùng và dễ dàng thêm các thành phần mới vào hệ thống Security Hệ thống chỉ có thể được sử dụng theo cách định sẵn II.1. Thách thức II.2. Mục đích • Kết nối người dùng và các tài nguyên trong hệ thống – Kinh tế: mua 1 máy in – Cộng tác: chia sẻ tài nguyên – Cần đảm bảo an toàn (security) • Che giấu sự phân tán (Transparency) – Các khía cạnh cần quan tâm? • Tính mở (Openness) – Khả năng tương thao tác (Interoperability) – Khả chuyển (Portability) – Khả năng co dãn (Extensibility) – Phân biệt giữa chính sách và kỹ thuật • Khả năng thay đổi phạm vi (Scalability) • Nâng cao tính sẵn dùng (Availability)
  • 10. 2/15/2011 10 II.3. Cách tiếp cận • Tận dụng thế mạnh sẵn có của hệ phân tán • Độ trễ trong quá trình truyền thông • Tích phối (coordination) – Chia sẻ tài nguyên và loại trừ lẫn nhau – Thứ tự thực hiện, deadlock, live-lock – Thời gian thực hiện • Thích nghi với các thay đổi – Hỏng (failures), lỗi phần mềm (soft faults), tối ưu – Tìm kiếm và cấu hình các dịch vụ – Sự không thuần nhất và các phần mềm của bên thứ ba – Mở rộng phạm vi và tiến hóa • Tính an toàn an ninh và tính riêng tư – Tin tưởng vào thiết bị, phần mềm, truyền thông và người dùng khác trong hệ thống • Khả năng xử lý • Dung lỗi, mở rộng phạm vi, tiến hóa • Kiểm soát công khai, quyền ưu tiên II.3. Cách tiếp cận • Phân tách chính sách / kỹ thuật – Giảm độ phức tạp trong quá trình phát triển phần mềm phân tán – Tăng khả năng thích nghi của PMPT lower layer upper layer ’80s: spaghetti lower layer upper layer ’90s: hiding lower layer upper layer ’00s: adaptation narrow access full exposure hidden mechanisms mechanisms info control
  • 11. 2/15/2011 11 Ví dụ: kỹ thuật tạo bản sao (replication) để dung lỗi server app failure rate: F F = probability server fails Xác suất để tất cả các server đều hỏng là bao nhiêu? Cần bao nhiêu bản sao để đảm bảo là tỉ lệ lỗi server luôn nhỏ hơn G? Ví dụ: hạn chế của việc áp dụng kỹ thuật tạo bản sao • Mua nhiều phần cứng hơn • Chi phí quản lý • Nâng cấp phần mềm • Cân bằng tải – Quá tải – Phần mềm phức tạp hơn
  • 12. 2/15/2011 12 Ví dụ: kỹ thuật hiding nhằm mục tiêu giảm bớt sự phức tạp [Tanenbaum] “transparency” goals: Ví dụ: kỹ thuật hiding nhằm mục tiêu giảm bớt sự phức tạp hiding consists of: (1) push handling complexity to a lower level Application Middleware Network OS OS Kernel Network (2) implementing a one-size-fits-all solution
  • 13. 2/15/2011 13 Ví dụ: hạn chế của kỹ thuật hiding conversion of complex formats, e.g. media latency vs. fidelity of access, e.g. DBs, Web… trusted hosts (security and privacy) different performance different capabilities different network access (bandwidth & latency) select server based on QoS (e.g., mirrors) cannot hide sharing of resources: resources are consumed, data is modified by others unexplained behavior someone needs to decide whether an object is persistent, and someone needs to commit it to disk Ví dụ: Bài toán scaling Examples of scalability limitations.
  • 14. 2/15/2011 14 Ví dụ: kỹ thuật scaling The difference between letting (a) a server or (b) a client check forms as they are being filled. Ví dụ: kỹ thuật scaling An example of dividing the DNS name space into zones.
  • 15. 2/15/2011 15 Ví dụ: kỹ thuật scaling • Thúc đẩy các giải thuật phi tập trung (decentralized algorithms): – Các máy không cần cung cấp thông tin về trạng thái của hệ thống – Các máy tự đưa ra quyết định dựa trên những thông tin riêng – Nếu một máy bị lỗi, lỗi này không làm ảnh hưởng đến giải thuật – Không cần giả thiết là các máy trong hệ thống phải thực hiện đồng bộ III. CÁC NỀN TẢNG HỖ TRỢ QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM PHÂN TÁN
  • 16. 2/15/2011 16 Mở đầu • Phát triển các phần mềm tốt là công việc khó khăn • Phát triển các phần mềm phân tán tốt còn khó khăn hơn nữa: khó xây dựng PMPT trực tiếp trên các thiết bị phần cứng  Cần có các software platforms trợ giúp việc phát triển PMPT – Hệ điều hành mạng – Hệ điều hành phân tán – Phần dẻo III.1. Hệ điều hành mạng (Network OS) • Không che giấu sự phân tán • Cung cấp các dịch vụ hỗ trợ phân tán: – remote login (ssh), – remote copying (scp) – distributed file systems (samba, nsf) • Thích nghi tốt với các HPT khác nhau – mount a samba share (MS technology) on a Mac (Apple) – use ssh to connect from a PC to a Unix server Kernel Network OS service Kernel Network OS service Kernel Network OS service ApplicationDistributed Application Machine A Machine B Machine C
  • 17. 2/15/2011 17 Ví dụ: local networks • Có phải là HPT hay không? Tại sao? – Các thành phần phân tán? – Kiểu tương tác? LAN application Truy cập vào các tài nguyên hệ thống (ví dụ các files) thông qua mạng Khó phát triển các ứng dụng phân tán !!! Kernel Network OS service Kernel Network OS service Kernel Network OS service ApplicationDistributed Application Machine A Machine B Machine C III.2. Hệ điều hành phân tán (distributed OS) • Che giấu hoàn toàn sự phân tán: hình ảnh của một hệ thống duy nhất • Người dùng có cảm giác như đang sử dụng một máy tính có nhiều bộ xử lý (symmetric multi-processing, SMP) • Có nhiều điểm tương đồng với HĐH hỗ trợ nhiều bộ xử lý Kernel Kernel Kernel Distributed Applications Machine A Machine B Machine C Distributed Operating System Services Network
  • 18. 2/15/2011 18 Ví dụ: clusters • Có phải là HPT hay không? Tại sao? – Các thành phần phân tán? – Kiểu tương tác? LAN app server app client (UI) gateway high-speed network homogeneous machines Kernel Kernel Kernel Distributed Applications Machine A Machine B Machine C Distributed Operating System Services Network III.3. Phần dẻo (middleware) • Trong 1 HPT, các ứng dụng khó sử dụng trực tiếp các chức năng được cung cấp thông qua giao diện của hệ điều hành hay hệ truyền thông: – Tính không đồng nhất (heterogenous) – Sự phức tạp của các kỹ thuật bên dưới • DOS thân thiện với người dùng nhưng khó mở rộng. • NOS dễ mở rộng nhưng ít thân thiện với người dùng  Cần quản lý các khả năng tương tác khác nhau và che giấu (dù chỉ phần nào) các điểm khác biệt này • Giải pháp: – Thêm vào một tầng trung gian (phân tán) giữa các tầng ở mức thấp (hệ thống và truyền thông) và tầng ứng dụng  phần dẻo  Phần dẻo đóng vai trò tương tự như một siêu hệ điều hành trong 1 hệ phân tán
  • 19. 2/15/2011 19 III.3. Phần dẻo Kernel Network OS service Kernel Network OS service Kernel Network OS service Distributed Applications Machine A Machine B Machine C Middleware services Tăng mức độ trừu tượng (mẫu dễ sử dụng) API mức cao API mức thấp API mức thấp Ví dụ: middleware • Có phải là HPT hay không? Tại sao? – Các thành phần phân tán? – Kiểu tương tác? Kernel Network OS service Kernel Network OS service Kernel Network OS service Distributed Applications Machine A Machine B Machine C Middleware services data (sharing)-oriented service-oriented process oriented
  • 20. 2/15/2011 20 Ví dụ: ubiquitous computing • Ứng dụng phân tán ? internet LAN wireless radiotelephony Là phần dẻo, mạnh hơn Phân loại phần mềm do các software platforms cung cấp theo mục đích sử dụng Hệ thống Miêu tả Mục đích DOS Hệ điều hành dành riêng cho các máy tính đa xử lý và các máy tính thuần nhất Che giấu và quản lý tài nguyên phần cứng NOS Hệ điều hành cho các máy tính không thuần nhất, kết nối qua mạng LAN, WAN Cung cấp dịch vụ tại chỗ cho các khách hàng ở xa Middleware Tầng xây dựng trên NOS, cài đặt các dịch vụ với mục tiêu chung Che giấu sự phân tán
  • 21. 2/15/2011 21 So sánh các software platforms Item Distributed OS Network OS Middleware- based OSMultiproc. Multicomp. Degree of transparency Very High High Low High Same OS on all nodes Yes Yes No No Number of copies of OS 1 N N N Basis for communication Shared memory Messages Files Model specific Resource management Global, central Global, distributed Per node Per node Scalability No Moderately Yes Varies Openness Closed Closed Open Open Kết luận • Tổng quan về hệ phân tán, ứng dụng phân tán và phần mềm phân tán – Tại sao phải phân tán ? – Ví dụ thực tế của các hệ phân tán ? – Khả năng mở rộng/tiến hóa của các hệ thống này? • Phát triển phần mềm phân tán : mục đích, cách tiếp cận và các vấn đề cần giải quyết – Tại sao việc phát triển phần mềm phân tán lại khó khăn hơn phát triển phần mềm thông thường ? • Vai trò của phần dẻo, truyền thông và hệ điều hành cũng như các dịch vụ hỗ trợ khác trong quá trình phát triển phần mềm phân tán, ví dụ minh họa
  • 22. 2/15/2011 22 Tại sao phải phát triển các phần mềm phân tán • Nhu cầu ứng dụng – Tích hợp các ứng dụng riêng rẽ đang có – Tích hợp các nguồn tài nguyên đang có • Lưới tính toán • Quản lý dữ liệu – Đưa tin học vào các lĩnh vực ứng dụng mới • Tích hợp các đối tượng trong cuộc sống thực • Khả năng kỹ thuật – Chi phí và hiệu năng của máy tính và truyền thông