last changes after meeting start-work-070517
authorwkandlba
Thu, 08 Nov 2007 16:21:37 +0100
branchstart-work-070517
changeset 243836308d024e3
parent 242 3cbe5bd1aa9b
child 244 fe43b3cd6fb6
last changes after meeting
doc/WK/content.tex
doc/bib/WK.bib
     1.1 --- a/doc/WK/content.tex	Thu Nov 08 14:58:57 2007 +0100
     1.2 +++ b/doc/WK/content.tex	Thu Nov 08 16:21:37 2007 +0100
     1.3 @@ -123,7 +123,7 @@
     1.4  \begin{figure} [htb]
     1.5  \centerline{\psfig{
     1.6      figure=myfig/3-next, width=13cm}}
     1.7 -\caption{\sisac s \textit{worksheet} shows the next functionality}
     1.8 +\caption{\sisac{} s \textit{worksheet} shows the next functionality}
     1.9  \label{next}
    1.10  \end{figure}
    1.11  
    1.12 @@ -131,7 +131,7 @@
    1.13  A row with the document symbol at the beginning in such a main step- gets presented to the user
    1.14  Behind the Graphical User Interface by clicking on the \textless next\textgreater button a calcChanged event is sent to the math engine and it tries to find a theorem which brings the calculation nearer to the solution. If the math engine can find such a theorem, it calculates the next step by using this theorem and then saves the solution in a calculation tree which is necessary for the front end make the calculation displayable for the user. 
    1.15  
    1.16 -It is very often that the math engine needs more than one theorem to solve one main step to an other. However, with this functionality it would be hard for the user to find out the whole things which happened behind the scenes. The calculation would be hard to understand for the user because he couldn not see the whole theorems which were used. So in this case, if the math engine used more steps to come to a main step, the user also has the possibility to show these \textit{ intermediate steps }. 
    1.17 +It is very often that the math engine needs more than one theorem to solve one main step to an other. However, with this functionality it would be hard for the user to find out the whole things which happened behind the scenes. The calculation would be hard to understand for the user because he couldn not see the whole theorems which were used. So in this case, if the math engine used more steps to come to a main step, the user also has the possibility to show these {\tt intermediate steps }. 
    1.18  
    1.19  As you can see there are some rows with a folder symbol in front of the line. These are the problems where the user has the possibility to browse through the subproblems. Now the user can have a look at each of the main steps and if he wants he can also watch the intermediate steps, by clicking on the subproblem then clicks the right mouse button and choose \textless show intermediate steps\textgreater. Because of the dynamic gui this menu item is only shown, if there really are intermediate steps for presenting to the user. Important is that now not only the root of the calculation has the calcHead. Also the root element of a subproblem has a calcHead. Because we want to give the user the option to show and hide the intermediate steps it's necessary for the subroot to have such a calcHead.
    1.20  
    1.21 @@ -216,17 +216,17 @@
    1.22  \subsection{Servlets}
    1.23  What we have now is a Java Swing application which presents the math data to the user in a comfortable form. However, when transfer to the web we have to choose the language we will use on the server side. Possibilities are:
    1.24  \begin{enumerate}
    1.25 -\item Active Server Pages (\textit{ASP})
    1.26 +\item Active Server Pages (ASP)
    1.27  \item Perl
    1.28 -\item Hypertext Preprocessor (\textit{PHP})
    1.29 -\item JavaServer Pages (\textit{JSP})
    1.30 +\item Hypertext Preprocessor (PHP)
    1.31 +\item JavaServer Pages (JSP)
    1.32  \end{enumerate}
    1.33  Because the existing front-end is written in Java it is near to use Java and JSP on the server side.
    1.34  % WN071031 ... bitte verstaendlich machen und in Teilsaetze zerlegen ...
    1.35  First idea to make things interactive is to write a servlet, that processes the data the user types in and writes data back in form of html code. This method would not be very nice because in each servlet there is a lots of code only for presenting the data to the user.
    1.36  
    1.37  \subsection{JSP}
    1.38 -An other possibility is using \textit{JSP} and getting the request parameters inside of the \textit{JSP} code. For demonstration have a look at the following example \begin{verbatim}
    1.39 +An other possibility is using JSP and getting the request parameters inside of the JSP code. For demonstration have a look at the following example \begin{verbatim}
    1.40    1 <%@ page language="java" %>
    1.41    2
    1.42    3 <html>
    1.43 @@ -240,32 +240,32 @@
    1.44  
    1.45  \end{verbatim}
    1.46  
    1.47 -If these parameters exist this example will work fine and would be easier and shorter than the first solution. But there is still a big disadvantage. It is possible to write code inside of a \textit{JSP} and nowadays the requirements of a web application are huge and there are enough HTML tags inside one file. So imagine you write your additional Java code inside this file and no programmer will be able to overview all this code and the maintenance of such a site would be impossible.
    1.48 +If these parameters exist this example will work fine and would be easier and shorter than the first solution. But there is still a big disadvantage. It is possible to write code inside of a JSP and nowadays the requirements of a web application are huge and there are enough HTML tags inside one file. So imagine you write your additional Java code inside this file and no programmer will be able to overview all this code and the maintenance of such a site would be impossible.
    1.49  
    1.50  \subsection{Java server faces}
    1.51  
    1.52  Because of these problems there are some web-frameworks which should make such things easier, for example
    1.53  %WN071031 ... bitte eine Referenz (www, article, book) oder weglassen --- die Technik, Hinweise auf genauere Information zu geben, ist eines der Erfalgsfaktoren unseres Wissenschaftsbetriebes !!!
    1.54 - JavaServer Faces (\textit{JSF})
    1.55 + JavaServer Faces (JSF)
    1.56  %WN071031 ... Abkuerzungen gleich zu Beginn mit dem Abgekuerzten Begriff verbinden !
    1.57  \cite{Marinscheck:jsf}.
    1.58  %WN071031 ... Referenzen bitte gleich beim 1.Auftreten !
    1.59  
    1.60 -A main thing of such a framework is, that they are structured in form of the Model-View-Controller principle (\textit{MVC}) \cite{Buschmann:Patterns}.
    1.61 +A main thing of such a framework is, that they are structured in form of the Model-View-Controller principle (MVC) \cite{Buschmann:Patterns}.
    1.62  %WN071031 ... Referenz bitte beim 1.Auftreten; alles andere macht den typischen Leser nervoes ;-)
    1.63  
    1.64 -This principle brings the advantage to the developer, to write lots of the layout in such a layout language like \textit{JSP} and strictly seperates the functionality from the layout things as you can see in  Fig.\ref{model2}. %on page p.\pageref{model2}.
    1.65 +This principle brings the advantage to the developer, to write lots of the layout in such a layout language like JSP and strictly seperates the functionality from the layout things as you can see in  Fig.\ref{model2}. %on page p.\pageref{model2}.
    1.66  
    1.67  \begin{figure} [htb]
    1.68  \centerline{\psfig{
    1.69      figure=myfig/model2.eps,width=8cm}}
    1.70  %    figure=myfig/model2}}
    1.71 -\caption{\textit{MVC} when using \textit{JSF}}
    1.72 +\caption{MVC when using JSF}
    1.73  \label{model2}
    1.74  \end{figure}
    1.75  
    1.76 - So the result of this model is better for developers to write the code and also to do maintenance work inside of the code because there is less code inside of an \textit{JSP} file. 
    1.77 -In \sisac{} project we will use \textit{JSF}
    1.78 + So the result of this model is better for developers to write the code and also to do maintenance work inside of the code because there is less code inside of an JSP file. 
    1.79 +In \sisac{} project we will use JSF
    1.80  %WN071031 JavaServer Faces ... bei _einer_ Beschreibung bleiben (im Gegensatz zu Dichtungen, wo der Autor meist seine Vielseitigkeit im Worte-Finden beweist)
    1.81  because this framework has two big advantages:
    1.82  \begin{enumerate}
    1.83 @@ -275,7 +275,7 @@
    1.84  
    1.85  %WN071031 das ist einer der seltenen Faelle von Formatierung in latex ...
    1.86  \noindent
    1.87 -Now I want to describe the three main parts of this \textit{MVC} on the server side. %WN071030 bitte die Formatierung von Begriffen wie {MVC} _einheitlich_: _immer_ italic, ODER _immer_ '' ODER _immer_ \tt{}, ...
    1.88 +Now I want to describe the three main parts of this MVC on the server side. %WN071030 bitte die Formatierung von Begriffen wie {MVC} _einheitlich_: _immer_ italic, ODER _immer_ '' ODER _immer_ \tt{}, ...
    1.89  
    1.90  \paragraph{Managed-Beans}\label{bean} \ref{ExampleBean}
    1.91  As you can see above, the data models are called Java-Beans and such a bean is a class in Java with some special properties:
    1.92 @@ -287,12 +287,12 @@
    1.93  \end{itemize}
    1.94  
    1.95  \paragraph{View}
    1.96 -The view part holds (as for instance, in case of \sisac) the \textit{JSP}s but as I wrote before, with \textit{JSF} the developer can choose the language for describing the sites.
    1.97 +The view part holds (as for instance, in case of \sisac) the JSPs but as I wrote before, with JSF the developer can choose the language for describing the sites.
    1.98  
    1.99  \paragraph{Servlet Controller}
   1.100 -The servlet controller is necessary for generating and initializing the managed beans, for generating and activating the \textit{JSP}s and for holding the servlets.
   1.101 +The servlet controller is necessary for generating and initializing the managed beans, for generating and activating the JSPs and for holding the servlets.
   1.102  
   1.103 -But there is also a disadvantage when using \textit{JSF}, because when the applications gets more complex, the \textit{faces-config.xml} file increases very fast and it becomes difficult for the developer to find the things he wants. But for this problem exists a solution, with a so called {\it faces config editor} all the entries are sorted in a way to make the entries easy findable for the user. For example, all navigation rules can be found in one sub menu.
   1.104 +But there is also a disadvantage when using JSF, because when the applications gets more complex, the {\tt faces-config.xml} file increases very fast and it becomes difficult for the developer to find the things he wants. But for this problem exists a solution, with a so called {\tt faces config editor} all the entries are sorted in a way to make the entries easy findable for the user. For example, all navigation rules can be found in one sub menu.
   1.105  
   1.106  \subsection{Tabs and {\it dojo}'s instead of windows}\label{dojo}
   1.107  
   1.108 @@ -300,7 +300,7 @@
   1.109  %warum _B_rowser aber _t_ab (gross / klein-Schreibung) ?
   1.110   seperated into some subparts. One way to get this is to use the standard html frames. You get the look that you want to have, a tree2 component which is described in Sect.\ref{tree} inside one frame. The tree works as usual and everything is ok, but if you click at a leave in the tree, you may get a problem. And in our case of \sisac{} we definitely get this problem, because by clicking on such a leave which can represent a theory, we want to see the explanation in the neighbour frame and this is impossible with frames, because you have to tell the target and this did not work in combination with the tree2 component.
   1.111  
   1.112 -So with the frames we are not satisfied anymore and we have to find an alternative. I found an other way to separate the window in a toolkit called dojo \ref{TreeBacker}.You can see dojo in action at \cite{dojo}. Dojo does not use standard frames to separate a window, but it use {\tt div}s. With this {\tt div}s everything works fine with the tree2 component, because it is not necessary to specify a target. This is my solution to the problem of separating a window, sub parts should be resizeable and the tree2 component works fine, as you can see in the \textit{isacweb-preparations} project in the cvs. There is a file named \textit{dojo-test.jsp}. In this file you can see, that in dojo normal {\tt div}s are used.
   1.113 +So with the frames we are not satisfied anymore and we have to find an alternative. I found an other way to separate the window in a toolkit called dojo. You can see dojo in action at \cite{dojo} and in {\tt isac/test/} in the file {\tt dojo-test.jsp}. Dojo does not use standard frames to separate a window, but it use {\tt div}s \cite{div}. With this {\tt div}s everything works fine with the tree2 component, because it is not necessary to specify a target. This is my solution to the problem of separating a window, sub parts should be resizeable and the tree2 component works fine, as you can see in  {\tt isac/test/dojo-test.jsp}. In this file you can see, that in dojo normal {\tt div}s are used.
   1.114  
   1.115  \section{Stepwise calculation}
   1.116  
   1.117 @@ -390,7 +390,7 @@
   1.118  
   1.119  \chapter{Conclusion}
   1.120  
   1.121 -Online learning has become an important aspect of the way education is delivered. So it is necessary to transfer \sisac{} to the web. The most important part by doing this is to select the software components carefully. In this part \textit{JSF} is the technology we want to use. There we have the possibility to present the highly structured math data in a way every user can work with. Also the criterion of dynamic interaction during construction of calculations can be fulfilled. In the appendix you can find some tests on the software components.
   1.122 +Online learning has become an important aspect of the way education is delivered. So it is necessary to transfer \sisac{} to the web. The most important part by doing this is to select the software components carefully. In this part JSF is the technology we want to use. There we have the possibility to present the highly structured math data in a way every user can work with. Also the criterion of dynamic interaction during construction of calculations can be fulfilled. In the appendix you can find some tests on the software components.
   1.123  
   1.124  
   1.125  \begin{appendix}
     2.1 --- a/doc/bib/WK.bib	Thu Nov 08 14:58:57 2007 +0100
     2.2 +++ b/doc/bib/WK.bib	Thu Nov 08 16:21:37 2007 +0100
     2.3 @@ -49,7 +49,14 @@
     2.4    }
     2.5  
     2.6  @Misc{assembla,
     2.7 +  author = 	 {Assembla}
     2.8    title = 	 {assembla -- Tools, Talent, and How-to for agile teams and rapid app development},
     2.9    howpublished = {http://www.assembla.com/},
    2.10   }
    2.11  
    2.12 +@Misc{div,
    2.13 +  author = 	 {W3c},
    2.14 +  Ttitle = 	 {The global structure of an HTML document},
    2.15 +  howpublished = {http://www.w3.org/TR/html401/struct/global.html#h-7.5.4},
    2.16 +  }
    2.17 +