Context-Aware Adaptive Object Migration

合集下载

《2024年基于上下文感知及边界引导的伪装物体检测研究》范文

《2024年基于上下文感知及边界引导的伪装物体检测研究》范文

《基于上下文感知及边界引导的伪装物体检测研究》篇一一、引言在现实生活中,伪装物体常常由于外观的迷惑性或难以被识别的特点,成为了诸多场景中的潜在隐患。

特别是在安防、监控和侦查等应用场景中,如何快速准确地检测并识别伪装物体成为了一项迫切的需求。

本文旨在研究基于上下文感知及边界引导的伪装物体检测技术,通过深度学习和图像处理技术,实现对伪装物体的有效检测和识别。

二、相关技术背景随着计算机视觉和人工智能技术的发展,伪装物体检测技术在图像处理、机器学习等领域取得了显著的研究成果。

传统方法主要通过颜色、形状、纹理等特征对物体进行检测和识别,但在面对复杂的现实环境时,往往存在较大的误检率和漏检率。

近年来,基于深度学习的伪装物体检测技术逐渐成为研究热点,通过大量数据的训练和学习,实现对伪装物体的精确检测和识别。

三、上下文感知的伪装物体检测上下文感知的伪装物体检测是利用图像中物体的上下文信息,提高检测的准确性和鲁棒性。

本文采用基于区域的方法,将图像划分为多个区域,对每个区域进行特征提取和分类。

同时,通过分析不同区域之间的空间关系和上下文信息,实现对伪装物体的准确检测。

此外,本文还采用基于全局的方法,通过构建图像的上下文模型,对图像中的每个像素进行分类和识别,从而实现对伪装物体的全面检测。

四、边界引导的伪装物体检测边界引导的伪装物体检测是利用图像中的边缘信息,提高对伪装物体的定位精度。

本文采用Canny边缘检测算法对图像进行边缘提取,然后通过边缘信息对图像进行分割和识别。

同时,结合上下文感知技术,对分割后的区域进行特征分析和分类,实现对伪装物体的精确定位和识别。

此外,本文还利用边界信息构建目标函数,通过优化算法实现对伪装物体的精确检测和识别。

五、实验与分析本文采用公开数据集进行实验验证,对基于上下文感知及边界引导的伪装物体检测方法进行评估。

实验结果表明,该方法在面对复杂多变的现实环境时,具有较高的准确性和鲁棒性。

与传统的伪装物体检测方法相比,该方法在误检率和漏检率方面均有所降低。

深度学习的目标跟踪算法综述

深度学习的目标跟踪算法综述

深度学习的目标跟踪算法综述引言:随着深度学习技术的快速发展,目标跟踪领域也得到了巨大的发展。

目标跟踪是指在视频序列中,对感兴趣的目标进行连续的定位和跟踪,其在计算机视觉、自动驾驶、视频监控等领域有着广泛的应用前景。

本文将综述几种常见的深度学习目标跟踪算法,以便读者对这一领域有更全面的了解。

一、基于卷积神经网络的目标跟踪算法卷积神经网络(Convolutional Neural Network,CNN)是深度学习中最常用的网络结构之一。

它通过卷积层、池化层和全连接层等结构,能够自动提取图像特征。

在目标跟踪中,常用的基于CNN的算法有Siamese网络、Correlation Filter网络和DeepSORT等。

1. Siamese网络Siamese网络是一种基于孪生网络结构的目标跟踪算法,它通过输入一对图像样本来学习两个样本之间的相似度。

该网络通过训练得到的特征向量,可以用于计算待跟踪目标与骨干网络中的目标特征之间的距离,从而确定目标的位置。

2. Correlation Filter网络Correlation Filter网络是一种基于卷积神经网络的目标跟踪算法,它通过训练得到的滤波器,可以将目标与背景进行区分。

该算法通过计算滤波响应图,来确定目标的位置和尺度。

3. DeepSORTDeepSORT是一种结合深度学习和传统目标跟踪算法的方法,它通过使用CNN进行特征提取,并结合卡尔曼滤波器对目标进行预测和更新。

DeepSORT在准确性和实时性上都有较好的表现,在实际应用中有着广泛的使用。

二、基于循环神经网络的目标跟踪算法循环神经网络(Recurrent Neural Network,RNN)是一种能够处理序列数据的神经网络模型。

在目标跟踪中,RNN可以考虑到目标在时间上的依赖关系,从而提高跟踪的准确性。

常见的基于RNN的目标跟踪算法有LSTM和GRU等。

1. LSTMLSTM是一种常用的循环神经网络结构,它能够有效地处理长期依赖问题。

《2024年基于上下文感知及边界引导的伪装物体检测研究》范文

《2024年基于上下文感知及边界引导的伪装物体检测研究》范文

《基于上下文感知及边界引导的伪装物体检测研究》篇一一、引言随着科技的发展,伪装物体检测在众多领域中发挥着越来越重要的作用,如安全监控、军事侦察和图像处理等。

由于伪装物体的复杂性及背景环境的多样性,传统基于特征的检测方法已无法满足精确度和效率的要求。

因此,本研究基于上下文感知及边界引导,提出了改进的伪装物体检测算法。

该算法可以有效地从复杂的背景中识别出伪装物体,为相关领域提供更准确的检测结果。

