CORA applicatielaag en services
Onderwerpen die aan bod komen:
- Inleiding
- Hoe beschrijft CORA de applicatielaag?
- Hoe zijn applicaties opgebouwd?
- Hiërarchie in applicatieservices
- Interne elementen van applicaties
- Applicatie interfaces
- Patronen voor cloudservices
Inleiding
Op deze pagina leggen wij uit waarom we in CORA referentiearchitectuur de techniek van applicaties achterwege laten en in CORA kunnen volstaan met het opnemen van slechts 3 concept-types in het kennismodel, zoals in onderstaande figuur is te zien.
De implementatie door woningcorporaties vraagt echter een verdiepingsslag waarbij keuzes zijn te maken hoe die dynamiek in elkaar steekt. CORA schrijft niet voor, maar CORA legt wel uit. Op deze pagina gaan we daar dus ook inhoudelijk op in.
Hoe beschrijft CORA de applicatielaag?
CORA beschrijft de applicatieservices die het proces ondersteunen. Een applicatieservice geeft het externe gedrag van een applicatie weer. Dat gedrag wordt geleverd door één of meerdere interne applicatiecomponenten en wordt beschikbaar gesteld door duidelijk vastgestelde interfaces. CORA beschrijft niet de applicatiecomponenten zelf, omdat die specifiek zijn voor de opbouw van de applicatie. Een applicatieservice geeft de mogelijkheid om de functionaliteit expliciet te beschrijven die een applicatie aan de omgeving aanbiedt.
Het concept van applicatieservices past in een service-georiënteerde architectuur. De interface die een applicatie aan een gebruiker aanbiedt kan ook als een applicatieservice worden beschreven.
Bedrijfsservices en applicatieservices
Een product/dienst kan gezien worden als een samenstelling van bedrijfsservices, applicatieservices en technische services en –objecten, dat als geheel wordt geleverd aan interne of externe klanten. Voorbeelden van technologieservices zijn platforms en technologieën, die worden niet in CORA uitgewerkt.
Hoe zijn applicaties opgebouwd?
Onderstaand plaatje geeft de opbouw van applicaties weer in componenten. Applicatieservices ondersteunen de processen van corporaties. Applicatieservices worden gerealiseerd door gedragselementen binnen applicaties en maken gebruik van gegevensobjecten. Om de applicatieservice in een proces te gebruiken zijn interfaces toegewezen aan de applicatieservice. De applicatie-interfaces bestaan uit interne actieve structuurelementen van de applicatie, die op hun beurt weer zijn toegewezen aan de gedragselementen. In CORA zijn de interne elementen van applicaties niet opgenomen omdat ze specifiek zijn voor de opbouw van applicaties. Een applicatiegebeurtenis beschrijft een statuswijziging binnen de applicatie.
Bronnen:
https://pubs.opengroup.org/architecture/archimate3-doc/chap09.html
Wat nemen wij op in CORA?
CORA beschrijft de applicatieservices en daarmee het “gedrag” van applicaties voor de ondersteuning van het proces. CORA modelleert niet de interne applicatiecomponenten die de service leveren: hoe het gedrag door applicaties wordt ondersteund. De reden is dat de clustering van applicatiecomponenten afhankelijk is van de opbouw van de applicatie en daarmee niet als referentie kan worden gezien. Die opbouw is leveranciers-specifiek.
In de markt zien we dat er toch vaak een logische clustering van applicatieservices plaatsvindt voor de ondersteuning van processen en de levering van diensten door bedrijfsfuncties. Voorbeelden hiervan zijn CRM-systemen, planningssoftware, financiële adminstraties e.d.
Voor het aanbieden en matchen van corporatiewoningen worden bijvoorbeeld gemeenschappelijke woonruimteverdelings-systemen gebruikt, die een specifieke set applicatieservices leveren voor de ondersteuning van het proces.
Die logische clustering van applicatieservices is relevant voor de integratiebehoefte:
- als applicatieservices in één applicatie zijn geclusterd is integratie tussen die services binnen de applicatie geregeld.
- als applicatieservices deel uitmaken van verschillende applicaties en uitwisseling van gegevens tussen die applicatieservices nodig is voor de ondersteuning van het proces, dan zijn integraties(koppelingen) nodig. Dit om te voorkomen dat gegevens handmatig tussen de bedrijfsservices moeten worden uitgewisseld.
Hiërarchie in applicatieservices
Applicatieservices zijn te clusteren tot verzamelde services die processen ondersteunen: meerdere gedragselementen van applicaties kunnen een service realiseren. Er is dus hiërarchie mogelijk in de opbouw van applicatieservices. Een voorbeeld is het melden van een reparatieverzoek door een externe klant: Naast de diagnose wordt de oplossingsrichting bepaald, de uitvoerende en de planning.
Applicatieservices tussen applicaties
Er bestaan ook services binnen de applicatielaag: dat zijn functies die door een applicatie aan een andere applicatie beschikbaar worden gesteld. Die services ondersteunen dus niet direct het proces, maar andere applicatiecomponenten.
Interne elementen van applicaties
Deze elementen maken geen onderdeel uit van de CORA referentiearchitectuur, maar kunnen helpen bij het begrip van de opbouw van applicaties.
Interne gedragselementen van applicaties
Het gedrag van applicaties in de applicatielaag wordt op een vergelijkbare manier beschreven als gedrag in de bedrijfslaag. Net als in de bedrijfslaag is er een verschil tussen het externe gedrag van applicaties in de vorm van applicatieservices en het interne gedrag: de applicatiefuncties die de services realiseren. Net als een proces in de bedrijfslaag geeft een applicatieproces de ordening van applicatiegedrag weer in de applicatielaag. Een applicatiesamenwerking is het gedrag van de interactie van twee of meer applicatiecomponenten.
Interne structuurelementen van applicaties
Het belangrijkste interne actieve structuurelement van een applicatie is de applicatiecomponent. Deze component wordt gebruikt om ieder structureel element van de applicatie te beschrijven, niet alleen (herbruikbare) softwarecomponenten die deel uitmaken van één of meerdere applicaties, maar ook complete software applicaties, sub-applicaties, of informatiesystemen. Ook de relaties tussen applicatiecomponenten vormen een essentieel onderdeel van de applicatie-architectuur.
Integraal beeld van applicatie
Door de figuren waarin de componenten waaruit een applicatie is opgebouwd én de figuren waarin interne gedrags- en structuurelementen worden uitgelegd te integreren, ontstaat een totaalbeeld van een applicatie:
Applicatie interfaces
Een applicatie interface is het kanaal waardoor de services van een applicatiecomponent benaderd kunnen worden (beschikbaar worden gesteld). Een applicatie interface definieert de operaties en gebeurtenissen die door de component worden geleverd en worden dus gebruikt om de functionaliteit van een component te beschrijven. Een applicatie interface kan zowel worden gebruikt om applicatie naar applicatie interfaces te beschrijven, als applicatie naar bedrijfsinterfaces of gebruikersinterfaces.
Patronen voor cloudservices
Onderstaande figuur toont de mate waarin cloudservices van applicaties geleverd kunnen worden.
