1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận lập trình mạng viết chương trình đảm bảo gắn bó dữ liệu trên các csdl phân tán tại các server

24 580 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 490,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- Trên môi trường đa Server ta có các tầng ứng dụng như sau: o Tầng người sử dụng: nơi người sử dụng có thể thao tác trên chương trình thông qua giao diện của chương trình.. o Tầng trung

Trang 1

I H C À N NG

ĐẠI HỌC ĐÀ NẴNG ỌC ĐÀ NẴNG Đ ẴNG KHOA CÔNG NGH THÔNG TIN Ệ THÔNG TIN

VI T CH ẾT CHƯƠNG TRÌNH ĐẢM BẢO GẮN BÓ DỮ LIỆU ƯƠNG TRÌNH ĐẢM BẢO GẮN BÓ DỮ LIỆU NG TRÌNH ĐẢM BẢO GẮN BÓ DỮ LIỆU M B O G N BÓ D LI U ẢM BẢO GẮN BÓ DỮ LIỆU ẮN BÓ DỮ LIỆU Ữ LIỆU Ệ THÔNG TIN

TRÊN CÁC CSDL PHÂN TÁN T I CÁC SERVER ẠI HỌC ĐÀ NẴNG

GV hướng dẫn : PGS.TS Lê Văn Sơn Chuyên ngành : Khoa Học Máy Tính

Trang 2

LỜI MỞ ĐẦU

Đối với các công ty lớn có chi nhánh đặt ở các địa điểm khác nhau trên các vùng lãnhthổ khác nhau, việc lưu trữ dữ liệu trên một máy tính rất khó khăn do vượt quá điều kiện củacông ty Vì vậy đòi hỏi cần có một cách lưu trữ dữ liệu ở nhiều nơi khác nhau nhưng phảithống nhất Nhờ hệ thống mạng cục bộ và internet phát triển vượt bậc như hiện nay mà taphát triển hệ thống quản lý công ty trên một một môi trường mới khác hoàn toàn so với môitrường cũ chạy cục bộ trên máy tính cục bộ đó là môi trường mạng phân tán Các ứng dụngchạy trên môi trường mạng phân tán ngày càng nhiều và trở nên thông dụng như hiện nay vàbắt đầu có mặt tại Việt Nam

Với môi trường mạng phân tán này sẽ có nhiều Server đặt ở những nơi khác nhaungười ta gọi là môi trường đa Server Trong môi trường đa Server và việc truy cập từ xa cóthể truy xuất đồng thời đảm bào toàn vẹn dữ liệu vì dữ liệu có thể lưu trữ dự phòng trênnhiều Server khác nhau

Đây là hệ thống đa Server rất phức tạp nhưng hệ thống đảm bảo gắn bó dữ liệu giữacác Server đồng thời không làm phức tạp việc truy xuất dữ liệu

Với những thông tin trên nhóm chúng em trình bày chủ đề:

1 Viết chương trình đảm bảo gắn bó dữ liệu trên các CSDL phân tán tại các Server.

2 Nghiên cứu phương pháp đảm bảo gắn bó dữ liệu trên các CSDL phân tán.

3 Xây dựng hệ thống đa Server với n Server (n>4).

4 Xây dựng chương trình Monitoring quan sát sự trao đổi (trạng thái gắn bó) tại các Server.

Với chủ đề trên nhóm chúng em dùng công cụ ngôn ngữ lập trình Java của hãng phầnmền Sun Micro System đồng thời sử dụng bộ thư viện hỗ trợ lập trình mạng phân tán RMI

Về thuật toán nhóm nghiên cứu thuật toán danh sách di chuyển

À N NG, 05/2012

Đ ẴNG

Trang 3

Đối với tiểu luận này nhóm xây dựng một hệ thống gồm 4 Server và một công cụmodule Monitor nhằm giám sát cập nhật dữ liệu giữa 4 Server để đánh giá tính gắn bó dữliệu giữa các server với nhau.