二、上下文感知在伪装物体检测中的应用上下文感知是指利用物体与其周围环境的关系进行识别和检测。

在伪装物体检测中,上下文感知的应用主要体现在对物体与周围环境的关联性分析。

通过分析物体的形状、大小、颜色、纹理等特征与周围环境的相互关系,我们可以更好地理解物体在场景中的位置和作用,从而准确判断其是否为伪装物体。

我们采用了基于区域的方法进行上下文感知的建模。

首先,对图像进行分块处理,提取出各个区域内的特征。

然后,通过分析不同区域之间的特征关系,建立上下文模型。

最后,利用该模型对图像进行分类和识别,从而实现对伪装物体的检测。

三、边界引导在伪装物体检测中的作用边界引导是指利用图像中的边缘信息对物体进行定位和识别。

在伪装物体检测中,边界引导的作用主要体现在对物体边缘的精确提取和识别。

通过分析物体的边缘特征,我们可以更准确地判断其形状和位置,从而实现对伪装物体的精确检测。

我们采用了基于边缘检测的方法进行边界引导的实现。

首先,对图像进行预处理,增强边缘信息。

然后,利用边缘检测算法提取出图像中的边缘特征。

最后,结合上下文感知的结果,对边缘特征进行进一步的分析和处理,从而实现对伪装物体的精确检测。

四、实验与分析为了验证本算法的有效性,我们进行了大量的实验。

实验结果表明,基于上下文感知及边界引导的伪装物体检测算法具有较高的准确性和稳定性。

与传统的基于特征的检测方法相比,本算法在处理复杂背景和多变环境下的伪装物体检测问题时表现出更强的鲁棒性。

基于深度学习的无人机航拍图像语义分割研究与优化

基于深度学习的无人机航拍图像语义分割研究与优化

基于深度学习的无人机航拍图像语义分割研究与优化无人机航拍技术的快速发展为航空摄影提供了新的解决方案。

然而,从无人机拍摄的图像中准确识别和分割出地面物体的语义仍然是一个具有挑战性的问题。

在传统方法中,基于手工设计的特征提取和分类算法被广泛使用。

然而,这些方法通常依赖于领域专家的经验,且不易适应新场景和不同类型的物体。

因此,基于深度学习的无人机航拍图像语义分割逐渐成为了研究热点。

深度学习是一种通过模拟人类神经元网络结构进行学习的机器学习方法。

它的优势在于能够自动学习特征并进行有效的图像分类和分割。

基于深度学习的无人机航拍图像语义分割研究与优化主要包括以下几个方面。

首先,需要构建一个高质量的训练数据集。

训练数据集的质量对于深度学习算法的性能至关重要。

在无人机航拍图像方面,需要标注每个像素点所属的语义类别,例如建筑物、植被、道路等。

由于无人机航拍图像的分辨率通常较高,数据集的构建对人力和时间的要求比较高。

因此,采用半监督学习或利用生成对抗网络(GAN)进行数据增强等方法可以有效减少数据标注的工作量,提高数据集的质量。

其次,需要选择适合的网络模型进行训练。

在无人机航拍图像语义分割研究中,常用的网络模型包括全卷积网络(FCN)、深度残差网络(DeepResNet)和编码器-解码器网络(Encoder-Decoder Network)等。

这些网络模型具有较强的特征提取和表达能力,能够对图像进行有效的语义分割。

同时,还可以通过多尺度融合和注意力机制等方法进一步提高模型的性能,并减少模型对输入图像尺寸的限制。

第三,需要针对无人机航拍图像的特点进行模型优化。

由于无人机从空中拍摄图像时存在高程角度、遮挡等问题,这些因素会导致图像边缘信息的缺失和误差积累。

因此,在训练过程中,可以引入边缘损失函数和遮挡处理机制,以增强模型的鲁棒性。

此外,还可以利用图像增强技术对训练图像进行预处理,提高模型对光照变化和噪声等干扰的鲁棒性。

基于注意力机制与特征融合的航拍图像小目标检测算法

基于注意力机制与特征融合的航拍图像小目标检测算法

