<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Eclipse Roadmap v4</title><meta name="author"/>
<meta name="keywords" content="roadmap, projects, strategy, documents, about, foundation" /><link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/small.css" title="small" /><link rel="alternate stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/large.css" title="large" /><link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/visual.css" media="screen" /><link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/layout.css" media="screen" />
<!--[if IE]> 	<link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/ie_style.css" media="screen"/> <![endif]-->
<!--[if IE 6]> 	<link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/ie6_style.css" media="screen"/> <![endif]-->
<link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/print.css" media="print" />
<link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/header.css" media="screen" />
<script type="text/javascript" src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/styleswitcher.js"></script>
</head>
<body>
<div id="header">
	<div id="header-graphic" class="eclipse-main">
		<a href="http://www.eclipse.org/"><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg" alt="" /></a><h1>Eclipse</h1>	
	</div>

	<div id="header-global-holder" class="eclipse-main-global">
		<div id="header-global-links"><ul>
<li><a href="http://www.eclipse.org/org/foundation/contact.php" class="first_one">Contact</a></li><li><a href="http://www.eclipse.org/legal/">Legal</a></li>
			</ul>
		</div>
		<div id="header-icons">
<a href="http://www.youtube.com/user/EclipseFdn" target="_blank"><img src="/eclipse.org-common/themes/Phoenix/images/Icon_Live.png" width="28" height="28" alt="Eclipse YouTube Channel" title="Eclipse YouTube Channel" /></a>
<a href="http://www.eclipseplugincentral.com"><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/Icon_plugin.png" width="28" height="28" alt="Eclipse Plugin Central" title="Eclipse Plugin Central" /></a>
<a href="http://www.planeteclipse.org"><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/Icon_planet.png" width="28" height="28" alt="Planet Eclipse" title="Planet Eclipse" /></a>
		</div>

	</div></div><div id="header-menu"><div id="header-nav">
		<ul>
		<li><a class="first_one" href="http://www.eclipse.org/" target="_self">Home</a></li> 
				<li><a  href="http://www.eclipse.org/users/" target="_self">Users</a></li> 
				<li><a  href="http://www.eclipse.org/membership/" target="_self">Members</a></li> 
				<li><a  href="http://www.eclipse.org/committers/" target="_self">Committers</a></li> 
				<li><a  href="http://www.eclipse.org/downloads/" target="_self">Downloads</a></li> 
				<li><a  href="http://www.eclipse.org/resources/" target="_self">Resources</a></li> 
				<li><a  href="http://www.eclipse.org/projects/" target="_self">Projects</a></li> 
				<li><a  href="http://www.eclipse.org/org/" target="_self">About Us</a></li> 
				</ul>

	</div>
	<div id="header-utils">
		<form action="http://www.google.com/cse" id="searchbox_017941334893793413703:sqfrdtd112s">
	 	<input type="hidden" name="cx" value="017941334893793413703:sqfrdtd112s" />
  		<input type="text" name="q" size="25" />
  		<input type="submit" name="sa" value="Search" />
		</form>
		<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_017941334893793413703%3Asqfrdtd112s&lang=en"></script>		<ul>

						<li class="text_size"><a class="smallText" title="Small Text" href="#" onclick="setActiveStyleSheet('small');return false;">A</a> <a class="largeText" title="Large Text" href="#" onclick="setActiveStyleSheet('large');return false;">A</a></li>
		</ul>
	</div></div><div id="leftcol">
<ul id="leftnav">
<li class="separator"><a class="separator" href="index.php">About Us &#160;&#160;<img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/leftnav_bullet_down.gif" border="0" alt="" /></a></li>
<li><a href="http://www.eclipse.org/org/foundation/">Foundation</a></li>
<li><a href="http://www.eclipse.org/org/documents/">Governance</a></li>
<li><a href="http://www.eclipse.org/legal/">Legal Resources</a></li>

<li><a href="http://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
<li style="background-image: url(/eclipse.org-common/themes/Phoenix/images/leftnav_fade.jpg); background-repeat: repeat-x; border-style: none;"><br /><br /><br /><br /><br /><br /><br /><br />
</li>
</ul>

</div>
<div id="container">
    <div id="maincontent">

	<div id="midcolumn">
