<?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'
	$pageTitle 		= "SMILA - Integrators";
	$pageKeywords	= "SMILA, unstructured information management, information logistics, semantic web, framework, platform, eclipse";
	$pageAuthor		= "Igor Novakovic";

	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">
		<h1>Integrators</h1>
		<p>
			If you are only interested in integrating your service/component in SMILA, 
			then we suggest you get familiar with <a href="http://wiki.eclipse.org/SMILA/Howto_integrate_a_component_in_SMILA" target="_blank">integration tutorial</a> 
			maintained in our wiki.
		</p>
		<p>
			Since SMILA is highly component-based you can easily replace any of its functional parts, 
			integrate new (BPEL) services in the workflow and/or write your own data connectors (crawler/agent).
			Basically, SMILA offers three different integration scenarios:
			<ul>
				<li>Integrating services in BPEL</li>
				<li>Integrating agents and crawlers</li>
				<li>Integrating alternative implementations for SMILA core components</li>
			</ul>
		</p>
	</div>
	  
	<div id="rightcolumn">
    	<div class="sideitem">
       		<h6>Incubation</h6><p>
       		<div align="center">
         		<a href="/projects/what-is-incubation.php">
           		<img align="center" src="/images/egg-incubation.png" border="0"/></a>
       		</div>
     	</div>
	  	<div class="sideitem">
			<h6>Links</h6>
			<ul>
				<li><a href="http://wiki.eclipse.org/SMILA" target="_blank">Wiki</a></li>				
				<li><a href="http://www.eclipse.org/proposals/eilf/SMILA_Creation_Review.pdf" target="_blank">Creation Review</a></li>
				<li><a href="http://www.eclipse.org/proposals/eilf" target="_blank">Project proposal</a></li>
				<li><a href="http://live.eclipse.org/node/617" target="_blank">Webinar</a></li>
			</ul>
		</div>
	</div>	

EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
