基于Eclipse/Web Services的ADE跨平台调试的设计与实现

时间:2022-10-01 07:14:50

基于Eclipse/Web Services的ADE跨平台调试的设计与实现

摘要:该文介绍了一个ADE系统中支持多用户跨平台调试子系统的设计与实现。该子系统实现了平台可移植和模块可移植,支持从Windows 平台远程调试Linux 平台ADA程序。该系统的开发改变了当前航天领域缺少成熟完善的ADA集成开发环境的现状,具有很好的实用价值。使用的Web Services技术对于解决跨平台且交互数据量大,数据结构复杂的情况且有明显优势,也可以屏蔽掉平台的差异性,较理想地实现跨平台代码调试。

关键词:远程;多用户程序调试;跨平台;web services;Eclipse

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)29-0368-02

Design and Implementation of ADE Debugging Subsystem Based on Eclipse/Web Services

ZHU Ping, ZHU Hong-ming

(SAST-Tongji Spaceflight Embedded Computing Lab,School of Software Engineering,Tongji University,Shanghai 201804,China)

Abstract: This paper introduces the design and implementation of a debugging subsystem of ADE system which supports multi-user and multi-platform. This subsystem has been implemented the portability of platform and module,supporting remote debugging Linux platform’s ADA code on Windows platform. The development of this system remedies the absence of mature and perfect ADA integration development environment in aerospace area. It has highly practical value. The development of this system is based on Web services,which has many advantages on solving different system platform、large interactive data and complicated data structure problems and is independent of platform so as to access different system platform code debugging.

Key words: remote; program debugging for multi-user; cross-platform; Web services; Eclipse

1 引言

Ada语言语法严禁,易读性好,通常是作为长生命周期,关键任务系统的程序设计语言。一度被美国国防部强制指定为军用武器系统的唯一开发语言,并且美国航空航天局也广泛使用Ada作为航天飞机,以及各种空间探测器的编制程序语言[1]。随着我国航天技术的发展,Ada语言也逐渐成为了开发星载软件主要语言。但是当前并没有成熟完善便捷的图形化Ada集成开发环境。Linux环境下的调试器GDB只支持命令行形式的调试输入,而数量庞大的调试命令及抽象的调试参数给广大软件开发者带来很大的压力和负担。此外,受到当前大量开发人员对Linux的操作不熟练的限制,在很大程度上阻碍了星载软件的顺利开发和我国航天技术的发展。

这样的背景下,上海航天―同济大学航天嵌入式计算机技术研究中心与上海航天809所合作设计开发了Ada集成开发环境(即ADE系统)。该系统具有以下特点:1) 采用图形化界面;2) 用户界面友好;3) 支持多用户;4) 支持跨平台操作;5) 支持调试平台的选择。该系统层次化模块化的设计思想实现了良好的模块可移植性。ADE系统提供Ada程序码编写、代码编译、代码调试等功能。代码调试是软件开发过程中十分重要的一个环节,跨平台的多用户并行调试也是当前调试技术发展的结果。本文所讨论的是ADE系统中Ada代码跨平台调试子系统的设计与实现(下文中用子系统简称之)。

该子系统使用了Java 语言和c语言,利用Web Services 技术和Eclipse 插件技术来完成开发,使整个系统具有多平台性和较好的扩展性。

2 工具环境

2.1 web services技术

Web Services[2]主要指为一些功能提供接口,使其可以被Web上的其他应用程序访问的一种技术。目前,Web Services 技术体系的实现主要依靠以XML,SOAP 和WSDL等开放性技术标准为基础的一系列标准,具有松散耦合、重用性好、互操作性强等优点。这些技术标准在不同方面支持了Web Services 的架构实现,结合起来构成了整个Web Services 体系结构的协议栈[3],如图1所示。

正如上文提到调试过程中用户与系统交互的数据量巨大,数据结构复杂,使我们无法采用socket来完成所有的工作,所以我们采用了Web services技术。Web Services为ADE系统提供了一组功能并通过使用标准的接口使这组功能可重用。这些标准接口使用标准规范的XML 概念描述系统提供的服务,定义了消息格式、数据类型和传输协议等内容,但隐藏了实现服务的细节。服务器端抽象出的这些服务的接口,客户端采用了基于XML 的标准化格式通过Web 进行远程调用。

2.2 主要开发工具

在该子系统中,客户端使用Java+Apache-CXF开发调用服务,利用Eclipse SWT/JFace[4]技术开发界面服务,提高适用性,并用Eclipse插件技术将其包装成Eclipse插件,作为跨平台软件开发系统中应用Web services的有机组成部分;每层能够独立扩展,较好地克服了传统模式这方面的缺陷。该子系统利用Web Services 技术中诸如安全性高等特点,从而提高了应用效率,实现了更充分的资源共享。

Web服务器端采用Apache httpd+ gSoap等技术开发Web服务。

3 系统设计方案

该子系统基于Client/Server 结构,Client 端运行在Windows平台,Server 端运行在Linux平台。Client端由图形用户界面、远程调用平台组成;Server 端调试服务程序由Web Service通信平台、FTP通信平台、Linux用户/线程管理平台、DDD调试平台和GDB调试平台构成。下面简单介绍一下客户端和服务器端的功能:

1) Client端实现了调试命令的图形化,并实现了各种调试结果显示的图形化。用户的操作通过远程调用平台传给Server 端,并通过远程调用平台接收Server 返回的信息。

上一篇:Linux包过滤型防火墙技术的探索 下一篇:软件可靠性模型选择的SRMS算法