We moeten een nieuwe applicatie gaan ontwikkelen die sterk integreert met een bestaande (door onszelf ontwikkelde) applicatie.
Nu vraag ik me af of we deze nieuwe applicatie in bestaande solution moeten bouwen, of dat we een nieuwe solution moeten opzetten. Ik zit me te bedenken wat de voor- en nadelen zijn.
Alles in 1 solution
Voordelen
+ Direct beschikking tot datamodel en businesslogica van bestaande applicatie
+ Wijzigingen in gemeenschappelijke zaken hoeft maar 1 keer doorgevoerd te worden
+ Hergebruik van code is eenvoudig
Nadelen
- Uitrol naar productie moet gecoördineerd gebeuren
Twee aparte solutions
Voordelen
+ Applicaties kunnen afzonderlijk van elkaar naar productie uitgerold worden. (geldt echter niet in alle gevallen).
Nadelen
- Applicaties moeten data uitwisselen middels b.v. webservices of andere integratiemanieren.
- Wijzigingen in gemeenschappelijke delen moeten moeten in meer dan 1 applicatie doorgevoerd worden
- Hergebruik van code kan lastiger zijn, en moet op meerdere plekken onderhouden worden.
Criteria om voor integratie of afzonderlijke solutions of te kiezen:
Hebben de applicaties een eigen datamodel of is er een grote gemeenschappelijke basis?
Hebben de applicaties verschillende eisen qua beschikbaarheid?
Hebben de applicaties verschillende eisen qua beveiliging?
Worden de applicaties op verschillende locaties gehost?
Wordt er verwacht dat de er nog meer applicaties aangesloten gaan worden op dezelfde interface/hetzelfde stuk code?
Zijn er nog meer na- en voordelen en criteria?
Op basis van bovenstaande lijst lijkt me dat je in eerste instantie altijd kiest voor integratie.
Nu vraag ik me af of we deze nieuwe applicatie in bestaande solution moeten bouwen, of dat we een nieuwe solution moeten opzetten. Ik zit me te bedenken wat de voor- en nadelen zijn.
Alles in 1 solution
Voordelen
+ Direct beschikking tot datamodel en businesslogica van bestaande applicatie
+ Wijzigingen in gemeenschappelijke zaken hoeft maar 1 keer doorgevoerd te worden
+ Hergebruik van code is eenvoudig
Nadelen
- Uitrol naar productie moet gecoördineerd gebeuren
Twee aparte solutions
Voordelen
+ Applicaties kunnen afzonderlijk van elkaar naar productie uitgerold worden. (geldt echter niet in alle gevallen).
Nadelen
- Applicaties moeten data uitwisselen middels b.v. webservices of andere integratiemanieren.
- Wijzigingen in gemeenschappelijke delen moeten moeten in meer dan 1 applicatie doorgevoerd worden
- Hergebruik van code kan lastiger zijn, en moet op meerdere plekken onderhouden worden.
Criteria om voor integratie of afzonderlijke solutions of te kiezen:
Hebben de applicaties een eigen datamodel of is er een grote gemeenschappelijke basis?
Hebben de applicaties verschillende eisen qua beschikbaarheid?
Hebben de applicaties verschillende eisen qua beveiliging?
Worden de applicaties op verschillende locaties gehost?
Wordt er verwacht dat de er nog meer applicaties aangesloten gaan worden op dezelfde interface/hetzelfde stuk code?
Zijn er nog meer na- en voordelen en criteria?
Op basis van bovenstaande lijst lijkt me dat je in eerste instantie altijd kiest voor integratie.