2013-04-09 8 views
6

Ho letto che i contenitori incorporati sono peggiori dei contenitori gestiti, che sono a loro volta meno affidabili dei contenitori remoti.Qual è la differenza tra un contenitore incorporato e un contenitore gestito in Java EE 6?

Arquillian consente di scrivere test "reali", ma non conosco la differenza tra questi tipi di contenitori, principalmente embedded vs managed.

Se utilizzo Jboss in Eclipse, si tratta di un contenitore incorporato o gestito?

Se avvio Jboss dalla riga di comando, senza eclissi, è incorporato o gestito o remoto?

Per i punti bonus, in che modo la parola contenitore "standalone" si adatta a questi termini?

+3

Questo potrebbe aiutarti. [Varietà di contenitori] (http://docs.jboss.org/arquillian/reference/1.0.0.Alpha4/en-US/html/containers.html) – Max

risposta

2

La documentazione Target container varieties legati da Max forniscono lo sfondo concettuale e terminologica:

Arquillian riconosce tre stili di interazione contenitore:

  1. Un contenitore remoto risiede in una JVM separata dal test corridore; Arquillian si lega al contenitore per distribuire e annullare la distribuzione dell'archivio prova e invoca test tramite un protocollo remoto (tipicamente HTTP)

  2. Un contenitore incorporato risiede nella stessa JVM del test runner; ciclo di vita gestito da Arquillian; prove vengono eseguite attraverso un locale protocollo per container senza componente web (es bean incorporato) e tramite un protocollo remoto per contenitori che hanno una componente web (ad esempio, incorporato Java EE)

  3. Un contenitore gestito è la stessa come un contenitore a distanza, ma in Inoltre, il suo ciclo di vita (avvio/arresto) è gestito da Arquillian ed è gestito come un processo separato

Ora cercherò di rispondi alle tue domande

Ho letto che i contenitori incorporati sono peggio dei contenitori gestiti , che sono a loro volta meno affidabili dei contenitori remoti.

Ogni tipo di contenitore avrà il suo caso d'uso appropriato. Il "peggio" o "meglio" dipende da ciò che stai cercando di fare.

Ad esempio, per la maggior parte del tempo sto scrivendo del codice sul mio contenitore in esecuzione, quindi preferisco testare con un contenitore remoto, poiché consente di risparmiare un sacco di tempo di avvio/arresto.

Arquillian consente di scrivere i test 'reali', ma non so la differenza tra questi tipi di contenitori, soprattutto la incorporato vs gestito.

La differenza è spiegata nella documentazione collegata sopra.

Se utilizzo Jboss in Eclipse, è un contenitore incorporato o gestito?

È remoto, perché Arquillian non ha alcun controllo su di esso. È un processo totalmente separato dal ciclo di vita di Arquillian.

Se avvio Jboss dalla riga di comando, senza eclissi, è quello incorporato o gestito o remoto?

Ancora un contenitore remoto. Eclipse avvia praticamente JBoss nello stesso modo in cui lo si usa usando la riga di comando, e Arquillian non ha alcun controllo su di esso.

per i punti bonus, come fa la parola contenitore 'standalone' in sintonia con questi termini?

Standalone significa che il server non fa parte del controllo di gestione centralizzato, il che significa che eventuali modifiche apportate a un nodo non sono coordinate ad altri nodi.

Ad esempio, se si crea una fonte di dati su un nodo autonomo 1, non sarà replicato al nodo 2.

è per questo che una configurazione di dominio è molto preferibile in quanto sarete gestito l'intero cluster in una modalità centralizzata (riferimento: Operating modes).