Eclipse

2024-07-29

Eclipse(精选十篇)

Eclipse 篇1

而在Eclipse平台中最有特色的就是它的插件体系结构,它充分体现了Eclipse的设计思想。在Eclipse中实现的绝大部分功能是由相应的插件完成的,比如Workbench UI插件完成界面的外观显示,Resource Management插件完成维护或生成项目或文件等资源管理工作,而Version and Configuration Management(VCM)插件则负责完成版本控制功能等。虽然以上提到的每一个功能绝大多数是IDE环境所必备的功能,Eclipse却把它们都做成了插件模式,甚至用来开发Java程序的开发环境(Java Development Tooling,JDT)也只不过是Eclipse系统中的一个普通插件而已。

1 Eclipse平台体系结构

Eclispe平台本身既是一个开发平台,也是一个运行平台。Eclipse平台的体系结构如图1所示,从图1可以看出Eclipse平台的主要组件和APIS。它包括几个核心件:Workbench、插件开发环境PDE、Java开发工具集JDT、Eclipse平台内核Platform-runtime,其底层由标准Java2虚拟机支持。

Eclipse平台的目标不仅仅是提供一个IDE,还提供了一个插件开发环境(Plug-in Development Environment,PDE),该环境使得开发人员可以根据需要随时在开发环境中添加新的插件,从而能够轻松构建与Eclipse环境无缝集成的开发环境。首先分析一下平台的体系结构:

“Platform Runtime”(平台运行库)是Eclipse平台的核心[1],它是一个微内核,是插件的核心引擎,负责管理插件注册表和插件。它位于平台核心中最低级别的部分,由org.eclipse.osgi org.eclipse.core.

runtime两个插件组成,其他所有的插件都依赖于这两个插件。

“Workspace”(工作空间)是负责管理用户资源的插件。用户资源包括用户创建的项目和项目中的文件等。Workspace相当于Model-View-Controller结构中的Model。

“Workbench”(工作台)插件为Eclipse提供用户界面。它为添加用户界面(UI)组件(例如视图、菜单)定义了扩展点(Extension Points),同时也提供了附加工具集(SWT和JFace)用于建造用户界面。工作台是在JFace/SWT和平台运行库的基础上构建的。Workbench相当于Model-View-Controller结构中的View。Workbench和Workspace是Eclipse平台的两个必备的插件,它们提供了大多数插件使用的扩展点。

“SWT(Standard Widget Toolkit,标准小窗口工具箱)”是Eclipse自己的图形API包,作用和Java的AWT/Swing GUI API一样。

“JFace”是使用SWT实现的一个用户界面工具包,用于处理常见的用户界面编程任务,使工具开发者专注于实现插件的功能,而不必在界面设计上花过多的精力。

“Help”(帮助系统)定义了插件扩展点,提供一个附加的导航结构,允许工具以HTML文件的形式添加文档。

从上面的分析可以看出来整个Eclipse体系结构就像一个大拼图,可以不断地向上添加插件。同时,现有插件上还可以再加插件。可以说,在Eclipse平台中,几乎一切都是插件。从架构上来讲,Eclipse基本采用的是“内核+核心插件+定制插件”的结构体系,除了内核部分外均为插件。

2 Eclipse插件体系结构

2.1 插件定义

Eclipse官网上将插件定义为[2]:插件(Plug-in)是为系统提供功能的代码和/或数据的结构化包。可以以代码库(带有公共应用程序接口的Java类)、平台扩展甚至文档的形式来提供功能。插件可以定义扩展点、定义良好的位置,其他插件可以在这些位置上添加功能。”

2.2 插件开发环境

所谓PDE,即为Plugin Development Environment[3],也就是插件开发环境的简称,其本身也是一个插件。PDE是一个工具,在E-clipse平台的工作台中工作时,它可以帮助开发者进行插件的创建、开发、测试、调试和部署等工作。PDE提供大范围的平台添加项(例如,视图、编辑器、向导和透视图等),它们与Eclipse工作台以透明方式混合在一起,帮助开发者在Eclipse工作台中完成插件开发的每个阶段。在PDE中,每个正在开发的插件都是被单个的Java工程所代表。插件工程具有一些独一无二的特性,比如说它们每一个都有一个插件描述符(一个manifest.mf文件和/或一个plugin.xml文件),一个基于描述符指定的依赖关系的动态classpath,特殊的编译器,和其他配置属性。PDE提供了一个插件创建向导,可以选择各种需要的部分创建插件工程。

PDE在Eclipse平台中采用“项目”结构方式。当使用PDE时,用户的工作将以项目、文件夹和文件的形式组成。PDE查看工作区中的项目并特别注意那些将插件或者清单文件作为项目的直接子代的项目。如果一个项目具有插件清单,则PDE认为它是插件项目。另外,PDE将特殊的PDE性质与这些项目相关联,以便能够连接特殊的PDE构建器。平台是基于插件这一概念的,而插件具有明确定义的结构和规范。PDE的目标是确保用户在创建新插件时遵循规则,以便让平台正确地合并这些插件。PDE管理项目中的插件,一个项目代表一个插件,并包含定义该插件的文件夹和文件,以及它将与平台交互作用的方式。

2.3 Eclipse插件通信机制

在Eclipse中,为了能够实现将绝大部分功能通过相应的插件集成到PDE中,PDE带有一个特别的多页编辑器来使得插件开发更加简单。插件Manifest编辑器用到3个文件(manifest.mf、plugin.xml和build.p

roperties)。它允许使用者编辑所有必要的属性来描述一个插件--它的基本运行时要求,依赖,扩展,扩展点等等。

在Eclipse的体系结构中有一个非常重要的概念,即扩展点。所谓扩展点就是为插件提供的API接口,通过扩展提供这个接口的实现类来实现这个扩展点。任何一个插件可以自由地定义新的扩展点和提供新的API为其他的插件使用,并可能还留有自己的扩展点,以便在这个插件上继续开发。每一个插件都有一个manifest.mf文件(插件基本配置信息文件),声明同其他插件的互连关系。Eclipse平台本身的实现是采用定义很多的扩展点供开发者扩展。常见的有:action Set(动作)、editor(编辑器)、pop Menu(弹出菜单)、views(视图)、perspectives(透视图)、property Pages(属性页)等。

插件之间的通信机制是通过扩展点来实现的。如图2所示,首先插件A声明了扩展点P及其实现规则接口I。插件B如果要扩展插件A的扩展点P,则生成一个实现接口I的类C,从而实现对P的扩展。在实际运行时,插件A找到类C并实例化,然后调用其实现了接口I中的方法。当需要与实现某扩展点的插件通信时,根据实现扩展的插件清单plugin.xml中extension标签声明中的“class”属性查找并装入类,再根据实现扩展类的规则来调用该类中的方法,从而实现了扩展。

2.4 插件开发

插件是通过对预定义的扩展点进行扩展来向平台添加新的功能。扩展是插件用来将新功能添加到平台中的机制,但是扩展不能随意地创建,必须按照扩展点定义的规范进行明确的声明,Eclipse才能识别出这些扩展。在Eclipse平台中,创建插件的步骤如下:

1)标识需要进行添加的扩展点以便与

开发者的插件进行集成。

2)根据扩展点的规范来实现这些扩展。

3)提供插件清单文件plug-in.xml,描述开发者正在提供的扩展以及代码的封装。

4)测试插件。

5)对插件进行封装。

