SlideShare une entreprise Scribd logo
1  sur  60
Andrea Leoncini
                                    JBoss Senior Solution Architect @ Red Hat

                                                 andrea.leoncini@redhat.com




It’s JBoss, but not as we know it
EVERYTHING CHANGES

• AS7     is the major application server rewriting
  •   much bigger change than AS4 to AS5


• Lots    of new features
  •   Module based services & Modular Service Container

  •   Domain mode and Standalone mode

  •   New configuration

  •   Everything has changed
MOTIVATIONS FOR AS7
•   Improve usability
    •   with AS4 and AS5 the JBoss user used to be an expert


•   Increase manageability
    •   with AS4 and AS5 each server is based on specific configuration


•   Simplify configurations
    •   with AS4 and AS5 each service has its own configuration approach


•   Higly performant - GO FAST!
    •   much faster than previous versions
7 REASONS TO LOVE AS7
•   blazingly fast (<3s startup)

•   lightweight

•   modular

•   hot parallel deployment

•   elegant administration

•   domain management

•   easy testable
KEY NEW FEATURES
•   Fast and lightweight

•   Supports domain (multi node) management

•   Multiple consistent management interfaces
    CLI, Java API, HTTP API, Web Console

•   Unified user-focused configuration

•   Modular
    •   Pluggable components of the application server, referenced from profiles, based on module.xml

    •   tha basis of classloading in AS7
AS7 ARCHITECTURE
THE NEW JBOSS SCENARIO
host301.prod.acme.it   host302.prod.acme.it   host303.prod.acme.it

    JBoss Server           JBoss Server           JBoss Server
      MonteMario                 Pietralata               EUR



                           JBoss Server           JBoss Server
                                 Trastevere          Garbatella



                                                  JBoss Server
                                                        Trionfale



   Host                   Host                   Host
Contoller              Contoller              Contoller




                         Domain
                       Contoller



                       host199.mgmt.acme.it
HOST
host301.prod.acme.it
esil903.ac.bankit.it   host302.prod.acme.it                            esil905.ac.bankit.it
                                                           Host:
    JBoss Server               each “host
                           JBoss Server          box” represents a physical or virtual host.
                                                                             JBoss Server
      MonteMario                 Pietralata box can contain zero, one or multiple server
                                   Each                                            EUR

                                   instances
                           JBoss Server                                     JBoss Server
                                 Trastevere                                     Garbatella



                                                                            JBoss Server
                                                                                  Trionfale



   Host                   Host                                             Host
Contoller              Contoller                                        Contoller




                         Domain
                       Contoller



                       host199.mgmt.acme.it
HOST CONTROLLER
      esil903.ac.bankit.it                       Host Controller:
                                                esil904.ac.bankit.it                       esil905.ac.bankit.it
When domain.sh script is run on a host, a process known as a Host Controller is launched. The Host Controller is solely
           JBoss Server                              JBoss Server                              JBoss Server
concerned with server management; it does not handle application server workloads. The Host Controller is responsible for
              MonteMario                                 Pietralata                                 EUR
starting and stopping the individual application server processes that run on its host, and interacts with the Domain
Controller to help manage them.
                                                     JBoss Server                               JBoss Server
                                                          Trastevere                               Garbatella



                                                                                                JBoss Server
                                                                                                     Trionfale



          Host                                     Host                                       Host
       Contoller                                Contoller                                  Contoller




                                                  Domain
                                                Contoller



                                                host199.mgmt.acme.it
DOMAIN CONTROLLER
                                                 Domain Controller:
        esil903.ac.bankit.it
One Host Controller instance is configured to act as the central management point for the entire domain, i.e. to be the
                                                    esil904.ac.bankit.it                         esil905.ac.bankit.it
Domain Controller. The primary responsibility of the Domain Controller is to maintain the domain's central management
             JBoss Server                                JBoss contents,                             JBoss Server
policy, to ensure all Host Controllers are aware of its currentServer and to assist the Host Controllers ensuring that any
                MonteMario                                   Pietralata                                   EUR
running application server instances are configured in accordance with this policy. This central management policy is stored by
default in the domain/configuration/domain.xml file in the unzipped JBoss Application Server 7 installation on Domain
Controller's host's filesystem.                            JBoss Server                               JBoss Server
A domain.xml file must be located in the domain/configuration directory of an installation that's meant to run the Domain
                                                              Trastevere                                Garbatella
Controller. It does not need to be present in the installations that are not meant to run a Domain Controller; i.e. those whose
Host Controller is configured to contact a remote Domain Controller. The presence of a domain.xml file on such a server
                                                                                                     JBoss Server
does no harm.                                                                                           Trionfale



          Host                                        Host                                         Host
       Contoller                                   Contoller                                    Contoller




                                                     Domain
                                                   Contoller



                                                  host199.mgmt.acme.it
SERVER GROUP
         host301.prod.acme.it                        host302.prod.acme.it                         host303.prod.acme.it

                JBoss Server
                JBoss Server                              JBoss Server                                 JBoss Server
                                                                                                       JBoss Server
                   MonteMario
                   MonteMario                                   Pietralata                                      EUR
                                                                                                               EUR

