continue docs
This commit is contained in:
parent
7e6943867c
commit
e112a708d7
|
@ -19,20 +19,13 @@
|
||||||
%\nocite{*}
|
%\nocite{*}
|
||||||
\printbibliography[heading=bibintoc]
|
\printbibliography[heading=bibintoc]
|
||||||
|
|
||||||
% \newpage
|
\newpage
|
||||||
% \microtypesetup{protrusion=false}
|
|
||||||
% \listoffigures
|
|
||||||
% \microtypesetup{protrusion=true}
|
|
||||||
% \
|
|
||||||
% \newpage
|
|
||||||
|
|
||||||
\microtypesetup{protrusion=false}
|
\microtypesetup{protrusion=false}
|
||||||
\listoftables
|
\listoffigures
|
||||||
\microtypesetup{protrusion=true}
|
\microtypesetup{protrusion=true}
|
||||||
\
|
\
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
|
|
||||||
%\printglossaries
|
%\printglossaries
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ WinForm/WPF Applikation gebucht werden können.
|
||||||
|
|
||||||
Aus der Aufgabenstellung lassen sich folgende Ziele an die Systeme ableiten.
|
Aus der Aufgabenstellung lassen sich folgende Ziele an die Systeme ableiten.
|
||||||
|
|
||||||
|
|
||||||
- Die Datenbank wird in SQL Server umgesetzt.
|
- Die Datenbank wird in SQL Server umgesetzt.
|
||||||
- Als Programmiersprache wird C# mit .NET Framework eingesetzt.
|
- Als Programmiersprache wird C# mit .NET Framework eingesetzt.
|
||||||
- Hotels können ihre Zimmer inklusive Zusatzinformationen wie Ausstattung etc.
|
- Hotels können ihre Zimmer inklusive Zusatzinformationen wie Ausstattung etc.
|
||||||
|
@ -50,6 +51,14 @@ Aufgrund der Ziele wurden anschliessend folgende Diagramme ausgearbeitet.
|
||||||
|
|
||||||
** Verteilungsdiagramm
|
** Verteilungsdiagramm
|
||||||
|
|
||||||
|
Das Verteilungsdiagramm, Abbildung:([[fig:verteilungsdiagramm]]), wurde im
|
||||||
|
Unterricht ausgearbeitet. Der Klasse erschien es am sinnvollsten wenn die
|
||||||
|
Plattform als ASP.NET Applikation erstellt wird und somit auf dem IIS Web
|
||||||
|
Server läuft. Da die Plattform das zentrale System ist, ist es für die
|
||||||
|
Normfallstudie auch sinnvoll wenn der Datenbank Server auf dem gleichen System
|
||||||
|
läuft wie die Plattform. In einer realen Umgebung müsste hier allenfalls eine
|
||||||
|
separater Server aufgesetzt werden. Der Airline Service und der WPF Client
|
||||||
|
wurden entsprechend der Vorgagben als externe Applikationen geplant.
|
||||||
|
|
||||||
#+LATEX:\newpage
|
#+LATEX:\newpage
|
||||||
#+LATEX:\begin{landscape}
|
#+LATEX:\begin{landscape}
|
||||||
|
@ -60,37 +69,192 @@ Aufgrund der Ziele wurden anschliessend folgende Diagramme ausgearbeitet.
|
||||||
#+LATEX:\end{landscape}
|
#+LATEX:\end{landscape}
|
||||||
#+LATEX:\newpage
|
#+LATEX:\newpage
|
||||||
|
|
||||||
** Relationales Modell
|
** TODO Relationales Modell
|
||||||
|
|
||||||
|
In der Abbildung:([[fig:rm]]) ist das relationale Modell zu sehen welches durch
|
||||||
|
den Studenten vorgängig zur Umsetzung erstellt wurde. In der
|
||||||
|
Abbildung:([[fig:rmentity]]) ist die das relationale Modell zu sehen welches dann
|
||||||
|
durch das Entity Framework effektiv in der Datenbank erstellt wurde.
|
||||||
|
|
||||||
|
|
||||||
#+LATEX:\newpage
|
#+LATEX:\newpage
|
||||||
#+LATEX:\begin{landscape}
|
#+LATEX:\begin{landscape}
|
||||||
*Erster Entwurf*
|
|
||||||
#+CAPTION: Relationen Modell
|
#+CAPTION: Relationen Modell
|
||||||
#+ATTR_LATEX: :height.9\textwidth
|
#+ATTR_LATEX: :height.8\textwidth
|
||||||
#+NAME: fig:rm
|
#+NAME: fig:rm
|
||||||
[[file:pictures/rm.pdf]]
|
[[file:pictures/rm.pdf]]
|
||||||
#+LATEX:\end{landscape}
|
#+LATEX:\end{landscape}
|
||||||
#+LATEX:\newpage
|
#+LATEX:\newpage
|
||||||
|
|
||||||
*Umsetzung des Entity Framework*
|
#+LATEX:\newpage
|
||||||
|
#+LATEX:\begin{landscape}
|
||||||
|
#+CAPTION: Relationen Modell
|
||||||
|
#+NAME: fig:rmentity
|
||||||
|
[[file:pictures/rmentity.png]]
|
||||||
|
#+LATEX:\end{landscape}
|
||||||
|
#+LATEX:\newpage
|
||||||
|
|
||||||
* Zugewiesene Ziele
|
* Zugewiesene Ziele
|
||||||
|
|
||||||
Der Student hat die Ziele anschliessend wie folgt auf die jeweiligen System
|
Im Anschluss zu der Analyse hat der Student die Ziele den einzelnen
|
||||||
verteilt. Gewisse Ziele könnten auch auf anderen Systemen realisiert. Die
|
Applikationen zugewiesen. Dies sollte dazu dienen die Zuständigkeiten zu regeln.
|
||||||
aufgeführte Variante erschien dem Studenten jedoch am sinnvollsten.
|
|
||||||
|
** Airline Service
|
||||||
|
|
||||||
|
Da die Airlnes alle Flugdaten zur Verfügung haben erschien es sinnvoll das
|
||||||
|
diese einen Service bereitstellen welcher die Parameter Anzahl Passiegere,
|
||||||
|
Start- und Enddatum sowie die Destination aufnimmt. Der Service sollte dann im
|
||||||
|
Hintergrund automatisch die bereits besetzten Flüge und Flüge welche nicht auf
|
||||||
|
die restlichen Paramter passen ausfiltern und nur passende Flüge ausgeben.
|
||||||
|
|
||||||
|
Desweiteren sollte der Airline Service eine Möglichkeit bieten Flüge zu buchen
|
||||||
|
sowie zu stornieren. Im Code Ausschnitt:(\ref{airline}) sieht man die Signature
|
||||||
|
des Airline Services. Respektive des Interfaces davon.
|
||||||
|
|
||||||
|
#+BEGIN_EXPORT latex
|
||||||
|
\label{airline}
|
||||||
|
\begin{sexylisting}{Airline Service}
|
||||||
|
[OperationContract]
|
||||||
|
Dictionary<string, List<Flight>> GetFlights(
|
||||||
|
DateTime startTime,
|
||||||
|
DateTime endTime,
|
||||||
|
string destination,
|
||||||
|
int numberOfSeats);
|
||||||
|
[OperationContract]
|
||||||
|
Flight BookFlight(Flight flight, int numberOfSeats);
|
||||||
|
[OperationContract]
|
||||||
|
Flight CancelFlight(Flight flight, int numberOfSeats);
|
||||||
|
\end{sexylisting}
|
||||||
|
#+END_EXPORT
|
||||||
|
|
||||||
|
Somit wurden dem Airline Service folgende Ziele zugewiesen:
|
||||||
|
- Es dürfen nur freie Flüge in Kombiangeboten vorkommen.
|
||||||
|
- Start- und Zielort des Fluges im Kombiangebot müssen passend zum Hotelzimmer
|
||||||
|
sein.
|
||||||
|
- Die Daten des Fluges müssen korrekt sein.
|
||||||
|
|
||||||
|
** Plattform
|
||||||
|
|
||||||
|
Die Plattform stellt den Grossteil der Logik und Funktionen bereit. Sie sollte
|
||||||
|
einerseits ein Möglichkeit bieten damit die Hotelbetreiber Zimmer und ihre
|
||||||
|
Hotels erfassen könne sowie das Matching zwischen Hotelzimmer und Flügen
|
||||||
|
erledigen.
|
||||||
|
|
||||||
|
Zusätzlich sollte sie die erstellten Komiangebote and den WPF Client
|
||||||
|
weiterleiten können. Auch das entgegennehmen der Bestellungen sowie
|
||||||
|
Reservationen des WPF Clients entgegennehmen und an den Airline Service
|
||||||
|
weiterleiten. Auch die Überprüfung der Reservationszeit sowie die entsprechende
|
||||||
|
Reakation war für die Plattform geplant.
|
||||||
|
|
||||||
|
Zu guter letzt sollten dann die reservertierten respektive gebuchten Flüge an
|
||||||
|
die passende Airline zur Buchung weitergeleitet werden. Im Falle einer
|
||||||
|
Stornierung des Angebots müsste dann natürlich auch noch der Flug storniert
|
||||||
|
werden.
|
||||||
|
|
||||||
|
Der Plattform wurden somit folgende Ziele zugewiesen:
|
||||||
|
- Die Datenbank wird in SQL Server umgesetzt.
|
||||||
|
- Hotels können ihre Zimmer inklusive Zusatzinformationen wie Ausstattung etc.
|
||||||
|
erfassen.
|
||||||
|
- Flüge werden in der Datenbank gespeichert.
|
||||||
|
- Die Kombiangebote werden auf der Plattform in der Datenbank gespeichert.
|
||||||
|
- Ein WinForm/WPF Client greift auf die Plattform zu und ruft die Kombiangebote
|
||||||
|
ab.
|
||||||
|
- Der Client kann Kombiangebote buchen.
|
||||||
|
- Der Client kann Kombiangebote für 10 Tage reservieren.
|
||||||
|
- Die Plattform bucht bezahlte Reservationen fix.
|
||||||
|
- Es müssen mehrere Fluggesellschaften angebunden werden.
|
||||||
|
- Der Service wird innerhalb von 2s aufgebaut, läuft mindestens 30 Tage durch,
|
||||||
|
bietet eine Verfügbarkeit von 0.995 und ist innerhalb von 0.5s ansprechbar.
|
||||||
|
- Start- und Zielort des Fluges im Kombiangebot müssen passend zum Hotelzimmer
|
||||||
|
sein.
|
||||||
|
|
||||||
|
Die Signatur des Plattform Services ist im Codebeispiel:(\ref{plattform}) zu
|
||||||
|
sehen.
|
||||||
|
|
||||||
|
#+NAME: plattform
|
||||||
|
#+BEGIN_EXPORT latex
|
||||||
|
\label{plattform}
|
||||||
|
\begin{sexylisting}{Plattfrom Service}
|
||||||
|
[OperationContract]
|
||||||
|
List<SpecialOffer> GetSpecialOffers();
|
||||||
|
[OperationContract]
|
||||||
|
bool ReserveSpecialOffer(SpecialOffer offer);
|
||||||
|
[OperationContract]
|
||||||
|
bool BookSpecialOffer(SpecialOffer offer);
|
||||||
|
[OperationContract]
|
||||||
|
bool CancelSpecialOffer(SpecialOffer offer);
|
||||||
|
[OperationContract]
|
||||||
|
List<Gender> GetGenders();
|
||||||
|
[OperationContract]
|
||||||
|
List<Salutation> GetSalutations();
|
||||||
|
[OperationContract]
|
||||||
|
List<City> GetCities();
|
||||||
|
\end{sexylisting}
|
||||||
|
#+END_EXPORT
|
||||||
|
|
||||||
|
** TODO WPF Client
|
||||||
|
|
||||||
|
Der WPF Client sollte nur aus einem simplen graphischen Interface bestehen
|
||||||
|
welches einem User erlaubt hätte nach Städten und Daten zu filtern und ihm dann
|
||||||
|
die entsprechenden Kombiangebote angezeigt hätte. Das gewünschte Angebot hätte
|
||||||
|
er dann über den WCF Service auf der Plattform reservieren oder direkt buchen
|
||||||
|
können. Ein früher Screenshot des Clients ist in der Abbildung:([[wpf]]) zu sehen.
|
||||||
|
|
||||||
|
#+CAPTION: frúher Screenshot des WPF Clients
|
||||||
|
#+ATTR_LATEX: :height 15cm
|
||||||
|
#+NAME: wpf
|
||||||
|
[[file:pictures/rmentity.png]]
|
||||||
|
|
||||||
|
* Offene Punkte
|
||||||
|
|
||||||
|
|
||||||
|
Aufgrund enormen Zeitmangels war es leider nicht möglich das Projekt zu
|
||||||
|
realisieren. In dieser Sektion soll ein kurzer Überblick darüber gegeben werden
|
||||||
|
welche Punkte in welchem Teil des Projektes noch offen sind und nicht
|
||||||
|
fertigstellt oder überhaupt angegangen werden konnten.
|
||||||
|
|
||||||
|
** Airline Service
|
||||||
|
|
||||||
|
Soweit der Student dies zum jetzigen Zeitpunkt beurteilen kann ist der Airline
|
||||||
|
Service soweit abgeschlossen. In ersten nicht dokumentierter Tests wurden
|
||||||
|
zumindest die erwarteten Daten zurück geliefert.
|
||||||
|
|
||||||
|
** TODO Plattform
|
||||||
|
|
||||||
|
Aufgrund eines Bugs welcher auch mit Hilfe des Dozenten nicht behoben werden
|
||||||
|
konnte ist es zur Zeit nicht möglich die Plattform überhaupt zu starten. Das
|
||||||
|
Provisionieren der Datenbank schlägt mit dem Fehler "" fehl.
|
||||||
|
Die Zimmererfassung für die Hotels konnte zuvor jedoch soweit fertigstellt
|
||||||
|
werden. Noch offen sind zur Zeit:
|
||||||
|
|
||||||
|
- Der Plattform Service ist mangels eines passenden Clients komplett
|
||||||
|
ungetestet. Somit ist unklar ob die Buchung oder Reservationen der
|
||||||
|
Kombiangebote funktionieren.
|
||||||
|
- Flüge werden in der Datenbank gespeichert.
|
||||||
|
- Kombiangebote werden in der Datenbank gespeichert.
|
||||||
|
- Zu buchende Flüge werden an die Fluggesellschaften gemeldet.
|
||||||
|
- Der Service wird innerhalb von 2s aufgebaut, läuft mindestens 30 Tage durch,
|
||||||
|
bietet eine Verfügbarkeit von 0.995 und ist innerhalb von 0.5s ansprechbar.
|
||||||
|
- Bezahlte Reservationen werden fix gebucht.
|
||||||
|
|
||||||
|
** WPF Client
|
||||||
|
|
||||||
|
Vom WPF Client exisistiert zur Zeit nur das Grundgerüst. Da die Plattform nicht
|
||||||
|
funktionsfähig war hat der Student am WPF Client gearbeitet soweit es möglich
|
||||||
|
war. Allerdings war dies ohne den WCF Service der Plattform nur sehr beschränkt
|
||||||
|
möglich. Viel mehr als die graphische Oberfläche existiert zur Zeit nicht.
|
||||||
|
|
||||||
* Fazit
|
* Fazit
|
||||||
|
|
||||||
Ein Booking System welches Kombiangebote wie in der Aufgabenstellung verlangt
|
Ein Booking System welches Kombiangebote wie in der Aufgabenstellung verlangt
|
||||||
bereitsstellt ist eine uglaublich komplexes System. Das Matching der Flüge zu
|
bereitstellt ist eine uglaublich komplexes System. Das Matching der Flüge zu
|
||||||
passenden Hotelzimmer hat enorm viele Variabeln welche berücksichtigt werden
|
passenden Hotelzimmer hat enorm viele Variabeln welche berücksichtigt werden
|
||||||
müssen.
|
müssen.
|
||||||
|
|
||||||
Dadurch lässt sich das Projekt in keiner Weise innerhalb von ca. 20 Stunden
|
Dadurch lässt sich das Projekt in keiner Weise innerhalb von ca. 20 Stunden
|
||||||
erstellen. Der Student hat über 40 Stunden in das Projekt in Heimarbeit
|
erstellen. Der Student hat weit über 40 Stunden in das Projekt in Heimarbeit
|
||||||
investiert und kein brauchbares Ergebnis erziehlen können.
|
investiert und kein brauchbares Ergebnis erziehlen können. Für den Studenten
|
||||||
|
ist dies eine enorm unbefriedigende Situation.
|
||||||
|
|
||||||
Das .NET und Entity Framework bieten einige interessante Features. Allerdings
|
Das .NET und Entity Framework bieten einige interessante Features. Allerdings
|
||||||
wirkt der Code-First Ansatz von Entity Framework so als ob die ganzen
|
wirkt der Code-First Ansatz von Entity Framework so als ob die ganzen
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
\section{Einführung}
|
\section{Einführung}
|
||||||
\label{sec:org6d4f889}
|
\label{sec:orgdbdb24a}
|
||||||
|
|
||||||
Aufgabe war es ein System aufzubauen welches Hotelbetreibern erlaubt ihre
|
Aufgabe war es ein System aufzubauen welches Hotelbetreibern erlaubt ihre
|
||||||
freien Zimmer auf einem zentralen System zu melden. Das System sollte dann bei
|
freien Zimmer auf einem zentralen System zu melden. Das System sollte dann bei
|
||||||
|
@ -10,10 +10,11 @@ speichern. Diese Kombiangebot sollte dann von einem Kunden mithilfe einer
|
||||||
WinForm/WPF Applikation gebucht werden können.
|
WinForm/WPF Applikation gebucht werden können.
|
||||||
|
|
||||||
\section{Ziele}
|
\section{Ziele}
|
||||||
\label{sec:orgdab10f5}
|
\label{sec:org246beb5}
|
||||||
|
|
||||||
Aus der Aufgabenstellung lassen sich folgende Ziele an die Systeme ableiten.
|
Aus der Aufgabenstellung lassen sich folgende Ziele an die Systeme ableiten.
|
||||||
|
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Die Datenbank wird in SQL Server umgesetzt.
|
\item Die Datenbank wird in SQL Server umgesetzt.
|
||||||
\item Als Programmiersprache wird C\# mit .NET Framework eingesetzt.
|
\item Als Programmiersprache wird C\# mit .NET Framework eingesetzt.
|
||||||
|
@ -36,61 +37,237 @@ sein.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\section{Analyse}
|
\section{Analyse}
|
||||||
\label{sec:orgf4ce43a}
|
\label{sec:org1288e00}
|
||||||
|
|
||||||
Aufgrund der Ziele wurden anschliessend folgende Diagramme ausgearbeitet.
|
Aufgrund der Ziele wurden anschliessend folgende Diagramme ausgearbeitet.
|
||||||
|
|
||||||
\subsection{Verteilungsdiagramm}
|
\subsection{Verteilungsdiagramm}
|
||||||
\label{sec:org3b0693e}
|
\label{sec:org3c759ef}
|
||||||
|
|
||||||
|
Das Verteilungsdiagramm, Abbildung:(\ref{fig:org07992c9}), wurde im
|
||||||
|
Unterricht ausgearbeitet. Der Klasse erschien es am sinnvollsten wenn die
|
||||||
|
Plattform als ASP.NET Applikation erstellt wird und somit auf dem IIS Web
|
||||||
|
Server läuft. Da die Plattform das zentrale System ist, ist es für die
|
||||||
|
Normfallstudie auch sinnvoll wenn der Datenbank Server auf dem gleichen System
|
||||||
|
läuft wie die Plattform. In einer realen Umgebung müsste hier allenfalls eine
|
||||||
|
separater Server aufgesetzt werden. Der Airline Service und der WPF Client
|
||||||
|
wurden entsprechend der Vorgagben als externe Applikationen geplant.
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\begin{landscape}
|
\begin{landscape}
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=.9\linewidth]{pictures/verteilungsdiagramm.pdf}
|
\includegraphics[width=.9\linewidth]{pictures/verteilungsdiagramm.pdf}
|
||||||
\caption{\label{fig:orgf1e8607}
|
\caption{\label{fig:org07992c9}
|
||||||
Verteilungsdiagramm}
|
Verteilungsdiagramm}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\end{landscape}
|
\end{landscape}
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
\subsection{Relationales Modell}
|
\subsection{Relationales Modell}
|
||||||
\label{sec:org8ee6851}
|
\label{sec:orga601e65}
|
||||||
|
|
||||||
|
In der Abbildung:(\ref{fig:org2edad9e}) ist das relationale Modell zu sehen welches durch
|
||||||
|
den Studenten vorgängig zur Umsetzung erstellt wurde. In der
|
||||||
|
Abbildung:(\ref{fig:org1c14d0c}) ist die das relationale Modell zu sehen welches dann
|
||||||
|
durch das Entity Framework effektiv in der Datenbank erstellt wurde.
|
||||||
|
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\begin{landscape}
|
\begin{landscape}
|
||||||
\textbf{Erster Entwurf}
|
|
||||||
\begin{figure}[htbp]
|
\begin{figure}[htbp]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=.9\linewidth]{pictures/rm.pdf}
|
\includegraphics[width=.9\linewidth]{pictures/rm.pdf}
|
||||||
\caption{\label{fig:org71fbc74}
|
\caption{\label{fig:org2edad9e}
|
||||||
Relationen Modell}
|
Relationen Modell}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\end{landscape}
|
\end{landscape}
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
\textbf{Umsetzung des Entity Framework}
|
\newpage
|
||||||
|
\begin{landscape}
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=.9\linewidth]{pictures/rmentity.png}
|
||||||
|
\caption{\label{fig:org1c14d0c}
|
||||||
|
Relationen Modell}
|
||||||
|
\end{figure}
|
||||||
|
\end{landscape}
|
||||||
|
\newpage
|
||||||
|
|
||||||
\section{Zugewiesene Ziele}
|
\section{Zugewiesene Ziele}
|
||||||
\label{sec:org3fd47d5}
|
\label{sec:org04bceeb}
|
||||||
|
|
||||||
Der Student hat die Ziele anschliessend wie folgt auf die jeweiligen System
|
Im Anschluss zu der Analyse hat der Student die Ziele den einzelnen
|
||||||
verteilt. Gewisse Ziele könnten auch auf anderen Systemen realisiert. Die
|
Applikationen zugewiesen. Dies sollte dazu dienen die Zuständigkeiten zu regeln.
|
||||||
aufgeführte Variante erschien dem Studenten jedoch am sinnvollsten.
|
|
||||||
|
\subsection{Airline Service}
|
||||||
|
\label{sec:org87128cd}
|
||||||
|
|
||||||
|
Da die Airlnes alle Flugdaten zur Verfügung haben erschien es sinnvoll das
|
||||||
|
diese einen Service bereitstellen welcher die Parameter Anzahl Passiegere,
|
||||||
|
Start- und Enddatum sowie die Destination aufnimmt. Der Service sollte dann im
|
||||||
|
Hintergrund automatisch die bereits besetzten Flüge und Flüge welche nicht auf
|
||||||
|
die restlichen Paramter passen ausfiltern und nur passende Flüge ausgeben.
|
||||||
|
|
||||||
|
Desweiteren sollte der Airline Service eine Möglichkeit bieten Flüge zu buchen
|
||||||
|
sowie zu stornieren. Im Code Ausschnitt:(\ref{airline}) sieht man die Signature
|
||||||
|
des Airline Services. Respektive des Interfaces davon.
|
||||||
|
|
||||||
|
\label{airline}
|
||||||
|
\begin{sexylisting}{Airline Service}
|
||||||
|
[OperationContract]
|
||||||
|
Dictionary<string, List<Flight>> GetFlights(
|
||||||
|
DateTime startTime,
|
||||||
|
DateTime endTime,
|
||||||
|
string destination,
|
||||||
|
int numberOfSeats);
|
||||||
|
[OperationContract]
|
||||||
|
Flight BookFlight(Flight flight, int numberOfSeats);
|
||||||
|
[OperationContract]
|
||||||
|
Flight CancelFlight(Flight flight, int numberOfSeats);
|
||||||
|
\end{sexylisting}
|
||||||
|
|
||||||
|
Somit wurden dem Airline Service folgende Ziele zugewiesen:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Es dürfen nur freie Flüge in Kombiangeboten vorkommen.
|
||||||
|
\item Start- und Zielort des Fluges im Kombiangebot müssen passend zum Hotelzimmer
|
||||||
|
sein.
|
||||||
|
\item Die Daten des Fluges müssen korrekt sein.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsection{Plattform}
|
||||||
|
\label{sec:org37a67c5}
|
||||||
|
|
||||||
|
Die Plattform stellt den Grossteil der Logik und Funktionen bereit. Sie sollte
|
||||||
|
einerseits ein Möglichkeit bieten damit die Hotelbetreiber Zimmer und ihre
|
||||||
|
Hotels erfassen könne sowie das Matching zwischen Hotelzimmer und Flügen
|
||||||
|
erledigen.
|
||||||
|
|
||||||
|
Zusätzlich sollte sie die erstellten Komiangebote and den WPF Client
|
||||||
|
weiterleiten können. Auch das entgegennehmen der Bestellungen sowie
|
||||||
|
Reservationen des WPF Clients entgegennehmen und an den Airline Service
|
||||||
|
weiterleiten. Auch die Überprüfung der Reservationszeit sowie die entsprechende
|
||||||
|
Reakation war für die Plattform geplant.
|
||||||
|
|
||||||
|
Zu guter letzt sollten dann die reservertierten respektive gebuchten Flüge an
|
||||||
|
die passende Airline zur Buchung weitergeleitet werden. Im Falle einer
|
||||||
|
Stornierung des Angebots müsste dann natürlich auch noch der Flug storniert
|
||||||
|
werden.
|
||||||
|
|
||||||
|
Der Plattform wurden somit folgende Ziele zugewiesen:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Die Datenbank wird in SQL Server umgesetzt.
|
||||||
|
\item Hotels können ihre Zimmer inklusive Zusatzinformationen wie Ausstattung etc.
|
||||||
|
erfassen.
|
||||||
|
\item Flüge werden in der Datenbank gespeichert.
|
||||||
|
\item Die Kombiangebote werden auf der Plattform in der Datenbank gespeichert.
|
||||||
|
\item Ein WinForm/WPF Client greift auf die Plattform zu und ruft die Kombiangebote
|
||||||
|
ab.
|
||||||
|
\item Der Client kann Kombiangebote buchen.
|
||||||
|
\item Der Client kann Kombiangebote für 10 Tage reservieren.
|
||||||
|
\item Die Plattform bucht bezahlte Reservationen fix.
|
||||||
|
\item Es müssen mehrere Fluggesellschaften angebunden werden.
|
||||||
|
\item Der Service wird innerhalb von 2s aufgebaut, läuft mindestens 30 Tage durch,
|
||||||
|
bietet eine Verfügbarkeit von 0.995 und ist innerhalb von 0.5s ansprechbar.
|
||||||
|
\item Start- und Zielort des Fluges im Kombiangebot müssen passend zum Hotelzimmer
|
||||||
|
sein.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Die Signatur des Plattform Services ist im Codebeispiel:(\ref{plattform}) zu
|
||||||
|
sehen.
|
||||||
|
|
||||||
|
\label{plattform}
|
||||||
|
\begin{sexylisting}{Plattfrom Service}
|
||||||
|
[OperationContract]
|
||||||
|
List<SpecialOffer> GetSpecialOffers();
|
||||||
|
[OperationContract]
|
||||||
|
bool ReserveSpecialOffer(SpecialOffer offer);
|
||||||
|
[OperationContract]
|
||||||
|
bool BookSpecialOffer(SpecialOffer offer);
|
||||||
|
[OperationContract]
|
||||||
|
bool CancelSpecialOffer(SpecialOffer offer);
|
||||||
|
[OperationContract]
|
||||||
|
List<Gender> GetGenders();
|
||||||
|
[OperationContract]
|
||||||
|
List<Salutation> GetSalutations();
|
||||||
|
[OperationContract]
|
||||||
|
List<City> GetCities();
|
||||||
|
\end{sexylisting}
|
||||||
|
|
||||||
|
\subsection{WPF Client}
|
||||||
|
\label{sec:org98d738d}
|
||||||
|
|
||||||
|
Der WPF Client sollte nur aus einem simplen graphischen Interface bestehen
|
||||||
|
welches einem User erlaubt hätte nach Städten und Daten zu filtern und ihm dann
|
||||||
|
die entsprechenden Kombiangebote angezeigt hätte. Das gewünschte Angebot hätte
|
||||||
|
er dann über den WCF Service auf der Plattform reservieren oder direkt buchen
|
||||||
|
können. Ein früher Screenshot des Clients ist in der Abbildung:(\ref{fig:org5dab192}) zu sehen.
|
||||||
|
|
||||||
|
\begin{figure}[htbp]
|
||||||
|
\centering
|
||||||
|
\includegraphics[height=15cm]{pictures/rmentity.png}
|
||||||
|
\caption{\label{fig:org5dab192}
|
||||||
|
frúher Screenshot des WPF Clients}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\section{Offene Punkte}
|
||||||
|
\label{sec:org9459c01}
|
||||||
|
|
||||||
|
|
||||||
|
Aufgrund enormen Zeitmangels war es leider nicht möglich das Projekt zu
|
||||||
|
realisieren. In dieser Sektion soll ein kurzer Überblick darüber gegeben werden
|
||||||
|
welche Punkte in welchem Teil des Projektes noch offen sind und nicht
|
||||||
|
fertigstellt oder überhaupt angegangen werden konnten.
|
||||||
|
|
||||||
|
\subsection{Airline Service}
|
||||||
|
\label{sec:org2ebd0ec}
|
||||||
|
|
||||||
|
Soweit der Student dies zum jetzigen Zeitpunkt beurteilen kann ist der Airline
|
||||||
|
Service soweit abgeschlossen. In ersten nicht dokumentierter Tests wurden
|
||||||
|
zumindest die erwarteten Daten zurück geliefert.
|
||||||
|
|
||||||
|
\subsection{Plattform}
|
||||||
|
\label{sec:org6223095}
|
||||||
|
|
||||||
|
Aufgrund eines Bugs welcher auch mit Hilfe des Dozenten nicht behoben werden
|
||||||
|
konnte ist es zur Zeit nicht möglich die Plattform überhaupt zu starten. Das
|
||||||
|
Provisionieren der Datenbank schlägt mit dem Fehler "`"' fehl.
|
||||||
|
Die Zimmererfassung für die Hotels konnte zuvor jedoch soweit fertigstellt
|
||||||
|
werden. Noch offen sind zur Zeit:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Der Plattform Service ist mangels eines passenden Clients komplett
|
||||||
|
ungetestet. Somit ist unklar ob die Buchung oder Reservationen der
|
||||||
|
Kombiangebote funktionieren.
|
||||||
|
\item Flüge werden in der Datenbank gespeichert.
|
||||||
|
\item Kombiangebote werden in der Datenbank gespeichert.
|
||||||
|
\item Zu buchende Flüge werden an die Fluggesellschaften gemeldet.
|
||||||
|
\item Der Service wird innerhalb von 2s aufgebaut, läuft mindestens 30 Tage durch,
|
||||||
|
bietet eine Verfügbarkeit von 0.995 und ist innerhalb von 0.5s ansprechbar.
|
||||||
|
\item Bezahlte Reservationen werden fix gebucht.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsection{WPF Client}
|
||||||
|
\label{sec:orgb5d6e75}
|
||||||
|
|
||||||
|
Vom WPF Client exisistiert zur Zeit nur das Grundgerüst. Da die Plattform nicht
|
||||||
|
funktionsfähig war hat der Student am WPF Client gearbeitet soweit es möglich
|
||||||
|
war. Allerdings war dies ohne den WCF Service der Plattform nur sehr beschränkt
|
||||||
|
möglich. Viel mehr als die graphische Oberfläche existiert zur Zeit nicht.
|
||||||
|
|
||||||
\section{Fazit}
|
\section{Fazit}
|
||||||
\label{sec:org6b3e5f1}
|
\label{sec:org8eb7fd0}
|
||||||
|
|
||||||
Ein Booking System welches Kombiangebote wie in der Aufgabenstellung verlangt
|
Ein Booking System welches Kombiangebote wie in der Aufgabenstellung verlangt
|
||||||
bereitsstellt ist eine uglaublich komplexes System. Das Matching der Flüge zu
|
bereitstellt ist eine uglaublich komplexes System. Das Matching der Flüge zu
|
||||||
passenden Hotelzimmer hat enorm viele Variabeln welche berücksichtigt werden
|
passenden Hotelzimmer hat enorm viele Variabeln welche berücksichtigt werden
|
||||||
müssen.
|
müssen.
|
||||||
|
|
||||||
Dadurch lässt sich das Projekt in keiner Weise innerhalb von ca. 20 Stunden
|
Dadurch lässt sich das Projekt in keiner Weise innerhalb von ca. 20 Stunden
|
||||||
erstellen. Der Student hat über 40 Stunden in das Projekt in Heimarbeit
|
erstellen. Der Student hat weit über 40 Stunden in das Projekt in Heimarbeit
|
||||||
investiert und kein brauchbares Ergebnis erziehlen können.
|
investiert und kein brauchbares Ergebnis erziehlen können. Für den Studenten
|
||||||
|
ist dies eine enorm unbefriedigende Situation.
|
||||||
|
|
||||||
Das .NET und Entity Framework bieten einige interessante Features. Allerdings
|
Das .NET und Entity Framework bieten einige interessante Features. Allerdings
|
||||||
wirkt der Code-First Ansatz von Entity Framework so als ob die ganzen
|
wirkt der Code-First Ansatz von Entity Framework so als ob die ganzen
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 460 KiB |
Loading…
Reference in New Issue