Trang 4

CHƯƠNG 1

XÂY DỰNG CHƯƠNG TRÌNH ĐẢM BẢO GẮN BÓ DỮ LIỆU TRÊN CÁC CSDL

PHÂN TÁN TẠI CÁC SERVER

- Trên môi trường đa Server ta có các tầng ứng dụng như sau:

o Tầng người sử dụng: nơi người sử dụng có thể thao tác trên chương trình

thông qua giao diện của chương trình Với sự thuận tiện của Internet ngày càngnhiều các chuyên gia phần mềm phát triển ứng dụng của mình trên môi trườngWeb

o Tầng trung gian: Đây là nơi người lập trình pháp triển ứng dụng của mình xử

lý các yêu cầu từ phía người dùng, các xử lý này được kết nối với cơ sở dữ liệu

ở tầng cơ sở dữ liệu Trong tầng này các yêu cầu không thể trực tiếp giải quyếtđược nó chuyển đến một đối tác xử lý khác như Web Server, hoặc File Server

để xử lý

o Tầng CSDL ( cơ sở dữ liệu) nơi các Server chứa các cơ sở dữ liệu chuyên

dùng như SQL Server, Oracle để quản lý CSDL, nhằm xử lý, truy cập truy xuấtcác dữ liệu dược xử lý từ tầng trung gian đưa tới

Hình 1 : Mô hình phân tầng

Tầng Users

Tầng CSDL Tầng Trung Gian

Trang 5

1.1 Kỹ thuật lập trình Server – Server giải quyết bài toán cập nhật dữ liệu.

Ta có mô hình đa server như sau:

- Bài toán đảm bảo gắn bó dữ liệu : có một cơ sở dữ liệu được đặt tại các Server ởnhững vị trí khác nhau muốn chèn một record mới lên cơ sở dữ liệu đã có trong mô hìnhServer – Server ( Server ngang hàng)

Ta có mỗi Server có nhiều Client tương tác với nó mỗi khi một Client của một servernào đó có nhu cầu chèn một record thì CSDL ở các Server khác cũng nhận được record đóvới độ trễ cho phép

Trang 6

Với ưu điểm trên ngày càng có nhiều ứng dụng trên môi trường mạng phân tán đápứng nhiều bài toán và nhiều giải cho các công ty lớn

Đề cử như bài toán bán vé máy bay, điều hành tour du lịch, giảng dạy trực tuyến phântán, bán hàng… nhưng đây là một công nghệ tương đối mới thách thức các nhân viên lậptrình muốn triển khai các ứng dụng lớn trên môi trường mạng phân tán này

b Cho phép nhiều đại lý cập nhật thông tin khách hàng đồng thời

c Hệ thống phải tuyệt đối đảm bảo gắn bó dữ liệu tránh trình trạng hàng hoá cungcấp hết cho khách hàng A tại đại lý A nhưng vẫn được bán cho khách hàng B ởmột đại lý nào đó

Đây là một hệ thống thông tin phức tạp gồm nhiều ứng dụng được thiết kế để giải quyết bàitoán một cách tổng thể toàn diện Ở đây với mục đích tìm hiểu và nghiên cứu ta có thể thunhỏ bài toán cơ sở dữ liệu gồm bảng khách hàng

Trước hết khi Client ra yêu cầu hệ thống phải xác định Client đang ở vị trí nào đâychính là vấn đề trỏ thông tin nội dung chủ yếu của việc trỏ thông tin là biến đổi địa điểm Bthành tên của hệ thống cục bộ quản lý để hệ thống có thể nhận dang được Tên của hệ thốngcục bộ phải duy nhất không được trùng với các hệ thống cục bộ khác và không được phépthay đổi

Sau khi đã trỏ đúng vào địa chỉ chứa thông tin, hệ thống phải có khả năng tiếp nhận

