JBoss in Action capitolo 2

2.1 Examing the JBoss Application Server architecture

JBoss AS è un applicazione fatta da diversi componenti che implementano ognuna una funzione di J2EE. Fin dalle prime versioni tutto girava attorno al JMX kernel e tutti i servizi venivano attaccati a questo usando gli MBeans. Dalla versione 4.0.3 si è passati al microkernel questo permetteva l'abilitazione di nuovi servizi usando POJOs piuttosto che gli MBeans. Dalla versione 5.0 viene fatto un ulteriore passo il microcontainer diviene un componente visibile dell'archiettura.

2.1.1 Understandig the microcontainer

Il JBoss microcontainer è un injection framework, simile a Spring, con cui si possono compiere i seguenti task:

  • specificare oggetti da istanziare
  • fornire parametri al costruttore quando si istanzia un oggetto
  • elencare i valori delle proprietà da settare
  • specificare le dipendenze tra gli oggetti

Nelle versioni precedenti tutto era basato al JMX Kernel adesso come si vede in figura 2.1 pag 30 vi sono ancora alcuni servizi che si appoggiano sul JMX Kernel (che a sua volta si appoggia al microntainer) mentre altri sono direttamente sul microcontainer. Questo porta a due vantaggi:

  1. Maggiore leggerezza perchè si può anche non supportare il JMX
  2. I servizi possono essere deployati anche in un ambiente diverso da quello di JBoss, altri container

Non tutti i servizi sono stati portati sul microntainer così JMX svolge ancora un ruolo fondamentale nell'architettura.
Nel futuro JBoss avrà un architettura come quella in figura 2.2 con tutti i servizi appoggiati al microntainer

UNDERSTANDING THE BEANS CONFIGURATION FILE

Per configurare i bean usare i file nella directory server/xxx/conf per configurare il microcontainer. La maggior parte dei nomi dei file di configurazione per i bean seguono la sintassi *-jboss-beans.xml . Il file di configurazione primario per jboss però non segue questa sintassi il nome è profile.xml nella mia installazione si trovava nella dir conf/bootstrap

<deployment xmlns="urn:jboss:bean-deployer:2.0">
 ...
                                  B
 <bean name="ProfileService"
                                                          C
      class="org.jboss.system.server.profileservice.basic.MetaDataAwareProfileService">
  <constructor>
                                           D
   <parameter>...</parameter>
  </constructor>
                                            E
    <property name="profileRoot">${jboss.server.home.dir}</property>
  ...
 </bean>
...
 <bean name="VFSDeployerScanner" class="...">
  <property name="profileService"><inject bean="ProfileService"/>
  </property>
 
  <property name="URIList">
   <list elementClass="java.net.URI">
    <value>${jboss.server.home.url}deployers/</value>
   </list>
  </property>
 </bean>
 ...
</deployment>

Grazie al tag bean name si possono dichiarare più bean nello stesso file. Con la proprietà class si specifica quale classe utilizza quel bean. Con il tag <constructor> si possono iniettare i parametri del costruttore per il bean. Con il <property name si possono invece modificare i valori delle proprietà del bean.
Con <inject bean=…> si può indicare si può indicare che un bean si riferisce a un altro.

EXAMINING THE MICROCONTAINER CONFIGURATION FILE

Il bean principale per la configurazione del application server è server/xxx/conf/bootstrap.xml questo contiene una serie di file di configurazioni per POJOs o JavaBeans che forniscono i seguenti servizi:

  • The profile service - fornisce informazioni per il caricamento dei servizi, per esempio Strarted in 30,00 s
  • The JMX Kernel - implementa il kernel jmx
  • Diversi bean collegati allo sviluppatore. Incluso il Main Deployer dove si amministra tutti i deployers.

2.1.2 Understanding JMX

Le specifiche JMX definite da JSR 3 riguardano l'amministrazione di JavaBeans o MBeans.
Per creare un MBeans bisogna definire una classe o un interfaccia che implementi l'interfaccia MBeans , in particolare la nuova interfaccia creata deve chiamarsi XxxMBean o nel caso della classe Xxx, quindi la classe può prendere un nome qualsiasi. Quando l'istanza viene creata può essere registrata con il nome dal server MBean.
Dopo che è registrata, qualunque JMX client può accedere all'MBean attraverso il nome con l' MBean server. Inoltre il client JMX può richiedere informazioni sull'MBean e può fare richieste all'MBean, ma solo attraverso l'MBean server. Da notare che il clien non accede mai all'MBean direttamente ma lo fa parlando con il server JMX che poi comunica con l' MBean figura 2.3.
Nell'application server, i servizi di deployer istanziano l'MBean basandosi sul contenuto del jboss-services.xml insieme ad altri file *-services.xml che appaiono nella dir di deploy e registrano gli MBean con l'MBean Server presente nell'application server.

UNDERSTANDING MBEAN NAMES

Abbiamo detto che gli MBean funzionano attraverso i nomi, ma il nome non è una semplice stringa di testo. È formata da:

  • un dominio simile a quello che java usa per i package
  • una o più proprietà chiave , ognuno con una coppia nome valore
jboss.jca:service=ManagedConnectionPool,name=DefaultDS

nella prima parte c'è il dominio nella seconda le proprietà separate da virgola. E' indifferente l'ordine delle proprietà.

EXAMINING THE JMX KERNEL DESCRIPTOR FILE

server/xxx/conf/jboss-service.xml è il file di configurazione principale usato per dichiarare gli MBean al JMX Kernel questo file e il suo layout sono specifici di JBoss AS . Si può usare un descriptor file differente settando jboss.server.root.deployment al nome del file nel filesystem e jboss.server.config.url per dichiarare la directory che contiene il file. Una nota se si cambiano questi parametri tutte i file di configurazione che appaiono nella dir di conf devono apparire nella dir specificata jboss.server.config.url.
jboss-service.xml definisce un numero di MBeans che includono i seguenti:

  • The logging service.
  • The thread pool— usato per fornire i threads.
  • The Java Naming and Directory Interface (JNDI) .
  • Various MBeans for managing security—Include Java Authentication and Authorization Service (JAAS).
  • Various MBeans related to accessing JMX services.
  • Various MBeans related to the remoting service, per abilitare il controllo remoto

2.2 Configuring the application server

Oltre al jboss-service.xml visto prima , i servizi sviluppati sull'application server possono incastonare un META-INF/jboss-service.xml nei loro archivi o un file separato *-service.xml che dichiara l'MBean per un servizio . Per esempio UUID Universal Unique

Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License