Corretto Passa in architettura orientata ai servizi

1

Non sono del tutto sicuro di come esprimere la mia domanda, quindi darò un esempio.

Supponiamo che tu lavori sul software di elaborazione dei pagamenti. Hai implementato l'architettura Service Oriented e hai 3 fasi principali di un evento

  1. Intake, dove ricevi un nuovo pagamento
  2. Verifica, dove verifichi.
  3. Pagamento, in cui stabilisci i conti.

Quindi, in questo scenario hai 3 servizi (processore) un processore di assunzione, un processore di verifica e un processore di pagamento.

La mia domanda è, il cui compito è quello di passare l'evento dal processore di assunzione, al processore di verifica. Come fa il processore di verifica a sapere quando ottenere l'evento dal processore di aspirazione. Il processore di assunzione "dà" l'evento al processore di verifica, o il processore di verifica guarda l'evento di assunzione e dice hey ha fatto questo, sto prendendo ora?

    
posta DidIReallyWriteThat 20.04.2016 - 19:42
fonte

1 risposta

1

Non ci sono molte informazioni fornite nella domanda, come le responsabilità delle varie fasi, in termini di contratto o artefatti / eventi mantenuti.

Tuttavia, hai due opzioni, il polling e la notifica.

Il polling è inefficiente alle alte frequenze, ma a volte è una buona opzione se hai bisogno / vuoi fare cose su base batch, per esempio ogni giorno o ogni settimana.

La notifica invia un messaggio dal servizio 1 al servizio 2 immediatamente dopo la modifica. Il grado di accoppiamento tra il servizio 1 e il servizio 2 è interessante e può variare.

Puoi fare in modo che il servizio 1 conosca il servizio 2, che è un accoppiamento relativamente stretto, perché non è necessariamente responsabilità del servizio 1 sapere quale servizio 2 ha bisogno.

Puoi avere il servizio 2 a conoscenza del servizio 1, nel quale è richiesta una sottoscrizione per le modifiche (di tipo e natura certi), che è un accoppiamento più lento, perché il servizio 2 è a valle del servizio 1 e quindi è già a conoscenza di qualche dipendenza .

Se utilizzi un bus messaggi intermedio, puoi disaccoppiarti ulteriormente poiché il servizio 1 e il servizio 2 conoscono solo eventi e tipi di eventi, una pubblicazione e l'altra sottoscrizione, piuttosto che conoscersi l'un l'altro.

Quale è il più appropriato per te dipende dalle informazioni non presentate nella domanda, come è una valutazione se quelli sono i servizi giusti o meno.

Quando guardo a quali servizi avere, sto pensando a considerazioni quali il servizio è l'autorità di registrazione per questa o quella informazione (o calcolo o decisione). Come vengono realizzati i processi a lungo termine? Di solito con un servizio responsabile per lo stato dei processi a lunga esecuzione e altri servizi che interagiscono intorno alle modifiche allo stato di funzionamento prolungato (facendo qualcosa sul cambio di stato e quindi aggiornando lo stato, che fa scattare qualcos'altro).

Ma prima ancora di provare a definire i servizi, mi piace capire il contesto aziendale dell'ecosistema, che va ai ruoli che interagiscono esternamente (insieme alle loro responsabilità) delle entità di business & clienti coinvolti.

    
risposta data 20.04.2016 - 20:27
fonte

Leggi altre domande sui tag