Hallo,
meine Applikation ist über die Jahre / Monate ziemlich groß geworden, wobei sie nicht produktiv ist
Ich habe eine Applikation, die u.a. folgendes abdeckt:
Im ERP hat quasi jeder Mandant seinen eigenen Bereich (Eigene Angebote, Rechnungen, Aufgaben usw.).
Hier spiele ich gerade auch mit dem Gedanken pro Mandant (Kunde) auch ein eigenes Datenbank- Schema zu haben (siehe auch anderer Thread).
Die rotmarkierten Services (Personalsuche, Projektweitergabe, Materialsuche) sind Services, die übergreifend sind.
Also ein Mandant kann Personal bei anderen Mandanten anfragen oder Material von anderen Mandanten ausleihen.
Nun überlege ich aber das Ganze zu trennen. Mir schwebt vor dann eben 4 WebApps zu haben für die oben aufgeführten Services. Wobei das ERP System weiterhin das "führende System" sein soll. Theoretisch könnte man dann die jeweilige Applikation auch Standalone betreiben. Also eigene Weboberfläche für Personalsuche, Projektweitergabe, Materialsuche....
Was ich nun aber nicht ganz verstehe:
Vom ERP System (also mehr oder weniger die "führende Applikation", muss ich natürlich entsprechend auf 2,3,4 (rotmarkiert) zugreifen können.
Aktuell stelle ich mir also vor die Controller - Klassen umzubauen, sodass die Daten aus den verschiedenen Datenbanken kommen.
D.h. ich stelle bei 2,3,4 entsprechende REST - Services zur Verfügung.
Soweit so gut.
Nun aber:
ERP:
ExternalApp Tabelle
Personalsuche
ApiKey Tabelle
Mache ich jetzt einen Webservice Call gegen die Personalsuche - App, gebe ich im Request Header einfach entsprechend den API Key mit und bin somit authorisiert.
2. Wie sieht die Implementierung der Web - GUI aus? Die JSF - Seiten müssen ja dann immer noch in der ERP - Applikation sein, die ich bisher implementiert habe? Die Controller - Klassen greifen dann eben nicht mehr auf die Datenbank vom ERP zu, sondern per REST Webservice.
Ausgenommen sind Adminseiten für die Personalbörse etc., die können dann direkt in 2,3,4 sein.
Ist das so ein korrektes Vorgehen?
meine Applikation ist über die Jahre / Monate ziemlich groß geworden, wobei sie nicht produktiv ist
Ich habe eine Applikation, die u.a. folgendes abdeckt:
- ERP (Rechnungen, Angebote, Aufgabenverwaltung, Materialverwaltung, Reisekostenberechnung, Projektverwaltung, Anfrageverwaltung....)
- Personalsuche
- Projektweitergabe
- Materialsuche weltweit
Im ERP hat quasi jeder Mandant seinen eigenen Bereich (Eigene Angebote, Rechnungen, Aufgaben usw.).
Hier spiele ich gerade auch mit dem Gedanken pro Mandant (Kunde) auch ein eigenes Datenbank- Schema zu haben (siehe auch anderer Thread).
Die rotmarkierten Services (Personalsuche, Projektweitergabe, Materialsuche) sind Services, die übergreifend sind.
Also ein Mandant kann Personal bei anderen Mandanten anfragen oder Material von anderen Mandanten ausleihen.
Nun überlege ich aber das Ganze zu trennen. Mir schwebt vor dann eben 4 WebApps zu haben für die oben aufgeführten Services. Wobei das ERP System weiterhin das "führende System" sein soll. Theoretisch könnte man dann die jeweilige Applikation auch Standalone betreiben. Also eigene Weboberfläche für Personalsuche, Projektweitergabe, Materialsuche....
Was ich nun aber nicht ganz verstehe:
Vom ERP System (also mehr oder weniger die "führende Applikation", muss ich natürlich entsprechend auf 2,3,4 (rotmarkiert) zugreifen können.
Aktuell stelle ich mir also vor die Controller - Klassen umzubauen, sodass die Daten aus den verschiedenen Datenbanken kommen.
D.h. ich stelle bei 2,3,4 entsprechende REST - Services zur Verfügung.
Soweit so gut.
Nun aber:
- Wie sieht der Login zu 2,3,4 aus? Ich habe auf der Seite vom ERP einen Mandanten mit einer ID und nun brauche ich wiederum einen User jeweils in 2,3,4, welcher ich wiederum verwende um einen Webservice Call durchzuführen, sodass die jeweilige App weiß, dass ich es auch bin.
ERP:
ExternalApp Tabelle
- ID
- APIKey (API Key)
- AppType (Personalbörse...)
- MandatoryFK
Personalsuche
ApiKey Tabelle
- ID
- APIKey (API Key)
- CompanyFK
Mache ich jetzt einen Webservice Call gegen die Personalsuche - App, gebe ich im Request Header einfach entsprechend den API Key mit und bin somit authorisiert.
2. Wie sieht die Implementierung der Web - GUI aus? Die JSF - Seiten müssen ja dann immer noch in der ERP - Applikation sein, die ich bisher implementiert habe? Die Controller - Klassen greifen dann eben nicht mehr auf die Datenbank vom ERP zu, sondern per REST Webservice.
Ausgenommen sind Adminseiten für die Personalbörse etc., die können dann direkt in 2,3,4 sein.
Ist das so ein korrektes Vorgehen?