Application Logic - quale delle due definizioni è corretta?

4

Questa è la mia comprensione del Layer di applicazione :

• Implementa Logica dell'applicazione

• questo livello contiene Servizi applicativi , che vengono utilizzati da utenti esterni per parlare con la tua applicazione

I servizi di applicazione sono operazioni a grana grossa e orchestrate che si associano direttamente a use cases (da cui anche il termine Workflow Services )

1)
Da:

Application Logic is mostly workflow logic. It is the application specific coordination of domain and infrastructure components according to the requirements of that particular application.

Da:

Let's start a company, shall we? Sapient Grey will be primarily a think tank, but with an in-house development group with the capabilities to make the visions of the core committee a reality. Our corporate motto, "Sapient Grey is People..." will be burnished in giant brazen letters alongside a customized version of Rodin's famous sculpture "The Thinker", all of which will adorn the east-facing side of our brand new ten story red granite office building.... Oh, wait. We don't have an office building yet. Okay then, so we'll hire an architect to design our office building, being sure to include a private elevator and an elaborate zen-style atrium or courtyard in the center. In the meantime, while the building is being designed and constructed, you and I and our other elite colleagues will fly ourselves to Tahiti to brainstorm Sapient Grey's visions, goals, agenda, and lay out a detailed business plan.

Our architect is creating detailed blueprints for the office building, figuring out how the plumbing will need to be laid out, how the electrical systems will be segregated and tied together, how the interoffice communication system will be organized, and how we will implement security at all levels. The systems and designs that our building architect is handling is a precise analogy to what "Application Logic" is within a web application. How security is implemented, how we will manage and access state and persistence, how we will handle storage and retrieval of data....this is application logic. Like our office building, which when complete could house and accommodate anything from an elite night club to an investment firm, the application logic is independent of the actual business logic that executes within it.

a) Le citazioni di cui sopra sono due diverse definizioni del termine Logica dell'applicazione e come tale sembra che stiano usando lo stesso termine (es. Logica dell'applicazione ) a descrivere due concetti diversi. Quindi, solo la prima definizione descrive la logica contenuta in Livello applicazione , mentre la seconda definizione descrive un diverso tipo di logica?

b) Se entrambe le definizioni descrivono la logica in Livello applicazione , allora questo non significherebbe che Livello applicazione svolge due compiti: orchestrare le operazioni che mappano direttamente a < em> use cases e l'esecuzione di logiche non correlate al business (come sicurezza, memorizzazione nella cache, ecc.)

    
posta user437291 26.12.2012 - 19:53
fonte

1 risposta

4

Sono quello che ha pubblicato l'articolo nella prima citazione e devo ammettere che non ero abbastanza chiaro in quella "definizione" della logica dell'applicazione. Quando ho detto "principalmente", avrei dovuto dire "a volte".

La logica dell'applicazione (sperabilmente concentrata in un livello di applicazione e non sparsi nella BBOM) è una logica specifica per alcune applicazioni. È fondamentalmente diverso da Logica di dominio e Logica dell'infrastruttura in termini di target e riutilizzabilità: la logica di dominio è i problemi di risoluzione logica nel dominio di interesse e dovrebbe essere totalmente riutilizzabile in applicazioni che affrontano lo stesso contesto di dominio ma che espongono funzionalità diverse. La logica dell'infrastruttura riguarda le capacità tecniche generiche che dovrebbero essere riusabili in qualsiasi applicazione dal qualsiasi dominio .

Detto questo, la logica dell'applicazione può essere interamente concentrata in alcuni servizi che espongono un'interfaccia a grana grossa orientata alla funzionalità, in modo procedurale se la logica è abbastanza semplice (simile allo Script di transazione di Fowler modello, sebbene l'obiettivo di questo modello sia l'organizzazione della logica di dominio, che può essere estesa anche alla logica dell'applicazione).

D'altra parte, se la logica dell'applicazione ha un buon grado di complessità (come complicati flussi dinamici in stile wizard o la necessità di limitare l'accesso degli utenti a determinati sottoinsiemi di logica di dominio e funzione dati di complicate combinazioni di permessi assegnati a vari ruoli utente) vale la pena costruire un modello a oggetti dei concetti specifici dell'applicazione. Questo modello di oggetti può sedersi dietro una facciata a grana grossa orientata alla funzionalità (servizio logico) ma la logica dell'applicazione non è più solo l'orchestrazione fornita dal servizio orientato alla funzione, ma anche il comportamento nel modello a oggetti dietro di esso.

    
risposta data 28.12.2012 - 07:39
fonte