restful-group
                                                          JBoss Server                                 JBoss Server
                                                                Trastevere                                 Garbatella



                                                                                                       JBoss Server
                                                                                                             Trionfale



                Host                                     Host                                         Host
          Contoller                                   Contoller                                    Contoller
                                                       Server Group:
  A server group is set of server instances that will be managed and configured as one. In a managed domain each application
  server instance is a member of a server group. (Even if the group has just a single server, the server is still a member of a
  group.) It is the responsibility of the Domain Controller and the Host Controllers to ensure that all servers in a server group
                                                         Domain
  have a consistent configuration. They should all be configured with the same profile and they should have the same
  deployment content deployed                          Contoller



                                                     host199.mgmt.acme.it
SERVER GROUP
host301.prod.acme.it                   host302.prod.acme.it   host303.prod.acme.it

    JBoss Server                           JBoss Server           JBoss Server
      MonteMario                                 Pietralata               EUR



                                           JBoss Server           JBoss Server
                                                 Trastevere          Garbatella

                       midsize-group
                                                                  JBoss Server
                                                                        Trionfale



   Host                                   Host                   Host
Contoller                              Contoller              Contoller




                                         Domain
                                       Contoller



                                       host199.mgmt.acme.it
SERVER INSTANCE
       host301.prod.acme.it                       host302.prod.acme.it                 host303.prod.acme.it

            JBoss Server                               JBoss Server                        JBoss Server
              MonteMario                                    Pietralata                             EUR



                                                       JBoss Server                        JBoss Server
                                                            Trastevere                        Garbatella



                                                                                           JBoss Server
                                                                                                 Trionfale



           Host                                      Host                                 Host
        Contoller                                 Contoller                            Contoller

                                     Server:
Each "Server" in the above diagram represents an actual application server instance.
The server runs in a separate JVM process from the Host Controller. The Host
Controller is responsible for launching that process. (In a managed domain the end
                                                      Domain
user cannot directly launch a server process from the command line).
                                                    Contoller



                                                  host199.mgmt.acme.it
DEPLOYMENT
host301.prod.acme.it          host302.prod.acme.it   host303.prod.acme.it

    JBoss Server                  JBoss Server           JBoss Server
      MonteMario                        Pietralata               EUR



                                  JBoss Server           JBoss Server
                                        Trastevere          Garbatella



                                                         JBoss Server
                                                               Trionfale



   Host                          Host                   Host
Contoller                     Contoller              Contoller




                                Domain
                              Contoller



               New Module
                              host199.mgmt.acme.it
               <datasource>
DEPLOYMENT
host301.prod.acme.it          host302.prod.acme.it   host303.prod.acme.it

    JBoss Server                  JBoss Server           JBoss Server
      MonteMario                        Pietralata               EUR



                                  JBoss Server           JBoss Server
                                        Trastevere          Garbatella



                                                         JBoss Server
                                                               Trionfale



   Host                          Host                   Host
Contoller                     Contoller              Contoller




                                Domain
                              Contoller



               New Module
                              host199.mgmt.acme.it
               <datasource>
DEPLOYMENT
host301.prod.acme.it                host302.prod.acme.it   host303.prod.acme.it

    JBoss Server                        JBoss Server           JBoss Server
      MonteMario                              Pietralata               EUR
                   New Module                                                    New Module
                   <datasource>                                                  <datasource>



                                        JBoss Server           JBoss Server
                                              Trastevere          Garbatella



                                                               JBoss Server
                                                                     Trionfale



   Host                                Host                   Host
Contoller                           Contoller              Contoller




                                      Domain
                                    Contoller



                                    host199.mgmt.acme.it
JBoss Modules is a standalone implementation of a
modular (non-hierarchical) class loading and execution
environment for Java. In other words, rather than a single
class loader which loads all JARs into a flat class path, each
library becomes a module which only links against the exact
modules it depends on, and nothing more. It implements a
thread-safe, fast, and highly concurrent delegating class
loader model, coupled to an extensible module resolution
system, which combine to form a unique, simple and
powerful system for application execution and distribution.




           JBOSS MODULES
System CL


                Server CL



Deployment CL               Deployment CL




  HIERARCHICAL CL
org.slf4j




   org.javassist            org.hibernate.core




           org.jboss.weld




org.jboss.interceptors       deployment.myapp.war




                MODULAR CL
mod-L
 v3.1          mod-A
                v2.0
                               mod-J
                                v1.1




your.app.war                           mod-L
                                        v2.4
                       mod-K
                        v1.7




        MODULAR CL
MODULE.XML
USER DEPLOYMENTS


• User   deployments are modules too

• Sets up dependencies on some modules automatically
 (e.g. JPA, Hibernate, WebServices)

• Theuser can also set up their own dependencies on app
 server modules
USER DEPLOYMENTS DETAILS
•   Each sub-deployment in an EAR is its own module

•   Sub-deployments in an EAR do not have access to other sub-deplyments
    by default

•   Allows for individuals ejb-JARs to have dependencies on different versions
    of classes

•   Also provide a relaxed isolation mode, which automatically sets up
    dependencies between all the sub-deployments in the EAR

•   Dependencies can be set up using the manifest, a custom deployment
    descriptor or on a global level.
•   In AS7 almost everything is a service

•   Services are objects that can be started and stopped

•   Services can have dependencies on other services

•   When all services dependencies are satisfied it will attempt to start

•   If a dependency going to be stopped then MSC will stop all
    dependent services first

•   Services can inject dependent services



                           SERVICES
