<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Nathan Gervais
	# Date:			2007-12-05
	#
	# Description: DTP Website
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Connectivity Project";
	$pageKeywords	= "eclipse, data tools, dtp, datatools, connectivity";
	$pageAuthor		= "Nathan Gervais";
	
	ob_start();
	?>
	<div id="midcolumn">
		<h1><?=$pageTitle; ?></h1>
		<div class="homeitem3col">
			<h3>Project Overview</h3>
			<p>The Connectivity project includes components for defining, connecting to, and working with data sources.</p>
		</div>
		<hr class="clearer">
		<div class="homeitem3col">
			<h3>What's New</h3>
			<ul>
				<li>
					<img src="../../images/Adarrow.gif" width="16" height="16" border="0">
			    	  <a href="connectivity_doc/Connect to Derby using DTP M2.htm" target="main"><b>December 23: </b>Connecting to Apache Derby using DTP M2 posted</a>
			    </li>
			    <li>
					<img src="../../images/Adarrow.gif" width="16" height="16" border="0">
			    	  <a href="connectivity_doc/DTPConnectivityFrameworkDevelopersQSGuide.htm" target="main"><b>November 14: </b>Developers' Guide for Connectivity Frameworks posted</a>
	    	    </li>
	    	    <li>
					<img src="../../images/Adarrow.gif" width="16" height="16" border="0">
    	  				<a href="connectivity_doc/Connect to Derby using DTP M2.htm" target="main"><b>December 23: </b>Connecting to Apache Derby using DTP M2 posted</a>
	    	    </li>
    	   	    <li>
	    	    	<img src="../../images/Adarrow.gif" width="16" height="16" border="0">
    	  				<a href="connectivity_doc/OdaOverview.htm" target="main"><b>November 11: </b>ODA overview documentation updated</a>
	    	    </li>	
	    	    <li>
					<img src="../../images/Adarrow.gif" width="16" height="16" border="0">
    	  				<a href="#dse_design" target="main"><b>October 21: </b>Data Source Explorer design document published</a>	    	    
    	  		</li>	
	    	    <li>
					<img src="../../images/Adarrow.gif" width="16" height="16" border="0">
    	  				<a href="connectivity_doc/CMF_I101905.html" target="main"><b>October 20: </b>M1 Iteration 2 Connection Profile extension point documentation published</a>	    	    
	    	    </li>	
	    	    <li>
					<img src="../../images/Adarrow.gif" width="16" height="16" border="0">
    	  				<a href="connectivity_doc/OdaOverview.htm" target="main"><b>October 20: </b>M1 Iteration 2 ODA overview documentation published</a>	    	    
	    	    </li>	
	    	    <li>
					<img src="../../images/Adarrow.gif" width="16" height="16" border="0">
    	  				<a href="connectivity_doc/DMF_I101205.html" target="main"><b>October 13: </b>M1 Iteration 1 Driver Management Framework documentation published</a>	    	    
	    	    </li>	
			</ul>				
		</div>
		
		<div class="homeitem3col">
			<h3>Project Components</h3>
      <ul><li><p><b>Driver Management Framework</b><br/><br/>Access to the appropriate drivers is a 
      prerequisite for programmatic interaction with data sources. The Driver Management Framework 
      (DMF) supplies an Eclipse preference page enabling users to create driver definitions based 
      on supplied templates. A number of templates are provided in the base installation, and additional 
      templates can be added by component developers contributing to DMF extension points.</p>
      <p><i>Developers' Guide for Connectivity Frameworks</i>
	  (<a href="connectivity_doc/DTPConnectivityFrameworkDevelopersQSGuide.htm">HTML</a>)</p></ul>
      <ul><li><p><b>Connection Management Framework</b><br/><br/>The Connection Management Framework 
      (CMF) is the foundation upon which specific connection types are created. The connection types, 
      called <i>Connection Profiles</i> (CP), are contributed to the CMF through extension points. 
      Users then connect to data source instances by creating and configuring a CP for that data 
      source type. Data source-standard configuration parameters, such as the connection URL, user name, 
      and password, are provided on CP instance creation and stored as secure meta-data for the CP. CP 
      allow for host connectivity checks (&ldquo;ping&rdquo;), connection, auto-connect on CP startup, and disconnect. 
      Further, CP Extensions enable additional functionality and content to be added to a CP. For reuse of CP instance configuration, 
      base import/export functionality is provided by CPF and surfaced in tools such as the DSE Explorer (see below). Data source CP 
      then become the connection providers through which other DTP tooling accesses data source instances.</p>
       <p><i>Developers' Guide for Connectivity Frameworks</i>
	  (<a href="connectivity_doc/DTPConnectivityFrameworkDevelopersQSGuide.htm">HTML</a>)</p>
	  </ul>
	  <ul><li><p><b>JDBC connection support</b><br/><br/>DTP will include a JDBC driver template and CP, as a means of enabling 
	  database connectivity, and serving as an example for further CP development. Database-specific capabilities can then be 
	  surfaced as CP extensions, allowing for specialization and presentation of differentiating database functionality directly 
	  in that database's CP.</p>
	  <p><i>Connecting to Apache Derby using DTP M2</i>
	   (<a href="connectivity_doc/Connect to Derby using DTP M2.htm">HTML</a>)</p></ul>
	  <ul><li><p><b>Data Source Explorer</b><br/><br/>The Data Source Explorer (DSE) is an Eclipse view housing CP instances. 
	  From this view, CP capabilities are surfaced, and data source content is presented. The type and level of detail for any 
	  one instance is constrained only by the CP itself. DSE also is a provider of CP instance data to clients, such as drag 
	  and drop and API calls. This allows data tooling requiring connection management to interact with the DSE 
	  as a mediator to CP instances.</p>
	  <p><a name="dse_design"><i>Data Source Explorer Design</i></a> 
	  (<a href="connectivity_doc/dse/DTP Connectivity DSE Design 0_5.htm" target="main">HTML</a>) 
	  (<a href="connectivity_doc/dse/DTP Connectivity DSE Design 0_5.pdf" target="_blank">PDF</a>)</p></ul>
	  <UL><LI><P><b>Open Data Access</b><br/><br/>The Open Data Access (ODA) component is an open and flexible data access 
	  framework that allows applications to access data from both standard and custom data sources. It enables data connectivity 
	  between data consumers and data source providers through published run-time and design-time interfaces. In addition, 
	  the framework also includes an ODA driver management package that helps an ODA consumer application to manage diverse 
	  behavior of individual ODA data drivers.
	  <br/><br/>A data driver is created simply by implementing the run-time interfaces defined by the framework. 
	  The run-time interfaces include support for establishing a connection, accessing meta-data, and executing queries to
	  retrieve data.&nbsp; A driver can define internal data source connection profiles and/or work with the CMF's Connection
	  Profiles extensions. Once developed, the driver can be registered through an extension point with individual ODA 
	  consumer components to enable data connectivity. The framework also provides design-time interfaces to integrate custom 
	  query builders within an application designer tool. Additional ODA examples can be found in the 
	  <a href="http://www.eclipse.org/birt" target="_top"> Eclipse BIRT</a> project.</p>
	  <p><i>ODA Overview Document</i>
	  (<a href="connectivity_doc/OdaOverview.htm" target="main">HTML</a>)
	  (<a href="connectivity_doc/OdaOverview.pdf" target="_blank">PDF</a>)<br/>
	  <i>Developers' Guide for Connectivity Frameworks</i>
	  (<a href="connectivity_doc/DTPConnectivityFrameworkDevelopersQSGuide.htm">HTML</a>)</p></ul>
		</div>
	</div>
<?

	$html = ob_get_clean();

	# New stuff for About this Project links...
	$Nav->setLinkList( array() );
	$Nav->addNavSeparator( "DTP Connectivity", "/datatools" );
	$Nav->addCustomNav( "About This Project",
	    "/projects/project_summary.php?projectid=datatools.connectivity", "", 1  );
	$Nav->addCustomNav( "Wiki",
	    "http://wiki.eclipse.org/Connectivity", "", 1  );
	    
    # Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>