Kiến trúc hệ thống

Một phần của tài liệu Nghiên cứu giải pháp tự động sao lưu và khôi phục dữ liệu trong hệ thống thông tin điện tử (Trang 35)

Để đáp ứng mục tiêu, yêu cầu đặt ra giải pháp đề xuất là xây dựng một phần mềm ứng dụng để thực hiện việc sao lưu, khôi phục dữ liệu một cách tập trung thông qua giao diện Web Browser, đồng thời có thể chạy trên mọi hệ điều hành (Windows, Linux…) dựa trên công nghệ J2EE (Java 2 Platform, Enterprise Edition), trong đó ngôn ngữ sử dụng viết chương trình là java có thể chạy trên mọi hệ điều hành (Unix, Windows…) có hỗ trợ máy ảo java.

Phần mềm sao lưu, khôi phục dữ liệu phát triển dựa trên mô hình kiến trúc đa tầng trên nền Java, nhằm tách biệt các tầng xử lý nghiệp vụ, tầng truy nhập hệ thống dữ liệu và tầng trình diễn. Kiến trúc này có những lợi ích đáng kể so với kiến trúc client/server hai tầng và do đó cho phép các ứng dụng chạy nhanh hơn, có khả khả năng mở rộng và liên tác cao hơn.

Việc kết nối vào các cơ sở dữ liệu như Posgesql, MySQL, Microsoft SQL được thực hiện thông qua chuẩn JDBC.

Với kiến trúc này ta có một số ưu việt sau:

+ Khả năng mở rộng: Máy chủ ứng dụng hỗ trợ chia xẻ ứng dụng và cung cấp khả năng mở rộng tối đa. Mỗi máy chủ ứng dụng với hệ thống nhiều bộ vi xử lý hoặc cluster máy chủ ứng dụng có thể hỗ trợ một số lượng lớn các giao dịch, không phụ thuộc vào nền phần cứng, hệ điều hành và cấu hình hệ thống. Máy chủ ứng dụng được thiết kế trong môi trường phân tán gồm các truy xuất dữ liệu tốc độ cao, các giao tác với khối lượng lớn và khả năng mở rộng ứng dụng. Nhờ phân hoạch ứng dụng, máy chủ ứng dụng cung cấp giải pháp có thể mở rộng cho một số lượng lớn người dùng và giao tác. Khả năng mở rộng đạt được trong một hệ thống máy chủ nhờ thêm vào các bộ vi xử lý (CPU) hay các hệ thống chạy trên mạng. Kiến trúc chức năng (module) của máy chủ ứng dụng còn cho phép dễ dàng mở rộng hệ thống và chức năng của ứng dụng ở mọi thời điểm. Nhờ việc cài đặt những module mới, những ứng dụng có thể được cung cấp những chức năng mới. Những đặc trưng này làm cho phần mềm trên máy chủ ứng dụng có khả năng thích nghi cao với sự thay đổi môi trường hoạt động. + Khả năng quản lý theo nhu cầu công việc. Với khả năng quản lý theo trạng thái và theo phiên làm việc, máy chủ ứng dụng hỗ trợ những yêu cầu phức tạp, nhiều bước. Hệ thống quản lý sẽ hỗ trợ quản lý tài nguyên, dữ liệu, giao tác, tự động xác nhận truy vấn quay vòng, xác nhận thành công để không thực hiện lại nhiều lần. Máy chủ ứng dụng cung cấp khả năng truy xuất dữ liệu dùng chung và truy xuất một cách thống nhất các tác vụ dựa trên giao tiếp chuẩn tới những hệ thống dữ liệu không đồng nhất. + Khả năng triển khai nhanh và sử dụng lại mã nguồn: Với kiến trúc máy chủ mở rộng, người phát triển có thể thiết kế các ứng dụng nhằm đáp ứng

nhu cầu triển khai ban đầu và phát triển sau đó mà không cần viết lại mã nguồn hay sửa đổi các chi tiết kỹ thuật ứng dụng. Khả năng sắp xếp có hiệu quả tạo cho máy chủ ứng dụng một giải pháp tối ưu cho các ứng dụng yêu cầu hỗ trợ giải quyết khối lượng lớn công việc.

+ Hiệu năng cao và khả năng chịu lỗi. Máy chủ ứng dụng hỗ trợ các đặc trưng chính bao gồm đa luồng, quản lý đối tượng và cân bằng tải động ở mức độ thấp, thông qua việc cung cấp truy xuất dữ liệu hiệu quả và thời gian đáp ứng nhanh do sử dụng các dịch vụ hệ thống như quản lý hàng đợi. Nhiều thực thể (instance) của máy chủ ứng dụng có thể được cài đặt thêm trên hệ thống khi cần thiết. Nhờ kiến trúc dựa vào thành phần và khả năng cân bằng tải động và theo dõi tải, việc xử lý yêu cầu được cân bằng trên các máy chủ ứng dụng, đảm bảo tính sẵn sàng cao, thậm chí ngay cả khi khi nếu một máy chủ bị lỗi. Với khả năng phục vụ trực tuyến, các thành phần máy chủ và ứng dụng có thể được cấu hình lại, thêm hoặc bớt mà không cần tắt hệ thống.

