Building your own Open SkyNode
		Intro
		This guide is designed to simply outline requirements for a full compliance 
		open skynode in the open skyquery project, or just osq. If you're building your 
		own skynode, it should give you an idea of what it will need to do, but will 
		not go into any implementation specific details; exactly how you accomplish 
		these items is up to you.
		
Overview
		Open SkyQuery is consists of:
		   
			NVO Registry
		   	
				All nodes must be registered in this registry. To view all nodes through the 
				registry, go to advanced search and look for "serviceType like 'skynode'". 
				Required fields for skynodes are 'ShortName', 'SkyNode Compliance' and 
				'ServiceUrl'.
			
				The meat of OSQ. Nodes are where the queries are actually run; this is where 
				the real work happens. They are not particullarly trivial to implement, but 
				they are not that difficult either. See this guide for more info.
			
				The starting point for a query is the portal. Here it is divied up organized 
				into sorted plan and sent off to the first node. This particular portal 
				provides asychronous execution and decent query status tracking, but these are 
				bonus features. The only thing a portal really has to do is split up a query 
				and ship it.
			
Execution Overview
		After the portal has constructed an object containing node-specific queries it 
		then sends it to the first node. However, this node does not execute its 
		section yet, instead it passes it off to the next node and this continues until 
		it reaches the last node. Then this last node will run its section, return its 
		results to the previous node, and continue until it has reached the portal 
		again. This is less confusing than it sounds (no, really), and is a nice, easy 
		way to implement a distributed query without having to track state.
		
The ExecPlan
		This is the actual object or document that the portal passes to the nodes. A 
		sample is provided below.
		
		Nodes need only care about two sections in the plan; the 'Format' and the 
		'PlanElements'. Format is the specified transport for this particular plan, and 
		you should expect to receive and send results in that format. It is almost 
		always VOTABLE, but may occasionally be DataSet. VOTABLE is the only required 
		supported format for nodes.
		
			The PlanElements object is an array of PlanElement objects. Each PlanElement is 
			the relevant section for a particular node; each node need only execute its own 
			PlanElement. A PlanElement consists of 'Statement', 'Hosts' and 'Target'. 
			Target is the shortName (from the registry) of the intended node, and Hosts is 
			a list of mirrors for that node (serviceURL in the registry). The PlanElements 
			array is sorted from lowest index to highest; so the the node at 
			PlanElements[0] would be the first to receive the plan.
			
 
			
				Implementations
			
		
			There's extensive information on building a skynode with SQLServer at 
				SkyServer.org.
		
		To turn this into an open skynode you just need :
		    
			- 
				Download 
				the latest node template
			
- 
				extract it into the same directory.
			There is also a template for the Basic SkyNode in Java. This was most recently 
			used at the NVO Summer school and is in the 
			summer school download. See the last part of 
			the Server Side tutorial