Changeset 71

Show
Ignore:
Timestamp:
02/17/08 11:50:06 (5 years ago)
Author:
d0nut
Message:

removed service from name -> updatet rpc uml diagram

Location:
documentation/trunk
Files:
2 added
1 modified

Legend:

Unmodified
Added
Removed
  • documentation/trunk/doc.tex

    r69 r71  
    1818 
    1919% syntax colors 
     20%\color{<colour>} 
    2021\definecolor{middlegray}{rgb}{0.5,0.5,0.5} 
    2122\definecolor{lightgray}{rgb}{0.8,0.8,0.8} 
     
    4041\begin{abstract} 
    4142Die Facharbeit handelt von der AJAX-Technologie - Grundlage moderner Web-Anwendungen.  
    42 Sie beginnt bei der ErklÀrung der drei Basistechnologien, gibt ein einfaches Programmierbeispiel und geht auf typische Probleme ein. 
    43 Dann wird das Google Web Toolkit erklÀrt und eine BrÃŒcke zu Java gezogen. 
     43Sie beginnt bei der ErklÀrung der drei Basistechnologien, gibt ein Programmierbeispiel und geht auf typische Probleme ein. 
     44Dann wird das Google Web Toolkit erklÀrt und eine BrÃŒcke zu Java geschlagen. 
    4445Das Google Web Toolkit versucht den Desktop-Entwicklungs-Zyklus auf Web-Anwendungen zu ÃŒbertragen. 
    4546\end{abstract} 
     
    123124        \centering 
    124125        \includegraphics{img/alert.eps} 
    125         \caption{Ein einfacher alert.} 
    126         \label{fig:alert} 
    127126        \end{figure} 
    128127 
     
    145144         
    146145        Der Server beantwortet die Anfrage mit einem Status-Code und den angeforderten Daten: 
    147 \begin{lstlisting} 
     146\begin{lstlisting}[language=html] 
    148147HTTP/1.1 200 OK 
    149148Content-Type: text/html 
     
    297296        \subsection{Entwicklungszyklus} \label{sec_devcycle} 
    298297        Das GWT arbeitet mit einer Standard-Verzeichnisstruktur, die entweder manuell oder unterstÃŒtzt durch die mitgelieferten Skripte erstellt werden kann. 
    299         FÃŒr Eclipse wird erst ein Projektverzeichnis zum Import in den Workspace erstellt und dann in Schritt Zwei die Anwendung angelegt. 
     298        FÃŒr Eclipse wird erst ein Projektverzeichnis zum Import in den Workspace erstellt und dann im zweiten Schritt die Anwendung angelegt. 
    300299 
    301300        Die Schritte sollten in einem leeren eigenen Verzeichnis durchgefÃŒhrt werden, da die Verzeichnisstruktur direkt im ausfÃŒhrenden Verzeichnis abgelegt wird. 
    302 \begin{lstlisting}[caption={}\label{lst:devcycle},language=bash] 
     301\begin{lstlisting}[language=bash] 
    303302projectCreator -eclipse MeineErstesProjekt 
    304303applicationCreator -eclipse MeineErstesProjekt \ 
     
    401400        \begin{figure}[htp] 
    402401        \centering 
    403         \includegraphics{img/rpc.eps} 
    404         \caption{Modell der Beispielanwendung Mail} 
     402        \includegraphics{img/uml.eps} 
     403        \caption{UML Modell der Beispielanwendung 'Status'} 
    405404        \label{fig:rpc} 
    406405        \end{figure} 
    407406         
    408         StatusService ist ein Interface das RemoteService erweitert und die tatsÀchliche Implementierung beschreibt. 
     407        Status ist ein Interface das RemoteService erweitert und die tatsÀchliche Implementierung beschreibt. 
    409408        Es enthÀlt die Java-Signaturen und wird spÀter vom Backend implementiert. 
    410 \begin{lstlisting}[caption={StatusService}\label{lst:gwtsample_StatusService},captionpos=b,language=java]  
     409\begin{lstlisting}[caption={Status}\label{lst:gwtsample_Status},captionpos=b,language=java]  
    411410import com.google.gwt.user.client.rpc.*; 
    412411 
    413 public interface StatusService extends RemoteService { 
     412public interface Status extends RemoteService { 
    414413  Person[] getActive(); 
    415414  void setStatus(Person name, boolean status); 
     
    417416\end{lstlisting} 
    418417         
    419         HelloServiceAsync ist ein Interface das spÀter im GWT-Frontend-Code instanziiert wird. 
     418        StatusAsync ist ein Interface das spÀter im GWT-Frontend-Code instanziiert wird. 
    420419        Die Methoden haben keinen RÃŒckgabetyp, erhalten jedoch das parametrisierte AsyncCallback Objekt, das auf die readyState Änderungen reagiert. 
    421 \begin{lstlisting}[caption={StatusServiceAsync}\label{lst:gwtsample_StatusServiceAsync},captionpos=b,language=java]  
     420\begin{lstlisting}[caption={StatusAsync}\label{lst:gwtsample_StatusAsync},captionpos=b,language=java]  
    422421import com.google.gwt.user.client.rpc.*; 
    423422 
    424 public interface StatusServiceAsync { 
     423public interface StatusAsync { 
    425424  void getActive(AsyncCallback callback); 
    426425  void setStatus(Person name, boolean status, AsyncCallback callback); 
     
    428427\end{lstlisting} 
    429428         
    430         Der StatusService Proxy beschreibt die Implementierung im Frontend. 
    431         Er ist eine StatusServiceAsync Instanz, wird aber vom GWT initialisiert. 
     429        Der Status-Proxy beschreibt die Implementierung im Frontend. 
     430        Er ist eine StatusAsync Instanz, wird aber vom GWT initialisiert. 
    432431        Hier wird er mit der URL des RPC Moduls des GWT initialisiert. 
    433432        Alternativ kann man aber auch einen Pfad zur eigenen RPC Implementierung eintragen. 
    434 \begin{lstlisting}[caption={StatusServiceAsync}\label{lst:gwtsample_eStatusServiceasync},captionpos=b,language=java]  
    435 StatusServiceAsync eStatusService =  
    436   (StatusServiceAsync) GWT.create(StatusService.class); 
    437 ServiceDefTarget endpoint = (ServiceDefTarget) eStatusService; 
     433\begin{lstlisting}[caption={StatusProxy}\label{lst:gwtsample_StatusProxy},captionpos=b,language=java]  
     434StatusAsync status =  
     435  (StatusAsync) GWT.create(Status.class); 
     436ServiceDefTarget endpoint = (ServiceDefTarget) status; 
    438437String moduleRelativeURL = GWT.getModuleBaseURL() + "rpc"; 
    439438endpoint.setServiceEntryPoint(moduleRelativeURL); 
     
    454453         
    455454        Wird die Anwendung mit dem mitgelieferten Tomcat-Server getestet,  
    456         muss das Backend das StatusService-Interface implementieren und der Pfad zum Servlet in der gwt-Modulkonfiguration eingefÃŒgt werden. 
     455        muss das Backend das Status-Interface implementieren und der Pfad zum Servlet in der gwt-Modulkonfiguration eingefÃŒgt werden. 
    457456        In der public/MeineErsteAnwendung.gwt.xml wird dazu ein neuer XML-Knoten unter '<module>' eingefÃŒgt. 
    458 \begin{lstlisting}[caption={}\label{lst:gwtsample_gwtxml},language=xml]  
     457\begin{lstlisting}[language=xml]  
    459458        <servlet path="/rpc" class="com.gwt.server.StatusImpl"/> 
    460459\end{lstlisting} 
     
    525524         
    526525        Bei der statischen Variante wird ein Interface mit je einer Methode pro Eigenschaft erstellt. 
    527 \begin{lstlisting}[caption={Java Internationalisierung}\label{lst:java_internationalization},captionpos=b,language=java] 
     526\begin{lstlisting}[language=java] 
    528527public interface MyLang extends Constants { 
    529528        String helloWorld(); 
     
    552551        Der Zugriff auf window und document ist gekapselt und nur ÃŒber die Variablen \$wnd und \$doc möglich. 
    553552 
    554 \begin{lstlisting}[caption={JSNI Beispiel}\label{lst:jsni_example},captionpos=b,language=java]  
     553\begin{lstlisting}[language=java]  
    555554public class JSNIExample { 
    556555  void foo(String s) {