<h1>2008 Roadmap</h1><!-- start content -->
<table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1"><a href="#Introduction"><span class="tocnumber">1</span> <span class="toctext">Introduction</span></a></li>
<li class="toclevel-1"><a href="#Background"><span class="tocnumber">2</span> <span class="toctext">Background</span></a></li>
<li class="toclevel-1"><a href="#Strategic_Goals"><span class="tocnumber">3</span> <span class="toctext">Strategic Goals</span></a></li>
<li class="toclevel-1"><a href="#Future_Directions"><span class="tocnumber">4</span> <span class="toctext">Future Directions</span></a>
<ul>
<li class="toclevel-2"><a href="#Enterprise_Java_Development"><span class="tocnumber">4.1</span> <span class="toctext">Enterprise Java Development</span></a></li>
<li class="toclevel-2"><a href="#Embedded_and_Device_Software_Development"><span class="tocnumber">4.2</span> <span class="toctext">Embedded and Device Software Development</span></a></li>
<li class="toclevel-2"><a href="#Equinox_and_the_Rich_Client_Platform_.28RCP.29"><span class="tocnumber">4.3</span> <span class="toctext">Equinox and the Rich Client Platform (RCP)</span></a></li>
<li class="toclevel-2"><a href="#Service_Oriented_Architecture"><span class="tocnumber">4.4</span> <span class="toctext">Service Oriented Architecture</span></a></li>
<li class="toclevel-2"><a href="#Web_Development"><span class="tocnumber">4.5</span> <span class="toctext">Web Development</span></a></li>
<li class="toclevel-2"><a href="#Modeling"><span class="tocnumber">4.6</span> <span class="toctext">Modeling</span></a></li>
<li class="toclevel-2"><a href="#Application_Frameworks"><span class="tocnumber">4.7</span> <span class="toctext">Application Frameworks</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="#The_Roadmap_Process"><span class="tocnumber">5</span> <span class="toctext">The Roadmap Process</span></a></li>
</ul>
</li>
</ul>
</td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
<a name="Introduction"></a><h2> <span class="mw-headline">Introduction</span></h2>
<p>As required by the <a href="http://www.eclipse.org/projects/dev_process/development_process.php" class="external text" title="http://www.eclipse.org/projects/dev_process/development_process.php" rel="nofollow">Eclipse Development Process</a>, this document describes the 2008 Eclipse Roadmap.
</p><p>The Roadmap is intended to be a living document which will see future iterations. This document is the fourth version of the Eclipse Roadmap, and is labeled as version 4.0. In order to preserve this document while the underlying information evolves, the pages have been frozen by copying them from their original project hosted locations.
</p><p>The goal of the Roadmap is to provide the Eclipse ecosystem with guidance and visibility on the future directions of the Eclipse open source community. An important element in this visibility is that the Roadmap help the EMO and the Board of Directors in determining which projects will be accepted by Eclipse during the life of this revision of the Roadmap. In other words, new projects must be consistent with the Roadmap. This does not mean that every new project must be explicitly envisaged by the Roadmap. It does mean that new projects cannot be inconsistent with the stated directions of Eclipse. In particular, Eclipse expects that incubator projects created in the Technology PMC will cover areas not explicitly described in the Roadmap.
</p><p>There are three main sections to this document:
</p>
<ol><li> This Preamble provides some background on Eclipse and the Foundation, and identifies the strategic goals of Eclipse. It also provides a brief overview of the scope of future projects 
</li><li> The <a href="themesandpriorities.html" title="RequirementsCouncilThemesAndPriorities">Themes and Priorities</a> which has been developed by the Eclipse Requirements Council.
</li><li> The <a href="platformplan.html">Platform Release Plan</a> which has been developed by the Eclipse Planning Council.
</li></ol>
<a name="Background"></a><h2> <span class="mw-headline">Background</span></h2>
<p>As defined on our website, the role of the Foundation is:
</p>
<dl><dd><dl><dd><i>Eclipse is an open source community, whose projects are focused on building an open development 
platform comprised of extensible frameworks, tools and runtimes for building, deploying and managing software 
across the lifecycle. The Eclipse Foundation is a not-for-profit, member supported corporation that hosts the 
Eclipse projects and helps cultivate both an open source community and an ecosystem of complementary products and services.</i>
</dd></dl>
</dd></dl>
<p>As defined in our Bylaws the Purposes of the Eclipse Foundation are:
</p>
<dl><dd><dl><dd><i>The Eclipse technology is a vendor-neutral, open development platform supplying 
frameworks and exemplary, extensible tools (the "Eclipse Platform"). Eclipse Platform tools are exemplary in 
that they verify the utility of the Eclipse frameworks, illustrate the appropriate use of those frameworks, 
and support the development and maintenance of the Eclipse Platform itself; Eclipse Platform tools are 
extensible in that their functionality is accessible via documented programmatic interfaces. The 
purpose of Eclipse Foundation Inc., (the "Eclipse Foundation"), is to advance the creation, evolution, promotion, and support of the Eclipse Platform and to cultivate both an open source community and an ecosystem of complementary products, capabilities, and services.</i>
</dd></dl>
</dd></dl>
<a name="Strategic_Goals"></a><h2> <span class="mw-headline">Strategic Goals</span></h2>
<p>The following are the strategic goals of Eclipse.
</p>
<ol><li> Establish Eclipse as a leading provider of open source runtime technologies. At least since 2004, Eclipse projects have been shipping innovative runtime technologies such as Equinox and the Rich Client Platform. The last several years have seen steady growth in runtime technologies at Eclipse. At the same time, there has been rapid growth in the interest in OSGi, which is the standard upon which Eclipse is based. Moving forward, we expect to see rapid growth in Eclipse runtime technologies.<br /><br />
</li><li> Maintain global leadership in open source tools platforms. As an open development platform, Eclipse provides support for multiple operating environments and multiple programming languages. The goal of Eclipse is to define for the industry a development platform which is freely licensed, open source and provides support for the full breadth of the application lifecycle, in many disparate problem domains, across the development and deployment platforms of choice.<br /><br />
</li><li> Create value for all its membership classes. The Eclipse Foundation exists to serve its members whose primary interest in leveraging Eclipse technologies in commercial offerings such as products and services. The Eclipse Foundation will focus its energies to ensure that commercial opportunity exists within the Eclipse ecosystem.<br /><br />Committers are also members of the Eclipse Foundation and are in many ways its backbone. The Eclipse Foundation and its staff will continue to look for opportunities to continually improve its service to its project community throughout 2009.<br /><br />
</li><li> Foster growth of the ecosystem, particularly in verticals. The creation of a large community of commercial and open source organizations which rely on and/or complement Eclipse technology has been a major factor in the success of Eclipse. Each time Eclipse technology is used in the development of a product, service or application the Eclipse community is strengthened. Our goal in 2009 is to focus our attention on the creation of industry working groups and new Eclipse projects which focus on particular industry segments such as mobile, automotive, insurance and finance.<br /><br />
</li></ol>
<a name="Future_Directions"></a><h2> <span class="mw-headline">Future Directions</span></h2>
<p>The goal of the Roadmap is to provide the Eclipse ecosystem with guidance and visibility on the future directions of the Eclipse open source community, and to involve the Eclipse membership in a dialog about those future directions. In that vein, this section discusses our current vision of the future as a set of future projects that expand the value of the ecosystem for all of its members.
</p><p>The <a href="themesandpriorities.html" title="RequirementsCouncilThemesAndPriorities">Themes and Priorities</a> document prepared by the Requirements Council describes a number of requirements and focus areas for the existing Eclipse projects.
</p><p>In addition to the <a href="themesandpriorities.html" title="RequirementsCouncilThemesAndPriorities">Themes and Priorities</a> requirements on existing projects in 2009, we envision future growth in Eclipse projects in the following major areas. These are areas in which we envision starting new projects in 2009, not areas in which we envision having completed Eclipse-quality standards-based frameworks and tooling.
</p>
<a name="Enterprise_Java_Development"></a><h3> <span class="mw-headline">Enterprise Java Development</span></h3>
<p>Eclipse has historically maintained a strong presence in the area of enterprise development, with the success and adoption of the Java development tools (JDT) and the Web Tools projects as prime examples.
</p><p>As Eclipse continues to grow and evolve, we anticipate additional projects will be created in this space to meet the ever-evolving needs of enterprise developers. The sections below will cover many topics of interest to this audience (web development, modeling, SOA and the like), but in addition we anticipate additional runtime, application framework and extensible tool projects in Eclipse focused on such disparate areas as dynamic languages, software process engineering, identity management, and multi-tier enterprise applications.
</p>
<a name="Embedded_and_Device_Software_Development"></a><h3> <span class="mw-headline">Embedded and Device Software Development</span></h3>
<p>Eclipse has seen a great deal of success in the embedded marketplace over the past several years. For example, CDT has been used by a number of RTOS vendors as the basis for their tools platform. More recently the Device Software Development Platform project has added additional capabilities in the area of target management, device debug, tools for mobile java developers, C++ GUI builder, and embedded rich client platform.
</p><p>However, there are many different technologies currently not covered by Eclipse which would extend the utility of the Eclipse Platform for the embedded development market. Some examples include:
</p>
<ul><li> Real-time software components for embedded systems which provides a tooling infrastructure and lightweight software architecture for building embedded software.
</li><li> Runtime analysis infrastructure to provide frameworks and tools to monitor applications running on a device
</li><li> Component configuration frameworks and tooling to configure operating systems, file systems and middleware
</li><li> Hardware bring-up mechanisms for on-chip debugging and early development
</li><li> Tools for mobile Linux developers
</li><li> Board design tools
</li></ul>
<p><br />
</p>
<a name="Equinox_and_the_Rich_Client_Platform_.28RCP.29"></a><h3> <span class="mw-headline">Equinox and the Rich Client Platform (RCP)</span></h3>
<p>The RCP was first introduced by Eclipse with the 3.0 release of the Eclipse Platform in June, 2004. At the same time, the OSGi-based Equinox implementation became the basis of the Eclipse plug-in model. 
</p><p>The RCP is a technology for building, provisioning and managing client applications with a rich user experience. Eclipse’s goal is to make the RCP a mainstream development and runtime platform for both ISVs and enterprise developers. To do so, we plan to evolve the RCP technology in the following ways:
</p>
<ul><li> Enhance RCP with new functionality such as better update, provisioning and management capabilities.
</li><li> Enhance the security capabilities of Equinox.
</li><li> Provide application frameworks based on the RCP which extend the utility of the platform into such technology areas as enterprise content management, office and/or personal productivity tools --- particularly in the support of open standards related to documents and data interchange --- business application components and the like.
</li></ul>
<p>In addition to the above, we anticipate that the Equinox runtime technology which underpins RCP will continue to see rapid expansion in the number of projects using this technology on architectural tiers other than the client. Already, the Eclipse Equinox project includes technology for the server-side. The eRCP project is bringing OSGi-based implementations to mobile devices. Swordfish, Riena and EclipseLink are all extending OSGi onto the server tier. This is a trend that we expect to see continue as interest in OSGi as a lightweight container for services-based components continues to expand.
</p>
<a name="Service_Oriented_Architecture"></a><h3> <span class="mw-headline">Service Oriented Architecture</span></h3>
<p>One of the major areas of growth in enterprise application development is in Service Oriented Architecture (SOA). The major focal point for Eclipse development in this space are:
</p>
<ul><li> the SOA Tools Project (STP), which is focused providing a generic, extensible, standards-based tool platform for producing SOA applications based around the Service Component Architecture (SCA) specification; and
</li><li> Swordfish, the SOA Runtime project which is focused on providing an extensible SOA framework based on the proven Eclipse Equinox runtime technology. The framework is designed to be complemented by additional open source components such as a service registry, a messaging system, a process engine etc. to form a comprehensive open source SOA runtime environment based on both established and emerging open standards.
</li></ul>
<p>As these projects continue to mature and evolve, we anticipate additional SOA-focused projects at Eclipse.
</p>
<a name="Web_Development"></a><h3> <span class="mw-headline">Web Development</span></h3>
<p>RIA technologies such as Ajax and Flash continue to grow rapidly as the development technology of choice for many new software products and applications. The Eclipse community’s initial projects in this space include:
</p>
<ul><li> The Ajax Toolkit Framework (ATF) project which provides a complete IDE for Ajax edit/compile/debug.
</li><li> The Rich Ajax Platform (RAP) project which implements an OSGi-based runtime for building and deploying rich, Ajax-enabled web applications written in Java and deployed from a server.
</li></ul>
<p>We anticipate continued growth in Eclipse projects in the RIA area, as developers look to leverage Eclipse runtimes, frameworks and tools in this domain.
</p>
<a name="Modeling"></a><h3> <span class="mw-headline">Modeling</span></h3>
<p>Eclipse modeling technologies such as the Eclipse Modeling Framework (EMF) and the Graphical Modeling Framework (GMF) have become broadly adopted throughout the industry. In turn, this adoption has attracted many additional modeling projects to Eclipse and we anticipate that this trend will continue. In particular, we expect continuing interest in Eclipse as the community to work with in areas such as model driven development and domain-specific modeling tools.
</p>
<a name="Application_Frameworks"></a><h3> <span class="mw-headline">Application Frameworks</span></h3>
<p>We are seeing interest from various industry segments in basing their next generation tools and runtimes on Eclipse. Thus a future growth area for Eclipse is to extend our projects to provide open source runtimes, application frameworks and extensible, exemplary tools targeted at standards in specific vertical markets such as mobile, aerospace, automotive, insurance and finance. 
</p><p>One area of particular interest is the development of Equinox-based application frameworks which can be used to build and deploy products and applications targeted at particular domains.
</p>
<a name="The_Roadmap_Process"></a><h2> <span class="mw-headline">The Roadmap Process</span></h2>
<p>The process of creating the Eclipse Roadmap is described in the Eclipse Development Process. The key pieces are
</p>
<dl><dd><dl><dd><i>Creating or updating the Roadmap begins with the Requirements Council proposing a set of Themes and Priorities that realize the Purposes and that respond to requirements elicited from the Strategic Developers, Strategic Consumers, Add-in Providers, and other constituents of the Ecosystem. After review by the Board of Directors, these Themes and Priorities are provided as input to the Planning Council. The EMO ensures that the Planning Council and the Development teams have access to all requirements. Updates to the Purposes are likely to require updates to the Roadmap and its associated themes and priorities; proposed Roadmap updates may also be motivated by new technologies or opportunities.</i>
</dd></dl>
</dd></dl>
<dl><dd><dl><dd><i>The process of producing or updating the Roadmap is expected to be iterative. An initial set of Themes and Priorities may be infeasible to implement in the desired timeframe; subsequent consideration may reveal new implementation alternatives or critical requirements that alter the team’s perspective on priorities. The EMO orchestrates interaction among and within the three Councils to drive the Roadmap to convergence.</i>
</dd></dl>
</dd></dl>
<p>This fourth version of the Eclipse Roadmap has been developed by the two councils:  the Planning Council and the Requirements Council. Those Councils met face-to-face two times in 2008:  once in March at EclipseCon and once in October.(The minutes of these meetings are available on the Councils page). Subsequent discussion of the Roadmap was done through numerous individual phone calls, emails amongst the Council members and collaborative editing of the documents via the Eclipse wiki. 2008 also saw the introduction of a standardized XML-based project plan format for Eclipse projects, and the development plan is a roll up of those plans provided by the projects.
</p><p>The information flow we managed to achieve in this Roadmap was:
</p>
<ul><li> from the membership (both the membership-at-large and the strategic members) to the Requirements Council
</li><li> from the PMC project plans to the Planning Council
</li></ul>
<p>In summary, through lots of hard work by everyone, the two groups converged on this Roadmap document.
</p><p>The Roadmap was presented and affirmed by the Eclipse Board of Directors on December 12, 2008.
</p><p>Please also read:
</p>
<ol><li> The <a href="themesandpriorities.html" title="RequirementsCouncilThemesAndPriorities">Themes and Priorities</a> which has been developed by the Eclipse Requirements Council.
</li><li> The <a href="platformplan.html">Platform Release Plan</a> which has been developed by the Eclipse Planning Council.
</li></ol>

