Cercar en aquest blog

15/7/10

Disseny: Una aproximació a la capa de negoci

Un cop fet l’ anàlisi funcional de qualsevol aplicació cal fer el disseny d’aquesta de manera que s’inclogui o encaixi dins l’arquitectura del conjunt d’aplicacions que formen l’entramat de sistemes d’ informació de l’empresa.

Per tant, previament hem de disposar d’una arquitectura que ens permeti encaixar qualsevol aplicació nova que volem desenvolupar.

Al meu parer, aquesta arquitectura ha de donar la posibilitat de que la seva implementació ha de ser independent de la seva distribució, i per tant de com s’accedeix a ella per part de l’usuari en podem parlar més endavant. Per mi una aplicació dins el món dels serveis no és res més que un contracte de funcionalitats (interface) i la implementació d’aquestes.

Quan implementem, podem veure que definim entitats noves i pot ser que en reutilitzem algunes altres.

“Les entitats són classes persistents, on dues del mateix tipus es diferencien per un identificador únic”

D’aquestes obtenim dos requisits indispensables dins el nostre sistema. Una és la operativa,, amb aquestes entitats hem de fer alguna cosa, i l’altre és l’enmagatzament de la seva informació, persitència de les entitats. Pel que fa la part operativa, definirem un contracte amb totes les operacions que podem dur a terme amb una entitat i els seus agregats (entitats dèbils). I pel que fa a la persitència, cal buscar una arquitectura que ens permeti fer operacions de persitència independenment de lloc (BD, Fitxer, servei, etc) on s’acabi enmagatzeman. El patró de disseny triat és el “Repository Pattern”.

Un cop resumit més o menys una part del disseny, la part que englobaria tota la capa de negoci, especifiquem-ho una mica més.

Per mi la capa de negoci d’un sistema empresarial ha de ser distribuible, de diferents maneres, flexible i productiva (fàcilment escalable). Tampoc ha de ser cap problema l’augment de nivells (servidors) on aquesta es troba allotjada.

CAPA DE NEGOCI



Bé amb la imatge anterior podem veure com veig jo la capa de negoci d’un sistema empresarial.

Capa Aplicació: Aqui es defineixen el contractes de les diferents aplicacions i s’implementen, Per exemple si tenim una aplicació que gestiona l’administració de pacients, una altre que gestiona l’assistència de les hospitalitzacions i una altre la de les urgències, en aquesta capa definiriem els contractes de les operacions o funcions extretes dels anàlisis funcionals duts a terme pels analístes. També implementariem aquests contractes. La implementació de les funcionas es basarà en orquestrar serveis de la capa de domini.

Capa de domini: La més important. El patró escollit és el “DDD-Domain Driven Design”. Crec que és una bona opció. En aquesta capa, seguint el patró decrit, es defineixen les entitats, es defineixen i s’implementen els contractes d’operaions de cada entitat i els seus agregats, i es defineixen les operacions del repositoris de cada entitat, però no s’implementen.

Capa de Infrastructura: Aqui és on implementem els repositoris de cada entitat. Aquest són els que acaben fent operacions de persistència a la BD, fitxer , Servei.

Evidenment això no és tot, cal practicar a fons la POO en la implementació, abstracció, herència, especilització, generalitació, etc. D’aquesta pràctica en sortiran els “cores” de cada capa.