và ghi lại những yêu cầu

Biên dịch các yêu cầu thành dạng lệnh để truy tìm thông tin

Trang 7

Thực hiện công việc cục bộ mang tính chất cục bộ của hệ thống cục bộ như kiểm traquyền truy cập thông tin, thống kê số lượng khách hàng lập hoá đơn bán hàng,…

Nếu tìm được đúng thông tin yêu cầu sau đó gởi thông tin này đến hệ thống có yêucầu

Đây là mô hình Client / Server ( khách / chủ) Client gởi yêu cầu ( thông điệp) đếnserver Sự tác động này gọi là sự giao dịch

Client A :

{Goiyeucau(B,yc) // client gởi server B

Nhanyeucau(ketqua)}

Server B

{ Nhanyeucau(s,nh)

Nếu(hợp lệ)

Bắt đầu Tracuucsdl ThongkeTraketqua(s,kq)}

Câu truy vấn có thể cài đặt tại Client hoặc tại máy Server Hai giải pháp này khác nhau ởkhối lượng thông tin trao đổi giữa các client với nhau Giả sử rằng ta đang theo tác trên môitrường Web Vậy chương trình có thể triển khai trên Server và trên Client chỉ cần trìnhduyệt Web mà thôi (các trình duyệt Web như Internet Explorer, Netcape Navigator) WebServer xử lý các yêu cầu từ Client gởi lên sau khi xử lý xong và trả về kết quả Client Nhưvậy với mô hình này thì chương chình được cài đặt toàn bộ trên Server

Với mô hình trên ta thấy độ tin cậy của thông tin Thông tin là đúng tại thời điểmServer nhận được thông điệp và đọc nó, có thể không đúng khi khi client nhận được Điềunày liên quan đến việc làm tươi dữ liệu

Vì vậy ta phải có giải pháp cho việc truy cập đồng thời vào dữ liệu dùng chung Hiệntại ta có một số hệ quản trị CSDL như SQL Server 2005 hoặc Oracle có tính năng bảo mật

và phân quyền rất tốt do đó đảm bảo tính an toàn cho hệ thống thông tin

Có một số hệ quản trị CSDL có tính năng Transaction ( lập phiên giao dịch) cho phépđảm bảo tính thống nhất trong khi lưu trữ dữ liệu đảm bảo không xẩy ra treo hệ khi nhiềuClient cùng truy xuất vào một CSDL

Trang 8

Trong thực tế việc treo hệ vẫn có thể xảy ra ví dụ : một khách hàng A mua hàng hoá

K tại đại lý B và C khách hàng này nhận được lời chấp nhận với một số lượng cụ thể, nhưng

số lượng mặt hàng này không có hoặc có mà không đủ tại đại lý B và C trong khi ra lệnh thìyêu cầu của khách hàng vẫn được chấp nhận vì số lượng vẫn còn ở một địa điểm khác Vìvậy xảy ra vấn đề khách hàng A nhận được phản hồi chấp nhận mà trên thực tế số lượnghàng hoá tại vị trí ấy không có

Trang 9

CHƯƠNG 2

NGHIÊN CỨU PHƯƠNG PHÁP ĐẢM BẢO GẮN BÓ DỮ LIỆU TRÊN CÁC CSDL

PHÂN TÁN 2.1 Đặt vấn đề:

Để dễ dàng mô tả các giải thuật đảm bảo gắn bó dữ liệu phân tán, chúng ta giả thiếtrằng, tại vị trí nguồn của giao dịch một tiến trình thực hiện các thao tác của nó, tiến trình nàyđược gọi là điều phối viên (Coordinator) Điều phối viên trao đổi với các thành viên(Participant) tại những vị trí có tham gia vào việc thực hiện các thao tác của giao dịch.Chúng ta có cải tiến giải thuật hai pha tuyến tính ( Linear 2PC ), giải thuật MAONT, ta thiết

