i
Nâng cấp động các thành phần của hệ thống
phân tán
Đỗ Thị Tuyết Mai
Trường Đại học Công nghệ
Luận văn Thạc sĩ ngành: Công nghệ phần mềm; Mã số: 60 48 10
Người hướng dẫn: TS. Trương Anh Hoàng
Năm bảo vệ: 2011
Abstract: Giới thiệu chung về việc nâng cấp. Tìm hiểu các thực trạng nâng cấp và
nghiên cứu các thành phần để nâng cấp tự động hệ thống phân tán. Hướng đề xuất cho
việc nâng cấp động hệ thống phân tán. Thực nghiệm và mô phỏng hướng đề xuất.
Keywords: Công nghệ phần mềm; Hệ thống phân tán; Thiết kế hệ thống; Công nghệ
thông tin
Content
Các hệ thống thông tin ngày nay đang từng ngày mở rộngđể phục vụ với nhiều mục
đích khác nhau, nhất là các hệ thống phân tán đang dần khẳng định với những ưu thếvề chi
phí, hiệu năng, khả năng mở rộng, độ tin cậy trong các hệ thốngứng dụng nó. Với hệ thống
phân tán như các cụm máy chủ, hệ thống ngang hàng trong quá trình sử dụng luôn thường
xuyên đòi hỏi các yêu cầu thay đổi như thêm các tính năng, cải thiện hiệu suất, sửa lỗi, mở
rộng hệ thống. Các yêu cầu đó gọi chung là việc nâng cấp hệ thống. Các hệ thống này rất lớn,
vì vậy thực tế các quản trị viên không thể nâng cấp các nút bằng tay (ví dụ, thông qua đăng
nhập từ xa) hay nâng cấp tất cả các nút cùng một lúc. Thay vào đó, phải có việc lan truyền tự
động các yêu cầu thay đổi thông qua hệ thống phân tán. Nhưng yêu cầu vẫn có thể kiểm soát
về trình tự, sự đồng nhất tại đó các nút được nâng cấp để tránh làm gián đoạn dịch vụ đang
cung cấp và không làm ảnh hưởng tới các ứng dụng có sẵn.
Vì vậy, việc nghiên cứu và đưa ra các phương pháp nâng cấp tự động cho các hệ thống
hiện nay là thực sự cần thiết. Với luận văn “Nâng cấp động các thành phần của hệ thống
phân tán”luận văn sẽ tập trung nghiên cứu làm thế nào thể đáp ứng các yêu cầu thay đổi của
hệ thống phân tán mà vẫn đảm bảo cho hệ thống hoạt động bình thường và ổn định.
Nội dung chính của luận văn được trình bày trong 4 chương. Chương 1 giới thiệu chung
về việc nâng cấp. Chương 2 tìm hiểu các thực trạng nâng cấp và nghiên cứu các thành phần
để nâng cấp tự động hệ thống phân tán. Chương 3 hướng đề xuất cho việc nâng cấp động hệ
thống phân tán. Chương 4 thực nghiệm và mô phỏng hướng đề xuất. Phần kết luận tóm tắt
kết quả đã đạt được và hướng phát triển tiếp theo của luận văn.
GIỚI THIỆU BÀI TOÁN
Hệ thống thống tin ngày nay đang từng này mở rộng để phục vụ với nhiều mục đích khác nhau. Nhất
là các hệ thống phân tán luôn đòi hỏi các yêu cầu thay đổi. Các yêu cầu đó gọi chung là việc nâng cấp hệ
thống. Các hệ thống này rất lớn không thể nâng cấp bằng tay, do vậy cần tự động nâng cấp các hệ thống.
Với lý do trên, luận văn sẽ tập trung nghiên cứu làm thế nào thể đáp ứng các yêu cầu thay đổi của hệ
thống phân tán mà vẫn đảm bảo cho hệ thống hoạt động bình thường và ổn định.
NỘI DUNG LUẬN VĂN
Mô hình hệ là một tập hợp các đối tượng tương tác thông qua gọi phương thức từ xa. Giả sử mỗi nút
là một đối tượng (định danh, trạng thái). Đối tượng chạy trên cùng một phiên bản tương thích với nhau.
Quy luật chung nâng cấp tại mỗi nút. Cài đặt futureSO để hỗ trợ các phiên bản mới; Chờ cho đến khi
lịch trình cho phép nút để nâng cấp; Nút dừng phần mềm (hủy bỏ các hoạt động trong tiến trình); Chạy hàm
chuyển trạng thái; Cài đặt pastSO để hỗ trợ các phiên bản cũ; Bắt đầu phiên bản nút mới.
Thành phần nâng cấp bao gồm: Hàm lịch trình, xác định khi nào nút nâng cấp theo trình tự nào; Đối
tượng mô phỏng, định nghĩa khả năng liên kết giữa các nút khi chạy các phiên bản khác nhau; Hàm
chuyển: xác định trạng thái chuyển của các nút từ một phiên bản tới phiên bản kế tiếp.
Với hàm lịch trình, Hàm lịch trình có thể cần thông tin cơ bản vật lý về các nút mà trên đó nó chạy.
Cần biết thông tin về trạng thái của đối tượng nút có sẵng sàng hay không. Cần biết thông tin về các nút
khác trong hệ thống, và đặc biệt là các nút mà nút của nó đang giao tiếp. Đối tượng mô phỏng bao gồm:
PastSO xử lý các phiên bản cũ; FutureSO xử lý các phiên bản mới. Gọi giữa các phiên bản.
KẾT LUẬN
Luận văn tôi đã giải quyết được một số vấn đề sau: tìm hiểu phương thức nâng cấp động cho hệ thống
phân tán, nâng cấp tự động tại mỗi nút bằng cách nhận biết có phiên bản mới cung cấp, từ đó tự động lan
truyền tới các nút tiếp theo đang được hỗ trợ. Việc nâng cấp này không làm ảnh hưởng tới các dịch vụ khác
mà hệ thống đang cung cấp. Với hướng đề xuất trên mới chỉ thử nghiệm bằng chương trình Java trên hệ
thống phân tán theo mô hình ngang hàng.
Trong thời gian gần đây, để giải quyết triệt để và nâng cao những tính năng giải quyết bài toán luận
văn có thể mở rộng them để giải quyết được: Cung cấp hỗ trợ nhiều đối tượng trên một nút, đánh giá được
trạng thái các nút dừng, khôi phục được các nâng cấp khi lỗi xẩy ra và tạo bộ cần nâng cấp.
References
[1] A. Yonezawa (1999), “ABCL: An Object-Oriented Concurrent System”, The MIT
Press.
[2] Andrew S. Tanenbaum & Maarten van Steen (2002), “Distributed Systems: Principles
and Paradigms”, Pearson Prentice Hall.
[3] Barbara Liskov(October 2001), “Software upgrades in distributed systems”,Keynote
address at the 18th, ACM Symposium on Operating SystemsPrinciples.
[4] Clavel, M. and J.Meseguer (2002), “Reflection in conditional rewriting logic”,
Theoretical Computer Science 285, pp. 245-288.
[5] Clavel, M., F. Duran, S. Eker, P. Lincoln, N. Marti-Oliet, J. Meseguer and J.
F.Quesada (2002), “Maude: Specication and programming in rewriting logic”,
Theoretical Computer Science 285, pp. 187-243.
[6] Christoph von Praun (July 2004.),“Detecting Synchronization Defects in Multi-
Threaded Object-Oriented Programs”, PhD thesis, ETH Zurich.
[7] De Oliveira Braga, C. (2001), “Rewriting Logic as a Semantic Framework for
Modular Structural Operational Semantics”, Ph.D. thesis, Pontifcia Universidade
Catolica do Rio de Janeiro.
[8] E. B. Johnsen and O. Owe (Jan. 2005.),“Inheritance in the presence of asynchronous
method calls”,InProc. 38th Hawaii Intl. Conf. on System Sciences (HICSS’05), IEEE
CS Press.
[9] Einar Broch Johnsen and Olaf Owe and Isabelle Simplot-Ry (2005), “A Dynamic
Class Construct for Asynchronous Concurrent Objects”.
[10] Ewan D. Tempero, Gavin M. Bierman, James Noble, Matthew J. Parkinso
(2008), “From Java to UpgradeJ: An empirical study”, In Proceedings of
HotSWUp'2008.
[11] Feras Karablieh and Rida Bazzi (October 2002), “Heterogeneous
Checkpointing for Multithreaded Applications”, In 21
st
Symposium on Reliable
Distributed Systems (SRDS).
[12] Iulian Neamtiu and Michael Hicks and Jeffrey S.Foster and Polyvios Pratikakis
(2007),“Contextual Effects for Version-Consistent Dynamic Software Updating and
Safe Concurrent Programming”, Technical Report CS-TR-4875.
4
[13] Iulian Neamtiu, Michael Hicks, Gareth Stoyle, andManuel Oriol (June
2006),“Practical Dynamic Software Updating for C”,In Proceedings of the ACM
Conference onProgramming Language Design and Implementation(PLDI).
[14] Kristis Makris and Rida Bazzi (2009), Immediate Multi-Threaded Dynamic
Software Updates Using Stack Reconstruction,USENIX'09 Annual Technical
Conference 13, pp.2-6.
[15] M. E. Shaddock, M. C.Mitchell, and H. E. Harrison (1995). How to upgrade
1500 workstations on Saturday, and still have time to mow the yard on Sunday. In
Proc. of the 9
th
USENIX Sys.
[16] Sameer Ajmani (August 2002),“A review of software upgrade techniques for
distributed systems”, pp.1-3.
[17] Sameer Ajmani(October 2002), “A distributed system Upgrade Scenarior”,
MIT Laboratory for Computer Science 200 Technology Square, Cambridge, MA
02139, USA, pp.1-3.