Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > FPGAs/PLDs

Using Eclipse as an app framework

Posted: 01 Aug 2006 ?? ?Print Version ?Bookmark and Share

Keywords:Todd Williams? Genuitec? embedded? spot light? open source?

eclipse is an open platform for tool integration!it is not an IDE. Confusion exists because a complete, industrial-strength Java IDE is available in Eclipse in the form of plug-in components extending Eclipse's basic framework facilities.

Eclipse provides the framework for combining disparate tools into a single integrated application with a seamless user interface (UI). New tools are integrated into the Eclipse platform and its UI through plug-ins that extend Eclipse's facilities and provide new functionality. Eclipse plug-ins can also extend other plug-ins. When an Eclipse-based application initializes, it discovers and activates all the plug-ins configured for the environment. An Eclipse application is the sum of its parts because it can perform any function that has been added to it by the plug-ins it contains.

Key features
Eclipse embodies an extensible design that maximizes its flexibility as an architectural platform. At its core, the Eclipse platform contains an efficient implementation of the OSGi R4 core framework specification known as Equinox, which is used to bootstrap the application. The Eclipse architecture defines sets of layered subsystems that allow it to be used as a framework for a portable application that is not an IDE at all. And since the frameworks are layered and coupled only at distinct architectural interfaces, an application can be built by combining only the frameworks it needs and eliminating those that it does not. The following are primary Eclipse features.

Extensibility model!Eclipse is built around a highly flexible and extensible plug-in model to enable any type of capability to be added to the platform.

Content model!Eclipse provides a content model built around the concept of a workbench into which tools can be installed. The tools operate on resources that are organized into projects within the workspace. Projects contain a tree structure of resources, which are folders and files containing any type of content. The core platform provides extension points that allow customization of all aspects of resource life-cycle management.

Native widgets!The Eclipse platform contains a standard widget toolkit (SWT), which is implemented natively on all supported Eclipse platforms. SWT contains a large set of events, layout managers and widgets. When a supported platform does not contain a native widget supported by Eclipse such as a toolbar on Motif, an emulated widget for that platform is provided. SWT also interacts with native desktop features, such as drag and drop.

Although Java already contains two widget toolkits!alternative widget toolkit and Swing!the Eclipse group still chose to implement its own.

UI framework!To build a graphical interface, SWT may either be used directly or through JFace, the UI framework of the Eclipse platform. JFace includes dialog, preference, progress reporting and wizard frameworks, and image and font registries that make UI creation very straightforward.

The Eclipse UI framework is extensive, flexible and powerful. It can easily be extended for much less investment in time and resources than designing and building your own.

Update manager!Component maintenance and upgrade facilities were part of the design of Eclipse from the beginning. To control ongoing cost and remove maintenance issues that could become barriers to project development and deployment, the Eclipse platform contains a flexible update manager. This can be configured to perform both initial installations of new components or updates to existing components from a remote server.

Help system!Every professional desktop application has a help system for end-users, and Eclipse is no different. However, Eclipse's help system isn't simply built from a static group of HTML files that document Eclipse. It is a framework for providing both searchable and context-sensitive help that is open for extension by documentation plug-ins.

Application framework
At the outset, the frameworks provide an empty, featureless application that is architecturally sound, extensible for future enhancements and can upgrade itself remotely.

The main question becomes how much of Eclipse is required. An application can be built on the Eclipse framework by removing functionality that is not important and adding the necessary functionality. The more challenging part is where to begin.

Once the starting platform has been determined, building an application is simply a matter of writing plug-ins to add features to the basic Eclipse framework and branding them appropriately for the intended audience. GumTree is an open source GUI framework for building scientific instrumentation consoles. Azureus implements the BitTorrent client protocol through Eclipse rich client platform (RCP) plug-ins and comes bundled with many invaluable features for both beginners and advanced users of BitTorrent. Azureus is typically one of the most downloaded applications at SourceForge and interface looks native on any platform.

The Qanyon World Factbook application was written to explore the use of Eclipse RCP in a distributed environment. Similar to the CIA World Factbook Website, the Qanyon World Factbook should display country information, albeit in a rich client environment.

What's next?
Eclipse is continuously evolving and will continue to grow vertically further into the software tools space and horizontally into completely new market segments. The growth into new industry verticals will be for the same reasons that Eclipse was formed in the first place. Although Eclipse was initially formed to build an integration platform for software tool providers, the separate availability of the RCP changes everything. Rather than being a platform exclusively for tool providers, Eclipse has become a general-purpose platform that has simply been leveraged initially in the software tools arena.

Another vehicle of Eclipse's future growth will likely come from completely outside the software industry. Consortia from different industries!such as healthcare, automotives and finance!regularly set software platform and interoperability standards.

Eclipse is constantly expanding, evolving and surprising us. It would have been impossible to envision where it has gone in its first few years of existence.

- Todd Williams
VP of Technology, Genuitec LLC

Article Comments - Using Eclipse as an app framework
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top