標題: | 可動態規劃之軟體系統研究 A Study of Dynamically Reconfigurable Software Systems |
作者: | 李岳峰 Yueh-Feng Lee 張瑞川 Ruei-Chuan Chang 資訊科學與工程研究所 |
關鍵字: | 動態規劃;動態軟體升級;爪哇;通訊協定;元件;dynamic reconfiguration;dynamic software update;Java;protocol;component |
公開日期: | 2004 |
摘要: | 現今有愈來愈多的軟體系統都設計為可升級,他們並不需要經由重新安裝便可獲得新功能以及錯誤修正。然而,大多數的可升級軟體都無法動態升級,即在不中斷任何執行中服務的狀態下進行升級。可使軟體動態升級的功能稱之為動態規劃,動態規劃至今仍不是常見的軟體功能,因其必須仰賴特別的系統服務,要建置這些系統服務往往需要對軟體進行大幅度的修改。
本論文對於兩種傳統上不可動態規劃的系統加入動態規劃的功能。第一,我們為通訊協定堆疊提供一個以Java為基礎的元件框架,只要依照元件框架所訂定的設計規則,程式設計者即可設計出可動態規劃的通訊協定元件。在此元件框架下,我們亦設計了一個可在傳輸中進行升級的TCP元件。
第二,雖然以元件為基礎的程式設計已成為廣泛使用的軟體再利用方法,目前所有的元件框架皆不支援動態規劃,因此我們提出一個一般用途且支援動態規劃的元件框架,其亦以Java為基礎,但可支援各種軟體升級的形式,包括相當複雜的升級形式例如多重升級,而系統的效能也藉由JNI和JVMDI使用而大幅提升。 More and more software systems are designed to be upgradeable. New functionalities and bug fixes can be introduced to these systems without reinstalling the software. However, very few of them can be upgraded dynamically, that is, the system can be upgraded without interrupting any running services. The software feature that makes a system dynamically upgradeable is called dynamic reconfiguration. Dynamic reconfiguration is still not widely deployed because it needs special system services and such services cannot be realized in current software systems with only a few modifications. This thesis incorporates dynamic reconfiguration into two types of systems that are not traditionally dynamic-reconfigurable: protocol stacks, and component frameworks. For protocol stacks, we propose a component-based protocol framework written in Java. Following the programming rules specified by the component framework, the programmers are able to develop dynamically reconfigurable protocol modules. Under this framework, we developed a TCP component that can be upgraded when the TCP protocol is still in transmission. Although component-based programming is a widespread software development technique, none of the existing component frameworks are dynamically reconfigurable. Therefore, we propose a general-purpose, dynamically reconfigurable component framework for software components. The component framework is also based on Java, but it supports various types of component updates, including rather complicated ones such as multiple update, and the performance is improved considerably by using the Java Native Interfaces (JNI) and Java Virtual Machine Debugging Interface (JVMDI). |
URI: | http://140.113.39.130/cdrfb3/record/nctu/#GT008823802 http://hdl.handle.net/11536/64001 |
顯示於類別: | 畢業論文 |