EVERYTHING IS A SERVICE!

• Aspreviously mentioned almost everything in AS7 is a
 service, including:
 •   EJBs

 •   JNDI Bindings

 •   Servlets

 •   The deployments itself
TWO OPERATIONAL MODES

• Standalone
 This is the traditional JBoss single JVM server
 This will have management facilities IN-VM

• Domain
 Multi JVM multi server model
 Management coordinated by Domain Controller Process
 Multiple server instances (JVMs) per host
 Full lifecycle managed by Process Controller
STANDALONE MODE

• Standalone is a single AS process for use in development,
  where the additional management functionality is not required

• Itprovides a similar development experience to previous
  versions of the AS, allowing for a deployment to be dropped
  in the deployment folder and automatically deployed

• Canstill be managed by the same tools and APIs as domain
  mode
DOMAIN MODE

•   Easy management of multiple AS instances

•   managed from a single point and all have access to the same domain
    configuration

•   allows management and configuration updates to be pushed to all servers

•   when operating in domain mode there will be three classes of processes:
    •   Proces Controller

    •   Host Controller

    •   Server Instance
WHEN YOU START A HOST IN
          DOMAIN MODE
•   Process Controller
    responsible for managing and starting / restarting processes
    extremely simple, not much that can go wrong.
    This is the process that the system will take care of, for example
    at bootstrap, or by > service jboss start (/etc/init.d)

•   Host Controller
    One host controller is the Domain Controller, the rest are slaves
    DC is responsible for pushing out configuration changes over the
    domain. Domain C. and Host C. are responsible for remote
    management
WHEN YOU START AN HOST IN
           DOMAIN MODE
•   Host Controller
    By default each Host Controller reads its configuration from the domain/configuration/host.xml file located
    in the unzipped JBoss Application Server 7 installation on its host's filesystem. The host.xml file contains
    configuration information specific to the particular host. Primarily:

    •   the listing of the names of the actual JBoss Application Server 7 instances that are meant to run off of
        this installation

    •   configuration of how the Host Controller has to contact the Domain Controller to register itself and
        access the domain configuration. This may either be configuration of how to find and contact a remote
        Domain Controller, or a configuration telling the Host Controller to act as the Domain Controller

    •   configuration of items that are specific to the local physical installation. For example, named interface
        definitions declared in domain.xml (see below) can be mapped to an actual machine-specific IP address
        in host.xml. Abstract path names in domain.xml can be mapped to actual filesystem paths in host.xml
Starting Domain Controller
actually starts two processes




               START DOMAIN
Starting Domain Controller
actually starts two processes




               START DOMAIN
Starting domain actually
                           The Process Controller
  starts two processes




              START DOMAIN
Starting domain actually
                           and the Host Controller
  starts two processes




              START DOMAIN
What are you stopping?


   If you stop (kill) the Process Controller you
   are going to stop the Host Controller and
   all related Servers




              STOP DOMAIN
What are you stopping?


   One Host Controller can also be
   stopped by Host Controller using:
   jboss-admin.sh




             STOP DOMAIN
What are you stopping?


   One Host Controller can also be
   stopped by Host Controller using:
   jboss-admin.sh




             STOP DOMAIN
What are you stopping?


   jboss-admin is a CLI available on every
   node of your JBoss environment (each
   JBoss installation).




             STOP DOMAIN
What are you stopping?


   By CLI you can stop anything
   from anywhere




             STOP DOMAIN
FILE
     LAYOUT

     Starts a standalone
     instance of the AS

    This is the mode that
reproduces the old behaviour
FILE
   LAYOUT

based on standalone.conf
FILE
 LAYOUT
 domain.sh starts the
process controller and
  the host controller
FILE
    LAYOUT
 also uses domain.conf but it
just sets the Host controller
        configuration
FILE
    LAYOUT

    In the domain mode

    domain.xml contains
configurations common to all
         instances
FILE
     LAYOUT

    In the domain mode

host.xml contains the servers
       configurations
FILE
    LAYOUT

    In the domain mode

for each server there will be
   just working directories
•   ONE configuration file

    • standalone.xml         - domain.xml

•   Management API allows persistent changes to the configuration

•   Management API can manage all servers in the domain

•   Management console provides user friendly management in a web
    browser

•   command line tool (higly scriptable)




                    MANAGEMENT
•   ONE configuration file

    • standalone.xml                    - domain.xml

•   Management API that allows for persistent changes to the configuration

•   Management API can manage all servers in the domain
             The XML configuration files act as a central, authoritative source of configuration. Any
             configuration changes made via the web interface or the CLI are persisted back to the XML
•   Management console to provide user friendly management in a web
             configuration files. If a domain or standalone server is offline, the XML configuration files can be
             hand edited as well, and any changes will be picked up when the domain or standalone server is
    browser  next started. However, users are encouraged to use the web interface or the CLI in preference
             to making offline edits to the configuration files. External changes made to the configuration
             files while processes are running will not be detected, and may be overwritten
•   command line tool for use in scripts




                         MANAGEMENT
MANAGEMENT VIA CONFIGURATION
MANAGEMENT VIA API
• Scriptable   command line management tool

• Uses   the management API internally

• Allows
      access to high level user friendly commands
 create-jms-queue --name testQueue

• Alsoallows direct access to the domain model, giving access
 to the full functionality of the management API




          MANAGEMENT VIA CLI