<!-- 
NewPP limit report
Preprocessor node count: 23/1000000
Post-expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
#ifexist count: 0/100
-->

<!-- Saved in parser cache with key wikidb:pcache:idhash:16808-0!1!0!!en!2!edit=0 and timestamp 20081204001320 -->
	</div>
	
	<div id="rightcolumn">
	    <div class="sideitem">
			<h6>Thank you!</h6>
			<p>Our thanks to <a href="../../foundation/thankyou.php">HP, IBM, Intel, Magma and Novell</a> for generous donations to our website infrastructure.</p>
		</div>

		<div class="sideitem">
			<h6>Related Links</h6>
			<ul>
				<li><a href="../../../projects/">Projects</a></li>
				<li><a href="../../../membership/">Membership</a></li>
				<li><a href="../../../membership/become_a_member/">Become a member</a></li>
			</ul>

		</div>
	</div>
	</div>

		<script type="text/javascript">
		var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
		document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		</script>
		<script type="text/javascript">
		var pageTracker = _gat._getTracker("UA-910670-2");
		pageTracker._initData();
		pageTracker._trackPageview();
		</script></div><div id="footer">
<ul id="footernav">
<li class="first"><a href="http://www.eclipse.org/">Home</a></li>
<li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>

<li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a><a href="http://www.eclipse.org/org/press-release/20081112_termsofuse.php"><img src="http://www.eclipse.org/images/updated.png" align="absmiddle" /></a></li>
</ul>
<p>Copyright &copy; 2008 The Eclipse Foundation. All Rights Reserved</p>
</div></body></html>
