标题: 支援具网路感知应用程式的中介软体之设计与实作
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
显示于类别:Thesis


文件中的档案:

  1. 753501.pdf

If it is a zip file, please download the file and unzip it, then open index.html in a browser to view the full text content.