MANAGEMENT: CREATE SERVER
MANAGEMENT: DEFINE A DATASOURCE
MANAGEMENT: DEFINE A DATASOURCE
MANAGEMENT: DEFINE A DATASOURCE
MANAGEMENT: DEFINE A DATASOURCE
MANAGEMENT: DEFINE A DATASOURCE
TESTING WITH ARQUILLIAN


• AS7   supports easy testing with Arquillian

• Arquillian
           is used both in the internal test suite and by end
 users to test their applications

• Combined   with the fast startup speed of AS7 testing in the
 container is just as easy as running normal JUnit tests.
TESTING EXAMPLE WITH ARQUILLIAN
Andrea Leoncini
                            JBoss Senior Solution Architect @ Red Hat

                                         andrea.leoncini@redhat.com




  This presentation is over
THANK YOU for your attention!

Contenu connexe

Tendances

JBoss EAP 6 - Start / Application Deployment Process
JBoss EAP 6 - Start / Application Deployment ProcessJBoss EAP 6 - Start / Application Deployment Process
JBoss EAP 6 - Start / Application Deployment Process
Shane Johnson
 
EAP6 performance Tuning
EAP6 performance TuningEAP6 performance Tuning
EAP6 performance Tuning
Praveen Adupa
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
James Bayer
 

Tendances (20)

JBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the UnionJBoss EAP / WildFly, State of the Union
JBoss EAP / WildFly, State of the Union
 
Jboss App Server
Jboss App ServerJboss App Server
Jboss App Server
 
JBoss AS / EAP and Java EE6
JBoss AS / EAP and Java EE6JBoss AS / EAP and Java EE6
JBoss AS / EAP and Java EE6
 
JBoss AS 7
JBoss AS 7JBoss AS 7
JBoss AS 7
 
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
WildFly v9 - State of the Union Session at Voxxed, Istanbul, May/9th 2015.
 
Introduction to Wildfly 8 - Marchioni
Introduction to Wildfly 8 -  MarchioniIntroduction to Wildfly 8 -  Marchioni
Introduction to Wildfly 8 - Marchioni
 
JBoss EAP 6 - Start / Application Deployment Process
JBoss EAP 6 - Start / Application Deployment ProcessJBoss EAP 6 - Start / Application Deployment Process
JBoss EAP 6 - Start / Application Deployment Process
 
JBoss AS7 Reloaded
JBoss AS7 ReloadedJBoss AS7 Reloaded
JBoss AS7 Reloaded
 
WebSphere App Server vs JBoss vs WebLogic vs Tomcat
WebSphere App Server vs JBoss vs WebLogic vs TomcatWebSphere App Server vs JBoss vs WebLogic vs Tomcat
WebSphere App Server vs JBoss vs WebLogic vs Tomcat
 
EAP6 performance Tuning
EAP6 performance TuningEAP6 performance Tuning
EAP6 performance Tuning
 
JBoss Application Server 7
JBoss Application Server 7JBoss Application Server 7
JBoss Application Server 7
 
Oracle WebLogic 11g Topology
Oracle WebLogic 11g TopologyOracle WebLogic 11g Topology
Oracle WebLogic 11g Topology
 
Devoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOFDevoxx 2013, WildFly BOF
Devoxx 2013, WildFly BOF
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
 
Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8
 
WildFly & WildFly Swarm
WildFly & WildFly SwarmWildFly & WildFly Swarm
WildFly & WildFly Swarm
 
WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014WildFly BOF and V9 update @ Devoxx 2014
WildFly BOF and V9 update @ Devoxx 2014
 
jboss.org-jboss.com
jboss.org-jboss.comjboss.org-jboss.com
jboss.org-jboss.com
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuning
 

En vedette (6)

JBoss Analyst tour Sept 2003
JBoss Analyst tour Sept 2003JBoss Analyst tour Sept 2003
JBoss Analyst tour Sept 2003
 
JBoss presentation 2003 11 for matrix
JBoss presentation 2003 11 for matrixJBoss presentation 2003 11 for matrix
JBoss presentation 2003 11 for matrix
 
The JBoss Way, the Added Value of Open Source Middleware
The JBoss Way, the Added Value of Open Source MiddlewareThe JBoss Way, the Added Value of Open Source Middleware
The JBoss Way, the Added Value of Open Source Middleware
 
JBoss Enterprise Overview by Quinten Laureijs
JBoss Enterprise Overview by Quinten LaureijsJBoss Enterprise Overview by Quinten Laureijs
JBoss Enterprise Overview by Quinten Laureijs
 
What makes JBoss AS7 tick?
What makes JBoss AS7 tick?What makes JBoss AS7 tick?
What makes JBoss AS7 tick?
 
JBoss BRMS - The enterprise platform for business logic
JBoss BRMS - The enterprise platform for business logicJBoss BRMS - The enterprise platform for business logic
JBoss BRMS - The enterprise platform for business logic
 

Similaire à JBoss AS7 Overview

Windsor: Domain 0 Disaggregation for XenServer and XCP
	Windsor: Domain 0 Disaggregation for XenServer and XCP	Windsor: Domain 0 Disaggregation for XenServer and XCP
Windsor: Domain 0 Disaggregation for XenServer and XCP
The Linux Foundation
 
Faq websphere performance
Faq websphere performanceFaq websphere performance
Faq websphere performance
budakia
 