kế giải thuật mà trong đó các thành viên có thể trao đổi với nhau Có một thứ tự giữa các vịtrí trong hệ thống dành cho việc giao tiếp Chúng ta hãy giả thiết rằng thứ tự giữa các vị trí

có tham gia vào việc thực hiện một giao dịch là 1, 2,…, N với điều phối viên là vị trí đầu tiên

trong thứ tự này

Ta có các đối tượng sau :

1 C 1 , C 2 , , C n là các Client truy cập Web Server bằng trình duyệt Web

2 Servlets là các đối tượng xử lý yêu cầu được gửi từ các C i , i=1,n

3 TPC-Server-App1, TPC-Server-App2, , TPC-Server-AppN là các RMI Server cài đặt

thuật toán 2PC tuyến tính (Linear Two Phase Commit - TPC)

4 TPCMonitorServer là một trình giám sát cho phép hiển thị quá trình dịch chuyển của danh

sách di chuyển [6] trong quá trình xử lý của các TPC-Server-Appi, i = 1,N

5 ConnectionPool là chương trình điều khiển các liên kết cơ sở dữ liệu dùng chung

6 Database1, Database2, , DatabaseN là các cơ sở dữ liệu quan hệ phân tán trên mạng.

2.2 Mô tả hoạt động:

Các C 1 , C 2 , , C n là các Client truy cập vào Web Server bằng trình duyệt Web Các yêucầu này đòi hỏi việc xử lý phải truy vấn đến các cơ sở dữ liệu phân tán Do đó việc xử lýthành công hay không phụ thuộc vào kết quả của tất cả các truy vấn này Điều đó có nghĩa là,

xử lý sẽ thành công nếu tất cả các truy vấn đều thành công, ngược lại, xử lý sẽ không thànhcông nếu có bất kỳ một truy vấn nào bị lỗi hoặc không thực hiện được Khi nhận được một

Trang 10

yêu cầu từ các C i , i=1,n, các Servlet sẽ dựa vào yêu cầu này để thành lập nên một danh sách

các Database Server sẽ truy vấn và các câu lệnh SQL tương ứng được thực hiện tại mỗiServer Việc thành lập danh sách các câu lệnh SQL truy vấn tại mỗi Database Server đượcdựa theo thứ tự ưu tiên SELECT, DELETE, UPDATE, INSERT Sau khi thành lập danhsách di chuyển, Servlet chuyển danh sách di chuyển này cho TPC-Server-App đầu tiên trongdanh sách di chuyển thông qua phương thức gọi từ xa RMI

Mỗi TPC-Server-App cài đặt một giao diện cung cấp phương thức xử lý theo thuậttoán 2PC tuyến tính với tham số là danh sách di chuyển, chỉ mục hiện tại của danh sách vàtrả về kết quả là danh sách kết quả truy vấn của chính nó và các Server đứng phía sau nótrong danh sách di chuyển

public interface TPCApp extends Remote

Trang 11

2.3 Giới thiệu mô hình đối tượng phân tán RMI

RMI là một công nghệ Java cho phép một máy ảo Java này tương tác với một máy ảoJava khác và gọi các phương thức đối tượng Các đối tượng có thể gọi các phương thức trêncác đối tượng khác nằm ở xa một cách dễ dàng như chúng nằm cùng trên máy chủ cục bộ(mỗi khi một số công việc khởi tạo đã được thực hiện)

Mỗi dịch vụ RMI (RMI service) được định nghĩa bởi một giao diện, nó mô tả cácphương thức đối tượng mà nó có thể được thực hiện từ xa Giao diện này phải phải được chia

sẽ bởi tất cả những người phát triển người mà sẻ viết phần mềm cho dịch vụ đó Nó hoạtđộng như là một bản thiết kế cho các ứng dụng mà chúng sử dụng và cung cấp sự cài đặt củadịch vụ Nhiều cài đặt của giao diện có thể được tạo, và người phát triển không cần có ý thức

