From: <bh...@us...> - 2008-01-09 22:34:02
|
Revision: 594 http://cishell.svn.sourceforge.net/cishell/?rev=594&view=rev Author: bh2 Date: 2008-01-09 14:33:54 -0800 (Wed, 09 Jan 2008) Log Message: ----------- Most of org.cishell.framework part of the spec has been rough drafted. Still need to work on algorithm service properties and data properties. Next I'll start drafting the cishell services. Modified Paths: -------------- trunk/core/org.cishell.docs/src/img/algExecWorkflow.dia trunk/core/org.cishell.docs/src/img/algExecWorkflow.eps trunk/core/org.cishell.docs/src/img/algExecWorkflow.pdf trunk/core/org.cishell.docs/src/mystyle.sty trunk/core/org.cishell.docs/src/specification/main.tex trunk/core/org.cishell.docs/src/specification/tex/algorithms.tex trunk/core/org.cishell.docs/src/specification/tex/data.tex trunk/core/org.cishell.docs/src/specification/tex/framework.tex trunk/core/org.cishell.docs/src/specification/tex/guidefinition.tex trunk/core/org.cishell.docs/src/specification/tex/introduction.tex trunk/core/org.cishell.docs/src/texdoclet/src/org/wonderly/doclets/TexDoclet.java Modified: trunk/core/org.cishell.docs/src/img/algExecWorkflow.dia =================================================================== (Binary files differ) Modified: trunk/core/org.cishell.docs/src/img/algExecWorkflow.eps =================================================================== --- trunk/core/org.cishell.docs/src/img/algExecWorkflow.eps 2008-01-09 00:57:19 UTC (rev 593) +++ trunk/core/org.cishell.docs/src/img/algExecWorkflow.eps 2008-01-09 22:33:54 UTC (rev 594) @@ -1,11 +1,11 @@ %!PS-Adobe-2.0 EPSF-2.0 %%Title: /home/bherr/cishell-workspace/org.cishell.docs/src/img/algExecWorkflow.dia %%Creator: Dia v0.95 -%%CreationDate: Tue Jan 8 19:30:54 2008 +%%CreationDate: Wed Jan 9 10:58:56 2008 %%For: bherr %%Orientation: Portrait %%Magnification: 1.0000 -%%BoundingBox: 0 0 1146 213 +%%BoundingBox: 0 0 1146 381 %%BeginSetup %%EndSetup %%EndComments @@ -341,7 +341,7 @@ currentdict end definefont pop 28.346000 -28.346000 scale --3.052329 -20.889765 translate +-3.052330 -20.889800 translate %%EndProlog @@ -369,32 +369,32 @@ [] 0 sd 0 slj 0 slc -n 27.273560 17.145000 m 23.346440 17.145000 l 23.346440 17.144000 l 22.555758 17.144000 l s +n 27.273500 17.145000 m 23.346400 17.145000 l 23.346400 17.144000 l 22.558300 17.144000 l s /Courier-latin1 ff 0.560000 scf sf -(Creates) 23.446440 16.994500 m gs 1 -1 sc sh gr -n 25.996440 16.994500 m 25.996440 16.594500 l 26.396440 16.794500 l ef -(1) dup sw 27.073560 ex sub 16.995000 m gs 1 -1 sc sh gr -(1) 22.755758 16.994000 m gs 1 -1 sc sh gr +(creates) 23.446400 16.994500 m gs 1 -1 sc sh gr +n 25.996400 16.994500 m 25.996400 16.594500 l 26.396400 16.794500 l ef +(1) dup sw 27.073500 ex sub 16.995000 m gs 1 -1 sc sh gr +(1) 22.758300 16.994000 m gs 1 -1 sc sh gr 0.100000 slw [] 0 sd 1.000000 1.000000 1.000000 srgb -n 4.665347 13.448391 m 4.665347 15.648391 l 9.715347 15.648391 l 9.715347 13.448391 l f +n 4.652850 16.044700 m 4.652850 18.244700 l 9.702850 18.244700 l 9.702850 16.044700 l f 0.000000 0.000000 0.000000 srgb -n 4.665347 13.448391 m 4.665347 15.648391 l 9.715347 15.648391 l 9.715347 13.448391 l cp s +n 4.652850 16.044700 m 4.652850 18.244700 l 9.702850 18.244700 l 9.702850 16.044700 l cp s /Courier-latin1 ff 0.560000 scf sf -(<<interface>>) dup sw 2 div 7.190347 ex sub 14.098391 m gs 1 -1 sc sh gr +(<<interface>>) dup sw 2 div 7.177850 ex sub 16.694700 m gs 1 -1 sc sh gr /Helvetica-Bold-latin1 ff 0.700000 scf sf -(Data) dup sw 2 div 7.190347 ex sub 15.098391 m gs 1 -1 sc sh gr +(Data) dup sw 2 div 7.177850 ex sub 17.694700 m gs 1 -1 sc sh gr 0.100000 slw [] 0 sd 1.000000 1.000000 1.000000 srgb -n 3.102329 18.639765 m 3.102329 20.839765 l 9.702329 20.839765 l 9.702329 18.639765 l f +n 3.102330 18.639800 m 3.102330 20.839800 l 9.702330 20.839800 l 9.702330 18.639800 l f 0.000000 0.000000 0.000000 srgb -n 3.102329 18.639765 m 3.102329 20.839765 l 9.702329 20.839765 l 9.702329 18.639765 l cp s +n 3.102330 18.639800 m 3.102330 20.839800 l 9.702330 20.839800 l 9.702330 18.639800 l cp s /Courier-latin1 ff 0.560000 scf sf -(<<interface>>) dup sw 2 div 6.402329 ex sub 19.289765 m gs 1 -1 sc sh gr +(<<interface>>) dup sw 2 div 6.402330 ex sub 19.289800 m gs 1 -1 sc sh gr /Helvetica-Bold-latin1 ff 0.700000 scf sf -(CIShellContext) dup sw 2 div 6.402329 ex sub 20.289765 m gs 1 -1 sc sh gr +(CIShellContext) dup sw 2 div 6.402330 ex sub 20.289800 m gs 1 -1 sc sh gr 0.100000 slw [] 0 sd [] 0 sd @@ -406,56 +406,137 @@ [] 0 sd 0 slj 0 slc -n 9.702329 19.739765 m 11.446440 19.739765 l 11.446440 17.144000 l 14.958000 17.144000 l s +n 9.702330 19.739800 m 11.446400 19.739800 l 11.446400 17.144000 l 14.958000 17.144000 l s /Courier-latin1 ff 0.560000 scf sf -(1) 9.902329 19.589765 m gs 1 -1 sc sh gr +(1) 9.902330 19.589800 m gs 1 -1 sc sh gr (1) dup sw 14.758000 ex sub 16.994000 m gs 1 -1 sc sh gr 0.100000 slw [] 0 sd 0 slj 0 slc -n 9.715347 14.548391 m 11.446440 14.548391 l 11.446440 17.144000 l 14.958000 17.144000 l s +n 9.702850 17.144700 m 11.777300 17.144700 l 11.777300 17.144000 l 14.958000 17.144000 l s /Courier-latin1 ff 0.560000 scf sf -(0..n) 9.915347 14.398391 m gs 1 -1 sc sh gr +(given) 11.877300 16.994350 m gs 1 -1 sc sh gr +n 13.727300 16.994350 m 13.727300 16.594350 l 14.127300 16.794350 l ef +(0..n) 9.902850 16.994700 m gs 1 -1 sc sh gr (1) dup sw 14.758000 ex sub 16.994000 m gs 1 -1 sc sh gr 0.100000 slw [] 0 sd 1.000000 1.000000 1.000000 srgb -n 4.663538 16.042763 m 4.663538 18.242763 l 9.713538 18.242763 l 9.713538 16.042763 l f +n 4.651040 13.330300 m 4.651040 15.530300 l 9.701040 15.530300 l 9.701040 13.330300 l f 0.000000 0.000000 0.000000 srgb -n 4.663538 16.042763 m 4.663538 18.242763 l 9.713538 18.242763 l 9.713538 16.042763 l cp s +n 4.651040 13.330300 m 4.651040 15.530300 l 9.701040 15.530300 l 9.701040 13.330300 l cp s /Courier-latin1 ff 0.560000 scf sf -(<<interface>>) dup sw 2 div 7.188538 ex sub 16.692763 m gs 1 -1 sc sh gr +(<<interface>>) dup sw 2 div 7.176040 ex sub 13.980300 m gs 1 -1 sc sh gr /Helvetica-Bold-latin1 ff 0.700000 scf sf -(Dictionary) dup sw 2 div 7.188538 ex sub 17.692763 m gs 1 -1 sc sh gr +(Dictionary) dup sw 2 div 7.176040 ex sub 14.980300 m gs 1 -1 sc sh gr 0.100000 slw [] 0 sd 0 slj 0 slc -n 9.763802 17.142763 m 11.761822 17.142763 l 11.761822 17.144000 l 14.958000 17.144000 l s +n 9.751110 14.430300 m 11.452300 14.430300 l 11.452300 17.144000 l 14.958000 17.144000 l s /Courier-latin1 ff 0.560000 scf sf -(given) 11.861822 16.993381 m gs 1 -1 sc sh gr -n 13.711822 16.993381 m 13.711822 16.593381 l 14.111822 16.793381 l ef -(1) 9.963802 16.992763 m gs 1 -1 sc sh gr +(1) 9.951110 14.280300 m gs 1 -1 sc sh gr (1) dup sw 14.758000 ex sub 16.994000 m gs 1 -1 sc sh gr 0.100000 slw [] 0 sd 1.000000 1.000000 1.000000 srgb -n 38.373025 16.043657 m 38.373025 18.243657 l 43.423025 18.243657 l 43.423025 16.043657 l f +n 38.373000 16.043700 m 38.373000 18.243700 l 43.423000 18.243700 l 43.423000 16.043700 l f 0.000000 0.000000 0.000000 srgb -n 38.373025 16.043657 m 38.373025 18.243657 l 43.423025 18.243657 l 43.423025 16.043657 l cp s +n 38.373000 16.043700 m 38.373000 18.243700 l 43.423000 18.243700 l 43.423000 16.043700 l cp s /Courier-latin1 ff 0.560000 scf sf -(<<interface>>) dup sw 2 div 40.898025 ex sub 16.693657 m gs 1 -1 sc sh gr +(<<interface>>) dup sw 2 div 40.898000 ex sub 16.693700 m gs 1 -1 sc sh gr /Helvetica-Bold-latin1 ff 0.700000 scf sf -(Data) dup sw 2 div 40.898025 ex sub 17.693657 m gs 1 -1 sc sh gr +(Data) dup sw 2 div 40.898000 ex sub 17.693700 m gs 1 -1 sc sh gr 0.100000 slw [] 0 sd 0 slj 0 slc -n 38.323936 17.143657 m 33.196440 17.143657 l 33.196440 17.145000 l 32.368000 17.145000 l s +n 38.323900 17.143700 m 33.196400 17.143700 l 33.196400 17.145000 l 32.368000 17.145000 l s /Courier-latin1 ff 0.560000 scf sf -(Creates) 33.296440 16.994328 m gs 1 -1 sc sh gr -n 35.846440 16.994328 m 35.846440 16.594328 l 36.246440 16.794328 l ef -(0..n) dup sw 38.123936 ex sub 16.993657 m gs 1 -1 sc sh gr +(creates) 33.296400 16.994350 m gs 1 -1 sc sh gr +n 35.846400 16.994350 m 35.846400 16.594350 l 36.246400 16.794350 l ef +(0..n) dup sw 38.123900 ex sub 16.993700 m gs 1 -1 sc sh gr (1) 32.568000 16.995000 m gs 1 -1 sc sh gr +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 14.842100 7.525020 m 14.842100 9.725020 l 22.392100 9.725020 l 22.392100 7.525020 l f +0.000000 0.000000 0.000000 srgb +n 14.842100 7.525020 m 14.842100 9.725020 l 22.392100 9.725020 l 22.392100 7.525020 l cp s +/Courier-latin1 ff 0.560000 scf sf +(<<interface>>) dup sw 2 div 18.617100 ex sub 8.175020 m gs 1 -1 sc sh gr +/Helvetica-Bold-latin1 ff 0.700000 scf sf +(AlgorithmFactory) dup sw 2 div 18.617100 ex sub 9.175020 m gs 1 -1 sc sh gr +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 27.902100 7.526020 m 27.902100 9.726020 l 35.802100 9.726020 l 35.802100 7.526020 l f +0.000000 0.000000 0.000000 srgb +n 27.902100 7.526020 m 27.902100 9.726020 l 35.802100 9.726020 l 35.802100 7.526020 l cp s +/Courier-latin1 ff 0.560000 scf sf +(<<interface>>) dup sw 2 div 31.852100 ex sub 8.176020 m gs 1 -1 sc sh gr +/Helvetica-Bold-latin1 ff 0.700000 scf sf +(MetaTypeProvider) dup sw 2 div 31.852100 ex sub 9.176020 m gs 1 -1 sc sh gr +0.100000 slw +[] 0 sd +0 slj +0 slc +n 27.852214 8.626020 m 23.434100 8.626020 l 23.434100 8.625020 l 22.442123 8.625020 l s +/Courier-latin1 ff 0.560000 scf sf +(provides) 23.534100 8.475520 m gs 1 -1 sc sh gr +n 26.434100 8.475520 m 26.434100 8.075520 l 26.834100 8.275520 l ef +(1) dup sw 27.652214 ex sub 8.476020 m gs 1 -1 sc sh gr +(1) 22.642123 8.475020 m gs 1 -1 sc sh gr +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 4.595000 7.525000 m 4.595000 9.725000 l 9.645000 9.725000 l 9.645000 7.525000 l f +0.000000 0.000000 0.000000 srgb +n 4.595000 7.525000 m 4.595000 9.725000 l 9.645000 9.725000 l 9.645000 7.525000 l cp s +/Courier-latin1 ff 0.560000 scf sf +(<<interface>>) dup sw 2 div 7.120000 ex sub 8.175000 m gs 1 -1 sc sh gr +/Helvetica-Bold-latin1 ff 0.700000 scf sf +(Data) dup sw 2 div 7.120000 ex sub 9.175000 m gs 1 -1 sc sh gr +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 22.510300 8.794320 m 21.415600 9.834120 l 22.509600 9.834120 l ef +n 22.510300 8.794320 m 21.415600 9.834120 l 22.509600 9.834120 l cp s +0.100000 slw +[] 0 sd +0 slj +0 slc +n 9.645000 8.625000 m 11.534100 8.625000 l 11.534100 8.625020 l 14.842100 8.625020 l s +/Courier-latin1 ff 0.560000 scf sf +(given) 11.634100 8.475010 m gs 1 -1 sc sh gr +n 13.484100 8.475010 m 13.484100 8.075010 l 13.884100 8.275010 l ef +(0..n) 9.845000 8.475000 m gs 1 -1 sc sh gr +(1) dup sw 14.642100 ex sub 8.475020 m gs 1 -1 sc sh gr +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 37.470200 7.774310 m 42.670200 7.774310 l 43.270200 8.374310 l 43.270200 9.474310 l 37.470200 9.474310 l ef +0.000000 0.000000 0.000000 srgb +n 37.470200 7.774310 m 42.670200 7.774310 l 43.270200 8.374310 l 43.270200 9.474310 l 37.470200 9.474310 l cp s +0.050000 slw +n 42.670200 7.774310 m 42.670200 8.374310 l 43.270200 8.374310 l s +/Courier-latin1 ff 0.560000 scf sf +(Get User Input) 37.820200 8.974310 m gs 1 -1 sc sh gr +0.100000 slw +[] 0 sd +0 slj +0 slc +n 35.852423 8.626020 m 37.201100 8.626020 l 37.201100 8.624310 l 37.420059 8.624310 l s +/Courier-latin1 ff 0.560000 scf sf +0.100000 slw +[] 0 sd +0 slj +0 slc +n 40.370200 9.522621 m 40.370200 12.650000 l 7.176040 12.650000 l 7.176040 13.330300 l s +/Courier-latin1 ff 0.560000 scf sf +(creates) dup sw 2 div 23.773120 ex sub 12.500000 m gs 1 -1 sc sh gr +n 22.348120 12.500000 m 22.348120 12.100000 l 21.948120 12.300000 l ef showpage Modified: trunk/core/org.cishell.docs/src/img/algExecWorkflow.pdf =================================================================== (Binary files differ) Modified: trunk/core/org.cishell.docs/src/mystyle.sty =================================================================== --- trunk/core/org.cishell.docs/src/mystyle.sty 2008-01-09 00:57:19 UTC (rev 593) +++ trunk/core/org.cishell.docs/src/mystyle.sty 2008-01-09 22:33:54 UTC (rev 594) @@ -1,3 +1,4 @@ % used for custom commands \definecolor{comment}{rgb}{1,0,0} \newcommand{\comments}[1]{\textbf{\textcolor{comment}{#1}}} +\newcommand{\class}[1]{\texttt{#1}} \ No newline at end of file Modified: trunk/core/org.cishell.docs/src/specification/main.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/main.tex 2008-01-09 00:57:19 UTC (rev 593) +++ trunk/core/org.cishell.docs/src/specification/main.tex 2008-01-09 22:33:54 UTC (rev 594) @@ -10,15 +10,18 @@ \usepackage{color} \hypersetup{ - pdftitle={CIShell Specification}, % title - pdfsubject={CIShell Specification}, - pdfauthor={}, + pdftitle={Cyberinfrastructure Shell (CIShell) Core Specification 1.0}, % + title pdfsubject={Cyberinfrastructure Shell (CIShell) Core Specification + 1.0}, + pdfauthor={}, pdfnewwindow=true, % links in new window } \usepackage{../mystyle} -\title{CIShell Specification \\ +\title{Cyberinfrastructure Shell (CIShell) \\ +Core Specification \\ +1.0 \\ \textbf{DRAFT}} % \author{} % Will fill in later % \date{} % ditto @@ -37,6 +40,8 @@ \input{./tex/data.tex} \input{./tex/guidefinition.tex} \orgcishellframework{} +\orgcishellframeworkalgorithm{} +\orgcishellframeworkdata{} %% Each service gets its own tex file \input{./tex/dataconversionservice.tex} Modified: trunk/core/org.cishell.docs/src/specification/tex/algorithms.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/algorithms.tex 2008-01-09 00:57:19 UTC (rev 593) +++ trunk/core/org.cishell.docs/src/specification/tex/algorithms.tex 2008-01-09 22:33:54 UTC (rev 594) @@ -7,16 +7,30 @@ The CIShell Platform has been specifically designed around the idea of the algorithm. It is the central and most important concept. Algorithms are fully defined and self-contained bits of execution. They can do many things from data -conversion, data analysis, and can even spawn whole outside programs if needs be. -Algorithms are very well defined black boxes in that what can come into and out -of the algorithm is specified in each algorithm's metadata. Other than that, +conversion, data analysis, and can even spawn whole outside programs if it needs +to. Algorithms are very well defined black boxes in that what can come into and +out of the algorithm is specified in each algorithm's metadata. Other than that, CIShell makes no attempt to understand the algorithm. -Figure \ref{fig:algExecWorkflow} shows the flow of information into and out of an -algorithm. Here an algorithm is passed zero or more pieces of data, any -user-entered parameters, and a CIShell context. The algorithm is then executed -and produces zero or more pieces of data. +To be recognized by CIShell, an \class{AlgorithmFactory} must be registered with +OSGi's Service Registry. The service registry requires three things when +registering: An interface (\class{AlgorithmFactory}), an implementation, and a +\class{Dictionary} of metadata. The algorithm developer provides the +implementation and metadata. The metadata helps to differentiate and define the +algorithm for search and discovery, see section \ref{algMetaData}. +An algorithm defines its inputs in two ways. First, the input data is defined in +the algorithm's service metadata. Second, the acceptable user-entered parameters +are defined in a \class{MetaTypeProvider}, see section \ref{GUISpec}. + +Figure \ref{fig:algExecWorkflow} shows the typical flow of information into and +out of an algorithm. First the input parameter specification is pulled from the +\class{AlgorithmFactory}. If parameters are needed, then a UI is created and user +inputs are entered. To create an \class{Algorithm}, the \class{AlgorithmFactory} +is passed the user-entered parameters, zero or more pieces of data, and a +\class{CIShellContext}. The \class{Algorithm} is then executed and produces zero +or more pieces of data. + \begin{figure}[htb!] \centering \includegraphics[width=150mm]{../img/algExecWorkflow.pdf} @@ -24,12 +38,28 @@ \label{fig:algExecWorkflow} \end{figure} -An algorithm defines its inputs in two ways. First, the input Data is defined -in the algorithm's service metadata. Second, the acceptable user-entered -parameters are defined in a MetaTypeProvider. This MetaTypeProvider defines the -types, value range, and textual description of the parameters needed. From this -information, a user interface (UI) can be created that asks a user for the -data. +\subsection{Optional Interfaces} -\subsection{Standard Algorithm Properties} -\orgcishellframeworkalgorithm{} +Algorithm developers may augment algorithms with additional interfaces to enhance +parts of the execution workflow. An \class{AlgorithmFactory} can also implement +the \class{DataValidator} interface to validate the data beyond the data format +validation that an application should provide ahead of time. An \class{Algorithm} +can implement \class{ProgressTrackable} to allow for more detailed monitoring and +control of an \class{Algorithm}'s progress while executing. See each interface's +documentation for more details. + +\subsection{Algorithm Service Metadata} +\label{algMetaData} + +When an algorithm is registered with OSGi's service registry, a dictionary of +metadata is provided. Since the algorithm itself is a black box, the metadata is +used to provide information about the algorithm. Information such as the format +of each \class{Data} item to be inputted and outputted is provided. In addition to the +mechanics of the algorithms, interesting data such as the authors, label, urls, +and description are provided. This metadata can be searched by anyone using +OSGi's service registry to find relevant algorithms for use. + +\comments{Lots more to do here. Need to define what is/isn't mandatory for each +algorithm type. Perhaps some figures\ldots} + + Modified: trunk/core/org.cishell.docs/src/specification/tex/data.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/data.tex 2008-01-09 00:57:19 UTC (rev 593) +++ trunk/core/org.cishell.docs/src/specification/tex/data.tex 2008-01-09 22:33:54 UTC (rev 594) @@ -1,5 +1,16 @@ \section{Data Specification} \subsection*{\textit{Version 1.0}} \subsection{Introduction} -\subsection{Standard Data Properties} -\orgcishellframeworkdata{} + +Data to be operated on is passed around in \class{Data} objects which hold the +real data, the data's format, and its properties (metadata). The data can be any +Java \class{Object}. The format is a string which is either a full Java class or +a mime type if it is a \class{java.lang.File}. The mime type corresponds to the +file's data type and has the following form - ``file:mime/type''. Note that if no +official mime type is available for a file format, a made up one can be used, but +must still conform to how mime types are constructed, see \comments{reference to +mime-type construction}. Finally, the properties help describe the data. The +label to give the data, the parent \class{Data} object from which it was derived +from, and a coarse data type can all be defined in the \class{Data}'s properties. +See the \class{DataProperty} interface definition for specific properties to use. + Modified: trunk/core/org.cishell.docs/src/specification/tex/framework.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/framework.tex 2008-01-09 00:57:19 UTC (rev 593) +++ trunk/core/org.cishell.docs/src/specification/tex/framework.tex 2008-01-09 22:33:54 UTC (rev 594) @@ -4,11 +4,12 @@ \section{Introduction} -The org.cishell.framework package and subpackages define the core of CIShell. The -key components being algorithms, data, and CIShell service access. +The \class{org.cishell.framework} package and subpackages define the core of +CIShell. The key components being algorithms, data, and CIShell service access. \subsection{Essentials} +\comments{Needs work} \begin{itemize} \item \textit{Application Independence} - Algorithms must be usable in a wide variety of contexts and should not be tied to any one front end where @@ -23,30 +24,33 @@ \begin{itemize} \item \textit{AlgorithmFactory} - The service interface for algorithms. - A factory class which creates an Algorithm for execution from input data. + A factory class which creates an \class{Algorithm} for execution from input + data. \item \textit{Algorithm} - The interface for the code execution part of the algorithm. \item \textit{AlgorithmProperty} - The interface which provides string constants for an algorithm's service metadata. - \item \textit{DataValidator} - The interface an AlgorithmFactory extends to - provide additional data validation in addition to the data format validation + \item \textit{DataValidator} - The interface an \class{AlgorithmFactory} + extends to provide additional data validation in addition to the data format validation that an application should provide ahead of time. - \item \textit{ProgressTrackable} - The interface an Algorithm extends to allow - for more detailed monitoring and control of an Algorithm's progress while + \item \textit{ProgressTrackable} - The interface an \class{Algorithm} extends + to allow for more detailed monitoring and control of an Algorithm's progress while executing. \item \textit{ProgressMonitor} - The interface for a class to be passed in to - a ProgressTrackable Algorithm so that the Algorithm can be controlled - and provide information on its progress while executing. + a \class{ProgressTrackable} \class{Algorithm} so that the \class{Algorithm} + can be controlled and provide information on its progress while executing. \item \textit{Data} - The interface used to pass data (other than parameters) and meta-data between algorithms. - \item \textit{BasicData} - A simple implementation of the Data interface. + \item \textit{BasicData} - A simple implementation of the \class{Data} + interface. \item \textit{DataProperty} - The interface which provides string constants - for Data's metadata. + for \class{Data}'s metadata. \item \textit{CIShellContext} - The interface for a class to be passed in to - an AlgorithmFactory for us in gaining access to standard CIShell services. + an \class{AlgorithmFactory} for use in gaining access to standard CIShell + services. \item \textit{LocalCIShellContext} - A simple implementation of the - CIShellContext interface which pulls CIShell services from the OSGi Service - Registry. + \class{CIShellContext} interface which pulls CIShell services from the OSGi + Service Registry. \end{itemize} \begin{figure}[htb!] @@ -58,8 +62,8 @@ \subsection{Operations} -The algorithm developer should fully implement the AlgorithmFactory interface and -make it available in OSGi's Service Registry. The system developer will provide -the services required by CIShell in OSGi's Service Registry. Application -developers will provide everything else, orchestrating the passing of information -between algorithms. +The algorithm developer should fully implement the \class{AlgorithmFactory} +interface and make it available in OSGi's service registry. The system developer +will provide the services required by CIShell in OSGi's service registry. +Application developers will provide everything else, orchestrating the passing of +information between algorithms. Modified: trunk/core/org.cishell.docs/src/specification/tex/guidefinition.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/guidefinition.tex 2008-01-09 00:57:19 UTC (rev 593) +++ trunk/core/org.cishell.docs/src/specification/tex/guidefinition.tex 2008-01-09 22:33:54 UTC (rev 594) @@ -1,5 +1,36 @@ -\section{GUI Specification} +\section{User Interface Specification} +\label{GUISpec} \subsection*{\textit{Version 1.0}} \subsection{Introduction} -\subsection{org.osgi.service.metatype} -\subsection{MetaType Extensions} + +For many algorithms, just looking at the data given isn't enough. Additional +parameters are often needed to know how to operate on a given piece of data. An +algorithm can define what parameters are needed by providing a +\class{MetaTypeProvider}. It defines the types, value range, and textual +description of the parameters needed. From this information, a user interface +(UI) can be created that asks a user for the data. The \class{MetaTypeProvider} +is not tied to any specific UI, so it can be reused depending on the context +(desktop application, web application, command line, etc.). + +\class{MetaTypeProvider} is defined in the OSGi R4 Specification Service +Compendium as part of the Meta Type Service. \class{MetaTypeProvider}s can be +created in code or can be specified in an xml file (as defined in the +specification) and pulled out of the \class{MetaTypeService} service. A +\class{MetaTypeProvider} can be thought of as a collection of UIs. Each UI is +called an \class{ObjectClassDefinition}, which provides a UI name and +description and is a collection of parameters. Each parameter is an +\class{AttributeDefinition} which includes the type, label, description, default +value, and range of valid values. Drop-down boxes can also be defined by using +option labels and values with the \class{AttributeDefinition}. OSGi's +documentation should be consulted for more information. + +\subsection{MetaTypeProvider Extensions} + +Some minor extensions to \class{MetaTypeProvider} were made to support some +use cases. The \class{MetaTypeProvider} supports several simple types such as +strings, integers, booleans, etc, but several useful types are missing. Two +such types are files and directories. To get a file or a directory as input, +create an \class{AttributeDefinition} with string as its type and with ``file:`` +or ``directory:`` (respectively) as its default value. When the algorithm is +run it will receive a \class{String} which is the absolute path to a file or +directory. Modified: trunk/core/org.cishell.docs/src/specification/tex/introduction.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/introduction.tex 2008-01-09 00:57:19 UTC (rev 593) +++ trunk/core/org.cishell.docs/src/specification/tex/introduction.tex 2008-01-09 22:33:54 UTC (rev 594) @@ -38,7 +38,7 @@ when developing anything on CIShell. Non-Java Algorithm developers may not need to know any Java and should be mainly -concerned with the metadata definitions for Algorithms and Data. They may also +concerned with the metadata definitions for algorithms and data. They may also need to be aware of OSGi and the other services CIShell provides, but more than likely will not directly interact with them. Modified: trunk/core/org.cishell.docs/src/texdoclet/src/org/wonderly/doclets/TexDoclet.java =================================================================== --- trunk/core/org.cishell.docs/src/texdoclet/src/org/wonderly/doclets/TexDoclet.java 2008-01-09 00:57:19 UTC (rev 593) +++ trunk/core/org.cishell.docs/src/texdoclet/src/org/wonderly/doclets/TexDoclet.java 2008-01-09 22:33:54 UTC (rev 594) @@ -578,12 +578,7 @@ static void layoutClasses( String type, Vector classes ) { if( classes.size() > 0 && !("Classes".equals(type))) { - if (type.startsWith("org.cishell.framework.")) { - os.print("\\subsection{" ); - } else { - os.print("\\section{" ); - } - + os.print("\\section{" ); os.print( type ); os.println( "}{" ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |