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 579 0
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

Đ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

Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn I H C À N NGĐẠ Ọ Đ Ẵ KHOA CÔNG NGH THÔNG TINỆ  BÁO CÁO MÔN H CỌ L P TRÌNH M NGẬ Ạ L P TRÌNH M NGẬ Ạ TÀI :ĐỀ 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 Ạ GV hướng dẫn : PGS.TS Lê Văn Sơn Chuyên ngành : Khoa Học Máy Tính Khóa : 24 Học viên : Phùng Hữu Đoàn Học viên thực hiện: Phùng Hữu Đoàn Trang: 1 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn 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ãnh thổ 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ủa cô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ải thố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à ta phá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ôi trườ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ụng chạ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 nhau ngườ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ên nhiề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ữa cá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ần mề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 . Học viên thực hiện: Phùng Hữu Đoàn Trang: 2 À N NG, 05/2012Đ Ẵ Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn Đố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. Học viên thực hiện: Phùng Hữu Đoàn Trang: 3 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn 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àng nhiề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ường Web. 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ất cá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 Học viên thực hiện: Phùng Hữu Đoàn Trang: 4 Tầng Users Tầng CSDL Tầng Trung Gian Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn 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ình Server – 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 server nà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. Học viên thực hiện: Phùng Hữu Đoàn Trang: 5 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn 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ân tá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ập trì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. 1.2 Triển khai hệ thống. Với bài toán cơ sở dữ liệu bán hàng từ xa hệ thống mạng phân tán có những đặt điểm sau: a. Hệ thống gồm nhiều server ( 4 Server ) được bố trí tại nhiều nơi khác nhau và các server chứa CSDL giống nhau. 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á cung cấ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ài toá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ể thu nhỏ bài toán cơ sở dữ liệu gồm bảng khách hàng. Sanpham(Masp,Tensp, Soluong,Dongia) Người sử dụng muốn được cung cấp thông tin về một yêu cầu nào đó qua câu truy vấn trên Server tiếp nhận câu truy vấn và xử lý câu truy vấn rồi chuyển lại cho người yêu cầu. Có một khách hàng ở địa điểm A muốn biết thông tin về giá cả, số lượng của mặt hàng có tại đại lý B tại địa điểm B ở xa để làm được việc này hệ thống phải xử lý các công việc nhất định. 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 . đây chí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 B thà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ống cụ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ép thay đổ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. Học viên thực hiện: Phùng Hữu Đoàn Trang: 6 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn 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 tra quyề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êu cầu. Đây là mô hình Client / Server ( khách / chủ) Client gởi yêu cầu ( thông điệp) đến server. 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 Thongke Traketqua(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ôi trường Web. Vậy chương trình có thể triển khai trên Server và trên Client chỉ cần trình duyệt Web mà thôi (các trình duyệt Web như Internet Explorer, Netcape Navigator). Web Server 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ểm Server nhận được thông điệp và đọc nó, có thể không đúng khi khi client nhận được. Điều nà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ện tạ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ều Client cùng truy xuất vào một CSDL. Học viên thực hiện: Phùng Hữu Đoàn Trang: 7 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn 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ượng hàng hoá tại vị trí ấy không có. Học viên thực hiện: Phùng Hữu Đoàn Trang: 8 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn 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ết rằ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. C1, C2, , Cn 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 Ci, 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 C1, C2, , Cn là các Client truy cập vào Web Server bằng trình duyệt Web. Các yêu cầ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ành cô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 Học viên thực hiện: Phùng Hữu Đoàn Trang: 9 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn một yêu cầu từ các Ci, 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ỗi Server. 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 được dựa theo thứ tự ưu tiên SELECT, DELETE, UPDATE, INSERT. Sau khi thành lập danh sách di chuyển, Servlet chuyển danh sách di chuyển này cho TPC-Server-App đầu tiên trong danh 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ật toá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 { public ResultQueryList queryApp(MovableList movableList,int index) throws RemoteException; } Nếu quá trình xử lý tại bất kỳ một TPC-Server-App nào bị lỗi thì kết quả trả về là null. Dựa vào kết quả trả về này, các TPC-Server-App commit hoặc transaction đang quản lý. Như vậy, khi TPC-Server-App đầu tiên nhận được danh sách di chuyển, TPC-Server-App bắt đầu một transaction để thực hiện các câu lệnh SQL truy vấn CSDL cục bộ thông qua kết nối CSDL được lấy từ ConnectionPool cục bộ .Tiếp theo, TPC-Server-App tăng chỉ mục hiện tại của danh sách di chuyển lên 1 và chuyển danh sách di chuyển này đến TPC-Server- App kế tiếp. Quá trình này được lặp lại cho đến khi kết thúc danh sách di chuyển. Tại Server cuối cùng trong danh sách di chuyển, nếu việc truy vấn CSDL cục bộ thành công, TPC- Server- App commit transaction và trả về kết quả là ResultQueryList khác null. Dựa vào kết quả trả về này, Server đứng trước trong danh sách di chuyển sẽ commit hoặc rollback transaction cục bộ và trả về kết quả cho Server liền trước. Khi Servlet nhận được kết quả là null có nghĩa là xử lý không thành công. Ngược lại, Servlet sẽ tiếp tục xử lý kết quả nhận được để trả về cho Client. Học viên thực hiện: Phùng Hữu Đoàn Trang: 10 [...]... sở dữ liệu phân tán 5 Lê Văn Sơn, Phạm Đình Hân, Phát triển giải pháp kỹ thuật đảm bảo gắn bó dữ liệu cho các hệ thống thông tin đào tạo trên mạng Internet/Intranet Học viên thực hiện: Phùng Hữu Đoàn Trang: 23 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn MỤC LỤC Chương 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 1.1 Kỹ thuật lập trình Server. .. form dữ liệu phân tán tại tất cả các server trong hệ thống, sau đó hiện thị tức thời tất cả dữ liệu cập nhật vào từng server, chúng ta có thể căn cứ vào các form dữ liệu này để đánh giá tính gắn bó dữ liệu giữa các server trong hệ thống Học viên thực hiện: Phùng Hữu Đoàn Trang: 19 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn MONITORING SERVER 4 Hình 9 Monitoring tại các server. .. Phùng Hữu Đoàn Trang: 14 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn Hình 6 Ứng dụng phân tán RMI sử dụng Registry 2.5 Xây dựng bài toán bằng Java RMI Chúng ta xây dựng bài toán nêu trên theo mô hình đối tượng phân tán RMI Hệ thống gồm nhiều Server chứa các chương trình và cơ sở dữ liệu giống nhau, cơ sở dữ liệu tại các Server phải đảm bảo gắn bó, công việc này được thực hiện... tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn CHƯƠNG 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 Module Client: phần giao diện của module client là hiển thị form nhập dữ liệu Module client sau đó sẽ triệu gọi đối tượng từ xa trên hệ thống đa server để cập nhật dữ liệu vào cơ sở dữ liệu (Hình 8 Giao diện nhập liệu trên Client ) Module Server: ... dựng các ứng dụng trên môi trường tính toá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ới cấ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. .. xa và cung cấp các tham chiế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 Học viên thực hiện: Phùng Hữu Đoàn Trang: 11 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn 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ử... vòng tương tự 3 Server còn lại là Server2 , Server 3 và server 4 Học viên thực hiện: Phùng Hữu Đoàn Trang: 22 Bài tập tiểu luận: Lập trình mạng nâng cao Gvhd: PGS.Ts Lê Văn Sơn TÀI LIỆU THAM KHẢO 1 Hệ tin học phân tán : tác giả Lê Văn Sơn Nxb Đại học quốc gia thành phố Hồ Chí Minh 2 Java Lập trình mạng : Nguyễn Phương Lan, Hoàng Đức Hải Nhà xuất bản Lao động – Xã hội 3 Các tài liệu trên Internet 4 Lê... Module này đảm nhận toàn bộ các chức năng chính của giải thuật danh sách di chuyển Module này được cài trên các server khác nhau được đánh thứ tự từ 1 đến 3 Mỗi server thực hiện chức năng lắng nghe các yêu cầu từ module client cũng như từ các module server khác nhằm triển khai giải thuật gắn bó dữ liệu là giải thuật danh sách di chuyển trình bày ở trên Ngoài ra, để giám sát quá trình cập nhật dữ liệu của... trình Server – Server giải quyết bài toán cập nhật dữ liệu 3 1.2 Triển khai hệ thống 4 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 7 2.1 Đặt vấn đề 7 2.2 Mô tả hoạt động .7 2.3 Giới thiệu mô hình đối tượng phân tán RMI 9 2.4 Cơ chế hoạt động của RMI .10 2.5 Xây dựng bài toán bằng Java RMI .13 Chương 3:... Client cập nhật dữ liệu vào một Server nào đó Trên mỗi server chứa hai module xử lý chính: • Module giao tiếp với Client Module này có tên là ClientHandle, nó có chức năng nhận dữ liệu từ các chương trình Client để lưu vào cơ sở dữ liệu • Module xử lý danh sách di chuyển Module này có tên MobListHandle, nó có chức năng nhận dữ liệu từ module ClientHandle và cập nhật vào tất cả các server theo giải . 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ó. 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ết rằng, tại vị trí nguồn của. 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

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

Từ khóa liên quan

Mục lục

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

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

  • 2.5 Xây dựng bài toán bằng Java RMI

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan