From: <bh...@us...> - 2008-02-01 19:19:12
|
Revision: 616 http://cishell.svn.sourceforge.net/cishell/?rev=616&view=rev Author: bh2 Date: 2008-02-01 11:19:04 -0800 (Fri, 01 Feb 2008) Log Message: ----------- * Decided against refactoring service listeners to be services themselves * Discussion on recommended logging at different levels * Expanded several services' specification text * Commented out bibliography section until we have references to reference, if ever * Expanded several sections * Described OSGi Prerequisites Modified Paths: -------------- 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/algorithmtypes.tex trunk/core/org.cishell.docs/src/specification/tex/dataconversionservice.tex trunk/core/org.cishell.docs/src/specification/tex/datamanagerservice.tex trunk/core/org.cishell.docs/src/specification/tex/framework.tex trunk/core/org.cishell.docs/src/specification/tex/guibuilderservice.tex trunk/core/org.cishell.docs/src/specification/tex/logservice.tex trunk/core/org.cishell.docs/src/specification/tex/preferencesservice.tex trunk/core/org.cishell.docs/src/specification/tex/schedulerservice.tex Added Paths: ----------- trunk/core/org.cishell.docs/src/img/guiCreationWorkflow.dia trunk/core/org.cishell.docs/src/img/guiCreationWorkflow.eps trunk/core/org.cishell.docs/src/img/guiCreationWorkflow.pdf trunk/core/org.cishell.docs/src/specification/tex/osgidependencies.tex Added: trunk/core/org.cishell.docs/src/img/guiCreationWorkflow.dia =================================================================== (Binary files differ) Property changes on: trunk/core/org.cishell.docs/src/img/guiCreationWorkflow.dia ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/core/org.cishell.docs/src/img/guiCreationWorkflow.eps =================================================================== --- trunk/core/org.cishell.docs/src/img/guiCreationWorkflow.eps (rev 0) +++ trunk/core/org.cishell.docs/src/img/guiCreationWorkflow.eps 2008-02-01 19:19:04 UTC (rev 616) @@ -0,0 +1,463 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/bherr/workspace/org.cishell.docs/src/img/guiCreationWorkflow.dia +%%Creator: Dia v0.96.1 +%%CreationDate: Fri Feb 1 12:08:35 2008 +%%For: bherr +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 564 234 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /A /B /C /D /E +/F /G /H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W /X /Y +/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c +/d /e /f /g /h /i /j /k /l /m +/n /o /p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/Times-Roman-latin1 + /Times-Roman findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Times-Italic-latin1 + /Times-Italic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Times-Bold-latin1 + /Times-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Times-BoldItalic-latin1 + /Times-BoldItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/AvantGarde-Book-latin1 + /AvantGarde-Book findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/AvantGarde-BookOblique-latin1 + /AvantGarde-BookOblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/AvantGarde-Demi-latin1 + /AvantGarde-Demi findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/AvantGarde-DemiOblique-latin1 + /AvantGarde-DemiOblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Bookman-Light-latin1 + /Bookman-Light findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Bookman-LightItalic-latin1 + /Bookman-LightItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Bookman-Demi-latin1 + /Bookman-Demi findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Bookman-DemiItalic-latin1 + /Bookman-DemiItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Courier-latin1 + /Courier findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Courier-Oblique-latin1 + /Courier-Oblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Courier-Bold-latin1 + /Courier-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Courier-BoldOblique-latin1 + /Courier-BoldOblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-latin1 + /Helvetica findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Oblique-latin1 + /Helvetica-Oblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Bold-latin1 + /Helvetica-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-BoldOblique-latin1 + /Helvetica-BoldOblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Narrow-latin1 + /Helvetica-Narrow findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Narrow-Oblique-latin1 + /Helvetica-Narrow-Oblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Narrow-Bold-latin1 + /Helvetica-Narrow-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Helvetica-Narrow-BoldOblique-latin1 + /Helvetica-Narrow-BoldOblique findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/NewCenturySchoolbook-Roman-latin1 + /NewCenturySchoolbook-Roman findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/NewCenturySchoolbook-Italic-latin1 + /NewCenturySchoolbook-Italic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/NewCenturySchoolbook-Bold-latin1 + /NewCenturySchoolbook-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/NewCenturySchoolbook-BoldItalic-latin1 + /NewCenturySchoolbook-BoldItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Palatino-Roman-latin1 + /Palatino-Roman findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Palatino-Italic-latin1 + /Palatino-Italic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Palatino-Bold-latin1 + /Palatino-Bold findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Palatino-BoldItalic-latin1 + /Palatino-BoldItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/Symbol-latin1 + /Symbol findfont +definefont pop +/ZapfChancery-MediumItalic-latin1 + /ZapfChancery-MediumItalic findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +/ZapfDingbats-latin1 + /ZapfDingbats findfont + dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding isolatin1encoding def + currentdict end +definefont pop +28.346000 -28.346000 scale +1.430000 -10.305000 translate +%%EndProlog + + +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n -1.380000 2.130000 m -1.380000 4.330000 l 6.587500 4.330000 l 6.587500 2.130000 l f +0.000000 0.000000 0.000000 srgb +n -1.380000 2.130000 m -1.380000 4.330000 l 6.587500 4.330000 l 6.587500 2.130000 l cp s +/Courier-latin1 ff 0.560000 scf sf +(<<interface>>) 0.328750 2.632500 m +dup sw 4.550000 exch sub +13 div exch 0.0 exch + gs 1 -1 sc ashow gr +/Helvetica-Bold-latin1 ff 0.700000 scf sf +(MetaTypeProvider) -1.130000 3.600000 m +dup sw 7.467500 exch sub +16 div exch 0.0 exch + gs 1 -1 sc ashow gr +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 0.070000 7.605000 m 0.070000 9.805000 l 5.120000 9.805000 l 5.120000 7.605000 l f +0.000000 0.000000 0.000000 srgb +n 0.070000 7.605000 m 0.070000 9.805000 l 5.120000 9.805000 l 5.120000 7.605000 l cp s +/Courier-latin1 ff 0.560000 scf sf +(<<interface>>) 0.320000 8.107500 m +dup sw 4.550000 exch sub +13 div exch 0.0 exch + gs 1 -1 sc ashow gr +/Helvetica-Bold-latin1 ff 0.700000 scf sf +(GUI) 1.862500 9.075000 m +dup sw 1.465000 exch sub +3 div exch 0.0 exch + gs 1 -1 sc ashow gr +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 10.395000 2.130000 m 10.395000 4.330000 l 18.347500 4.330000 l 18.347500 2.130000 l f +0.000000 0.000000 0.000000 srgb +n 10.395000 2.130000 m 10.395000 4.330000 l 18.347500 4.330000 l 18.347500 2.130000 l cp s +/Courier-latin1 ff 0.560000 scf sf +(<<interface>>) 12.096250 2.632500 m +dup sw 4.550000 exch sub +13 div exch 0.0 exch + gs 1 -1 sc ashow gr +/Helvetica-Bold-latin1 ff 0.700000 scf sf +(GUIBuilderService) 10.645000 3.600000 m +dup sw 7.452500 exch sub +17 div exch 0.0 exch + gs 1 -1 sc ashow gr +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 18.390237 3.390461 m 17.295537 4.430261 l 18.389537 4.430261 l ef +n 18.390237 3.390461 m 17.295537 4.430261 l 18.389537 4.430261 l cp s +0.100000 slw +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 9.383141 7.603098 m 9.383141 9.803098 l 17.073141 9.803098 l 17.073141 7.603098 l f +0.000000 0.000000 0.000000 srgb +n 9.383141 7.603098 m 9.383141 9.803098 l 17.073141 9.803098 l 17.073141 7.603098 l cp s +/Courier-latin1 ff 0.560000 scf sf +(<<interface>>) 10.953141 8.105598 m +dup sw 4.550000 exch sub +13 div exch 0.0 exch + gs 1 -1 sc ashow gr +/Helvetica-Bold-latin1 ff 0.700000 scf sf +(SelectionListener) 9.633141 9.073098 m +dup sw 7.190000 exch sub +17 div exch 0.0 exch + gs 1 -1 sc ashow gr +0.100000 slw +[] 0 sd +0 slj +0 slc +n 6.637009 3.230000 m 7.570000 3.230000 l 7.570000 3.230000 l 10.395000 3.230000 l s +/Courier-latin1 ff 0.560000 scf sf +(given) 7.670000 2.950000 m +dup sw 1.750000 exch sub +5 div exch 0.0 exch + gs 1 -1 sc ashow gr +(n) 6.837009 2.950000 m +dup sw 0.350000 exch sub +1 div exch 0.0 exch + gs 1 -1 sc ashow gr +(1) 9.845000 2.950000 m +dup sw 0.350000 exch sub +1 div exch 0.0 exch + gs 1 -1 sc ashow gr +0.100000 slw +[] 0 sd +0 slj +0 slc +n 14.371250 4.380258 m 14.371250 6.101090 l 2.595000 6.101090 l 2.595000 7.554982 l s +(Creates) 7.258125 5.821090 m +dup sw 2.450000 exch sub +7 div exch 0.0 exch + gs 1 -1 sc ashow gr +(1) 14.571250 4.782758 m +dup sw 0.350000 exch sub +1 div exch 0.0 exch + gs 1 -1 sc ashow gr +(n) 2.795000 7.157482 m +dup sw 0.350000 exch sub +1 div exch 0.0 exch + gs 1 -1 sc ashow gr +0.100000 slw +[] 0 sd +0 slj +0 slc +n 5.167678 8.705000 m 5.819508 8.705000 l 5.819508 8.703098 l 9.333453 8.703098 l s +(notifies) 5.919508 8.424049 m +dup sw 2.800000 exch sub +8 div exch 0.0 exch + gs 1 -1 sc ashow gr +showpage Added: trunk/core/org.cishell.docs/src/img/guiCreationWorkflow.pdf =================================================================== (Binary files differ) Property changes on: trunk/core/org.cishell.docs/src/img/guiCreationWorkflow.pdf ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/core/org.cishell.docs/src/specification/main.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/main.tex 2008-02-01 16:10:45 UTC (rev 615) +++ trunk/core/org.cishell.docs/src/specification/main.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -36,6 +36,7 @@ \input{./tex/introduction.tex} \input{./tex/framework.tex} +\input{./tex/osgidependencies.tex} \input{./tex/algorithms.tex} \input{./tex/algorithmtypes.tex} \input{./tex/data.tex} @@ -52,9 +53,10 @@ \input{./tex/datamanagerservice.tex} \input{./tex/schedulerservice.tex} +%%% We have no references thus far, so this is commented out for now. % Bibliography: -\clearpage -\bibliographystyle{plain} -\bibliography{../bibliography} +% \clearpage +% \bibliographystyle{plain} +% \bibliography{../bibliography} \end{document} Modified: trunk/core/org.cishell.docs/src/specification/tex/algorithms.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/algorithms.tex 2008-02-01 16:10:45 UTC (rev 615) +++ trunk/core/org.cishell.docs/src/specification/tex/algorithms.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -14,7 +14,7 @@ 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 +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}. Modified: trunk/core/org.cishell.docs/src/specification/tex/algorithmtypes.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/algorithmtypes.tex 2008-02-01 16:10:45 UTC (rev 615) +++ trunk/core/org.cishell.docs/src/specification/tex/algorithmtypes.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -48,16 +48,17 @@ simultaneously a classification and a location on a GUI's menubar to place the algorithm in. See section \ref{algMetaData} for how to format a ``menu\_path''. - \item The algorithm's service metadata must not have a ``type'' set. \end{itemize} \subsubsection*{Optional:} \begin{itemize} + \item The algorithm's service metadata should have ``remoteable=true'' if it meets the requirements of a remoteable algorithm. \item The algorithm's service metadata should have ``parentage=default'' if it wishes to use the default \class{Data} parenting scheme described in section \ref{algMetaData}. + \item The algorithm's service metadata does not need to have a ``type'' set. \item As much of the informational metadata as possible should be provided. This includes ``authors'', ``implementors'', ``integrators'', ``documentation\_url'', ``reference'', ``reference\_url'', and ``written\_in''. @@ -83,7 +84,7 @@ \item The algorithm's service metadata must contain a legal ``service.pid''. \item The algorithm's service metadata must have ``type=converter''. \item The algorithm's service metadata must have ``conversion=lossy'' if - data is lossed during conversion or ``conversion=lossless'' if not. + data is lost during conversion or ``conversion=lossless'' if not. \end{itemize} \subsubsection*{Optional:} @@ -107,7 +108,9 @@ necessary due to the fact that one cannot simply assume based on the file extension what type of file format the data is in. Checking the contents of the file is necessary, especially in the case of multiple file formats for the same -file extension (e.g., XML). A validator algorithm has the following constraints: +file extension (e.g., XML). This type of algorithm is important for reliably +bringing in outside data and saving out data from CIShell. A validator algorithm +has the following constraints: \subsubsection*{Required:} \begin{itemize} Modified: trunk/core/org.cishell.docs/src/specification/tex/dataconversionservice.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/dataconversionservice.tex 2008-02-01 16:10:45 UTC (rev 615) +++ trunk/core/org.cishell.docs/src/specification/tex/dataconversionservice.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -25,17 +25,18 @@ \section{Data Conversion Service} The Data Conversion Service provides unified access to converter algorithms. -\class{DataConversionService} system developers may choose not to use converter -algorithms, but is ill-advised. Also, good implementations will take advantage of -the nature of algorithms to allow for more than just single hop conversions. -Since all converter algorithms specify a single data object in and a single data -object out, a graph can be constructed where nodes are the data formats and edges -are the converters. Using this directed graph, when a conversion between data -formats is requested, the \class{DataConversionService} will choose the shortest -path of converters to do the conversion. A hypothetical conversion graph is -illustrated in figure \ref{fig:conversionGraph}. +\class{DataConversionService} system developers may choose not to leverage +converter algorithms, but this is ill-advised. Also, good implementations will +take advantage of the nature of converter algorithms to allow for more than just +single hop conversions. Since all converter algorithms specify a single data +object in and a single data object out, a graph can be constructed where nodes +are the data formats and edges are the converters. Using this directed graph, +when a conversion between data formats is requested, the +\class{DataConversionService} will choose the shortest path of converters to do +the conversion. A hypothetical conversion graph is illustrated in figure +\ref{fig:conversionGraph}. -\begin{figure}[htb!] +\begin{figure}[h!] \centering \includegraphics[width=70mm]{../img/conversionGraph.pdf} \caption{A Conversion Graph} Modified: trunk/core/org.cishell.docs/src/specification/tex/datamanagerservice.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/datamanagerservice.tex 2008-02-01 16:10:45 UTC (rev 615) +++ trunk/core/org.cishell.docs/src/specification/tex/datamanagerservice.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -20,13 +20,7 @@ implementation of \class{DataManagerListener} with empty method implementations. \item \textit{Data} - The interface used to pass data (other than - parameters) and meta-data between algorithms. + parameters) and its metadata between algorithms. \end{itemize} -\section{Data Manager Service} - -\comments{Needs to be expanded\ldots} -\comments{Refactor listeners to be services a la: -http://www.osgi.org/documents/osgi\_technology/whiteboard.pdf } - \orgcishellappservicedatamanager{} \ No newline at end of file Modified: trunk/core/org.cishell.docs/src/specification/tex/framework.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/framework.tex 2008-02-01 16:10:45 UTC (rev 615) +++ trunk/core/org.cishell.docs/src/specification/tex/framework.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -8,12 +8,14 @@ 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 - possible. + variety of contexts and should not be tied to any one CIShell environment or + front end where possible. + \item \textit{User Interface Independence} - Algorithms should not have to tie + themselves to a single UI where possible. + \item \textit{Black Box Algorithms} - Algorithms are black boxes whose + possible interactions are described in metadata. \item \textit{Delayed Execution} - There may be a large delay between an algorithm getting parameters for execution and its actual execution. \item \textit{Remote Execution} - Algorithm interfaces should be designed to Modified: trunk/core/org.cishell.docs/src/specification/tex/guibuilderservice.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/guibuilderservice.tex 2008-02-01 16:10:45 UTC (rev 615) +++ trunk/core/org.cishell.docs/src/specification/tex/guibuilderservice.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -2,13 +2,14 @@ \section*{\textit{Version 1.0}} \section{Introduction} -The GUI Builder Service provides a user-interface-agnostic solution to -create UIs for simple user input. The UIs are built from the user interface -specification provided by \class{MetaTypeProvider} and requires no UI coding to -be done other than providing an implementation of \class{MetaTypeProvider}. -Information on creating these classes can be found in section \ref{GUISpec}. In -addition to this, simple methods for creating warnings, pop-ups, and -simple yes/no dialog boxes are provided by the GUI Builder Service. +The GUI Builder Service provides a user-interface-agnostic solution to create UIs +for simple user input. The UIs are built from the user interface specification +provided by \class{MetaTypeProvider} and requires no UI coding to be done other +than providing an implementation of \class{MetaTypeProvider}. Information on +creating these classes can be found in section \ref{GUISpec}. In addition, simple +methods for creating warnings, pop-ups, and simple yes/no dialog boxes are +provided by the GUI Builder Service. The GUI creation workflow is illustrated in +figure \ref{fig:guiCreationWorkflow}. \subsection{Entities} @@ -23,9 +24,11 @@ generated by the user's interaction with the UI. \end{itemize} -\section{GUI Builder Service} +\begin{figure}[htb!] +\centering +\includegraphics[width=90mm]{../img/guiCreationWorkflow.pdf} +\caption{GUI Creation Workflow} +\label{fig:guiCreationWorkflow} +\end{figure} -\comments{Needs expanded. Should probably talk about remote GUIs\ldots} -\comments{Insert a figure of the interaction between the entities\ldots} - \orgcishellserviceguibuilder{} Modified: trunk/core/org.cishell.docs/src/specification/tex/logservice.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/logservice.tex 2008-02-01 16:10:45 UTC (rev 615) +++ trunk/core/org.cishell.docs/src/specification/tex/logservice.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -1,4 +1,5 @@ \chapter{Log Service Specification} +\label{logService} \section*{Version 1.3} \section{Introduction} @@ -7,6 +8,25 @@ built on CIShell a standard logging sytem to use. This service has not been extended or modified. More information about the \class{LogService} is available in the OSGi Service Platform Service Compendium Specification R4, section 101 -under ``Log Service Specification''. +under ``Log Service Specification''. Recommend output per log level for CIShell +algorithms are listed in table \ref{table:logLevels}. -\comments{Perhaps a discussion on recommend logging at different levels} \ No newline at end of file +\begin{table}[htb!] +\begin{center} +\begin{tabular}{l p{12cm}} +\textbf{Log Level} & \textbf{Recommended Use} \\ +LOG\_DEBUG & Used for problem determination and may be irrelevent to anyone but +the algorithm developer. \\ +LOG\_ERROR & Indicates a problem occurred while the algorithm was executing. +Indicators of possible fixes should be outputted to this level along with +relevent information describing what went wrong, if possible. \\ +LOG\_INFO & Used for providing information about and while the algorithm is +executing and does not indicate a problem. \\ +LOG\_WARNING & Indicates that the algorithm will still be executed, but +that outputs may not be what was expected. This is often in response to +illogical, but still valid user inputs. +\end{tabular} +\end{center} +\caption{Log Level Recommendations for Algorithms} +\label{table:logLevels} +\end{table} \ No newline at end of file Added: trunk/core/org.cishell.docs/src/specification/tex/osgidependencies.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/osgidependencies.tex (rev 0) +++ trunk/core/org.cishell.docs/src/specification/tex/osgidependencies.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -0,0 +1,33 @@ +\section{OSGi Dependencies} + +CIShell is built to be run in a fully compliant OSGi Service Platform R4 +implementation. In addition to the base OSGi implementation, several +optional OSGi services are required to be available in a fully compliant CIShell +implementation. Each additional required service is described in the OSGi +Service Platform Service Compendium R4. + +\subsection*{Required Service} +\begin{description} + \item[Metatype Service] as described in OSGi section 105 ``Metatype Service + Specification'', this service defines the \class{MetaTypeProvider} class used + for specifying user interfaces in CIShell. In addition, it provides an XML + format for automatically generating \class{MetaTypeProvider}s and a service, + \class{MetaTypeService} for harvesting them for use by bundles. + \item[Log Service] as described in OSGi section 101 ``Log Service + Specification'', this service is used as a universal logging system for + algorithms and services. See chapter \ref{logService} for more details. + \item[Preferences Service] as described in OSGi section 106 ``Preferences + Service Specification'', this service is used as a universal preference storage + system for algorithms and services. See chapter \ref{preferencesService} for + more details. + \item[Configuration Admin Service] \comments{More details when the expanded + prefs spec is done\ldots} +\end{description} + +\subsection*{Recommended Services} +\begin{description} + + \item[Declarative Services] as described in OSGi section 112 ``Declarative + Services Specification'', this service can be used by CIShell algorithms to + simplify algorithm service registration and for finding necessary auxilary services.\item[] +\end{description} Modified: trunk/core/org.cishell.docs/src/specification/tex/preferencesservice.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/preferencesservice.tex 2008-02-01 16:10:45 UTC (rev 615) +++ trunk/core/org.cishell.docs/src/specification/tex/preferencesservice.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -1,4 +1,5 @@ \chapter{Preferences Service Specification} +\label{preferencesService} \section*{Version 1.1} \section{Introduction} Modified: trunk/core/org.cishell.docs/src/specification/tex/schedulerservice.tex =================================================================== --- trunk/core/org.cishell.docs/src/specification/tex/schedulerservice.tex 2008-02-01 16:10:45 UTC (rev 615) +++ trunk/core/org.cishell.docs/src/specification/tex/schedulerservice.tex 2008-02-01 19:19:04 UTC (rev 616) @@ -21,10 +21,4 @@ implementations. \end{itemize} -\section{Scheduler Service} - -\comments{Needs to be expanded\ldots} -\comments{Refactor listeners to be services a la: -http://www.osgi.org/documents/osgi\_technology/whiteboard.pdf } - \orgcishellappservicescheduler{} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |