Logisk centraliseringsmönster

Logikcentralisering är ett designmönster , applicerat inom det tjänsteorienterade designparadigmet , vars tillämpning syftar till att öka återanvändbarhetspotentialen för agnostisk logik genom att säkerställa att tjänster inte innehåller redundant agnostisk logik och att all återanvändbar logik endast bör representeras av en tjänst som har det mest lämpliga funktionella sammanhanget.

Logisk grund

I takt med att fler och fler tjänster utvecklas finns det en ständig risk att tjänster med redundant funktionalitet kan skapas. Även om tillämpningen av för tjänstenormalisering hjälper till att eliminera denna redundans, garanterar dock inte att bara ha en uppsättning normaliserade tjänster i sig att de skulle återanvändas som ursprungligen tänkt. När det gäller agnostiska tjänster kan detta problem kraftigt begränsa den faktiska återanvändningen av sådana tjänster eftersom ett projektteam (Team A) kan besluta att inte återanvända en befintlig tjänst, t.ex. kräver det data som motsvarar ett komplext schema och istället utvecklar en lättviktstjänst som bara gör jobbet. Som ett resultat av detta finns nu samma återanvändbara logik med två olika tjänster, medan den befintliga tjänsten borde ha utvecklats även om den inte innehöll den mest lämpliga smaken av funktionaliteten. Denna effekt multipliceras när ett annat team (Team B) som hoppas kunna hitta funktionaliteten inom den befintliga tjänsten, eftersom gränsen för tjänsten täcker den nödvändiga funktionaliteten, inte hittar den och istället börjar använda den nyskapade tjänsten av Team A. Följaktligen , den faktiska återanvändbarheten av den ursprungliga agnostiska tjänsten sjunker och skapar samtidigt förvaltningsproblem när det gäller underhållet av de ursprungliga och nya tjänsterna eftersom återanvändbar logik nu existerar på ett decentraliserat sätt.

För att säkerställa att en viss typ av återanvändbar lösningslogik endast omsluts av en specifik agnostisk tjänst, dikterar designmönstret för Logic Centralization att designstandarder måste upprättas som tvingar fram korrekt användning av agnostiska tjänster. Detta ger tjänstekonsumenterna förtroende för att de får tillgång till funktionaliteten genom rätt tjänst.

Användande

Diagram A

Diagram A Istället för att använda den befintliga röda tjänsten tillgriper projektteam 1 att skapa en ny redundant röd tjänst eftersom det var lätt att utveckla en ny tjänst som var mer strömlinjeformad med deras kortsiktiga krav.
Diagram A

Diagram A I närvaro av en företagsomfattande designstandard är tjänstekonsumenternas tillgång till den redundanta röda tjänsten som skapats av Project Team 2 förbjuden, och istället tvingas de använda den befintliga röda tjänsten som skapats av Project Team 1. På liknande sätt har Project Team 3 är förbjudet att skapa någon ny tjänst vars funktionalitet faller inom den befintliga röda tjänsten, som ett resultat av detta använder/utvecklar Project Team 3 den befintliga röda tjänsten skapad av Project Team 1.

Tillämpningen av detta designmönster kräver att man sätter upp "officiella slutpunkter" (tjänster) som representerar en viss typ av funktionalitet, dvs. den funktionalitet som faller under en viss typ av funktionell domän. Tillgång till andra tjänster, som kan erbjuda samma funktionalitet, är förbjuden och endast en tjänst görs tillgänglig för en viss typ av funktionalitet. Genom att begränsa tillgången till andra tjänster minskar förvaltningsbördan eftersom logiken nu är begränsad till en enda tjänst. Närhelst ny funktionalitet krävs, som för närvarande inte erbjuds av någon av de befintliga tjänsterna, måste först de funktionella sammanhangen för de befintliga tjänsterna kontrolleras och om den nya funktionaliteten faller under gränsen för en redan befintlig tjänst, bör det läggs till den tjänsten. Detta kräver en företagsomfattande standard som tvingar fram centraliseringen av logik. För att säkerställa att tjänsteutvecklare är medvetna om tjänstens gränser, kan Metadata Centralization designmönster tillämpas. Detta hjälper till att skapa ett centraliserat arkiv med information om de funktionella sammanhangen och den funktionalitet som tillhandahålls av tjänsterna. Designmönstret för logisk centralisering, när det tillämpas tillsammans med designmönstret för kontraktscentralisering, utgör det officiella slutpunktsdesignmönstret. Tillämpningen av designmönstret för logisk centralisering hjälper ytterligare till med tillämpningen av designprinciperna för tjänstens återanvändbarhet och tjänstens sammansättning genom att säkerställa att varje tjänst innehåller rätt typ av återanvändbar funktionalitet så att den kan sammanställas upprepade gånger.

Överväganden

För att kunna tillämpa detta designmönster måste det säkerställas att alla projektteam i hela företaget förstår och samtycker till korrekt användning av agnostiska tjänster och inte skapar några nya tjänster som endast tjänar de kortsiktiga kraven i ett projekt. Detta kan också påverka projektets leveranstider eftersom användningen av befintliga agnostiska tjänster (och att utveckla dem enligt riktlinjerna i detta mönster) skulle kräva ökad tid och ansträngning. Det beror på att tjänsterna i det aktuella projektet kanske inte kan använda sig av de agnostiska tjänsterna förrän den egna designen ändras.

externa länkar