CHƯƠNG TRÌNH PHÂN TÁN ĐẢM BẢO GẮN BÓ DỮ LIỆU TRÊN CÁC SERVER NGANG HÀNG

23 555 0
CHƯƠNG TRÌNH PHÂN TÁN  ĐẢM BẢO GẮN BÓ DỮ LIỆU TRÊN CÁC SERVER NGANG HÀNG

Đ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

Với hệ thống mạng cục bộ và internet phát triển vượt bậc, 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 lý do đó nhóm chúng em trình bày chủ đề “ Xây dựng chương trình phân tán đảm bảo gắn bó dữ liệu trên các Server ngang hàng”. Nhóm dùng công cụ ngôn ngữ lập trình Java và bộ thư viện hỗ trợ lập trình mạng phân tán RMI. Ứng dụng thuật toán danh sách di chuyển . Nhóm xây dựng một hệ thống gồm 3 Server và một công cụ module Monitor nhằm giám sát cập nhật dữ liệu giữa 3 Server để đánh giá tính gắn bó dữ liệu giữa các server với nhau.

Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA TIỂU LUẬN LẬP TRÌNH MẠNG 1.2 Đề tài : CHƯƠNG TRÌNH PHÂN TÁN ĐẢM BẢO GẮN BÓ DỮ LIỆU TRÊN CÁC SERVER NGANG HÀNG Giáo viên hướng dẫn: PGS.TS. LÊ VĂN SƠN Học viên thực hiện: LÊ VĂN HOÀNG VŨ- PHẠM THỊ HÀ PHƯƠNG Lớp: Khoa học máy tính – Khóa 11 Niên khóa: 2009 - 2011 GIỚI THIỆU Trang 1 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng Với hệ thống mạng cục bộ và internet phát triển vượt bậc, 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 lý do đó nhóm chúng em trình bày chủ đề “ Xây dựng chương trình phân tán đảm bảo gắn bó dữ liệu trên các Server ngang hàng”. Nhóm dùng công cụ ngôn ngữ lập trình Java và bộ thư viện hỗ trợ lập trình mạng phân tán RMI. Ứng dụng thuật toán danh sách di chuyển . Nhóm xây dựng một hệ thống gồm 3 Server và một công cụ module Monitor nhằm giám sát cập nhật dữ liệu giữa 3 Server để đánh giá tính gắn bó dữ liệu giữa các server với nhau. Trang 2 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng CHƯƠNG 1 XÂY DỰNG CHƯƠNG TRÌNH PHÂN TÁN ĐẢM BẢO GẮN BÓ DỮ LIỆU TRÊN CÁC SERVER NGANG HÀNG. - 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. I/ 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: Trang 3 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng - 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. 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. Trang 4 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng Đề 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. II/ 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: 1. Hệ thống gồm nhiều server ( 3 Server ) được bố trí tại nhiều nơi khác nhau và các server chứa CSDL giống nhau. 2. Cho phép nhiều đại lý cập nhật thông tin khách hàng đồng thời. 3. 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. 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,… Trang 5 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang 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)} Sever 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. 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ì Trang 6 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng 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ó. Trang 7 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng CHƯƠNG 2 : LẬP TRÌNH HỆ THỐNG ĐA SERVER BẰNG NGÔN NGỮ JAVA. 2.1 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 ảo Java 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ên cá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ác phươ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ủa dị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ềm phá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í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 Trang 8 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng 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 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 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.2 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ặc ngườ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 tham chiế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 4 minh họa các dịch vụ đăng ký với một registry RMI đơn. Được kết hợ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ác client 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ản trị 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. Trang 9 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng Hình 4. Nhiều dịch vụ có thể đăng ký từ cùng registry 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 Reference Link) 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 giao thứ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ểu diễn một tham chiếu đối tượng từ xa: rmi://hostname:port/servicename trong đó, hostname là tên của một server (hoặc địa chỉ IP), port là 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át triể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ượng cụ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ải cá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 Trang 10 [...]... Server còn lại là Server2 và Server 3 Trang 21 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng 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 Trang 22 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các. .. bảo gắn bó dữ liệu trên các server ngang hàng MỤC LỤC Trang 1 Chương 1 : Xây dựng chương trình phân tán đảm bảo gắn bó dữ liệu trên Server ngang hàng 2 I/Kỹ thuật lập trình Server – Server giải quyết bài toán cập nhật dữ liệu 2 II/ Triển khai hệ thống 4 2 Chương 2: Lập trình hệ thống đa Server bằng ngôn ngữ Java 7 2.1 Giới thiệu mô hình đối tượng phân tán RMI 7 2.2 Cơ chế hoạt... toàn bộ các thay đổi của giao dịch kể từ khiu nó bắty đầu thự hiện 4.2 Nội dung của danh sách di chuyển Giải thuật danh sách di chuyển được trình bài như sau: 1 Khởi động các modul trên file Server, gồm các module MoblistHandle, ClientHandle, hệ thống cho phép người sử dụng cập nhật dữ liệu từ các chương trình client Trang 17 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng 2... người dùng dữ liệu sẽ được chèn vào các cơ sở dữ liệu Trang 16 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng CHƯƠNG 4 DANH SÁCH DI CHUYỂN 4.1 : Một số khái niệm về giao dịch : - Giao dịch là gì? Tập hợp của hàng loạt các sự kiện mà tất cả điều phải hoàng tất đến cùng hoặc không có bất cứ sự kiện nào được thực hiện Thông thường khi thiết kế các ứng dụng người ta có thể phân chia... với người lập trình, việc gọi các đối tượng ở xa cũng tương tự như việc gọi các đối tượng cục bộ • Tải mã bytecode động RMI cho phép tải mã bytecode của đối tượng về máy cục bộ và truyền dữ liệu đến đối tượng ở xa Trang 11 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng Hình vẽ 6 dưới đây minh hoạ một ứng dụng phân tán RMI sử dụng registry để xác định tham chiếu đến các đối tượng... java.lang.System.out.println("Starting Server1 "); } public synchronized String getInformation(java.lang.String s ) { java.lang.String s1 = ""; // Server1 tìm kiếm đối tượng xử lý từ xa của Server2 để xin giúp đỡ try{ ser2= (Server2 )Naming.lookup("rmi://"+nameserver2+":1099 /Server2 "); Trang 13 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng s1= ser2.receive(s); // gọi phương thức của receive(s) của Server2 ... argv[0] +":1999 /Server1 "); String message = obj.getInformation("Help me!!") ; System.out.println(message); }catch (Exception e){ System.out.println ("Client exception: " + e); } } } Việc xử lý đa Server này được áp dụng cho các trung tâm tích hợp dữ liệu lớn ở khắp nơi trên thế giới như Yahoo, Google.v v Trang 15 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng CHƯƠNG 3: XÂY DỰNG... chúng ta sẽ trình bày ở phần sau Trang 12 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng 2.3.1/ Đặt vấn đề: Với sự phát triển mạnh mẻ của Internet thông tin được cất trên các Server nằm rải rác trên khắp mọi nơi muốn tìm ra một thông tin hữu ích không phải là chuyện dễ dàng và rất tốn kém, tốn kém về mặt thời gian, vật chất, tiền bạc và con người Các nhân viên lập trình đã giải... này cũng cho thấy RMI sử dụng Webserver để tại mã bytecode của đối tượng ở xa khi cần thiết Hình 6 Ứng dụng phân tán RMI sử dụng Registry 2.3 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... serverList2=(DSDCServerInt) Naming.lookup(serverName3); tmpID = serverList2.connectionList(serverID); //System.out.println(tmpID); Trang 20 Chương trình phân tán đảm bảo gắn bó dữ liệu trên các server ngang hàng if (tmpID != serverID) { System.out.println("Connected to " + serverName3); } // Thread.yield(); } catch(Exception e) { System.out.println("Failed connect to : " + serverName3); //e.printStackTrace(); } Thread.yield();

Ngày đăng: 12/11/2014, 08:52

Từ khóa liên quan

Mục lục

  • 1.2 Đề tài :

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

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

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

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

Tài liệu liên quan