về cài đặt nào đang được sử dụng hay nó nằm ở đâu

Bộ thư viện RMI (Remote Method Invocation) được tích hợp sẵn trong bộ phần mềmphát triển ứng dụng JDK nhằm hỗ trợ cho việc xây dựng các ứng dụng trên môi trường tínhtoán phân tán bằng ngôn ngữ Java

Một ứng dụng RMI gồm được phân chia thành các lớp trừu tượng như hình dưới Vớicấu trúc phân lớp, việc nâng cấp, sửa đổi tại mỗi lớp sẽ không ảnh hưởng đến các lớp khác

Hình 3 – Các lớp của RMI

Các ứng dụng RMI được chia thành hai chương trình độc lập là: chương trình Client

và chương trình Server Chương trinh Server tạo ra các đối tượng từ xa và cung cấp các thamchiếu đến chúng và chờ các chương trình Client triệu gọi các đối tượng này Chương trình

Trang 12

Client nhận tham chiếu đến các đối tượng ở xa (đối tượng do chương trình Server tạo ra) vàtriệu gọi chúng như các đối tượng cục bộ.

2.4 Cơ chế hoạt động của RMI

Các hệ thống sử dụng RMI để tương tác được chi làm hai nhóm chính : Client vàServer Server cung cấp dịch vụ RMI, và Client triệu gọi các phương thức đối tượng của dịch

vụ này

RMI Server phải đăng ký với dịch vụ tra cứu, để Client có thể tìm thấy chúng, hoặcngười ta có thể làm cho có thể tham chiếu đến dịch vụ theo một số cách khác Đi kèm như là

một phần của Java platform là một ứng dụng được gọi là rmiregistry, nó chạy như một tiến

trình riêng và cho phép các ứng dụng đăng ký các dịch vụ RMI hoặc thu nhận một thamchiếu tới một dịch vụ Mỗi khi server đã đăng ký, thì nó sẽ đợi cho đến khi có yêu cầu RMIđến từ các Client Hình 3 minh họa các dịch vụ đăng ký với một registry RMI đơn Được kếthợp với mỗi một đăng ký dịch vụ là một tên (biểu diễn bằng một chuỗi), để cho phép cácclient chọn dịch vụ thích hợp Nếu dịch vụ chuyển từ Server này đến Server khác, client chỉcần tra cứu registry để xác định vị trí mới Nếu như dịch vụ không sẵn sàng vì tắt máy, quảntrị hệ thống có thể nạp một thể hiện mới của dịch vụ trên một hệ thống khác và đăng ký nóvới RMI registry Registry không quan tâm một dịch vụ được đăng ký từ máy chủ nào (host),

và client nhận vị trí của dịch vụ trực tiếp từ registry

Hình 4 Nhiều dịch vụ có thể đăng ký từ cùng registry

Trang 13

RMI Client sẽ gửi thông điệp RMI để gọi phương thức đối tượng từ xa Tuy nhiên,trước khi một triệu gọi phương thức từ xa thực hiện, Client phải có một tham chiếu đối tượng

từ xa Điều này bình thường được thực hiện bằng cách tìm kiếm một dịch vụ trong registry.Ứng dụng client yêu cầu một tên dịch vụ cụ thể, và nhận một URL (Universal ReferenceLink) tới một tài nguyên từ xa Nhớ rằng, URL không chỉ dành cho HTTP, hầu hết các giaothức có thể được biểu diễn sử dụng cú pháp URL Mẫu sau được sử dụng bởi RMI để biểudiễn một tham chiếu đối tượng từ xa:

rmi://hostname:port/servicename

trong đó, hostnamelà tên của một server (hoặc địa chỉ IP), portlà vị trí của dịch vụ trên máy

đó, và servicename là mô tả của dịch vụ