下面以Eclipse平台中编写一个熟悉的Java程序为例(完成一个观察窗口的插件开发,标签显示“Hello World”),来说明插件及其开发过程。一个插件通常包括实现插件功能的Jar类库、插件资源文件和插件描述文件。插件描述文件的名字定义为plugin.xml[4]。一般将生成插件的Jar类库文件和插件描述文件plugin.xml存放在本机安装目录的plugins子目录的用户待发布插件目录下。E-clipse平台在启动的时候,会自动搜索该插件目录下的plugin.xml文件识别此插件。plugin.xml文件的代码如下:

在plugin.xml中共有以下四个主要的标签:

1)plugin标签的属性含Helloworld插件的基本信息:id,name,version,provider-name等,一般用包名作为插件的id,避免和现有的Eclipse插件id有冲突。

2)requires标签表明它所依靠的其它插件,如本例中的org.eclipse.ui插件。

3)runtime标签指明的是Helloworld插件所在的JAR包的文件名。

4)extension标签是插件扩展点的信息,org.eclipse.ui.action Sets扩展点用来将菜单、菜单项和工具栏按钮添加到“工作台”窗口中的公共区域。

3 插件的加载过程

3.1 插件的安装

Eclispe的插件必须满足几个条件才能被Eclispe安装。首先,插件必须有一个唯一的标识符,Eclispe用此标识符来识别此插件;其次,插件应该包括*.jar文件、清单文件以及所需的资源,在*.jar文件中需要有一个继承Abstract UIPlugin的插件类。以下是三种安装方式:

1)使用eclipse的Software Updates/Find and install...search for new features...输入软件安装地址进行安装。

2)下载插件文件,将其解压缩到eclpise对应的目录中。重启eclipse,如果插件不能升效,则eclipseconfiguration org.

eclipse.update目录删除后再启动eclipse。

3)links文件方式。在eclipse目录中新建links目录以myfile为例,创建插件存放目录:eclipsePluginsmyfileeclipse将plugins解压到eclipse目录中,这样eclipse中中就有了二个插件目录features and plugins.在links目录中建立一个以link为扩展名的文本文件如myfile.link,其内容为path=disk:/eclipse/Plugins/myfile,然后重启eclipse插件就会完成安装。

3.2 插件的发现和启动

Eclipse启动时,平台运行库需要完成两个简单的动作:一是定位JRE的位置,然后启动startup.jar扫描plugins和features目录下的插件配置文件,对插件进行初始化注册到OSGi中,并保存配置文件中的信息;二是查找清单文件中声明的extension point和extension,并将二者匹配以保存插件的依赖关系。最后启动应用。运行时对插件实行“lazy load”机制,只有当需要使用插件时才开始调用插件中的start()方法将其调入内存,不需要时选择适当的时机清除出内存。

3.3 插件信息的获取

每个捆绑软件都有一个象征性标识符(symbolic Name),这个象征标识符便是插件的唯一标识。不论插件有没有启动,都能使用Platform.get Bundle(symbolic Name)来获得捆绑软件对象(org.osgi.framework.Bundle)。当插件启动后,插件的信息由内存中的捆绑软件上下文管理。如果安装了兼容插件,使当前Eclipse版本同先前版本兼容,便可以使用原来的Platform.get Plugin(plugin ID)来获得插(org.eclipse.core.runtime.Plugin)。一些常用的获得插件信息的方法:

bundle.get Entry(“/”);----获得插件的安装目录的URL。

bundle.get Symbolic Name()-----返回插件的唯一标识。

Platform.get Resource Bundle(bundle)---返回当前区域对应的插件资源包对象(java.util.resource Bundle)。这个包对象中的信息会在插件发布后,作为插件安装目录中的plugin.properties文件而存储。

如果要验证插件是否被激活,则需要检查bundle的状态,代码为:

bundle.get State==org.osgi.framework

.bundle.active。

4 结束语

该文从Eclispe的平台体系结构入手,介绍了插件的定义、通信机制、安装、扩展、加载和启动等。由于Eclipse是一个正在进行中的项目,而各种应用开发技术也都处于不断完善发展的过程中,因此,在未来的新版本中,一些组织和实现方式仍会有所变化,需要不断地给予关注。

摘要:在Eclipse平台中插件无处不在。插件体系结构正是Eclipse平台实现的核心所在,几乎所有的功能都是以插件形式提供的。该文将深入地论述插件的体系结构,并以一个小例子简单介绍下插件的开发和实现机制。

关键词:Eclipse,核心,插件体系结构,插件开发,实现机制

参考文献

[1]陈刚.Eclipse插件体系结构[J].程序员,2005(6):119-121.

[2]eclipse.org home[EB/OL].http://www.eclipse.org.

[3]米天胜.插件体系结构的Eclipse平台及其应用[J].中国管理信息化,2007,12(10):29-33.

Eclipse中的文件格式 篇2

1、Eclipse中断层的文件格式:

文件名为:*.FLT

内容为: X坐标 Y坐标 断层号

59.3125 5949569.000 1

592351.8750 5949687.500 1

………

……….

592272.0000 5954705.000 2

592355.2500 5954484.500 2

……….

……….

591287.2500 5950308.500 4

591562.5625 5950291.000 4

……….

2、Eclipse中射孔数据的文件格式:

