Hallo,
hat jemand von euch vielleicht ein paar Ideen, Bücher o.ä. , wie man von einander abhängende Prozesse in Webanwendungen am besten darstellt, programmiert usw.
Damit meine ich jetzt aber nicht den abgeschlossenen Prozess innerhalb einer Session, wie z.B bei einen Bestelllvorgang sondern eher so:
Es gibt zB. 5 Prozesse in einer Prozesskette, die der User tätigen muss, um an sein "Ziel" zu kommen.
Beispiel:
User loggt sich ein -> startet Prozess 1 -> Prozess 1 fertig -> relevante Informationen in DB -> User loggt sich aus.
User loggt sich ein -> will Prozess 2 starten -> Prozess 2 schaut, ob Prozess 1 fertig -> Prozess 1 fertig -> Prozess 2 wird gestartet ... usw.
User loggt sich ein -> will Prozess 3 starten -> Prozess 3 schaut, ob Prozess 1 fertig -> Prozess 1 fertig -> Prozess 3 wird gestartet ... usw.
....
...
User loggt sich ein -> will Prozess 5 starten -> Prozess 5 schaut, ob Prozess 4 fertig -> Prozess 4 noch nicht fertigt ->!!Hinweis
rozess 5 kann nicht gestartet werden ... usw.!!
User loggt sich ein -> will Prozess 4 beenden -> Prozess 4 schaut, ob Prozess 3 fertig -> Prozess 3 fertig -> Prozess 4 wird beendet ... usw.
User loggt sich ein -> will Prozess 5 starten -> Prozess 5 schaut, ob Prozess 4 fertig -> Prozess 4 fertig -> Prozess 5 wird gestartet -> ...Prozesskette ist beendet!
Jeder Prozess muss also schauen, ob der vorhergehende Prozess schon erledigt ist.
Als 1. Schwierigkeit besteht, das es nebenläufige Prozesse gibt. d.h es muss nicht jeder Prozess vom Vorgänger abhängig sein. dh. es kann Prozess 3 vor Prozess 2 gestartet werden , da beide von Prozess 1 abhängen.
User loggt sich ein -> will Prozess 3 starten -> Prozess 3 schaut, ob Prozess 1 fertig -> Prozess 3 wird gestartet ... usw.
Die 2. Schwierigkeit besteht darin, das sich die Prozessabhängigkeiten zB. aufgrund von Gesetzen ändern können oder ganz wegfallen können, d.h man muss flexibel bleiben, ohne ständig nachprogrammieren zu müssen.
Natürlich kann der Prozess 5 schauen, ob zb. in der DB bei Prozess 4 der Status auf 'erledigt' steht, allerdings muss er dazu auch erstmal wissen, das Prozess 4 sein Vorgänger ist.
Aber woher weiß er das?
Meine momentane Idee ist ein xml-file zur Konfiguration einerseits für die Darstellung(der View stellt die Prozessreihenfolge anhand des xml-files dar), andererseits für die Prozesse intern zB:
<prozesskette>
..
<prozess id="3">
<depends-on>2</depends-on>
<max-runtime value="dd">+30</maxruntime>
...
</prozess>
..
</prozesskette>
Die 3.Schwierigkeit besteht darin, das die Prozesse nicht automatisch die Datenbank wiederspiegeln.
Heißt zb.: Prozess 2 enstpricht nicht der Tabelle Prozess 2, sondern Prozess 2 bedeutet zb: 'Mailverkehr' und beinhaltet zB. die Tabellen mit ihren Fremdschlüsseln: User, Role, Mail, Prozesskette,...
Irgendwie sehe ich noch nicht ganz, wie ich das alles am besten und flexibelsten zusammenbekomme, so das die Anwendung skalierbar und die Prozesse administrierbar bleiben.
Ich hoffe, ich hab mich einigermaßen verständlich gemacht.
Ach so, soll laufen mit Spring, Hibernate, MySQL und Tomcat!
Vielleicht hat von euch einer ja sowas schon mal gemacht oder hat Ideen oder kennt ein paar Bücher.
Grüße
Peter
hat jemand von euch vielleicht ein paar Ideen, Bücher o.ä. , wie man von einander abhängende Prozesse in Webanwendungen am besten darstellt, programmiert usw.
Damit meine ich jetzt aber nicht den abgeschlossenen Prozess innerhalb einer Session, wie z.B bei einen Bestelllvorgang sondern eher so:
Es gibt zB. 5 Prozesse in einer Prozesskette, die der User tätigen muss, um an sein "Ziel" zu kommen.
Beispiel:
User loggt sich ein -> startet Prozess 1 -> Prozess 1 fertig -> relevante Informationen in DB -> User loggt sich aus.
User loggt sich ein -> will Prozess 2 starten -> Prozess 2 schaut, ob Prozess 1 fertig -> Prozess 1 fertig -> Prozess 2 wird gestartet ... usw.
User loggt sich ein -> will Prozess 3 starten -> Prozess 3 schaut, ob Prozess 1 fertig -> Prozess 1 fertig -> Prozess 3 wird gestartet ... usw.
....
...
User loggt sich ein -> will Prozess 5 starten -> Prozess 5 schaut, ob Prozess 4 fertig -> Prozess 4 noch nicht fertigt ->!!Hinweis

