# Architektur einer Such-Webanwendung



## nEp (17. Jun 2009)

Hallo,

ich werde bald eine Suchanwendung via JSPs entwickeln, und hätte da eine Frage bezüglich der Aufteilung in Komponenten. Zur Suchanwendung selbst: Das wird so aussehen wie man es halt kennt: Eingabefeld für Suchterm, zusätzliche Suchoptionen, Auto-Suggest,Ergebnisliste und Blätterfunktion, etc... Standard halt.

Und zwar hatte ich die Idee, es grob so aufzuteilen, dass es folgende Komponenten gibt:
- HTML bzw. JSP-Komponente welche im Prinzip nur zur Darstellung des User Interfaces dient. Wenn der User eine Suchanfrage stellt, wird via AJAX ein Request mit den Suchparametern an die nächste Komponente gestellt, nämlich die...
- Business-Komponente welche vom Prinzip her als Servlet implementiert ist und mithilfe den übergebenen Suchparametern die eigentliche Suche ausführt und noch zusätzliche Suchlogiken implementiert. Die Ergebnisse werden als XML-Struktur in die Response geschrieben
- Die User Interface-Komponente verarbeitet das zurückgelieferte XML und transformiert dieses ins entsprechende HTML zur Darstellung des Suchergebnisses
- Für Auto-Suggest gibt es eine weitere Business-Komponente welche ebenfalls durch die User-Interface-Komponente via AJAX aufgerufen wird.

Natürlich werden nicht alle Suchergebnisse aufeinmal zurückgeliefert sondern immer nur eine bestimmte Anzahl, und wenn weitere Ergebnisse geliefert werden wird eben ein neuer AJAX-Request gestellt.

Was haltet ihr davon? Gibts da irgendwelche Fallstricke oder gravierende Dinge die ich übersehen habe? Oder ist das so generell eher nicht zu empfehlen? Würd mich über einige Anregungen etc. freuen...


----------



## JanHH (19. Jun 2009)

Du kannst kaum das Ergebnis des Ajax-Requests mittels JSP auswerten und in HTML verwandeln, da JSP ebenfalls eine serverseitige Sache ist, der Ajax-Request aber clientseitig ausgewertet wird. Du müsstest also mittels javascript den response auswerten und in HTML verwandeln.

Kann sein dass ich das alles falsch verstehe, aber es klingt nach "warum einfach, wenns auch kompliziert geht". Warum nicht ein ganz normales Formular mit Eingabe-Elemeten, einen submit-Button, und ein Servlet, welches diesen Request entgegennimmt und auswertet? Ajax braucht man da eigentlich nur für das auto-suggest, welches meiner Meinung nach erstmal zweitrangig ist.

Viel interessanter an Such-Anwendungen ist ja eigentlich der Such-Algorithmus..


----------



## nEp (19. Jun 2009)

Hallo,

danke erst mal für das Feedback.



JanHH hat gesagt.:


> Du kannst kaum das Ergebnis des Ajax-Requests mittels JSP auswerten und in HTML verwandeln, da JSP ebenfalls eine serverseitige Sache ist, der Ajax-Request aber clientseitig ausgewertet wird. Du müsstest also mittels javascript den response auswerten und in HTML verwandeln.



Richtig, das würde ich auch so machen, d.h. das zurückgelieferte XML via Javascript in HTML transformieren. JSP deshalb weil es vielleicht trotzdem nötig ist hier noch irgendwelche Userdaten z.b. in ner Session abzulegen oder sonstige Funktionalitäten noch auszuführen.



JanHH hat gesagt.:


> Kann sein dass ich das alles falsch verstehe, aber es klingt nach "warum einfach, wenns auch kompliziert geht". Warum nicht ein ganz normales Formular mit Eingabe-Elemeten, einen submit-Button, und ein Servlet, welches diesen Request entgegennimmt und auswertet? Ajax braucht man da eigentlich nur für das auto-suggest, welches meiner Meinung nach erstmal zweitrangig ist.


Prinzipiell funktioniert es auch so, nur dass eben die Daten via AJAX an das Servlet übergeben werden und nachher ausgewertet werden. Dadurch müsste man halt immer nur die Ergebnisliste aktualisieren und nicht die komplette Page. Ich glaube prinzipiell funktioniert auch die Google-Suche mittlerweile so, oder hab ich mich da vertan? 
Für mich stellt sich halt die Frage ob ich mir damit nicht doch irgendwelche Probleme einhandle die ich so momentan gar nicht sehe...


----------



## JanHH (20. Jun 2009)

Ein Problem auf jeden Fall: Es funktioniert nur, wenn im Browser javascript aktiviert ist.


----------



## nEp (22. Jun 2009)

Ja, wobei das keinerlei Probleme bereitet, da diese Suchanwendung in einem Intranet abläuft mit fest vordefinierten Softwarekonfigurationen und JavaScript auf jeden Fall aktiviert ist.


----------