文件名为:*.EV (见scheduletutorials目录中的`例子)

内容为:

-- DATE EVENT LAYER TOP BOTTOM WELLDIA SKIN kh BHP

WELLNAME P2 ………..井号01.01.1970 perforation (Sand_1) 8110.7 8250.36 0.656001 12

01.05.1972 perforation (Sand_2) 8250.36 8288.12 0.656001 12

05.10.1973 perforation (Sand_3) 8288.12 8300 0.656001 12

25.12.1974 squeeze 8239.99 8300

其中:perforation――射孔 squeeze――挤堵

Welltest――试井 acidise――酸化

Stimulation――对于油井是“增产措施”,对于水井是“增注措施”

Plug――桥塞

3、Eclipse中单井生产数据的文件格式:

文件名为:*.VOL (见scheduletutorials目录中的例子)

内容为:

*FIELD

*DAILY

*IGNORE_MISSING

*HRS_IN_DAYS

*DAY Eclipse中的文件格式*MONTH *YEAR *OIL *WATER *GAS *WINJ *GINJ *DAYS

*NAME P2 TABLE_NO

使用PDE开发Eclipse插件 篇3

关键词:Eclipse插件;模版

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)16-31073-01

Develop Eclipse Plug-in with Templates

ZHANG Zhong-yong,JIANG Lin

(Faculty of Science,Kunming University of Science and Technology,Kunming 650093,China)

Abstract:This article is an example of how to develop Eclipse plug-in with Templates based on the Eclipse environment,it mainly explain the general step on how to develop Eclipse plug-in with PDE,and explain how to repair the plugin.xml document.

Key words:Eclipse plug-in; templates

1 Eclipse和Eclipse插件

Eclipse 从推出到现在一直非常成功,即将成为主流开发平台,它的成功源自Eclipse平台的各个项目,即Eclipse的插件[1]。Eclipse的内核很小,其他功能都是基于这个内核上的插件,例如:它的图形API(称为SWT/JFace)、Java开发环境插件(简称JDT)、插件开发环境(简称PDE)等。

插件是Eclipse平台功能的最小单元,可单独开发和提交。小的工具通常编写为单个插件,而一个复杂工具通常按功能划分为几个插件开发。除了平台运行时(runtime)的小内核外,所有的Eclipse平台功能都通过插件实现。插件的本质是在不修改程序主体的情况下增强软件功能,通常一个插件就是一个新的功能。插件在系统已经存在的基础上安装一个新功能时不需要更改整个软件的结构,而只需要将新功能文件安装到软件中就可以了,不影响原有功能[2]。使用公开接口的插件,任何公司或个人都可以制作插件增强系统功能。插件实现了不同功能模块的无缝结合。也就是说,使用插件技术更易于实现一个庞大复杂的软件。插件接口的公开,使得更多人可以参与软件开发和维护,因此特别适合开放源代码软件项目的开发。

现在软件的生命周期越来越短,对软件功能的要求越来越强,需求的变化也越来越快。一个软件的可扩展性将很大程度决定了该软件的生命力。因此,随着时间推移,具有高可扩展性的插件结构也开始慢慢成熟起来,在Java界的Eclipse、NetBeans等,都是采用了插件体系结构的设计。Eclipse平台是一个开放式插件体系结构,它提供了一些自身的扩展点来给其它插件做扩展[3]。Eclipse插件是一种在Eclipse平台中提供某些服务的组件。

本文通过一个简单的例子讲述了使用插件开发环境(Plug-in Development Environment,简称PDE)进行插件开发的一般流程。

2 使用模版构建插件项目

2.1插件的分类与开发方法的简要分类

由于运行时工作台实例显示的是由来自两个不同地方(用户当前的工作区和原始的主机安装)的插件所提供的功能部件集合,因此PDE会将这些插件识别为两个不同的种类。

⑴ 外部插件

外部插件是由基本平台安装提供的一种插件,只可以从它们的原始位置引用它们,而不能进行修改。用户可以引用、浏览这些插件或者查看它们的源代码以及调试它们,但是,它们被认为是只读的。

⑵ 工作区插件

工作区插件是主机工作台中还在开发的那些插件。它们由用户来控制,能够以任何形式添加、删除和修改。

对Eclipse插件的开发可以分为两种:一种是利用基于Eclipse已经提供的各种资源的扩展点进行扩展开发;另一种是独立的开发,即除了借助Eclipse进行库,其它资源都是独立的插件开发。

2.2 利用模版构建插件项目

本例是利用“HelloWorld”插件模版新建一个项目名为“com.zzy.Helloworld”的插件项目 ,生成的插件项目在“包资源管理器”中效果如图1所示:

图1插件项目在“包资源管理器”中效果图

运行该插件得到一个简单的弹出窗口,效果如图2所示:

图2“样本菜单”下打开的“样本操作”效果图

这里有多种方式打开运行时工作台运行该插件:

①通过视图页面,选择“概述”标签,任选“启动Eclipse应用程序”或“以调试方式启动Eclipse应用程序”其中一项都可。

②利用工具栏的“调试Eclipse应用程序”选项或“运行”选项打开。

③利用“运行”菜单栏打开。

3 修改插件

以上只是简单的套用模版建立一个插件项目,具有一个弹出窗口。下面对两个重要文件:plugin.xml和actions进行修改,从而更改样本菜单,并且添加一个样本菜单下拉选项。

3.1修改plugin.xml文件

plugin.xml文件描述正在提供的扩展以及代码的打包,描述

了插件的基本信息和启动该插件所依赖的其它插件的信息,以及插件的扩展点的相关信息。

对plugin.xml文件做如下修改:

label="插件一(&S)"

icon="icons/sample.gif"

class="com.zzy.Helloworld.actions.SampleAction"

tooltip="Hello,Eclipse world"

menubarPath="sampleMenu/sampleGroup"

toolbarPath="sampleGroup"

id="com.zzy.Helloworld.actions.Sampl

eAction">

label="插件二(&S)"

icon="icons/sample.gif"

class="com.zzy.Helloworld.actions.S

ampleAction2"

tooltip="Hello,Eclipse world"

menubarPath="sampleMenu/sampleGroup"

toolbarPath="sampleGroup"

id="com.zzy.Helloworld.actions.Sample Action2">

3.2修改src下的包:

该包下的SampleAction类主要决定着动作的执行,这里只给出插件二的部分代码,插件二涉及到SWT应用。代码如下:

public void run(IAction action) {

final Display display = Display.getDefault();

final Shell shell = new Shell();

shell.setForeground(SWTResourceManager.getColor(0, 128, 0));

shell.setFont(SWTResourceManager.getFont("@隶书", 36, SWT.BOLD));

shell.setSize(500, 400);

shell.setText("插件示例");

shell.open();

final Text pluginText = new Text(shell, SWT.BORDER);

pluginText.setForeground(SWTResourceManager.getColor(0, 128, 0));

pluginText.setFont(SWTResourceManager.getFont("隶书", 48, SWT.BOLD));

pluginText.setForeground(SWTResourceManager.getColor(0, 128, 0));pluginText.setFont(SWTResourceManager.getFont("隶书", 48, SWT.BOLD));

pluginText.setText(" 万物皆备于我");

pluginText.setBounds(22, 91, 460, 81);

shell.layout();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

}

4 调试、运行

运行以上制作的插件,我们发现在刚才运行的“插件空间”选项下有两个选项,效果如图3所示:

图3 运行工作台打开的菜单栏

单击“插件一”得到如图4所示效果:

图4 单击“插件一”的效果图

单击“插件二”得到如图5所示效果:

图5 单击“插件二”的效果图

5 结束语

本文只是简单的利用PDE模版开发插件,当然,熟悉了Eclipse插件的制作过程我们也可以用Eclipse下的Java开发环境甚至是C语言开发环境根据实际需要开发功能丰富的插件,进一步扩展Eclipse平台,进一步扩展Eclipse平台的功能。

参考文献:

[1]陈刚.Eclipse从入门到精通[M].北京.清华大学出版社,2005.

[2]刘亚滨,杨红.精通Eclipse[M].北京.电子工业出版社,2004.

[3]甘树满,王秀明.Eclipse插件开发方法与实战[M].北京:电子工业出版社,2006.

Eclipse 篇4

关键词:Android,Eclipse,Android开发工具,Android软件开发工具包

Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称。目前已经有2亿激活的android设备, 而且每天正以55万部新设备的速度激增, 并在在全世界137个国家和地区获得使用。该平台由操作系统、中间件、用户界面和应用软件组成, 号称是首个为移动终端打造的真正开放和完整的移动软件。可以把它简单理解成Linux上套了一个JAVA的壳。为了使得Android应用的创建, 运行和调试更加方便快捷, 本文即将使用Eclipse IDE作为Android应用的开发的环境。

1.安装Java开发包与Eclipse集成开发环境

1.1 JDK (Java Development Kit, Java开发包) 是一个写Java的applet和应用程序的程序开发环境。确认已经安装了JAVA JDK, 他是整个Java的核心, 包括了Java运行环境, Java工具和Java基础的类库, 本文要求JDK的版本在5.0以上。

1.2 Eclipse是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身来说, 它只是一个框架和服务, 用于通过插件组件构建开发环境。将Eclipse由压缩包中解压到相关目录即可使用。

2.安装Android开发工具 (ADT)

Android的开发团队专门针对Eclipse集成环境定制了一个插件:ADT (Android Development Tools) 。在Eclipse编译IDE环境中, 安装ADT, 为Android开发提供开发工具的升级或者变更, 简单理解为在Eclipse下开发工具的升级下载工具。

启动Eclipse, 选择Help>Install New Software, 在出现的对话框里, 点击Add按钮, 在对话框name一栏输入”ADT”, 然后点击Archive, 浏览和选择已经下载的ADT插件压缩文件。点击OK, 返回可用软件的视图, 你会看到这个插件, 然后选择Developer Tools, 点击Next, 最后重启Eclipse。当进入Eclipse后, 工具栏出现图标, 即知ADT插件已经安装成功。

3.安装Android软件开发工具包 (SDK)

SDK (Software Development Kit) 一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在Android中, 它为开发者提供了运行android程序的库文件和运行android程序的所需要的环境, 及其开发所要用到的工具。因此可以将android sdk简单理解为开发工具包集合, 是整体开发中所用到的工具包, 如果你不用Eclipse作为你的开发工具, 你就不需要下载ADT, 只下载SDK即可开发。SDK开发的API代码与其对应的安卓版本。Google官方的下载地址如下:http://dl.google.com/android-sdk_r08-windows.zip

下载完Android SDK后, 把.zip文件解压到你电脑上合适位置。启动Eclipse, 选择window-preference, 在打开的视图 (如下图1所示) , 选择android一项, 即弹出SDK Location选项, 在这里填入android sdk解压包的位置, 选择相应的android开发版本, 点击apply即可。

创建一个Android应用实例Hello Android World

新建项目:打开Eclipse, 选择File>New>Project>Android Project, 具体输入如下图所示:

然后依次输入工程的项目名称, 所要使用的android平台, 点击finish即可完成工程的创建。随后编辑Hello Android World.java文件, 内容如下:

Eclipse 篇5

就带我们带来极大的方便,可以帮我很快速的找到我们需要的类库在哪个jar文件中,

classlocator使用非常简单,只需简单讲一下就会使用。

1. 下载

classlocator 官方下载地址(最新版本1.0.8) sourceforge.net/projects/classlocator/也可以从 本地下载

2. 安装

classlocator插件安装也很方便,直接解压到 eclipse的plugins目录即可。

安装完成后,打开eclipse,会发现在式具栏会多出一个图标.表示已经安装完成,

3.使用方法

首先要告诉classlocator插件,我们的类库文件在哪里。classlocator支持单个文件的指定和目录的指定。可以批定多个。

打开菜单 windows->Preferences 找到 Class/Jar Locator,在右边填加我们目录或是具体的类库。如下图所示

配置完成后,我们就是在工具栏上,点击那个小图标,输入要查找的类名即可,找到后,选中类库文件点击“finish”就引用到项目中了。

注:目前不支持* ?通配符。

使用就是这么简单,如有什么问题可以留言给我。

Good Luck!

Yours Matthew!

Eclipse 篇6

关键词 Eclipse RCP平台 经费测算系统 设计与实现

中图分类号:TP31 文献标识码:A

目前,我国大部分高校的经费管理工作,实质上是一种“报销”型管理。这种管理方法既无法调动各教学单位、部门的积极性和创造性,增加市场观念和成本意识,也不利于确定劳动成果同劳动者消耗和劳动占用之间的合理比例,以便合理配置教育资源,提高办学活力和效益。

因此设计开发了一个基于Eclipse RCP平台的学校经费测算系统,该系统功能方面主要实现了用户登陆验证、教学单位视图、教学单位经费管理、系统帮助等模块。

本系统使用java作为开发语言,Eclipse作为开发IDE。利用 Eclipse内置的Derby数据库系统设计了经费测算系统所需的数据库;在教学单位经费管理模块中使用了GC绘图技术和JFreeChart插件,画出各项经费的比例饼图、柱形图和各个教学单位的测算经费堆栈图,允许用户浏览不同年度的堆栈图,形象直观;并利用POI插件,实现测算结果输出到Excel表格的功能;在持久层,使用Hibernate框架,以面向对象的方式操作数据库,方便快捷。在教学单位视图模块,通过属性监听模式实现数据的同步刷新。

用户希望通过调整模型参数、确定分配技术确定经费分配,结果以Excel报表方式查看。调整模型参数时,需要从教学数据库服务器获得基础数据。教务处、财务处、学校领导、教学单位具有不同的处理权限。调整模型参数只能在本地数据库进行。

本系统有三大功能:基础数据、测算数据和系统管理。内容包括为用户表、教学单位课程表、教学单位表、教学单位年度基本数据表、年度测算结果表、公共参数表。它们的结构都是字段名、数据类型、长度、主键否、以及描述。

登录界面, 用户输入正确的用户名和密码之后,点击“登录”按钮。系统把输入的用户名和密码提交到数据库进行匹配验证。本模块使用用户表,

用户成功登录之后,系统就会显示教学单位情况,该模块的主要功能有:默认显示数据库最近年份教学单位的基本数据,包括教学单位名称、专业课和公共课状态;如果教学单位当年度有专业课,则显示一个小图标代表;在标题栏提供年份组合框,可选择不同年份数据的显示;选中不同教学单位名称时,则会显示其课程明细数据和经费概览饼图。并且当教学单位视图的数据发生变化时,其他相关视图也能做出相应的响应,即实现数据同步刷新。

课程明细数据显示与教学单位视图年份组合框对应教学单位的课程明细数据;视图标题栏自动显示当前选中的教学单位名称;视图标题栏提供保存数据、测算经费、展开树状数据、关闭树状数据等5个图标按钮;数据归类显示。

经费概览饼图默认显示与教学单位视图年富组合框对应的第一个教学单位的经费测算饼图,主要显示五种数据:学生经费、专业培养费、公共课经费、人员经费和综合业务费等

教学单位基本情况视图的主要功能有:显示全部教学单位的教学业务费比率、教学研究费比率、师生比、应收学费金额、各职称人数等信息;视图标题栏显示:教学单位名称+年份;各种费率数据格式化显示为“X%”的形式。

设置教学单位公共參数显示全校性参数;输入修改全局性,例如本年应收金额、实收金额、年度拟付款总额、学生经费分割比等。提供上一年、下一年、保存数据等功能。最后利用测算模型进行计算,把计算结果输出到Excel报表。用堆栈图直观显示各教学单位学生经费、展业培养费、公共课经费的总体概况。

教学单位情况的同步模式采用监听方式。某一个视图作为被监听方,其他相关视图作为监听方。当被监听方的视图状态发生变化时,监听方会觉察到这些变化并做出相应的反映。这种方法使得视图之间的联系比较松散。

在监听方式中,存在两种模式:

(1)属性改变模式:存在一个属性提供方,它暴露自己的某一个属性,并接受相关监听方的注册。当这个属性改变时,这些变化会通知监听方。

(2)提供器—选择监听器模式:在这种模式下,存在提供器方和选择监听器方。提供器方就是被监听方,把视图界面的改变通知监听方;而选择监听器就是监听方,监听变化做出响应。这种模式可以方便的实现视图界面状态改变产生的数据同步问题。

本系统具体实现如下:

首先,创建年份管理类YearManager。功能有两个:一是将数据库中的最小、最大年份取出并保存,所谓的最小年份就是经费测算数据库中开始测算的年份,而最大年份则是经费测算的当前年份。另一个是保存当前年份。使用到的类有YearManager.java。

其次,创建属性提供类CuryearPropertyChange。它担当属性改变监听模式里的属性提供方,负责属性监听的管理工作:激发属性改变监听事件,注册属性改变监听器,注销属性改变监听器。使用到的类有CuryearPropertyChange.java。

再次,创建标题栏加入年份组合框。从数据库中查询经过测算的年份。使用到的类有YearCombo.java和TeachUnitName.java。

最后,创建响应属性改变事件,将教学大为视图注册为属性监听器。

Eclipse 篇7

随着网络的迅速发展,在实际生活中Web应用得到了更广泛的应用,越来越多的人把目光投放到Web应用系统开发上。随之而来软件开发的便捷高效性受到软件开发人员的高度重视,软件代码的自动生成更吸引了业界越来越多的注意力,越来越成为开发者努力发展的目标。通过像软件复用以及软件构件等相关技术,已经将已有的设计成果在很大程度上利用起来[1]。在软件工程的发展过程中,为了方便软件开发,进而减少代码的重复编写,开发者致力于代码自动生成工具的研究。

Eclipse提供的插件机制为开发者提供了可以任意展示的平台,开发者可以根据需要在平台上集成所需的功能插件,然而Eclipse的这种特点就需要它能够随时的发现平台中已经集成的插件,这也是Eclipse扩展功能的核心[2]。Eclipse平台本身只处理后台的基本工作,所以插件只需要关注自身所需要实现的功能,而不用担心怎么被Eclipse发现以及调用。与此同时Eclipse不仅为开发Java应用程序提供了开发工具,而且还支持C/C++的开发。因此,为了支持不同应用的不同需求,Eclipse可以通过插件集成机制扩展许多功能[3]。

1 相关技术介绍

1.1 富客户端平台RCP

Eclipse平台的核心是插件,而位于Eclipse中的一项核心功能便是富客户端平台RCP(Rich Client Platform)[4]。基于Eclipse平台,开发Web应用比较容易,众所周知,如果开发桌面应用程序就比较困难,因为Eclipse平台缺少图形化的开发界面,富客户端平台RCP的插件机制解决了Eclipse开发桌面应用程序的瓶颈,它为构建桌面应用程序提供了基本的框架,进而解决了Eclipse转向桌面应用开发的难题,而且基于RCP工程,可以做到比较简单的就实现设计架构而且还拥有专业化的设计效果。富客户端平台RCP以OSGi为基础,它在工程中应用了扩展点的设计思想,所以RCP可以比较完善的开发基于插件的应用系统。同时在RCP中很好地体现了扩展点的表现形式,从它友好地支持桌面应用开发就能看出来[5]。RCP工程中首先依据对象的思路将界面进行切分,在分解的时候按照功能不同便形成了不同的插件,逐渐展现出扩展点,最终展现了跟树相似的架构。插件结构图如图1所示。

下面简单介绍Eclipse RCP的体系结构,一个Eclipse RCP可分为如下5个部分:

(1)工作台(Wrokbench)。提供了Eclipse的用户界面。是运用SWT和API(JFace)来构建的;

(2)工作区(Workspace)。它是一个插件,主要负责管理用户的资源。如果资源信息该改变,它还负责通知其他插件,例如:文件的创建、更新等;

(3)帮助系统(Help)。它能够提供一个附加的导航结构,当用户需要添加文档时,可以让工具应用XML文件的形式添加;

(4)支持系统(Team)。该组件主要负责支持版本控制和配置管理。它会根据应用的需要添加视图;

(5)运行平台(Platform Runtime)。平台运行库是整个Eclipse的内核,启动时会自动检测已经安装了的插件,并在注册表中创建相关的信息。

1.2 EMF和GEF技术

图形编辑框架GEF和建模框架EMF分别是Eclipse中的两个子项目,GEF是Eclipse平台中提供的图形编辑框架,它可以为用户提供图形化编辑模型[1]。而EMF是Eclipse提供的模型驱动应用程序开发框架,它是可以用来产生代码的框架[6]。

建模框架EMF(Eclipse Modeling Framework)可以采用模型驱动的方式设计实现Web应用程序,它是Eclipse平台中又一个非常重要的子项目,开发人员可以全身心的投入应用系统模型的设计上,因为建模框架集成了代码智能自动生成工具,从而使开发者不用担心内部代码的具体设计编写规范。而上文所说的模型就是EMF内部设计的元模型(名为Ecore),它包含了属性、方法等基本的内容。所谓的EMF代码自动生成就是要依据上面所说的模型,根据Ecore模型智能生成复合Eclipse中规范的Java代码[7,8]。这种方法的优点是第一显而易见提高了开发的效率。第二能够保持代码与模型的一致性,当模型发生变化后只需要重新根据模型生成代码即可,减少了手动开发中所存在的不必要的失误。

通过以上对EMF的分析可以看出应用程序在EMF的基础上来构造只需要两步:构造模型和生成代码。EMF中支持的模型定义方式非常的广泛,像UML类图、Java接口等均可以。模型编辑完成后,就可以根据模型智能生成代码了,在代码生成阶段光生成与模型有关的代码或者也生成与编辑器有关的代码都是可以的。而要想得到复合要求应用只求要对编辑器做一些修改就可[9]。

2 智能代码生成框架的设计

随着开发实践工作的不断深入,目前代码生成工具的发展已经越来越成熟。本文设计研究的智能代码生成工具是基于Eclipse平台的智能自动XML代码生成工具。本身是以插件的形式安装,使用所见即所得的图形界面编辑Web应用系统的视图界面,能够实时预览,浏览调试信息,并可以导出XML代码及最终部署配置所需要的文件。

2.1 框架的总体架构

智能代码生成工具的基本框架如图2所示,它可以划分为不同的功能模块,下面分别介绍每一部分的特点。UI层主要接受用户的操作请求并且进行响应,然后把不同的操作转化为各种不同的请求,发给Model层或者Engine层,在这个过程中需要经过Template层进行分配。Template层主要负责为各种不同种类的界面提供个性化的设计。Model层是代码工具整体架构的基础。它为代码生成工具定义了不同的数据模型,将需要产生的代码划分为元素,进行更高层的抽象。

Engine层主要负责代码的自动生成,将Model层的数据结构模型自动转换为实际的代码[10]。

2.2 框架的主要特点

通过对智能代码生成工具总体架构的分析,可以看出它的主要特点,首先它是一个集成的开发平台,拥有比较高的自动化程度,并且提供了友好的可视化的编辑界面,从而降低了开发人员对技术的要求[10]。所谓的集成的开发平台可以进行Web应用的设计、预览以及代码编辑,同时可以随时浏览调试信息,因而程序员可以只关心系统的架构以及模型的设计,而无需关注底层代码的设计生成;自动化程度主要表现在平台中很多的操作都已经实现了自动完成,很大程度地提高了程序员的开发效率;在开发工具中提供了友好的可视化编辑界面,可以通过简单的可视化配置来设计模型从而完成平代码的自动生成,无需对XML代码进行功能程序的修改;由于代码生成工具的灵活度很高,很多操作可以通过配置操作就可以简单的完成,也可以直接编写代码,以前用文本工具能做到的在代码工具中都可以完成。

举例来说,在开发平台中创建可访问资源。通过可视化的配置就可以形成系统可访问的菜单。如图3所示。

在可视化窗口配置完成后,在相应的文件中代码就会自动生成,如图4所示,在相应的模型视图中配置好可访问资源的菜单及相应的子菜单模型后,相应的可访问资源配置文件中的代码也会自动生成。

2.3 框架的实现

工具的实现首先需要配置好开发环境,代码工具主体程序是一个RCP工程并且基于Eclipse平台,而设计实现所需的主要的功能插件有编辑模型框架GEF,建模框架EMF,图形化建模框架GMF以及SWT,Draw2D等。

代码生成工具的设计是基于RCP工程,在工程中包含两个配置文件Plugin.xml和build.properties。Plugin.xml文件列出了Eclipse的扩展点,而这个文件便是用来使用和定义Eclipse扩展点的。关联Eclipse插件的基本方式是扩展点。build.properties文件是在集成插件的时候指定了要build的内容及相关资源的路径。如果向工具新增一些资源,如图标文件等需要把它们添加到build.properties文件中的bin.include一节。

整个代码生成框架的核心是模型,并且整个模型几乎都是为用户界面的生成服务,这符合了系统的宗旨。而建模框架EMF为模型设计提供了基础,模型是基于EMF的Ecore模型,它是关于应用的类和数据的简单模型。当建立Ecore后,代码生成工具采用实现与接口相分离的设计,将模型中的每个类自动生成一个接口和一个实现类。它从表达用户需求信息的功能模型出发到最终生成工程的源代码。

从图5中可以看出代码生成的过程可以分为4个阶段。

第一为需求分析阶段,它是整个代码生成过程的基础。主要负责将用户提出的需求以模型的方式表示出来;

第二个是构件的创建阶段,根据上一个阶段确定好的用户需求来创建Web应用,这个阶段的主要任务就是确定Web应用的类型以及所包含的资源的基本逻辑属性等;

第三是模型的创建阶段,定义Web应用所用到的可访问资源、业务模式及页面控件,通过可视化的配置到应用中,进而确定系统包含的基本菜单及内部对数据的基本操作、用户权限分配等;第四是智能代码生成阶段,上一个阶段配置好模型的基本属性内容以后代码会在创建的应用中相应的文件中智能生成代码。

3 结语

智能代码自动生成工具的研究,是在改变以往的软件开发方式,进而可以简化Web应用的开发过程,提高开发效率。本文主要研究与实现了智能代码生成工具[11]将智能代码生成工具引入在Web应用开发,可以很大程度上改善传统软件开发方式中存在的缺陷。代码生成工具在项目开发中的广泛应用,使系统设计模型可以自动转换成所需要的代码,避免了直接去手工编写代码进而进行大量的重复性工作,为开发人员减轻了工作量和工作负担,提高了工作效率,从而使开发人员在开发不同的Web应用时能够快速构建系统架构,进而快速完成系统的设计。

摘要:Eclipse是一个基于Java的可扩展开发平台,它本身是由一个框架和一组服务组成,用于通过插件组件的形式构建开发环境。富客户端平台RCP是位于Eclipse平台核心的功能,它可以视为基于OSGi构建插件系统的最佳实践指导,同时可重用Eclipse中已存在的方法和编码模式。图形化的模型框架GMF是一个Eclipse建模项目的子项目,其目标是为Eclipse建模框架EMF和图形化编辑框架GEF提供一个统一的桥梁,从而为代码工具的生成奠定了良好的基础。而EMF是Eclipse MDA的一个重要组成部分,通过它可以将模型转换成高效正确和易于定制的Java代码。在此结合Eclipse平台、RCP工程及、等相关技术,研究分析了智能代码生成框架的设计过程。

关键词:Eclipse,RCP,EMF,智能代码生成框架

参考文献

[1]施洪洁.GEF图形编辑器自动生成的研究[D].长春:长春工业大学,2011.

[2]AGRAWAL R,IMIELINSKI T,SWAMI A.Mining association rules between sets of items in large databases[C]//Proceedings of ACM SIGMOD Conference on Management of Data.Washington,DC:ACM,2008:207-216.

[3]赵丽娜.试谈安装Eclipse插件的方法[J].电脑编程技巧与维护,2011(16):112-113.

[4]詹鹏飞.基于GMF的Web快速开发工具的研究与实现[D].广州:华南理工大学,2010.

[5]袁赟.Eclipse RCP框架分析和应用研究[D].上海:同济大学,2008.

[6]常浩浩,覃征.基于EMF和OCL的MDA软件工程方法研究[J].计算机科学,2007(1):268-271.

[7]PARK J S,CHEN M S,YU P S.An effective hash-based algo rithm for mining association rules[C]//Proceedings of ACM-SIGMOD International Conference on Management of Da ta.San Jose,CA:ACM,1995:175-186.

[8]刘强.设计模式的形式化研究及其EMF实现[D].上海:华东师范大学,2011.

[9]管太阳.基于模板的自动代码生成技术的研究[D].成都:电子科技大学,2007.

[10]何亮.代码自动生成工具在软件开发中的应用[J].信息与电脑:理论版,2011(10):109-110.

[11]CHEUNG D W.Maintenance of discovered association rules in large databases:an incremental updating technique[C]//Proceedings of the 12th International Conference on Data En gineering.New Orleans,Louisana:ICDE,1996:106-114.

Eclipse 篇8

1 运行环境搭建

1.1 安装运行环境工具

1.1.1 安装JVM

安装Java SE 7。

1.1.2 安装Apache Maven

Sakai使用Apache Maven进行项目管理, 请到Maven官方下载页面获取Maven 3.x的最新zip压缩包, 下载后将其解压到任意目录, 例如“D:Program Files”。下面以Maven的安装路径是“D:Program Filesapache-maven-3.0.5”为例进行说明。首先新建名为M A V E N_H O M E的系统变量, 将其值设为“d:toolsapache-maven-3.0.5”。再编辑系统变量“path”, 在值的末尾添加“;%MAVEN_HOME%bin”。在进行完整编译Sakai时, 由于项目整体较大, Maven在默认配置下可能会出现内存溢出的情况。可添加系统变量“MAVE NOPTS”, 并把值设为“-Xms 512 mX mx 1024 m-XX:Perm Size=2 5 6 m-X X:Max Perm Size=512m”, 来增加Maven使用的内存量。以上各系统变量的值, 均不包含双引号在内。

1.1.3 安装My SQL

按照Sakai官方文档, 目前稳定支持的数据库包括Oracle、My SQL、HSQLDB三种。复旦大学使用My SQL作为数据库服务器。在My SQL5.6官方下载页面选择“My SQL Installer 5.6 for Windows”, 下载后安装即可。

1.1.4 安装Apache Tomcat

Sakai 2.9.x目前只支持7.0版本的Tomcat。请到官方网站下载最新的Apache Tomcat 7.0, 下载后将Tomcat解压到任意目录, 如D:projectjavaeclipseweba p a c h e-t o m c a t-7.0.4 7。以下将以%T O M C A T_H O M E%来表示这个目录 (注意, 为避免歧义, 这个目录下应该有bin, conf, lib, webapps等文件夹) 。删除Tomcat自带的一些示例, 即%T O M C A T_H O M E%/webapps目录下所有目录。

1.1.5 安装Eclipse

安装eclipse-jee-kepler-SR1-win32。

1.2 配置运行环境

1.2.1 安装复旦共享版Sakai

下载复旦Sakai共享版的src版。

1.2.2 使用Eclipse导入项目

1.2.3 maven的配置

如图1所示, 在eclipse中配置maven, 安装成功后, 就会多出Maven选项, 在Eclipse菜单栏Windows->Preference下的Installations中添加下载的Maven。

1.2.4 配置Tomcat

(1) 增加首页自动跳转页面。

由于Sakai的默认首页路径为/portal, 所以需要增加首页跳转页面进行自动跳转。在%T O M C A T_H O M E%/w e b a p p s目录下创建R O O T目录 (注意大小写) , 然后在ROOT目录下创建文件index.html, 内容如下:

(2) 增加setenv.bat来设定Tomcat运行参数。

在%T O M C A T_H O M E%/b i n目录下新建setenv.bat, 内容如下:

请将其中%J A V A_H O M E%设定为J D K的安装目录;%T O M C A T_H O M E%设置为Tomcat的安装目录, 请根据具体的机器环境进行设置。

(3) 修改server.xml。

修改%T O M C A T_H O M E%/c o n f/server.xml, 增加对于GET方法的UTF-8字符支持将下面这段:

(4) 修改catalina.properties。

打开文件%T O M C A T_H O M E%/c o n f/catalina.properties

将common.loader=${catalina.base}/lib, ${catalina.base}/lib/*.jar, ${catalina.home}/lib, ${catalina.home}/lib/*.jar

修改为:

common.loader=${catalina.base}/lib, ${catalina.base}/lib/*.jar, ${catalina.home}/lib, ${catalina.home}/lib/*.jar, ${catalina.home}/common/lib/*.jar

将shared.loader=

修改为:

shared.loader=${catalina.base}/shared/lib/*.jar

将org.apache.catalina.startup.Context Config.jars To Skip=

修改为:

org.apache.catalina.startup.Context Config.jars To Skip=*.jar

1.2.5 配置My SQL连接

(1) 配置sakai.properties。

在%T O M C A T_H O M E%下创建s a k a i目录, 然后在%TOMCAT_HOME%/sakai目录下创建sakai.properties文件, 在sakai.properties文件中加入以下内容:

其中url@javax.sql.Base Data Source的值请使用相关的My SQL JDBC连接字符串代替。

username@javax.sql.Base Data Source的值请使用My SQL的用户名代替。

password@javax.sql.Base Data Source的值请使用My SQL的密码代替。

以该sakai.properties文件的配置为例, 需要在My SQL中新建一个名为“sakai”的schema, 并将该shema的全部权限赋予用户“sakai”。当Tomcat启动的时候, Sakai会根据sakai.properties文件中的配置自动生成数据表并添加初始数据。

(2) 部署My SQL的JDBC库。

从My SQL官方网站上下载最新的My SQL JDBC库, 下载的文件解压缩后可以得到mysql-connector-java-5.1.xx-bin.jar这个文件, 将此文件复制到%T O M C A T_H O M E%/common/lib目录下。

1.2.6 配置编译命令行参数, 编译源代码并部署到Tomcat

在Goals文本框中输入install sakai:de-ploy-Dmaventomcat.hom e=TOMCAT_HOME%-Dmave n.t e s t.skip=true。

使用Maven进行工程项目编译, 程序将自动下载一些运行所需要的文件, 在此过程中, 需要有稳定的Intelnet网络连接。第一次执行此命令时, 耗时较长, 可能需要1~2 h, 具体时长视网络情况而定。

2 运行/停止Sakai

2.1 创建S ak ai数据库

使用Navicat在Mysql中创建名为sakai数据库。

2.2 启动Tomcat

在%T O M C A T_H O M E%/b i n目录下, 运行startup.bat。

2.3 停止Tomcat

在%T O M C A T_H O M E%/b i n目录下, 运行shutdown.bat。

3 访问Sakai

打开任意网页浏览器, 访问http://localhost:8080。

参考文献

[1]王淑平.基于Sakai平台研究性学习研究[D].山东师范大学, 2012.

Eclipse 篇9

油藏数值模拟是应用数学模型把实际的油藏动态重现一遍,也就是将流体渗流力学方程(即数学模型)通过计算数学方法借用计算机进行求解,结合油藏地质学、油藏工程学重现油田开发的实际过程,用来解决油田开发的实际问题。Eclipse是国际上先进的油藏数值模拟软件。其中黑油模拟器(ECLIPSE 100)和组分模拟器(ECLIPSE 300)模块具有并行计算功能,能满足大数据量的计算和处理。研究院拥有5个并行许可共60个并发进程。

并行计算最初安置在IBM地震处理128节点集群上,分配其中的3个节点进行Eclipse并行处理。但由于地震处理工作量较大,在地震处理繁忙时,优先保证处理工作的进行,影响了E-clipse的运行,同时由于用户管理及使用方便性的问题,我们决定对Eclipse集群进行迁移,充分发挥并行处理的功能和最大限度的满足用户的使用需求。

二、并行系统的迁移

新选择的集群是HP BL460C集群,具有32个节点,每个节点双核。具体节点信息如下图1所示:

前4个节点s01、s02、s03、s04是控制节点,我们分配c1~c12 12个节点进行Eclipse并行处理,c13~c32分配给Jason软件并行处理,这样既扩大了Eclipse的并行节点,又充分利用了HP集群的资源,提高了集群的利用率。

Eclipse并行处理迁移前逻辑图如图2所示:

由图2可以看出,用户先登录NIS客户端,由于地震处理集群的要求,用户还要再次登录到IBM集群上,要使用2套账户,使用不方便,且登录IBM集群的账户为公共ecl账户,运算的结果也放在其目录下,安全性没有保障。这也是我们要迁移的原因。

为用户使用方便,我们简化了Eclipse并行处理流程,迁移后的并行处理逻辑图如图3所示:

通过对比,从用户的使用角度看,登录一次就可以使用并行系统,且不需要在集群间和用户登录的机器间转换数据存储路径,极大地方便了用户的使用,同时可以使用Xmanager等远程桌面软件批量下载、上传数据及下载并行运算后的结果,克服了以前只能使用命令行方式提交数据的不便。

三、系统安全的完善

集群系统迁移后,为了保障用户数据的安全,提高数据安全性,使用户登录集群后,只能看到自己的home目录及自己的工作环境,如图4用户工作环境内容所示:

在用户自己的工作环境中,可以自己创建目录、上传、下载文件,但看不到其他用户的信息,就好像自己一个人独立使用并行系统一样,保证了用户数据的安全。

针对系统的安全性需求,我们进行如下工作:

1、实名制创建账户

为便于用户使用和记忆,避免登录多个系统使用不同的账户,我们使用用户申请的中石油的邮件账户作为用户账户,如史明宏的邮件为shiminghong@petrochina.com.cn,创建账户时给的用户名就是shiminghong,由于中石油邮件已经使用多年,账户已经建好,且具有唯一性,因此不会出现账户重名的现象发生,同时用户登录其他系统时也使用这个账户,减少了复杂性。

2、每个用户分配不同的组

为了使每个用户的信息具有相对的安全性,用户的工作内容只有他自己能看到,其他人不能看到,我们创建用户时,为每个用户申请了一个独立的Primary Group,由于Linux系统本身的安全设置,不同的组间的成员是相互独立的,工作时互不影响。如图User ID从548~558的用户是Eclipse用户,在Full Name项有注明,区别于使用其他软件的用户,使系统管理员维护时方便,也便于掌握并行用户的数量。用户信息如图5用户信息内容所示:

四、并行处理作业的提交和运行

用户把要运算的数据上传到集群自己的工作目录下,使用如下命令运行并行作业,以作业PARALLEL100K为例,如下图6 Eclipse并行处理命令所示:

在接下来的网络接口选项中,选择1,Ethernet连接,如图7网络选项连接所示:

进行完参数选择后,进入并行处理,如下图8并行数据处理图所示:

在图8中的开头部分,我们能看到软件及待处理的数据配置信息,Eclipse软件的版本是2005a_1,运行的是Linux X86_64位系统,运行的模块是Eclipse 100,申请处理的CPU个数是4,即同时使用4个CPU进行处理,提高了运行效率。

五、许可使用统计

集群迁移后,方便了用户使用和管理,为了准确掌握许可的使用情况和具体的用户,我们对许可服务器也进行了迁移,从原来的和用户数据共用一台服务器的Linux3.2系统迁移到Windows Server 2003 R2系统,使许可和并行处理分开,管理起来更方便、更灵活。同时使用FLex NETManager软件对许可进行统计。

配置许可统计报告,如下图9 Eclipse并行处理许可统计月报设计:

在生成报告中选取相应的统计时间段,以11月份为例,从10月15日到11月15日,选择要生成许可统计的服务器和许可Vendor名称。最后生成的11月份许可统计报表如下图10Eclipse并行处理许可统计报表使用图。

使用的模块有compositional、eclipse、lgr、parallel等,其中parallel模块(即并行处理模块)使用最多,达到1674小时,有3个人使用,并能统计出每个用户的使用时间。迁移后,每个月的使用时间如下图11 parallel及Jason软件使用统计所示:

从图11中可以看出从四月份开始迁移完成后,每个月使用时间基本上在5000小时左右,另外在集群上运行的另外一个软件Jason的使用情况也统计出来,平均月使用时间在13000小时以上,最多的4月份,使用时间接近30000小时,可以看出集群的利用率还是很高的。

每个用户的全年使用时间如下图12用户年度使用时间所示:

从图12中,可以看出主要用户有4个,其中使用最多的liuhail用户9个月使用时间达到7000多小时,而ecl用户是采油四厂的用户,使用我们的资源,时间也达到了2000多小时。

通过许可使用统计,掌握了软件的使用总时间,同时针对每一个用户的使用情况也清楚,便于以后资源的调配和软件使用跟踪。

六、结束语

通过对Eclipse并行系统的迁移,改变了用户的工作方式,同时也加强了系统管理员对软件使用的跟踪,对迁移前和迁移后的具体对比如下表1迁移前后对比所示:

从中可以看出,从用户和管理员两方面都有改进,在14个方面都有较大的提高,尤其是提高了软件的使用,扩大了软件的使用人数,同时对软件的使用时间有了准确的统计,便于管理,随着大庆油田开采难度的增加,对数值模拟技术要求的增高,该系统将会使用越来越多,同时也可以推广到其他油田二级单位使用,发挥出更大的作用。

参考文献

[1]Eclipse安装手册.

[2]Linux系统管理手册.

Eclipse 篇10

Eclipse已逐渐成为一个开发嵌入式系统的重要手段[1,2]。Eclipse是一个基于Java语言的、可拓展的、开放源代码的嵌入式开发软件。Eclipse本身仅仅是一个结构和骨架, 它需要通过插件来建立嵌入式系统的开发环境。Eclipse自身的一个插件集, 包含了Java的开发工具与插件的开发环境。

针对各种不同操作系统和CPU的目标环境, 要使嵌入式系统的开发环境实现通用, 复杂程度过高。在大部分条件下, 因为嵌入式系统的开发环境迥异, 所以基本都是采用交叉开发环境来处理的。

基于Eclipse嵌入式系统的开发环境具有可扩展性、可升级性等优势, 采用开放源代码工具, 为开发人员建立一个灵活而可靠的系统, 已成为发展趋势。在Eclipse等开放源代码的开发软件中, 开发人员可以通过自定义和拓展等方式来满足系统的需要。许多开发商运用了多种类型开放源代码工具作为开发环境的基础。

2 Eclipse的CDT插件

Eclipse C/C ++ Development Toolkit (CDT) 是Eclipse的一个以插件方式的拓展。Eclipse作为一个通用软件开发平台, 只提供了开发Java所需要的插件。CDT的出现使得C/C++开发在Eclipse中得到了支持。CDT具备子组件与插件, 它们在CDT中都是独立的。在这些子组件和插件中, 最主要的是CDT的主插件, 包括CDOM, Core Model, CDT Core, CDT Build等核心组件, 其功能是CDT的核心;CDT Launch提供了启动机制, 以启动外部可执行文件;CDT C/C++ Debug提供核心调试功能;CDT Debug UI为调试工具编辑器与视图提供用户界面;CDT Debug MI是一个调试器, 兼容了MI应用连接器;CDT UI插件提供与用户界面相关的功能;CDT Feature提供其他组件功能。

CDT编辑器具备很多种特性, 比如语法高亮显示、代码协助等。语法高亮显示可以根据爱好进行定制设置。代码协助使得软件在开发中更加简练, 有助于代码完成其功能, 与Visual Studio中的功能大致相同, 并且可以添加自定义代码模板, 协助插件实现其功能。

CDT插件由UI, Managed Builder, Debug这3个主要模块组成, 还有二进制代码分析器、C语言语法分析器、索引建立工具等其他模块。CDT中的定义生成器扩展点, 提供建造管理模块的功能, 使用插件配置文件更改项目的数据模型和工具链配置信息, 并能够改变管理模块的数学模型, 包括工程类别、工程、配置、工具链、工具选项、选项类别等数据模型[3]。

CDT中有许多小插件, 可实现调试、启动、构建等功能。CDT插件与Eclipse软件平台的结构关系见图1。

3 针对Vx Works的嵌入式系统设计

嵌入式系统开发环境的设计是必不可少的。根据系统特征, 针对不同的操作系统和CPU的目标环境, 需要不同的开发手段。为了满足项目对嵌入式系统的开发需求并分析CDT源代码, 可以把开发环境的设计分为项目管理、编译、调试3 个部分。这3 个部分相互独立, 但之间也有联系, 从项目管理部分中获取的信息, 将直接影响编译和调试部分的参数设置。

针对Vx Works操作系统的目标环境, 开发相应的嵌入式系统和应用程序, 并进行调试, 需要为Vx Works操作系统配置正确的信息。 首先要删除CDT中正在处理的make C标准进程, 仅保存受管进程, 这是由于标准进程不会生成makefile文件, 而受管进程会生成makefile文件, 这样就省去了makefile文件的编写过程, 降低了开发难度。

有时Vx Works操作系统和板级支持包 (Board Support Package, BSP) 需要设置参数, 这就需要为二者各设置一个参数配置编辑界面, 这两个界面各通过一个函数插件来实现, 其中, 函数插件Ad-d Vx Works为Vx Works操作系统实现参数配置编辑界面, 函数插件Add BSP为BSP实现参数配置编辑界面, 见图2, 图3。

根据从项目管理部分得到的信息, 编译部分负责组织源代码文件并对其进行编译。在此过程中, 需要提供Vx Works操作系统的库文件, 并把BSP文件添加到里面, 以获得Vx Works操作系统应用程序。添加BSP文件是为了生成makefile文件, 根据makefile文件里的信息调用对应的指令, 就会得到Vx Works操作系统应用程序的目标文件。因此, 根据Vx Works操作系统和BSP文件, 生成makefile文件是一项重要的研究内容。

嵌入式系统的设计必须确保交叉编译功能可以实现, 需要把程序装载到具有监视调试程序的目标机上。在调试过程中, 需要开发加载在目标机上的程序, 并且需要在目标机上进行端点设置、读取寄存器与内存等操作。这些操作需要提供文件的上传功能, 并把监测的结果进行解析, 这就需要在调试界面中, 把原先Vx Works应用程序中的文件名改为默认。进行调试时, 需要设置新的波特率, 接着才能进行连接。连接完成之后, 必须采用加载命令, 把相关文件下载到目标机, 软件提供了一个菜单用于这项操作。如果文件比较大, 下载时间有可能比较长, 进度条可以使用户了解下载的完成度。待文件下载完毕后, 采用与调试本地程序相同的方法, 就可以对程序进行调试。用户可以自由设置端点、运行程序、查看寄存器与内存等操作。

摘要:对于嵌入式系统, 开发环境的选择至关重要, 一个好的开发环境可以减少很多繁琐的工作。介绍了基于Eclipse的嵌入式系统开发环境和Eclipse的CDT插件, 针对VxWorks的嵌入式系统的设计流程, 重点探讨了VxWorks操作系统和板级支持包BSP的相关操作。

关键词:Eclipse,嵌入式系统,CDT插件

参考文献

[1]Eclipse Community.Workbench User Guide[DB/OL].[2015-12-31].http://www.eclipse.org/.

[2]刘芳, 臧威.基于Eclipse平台的嵌入式交叉调试环境MRTOS[J].电子科技, 2013, 26 (5) :18-21.

上一篇:音乐之于舞蹈的意义下一篇:化学类课程

本站热搜

    相关推荐