Difference between revisions of "The Development Cycle"

From GCube System
Jump to: navigation, search
(New page: Let us go through a quick tour of development with ''SampleService''. == A Tiny Profile == A good starting point with service development is its [[Configuration Management|configuration...)
 
Line 3: Line 3:
 
== A Tiny Profile ==
 
== A Tiny Profile ==
  
A good starting point with service development is its [[Configuration Management|configuration]]. And a good starting point for service configuration is its [[Configuration Management#Profiles, Properties & Descriptors|service profile]]. Below is a small but perfectly formed service profile:
+
A good starting point with service development is its [[Configuration Management|configuration]]. And a good starting point when configuring a service is the definition of its profile. The role and structure of gCube service profiles is described in detail [[Configuration Management#Profiles, Properties & Descriptors|elsewhere]]. Here we just report what is probably the smallest and yet well-formed profile a service may have:
  
 
<pre>
 
<pre>
Line 22: Line 22:
 
<PortType>
 
<PortType>
 
<Name>acme/sample/stateless</Name>
 
<Name>acme/sample/stateless</Name>
<WSDL/>
+
<WSDL>...</WSDL>
 
</PortType>
 
</PortType>
 
</Main>
 
</Main>
Line 34: Line 34:
 
</Profile>
 
</Profile>
 
</Resource>
 
</Resource>
</pre>  
+
</pre>
 +
 
 +
By necessity, this profile reveals things yet to come. For the time being, notice the following:
 +
 
 +
* ''SampleService'' is a a particular type of ''gCube Resource'', one of type ''Service''. Like all gCube Resources has an ''ID'', which it receives when it is formally registered with the infrastructure. Until then, ''SampleService'' does not have a proper identifier. No worries though, a temporary one will be generated by gCF at runtime.
 +
 
 +
* The profile of ''SampleService'' specifies its ''Name'' and specifies its membership to a ''Class'' of functionally related gCube services. Classes are not pre-defined and here we settle on ''Samples''.  A free-form ''Description'' and a ''Version'' complement the preliminary description of ''SampleService''.
 +
 
 +
* ''SampleService'' is physically comprised of ''Packages''. A ''Main'' package identifies the main artefact to emerge from the build of the service, a ''GARArchive'', and provides information about the service port-types, including their ''WSDL''s' (here omitted for mercy). Another ''Software'' component identifies the secondary build artefact of the service, its own stubs. If the notion of build artefact is not obvious to you, bide your time for a little longer or [[Building & Deploying |jump ahead]].
 +
 
 +
 
 +
 
  
 
== My First JNDI ==
 
== My First JNDI ==
 
== A PortType Interface ==
 
== A PortType Interface ==
 
== Moving to the Implementation ==
 
== Moving to the Implementation ==
== Building & Deploying|Building & Deploying ==
+
== Building & Deploying ==
 
== Logging it ==
 
== Logging it ==
 
== A Test Client ==
 
== A Test Client ==

Revision as of 10:45, 11 April 2008

Let us go through a quick tour of development with SampleService.

A Tiny Profile

A good starting point with service development is its configuration. And a good starting point when configuring a service is the definition of its profile. The role and structure of gCube service profiles is described in detail elsewhere. Here we just report what is probably the smallest and yet well-formed profile a service may have:

<?xml version="1.0" encoding="UTF-8"?>
<Resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<ID></ID>
	<Type>Service</Type>
	<Profile>
		<Description>A very simple gCube Service</Description>
		<Class>Samples</Class>
		<Name>SampleService</Name>
		<Version>1.0</Version>
		<Packages>
			<Main>
				<Name>Main</Name>
				<Version>1.0</Version>
				<GARArchive>org.acme.sample.gar</GARArchive>
				<PortType>
					<Name>acme/sample/stateless</Name>
					<WSDL>...</WSDL>
				</PortType>
			</Main>
			<Software>
				<Description>Describes port-type stubs</Description>
				<Name>Stubs</Name>
				<Version>1.0</Version>
				<Files><File>org.acme.sample.stubs.jar</File></Files>
			</Software>
		</Packages>
	</Profile>
</Resource>

By necessity, this profile reveals things yet to come. For the time being, notice the following:

  • SampleService is a a particular type of gCube Resource, one of type Service. Like all gCube Resources has an ID, which it receives when it is formally registered with the infrastructure. Until then, SampleService does not have a proper identifier. No worries though, a temporary one will be generated by gCF at runtime.
  • The profile of SampleService specifies its Name and specifies its membership to a Class of functionally related gCube services. Classes are not pre-defined and here we settle on Samples. A free-form Description and a Version complement the preliminary description of SampleService.
  • SampleService is physically comprised of Packages. A Main package identifies the main artefact to emerge from the build of the service, a GARArchive, and provides information about the service port-types, including their WSDLs' (here omitted for mercy). Another Software component identifies the secondary build artefact of the service, its own stubs. If the notion of build artefact is not obvious to you, bide your time for a little longer or jump ahead.



My First JNDI

A PortType Interface

Moving to the Implementation

Building & Deploying

Logging it

A Test Client