+ Tính bảo mật. Máy chủ ứng dụng cung cấp các đặc trưng bảo mật từ A đến Z cho việc triển khai ứng dụng. Máy chủ ứng dụng cung cấp truyền thông bảo mật với máy chủ Web như hỗ trợ SSL, HTTPS và xác thực qua HTTP. Ðể làm cầu nối giữa trình duyệt và nguồn dữ liệu an toàn, máy chủ ứng dụng cung cấp khả năng xác thực người sử dụng, khả năng làm việc với cookies và điều khiển truy nhập dữ liệu đối với các giao tác an toàn. Việc ghi nhận và theo vết các sự kiện cho phép bảo vệ chống lại các truy nhập không hợp lệ và cho phép người quản trị phát hiện các hành động chủ quan, khách quan ảnh hưởng đến bảo mật.

Giải pháp xây dựng phần mềm ứng dụng để thực hiện việc sao lưu, khôi phục dữ liệu một cách tập trung thông qua giao diện Web Browser, đồng thời có thể chạy trên mọi hệ điều hành (Windows, Linux…) dựa trên công nghệ J2EE được thiết kế chi tiết như sau:

Hình 15. Mô hình các chức năng cơ bản của chương trình Giải thích:

Người dùng truy cập hệ thống: Người sử dụng chỉ cần dùng một màn hình duy nhất (trình duyệt Web) để truy cập thông tin và sử dụng các công cụ có trong hệ thống.

Hệ thống cơ sở dữ liệu: Bao gồm các cơ sở dữ liệu như MySQL, Posgresql, MircoSoft SQL, …

Hệ thống các dịch vụ của hệ thống: Bao gồm 3 chức năng (modul) chính đó là modul kết nối, modul sao lưu và modul khôi phục. Trong đó:

- Modul kết nối đảm bảo việc kết nối đến các loại cơ sở dữ liệu thông qua cơ chế JDBC. Trong đó JDBC là một cơ sở dữ liệu API chuẩn. JDBC API định nghĩa các lớp Java để đưa ra các kết nối CSDL, các câu lệnh SQL, các tập hợp kết quả, các siêu dữ liệu,... Nó cho phép một người lập trình Java đưa ra các câu lệnh SQL và xử lý các kết quả được trả về. JDBC API được thực hiện qua một trung tâm điều khiển các thiết bị (Driver Manager) mà nó thể cung cấp nhiều thông tin cần thiết để kết nối tới các kiểu cơ sở dữ liệu khác nhau. Các JDBC driver hoặc có thể được viết hoàn toàn bằng Java (pure java) để cho chúng có thể được tải xuống (download) như một phần của applet, hoặc chúng có thể được thực thi sử dụng các thư viện truy xuất cơ sở dữ liệu đã có (Database Access Libraries).

- Modul sao lưu: đảm bảo sao lưu cơ sở dữ liệu khi modul kết nối thực hiện thành công. Modul sao lưu thực hiện hai chức năng đó là đọc toàn bộ cấu trúc của các đối tượng trong cơ sở dữ liệu rồi ghi cấu trúc đó ra một tệp(file text). Sau đó thực hiện việc ghi nội dung của từng đối tượng trong cơ sở dữ liệu ra tệp văn bản (text), mỗi đối tượng tương ứng với một tệp với tên chính là tên của đối tượng của cơ sở dữ liệu. Các đối tượng trong cơ sở dữ liệu bao gồm: các bảng, các view, các hàm, …

- Modul khôi phục: Thực hiện khi modul kết nối thực hiện thành công. Đầu tiên modul sẽ thực hiện việc khôi phục cấu trúc của cơ sở dữ liệu dựa vào file text ghi cấu trúc của cơ sở dữ liệu đã được thực hiện ở modul sao

lưu, sau đó mới tiếp tục khôi phục dữ liệu vào các đối tượng tương ứng trong cơ sở dữ liệu.

Công cụ, phần mềm được dùng để phát triển hệ thống:

- Phần mềm để phát triển: Eclipse IDE 3.1M7.

- Hệ quản trị CSDL: PostgreSQL 8.x, MS SQL Server 2000. - Webserver: Apache Tomcat 5.x.

Chương trình sao lưu, khôi phục dữ liệu của các cơ sở dữ liệu được viết hoàn toàn trên ngôn ngữ Java, nó chạy trên mọi hệ điều hành (Windows, Linux..) có hỗ trợ máy ảo Java. Chương trình đã được kiểm nghiệm để sao lưu các cơ sở dữ liệu nguồn mở tại Văn phòng Trung ương Đảng và đảm bảo tuyệt đối chính xác về dữ liệu sau mỗi lần sao lưu, khôi phục.

Một phần của tài liệu Nghiên cứu giải pháp tự động sao lưu và khôi phục dữ liệu trong hệ thống thông tin điện tử (Trang 35)