Frage

Ich habe eine große monolithische Webapp, und wenn ich Änderungen an einen bestimmten Abschnitt der Webapp machen bin ich gezwungen, das ganze Programm zu implementieren.

Das mag ich breche in kleinere Stücke nach unten basierend auf Funktionalität (zB in einem Banking Website - Ich mag informative Sachen trennen aus der Online-Banking-Funktionalität, so dass, wenn ich eine Änderung der Online-Banking-Funktionalität machen, ich nur einsetzen, dass ein Teil)

Die Herausforderung hier ist die Existenz bestimmter gemeinsamer Elemente für die Webapp, wie eine gemeinsame Klasse, die über die Anwendung gemeinsam genutzt wird.

Alle Gedanken über die verschiedenen Möglichkeiten, in denen die Webapp Partitionierungs getan werden könnte? Danke.

War es hilfreich?

Lösung

Dies ist nicht tomcat spezifisch, aber in der Regel, wenn Sie eine Webanwendung Aufspaltung Sie eine Möglichkeit, anderen Zustand über die verteilten Stücke teilen möchten werden. Sie können für die Sitzungsinformationen mit einer Datenbank oder Memcached Store tun dies, aber stellen Sie sicher, dass jede Anwendung die gemeinsamen Sitzung Daten lesen kann (einige Frameworks einen Schlüssel verwenden, wird die Session-Daten zu verschlüsseln und brauchen alle haben den gleichen Schlüssel zu lesen es). Ich glaube nicht, die meisten Cookie speichern für Session-Informationen in einer Art und Weise Hash wird, dass das Cookie nicht richtig zwischen den Anwendungen bestehen bleiben.

durch Funktion Breaking down am meisten Sinn macht. Sehen Sie, wo Sie Ihre Backend-Code trennen kann. Wenn Sie schönen ruhigen Typ Urls haben, können Sie wahrscheinlich Ihre URLS aussehen zu helfen, gute Partitionen zu bestimmen.

Auch, wenn Sie einen großen statischen Abschnitt haben, die Sie separat aktualisieren, vielleicht, dass durch etwas sollte anders als Kater serviert.

Für gemeinsame Klassen, können Sie Klassenimplementierungen in einem Glas in Ihrem tomcat / lib Ordner. Sie würden für den gesamten Server zur Verfügung stehen. Sie würden nicht in der Lage sein, sehr gut auf Ihren Web-Kontext zugeschnitten werden (es sei denn, Sie den Kontext an sie übergeben), und Sie würden den ganzen Server neu zu starten, die JAR-Datei zu aktualisieren, tomcat, um es neu zu laden.

Vielleicht können Sie etwas aus mit Schnittstellen arbeiten, dass Sie mehr Unabhängigkeit in jeder Partition bekommt so dass sie in irgendeiner Weise unabhängig kompilieren. Vielleicht haben einige Remote-Aufruf-Methode würde auch helfen, gemeinsame Funktionen auf einen einzelnen .jar oder .war bewegen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top