venerdì 28 febbraio 2014

Akka Attori vs Java EJB da un alto livello di concorrenza Prospettiva

da Jan Stenberg

Quando si confrontano i principi architettonici e codifica stili di Akka Attori e Java EE 7 Enterprise JavaBeans , session bean particolare apolidi e JMS bean a messaggi, ci sono punti in comune, ad esempio tutti e tre i tipi sono in grado sia di scalabilità verticale e orizzontale, e alcune differenze, ad esempio, in deroga e la gestione delle transazioni, il dottor Gerald Loeffler si conclude in un recente discorso introduttivo per spiegare e confrontando i tre approcci da una visualizzazione concorrenza di alto livello.
Per il suo discorso Gerald, un Integration Architect senior, definisce ad alto livello di concorrenza come un paradigma di programmazione in cui la concorrenza viene gestita a livello di componenti e si astrae via il più possibile, soprattutto nel trattare i singoli fili o singole attività e presentare quelle a filo piscine.
He strutture suo discorso intorno all'idea del modello oggetti Active Design assegnato , stretta relazione al modello di design classico ma con lo stesso tipo di idee. Gli esempi sono in Scala, ma crede che il discorso è altrettanto rilevante per Java.
Un semplice modello mentale dal punto di vista oggetti di Active è per Gerald che:
  • Akka Attori ricevono messaggi come oggetti arbitrari, accodate in una cassetta postale. Essi sono esplicitamente gestiti e indirizzati singolarmente tramite un'interfaccia comune.
  • Beans Stateless Session espongono i metodi asincroni eseguiti in un server di applicazioni con ciclo di vita controllata dal contenitore.
  • JMS Message-Driven Beans ricevere ed elaborare messaggi di tipi predefiniti da una coda JMS / topic. Sono gestita dal contenitore nello stesso modo come bean di sessione.
Un comportamento comune è che tutti e tre i tipi di eseguire in modo asincrono il thread, in genere da una piscina, con accesso serializzato alla stessa istanza.
Gerald utilizza tre modelli per il confronto con esempi di codice per tutti e tre i tipi:
  • Local One-Way asincrona Richiesta dove una richiesta asincrona viene inviato da un richiedente a un risponditore, che non risponderà.
  • Richiesta asincrona Out-of-Context Request cui un richiedente invia un messaggio a un risponditore che manda indietro un messaggio di ritorno, e quando ha ricevuto il richiedente deve ristabilire il contesto.
  • Richiesta asincrona In-Context Request dove il contesto in qualche modo è stato conservato dal richiedente quando viene ricevuto il messaggio di ritorno.
Infine, Gerald si conclude con un breve riassunto dei punti in comune, ad esempio tutti e tre gli approcci utilizza pool di thread e sono in grado sia di scalabilità verticale e orizzontale, e alcune importanti differenze, ad esempio in gestione delle eccezioni, le strategie di supervisore e la gestione delle transazioni.

Akka è un toolkit open source e runtime per la creazione di applicazioni concorrenti e event-driven sulla JVM. Enterprise Java Beans , EJB, è parte del più ampio specifica Java EE, attualmente Java EE 7.

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.