User loggt sich ein -> will Prozess 4 beenden -> Prozess 4 schaut, ob Prozess 3 fertig -> Prozess 3 fertig -> Prozess 4 wird beendet ... usw.
User loggt sich ein -> will Prozess 5 starten -> Prozess 5 schaut, ob Prozess 4 fertig -> Prozess 4 fertig -> Prozess 5 wird gestartet -> ...Prozesskette ist beendet!
Jeder Prozess muss also schauen, ob der vorhergehende Prozess schon erledigt ist.
Als 1. Schwierigkeit besteht, das es nebenläufige Prozesse gibt. d.h es muss nicht jeder Prozess vom Vorgänger abhängig sein. dh. es kann Prozess 3 vor Prozess 2 gestartet werden , da beide von Prozess 1 abhängen.
User loggt sich ein -> will Prozess 3 starten -> Prozess 3 schaut, ob Prozess 1 fertig -> Prozess 3 wird gestartet ... usw.
Die 2. Schwierigkeit besteht darin, das sich die Prozessabhängigkeiten zB. aufgrund von Gesetzen ändern können oder ganz wegfallen können, d.h man muss flexibel bleiben, ohne ständig nachprogrammieren zu müssen.
Natürlich kann der Prozess 5 schauen, ob zb. in der DB bei Prozess 4 der Status auf 'erledigt' steht, allerdings muss er dazu auch erstmal wissen, das Prozess 4 sein Vorgänger ist.
Aber woher weiß er das?
Meine momentane Idee ist ein xml-file zur Konfiguration einerseits für die Darstellung(der View stellt die Prozessreihenfolge anhand des xml-files dar), andererseits für die Prozesse intern zB:
<prozesskette>
..
<prozess id="3">
<depends-on>2</depends-on>
<max-runtime value="dd">+30</maxruntime>
...
</prozess>
..
</prozesskette>
Die 3.Schwierigkeit besteht darin, das die Prozesse nicht automatisch die Datenbank wiederspiegeln.
Heißt zb.: Prozess 2 enstpricht nicht der Tabelle Prozess 2, sondern Prozess 2 bedeutet zb: 'Mailverkehr' und beinhaltet zB. die Tabellen mit ihren Fremdschlüsseln: User, Role, Mail, Prozesskette,...
Irgendwie sehe ich noch nicht ganz, wie ich das alles am besten und flexibelsten zusammenbekomme, so das die Anwendung skalierbar und die Prozesse administrierbar bleiben.
Ich hoffe, ich hab mich einigermaßen verständlich gemacht.
Ach so, soll laufen mit Spring, Hibernate, MySQL und Tomcat!
Vielleicht hat von euch einer ja sowas schon mal gemacht oder hat Ideen oder kennt ein paar Bücher.
Grüße
Peter