Windows Azure platform overview
Windows Azure platform overviewWindows Azure platform overview
Windows Azure platform overview
Frédéric Harper
 
[Harvard CS264] 08a - Cloud Computing, Amazon EC2, MIT StarCluster (Justin Ri...
[Harvard CS264] 08a - Cloud Computing, Amazon EC2, MIT StarCluster (Justin Ri...[Harvard CS264] 08a - Cloud Computing, Amazon EC2, MIT StarCluster (Justin Ri...
[Harvard CS264] 08a - Cloud Computing, Amazon EC2, MIT StarCluster (Justin Ri...
npinto
 
Supercharging Cassandra - GOTO Amsterdam
Supercharging Cassandra - GOTO AmsterdamSupercharging Cassandra - GOTO Amsterdam
Supercharging Cassandra - GOTO Amsterdam
Acunu
 

Similaire à JBoss AS7 Overview (20)

Lotus Foundations Start : One year later
Lotus Foundations Start : One year laterLotus Foundations Start : One year later
Lotus Foundations Start : One year later
 
Bangalore cloudstack user group
Bangalore cloudstack user groupBangalore cloudstack user group
Bangalore cloudstack user group
 
Session10part2 Servers Detailed
Session10part2  Servers DetailedSession10part2  Servers Detailed
Session10part2 Servers Detailed
 
Session9part2 Servers Detailed
Session9part2  Servers DetailedSession9part2  Servers Detailed
Session9part2 Servers Detailed
 
Windsor: Domain 0 Disaggregation for XenServer and XCP
	Windsor: Domain 0 Disaggregation for XenServer and XCP	Windsor: Domain 0 Disaggregation for XenServer and XCP
Windsor: Domain 0 Disaggregation for XenServer and XCP
 
ZooKeeper JMX
ZooKeeper JMXZooKeeper JMX
ZooKeeper JMX
 
Troubleshooting Zenoss: A Support Perspective
Troubleshooting Zenoss:  A Support PerspectiveTroubleshooting Zenoss:  A Support Perspective
Troubleshooting Zenoss: A Support Perspective
 
Faq websphere performance
Faq websphere performanceFaq websphere performance
Faq websphere performance
 
5 scalability Cloudstack Developer Day
5  scalability Cloudstack Developer Day5  scalability Cloudstack Developer Day
5 scalability Cloudstack Developer Day
 
Windows Azure platform overview
Windows Azure platform overviewWindows Azure platform overview
Windows Azure platform overview
 
ずばり動く!kumofs と ずばり動かないケース
ずばり動く!kumofs と ずばり動かないケースずばり動く!kumofs と ずばり動かないケース
ずばり動く!kumofs と ずばり動かないケース
 
JBoss AS 7 : Déployer sur terre et dans les nuages
JBoss AS 7 : Déployer sur terre et dans les nuagesJBoss AS 7 : Déployer sur terre et dans les nuages
JBoss AS 7 : Déployer sur terre et dans les nuages
 
[Harvard CS264] 08a - Cloud Computing, Amazon EC2, MIT StarCluster (Justin Ri...
[Harvard CS264] 08a - Cloud Computing, Amazon EC2, MIT StarCluster (Justin Ri...[Harvard CS264] 08a - Cloud Computing, Amazon EC2, MIT StarCluster (Justin Ri...
[Harvard CS264] 08a - Cloud Computing, Amazon EC2, MIT StarCluster (Justin Ri...
 
Cs264 intro-to-cloud-computing
Cs264 intro-to-cloud-computingCs264 intro-to-cloud-computing
Cs264 intro-to-cloud-computing
 
Linux beginner's Workshop
Linux beginner's WorkshopLinux beginner's Workshop
Linux beginner's Workshop
 
BigTable And Hbase
BigTable And HbaseBigTable And Hbase
BigTable And Hbase
 
Supercharging Cassandra - GOTO Amsterdam
Supercharging Cassandra - GOTO AmsterdamSupercharging Cassandra - GOTO Amsterdam
Supercharging Cassandra - GOTO Amsterdam
 
Xen and Apache cloudstack
Xen and Apache cloudstack  Xen and Apache cloudstack
Xen and Apache cloudstack
 
分散Key-valueストアkumofsの思想と設計
分散Key-valueストアkumofsの思想と設計分散Key-valueストアkumofsの思想と設計
分散Key-valueストアkumofsの思想と設計
 
GFS
GFSGFS
GFS
 

Plus de JBug Italy

Plus de JBug Italy (20)

JBoss Wise: breaking barriers to WS testing
JBoss Wise: breaking barriers to WS testingJBoss Wise: breaking barriers to WS testing
JBoss Wise: breaking barriers to WS testing
 
Camel and JBoss
Camel and JBossCamel and JBoss
Camel and JBoss
 
AS7 and CLI
AS7 and CLIAS7 and CLI
AS7 and CLI
 
Intro jbug milano_26_set2012
Intro jbug milano_26_set2012Intro jbug milano_26_set2012
Intro jbug milano_26_set2012
 
Faster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzFaster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzz
 
Infinispan,Lucene,Hibername OGM
Infinispan,Lucene,Hibername OGMInfinispan,Lucene,Hibername OGM
Infinispan,Lucene,Hibername OGM
 
AS7
AS7AS7
AS7
 
Intro JBug Milano - January 2012
Intro JBug Milano - January 2012Intro JBug Milano - January 2012
Intro JBug Milano - January 2012
 
JBoss AS7 Webservices
JBoss AS7 WebservicesJBoss AS7 Webservices
JBoss AS7 Webservices
 
JBoss AS7
JBoss AS7JBoss AS7
JBoss AS7
 
Intro JBug Milano - September 2011
Intro JBug Milano - September 2011Intro JBug Milano - September 2011
Intro JBug Milano - September 2011
 
All the cool stuff of JBoss BRMS
All the cool stuff of JBoss BRMSAll the cool stuff of JBoss BRMS
All the cool stuff of JBoss BRMS
 
Infinispan and Enterprise Data Grid
Infinispan and Enterprise Data GridInfinispan and Enterprise Data Grid
Infinispan and Enterprise Data Grid
 
Drools Introduction
Drools IntroductionDrools Introduction
Drools Introduction
 
September 2010 - Arquillian
September 2010 - ArquillianSeptember 2010 - Arquillian
September 2010 - Arquillian
 
September 2010 - Gatein
September 2010 - GateinSeptember 2010 - Gatein
September 2010 - Gatein
 
May 2010 - Infinispan
May 2010 - InfinispanMay 2010 - Infinispan
May 2010 - Infinispan
 
May 2010 - RestEasy
May 2010 - RestEasyMay 2010 - RestEasy
May 2010 - RestEasy
 
May 2010 - Drools flow
May 2010 - Drools flowMay 2010 - Drools flow
May 2010 - Drools flow
 
May 2010 - Hibernate search
May 2010 - Hibernate searchMay 2010 - Hibernate search
May 2010 - Hibernate search
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Dernier (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

JBoss AS7 Overview

  • 1. Andrea Leoncini JBoss Senior Solution Architect @ Red Hat andrea.leoncini@redhat.com It’s JBoss, but not as we know it
  • 2. EVERYTHING CHANGES • AS7 is the major application server rewriting • much bigger change than AS4 to AS5 • Lots of new features • Module based services & Modular Service Container • Domain mode and Standalone mode • New configuration • Everything has changed
  • 3. MOTIVATIONS FOR AS7 • Improve usability • with AS4 and AS5 the JBoss user used to be an expert • Increase manageability • with AS4 and AS5 each server is based on specific configuration • Simplify configurations • with AS4 and AS5 each service has its own configuration approach • Higly performant - GO FAST! • much faster than previous versions
  • 4. 7 REASONS TO LOVE AS7 • blazingly fast (<3s startup) • lightweight • modular • hot parallel deployment • elegant administration • domain management • easy testable
  • 5. KEY NEW FEATURES • Fast and lightweight • Supports domain (multi node) management • Multiple consistent management interfaces CLI, Java API, HTTP API, Web Console • Unified user-focused configuration • Modular • Pluggable components of the application server, referenced from profiles, based on module.xml • tha basis of classloading in AS7
  • 7. THE NEW JBOSS SCENARIO host301.prod.acme.it host302.prod.acme.it host303.prod.acme.it JBoss Server JBoss Server JBoss Server MonteMario Pietralata EUR JBoss Server JBoss Server Trastevere Garbatella JBoss Server Trionfale Host Host Host Contoller Contoller Contoller Domain Contoller host199.mgmt.acme.it
  • 8. HOST host301.prod.acme.it esil903.ac.bankit.it host302.prod.acme.it esil905.ac.bankit.it Host: JBoss Server each “host JBoss Server box” represents a physical or virtual host. JBoss Server MonteMario Pietralata box can contain zero, one or multiple server Each EUR instances JBoss Server JBoss Server Trastevere Garbatella JBoss Server Trionfale Host Host Host Contoller Contoller Contoller Domain Contoller host199.mgmt.acme.it
  • 9. HOST CONTROLLER esil903.ac.bankit.it Host Controller: esil904.ac.bankit.it esil905.ac.bankit.it When domain.sh script is run on a host, a process known as a Host Controller is launched. The Host Controller is solely JBoss Server JBoss Server JBoss Server concerned with server management; it does not handle application server workloads. The Host Controller is responsible for MonteMario Pietralata EUR starting and stopping the individual application server processes that run on its host, and interacts with the Domain Controller to help manage them. JBoss Server JBoss Server Trastevere Garbatella JBoss Server Trionfale Host Host Host Contoller Contoller Contoller Domain Contoller host199.mgmt.acme.it
  • 10. DOMAIN CONTROLLER Domain Controller: esil903.ac.bankit.it One Host Controller instance is configured to act as the central management point for the entire domain, i.e. to be the esil904.ac.bankit.it esil905.ac.bankit.it Domain Controller. The primary responsibility of the Domain Controller is to maintain the domain's central management JBoss Server JBoss contents, JBoss Server policy, to ensure all Host Controllers are aware of its currentServer and to assist the Host Controllers ensuring that any MonteMario Pietralata EUR running application server instances are configured in accordance with this policy. This central management policy is stored by default in the domain/configuration/domain.xml file in the unzipped JBoss Application Server 7 installation on Domain Controller's host's filesystem. JBoss Server JBoss Server A domain.xml file must be located in the domain/configuration directory of an installation that's meant to run the Domain Trastevere Garbatella Controller. It does not need to be present in the installations that are not meant to run a Domain Controller; i.e. those whose Host Controller is configured to contact a remote Domain Controller. The presence of a domain.xml file on such a server JBoss Server does no harm. Trionfale Host Host Host Contoller Contoller Contoller Domain Contoller host199.mgmt.acme.it
  • 11. SERVER GROUP host301.prod.acme.it host302.prod.acme.it host303.prod.acme.it JBoss Server JBoss Server JBoss Server JBoss Server JBoss Server MonteMario MonteMario Pietralata EUR EUR restful-group JBoss Server JBoss Server Trastevere Garbatella JBoss Server Trionfale Host Host Host Contoller Contoller Contoller Server Group: A server group is set of server instances that will be managed and configured as one. In a managed domain each application server instance is a member of a server group. (Even if the group has just a single server, the server is still a member of a group.) It is the responsibility of the Domain Controller and the Host Controllers to ensure that all servers in a server group Domain have a consistent configuration. They should all be configured with the same profile and they should have the same deployment content deployed Contoller host199.mgmt.acme.it
  • 12. SERVER GROUP host301.prod.acme.it host302.prod.acme.it host303.prod.acme.it JBoss Server JBoss Server JBoss Server MonteMario Pietralata EUR JBoss Server JBoss Server Trastevere Garbatella midsize-group JBoss Server Trionfale Host Host Host Contoller Contoller Contoller Domain Contoller host199.mgmt.acme.it
  • 13. SERVER INSTANCE host301.prod.acme.it host302.prod.acme.it host303.prod.acme.it JBoss Server JBoss Server JBoss Server MonteMario Pietralata EUR JBoss Server JBoss Server Trastevere Garbatella JBoss Server Trionfale Host Host Host Contoller Contoller Contoller Server: Each "Server" in the above diagram represents an actual application server instance. The server runs in a separate JVM process from the Host Controller. The Host Controller is responsible for launching that process. (In a managed domain the end Domain user cannot directly launch a server process from the command line). Contoller host199.mgmt.acme.it
  • 14. DEPLOYMENT host301.prod.acme.it host302.prod.acme.it host303.prod.acme.it JBoss Server JBoss Server JBoss Server MonteMario Pietralata EUR JBoss Server JBoss Server Trastevere Garbatella JBoss Server Trionfale Host Host Host Contoller Contoller Contoller Domain Contoller New Module host199.mgmt.acme.it <datasource>
  • 15. DEPLOYMENT host301.prod.acme.it host302.prod.acme.it host303.prod.acme.it JBoss Server JBoss Server JBoss Server MonteMario Pietralata EUR JBoss Server JBoss Server Trastevere Garbatella JBoss Server Trionfale Host Host Host Contoller Contoller Contoller Domain Contoller New Module host199.mgmt.acme.it <datasource>
  • 16. DEPLOYMENT host301.prod.acme.it host302.prod.acme.it host303.prod.acme.it JBoss Server JBoss Server JBoss Server MonteMario Pietralata EUR New Module New Module <datasource> <datasource> JBoss Server JBoss Server Trastevere Garbatella JBoss Server Trionfale Host Host Host Contoller Contoller Contoller Domain Contoller host199.mgmt.acme.it
  • 17. JBoss Modules is a standalone implementation of a modular (non-hierarchical) class loading and execution environment for Java. In other words, rather than a single class loader which loads all JARs into a flat class path, each library becomes a module which only links against the exact modules it depends on, and nothing more. It implements a thread-safe, fast, and highly concurrent delegating class loader model, coupled to an extensible module resolution system, which combine to form a unique, simple and powerful system for application execution and distribution. JBOSS MODULES
  • 18. System CL Server CL Deployment CL Deployment CL HIERARCHICAL CL
  • 19. org.slf4j org.javassist org.hibernate.core org.jboss.weld org.jboss.interceptors deployment.myapp.war MODULAR CL
  • 20. mod-L v3.1 mod-A v2.0 mod-J v1.1 your.app.war mod-L v2.4 mod-K v1.7 MODULAR CL
  • 22. USER DEPLOYMENTS • User deployments are modules too • Sets up dependencies on some modules automatically (e.g. JPA, Hibernate, WebServices) • Theuser can also set up their own dependencies on app server modules
  • 23. USER DEPLOYMENTS DETAILS • Each sub-deployment in an EAR is its own module • Sub-deployments in an EAR do not have access to other sub-deplyments by default • Allows for individuals ejb-JARs to have dependencies on different versions of classes • Also provide a relaxed isolation mode, which automatically sets up dependencies between all the sub-deployments in the EAR • Dependencies can be set up using the manifest, a custom deployment descriptor or on a global level.
  • 24. In AS7 almost everything is a service • Services are objects that can be started and stopped • Services can have dependencies on other services • When all services dependencies are satisfied it will attempt to start • If a dependency going to be stopped then MSC will stop all dependent services first • Services can inject dependent services SERVICES
  • 25. EVERYTHING IS A SERVICE! • Aspreviously mentioned almost everything in AS7 is a service, including: • EJBs • JNDI Bindings • Servlets • The deployments itself
  • 26. TWO OPERATIONAL MODES • Standalone This is the traditional JBoss single JVM server This will have management facilities IN-VM • Domain Multi JVM multi server model Management coordinated by Domain Controller Process Multiple server instances (JVMs) per host Full lifecycle managed by Process Controller
  • 27. STANDALONE MODE • Standalone is a single AS process for use in development, where the additional management functionality is not required • Itprovides a similar development experience to previous versions of the AS, allowing for a deployment to be dropped in the deployment folder and automatically deployed • Canstill be managed by the same tools and APIs as domain mode
  • 28. DOMAIN MODE • Easy management of multiple AS instances • managed from a single point and all have access to the same domain configuration • allows management and configuration updates to be pushed to all servers • when operating in domain mode there will be three classes of processes: • Proces Controller • Host Controller • Server Instance
  • 29. WHEN YOU START A HOST IN DOMAIN MODE • Process Controller responsible for managing and starting / restarting processes extremely simple, not much that can go wrong. This is the process that the system will take care of, for example at bootstrap, or by > service jboss start (/etc/init.d) • Host Controller One host controller is the Domain Controller, the rest are slaves DC is responsible for pushing out configuration changes over the domain. Domain C. and Host C. are responsible for remote management
  • 30. WHEN YOU START AN HOST IN DOMAIN MODE • Host Controller By default each Host Controller reads its configuration from the domain/configuration/host.xml file located in the unzipped JBoss Application Server 7 installation on its host's filesystem. The host.xml file contains configuration information specific to the particular host. Primarily: • the listing of the names of the actual JBoss Application Server 7 instances that are meant to run off of this installation • configuration of how the Host Controller has to contact the Domain Controller to register itself and access the domain configuration. This may either be configuration of how to find and contact a remote Domain Controller, or a configuration telling the Host Controller to act as the Domain Controller • configuration of items that are specific to the local physical installation. For example, named interface definitions declared in domain.xml (see below) can be mapped to an actual machine-specific IP address in host.xml. Abstract path names in domain.xml can be mapped to actual filesystem paths in host.xml
  • 31. Starting Domain Controller actually starts two processes START DOMAIN
  • 32. Starting Domain Controller actually starts two processes START DOMAIN
  • 33. Starting domain actually The Process Controller starts two processes START DOMAIN
  • 34. Starting domain actually and the Host Controller starts two processes START DOMAIN
  • 35. What are you stopping? If you stop (kill) the Process Controller you are going to stop the Host Controller and all related Servers STOP DOMAIN
  • 36. What are you stopping? One Host Controller can also be stopped by Host Controller using: jboss-admin.sh STOP DOMAIN
  • 37. What are you stopping? One Host Controller can also be stopped by Host Controller using: jboss-admin.sh STOP DOMAIN
  • 38. What are you stopping? jboss-admin is a CLI available on every node of your JBoss environment (each JBoss installation). STOP DOMAIN
  • 39. What are you stopping? By CLI you can stop anything from anywhere STOP DOMAIN
  • 40. FILE LAYOUT Starts a standalone instance of the AS This is the mode that reproduces the old behaviour
  • 41. FILE LAYOUT based on standalone.conf
  • 42. FILE LAYOUT domain.sh starts the process controller and the host controller
  • 43. FILE LAYOUT also uses domain.conf but it just sets the Host controller configuration
  • 44. FILE LAYOUT In the domain mode domain.xml contains configurations common to all instances
  • 45. FILE LAYOUT In the domain mode host.xml contains the servers configurations
  • 46. FILE LAYOUT In the domain mode for each server there will be just working directories
  • 47. ONE configuration file • standalone.xml - domain.xml • Management API allows persistent changes to the configuration • Management API can manage all servers in the domain • Management console provides user friendly management in a web browser • command line tool (higly scriptable) MANAGEMENT
  • 48. ONE configuration file • standalone.xml - domain.xml • Management API that allows for persistent changes to the configuration • Management API can manage all servers in the domain The XML configuration files act as a central, authoritative source of configuration. Any configuration changes made via the web interface or the CLI are persisted back to the XML • Management console to provide user friendly management in a web configuration files. If a domain or standalone server is offline, the XML configuration files can be hand edited as well, and any changes will be picked up when the domain or standalone server is browser next started. However, users are encouraged to use the web interface or the CLI in preference to making offline edits to the configuration files. External changes made to the configuration files while processes are running will not be detected, and may be overwritten • command line tool for use in scripts MANAGEMENT
  • 51. • Scriptable command line management tool • Uses the management API internally • Allows access to high level user friendly commands create-jms-queue --name testQueue • Alsoallows direct access to the domain model, giving access to the full functionality of the management API MANAGEMENT VIA CLI
  • 53. MANAGEMENT: DEFINE A DATASOURCE
  • 54. MANAGEMENT: DEFINE A DATASOURCE
  • 55. MANAGEMENT: DEFINE A DATASOURCE
  • 56. MANAGEMENT: DEFINE A DATASOURCE
  • 57. MANAGEMENT: DEFINE A DATASOURCE
  • 58. TESTING WITH ARQUILLIAN • AS7 supports easy testing with Arquillian • Arquillian is used both in the internal test suite and by end users to test their applications • Combined with the fast startup speed of AS7 testing in the container is just as easy as running normal JUnit tests.
  • 59. TESTING EXAMPLE WITH ARQUILLIAN
  • 60. Andrea Leoncini JBoss Senior Solution Architect @ Red Hat andrea.leoncini@redhat.com This presentation is over THANK YOU for your attention!

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n