| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html lang="en"> |
| <HEAD> |
| |
| <meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2005. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." > |
| |
| <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> |
| <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> |
| |
| <LINK REL="STYLESHEET" HREF="../book.css" CHARSET="ISO-8859-1" TYPE="text/css"> |
| <TITLE> |
| What is Eclipse? |
| </TITLE> |
| |
| <link rel="stylesheet" type="text/css" HREF="../book.css"> |
| </HEAD> |
| <BODY BGCOLOR="#ffffff"> |
| <H2> |
| What is Eclipse?</H2> |
| <P > |
| Eclipse is a platform that has been designed from the ground up for building integrated web and application development tooling. By design, the platform does not provide a great deal of |
| end user functionality by itself. The value of the platform is what it encourages: rapid development of integrated features based on a |
| <b> plug-in</b> model.</P> |
| <P > |
| Eclipse provides a common user interface (UI) model for working with tools. It is designed |
| to run on multiple operating systems while providing robust integration with |
| each underlying OS. Plug-ins can program to the Eclipse portable APIs and |
| run unchanged on any of the supported operating systems. </P> |
| <P > |
| At the core of Eclipse is an architecture for dynamic discovery, loading, and running of plug-ins. The |
| platform handles the logistics of finding and running the right code. The platform UI provides a standard |
| user navigation model. Each plug-in can then focus on doing a small number of tasks well. What |
| kinds of tasks? Defining, testing, animating, publishing, compiling, debugging, |
| diagramming...the |
| only limit is your imagination.</P> |
| |
| <H3> |
| Open architecture</H3> |
| <P > |
| The Eclipse platform defines an open architecture so that each plug-in development team can focus on their |
| area of expertise. Let the repository experts build the back ends and the usability experts build the end |
| user tools. If the platform is designed well, significant new features and levels of integration can be |
| added without impact to other tools.</P> |
| <P > |
| The Eclipse platform uses the model of a common workbench to integrate the tools from the end user's point of view. Tools that you develop can |
| plug into the workbench using well defined hooks called <b>extension points</b>.</P> |
| <P > |
| The platform itself is built in layers of plug-ins, each one defining extensions to the extension points of |
| lower-level plug-ins, and in turn defining their own extension points for further customization. This extension |
| model allows plug-in developers to add a variety of functionality to the basic tooling platform. The artifacts for each |
| tool, such as files and other data, are coordinated by a common platform resource model.</P> |
| <P > |
| The platform gives the users a common way to work with the tools, and provides integrated management o |
| f the resources they create with plug-ins. </P> |
| <P >Plug-in developers also gain from this architecture. The platform |
| manages the complexity of different runtime environments, such as different |
| operating systems or workgroup server environments. Plug-in |
| developers can focus on their specific task instead of worrying about these |
| integration issues.</P> |
| |
| |
| |
| <H3> |
| Platform structure</H3> |
| <P > |
| The Eclipse platform itself is structured as subsystems which are implemented in |
| one or more plug-ins. The subsystems are built on top of a small runtime engine. |
| The figure below depicts a simplified view. </P> |
| |
| <P > |
| <img src="images/arch-npi.svg" alt="Platform runtime base with groups of plug-ins adding function" border="0" > </P> |
| |
| <P > |
| The plug-ins that make up a subsystem define extension points for adding behavior to the |
| platform. The following table describes the major runtime components of the platform that |
| are implemented as one or more plug-ins. </P> |
| |
| <table border="1" width="100%"> |
| <tr> |
| <td width="29%"> |
| |
| <H4> |
| Platform runtime</H4> |
| </td> |
| <td width="71%">Defines the extension point and plug-in model. It dynamically |
| discovers plug-ins and maintains information about the plug-ins and their extension points |
| in a platform registry. |
| Plug-ins are started up when required according to user operation of the |
| platform. The runtime is implemented using the OSGi framework.</td> |
| </tr> |
| <tr> |
| <td width="29%"> |
| <H4>Resource management (workspace)</H4> |
| </td> |
| <td width="71%">Defines API for creating and managing resources (projects, |
| files, and folders) that are produced by tools and kept in the file system.</td> |
| </tr> |
| <tr> |
| <td width="29%"> |
| <H4> |
| Workbench UI</H4> |
| </td> |
| <td width="71%">Implements the user cockpit for navigating the platform. It defines extension points for adding UI components such as views or menu actions. |
| It supplies additional toolkits (JFace and SWT) for building user |
| interfaces. The UI services are structured so that a subset of the UI plug-ins can be used to build rich client applications that are |
| independent of the resource management and workspace model. IDE-centric plug-ins define additional functionality for |
| navigating and manipulating resources.</td> |
| </tr> |
| <tr> |
| <td width="29%"> |
| |
| |
| <H4> |
| Help system</H4> |
| </td> |
| <td width="71%">Defines extension points for plug-ins to provide help or |
| other documentation as browsable books.</td> |
| </tr> |
| <tr> |
| <td width="40%"> |
| |
| |
| <H4>Team support</H4> |
| </td> |
| <td width="60%">Defines a team programming model for managing and versioning resources. </td> |
| </tr> |
| <tr> |
| <td width="40%"> |
| |
| |
| <h4>Debug support</h4> |
| </td> |
| <td width="60%">Defines a language independent debug model and UI classes |
| for building debuggers and launchers.</td> |
| </tr> |
| <tr> |
| <td width="40%"> |
| |
| <h4>Other utilities</h4> |
| </td> |
| <td width="60%">Other utility plug-ins supply functionality such as searching and comparing resources, performing builds using XML configuration files, |
| and dynamically updating the platform from a server.</td> |
| </tr> |
| </table> |
| |
| |
| |
| <H3> |
| Out of the box</H3> |
| <P > |
| Out of the box - or off the web - the basic platform is an integrated development environment (IDE) for anything (and nothing in particular). </P> |
| <P > |
| <img src="images/emptyworkbench.png" alt="Workbench window" border="0"></P> |
| <P > |
| It's the plug-ins that determine the ultimate functionality of the platform. |
| That's why the Eclipse SDK ships with additional plug-ins to enhance the |
| functionality of the SDK.</P> |
| <P > |
| Your plug-ins can provide support for editing and manipulating additional types of |
| resources such as Java files, C programs, Word documents, HTML pages, and JSP files.</P> |
| |
| |
| </BODY> |
| </HTML> |