doc.tex (3674B)
1 \documentclass{article} 2 \usepackage[utf8]{inputenc} 3 \usepackage[greek,english]{babel} 4 \usepackage{alphabeta} 5 \usepackage{fancyhdr} 6 \usepackage{listings} 7 \usepackage{mathtools} 8 \usepackage{xcolor} 9 \usepackage{biblatex} 10 \usepackage[left=1cm,right=1cm]{geometry} 11 12 \lstset { 13 basicstyle=\ttfamily, 14 columns=fullflexible, 15 breaklines=true, 16 keepspaces=true, 17 showstringspaces=false 18 } 19 20 \title{Εργαστήριο Κατανεμημένων Συστημάτων - Εργασία 2} 21 \author{Χρήστος Μαργιώλης -- 19390133} 22 \date{Μάιος 2022} 23 24 \begin{document} 25 26 \begin{titlepage} 27 \maketitle 28 \begin{figure}[t!] 29 \begin{center} 30 \includegraphics[scale=0.3]{./res/uniwalogo.png} \\ 31 \Large 32 \textbf{Πανεπιστήμιο Δυτικής Αττικής} \\ 33 \large 34 Τμήμα Μηχανικών Πληροφορικής και Ηλεκτρονικών Υπολογιστών 35 \end{center} 36 \end{figure} 37 \end{titlepage} 38 39 \renewcommand{\contentsname}{Περιεχόμενα} 40 \tableofcontents 41 42 \section{Δομή αρχείων} 43 44 \begin{itemize} 45 \item \lstinline{HRInterface}: Interface που περιέχει τις δηλώσεις των 46 μεθόδων του server. 47 \item \lstinline{HRImpl}: Υλοποίηση του interface. 48 \item \lstinline{Room}: Βοηθητική κλάση για την υλοποίηση των δωματίων 49 του ξενοδοχείου. 50 \item \lstinline{HRServer}: Ο server. 51 \item \lstinline{HRClient}: Ο client. 52 \end{itemize} 53 54 \section{Εκτέλεση κώδικα} 55 56 Κάνουμε compile τον κώδικα: 57 58 \begin{lstlisting} 59 $ javac *.java 60 \end{lstlisting} 61 62 Ανοίγουμε δύο terminals. Στο ένα ξεκινάμε το \lstinline{rmiregistry} και στο 63 άλλο τον server. Σε τρίτο terminal εκτελούμε τον client, ο οποίος μπορεί 64 να εκτελεστεί με έναν από τους 4 τρόπους: 65 66 \begin{lstlisting} 67 java HRClient list <hostname> 68 java HRClient book <type> <number> <name> <hostname> 69 java HRClient guests <hostname> 70 java HRClient cancel <type> <number> <name> <hostname> 71 \end{lstlisting} 72 73 \section{Ενδεικτικά τρεξίματα} 74 75 Τα παρακάτω τρεξίματα δείχνουν τους 4 διαφορετικούς τρόπους εκτέλεσης του 76 client, καθώς και τους χειρισμούς περιπτώσεων που μπορούν να προκείψουν (π.χ 77 δεν υπάρχουν ελεύθερα δωμάτια, υπάρχουν λιγότερα δωμάτια από όσα θέλει να 78 κρατήσει ο πελάτης) 79 80 \includegraphics[width=\linewidth]{res/run1.png} 81 \includegraphics[width=\linewidth]{res/run2.png} 82 83 \section{Κώδικας} 84 85 Ο κώδικας είναι σχολιασμένος στα σημεία που θεωρώ ότι μπορεί να υπάρξει 86 σύχγηση, και όχι ακόμα και σε σημεία που είναι λίγο-πολύ ξεκάθαρο το τι 87 συμβαίνει. 88 89 \subsection{\lstinline{HRInterface.java}} 90 91 \lstinputlisting[language=java]{../src/HRInterface.java} 92 \pagebreak 93 94 \subsection{\lstinline{HRImpl.java}} 95 96 \lstinputlisting[language=java]{../src/HRImpl.java} 97 \pagebreak 98 99 \subsection{\lstinline{Room.java}} 100 101 \lstinputlisting[language=java]{../src/Room.java} 102 \pagebreak 103 104 \subsection{\lstinline{HRServer.java}} 105 106 \lstinputlisting[language=java]{../src/HRServer.java} 107 \pagebreak 108 109 \subsection{\lstinline{HRClient.java}} 110 111 \lstinputlisting[language=java]{../src/HRClient.java} 112 \pagebreak 113 114 \end{document}