Mỗi khi tham chiếu đối tượng có được, thì Client có thể tương tác với dịch vụ ở xa.Các chi tiết mạng (Networking details) của yêu cầu hoàn toàn trong suốt đối với người pháttriển ứng dụng và làm việc với đối tượng ở xa trở nên đơn giản như làm việc với đối tượngcục bộ Điều này đạt được thông qua việc chia mềm dẻo hệ thống thành hai phần, stub vàskeleton

Đối tượng stub hoạt động với vai trò của một đối tượng thừa hành (proxy), chuyển tảicác yêu cầu đối tượng tới server RMI ở xa Nhớ rằng mọi dịch vụ RMI được định nghĩa làmột giao diện (interface), chứ không phải là sự cài đặt (implementation) Đối tượng stub càiđặt một giao diện RMI cụ thể, cái mà Client có thể sử dụng như bất kỳ một sự cài đặt đốitượng nào khác Tuy nhiên, không phải là stub chính nó thực hiện công việc, mà stub sẽ gửi

đi một thông điệp tới dịch vụ RMI từ xa, chờ trả lời, và trả trả lời này về cho phương thứcgọi (Calling method) Người phát triển ứng dụng không cần quan tâm về nơi chứa tài nguyênRMI, nó chạy trên Platform nào, hay nó sẽ thực hiện yêu cầu như thế nào RMI client chỉđơn giản gọi một phương thức của đối tượng thừa hành, nó xử lý tất cả các chi tiết cài đặt.Hình 5 minh họa cách thực hiện điều này; chỉ ra một RMI client gọi một phương thức đốitượng trên stub thừa hành, cái mà sẽ chuyển tải yêu cầu này tới server từ xa

Ngày đăng: 31/01/2015, 22:49

HÌNH ẢNH LIÊN QUAN

Hình 1 : Mô hình phân tầng - tiểu luận lập trình mạng viết chương trình đảm bảo gắn bó dữ liệu trên các csdl phân tán tại các server
Hình 1 Mô hình phân tầng (Trang 4)
Hình 3 – Các lớp của RMI - tiểu luận lập trình mạng viết chương trình đảm bảo gắn bó dữ liệu trên các csdl phân tán tại các server
Hình 3 – Các lớp của RMI (Trang 11)
Hình 4. Nhiều dịch vụ có thể đăng ký từ cùng registry - tiểu luận lập trình mạng viết chương trình đảm bảo gắn bó dữ liệu trên các csdl phân tán tại các server
Hình 4. Nhiều dịch vụ có thể đăng ký từ cùng registry (Trang 12)
Hình 5. RMI client stub gọi RMI server skeleton - tiểu luận lập trình mạng viết chương trình đảm bảo gắn bó dữ liệu trên các csdl phân tán tại các server
Hình 5. RMI client stub gọi RMI server skeleton (Trang 14)
Hình 6. Ứng dụng phân tán RMI sử dụng Registry - tiểu luận lập trình mạng viết chương trình đảm bảo gắn bó dữ liệu trên các csdl phân tán tại các server
Hình 6. Ứng dụng phân tán RMI sử dụng Registry (Trang 15)
Bảng 1 : Đây là các phương thức quan trọng trong quá trình thiết kết các hệ thống - tiểu luận lập trình mạng viết chương trình đảm bảo gắn bó dữ liệu trên các csdl phân tán tại các server
Bảng 1 Đây là các phương thức quan trọng trong quá trình thiết kết các hệ thống (Trang 16)
Hình 7.  Mô hình danh sách giao dịch - tiểu luận lập trình mạng viết chương trình đảm bảo gắn bó dữ liệu trên các csdl phân tán tại các server
Hình 7. Mô hình danh sách giao dịch (Trang 18)
Hình 9. Monitoring tại các server - tiểu luận lập trình mạng viết chương trình đảm bảo gắn bó dữ liệu trên các csdl phân tán tại các server
Hình 9. Monitoring tại các server (Trang 20)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w