標題: | 支援具網路感知應用程式的中介軟體之設計與實作 Design and Implementation of a Middleware for Network-Aware Applications |
作者: | 許凱程 Kai-Cheng Hsu 曾建超 Chien-Chao Tseng 資訊科學與工程研究所 |
關鍵字: | 行動;中介軟體;無線通訊;換手;網路感知;網路;mobile;middleware;wireless;handoff;network-aware;網路 |
公開日期: | 2005 |
摘要: | 本論文設計和實作出一個軟體發展架構,讓程式開發人員在此架構上可以方便地開發具網路感知的應用程式。
近年由於各種行動運算技術的普及化,現今市面上多數的可攜式裝置如筆記型電腦、平板電腦、個人數位助理或是智慧型手機皆已具備存取網際網路的能力。不僅如此,在這些裝置同時配備多種無線網路接取介面也成為潮流,包括有線的區域網路、無線的區域網路、GPRS,甚至是PHS或是3G。當使用者在不同的網路漫遊時,行動裝置可能切換至異質網路,對應用程式而言,由於網路狀態(頻寬、延遲、網際網路位址等)不再和以往一樣的固定了,所以應用程式需要根據網路狀態來調整自己的行為模式。
而現今要開發具網路感知的應用程式可能需要應用程式自己週期性的發出系統呼叫,以取得底層網路的資訊 (例如IP位址、路由表狀態或連線狀況),可是網路狀態的改變不會如此頻繁,而且頻繁的發出系統呼叫可能會造成系統多餘的負荷。但是如果發出系統呼叫的週期太長則會讓應用程式無法及時反應網路的改變。
此外,在多網路模組的裝置上,需要一個行動管理員根據網路情況負責換手決策的動作,而行動管理員的程式撰寫者通常都需要去處理協定堆疊的狀態,以往處理網路的程式碼會根據不同的系統而使用不同的系統呼叫,可是這樣對於程式開發人員而言,直接使用系統呼叫是很容易出錯的,而且撰寫好程式也不易移植,有可能同樣的換手策略,在別的系統上就要重寫了。
為了解決以上的問題,本論文提出了中介軟體的解決方法,並且在Linux系統上實作。在此中介軟體中我們定義了取得協定堆疊資料和改變協定堆疊內部狀態的程式界面,也提供了事件通知機制,讓應用程式可以在網路狀態改變時直接被通知。以在Linux系統上操作協定堆疊而言,程式開發人員使用本中介軟體提供的程式界面所需撰寫的程式碼比直接採用系統呼叫來的簡潔。此外,我們只需將本論文的中介軟體移殖到別的系統,對於完全採用本中介軟體所提供界面發展的應用程式,毋需作任何修改即可移植到其它的作業系統上。而架構在本中介軟體之上的應用程式只需修改該應用程式額外使用系統呼叫的部分就可以跟著移植到別的系統。 In this thesis we design and implement a software framework for programmers to develop network-aware applications on mobile devices with multiple interfaces. As wireless network and mobile technologies advance, nowadays most mobile devices on the market, such as notebooks, tablet PCs, PDAs, or smart phones, may be equipped with more than one network interfaces, such as wired LAN, wireless LAN, GPRS, PHS or 3G adaptors. Therefore, a mobile device may attach to different networks as it moves. As consequence, the applications running on the mobile device may encounter a network environment that varies more than ever, such as changes in bandwidth, delays, or even IP addresses. In order to tackle such network fluctuations, network-aware applications that can adapt themselves to the changes in network connectivity have now become a major research topic in recent years. A network-aware application may need to issue system calls periodically to retrieve lower-layer network information, such as IP addresses, Routing Table Entries and Link Connection Statuses. However network environment statuses may not change frequently and short intervals between system calls may result in wasting system resources for redundant information. On the other hand, with long intervals between system calls, applications can not react to network changes promptly. Furthermore, a mobile device with multiple interfaces needs a mobility manager to monitor interface connectivity statuses and perform handover decision accordingly. However, in order to acquire network statuses and conduct a handover, a mobility manager needs to use system calls to communicate with underlying network protocol stacks. The use of system calls not only is error-prone but also makes applications not portable. Therefore we need to rewrite the mobility manager for a different system even if it uses the same handoff policy. In this thesis we present the design and implementation of a software platform for the development of network-aware applications on Linux. The platform adopts a middleware approach to the above problems. The middleware provides application programming interfaces for the applications to interact with the underlying protocol stack and interfaces to acquire network statuses and manage the interfaces. Besides, the platform also provides an event notification mechanism for an application to register interested events of network environment changes and for the middleware to notify the application immediately when an event of interest occurs. Our implementation results show that the codes of protocol stack interaction and interface control is much more concise when using our middleware than using the system calls in Linux directly. Furthermore, by porting our middleware on another system, we can port an application program on the system without any modification to the application program if the application program uses solely the interfaces provided by our middleware. |
URI: | http://140.113.39.130/cdrfb3/record/nctu/#GT009317535 http://hdl.handle.net/11536/78745 |
顯示於類別: | 畢業論文 |