Self-attention layer
Z
HxWxd
HxWxHxWλHxWxd ×
中的性能。基于此,在 YOLOv5 s的 Backnone网络
中嵌入多头自注意力模块 ( MHSA ) ,集合了 C NN和
自注意力机制各自的优势,利用卷积进行空间下采
样,将注意力机制集中在低分辨率上,具有捕获大范
围图像特征信息的能力,能够更好地利用全局上下
更好的检测精度和实时性。曹小喜等 [8 ]改进主干 特征提取网络,并引人空间金字塔网络,实现对目 标的高精度实时检测。于晓等 [ 9 ]改进口模块以 及加入注意力机制,增加了检测精度。与两阶段 算法相比,一阶段算法更能满足航拍图像目标检 测的需求。在航拍图像目标检测算法中,徐坚 等 [ ω]在 YOLOv5网络基础上添加可变形卷积模 块,设计特征平衡金字塔,利用像素重组构建底层 大尺度特征,并提出交叉自注意力模块,改善严苛 条件下错检漏检问题。刘树东等[ 11] 提 出 一种 基于 倒置残差注意力的元人机航拍图像小目标检测算 法模型,设计倒置残差注意力。模块、多尺度特 征融合模块以及马赛克混合数据增强方法,提升 元人机航拍图像的检测精度。李子豪等 [ 12]提出自
文信息,高效地提取特征信息。
多头注意力机制如图 3所示。将输入的特征
X
图分别进行 1 xl 的 逐 点 卷积 , 从而 得 到 查 询 矩 阵
图 3 MHSA 多 头 自 注 意 力 机 制
q 、键矩阵 k 和值矩阵 V ; 同 时引 人垂直和水平方 向
上的相对位置编码 Rh 和 民 , 进行矩 阵求 和运算 ,
目标的干扰,提升对小目标检测的精度;最后,使
效整合全局特征信息,挖掘到更多有效的特征信 用损失函数 MPDIoU (Intersection over Union wi也

可调微纳滤波结构的研究进展

可调微纳滤波结构的研究进展

可调微纳滤波结构的研究进展余晓畅 许雅晴 蔡佳辰 袁梦琦 高博 虞益挺Progress of tunable micro-nano filtering structuresYU Xiao-chang, XU Ya-qing, CAI Jia-chen, YUAN Meng-qi, GAO Bo, YU Yi-ting引用本文:余晓畅,许雅晴,蔡佳辰,袁梦琦,高博,虞益挺. 可调微纳滤波结构的研究进展[J]. 中国光学, 2021, 14(5): 1069-1088. doi: 10.37188/CO.2021-0044YU Xiao-chang, XU Ya-qing, CAI Jia-chen, YUAN Meng-qi, GAO Bo, YU Yi-ting. Progress of tunable micro-nano filtering structures[J]. Chinese Optics, 2021, 14(5): 1069-1088. doi: 10.37188/CO.2021-0044在线阅读 View online: https:///10.37188/CO.2021-0044您可能感兴趣的其他文章Articles you may be interested in超快激光制备生物医用材料表面功能微结构的现状及研究进展Surface functional microstructure of biomedical materials prepared by ultrafast laser: a review中国光学. 2019, 12(2): 199 https:///10.3788/CO.20191202.0199自适应上下文感知相关滤波跟踪Adaptive context-aware correlation filter tracking中国光学. 2019, 12(2): 265 https:///10.3788/CO.20191202.0265钙钛矿材料在激光领域的研究进展Research progress of perovskite materials in the field of lasers中国光学. 2019, 12(5): 993 https:///10.3788/CO.20191205.0993液体变焦镜头的研究进展Review on progress of variable-focus liquid lens中国光学. 2019, 12(6): 1179 https:///10.3788/CO.20191206.1179细胞膜伪装的纳米载体用于光热治疗的研究进展Advances in cell membrane-camouflaged nano-carrier for photothermal therapy中国光学. 2018, 11(3): 392 https:///10.3788/CO.20181103.0392卤化物钙钛矿光伏材料的优化设计研究进展Recent research progress on optimal design of halide perovskite photovoltaic materials中国光学. 2019, 12(5): 964 https:///10.3788/CO.20191205.0964第 14 卷 第 5 期中国光学Vol. 14 No. 5 2021年9月Chinese Optics Sept. 2021文章编号 2095-1531(2021)05-1069-20可调微纳滤波结构的研究进展余晓畅1,2†,许雅晴1,2,3†,蔡佳辰2,3,袁梦琦1,2,高 博4,虞益挺1,2 *(1. 西北工业大学 深圳研究院,广东 深圳 518057;2. 西北工业大学 机电学院,空天微纳系统(教育部)重点实验室,陕西省微纳机电系统重点实验室,陕西 西安 710072;3. 西北工业大学教育实验学院,陕西 西安 710072;4. 中国科学院 光谱成像技术重点实验室,陕西 西安 710119)† 共同贡献作者摘要:传统的光谱成像系统体积较大、工作模式固定,难以满足日益复杂的应用需要。

基于边缘检测的抗遮挡相关滤波跟踪算法

基于边缘检测的抗遮挡相关滤波跟踪算法

基于边缘检测的抗遮挡相关滤波跟踪算法唐艺北方工业大学 北京 100144摘要:无人机跟踪目标因其便利性得到越来越多的关注。

基于相关滤波算法利用边缘检测优化样本质量,并在边缘检测打分环节加入平滑约束项,增加了候选框包含目标的准确度,达到降低计算复杂度、提高跟踪鲁棒性的效果。

利用自适应多特征融合增强特征表达能力,提高目标跟踪精准度。

引入遮挡判断机制和自适应更新学习率,减少遮挡对滤波模板的影响,提高目标跟踪成功率。

通过在OTB-2015和UAV123数据集上的实验进行定性定量的评估,论证了所研究算法相较于其他跟踪算法具有一定的优越性。

关键词:无人机 目标追踪 相关滤波 多特征融合 边缘检测中图分类号:TN713;TP391.41;TG441.7文献标识码:A 文章编号:1672-3791(2024)05-0057-04 The Anti-Occlusion Correlation Filtering Tracking AlgorithmBased on Edge DetectionTANG YiNorth China University of Technology, Beijing, 100144 ChinaAbstract: For its convenience, tracking targets with unmanned aerial vehicles is getting more and more attention. Based on the correlation filtering algorithm, the quality of samples is optimized by edge detection, and smoothing constraints are added to the edge detection scoring link, which increases the accuracy of targets included in candi⁃date boxes, and achieves the effects of reducing computational complexity and improving tracking robustness. Adap⁃tive multi-feature fusion is used to enhance the feature expression capability, which improves the accuracy of target tracking. The occlusion detection mechanism and the adaptive updating learning rate are introduced to reduce the impact of occlusion on filtering templates, which improves the success rate of target tracking. Qualitative evaluation and quantitative evaluation are conducted through experiments on OTB-2015 and UAV123 datasets, which dem⁃onstrates the superiority of the studied algorithm over other tracking algorithms.Key Words: Unmanned aerial vehicle; Target tracking; Correlation filtering; Multi-feature fusion; Edge detection近年来,无人机成为热点话题,具有不同用途的无人机频繁出现在大众视野。

基于深度学习的无人机目标检测与跟踪技术研究

基于深度学习的无人机目标检测与跟踪技术研究

基于深度学习的无人机目标检测与跟踪技术研究无人机目标检测与跟踪是无人机领域的一个重要研究方向,它对无人机在各种应用场景中的自主飞行和任务执行能力具有关键性的作用。

随着深度学习技术的逐渐成熟,基于深度学习的无人机目标检测与跟踪技术正在快速发展,并取得了令人瞩目的成果。

无人机目标检测与跟踪技术的研究主要涉及到目标检测和目标跟踪两个方面。

目标检测是指在无人机拍摄的图像或视频中,通过算法自动识别和定位感兴趣的目标物体。

而目标跟踪则是指在目标检测的基础上,通过连续追踪目标物体的位置、大小和形状等特征,实现对目标的持续追踪。

在基于深度学习的无人机目标检测与跟踪技术中,卷积神经网络(Convolutional Neural Network, CNN)是一种常用的深度学习架构。

它具有强大的图像特征提取和分类能力,可以自动学习并提取图像中的高级特征。

对于无人机目标检测任务,研究者们通常采用两阶段检测方法。

首先,利用卷积神经网络提取图像的特征,然后使用目标检测算法进行目标定位和分类。

其中,YOLO(You Only Look Once)和Faster R-CNN(Region-Based Convolutional Neural Networks)等方法被广泛应用于无人机目标检测任务中。

这些方法通过对图像进行密集的特征提取和分类,可以实现快速准确的目标检测。

除了目标检测,无人机目标跟踪也是一个非常重要的研究方向。

针对无人机目标跟踪任务,研究者们提出了许多基于深度学习的跟踪算法。

这些算法通常采用离线训练和在线跟踪两个阶段。

在离线训练阶段,通过大量的有标注数据对模型进行训练,在线跟踪阶段则通过实时获取的图像数据,使用训练好的模型对目标进行跟踪。

其中,Siamese网络和深度学习相关滤波器(DCF)等方法被广泛应用于无人机目标跟踪任务,它们通过对目标和背景之间的关系进行学习,实现对目标的准确跟踪。

基于深度学习的无人机目标检测与跟踪技术在无人机领域具有广阔的应用前景。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Universität UlmFakultät für InformatikVerteilte Systeme Context-Aware Adaptive Object MigrationRüdiger KapitzaHolger SchmidtFranz J. HauckBericht Nr. VS-R04-20062006-08-30Context-Aware Adaptive Object MigrationR¨udiger Kapitza Dept.of Comp.SciencesInformatik4University ofErlangen-N¨urnbergGermany rrkapitz@cs.fau.deHolger SchmidtDistributed SystemsLaboratoryUniversity of UlmGermanyholger.schmidt@uni-ulm.deFranz J.HauckDistributed SystemsLaboratoryUniversity of UlmGermanyfranz.hauck@uni-ulm.deABSTRACTCurrent systems restrict object migration support to a cer-tain language and environment.Only few systems sup-port heterogeneous environments by specifying a language-independent state transfer format and requiring the same implementation in every target language.In the con-text of Ambient Computing with mobile applications and users and context-aware adaptive software,a more platform-independent,flexible and adaptive approach for object mi-gration is required.This paper presents a novel approach for adaptive ob-ject migration in heterogeneous systems.It is also based on language-independent state transfer but uses stan-dard mechanisms using CORBA value types.This offers ORB-and platform-independent object migration between all CORBA-supported programming languages.Adaptive object-based migration is achieved by providingflexible mechanisms for reducing,expanding or transforming the state of an object before and after migration,respectively, and for adapting the provided functionality according to the current context’s requirements(e.g.resource limitations or different steps in a workflow).For this purpose,we intro-duce a separation of state,functionality and code instead of mapping particular state on particular code.Our prototype system is based on our recent platform-independent CORBA-compliant Life-Cycle–Service imple-mentation.So far,we support Java and C++,but an imple-mentation for any other CORBA-supported programming language is possible.1.INTRODUCTIONThere is an ongoing trend to integrate and link the physi-cal world to the virtual world of computing resources and applications.Techniques like RFID(radio frequency iden-tifications),sensors(e.g.BTNodes1)and mobile devices, 1http://www.btnode.ethz.ch but also positioning systems like GPS(global positioning system)and wireless communication of all kinds,push this trend.Accompanied with this evolution and the rising di-versity of systems,new concepts and techniques to provide adaptable and context-aware applications are required.Of-ten,these applications will migrate between different plat-forms during their lifetime.As a typical example,a“follow me”application(e.g.personal information manager appli-cation)can have a different interface and state on a laptop, a cellular phone or a publicly accessible web-terminal.In the first case,the full set of features is provided,whereas in case of the cellular phone some data-intensive parts are left out. Finally,in the last case,one would only provide the essential parts of the state to fulfil the demanded task for privacy rea-sons.In all cases,different hardware and software systems can be expected.In other words,we expect that a mobile application has to adapt its state,the provided functionality and the implementation basis to its execution context,the target system and application-dependent restrictions.Most recent object-based middleware and agent platforms restrict migration support to a certain programming lan-guage and environment.Only a few systems provide support for migration in heterogeneous environments such as Agent-Factory[1]or ATS[2].These rely on a custom language-independent serialisation format for state transfer and re-quire an implementation providing the same functionality in every target language.This results in high implementa-tion costs in terms of porting the system to a new platform and providing a fully-fledged implementation of a mobile object for each supported target language.The latter is es-pecially the case if only parts of the functionally should be provided or are required on certain systems.In scenarios where the ability to adapt the provided functionality and state is needed like outlined by the“follow me”example a more platform-independent,flexible and adaptive approach for object migration is required.In this paper,we propose the concept of adaptable mobile objects.These objects are capable of adapting their state, functionality and underlying code basis during migration to the requirements of the target platform and the needs of the object itself.We focus on weak migration.This means that only the state of an object is migrated but no execution-dependent state like,e.g.,values on the stack.We build on our recent platform-and ORB-independent implemen-tation of the CORBA Life-Cycle Service[3]that is basedon CORBA value types[4],a standard CORBA mechanism for passing objects by value.This service combined with a logical separation of the mobile object’s state,functional-ity and code enables support for adaptive object migration in heterogeneous environments.In fact,our current pro-totype of a dynamic adaptation service for mobile objects, the adaptive object migration(AOM)service,supports the migration of objects between Java and C++.Supporting other CORBA-supported languages requires only moderate implementation effort.To assist the developer during the implementation process,we provide a tool—the AOM tool. Additionally,we offer support for mobile objects acting as mobile agents(an object having an own thread that executes autonomously on behalf of a user).The paper is structured as follows:In Section2,we give an overview of mobile object systems and the CORBA Life-Cycle-Service specification.Then,we present our approach of implementing adaptive object migration for mobile ob-jects.In Section4,we show related work.Finally,we con-clude and discuss future work in Section5.2.MOBILE OBJECTSIn the following section,we give a brief overview about sys-tems providing object mobility in homogeneous and het-erogeneous environments.Then,we introduce our recent realisation of the CORBA Life-Cycle–Service specification. Based on this approach,we built our platform that supports adaptation of an object’s state and code.2.1Providing Object MobilityIn the past,a lot of mobile agent systems have been devel-oped,like MOA[5],Mole[6]or Aglets[7],to name a few. However,all of them only provide mechanisms for migra-tion in homogeneous environments.Most of these systems are Java-based and rely on the Java serialization ing Java serialization the whole agent object is transferred to the agent’s new location.In this case,the state of an agent is tightly attached to the actual implemen-tation.Thus,migrating a specific version to a new place with another implementation version will probably lead to serialization errors.Furthermore,no adaptation of the mo-bile agent’s state or code is supported at all. Nevertheless,mobile agent systems for heterogeneous envi-ronments have been developed as well.In[1]a platform-neutral approach of agent migration is presented,based on transferring a blueprint instead of the code.This approach can be realised by assuming that an agent consists of a set of different components.For the creation of such an agent, a special AgentFactory is specified,which is responsible for creating an executable agent consisting of the right compo-nents from a received blueprint.Thus,migration is based on transferring the blueprint and the state of an object. However,the AgentFactory approach does not provide any support for the adaptation of state or functionality.Choy et al.describe a CORBA environment supporting mo-bile agents based on mobile CORBA objects[8].Based on the Life-Cycle Service and the Externalization Service a con-cept was developed,but apparently not implemented.Fur-thermore,the concept does not support adaptation of the mobile agent’s state or code.For gaining higher interoperability of heterogeneous mobile agent systems,the Object Management Group(OMG)de-veloped a standard for agent communication:the Mobile Agent System Interoperability Facility(MASIF)[9].The Foundation for Intelligent Physical Agents(FIPA)1is an-other standardisation approach for mobile agent systems. Both,MASIF and FIPA,provide only support for interop-erability of agent platforms of different vendors,but lack support for inter-platform migration.Furthermore,they provide no support for adaptation of agents.2.2CORBA Life-Cycle ServiceCORBA is a standardized architecture defined by the Ob-ject Management Group(OMG).This architecture enables programmers to create and access objects deployed in a distributed system and provides platform-and mon middleware tasks like object lo-cation,request marshalling and message transmission are performed by the Object Request Broker(ORB).A server object is specified by describing the object’s interface using the Interface Definition Language(IDL).This interface is used to generate platform-specific stubs for the client and skeletons for the server side.Both entities act as surrogates dealing with heterogeneity and handle remote invocations and marshalling for the object.Objects are actually im-plemented by servants that are registered with an object adapter.For invoking remote methods,a client only needs a valid object reference that can be bound by the local ORB instance.CORBA specifies a set of CORBA services.These ser-vices represent optional ORB extensions and address general needs of CORBA applications.The Life-Cycle Service[10]is such a CORBA service,as it enables application-controlled object management including mobility and other life-cycle operations.Recently,we proposed a platform-independent implemen-tation of the CORBA Life-Cycle–Service specification[3]. Although our initial prototype implementation is based on Java,it is easily portable to any other CORBA-supported language and can be used in different ORBs as it just relies on standard CORBA without any ORB-specific extensions. This has been verified by a further interoperable implemen-tation in C++.The CORBA Life-Cycle Service describes the interfaces of all required components for enabling object mobility in great detail.However,the specification leaves open important issues.For migrating a mobile object,the state and the code have to be transfered(this implies determining the state of the mobile object dynamically at runtime).In principle,the specification describes these processes as an object-specific task that should be handled by the object developer.This has various disadvantages as state transfer methods have to be implemented from scratch for each object.This is error-prone and leads to serious interoperability problems in heterogeneous environments.For state transfer in heterogeneous environments we intro-duced value types.Value types are a well-known part of the 1http://www.fi/Figure1:Object Migration using the Life-Cycle Ser-vice(UML Communication Diagram)CORBA specification[4].In contrast to standard CORBA objects,value types are transferred by value(call-by-value semantics),leading to a complete copy of the value type at the receiving ing value types enables an easy descrip-tion of an object’s state using standard IDL syntax.Fur-thermore,developers do not have to write special methods for state transfer,as value types are marshalled and demar-shalled automatically by the ORB.Like standard CORBA objects,value types can also be activated.In this case, a value type has to support a standard CORBA interface which enables a call-by-reference semantics.Thus,weak heterogeneous object migration can be realised using the CORBA Life-Cycle Service in combination with value types.The Life-Cycle–Service specification defines a LifeCycleObject-interface that is implemented by our mo-bile object.The mobile object is actually a value type that supports the LifeCycleObject-interface,which,be-side other methods,offers a move()-method.In conjunction with a remote factory(GenericFactory),that enables the creation of objects on remote servers,the move()-method implements object migration.For this process,another entity—a FactoryFinder—is needed for searching for an ap-propriate factory on a remote server.The appropriate loca-tion is determined by evaluating parameterized criteria that specify possible target locations.After having found such a factory,the object aka value type can be passed by value as a method-parameter using standard marshalling and de-marshalling mechanisms.The created value type has to be activated by the factory using the original object’s object-identifier.Then,the original object has to be removed. Fig.1shows the basic workflow of an object migration using the CORBA Life-Cycle Service.As we also intented to support heterogeneous systems,in which the object’s code might not be present at thefinal location,we provided a solution to dynamic code provi-sion as well.Based on our previous work,the Dynamic Loading Service(DLS)[11],we developed a special type of GenericFactory that transparently enables loading of ap-propriate platform-specific code on demand.This allows dynamic instantiation of previously unknown objects. Furthermore,our solution enables persistent object refer-ences by maintaining the object identifier for the whole life-time of a mobile object.We achieve this by providing a special type of location service that manages the system’s object references.For avoiding a bottleneck we enable the usage of arbitrary location services.3.ADAPTIVE OBJECT MIGRATIONIn this section,we present our approach of object migra-tion supporting adaptation of state and functionality.First, we give basic background information and outline our basic concept.Then,we sketch possible implementation realisa-tions.3.1Basic DefinitionsFor transferring a mobile object in homogeneous environ-ments usually the state and the code of this object have to be transferred.Therefore,recent systems only separate the state and the code of an object.For addressing hetero-geneous platforms we introduce another abstraction:the separation of state,functionality,and the realising code. Thereby,the functionality of an object is defined by its most derived supported interface.This enables a selection of an appropriate implementation based on a supported interface as already described in Section2.2.Migration in heterogeneous environments enforces differenti-ating between implementation-dependent and-independent state.For example,a java.util.Hashtable object from the Java class library contains many implementation-dependent state-variables, e.g.,a set of diverse constants regarding the used hash-function.In heterogeneous systems it does not make sense to transfer state that is highly specific for a certain implementation,as other implementations are not able to understand these values.This is especially the case if an object is migrated between different pro-gramming languages(enabled by our implementation of the CORBA Life-Cycle Service).In such systems,just the implementation-independent state should be transferred;in case of a Hashtable-Object,this state is represented by the actual<key,value>-pairs.To sum it up we consider:•Implementation-dependent state as values that are spe-cific for a certain implementation variant of an inter-face•Implementation-independent state as values that are needed by any possible implementation to provide the functionality defined by an interface and values that would be considered as information loss if they were omittedWe identified the fact that in various scenarios only parts of the object state are accessed,can be available or should be accessible.If a mobile object moves from one host to an-other one for fulfilling various steps in a complex workflow, there is data which is not needed on every target platform. Thus,there is state that we call passive on these platforms. Going back to the“follow me”example from the introduc-tion,the whole state of the personal information manager (PIM)application can be considered as active state on a laptop,as all data can be accessed and modified.As this application object moves to a cellular phone certain data items might not be accessible due to device limitations,like private movies or pictures from the last holiday.In this case,the movies and pictures are passive state that is not available.If the PIM application is accessed from a public web-terminal,huge parts of state might not be transferred due to privacy reasons.Thus,this information can also beFigure2:Adaptation of State According to an Ob-ject’s Functionalityconsidered as passive state as it should not be accessible. We define active and passive state as follows:•Active state is represented by the state variables that are used and needed for fulfilling the object’s function-ality at a certain location•Passive state is the state of an object that is not needed,not available or not accessible at a certain lo-cation.We believe that in all these three exemplary cases not only the state of an object changes or should be changed but also the interface and the implementation that are provided at the target platform.Fig.2shows the adaptation of state and interface on demand according to an object’s functionalities’requirements.For this purpose,parts of the full state might become passive.However,this passive state might become active again,whenever the object migrates to another loca-tion.Thus,even the passive state should be stored,as it might be used again later.3.2Basic ConceptFig.3shows our concept of adaptive object migration (AOM).We enable adaptation of an object’s state accord-ing to the required functionality as specified by the interface (cf.Section3.1).In contrast to previous work,we enable at-taching state to a special functionality instead of attaching an object’s state to a special implementation(represented by code).For migrating a mobile object,just the state and a description of the required functionality have to be trans-ferred to the new location(cf.Fig.2).At the new location, our factory is able to create an object that fulfills these re-quirements containing the active state,which is specified by the required functionality.Our infrastructure supports passivating parts of the state in special staterepositories Figure3:Basic Concept of Adaptive State Transfer Mechanismthat might be local or remote regarding the current object. We support adaptation of the mobile object whenever it en-ters or leaves a location.At these intervention points(State Adaptors),we enable activating and passivating state for fu-ture implementations of the required functionality.Support-ing adaptation on the origin side enables a secure transfer of sensitive data and supports target-systems that are not capable of our adaptive object migration implementation2. On the other side,the possibility of adaptation on the target side minimizes adaptation efforts on the origin side and,in case of bad network connectivity,allows receiving and stor-ing the complete state for further local adaptation steps. This requires a local state repository as shown on Host D in Fig.3.3.3Implementation DraftIn this section,we present an implementation draft for real-ising our introduced concept for adaptive object migration.As afirst step,the developer has to decide which kinds of functionalities should be supported.These kinds of func-tionalities represent the different facets3,which the mobile object can adopt during it’s life cycle(this affects the be-haviour of the object but not the actual object identifier;cf. Section1).For any functionality,an IDL interface and the correspond-ing value type(supporting the interface and containing the active and implementation-independent state)has to be specified.For supporting our adaptive object-migration ser-vice the value type has to support the LifeCycleObject interface as well.In the next step,the developer has to run a tool—our AOM tool—that will create a union value type called 2However,these target-systems have to support the CORBA Life-Cycle Service.Then,migration of already adapted value types is possible.3According to the current context,an object with a spe-cific object identifier can have different facets represented by different functionality,state and codevaluetype A {private i n t c o u n t e r ;private S t r i n g message ;};valuetype B {private i n t c o u n t e r ;private S t r i n g l o g i n ;};valuetype a o m f u l l {private i n t c o u n t e r ;private S t r i n g message ;private S t r i n g l o g i n ;};Figure 4:Two Value Types and the resulting aom full ValueTypeFigure 5:Process of Object Migration on the Origin Side (UML Communication Diagram)aom full <id >containing the union set of state variables of all defined value types (representing the facets of a mobile object—represented by the same object identifier but of-fering different functionality).This is done using a simple name matching algorithm,i.e.,if a state variable has the same name in different value types,then we assume that these state variables represent identical data (cf.Fig 4).Defining value types containing states with identical names but different types results in an error.Thus,our AOM tool creates a value type that contains the complete set of state variables.This state might become active and passive dur-ing runtime,respectively.After having run the AOM tool ,the developer has to imple-ment the actual value type realisations for all the program-ming languages and platforms that should be supported (supporting all facets of the mobile object).This also in-cludes the implementation of the life-cycle operations.How-ever,this effort is quite moderate because the whole mi-gration functionality is provided by the move()-method of the provided AOMManager (cf.Figure 5).This method just has to be called from within the LifeCycleObject ’s move()-method.An implementation of the other life-cycle opera-tions is simple as well.In [3],we describe this processin detail.3.3.1AOMManagerThe AOMManager is responsible for the adaptation processon the origin side (cf.State Adaptors,Fig.3).Further-Figure 6:Exemplary Hierarchy of Possible Keys in the FactoryFinder ’s Repository more,it is also responsible for searching for an appropriate target location for a pending migration.For this task,a known FactoryFinder is queried on possible factories rep-resenting possible migration targets within the scope of the FactoryFinder .These factories have to fulfill given criteria .Our offered FactoryFinders support criteria defining concrete locations (e.g.,DNS-Name,IP-Address)and discrete locations specified by a required functionality (see Section 3.3.2).The result of the query is a list of appropriate factories,which are able to create a copy of the mobile object for re-alising the migration.Our AOMManager is able to select the “best”factory that is used for object migration.In our pro-totype implementation,we use the factory at the head of the list,but obiously user-defined policies can be implemented by providing a custom selectFactory()method as well (cf.Fig.5).For supporting adaptation on the origin side our AOMManager is able to save the active state of the value type to a trusted state repository.Therefore,a saveState()-method of the value type,which has been generated by our AOM tool be-fore,is called.Then,this state is stored to the state reposi-tory containing the current aom full <id >value type.In the next step,the AOMManager either adapts the value type to the target value type or sends the original value type—which can be adapted at the target side by the factory—to the factory by invoking the remote method createFromValueType .Passing the value type as a param-eter results in transferring a description of the functionality and the affected state to the factory.The application devel-oper decides which variant is processed by passing a boolean parameter (local adaptation ).If the mobile object has been created successfully at the factory,the original object is removed and the reference in the location service is updated (see [3]).3.3.2FactoryFinder As already mentioned in Section 3.3.1,the FactoryFinder represents some kind of abstract location within the CORBA Life-Cycle–Service specification.It provides meth-ods for querying for appropriate factories acting as tar-gets for object migration.For fulfilling this task,the FactoryFinder has to maintain a repository of possible fac-tories within the FactoryFinder ’s domain.Fig.6shows our realisation of the repository.Our reposi-tory is able to store factories according to their location andprovided functionality.Therefore,our factory enables regis-tering and deregistering factories including their metadata. The FactoryFinder’s find factories method allows to search for registered factories residing at particular locations and providing particular functionalities,respectively(a list containing every appropriate factory is returned).For this purpose,find factories receives a CORBA Naming Ser-vice NameComponent sequence.A NameComponent consists of an<identifier,kind>-pair of strings.We specified two possible kind-values for our FactoryFinder.For a func-tionality we specified“IFC”and for a location we specified “LOC”.The particular identifier represents the functionality and the location,respectively.As find factories receives a NameComponent-sequence,searching for specific functional-ities at specific locations within the FactoryFinder’s repos-itory is possible as well.3.3.3FactoryOn the factory side,a value type is automatically created according to the transferred specifications during the un-marshalling process.Our factory is able to use the Dynamic Loading Service(DLS)to load locally unavailable code on demand.This enables instantiating previously unknown ob-jects.If needed,the factory is able to adapt the value type according to the actual platform’s and criteria’s require-ments.In this case,the passivated part of the state is stored to the trusted state repository again.The active state is then loaded from the repository into the adapted value type implementation using the value type’s loadState()-method (generated by the AOM tool as well).After this process,the value type is activated,which enables accessing the object from remote clients.3.3.4State RepositoryThe State Repository is an entity that is able to store the current state of a mobile object.This entity is a plain CORBA object that can be located locally or remotely to the mobile object.The state repository contains the cur-rent aom full<id>value type and offers two methods for loading and saving the state,respectively(load state(), save state()).The load state()method takes the de-scription of the desired value type as a parameter and,thus, is able to return the appropriate part of the state.The actual implementation of the State Repository is left open to the developer. E.g.,the State repository can be realised by serialising the mobile object’s state to external storage(reducing the actual memory load).For reducing communication costs on mobile pervasive devices,it can be useful to have a local State Repository.Then,further adap-tations can be done locally.3.4Persistent Object ReferencesIn heterogeneous environments containing mobile objects, persistent object references are needed for clients to access the mobile object anytime.We realised these object refer-ences using a special location service(see[3]).However, adapting the functionality(interface)of a mobile object might result in remote call exceptions on the client side, as particular methods might not be present any more.This problem can be solved by asuming that the mobileobject Figure7:Public and Location-Dependend Interface of a Mobile Objecthas a public interface that does not change and a location-dependend interface that might change(cf.Fig.7).This can be realised by a value type that has to support the public interface while optionally supporting other location-dependend interfaces.Thus,the location-dependend inter-face is just used for platform-internal purposes.Neverthe-less,this interface is remotely accessible and can be used by clients(these have to handle exceptions if a special location-dependend interface is not existent).As already mentioned in Section1,our system is able to re-alise an agent that is able to adapt to the current location’s needs.An adaptive mobile agent(AOM-agent)will have management methods for intervening into the agents work-flow(public interface).Furthermore,that agent will also offer methods that can be used on the current local node, e.g.,for collecting data(location-dependend interface).“Careful”persistent references can be realised by a mobile object that is just accessed using an object-specific adapter. This adapter is able to throw exceptions in case of non-existent methods.For supporting the client,these excep-tions contain the interfaces offering the needed method4. Thus,the client is able to adapt the mobile object to cur-rent needs.4.RELATED WORKAlmeida et al.propose a dynamic reconfiguration service for CORBA[12].This service is able to upgrade objects without taking them offline.This entails operations for migration, replacement,addition and removal of managed objects.Ob-jects should provide methods for inspecting and modifying the state.This breaks the OOP concept of encapsulation, as internal state is publicly accessible,and in contrast to our approach object developers have to implement these meth-ods on their own.Furthermore the dynamic reconfiguration service does not allow switching the object’s interface or state adaptation.The work of Garbinato et al.introduces Frugal Objects (FROBs)for mobile computing[13].FROBs are objects within an event-based computing model,which provide adaptability according to their interface(which is repre-sented by events that can be accepted)and their code.These objects support migration as well,but a drawback of this solution is the requirement of using a special non-intuitive 4The adapter can automatically be generated by our AOM tool and has to catch CORBA BAD OPERATION ex-ceptions and forward system-defined exceptions containingthe needed interface.Nevertheless,by calling the remote object’s get interface def()-method the currently sup-ported interface can be obtained.。

相关文档
最新文档