servidor de aplicacoes jboss - espweb — especialização em web...
TRANSCRIPT
SUMAacuteRIO
LISTA DE ILUSTRACcedilOtildeES 08
LISTA DE TABELAS 09
LISTA DE ABREVIATURAS OU LISTA DE SIGLAS10
RESUMO11
ABSTRACT12
1 INTRODUCcedilAtildeO 13
11 OBJETIVOS DO TRABALHO16
12 ORGANIZACcedilAtildeO DO TRABALHO17
2 REVISAtildeO BIBLIOGRAacuteFICA18
21 JAVA 2 PLATAFORM ENTERPRISE EDITION ndash J2EE18
211 A ARQUITETURA J2EE19
22 ARQUITETURA EJB20
23 SESSION BEANS X ENTITY BEANShelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip21
24 SERVICcedilO DISTRIBUIacuteDO E REMOTE METHOD INVOCATION ndash RMIhelliphellip23
25 OPEN SOURCE24
251 LIBRARY GENERAL POLICY LICENSE - LGPL 26
26 EXTENSIBLE MARKUP LANGUAGE ndash XMLhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 27
27 STUB ndash RPChelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip30
3 JBOSS APPLICATION SERVER32
31 INTRODUCcedilAtildeO32
32 JBOSS CLUSTERING32
33 TERMINOLOGIA DE CLUSTERING EM JBOSS33
34 CARACTERISTICAS DO CLUSTERING JBOSS34
35 PARTICcedilOtildeES34
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
7
36 BALANCEAMENTO DE CARGA35
37 JAVA MANAGEMENT EXTENSION ndash JMX helliphelliphelliphelliphelliphelliphelliphelliphelliphellip37
38 ARQUITETURA JMX38
39 SEGURANCcedilA EM JBOSS39
391 J2EE DECLARATIVE SECURITY OVERVIEWhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 40
392 SECURE REMOTE PASSWORD (SRP) PROTOCOLhelliphelliphelliphelliphelliphelliphelliphellip40
4 INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS 42
41 CONDICcedilOtildeES PREacuteVIAS PARA INSTALACcedilAtildeO 42
42 CONFIGURANDO E INICIANDO O JBOSS45
43 ESTRUTURA DE DIRETOacuteRIO 47
RESULTADOS OBTIDOS51
CONCLUSAtildeO52
REFEREcircNCIAS53
LINKS55
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
8
LISTA DE ILUSTRACcedilOtildeES
FIGURA 01 - TELA DE GERENCIAMENTO DE WEB-CONSOLE DO JBOSS 14
FIGURA 02 - ARQUITETURA DA PLATAFORMA J2EE 20
FIGURA 03 - CONTAINERS 21
FIGURA 04 - PARTICcedilOtildeES 35
FIGURA 05 - ARQUITETURA JMX 38
FIGURA 06 - EXECUCcedilAtildeO DO COMANDO JAVA ndashVERSION 42
FIGURA 07 - EXECUCcedilAtildeO DO COMANDO SET 43
FIGURA 08 - MODELOS DE ARQUIVOS DE CONFIGURACcedilAtildeO 44
FIGURA 09 - TEMPO PARA CARREGAMENTO DO SERVIDOR JBOSS 45
FIGURA 10 - TELA DE CONFIGURACcedilAtildeO JMX-CONSOLE DO SERVIDOR JBOSS 46
FIGURA 11 - TELA DE CONFIGURACcedilAtildeO DO TOMCAT 47
FIGURA 12 - ESTRUTURA DE DIRETOacuteRIOS NO JBOSS 49
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
9
LISTA DE TABELAS
TABELA 1 - EMPRESAS QUE UTILIZAM O SERVIDOR DE APLICACcedilOtildeES
JBOSS 15
TABELA 2 - DIFERENCcedilAS BMP-CMP23
TABELA 3 - AMOSTRA PERMISSAtildeO PARA TEMPO DE MANUTENCcedilAtildeO POR
PROPORCcedilOtildeES DE HA33
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
10
LISTA DE ABREVIATURAS E LISTA DE SIGLAS
API ndash Application Program Interface
CPU - Central Unit of Processing
DTD - Document Type Definition
EJB - Enterprise Java Beans
HTML - HyperText Markup Language
IDE - Integrated Development Environment
IIOP ndash Internet Inter-Orb Protocol
J2EE ndash Java Enterprise Edition
JAR - Java Archive
JDBC ndash Java Database Connectivity (JDBC) API
JDK ndash Java Development Kit
JMX - Java Management Extension
JNDI ndash Java Name Directory Interface
JPE - Java Plataform for the Enterprise
JMS ndash Java Message Service
JSP ndash Java Server Pages
JTA ndash Java Transaction API
JTS ndash Java Transaction Server
JRMP - Java Remote Method Protocol
OSI ndash Open Source Initiative
RMI - Remote Method Invocation
SO ndash Sistema Operacional
URL ndash Uniform Resource Locators
XML ndash Extensible Markup Language
WWW ndash World Web Wide
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
11
RESUMO
As redes de computadores natildeo emergiram repentinamente como uma tecnologia uacutenica
e independente e a mesma deve se aplicar aos sistemas que atravessaram diversas etapas
antes de sua aplicaccedilatildeo final e continuam em um contiacutenuo ciclo evolutivo conforme as
necessidades de mercado e tambeacutem para acompanhamento de tecnologias que surgem
Fato este o crescimento da utilizaccedilatildeo das redes de computadores tem levado as
empresas a adotar cada vez mais novas tecnologias que estatildeo sendo amplamente difundidas
e que almejam resultados confiaacuteveis Neste contexto o Servidor de Aplicaccedilotildees JBoss
encontra-se em ascensatildeo por ser Open Source disponibiliza diversos recursos onde alguns
destes seratildeo abordados neste trabalho tais como Clustering balanceamento de carga JMX
arquivos baacutesicos de configuraccedilatildeo
Onde reunindo estes recursos em um uacutenico produto o JBoss tem levado grandes
empresas que utilizam ferramentas WEB a adotarem este servidor em suas aplicaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
12
ABSTRACT
The nets of computers didnt emerge suddenly as an only and independent technology
the same case is applied to the systems that crossed several stages before his final application
and they continue in an I click evolutionary I continue according to the market needs and
attendance of technologies
Fact this the growth of the use of the nets of computers it has been taking the
companies to adopt more and more new technologies that are being spread thoroughly and
that youthey long for reliable results In this context JBoss Application Server is in ascension
for being Open Source it makes available several resources where some of these will be
aborted in this research fact this gathering their resources has been taking great companies
that are used of tools WEB adopt it this servant in their applications The present work
approaches some resources of the application servant such JBoss as Clustering load
swinging JMX basic files of configuration
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
13
1 INTRODUCcedilAtildeO
Application Servers ou servidores de aplicaccedilatildeo satildeo sistemas de software que
fornecem a infraestrutura de serviccedilos para a execuccedilatildeo de aplicaccedilotildees distribuiacutedas Os
servidores de aplicaccedilatildeo satildeo executados em maacutequinas servidoras e satildeo acessados pelos clientes
atraveacutes de uma conexatildeo de rede (LABOUREY BURKE 2002)As vantagens dos servidores de aplicaccedilatildeo em relaccedilatildeo ao modelo clienteservidor
residem nos serviccedilos implementados por eles e disponiacuteveis pelo qual as empresas possam
concentrar a maior parte do tempo no desenvolvimento da loacutegica de negoacutecio Em geral estes
serviccedilos diminuem a complexidade do desenvolvimento controlam o fluxo de dados e
gerenciam a seguranccedila
Um servidor de aplicaccedilatildeo eacute uma plataforma sobre a qual roda a porccedilatildeo servidora de
um aplicativo Isto inclui hardware e software O hardware estaacute fora do escopo deste
trabalho mas o software pode ser dividido em dois grupos funccedilotildees do negoacutecio que satildeo
especiacuteficas para um domiacutenio de problema e serviccedilos especializados que satildeo funccedilotildees
geneacutericas aplicaacuteveis a diversas soluccedilotildees
Assim do ponto de vista do software um servidor de aplicaccedilatildeo consiste de um
agrupamento de funccedilotildees de negoacutecios e de serviccedilos que integrados satisfazem as necessidades
dos usuaacuterios
O servidor de aplicaccedilatildeo utiliza a arquitetura chamada de 3-camadas ou n-camadas que
permite um melhor aproveitamento das caracteriacutesticas de cada componente (servidor debanco de dados servidor de aplicaccedilatildeo e cliente)
A primeira camada chamada Front-End usualmente Browsers servem para
apresentaccedilatildeo e algumas validaccedilotildees A segunda camada eacute a aplicaccedilatildeo sendo executada no
servidor de aplicaccedilatildeo A terceira camada eacute o servidor de banco de dados
Os servidores de aplicaccedilatildeo priorizam o compartilhamento de componentes e
aplicaccedilotildees fazendo assim com que seja mais faacutecil o desenvolvimento manutenccedilatildeo e
gerenciamento de sistemas complexos
Aleacutem das caracteriacutesticas jaacute citadas outros serviccedilos tambeacutem estatildeo disponiacuteveis nos
servidores de aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
14
bull Toleracircncia agrave falhas atraveacutes de poliacuteticas para recuperaccedilatildeo e distribuiccedilatildeo de
componentes em clones dos servidores
bull Balanceamento de carga a anaacutelise da carga nos servidores permite a distribuiccedilatildeo de
clientes de forma a maximizar a utilizaccedilatildeo dos recursos disponiacuteveis (ver capiacutetulo 3 seccedilatildeo36)
bull Gerenciamento dos componentes atraveacutes de ferramentas para a manipulaccedilatildeo de
componentes e serviccedilos tais como gerenciamento de sessatildeo notificaccedilatildeo distribuiccedilatildeo da
loacutegica de negoacutecios
bull Gerenciamento de transaccedilotildees garante a integridade da transaccedilatildeo em ambientes
distribuiacutedos
bull Console de gerenciamento permite o gerenciamento de vaacuterios servidores de aplicaccedilatildeo
atraveacutes de um uacutenico sistema graacutefico ndash conforme figura 1 exemplo de gerenciamento de
web-console do JBoss
bull Seguranccedila garante a seguranccedila da aplicaccedilatildeo (ver capiacutetulo 3 seccedilatildeo 39)
Figura 1 ndash Tela de gerenciamento de web-console do JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
15
Particularmente os servidores de aplicaccedilatildeo podem ser executados em muacuteltiplos
sistemas operacionais como Solaris Linux e Windows o que permite que seja aceitaacutevel o
desenvolvimento em uma plataforma e sua publicaccedilatildeo para produccedilatildeo em outra
Atualmente com o aumento das aplicaccedilotildees baseadas em ambiente WEB muitos
profissionais e empresas vinculadas a esta aacuterea buscam soluccedilotildees que possam agilizar prover
seguranccedila escalabilidade a cada tarefa a ser executada e onde se pode encaixar o Jboss as
estas necessidades
Servidor de Aplicaccedilatildeo JBoss surgiu destacando-se no mundo J2EE (ver capiacutetulo 2seccedilatildeo 21) e Open Source (ver capiacutetulo 2 seccedilatildeo 25) pelo qual algumas empresas constantes
na tabela 1 empregam esta tecnologia
Accenture AMD American FidelityArch Wireless BASF BuyMediaCalifornia ISO Celeris CTICorporate Express Deloitte amp Touche Dow Jones IndexesEA Games ndash Sims Online Elogex Ericom SoftwareFGM Genscape Hitachi Data SystemsLastMinuteTravelcom LeapFrog Wells FargoLesson Lab Lion Bio Sciences McDonaldsMcKesson MCI Mitre ndash DISA-DARPAMotorola Motability New York Court AdministrationNextance Nielsen Media Research Nortel NetworksNuasis Playboycom PrimusSabre ndash GetThere Schlumberger SiemensQAD US Department of State WebMethods
Tabela 1 ndash Empresa que utilizam o Servidor de Aplicaccedilotildees JBoss ndash (JBOSS 1999)
Os Sistemas Distribuiacutedos atualmente necessitam mais do que nunca dispor das
seguintes caracteriacutesticas
ldquoUm sistema paralelo ou distribuiacutedo que consiste na coleccedilatildeo decomputadores interconectados que satildeo utilizados como um soacuteunificando seus recursos computacionaisrdquo (G Pfister um dosarquitetos da tecnologia de clusters) (BUNT)
bull Flexibilidade Capacidade de poder sofrer mudanccedilas Eacute evidente que para isso a ideacuteia
eacute de que este sistema natildeo perca sua identidade e que estas mudanccedilas natildeo sejam tatildeo
complexas de serem realizadas a ponto de desperdiccedilar recursos ou ateacute mesmo ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
7
36 BALANCEAMENTO DE CARGA35
37 JAVA MANAGEMENT EXTENSION ndash JMX helliphelliphelliphelliphelliphelliphelliphelliphelliphellip37
38 ARQUITETURA JMX38
39 SEGURANCcedilA EM JBOSS39
391 J2EE DECLARATIVE SECURITY OVERVIEWhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 40
392 SECURE REMOTE PASSWORD (SRP) PROTOCOLhelliphelliphelliphelliphelliphelliphelliphellip40
4 INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS 42
41 CONDICcedilOtildeES PREacuteVIAS PARA INSTALACcedilAtildeO 42
42 CONFIGURANDO E INICIANDO O JBOSS45
43 ESTRUTURA DE DIRETOacuteRIO 47
RESULTADOS OBTIDOS51
CONCLUSAtildeO52
REFEREcircNCIAS53
LINKS55
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
8
LISTA DE ILUSTRACcedilOtildeES
FIGURA 01 - TELA DE GERENCIAMENTO DE WEB-CONSOLE DO JBOSS 14
FIGURA 02 - ARQUITETURA DA PLATAFORMA J2EE 20
FIGURA 03 - CONTAINERS 21
FIGURA 04 - PARTICcedilOtildeES 35
FIGURA 05 - ARQUITETURA JMX 38
FIGURA 06 - EXECUCcedilAtildeO DO COMANDO JAVA ndashVERSION 42
FIGURA 07 - EXECUCcedilAtildeO DO COMANDO SET 43
FIGURA 08 - MODELOS DE ARQUIVOS DE CONFIGURACcedilAtildeO 44
FIGURA 09 - TEMPO PARA CARREGAMENTO DO SERVIDOR JBOSS 45
FIGURA 10 - TELA DE CONFIGURACcedilAtildeO JMX-CONSOLE DO SERVIDOR JBOSS 46
FIGURA 11 - TELA DE CONFIGURACcedilAtildeO DO TOMCAT 47
FIGURA 12 - ESTRUTURA DE DIRETOacuteRIOS NO JBOSS 49
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
9
LISTA DE TABELAS
TABELA 1 - EMPRESAS QUE UTILIZAM O SERVIDOR DE APLICACcedilOtildeES
JBOSS 15
TABELA 2 - DIFERENCcedilAS BMP-CMP23
TABELA 3 - AMOSTRA PERMISSAtildeO PARA TEMPO DE MANUTENCcedilAtildeO POR
PROPORCcedilOtildeES DE HA33
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
10
LISTA DE ABREVIATURAS E LISTA DE SIGLAS
API ndash Application Program Interface
CPU - Central Unit of Processing
DTD - Document Type Definition
EJB - Enterprise Java Beans
HTML - HyperText Markup Language
IDE - Integrated Development Environment
IIOP ndash Internet Inter-Orb Protocol
J2EE ndash Java Enterprise Edition
JAR - Java Archive
JDBC ndash Java Database Connectivity (JDBC) API
JDK ndash Java Development Kit
JMX - Java Management Extension
JNDI ndash Java Name Directory Interface
JPE - Java Plataform for the Enterprise
JMS ndash Java Message Service
JSP ndash Java Server Pages
JTA ndash Java Transaction API
JTS ndash Java Transaction Server
JRMP - Java Remote Method Protocol
OSI ndash Open Source Initiative
RMI - Remote Method Invocation
SO ndash Sistema Operacional
URL ndash Uniform Resource Locators
XML ndash Extensible Markup Language
WWW ndash World Web Wide
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
11
RESUMO
As redes de computadores natildeo emergiram repentinamente como uma tecnologia uacutenica
e independente e a mesma deve se aplicar aos sistemas que atravessaram diversas etapas
antes de sua aplicaccedilatildeo final e continuam em um contiacutenuo ciclo evolutivo conforme as
necessidades de mercado e tambeacutem para acompanhamento de tecnologias que surgem
Fato este o crescimento da utilizaccedilatildeo das redes de computadores tem levado as
empresas a adotar cada vez mais novas tecnologias que estatildeo sendo amplamente difundidas
e que almejam resultados confiaacuteveis Neste contexto o Servidor de Aplicaccedilotildees JBoss
encontra-se em ascensatildeo por ser Open Source disponibiliza diversos recursos onde alguns
destes seratildeo abordados neste trabalho tais como Clustering balanceamento de carga JMX
arquivos baacutesicos de configuraccedilatildeo
Onde reunindo estes recursos em um uacutenico produto o JBoss tem levado grandes
empresas que utilizam ferramentas WEB a adotarem este servidor em suas aplicaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
12
ABSTRACT
The nets of computers didnt emerge suddenly as an only and independent technology
the same case is applied to the systems that crossed several stages before his final application
and they continue in an I click evolutionary I continue according to the market needs and
attendance of technologies
Fact this the growth of the use of the nets of computers it has been taking the
companies to adopt more and more new technologies that are being spread thoroughly and
that youthey long for reliable results In this context JBoss Application Server is in ascension
for being Open Source it makes available several resources where some of these will be
aborted in this research fact this gathering their resources has been taking great companies
that are used of tools WEB adopt it this servant in their applications The present work
approaches some resources of the application servant such JBoss as Clustering load
swinging JMX basic files of configuration
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
13
1 INTRODUCcedilAtildeO
Application Servers ou servidores de aplicaccedilatildeo satildeo sistemas de software que
fornecem a infraestrutura de serviccedilos para a execuccedilatildeo de aplicaccedilotildees distribuiacutedas Os
servidores de aplicaccedilatildeo satildeo executados em maacutequinas servidoras e satildeo acessados pelos clientes
atraveacutes de uma conexatildeo de rede (LABOUREY BURKE 2002)As vantagens dos servidores de aplicaccedilatildeo em relaccedilatildeo ao modelo clienteservidor
residem nos serviccedilos implementados por eles e disponiacuteveis pelo qual as empresas possam
concentrar a maior parte do tempo no desenvolvimento da loacutegica de negoacutecio Em geral estes
serviccedilos diminuem a complexidade do desenvolvimento controlam o fluxo de dados e
gerenciam a seguranccedila
Um servidor de aplicaccedilatildeo eacute uma plataforma sobre a qual roda a porccedilatildeo servidora de
um aplicativo Isto inclui hardware e software O hardware estaacute fora do escopo deste
trabalho mas o software pode ser dividido em dois grupos funccedilotildees do negoacutecio que satildeo
especiacuteficas para um domiacutenio de problema e serviccedilos especializados que satildeo funccedilotildees
geneacutericas aplicaacuteveis a diversas soluccedilotildees
Assim do ponto de vista do software um servidor de aplicaccedilatildeo consiste de um
agrupamento de funccedilotildees de negoacutecios e de serviccedilos que integrados satisfazem as necessidades
dos usuaacuterios
O servidor de aplicaccedilatildeo utiliza a arquitetura chamada de 3-camadas ou n-camadas que
permite um melhor aproveitamento das caracteriacutesticas de cada componente (servidor debanco de dados servidor de aplicaccedilatildeo e cliente)
A primeira camada chamada Front-End usualmente Browsers servem para
apresentaccedilatildeo e algumas validaccedilotildees A segunda camada eacute a aplicaccedilatildeo sendo executada no
servidor de aplicaccedilatildeo A terceira camada eacute o servidor de banco de dados
Os servidores de aplicaccedilatildeo priorizam o compartilhamento de componentes e
aplicaccedilotildees fazendo assim com que seja mais faacutecil o desenvolvimento manutenccedilatildeo e
gerenciamento de sistemas complexos
Aleacutem das caracteriacutesticas jaacute citadas outros serviccedilos tambeacutem estatildeo disponiacuteveis nos
servidores de aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
14
bull Toleracircncia agrave falhas atraveacutes de poliacuteticas para recuperaccedilatildeo e distribuiccedilatildeo de
componentes em clones dos servidores
bull Balanceamento de carga a anaacutelise da carga nos servidores permite a distribuiccedilatildeo de
clientes de forma a maximizar a utilizaccedilatildeo dos recursos disponiacuteveis (ver capiacutetulo 3 seccedilatildeo36)
bull Gerenciamento dos componentes atraveacutes de ferramentas para a manipulaccedilatildeo de
componentes e serviccedilos tais como gerenciamento de sessatildeo notificaccedilatildeo distribuiccedilatildeo da
loacutegica de negoacutecios
bull Gerenciamento de transaccedilotildees garante a integridade da transaccedilatildeo em ambientes
distribuiacutedos
bull Console de gerenciamento permite o gerenciamento de vaacuterios servidores de aplicaccedilatildeo
atraveacutes de um uacutenico sistema graacutefico ndash conforme figura 1 exemplo de gerenciamento de
web-console do JBoss
bull Seguranccedila garante a seguranccedila da aplicaccedilatildeo (ver capiacutetulo 3 seccedilatildeo 39)
Figura 1 ndash Tela de gerenciamento de web-console do JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
15
Particularmente os servidores de aplicaccedilatildeo podem ser executados em muacuteltiplos
sistemas operacionais como Solaris Linux e Windows o que permite que seja aceitaacutevel o
desenvolvimento em uma plataforma e sua publicaccedilatildeo para produccedilatildeo em outra
Atualmente com o aumento das aplicaccedilotildees baseadas em ambiente WEB muitos
profissionais e empresas vinculadas a esta aacuterea buscam soluccedilotildees que possam agilizar prover
seguranccedila escalabilidade a cada tarefa a ser executada e onde se pode encaixar o Jboss as
estas necessidades
Servidor de Aplicaccedilatildeo JBoss surgiu destacando-se no mundo J2EE (ver capiacutetulo 2seccedilatildeo 21) e Open Source (ver capiacutetulo 2 seccedilatildeo 25) pelo qual algumas empresas constantes
na tabela 1 empregam esta tecnologia
Accenture AMD American FidelityArch Wireless BASF BuyMediaCalifornia ISO Celeris CTICorporate Express Deloitte amp Touche Dow Jones IndexesEA Games ndash Sims Online Elogex Ericom SoftwareFGM Genscape Hitachi Data SystemsLastMinuteTravelcom LeapFrog Wells FargoLesson Lab Lion Bio Sciences McDonaldsMcKesson MCI Mitre ndash DISA-DARPAMotorola Motability New York Court AdministrationNextance Nielsen Media Research Nortel NetworksNuasis Playboycom PrimusSabre ndash GetThere Schlumberger SiemensQAD US Department of State WebMethods
Tabela 1 ndash Empresa que utilizam o Servidor de Aplicaccedilotildees JBoss ndash (JBOSS 1999)
Os Sistemas Distribuiacutedos atualmente necessitam mais do que nunca dispor das
seguintes caracteriacutesticas
ldquoUm sistema paralelo ou distribuiacutedo que consiste na coleccedilatildeo decomputadores interconectados que satildeo utilizados como um soacuteunificando seus recursos computacionaisrdquo (G Pfister um dosarquitetos da tecnologia de clusters) (BUNT)
bull Flexibilidade Capacidade de poder sofrer mudanccedilas Eacute evidente que para isso a ideacuteia
eacute de que este sistema natildeo perca sua identidade e que estas mudanccedilas natildeo sejam tatildeo
complexas de serem realizadas a ponto de desperdiccedilar recursos ou ateacute mesmo ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
8
LISTA DE ILUSTRACcedilOtildeES
FIGURA 01 - TELA DE GERENCIAMENTO DE WEB-CONSOLE DO JBOSS 14
FIGURA 02 - ARQUITETURA DA PLATAFORMA J2EE 20
FIGURA 03 - CONTAINERS 21
FIGURA 04 - PARTICcedilOtildeES 35
FIGURA 05 - ARQUITETURA JMX 38
FIGURA 06 - EXECUCcedilAtildeO DO COMANDO JAVA ndashVERSION 42
FIGURA 07 - EXECUCcedilAtildeO DO COMANDO SET 43
FIGURA 08 - MODELOS DE ARQUIVOS DE CONFIGURACcedilAtildeO 44
FIGURA 09 - TEMPO PARA CARREGAMENTO DO SERVIDOR JBOSS 45
FIGURA 10 - TELA DE CONFIGURACcedilAtildeO JMX-CONSOLE DO SERVIDOR JBOSS 46
FIGURA 11 - TELA DE CONFIGURACcedilAtildeO DO TOMCAT 47
FIGURA 12 - ESTRUTURA DE DIRETOacuteRIOS NO JBOSS 49
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
9
LISTA DE TABELAS
TABELA 1 - EMPRESAS QUE UTILIZAM O SERVIDOR DE APLICACcedilOtildeES
JBOSS 15
TABELA 2 - DIFERENCcedilAS BMP-CMP23
TABELA 3 - AMOSTRA PERMISSAtildeO PARA TEMPO DE MANUTENCcedilAtildeO POR
PROPORCcedilOtildeES DE HA33
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
10
LISTA DE ABREVIATURAS E LISTA DE SIGLAS
API ndash Application Program Interface
CPU - Central Unit of Processing
DTD - Document Type Definition
EJB - Enterprise Java Beans
HTML - HyperText Markup Language
IDE - Integrated Development Environment
IIOP ndash Internet Inter-Orb Protocol
J2EE ndash Java Enterprise Edition
JAR - Java Archive
JDBC ndash Java Database Connectivity (JDBC) API
JDK ndash Java Development Kit
JMX - Java Management Extension
JNDI ndash Java Name Directory Interface
JPE - Java Plataform for the Enterprise
JMS ndash Java Message Service
JSP ndash Java Server Pages
JTA ndash Java Transaction API
JTS ndash Java Transaction Server
JRMP - Java Remote Method Protocol
OSI ndash Open Source Initiative
RMI - Remote Method Invocation
SO ndash Sistema Operacional
URL ndash Uniform Resource Locators
XML ndash Extensible Markup Language
WWW ndash World Web Wide
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
11
RESUMO
As redes de computadores natildeo emergiram repentinamente como uma tecnologia uacutenica
e independente e a mesma deve se aplicar aos sistemas que atravessaram diversas etapas
antes de sua aplicaccedilatildeo final e continuam em um contiacutenuo ciclo evolutivo conforme as
necessidades de mercado e tambeacutem para acompanhamento de tecnologias que surgem
Fato este o crescimento da utilizaccedilatildeo das redes de computadores tem levado as
empresas a adotar cada vez mais novas tecnologias que estatildeo sendo amplamente difundidas
e que almejam resultados confiaacuteveis Neste contexto o Servidor de Aplicaccedilotildees JBoss
encontra-se em ascensatildeo por ser Open Source disponibiliza diversos recursos onde alguns
destes seratildeo abordados neste trabalho tais como Clustering balanceamento de carga JMX
arquivos baacutesicos de configuraccedilatildeo
Onde reunindo estes recursos em um uacutenico produto o JBoss tem levado grandes
empresas que utilizam ferramentas WEB a adotarem este servidor em suas aplicaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
12
ABSTRACT
The nets of computers didnt emerge suddenly as an only and independent technology
the same case is applied to the systems that crossed several stages before his final application
and they continue in an I click evolutionary I continue according to the market needs and
attendance of technologies
Fact this the growth of the use of the nets of computers it has been taking the
companies to adopt more and more new technologies that are being spread thoroughly and
that youthey long for reliable results In this context JBoss Application Server is in ascension
for being Open Source it makes available several resources where some of these will be
aborted in this research fact this gathering their resources has been taking great companies
that are used of tools WEB adopt it this servant in their applications The present work
approaches some resources of the application servant such JBoss as Clustering load
swinging JMX basic files of configuration
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
13
1 INTRODUCcedilAtildeO
Application Servers ou servidores de aplicaccedilatildeo satildeo sistemas de software que
fornecem a infraestrutura de serviccedilos para a execuccedilatildeo de aplicaccedilotildees distribuiacutedas Os
servidores de aplicaccedilatildeo satildeo executados em maacutequinas servidoras e satildeo acessados pelos clientes
atraveacutes de uma conexatildeo de rede (LABOUREY BURKE 2002)As vantagens dos servidores de aplicaccedilatildeo em relaccedilatildeo ao modelo clienteservidor
residem nos serviccedilos implementados por eles e disponiacuteveis pelo qual as empresas possam
concentrar a maior parte do tempo no desenvolvimento da loacutegica de negoacutecio Em geral estes
serviccedilos diminuem a complexidade do desenvolvimento controlam o fluxo de dados e
gerenciam a seguranccedila
Um servidor de aplicaccedilatildeo eacute uma plataforma sobre a qual roda a porccedilatildeo servidora de
um aplicativo Isto inclui hardware e software O hardware estaacute fora do escopo deste
trabalho mas o software pode ser dividido em dois grupos funccedilotildees do negoacutecio que satildeo
especiacuteficas para um domiacutenio de problema e serviccedilos especializados que satildeo funccedilotildees
geneacutericas aplicaacuteveis a diversas soluccedilotildees
Assim do ponto de vista do software um servidor de aplicaccedilatildeo consiste de um
agrupamento de funccedilotildees de negoacutecios e de serviccedilos que integrados satisfazem as necessidades
dos usuaacuterios
O servidor de aplicaccedilatildeo utiliza a arquitetura chamada de 3-camadas ou n-camadas que
permite um melhor aproveitamento das caracteriacutesticas de cada componente (servidor debanco de dados servidor de aplicaccedilatildeo e cliente)
A primeira camada chamada Front-End usualmente Browsers servem para
apresentaccedilatildeo e algumas validaccedilotildees A segunda camada eacute a aplicaccedilatildeo sendo executada no
servidor de aplicaccedilatildeo A terceira camada eacute o servidor de banco de dados
Os servidores de aplicaccedilatildeo priorizam o compartilhamento de componentes e
aplicaccedilotildees fazendo assim com que seja mais faacutecil o desenvolvimento manutenccedilatildeo e
gerenciamento de sistemas complexos
Aleacutem das caracteriacutesticas jaacute citadas outros serviccedilos tambeacutem estatildeo disponiacuteveis nos
servidores de aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
14
bull Toleracircncia agrave falhas atraveacutes de poliacuteticas para recuperaccedilatildeo e distribuiccedilatildeo de
componentes em clones dos servidores
bull Balanceamento de carga a anaacutelise da carga nos servidores permite a distribuiccedilatildeo de
clientes de forma a maximizar a utilizaccedilatildeo dos recursos disponiacuteveis (ver capiacutetulo 3 seccedilatildeo36)
bull Gerenciamento dos componentes atraveacutes de ferramentas para a manipulaccedilatildeo de
componentes e serviccedilos tais como gerenciamento de sessatildeo notificaccedilatildeo distribuiccedilatildeo da
loacutegica de negoacutecios
bull Gerenciamento de transaccedilotildees garante a integridade da transaccedilatildeo em ambientes
distribuiacutedos
bull Console de gerenciamento permite o gerenciamento de vaacuterios servidores de aplicaccedilatildeo
atraveacutes de um uacutenico sistema graacutefico ndash conforme figura 1 exemplo de gerenciamento de
web-console do JBoss
bull Seguranccedila garante a seguranccedila da aplicaccedilatildeo (ver capiacutetulo 3 seccedilatildeo 39)
Figura 1 ndash Tela de gerenciamento de web-console do JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
15
Particularmente os servidores de aplicaccedilatildeo podem ser executados em muacuteltiplos
sistemas operacionais como Solaris Linux e Windows o que permite que seja aceitaacutevel o
desenvolvimento em uma plataforma e sua publicaccedilatildeo para produccedilatildeo em outra
Atualmente com o aumento das aplicaccedilotildees baseadas em ambiente WEB muitos
profissionais e empresas vinculadas a esta aacuterea buscam soluccedilotildees que possam agilizar prover
seguranccedila escalabilidade a cada tarefa a ser executada e onde se pode encaixar o Jboss as
estas necessidades
Servidor de Aplicaccedilatildeo JBoss surgiu destacando-se no mundo J2EE (ver capiacutetulo 2seccedilatildeo 21) e Open Source (ver capiacutetulo 2 seccedilatildeo 25) pelo qual algumas empresas constantes
na tabela 1 empregam esta tecnologia
Accenture AMD American FidelityArch Wireless BASF BuyMediaCalifornia ISO Celeris CTICorporate Express Deloitte amp Touche Dow Jones IndexesEA Games ndash Sims Online Elogex Ericom SoftwareFGM Genscape Hitachi Data SystemsLastMinuteTravelcom LeapFrog Wells FargoLesson Lab Lion Bio Sciences McDonaldsMcKesson MCI Mitre ndash DISA-DARPAMotorola Motability New York Court AdministrationNextance Nielsen Media Research Nortel NetworksNuasis Playboycom PrimusSabre ndash GetThere Schlumberger SiemensQAD US Department of State WebMethods
Tabela 1 ndash Empresa que utilizam o Servidor de Aplicaccedilotildees JBoss ndash (JBOSS 1999)
Os Sistemas Distribuiacutedos atualmente necessitam mais do que nunca dispor das
seguintes caracteriacutesticas
ldquoUm sistema paralelo ou distribuiacutedo que consiste na coleccedilatildeo decomputadores interconectados que satildeo utilizados como um soacuteunificando seus recursos computacionaisrdquo (G Pfister um dosarquitetos da tecnologia de clusters) (BUNT)
bull Flexibilidade Capacidade de poder sofrer mudanccedilas Eacute evidente que para isso a ideacuteia
eacute de que este sistema natildeo perca sua identidade e que estas mudanccedilas natildeo sejam tatildeo
complexas de serem realizadas a ponto de desperdiccedilar recursos ou ateacute mesmo ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
9
LISTA DE TABELAS
TABELA 1 - EMPRESAS QUE UTILIZAM O SERVIDOR DE APLICACcedilOtildeES
JBOSS 15
TABELA 2 - DIFERENCcedilAS BMP-CMP23
TABELA 3 - AMOSTRA PERMISSAtildeO PARA TEMPO DE MANUTENCcedilAtildeO POR
PROPORCcedilOtildeES DE HA33
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
10
LISTA DE ABREVIATURAS E LISTA DE SIGLAS
API ndash Application Program Interface
CPU - Central Unit of Processing
DTD - Document Type Definition
EJB - Enterprise Java Beans
HTML - HyperText Markup Language
IDE - Integrated Development Environment
IIOP ndash Internet Inter-Orb Protocol
J2EE ndash Java Enterprise Edition
JAR - Java Archive
JDBC ndash Java Database Connectivity (JDBC) API
JDK ndash Java Development Kit
JMX - Java Management Extension
JNDI ndash Java Name Directory Interface
JPE - Java Plataform for the Enterprise
JMS ndash Java Message Service
JSP ndash Java Server Pages
JTA ndash Java Transaction API
JTS ndash Java Transaction Server
JRMP - Java Remote Method Protocol
OSI ndash Open Source Initiative
RMI - Remote Method Invocation
SO ndash Sistema Operacional
URL ndash Uniform Resource Locators
XML ndash Extensible Markup Language
WWW ndash World Web Wide
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
11
RESUMO
As redes de computadores natildeo emergiram repentinamente como uma tecnologia uacutenica
e independente e a mesma deve se aplicar aos sistemas que atravessaram diversas etapas
antes de sua aplicaccedilatildeo final e continuam em um contiacutenuo ciclo evolutivo conforme as
necessidades de mercado e tambeacutem para acompanhamento de tecnologias que surgem
Fato este o crescimento da utilizaccedilatildeo das redes de computadores tem levado as
empresas a adotar cada vez mais novas tecnologias que estatildeo sendo amplamente difundidas
e que almejam resultados confiaacuteveis Neste contexto o Servidor de Aplicaccedilotildees JBoss
encontra-se em ascensatildeo por ser Open Source disponibiliza diversos recursos onde alguns
destes seratildeo abordados neste trabalho tais como Clustering balanceamento de carga JMX
arquivos baacutesicos de configuraccedilatildeo
Onde reunindo estes recursos em um uacutenico produto o JBoss tem levado grandes
empresas que utilizam ferramentas WEB a adotarem este servidor em suas aplicaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
12
ABSTRACT
The nets of computers didnt emerge suddenly as an only and independent technology
the same case is applied to the systems that crossed several stages before his final application
and they continue in an I click evolutionary I continue according to the market needs and
attendance of technologies
Fact this the growth of the use of the nets of computers it has been taking the
companies to adopt more and more new technologies that are being spread thoroughly and
that youthey long for reliable results In this context JBoss Application Server is in ascension
for being Open Source it makes available several resources where some of these will be
aborted in this research fact this gathering their resources has been taking great companies
that are used of tools WEB adopt it this servant in their applications The present work
approaches some resources of the application servant such JBoss as Clustering load
swinging JMX basic files of configuration
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
13
1 INTRODUCcedilAtildeO
Application Servers ou servidores de aplicaccedilatildeo satildeo sistemas de software que
fornecem a infraestrutura de serviccedilos para a execuccedilatildeo de aplicaccedilotildees distribuiacutedas Os
servidores de aplicaccedilatildeo satildeo executados em maacutequinas servidoras e satildeo acessados pelos clientes
atraveacutes de uma conexatildeo de rede (LABOUREY BURKE 2002)As vantagens dos servidores de aplicaccedilatildeo em relaccedilatildeo ao modelo clienteservidor
residem nos serviccedilos implementados por eles e disponiacuteveis pelo qual as empresas possam
concentrar a maior parte do tempo no desenvolvimento da loacutegica de negoacutecio Em geral estes
serviccedilos diminuem a complexidade do desenvolvimento controlam o fluxo de dados e
gerenciam a seguranccedila
Um servidor de aplicaccedilatildeo eacute uma plataforma sobre a qual roda a porccedilatildeo servidora de
um aplicativo Isto inclui hardware e software O hardware estaacute fora do escopo deste
trabalho mas o software pode ser dividido em dois grupos funccedilotildees do negoacutecio que satildeo
especiacuteficas para um domiacutenio de problema e serviccedilos especializados que satildeo funccedilotildees
geneacutericas aplicaacuteveis a diversas soluccedilotildees
Assim do ponto de vista do software um servidor de aplicaccedilatildeo consiste de um
agrupamento de funccedilotildees de negoacutecios e de serviccedilos que integrados satisfazem as necessidades
dos usuaacuterios
O servidor de aplicaccedilatildeo utiliza a arquitetura chamada de 3-camadas ou n-camadas que
permite um melhor aproveitamento das caracteriacutesticas de cada componente (servidor debanco de dados servidor de aplicaccedilatildeo e cliente)
A primeira camada chamada Front-End usualmente Browsers servem para
apresentaccedilatildeo e algumas validaccedilotildees A segunda camada eacute a aplicaccedilatildeo sendo executada no
servidor de aplicaccedilatildeo A terceira camada eacute o servidor de banco de dados
Os servidores de aplicaccedilatildeo priorizam o compartilhamento de componentes e
aplicaccedilotildees fazendo assim com que seja mais faacutecil o desenvolvimento manutenccedilatildeo e
gerenciamento de sistemas complexos
Aleacutem das caracteriacutesticas jaacute citadas outros serviccedilos tambeacutem estatildeo disponiacuteveis nos
servidores de aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
14
bull Toleracircncia agrave falhas atraveacutes de poliacuteticas para recuperaccedilatildeo e distribuiccedilatildeo de
componentes em clones dos servidores
bull Balanceamento de carga a anaacutelise da carga nos servidores permite a distribuiccedilatildeo de
clientes de forma a maximizar a utilizaccedilatildeo dos recursos disponiacuteveis (ver capiacutetulo 3 seccedilatildeo36)
bull Gerenciamento dos componentes atraveacutes de ferramentas para a manipulaccedilatildeo de
componentes e serviccedilos tais como gerenciamento de sessatildeo notificaccedilatildeo distribuiccedilatildeo da
loacutegica de negoacutecios
bull Gerenciamento de transaccedilotildees garante a integridade da transaccedilatildeo em ambientes
distribuiacutedos
bull Console de gerenciamento permite o gerenciamento de vaacuterios servidores de aplicaccedilatildeo
atraveacutes de um uacutenico sistema graacutefico ndash conforme figura 1 exemplo de gerenciamento de
web-console do JBoss
bull Seguranccedila garante a seguranccedila da aplicaccedilatildeo (ver capiacutetulo 3 seccedilatildeo 39)
Figura 1 ndash Tela de gerenciamento de web-console do JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
15
Particularmente os servidores de aplicaccedilatildeo podem ser executados em muacuteltiplos
sistemas operacionais como Solaris Linux e Windows o que permite que seja aceitaacutevel o
desenvolvimento em uma plataforma e sua publicaccedilatildeo para produccedilatildeo em outra
Atualmente com o aumento das aplicaccedilotildees baseadas em ambiente WEB muitos
profissionais e empresas vinculadas a esta aacuterea buscam soluccedilotildees que possam agilizar prover
seguranccedila escalabilidade a cada tarefa a ser executada e onde se pode encaixar o Jboss as
estas necessidades
Servidor de Aplicaccedilatildeo JBoss surgiu destacando-se no mundo J2EE (ver capiacutetulo 2seccedilatildeo 21) e Open Source (ver capiacutetulo 2 seccedilatildeo 25) pelo qual algumas empresas constantes
na tabela 1 empregam esta tecnologia
Accenture AMD American FidelityArch Wireless BASF BuyMediaCalifornia ISO Celeris CTICorporate Express Deloitte amp Touche Dow Jones IndexesEA Games ndash Sims Online Elogex Ericom SoftwareFGM Genscape Hitachi Data SystemsLastMinuteTravelcom LeapFrog Wells FargoLesson Lab Lion Bio Sciences McDonaldsMcKesson MCI Mitre ndash DISA-DARPAMotorola Motability New York Court AdministrationNextance Nielsen Media Research Nortel NetworksNuasis Playboycom PrimusSabre ndash GetThere Schlumberger SiemensQAD US Department of State WebMethods
Tabela 1 ndash Empresa que utilizam o Servidor de Aplicaccedilotildees JBoss ndash (JBOSS 1999)
Os Sistemas Distribuiacutedos atualmente necessitam mais do que nunca dispor das
seguintes caracteriacutesticas
ldquoUm sistema paralelo ou distribuiacutedo que consiste na coleccedilatildeo decomputadores interconectados que satildeo utilizados como um soacuteunificando seus recursos computacionaisrdquo (G Pfister um dosarquitetos da tecnologia de clusters) (BUNT)
bull Flexibilidade Capacidade de poder sofrer mudanccedilas Eacute evidente que para isso a ideacuteia
eacute de que este sistema natildeo perca sua identidade e que estas mudanccedilas natildeo sejam tatildeo
complexas de serem realizadas a ponto de desperdiccedilar recursos ou ateacute mesmo ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
10
LISTA DE ABREVIATURAS E LISTA DE SIGLAS
API ndash Application Program Interface
CPU - Central Unit of Processing
DTD - Document Type Definition
EJB - Enterprise Java Beans
HTML - HyperText Markup Language
IDE - Integrated Development Environment
IIOP ndash Internet Inter-Orb Protocol
J2EE ndash Java Enterprise Edition
JAR - Java Archive
JDBC ndash Java Database Connectivity (JDBC) API
JDK ndash Java Development Kit
JMX - Java Management Extension
JNDI ndash Java Name Directory Interface
JPE - Java Plataform for the Enterprise
JMS ndash Java Message Service
JSP ndash Java Server Pages
JTA ndash Java Transaction API
JTS ndash Java Transaction Server
JRMP - Java Remote Method Protocol
OSI ndash Open Source Initiative
RMI - Remote Method Invocation
SO ndash Sistema Operacional
URL ndash Uniform Resource Locators
XML ndash Extensible Markup Language
WWW ndash World Web Wide
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
11
RESUMO
As redes de computadores natildeo emergiram repentinamente como uma tecnologia uacutenica
e independente e a mesma deve se aplicar aos sistemas que atravessaram diversas etapas
antes de sua aplicaccedilatildeo final e continuam em um contiacutenuo ciclo evolutivo conforme as
necessidades de mercado e tambeacutem para acompanhamento de tecnologias que surgem
Fato este o crescimento da utilizaccedilatildeo das redes de computadores tem levado as
empresas a adotar cada vez mais novas tecnologias que estatildeo sendo amplamente difundidas
e que almejam resultados confiaacuteveis Neste contexto o Servidor de Aplicaccedilotildees JBoss
encontra-se em ascensatildeo por ser Open Source disponibiliza diversos recursos onde alguns
destes seratildeo abordados neste trabalho tais como Clustering balanceamento de carga JMX
arquivos baacutesicos de configuraccedilatildeo
Onde reunindo estes recursos em um uacutenico produto o JBoss tem levado grandes
empresas que utilizam ferramentas WEB a adotarem este servidor em suas aplicaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
12
ABSTRACT
The nets of computers didnt emerge suddenly as an only and independent technology
the same case is applied to the systems that crossed several stages before his final application
and they continue in an I click evolutionary I continue according to the market needs and
attendance of technologies
Fact this the growth of the use of the nets of computers it has been taking the
companies to adopt more and more new technologies that are being spread thoroughly and
that youthey long for reliable results In this context JBoss Application Server is in ascension
for being Open Source it makes available several resources where some of these will be
aborted in this research fact this gathering their resources has been taking great companies
that are used of tools WEB adopt it this servant in their applications The present work
approaches some resources of the application servant such JBoss as Clustering load
swinging JMX basic files of configuration
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
13
1 INTRODUCcedilAtildeO
Application Servers ou servidores de aplicaccedilatildeo satildeo sistemas de software que
fornecem a infraestrutura de serviccedilos para a execuccedilatildeo de aplicaccedilotildees distribuiacutedas Os
servidores de aplicaccedilatildeo satildeo executados em maacutequinas servidoras e satildeo acessados pelos clientes
atraveacutes de uma conexatildeo de rede (LABOUREY BURKE 2002)As vantagens dos servidores de aplicaccedilatildeo em relaccedilatildeo ao modelo clienteservidor
residem nos serviccedilos implementados por eles e disponiacuteveis pelo qual as empresas possam
concentrar a maior parte do tempo no desenvolvimento da loacutegica de negoacutecio Em geral estes
serviccedilos diminuem a complexidade do desenvolvimento controlam o fluxo de dados e
gerenciam a seguranccedila
Um servidor de aplicaccedilatildeo eacute uma plataforma sobre a qual roda a porccedilatildeo servidora de
um aplicativo Isto inclui hardware e software O hardware estaacute fora do escopo deste
trabalho mas o software pode ser dividido em dois grupos funccedilotildees do negoacutecio que satildeo
especiacuteficas para um domiacutenio de problema e serviccedilos especializados que satildeo funccedilotildees
geneacutericas aplicaacuteveis a diversas soluccedilotildees
Assim do ponto de vista do software um servidor de aplicaccedilatildeo consiste de um
agrupamento de funccedilotildees de negoacutecios e de serviccedilos que integrados satisfazem as necessidades
dos usuaacuterios
O servidor de aplicaccedilatildeo utiliza a arquitetura chamada de 3-camadas ou n-camadas que
permite um melhor aproveitamento das caracteriacutesticas de cada componente (servidor debanco de dados servidor de aplicaccedilatildeo e cliente)
A primeira camada chamada Front-End usualmente Browsers servem para
apresentaccedilatildeo e algumas validaccedilotildees A segunda camada eacute a aplicaccedilatildeo sendo executada no
servidor de aplicaccedilatildeo A terceira camada eacute o servidor de banco de dados
Os servidores de aplicaccedilatildeo priorizam o compartilhamento de componentes e
aplicaccedilotildees fazendo assim com que seja mais faacutecil o desenvolvimento manutenccedilatildeo e
gerenciamento de sistemas complexos
Aleacutem das caracteriacutesticas jaacute citadas outros serviccedilos tambeacutem estatildeo disponiacuteveis nos
servidores de aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
14
bull Toleracircncia agrave falhas atraveacutes de poliacuteticas para recuperaccedilatildeo e distribuiccedilatildeo de
componentes em clones dos servidores
bull Balanceamento de carga a anaacutelise da carga nos servidores permite a distribuiccedilatildeo de
clientes de forma a maximizar a utilizaccedilatildeo dos recursos disponiacuteveis (ver capiacutetulo 3 seccedilatildeo36)
bull Gerenciamento dos componentes atraveacutes de ferramentas para a manipulaccedilatildeo de
componentes e serviccedilos tais como gerenciamento de sessatildeo notificaccedilatildeo distribuiccedilatildeo da
loacutegica de negoacutecios
bull Gerenciamento de transaccedilotildees garante a integridade da transaccedilatildeo em ambientes
distribuiacutedos
bull Console de gerenciamento permite o gerenciamento de vaacuterios servidores de aplicaccedilatildeo
atraveacutes de um uacutenico sistema graacutefico ndash conforme figura 1 exemplo de gerenciamento de
web-console do JBoss
bull Seguranccedila garante a seguranccedila da aplicaccedilatildeo (ver capiacutetulo 3 seccedilatildeo 39)
Figura 1 ndash Tela de gerenciamento de web-console do JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
15
Particularmente os servidores de aplicaccedilatildeo podem ser executados em muacuteltiplos
sistemas operacionais como Solaris Linux e Windows o que permite que seja aceitaacutevel o
desenvolvimento em uma plataforma e sua publicaccedilatildeo para produccedilatildeo em outra
Atualmente com o aumento das aplicaccedilotildees baseadas em ambiente WEB muitos
profissionais e empresas vinculadas a esta aacuterea buscam soluccedilotildees que possam agilizar prover
seguranccedila escalabilidade a cada tarefa a ser executada e onde se pode encaixar o Jboss as
estas necessidades
Servidor de Aplicaccedilatildeo JBoss surgiu destacando-se no mundo J2EE (ver capiacutetulo 2seccedilatildeo 21) e Open Source (ver capiacutetulo 2 seccedilatildeo 25) pelo qual algumas empresas constantes
na tabela 1 empregam esta tecnologia
Accenture AMD American FidelityArch Wireless BASF BuyMediaCalifornia ISO Celeris CTICorporate Express Deloitte amp Touche Dow Jones IndexesEA Games ndash Sims Online Elogex Ericom SoftwareFGM Genscape Hitachi Data SystemsLastMinuteTravelcom LeapFrog Wells FargoLesson Lab Lion Bio Sciences McDonaldsMcKesson MCI Mitre ndash DISA-DARPAMotorola Motability New York Court AdministrationNextance Nielsen Media Research Nortel NetworksNuasis Playboycom PrimusSabre ndash GetThere Schlumberger SiemensQAD US Department of State WebMethods
Tabela 1 ndash Empresa que utilizam o Servidor de Aplicaccedilotildees JBoss ndash (JBOSS 1999)
Os Sistemas Distribuiacutedos atualmente necessitam mais do que nunca dispor das
seguintes caracteriacutesticas
ldquoUm sistema paralelo ou distribuiacutedo que consiste na coleccedilatildeo decomputadores interconectados que satildeo utilizados como um soacuteunificando seus recursos computacionaisrdquo (G Pfister um dosarquitetos da tecnologia de clusters) (BUNT)
bull Flexibilidade Capacidade de poder sofrer mudanccedilas Eacute evidente que para isso a ideacuteia
eacute de que este sistema natildeo perca sua identidade e que estas mudanccedilas natildeo sejam tatildeo
complexas de serem realizadas a ponto de desperdiccedilar recursos ou ateacute mesmo ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
11
RESUMO
As redes de computadores natildeo emergiram repentinamente como uma tecnologia uacutenica
e independente e a mesma deve se aplicar aos sistemas que atravessaram diversas etapas
antes de sua aplicaccedilatildeo final e continuam em um contiacutenuo ciclo evolutivo conforme as
necessidades de mercado e tambeacutem para acompanhamento de tecnologias que surgem
Fato este o crescimento da utilizaccedilatildeo das redes de computadores tem levado as
empresas a adotar cada vez mais novas tecnologias que estatildeo sendo amplamente difundidas
e que almejam resultados confiaacuteveis Neste contexto o Servidor de Aplicaccedilotildees JBoss
encontra-se em ascensatildeo por ser Open Source disponibiliza diversos recursos onde alguns
destes seratildeo abordados neste trabalho tais como Clustering balanceamento de carga JMX
arquivos baacutesicos de configuraccedilatildeo
Onde reunindo estes recursos em um uacutenico produto o JBoss tem levado grandes
empresas que utilizam ferramentas WEB a adotarem este servidor em suas aplicaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
12
ABSTRACT
The nets of computers didnt emerge suddenly as an only and independent technology
the same case is applied to the systems that crossed several stages before his final application
and they continue in an I click evolutionary I continue according to the market needs and
attendance of technologies
Fact this the growth of the use of the nets of computers it has been taking the
companies to adopt more and more new technologies that are being spread thoroughly and
that youthey long for reliable results In this context JBoss Application Server is in ascension
for being Open Source it makes available several resources where some of these will be
aborted in this research fact this gathering their resources has been taking great companies
that are used of tools WEB adopt it this servant in their applications The present work
approaches some resources of the application servant such JBoss as Clustering load
swinging JMX basic files of configuration
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
13
1 INTRODUCcedilAtildeO
Application Servers ou servidores de aplicaccedilatildeo satildeo sistemas de software que
fornecem a infraestrutura de serviccedilos para a execuccedilatildeo de aplicaccedilotildees distribuiacutedas Os
servidores de aplicaccedilatildeo satildeo executados em maacutequinas servidoras e satildeo acessados pelos clientes
atraveacutes de uma conexatildeo de rede (LABOUREY BURKE 2002)As vantagens dos servidores de aplicaccedilatildeo em relaccedilatildeo ao modelo clienteservidor
residem nos serviccedilos implementados por eles e disponiacuteveis pelo qual as empresas possam
concentrar a maior parte do tempo no desenvolvimento da loacutegica de negoacutecio Em geral estes
serviccedilos diminuem a complexidade do desenvolvimento controlam o fluxo de dados e
gerenciam a seguranccedila
Um servidor de aplicaccedilatildeo eacute uma plataforma sobre a qual roda a porccedilatildeo servidora de
um aplicativo Isto inclui hardware e software O hardware estaacute fora do escopo deste
trabalho mas o software pode ser dividido em dois grupos funccedilotildees do negoacutecio que satildeo
especiacuteficas para um domiacutenio de problema e serviccedilos especializados que satildeo funccedilotildees
geneacutericas aplicaacuteveis a diversas soluccedilotildees
Assim do ponto de vista do software um servidor de aplicaccedilatildeo consiste de um
agrupamento de funccedilotildees de negoacutecios e de serviccedilos que integrados satisfazem as necessidades
dos usuaacuterios
O servidor de aplicaccedilatildeo utiliza a arquitetura chamada de 3-camadas ou n-camadas que
permite um melhor aproveitamento das caracteriacutesticas de cada componente (servidor debanco de dados servidor de aplicaccedilatildeo e cliente)
A primeira camada chamada Front-End usualmente Browsers servem para
apresentaccedilatildeo e algumas validaccedilotildees A segunda camada eacute a aplicaccedilatildeo sendo executada no
servidor de aplicaccedilatildeo A terceira camada eacute o servidor de banco de dados
Os servidores de aplicaccedilatildeo priorizam o compartilhamento de componentes e
aplicaccedilotildees fazendo assim com que seja mais faacutecil o desenvolvimento manutenccedilatildeo e
gerenciamento de sistemas complexos
Aleacutem das caracteriacutesticas jaacute citadas outros serviccedilos tambeacutem estatildeo disponiacuteveis nos
servidores de aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
14
bull Toleracircncia agrave falhas atraveacutes de poliacuteticas para recuperaccedilatildeo e distribuiccedilatildeo de
componentes em clones dos servidores
bull Balanceamento de carga a anaacutelise da carga nos servidores permite a distribuiccedilatildeo de
clientes de forma a maximizar a utilizaccedilatildeo dos recursos disponiacuteveis (ver capiacutetulo 3 seccedilatildeo36)
bull Gerenciamento dos componentes atraveacutes de ferramentas para a manipulaccedilatildeo de
componentes e serviccedilos tais como gerenciamento de sessatildeo notificaccedilatildeo distribuiccedilatildeo da
loacutegica de negoacutecios
bull Gerenciamento de transaccedilotildees garante a integridade da transaccedilatildeo em ambientes
distribuiacutedos
bull Console de gerenciamento permite o gerenciamento de vaacuterios servidores de aplicaccedilatildeo
atraveacutes de um uacutenico sistema graacutefico ndash conforme figura 1 exemplo de gerenciamento de
web-console do JBoss
bull Seguranccedila garante a seguranccedila da aplicaccedilatildeo (ver capiacutetulo 3 seccedilatildeo 39)
Figura 1 ndash Tela de gerenciamento de web-console do JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
15
Particularmente os servidores de aplicaccedilatildeo podem ser executados em muacuteltiplos
sistemas operacionais como Solaris Linux e Windows o que permite que seja aceitaacutevel o
desenvolvimento em uma plataforma e sua publicaccedilatildeo para produccedilatildeo em outra
Atualmente com o aumento das aplicaccedilotildees baseadas em ambiente WEB muitos
profissionais e empresas vinculadas a esta aacuterea buscam soluccedilotildees que possam agilizar prover
seguranccedila escalabilidade a cada tarefa a ser executada e onde se pode encaixar o Jboss as
estas necessidades
Servidor de Aplicaccedilatildeo JBoss surgiu destacando-se no mundo J2EE (ver capiacutetulo 2seccedilatildeo 21) e Open Source (ver capiacutetulo 2 seccedilatildeo 25) pelo qual algumas empresas constantes
na tabela 1 empregam esta tecnologia
Accenture AMD American FidelityArch Wireless BASF BuyMediaCalifornia ISO Celeris CTICorporate Express Deloitte amp Touche Dow Jones IndexesEA Games ndash Sims Online Elogex Ericom SoftwareFGM Genscape Hitachi Data SystemsLastMinuteTravelcom LeapFrog Wells FargoLesson Lab Lion Bio Sciences McDonaldsMcKesson MCI Mitre ndash DISA-DARPAMotorola Motability New York Court AdministrationNextance Nielsen Media Research Nortel NetworksNuasis Playboycom PrimusSabre ndash GetThere Schlumberger SiemensQAD US Department of State WebMethods
Tabela 1 ndash Empresa que utilizam o Servidor de Aplicaccedilotildees JBoss ndash (JBOSS 1999)
Os Sistemas Distribuiacutedos atualmente necessitam mais do que nunca dispor das
seguintes caracteriacutesticas
ldquoUm sistema paralelo ou distribuiacutedo que consiste na coleccedilatildeo decomputadores interconectados que satildeo utilizados como um soacuteunificando seus recursos computacionaisrdquo (G Pfister um dosarquitetos da tecnologia de clusters) (BUNT)
bull Flexibilidade Capacidade de poder sofrer mudanccedilas Eacute evidente que para isso a ideacuteia
eacute de que este sistema natildeo perca sua identidade e que estas mudanccedilas natildeo sejam tatildeo
complexas de serem realizadas a ponto de desperdiccedilar recursos ou ateacute mesmo ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
12
ABSTRACT
The nets of computers didnt emerge suddenly as an only and independent technology
the same case is applied to the systems that crossed several stages before his final application
and they continue in an I click evolutionary I continue according to the market needs and
attendance of technologies
Fact this the growth of the use of the nets of computers it has been taking the
companies to adopt more and more new technologies that are being spread thoroughly and
that youthey long for reliable results In this context JBoss Application Server is in ascension
for being Open Source it makes available several resources where some of these will be
aborted in this research fact this gathering their resources has been taking great companies
that are used of tools WEB adopt it this servant in their applications The present work
approaches some resources of the application servant such JBoss as Clustering load
swinging JMX basic files of configuration
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
13
1 INTRODUCcedilAtildeO
Application Servers ou servidores de aplicaccedilatildeo satildeo sistemas de software que
fornecem a infraestrutura de serviccedilos para a execuccedilatildeo de aplicaccedilotildees distribuiacutedas Os
servidores de aplicaccedilatildeo satildeo executados em maacutequinas servidoras e satildeo acessados pelos clientes
atraveacutes de uma conexatildeo de rede (LABOUREY BURKE 2002)As vantagens dos servidores de aplicaccedilatildeo em relaccedilatildeo ao modelo clienteservidor
residem nos serviccedilos implementados por eles e disponiacuteveis pelo qual as empresas possam
concentrar a maior parte do tempo no desenvolvimento da loacutegica de negoacutecio Em geral estes
serviccedilos diminuem a complexidade do desenvolvimento controlam o fluxo de dados e
gerenciam a seguranccedila
Um servidor de aplicaccedilatildeo eacute uma plataforma sobre a qual roda a porccedilatildeo servidora de
um aplicativo Isto inclui hardware e software O hardware estaacute fora do escopo deste
trabalho mas o software pode ser dividido em dois grupos funccedilotildees do negoacutecio que satildeo
especiacuteficas para um domiacutenio de problema e serviccedilos especializados que satildeo funccedilotildees
geneacutericas aplicaacuteveis a diversas soluccedilotildees
Assim do ponto de vista do software um servidor de aplicaccedilatildeo consiste de um
agrupamento de funccedilotildees de negoacutecios e de serviccedilos que integrados satisfazem as necessidades
dos usuaacuterios
O servidor de aplicaccedilatildeo utiliza a arquitetura chamada de 3-camadas ou n-camadas que
permite um melhor aproveitamento das caracteriacutesticas de cada componente (servidor debanco de dados servidor de aplicaccedilatildeo e cliente)
A primeira camada chamada Front-End usualmente Browsers servem para
apresentaccedilatildeo e algumas validaccedilotildees A segunda camada eacute a aplicaccedilatildeo sendo executada no
servidor de aplicaccedilatildeo A terceira camada eacute o servidor de banco de dados
Os servidores de aplicaccedilatildeo priorizam o compartilhamento de componentes e
aplicaccedilotildees fazendo assim com que seja mais faacutecil o desenvolvimento manutenccedilatildeo e
gerenciamento de sistemas complexos
Aleacutem das caracteriacutesticas jaacute citadas outros serviccedilos tambeacutem estatildeo disponiacuteveis nos
servidores de aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
14
bull Toleracircncia agrave falhas atraveacutes de poliacuteticas para recuperaccedilatildeo e distribuiccedilatildeo de
componentes em clones dos servidores
bull Balanceamento de carga a anaacutelise da carga nos servidores permite a distribuiccedilatildeo de
clientes de forma a maximizar a utilizaccedilatildeo dos recursos disponiacuteveis (ver capiacutetulo 3 seccedilatildeo36)
bull Gerenciamento dos componentes atraveacutes de ferramentas para a manipulaccedilatildeo de
componentes e serviccedilos tais como gerenciamento de sessatildeo notificaccedilatildeo distribuiccedilatildeo da
loacutegica de negoacutecios
bull Gerenciamento de transaccedilotildees garante a integridade da transaccedilatildeo em ambientes
distribuiacutedos
bull Console de gerenciamento permite o gerenciamento de vaacuterios servidores de aplicaccedilatildeo
atraveacutes de um uacutenico sistema graacutefico ndash conforme figura 1 exemplo de gerenciamento de
web-console do JBoss
bull Seguranccedila garante a seguranccedila da aplicaccedilatildeo (ver capiacutetulo 3 seccedilatildeo 39)
Figura 1 ndash Tela de gerenciamento de web-console do JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
15
Particularmente os servidores de aplicaccedilatildeo podem ser executados em muacuteltiplos
sistemas operacionais como Solaris Linux e Windows o que permite que seja aceitaacutevel o
desenvolvimento em uma plataforma e sua publicaccedilatildeo para produccedilatildeo em outra
Atualmente com o aumento das aplicaccedilotildees baseadas em ambiente WEB muitos
profissionais e empresas vinculadas a esta aacuterea buscam soluccedilotildees que possam agilizar prover
seguranccedila escalabilidade a cada tarefa a ser executada e onde se pode encaixar o Jboss as
estas necessidades
Servidor de Aplicaccedilatildeo JBoss surgiu destacando-se no mundo J2EE (ver capiacutetulo 2seccedilatildeo 21) e Open Source (ver capiacutetulo 2 seccedilatildeo 25) pelo qual algumas empresas constantes
na tabela 1 empregam esta tecnologia
Accenture AMD American FidelityArch Wireless BASF BuyMediaCalifornia ISO Celeris CTICorporate Express Deloitte amp Touche Dow Jones IndexesEA Games ndash Sims Online Elogex Ericom SoftwareFGM Genscape Hitachi Data SystemsLastMinuteTravelcom LeapFrog Wells FargoLesson Lab Lion Bio Sciences McDonaldsMcKesson MCI Mitre ndash DISA-DARPAMotorola Motability New York Court AdministrationNextance Nielsen Media Research Nortel NetworksNuasis Playboycom PrimusSabre ndash GetThere Schlumberger SiemensQAD US Department of State WebMethods
Tabela 1 ndash Empresa que utilizam o Servidor de Aplicaccedilotildees JBoss ndash (JBOSS 1999)
Os Sistemas Distribuiacutedos atualmente necessitam mais do que nunca dispor das
seguintes caracteriacutesticas
ldquoUm sistema paralelo ou distribuiacutedo que consiste na coleccedilatildeo decomputadores interconectados que satildeo utilizados como um soacuteunificando seus recursos computacionaisrdquo (G Pfister um dosarquitetos da tecnologia de clusters) (BUNT)
bull Flexibilidade Capacidade de poder sofrer mudanccedilas Eacute evidente que para isso a ideacuteia
eacute de que este sistema natildeo perca sua identidade e que estas mudanccedilas natildeo sejam tatildeo
complexas de serem realizadas a ponto de desperdiccedilar recursos ou ateacute mesmo ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
13
1 INTRODUCcedilAtildeO
Application Servers ou servidores de aplicaccedilatildeo satildeo sistemas de software que
fornecem a infraestrutura de serviccedilos para a execuccedilatildeo de aplicaccedilotildees distribuiacutedas Os
servidores de aplicaccedilatildeo satildeo executados em maacutequinas servidoras e satildeo acessados pelos clientes
atraveacutes de uma conexatildeo de rede (LABOUREY BURKE 2002)As vantagens dos servidores de aplicaccedilatildeo em relaccedilatildeo ao modelo clienteservidor
residem nos serviccedilos implementados por eles e disponiacuteveis pelo qual as empresas possam
concentrar a maior parte do tempo no desenvolvimento da loacutegica de negoacutecio Em geral estes
serviccedilos diminuem a complexidade do desenvolvimento controlam o fluxo de dados e
gerenciam a seguranccedila
Um servidor de aplicaccedilatildeo eacute uma plataforma sobre a qual roda a porccedilatildeo servidora de
um aplicativo Isto inclui hardware e software O hardware estaacute fora do escopo deste
trabalho mas o software pode ser dividido em dois grupos funccedilotildees do negoacutecio que satildeo
especiacuteficas para um domiacutenio de problema e serviccedilos especializados que satildeo funccedilotildees
geneacutericas aplicaacuteveis a diversas soluccedilotildees
Assim do ponto de vista do software um servidor de aplicaccedilatildeo consiste de um
agrupamento de funccedilotildees de negoacutecios e de serviccedilos que integrados satisfazem as necessidades
dos usuaacuterios
O servidor de aplicaccedilatildeo utiliza a arquitetura chamada de 3-camadas ou n-camadas que
permite um melhor aproveitamento das caracteriacutesticas de cada componente (servidor debanco de dados servidor de aplicaccedilatildeo e cliente)
A primeira camada chamada Front-End usualmente Browsers servem para
apresentaccedilatildeo e algumas validaccedilotildees A segunda camada eacute a aplicaccedilatildeo sendo executada no
servidor de aplicaccedilatildeo A terceira camada eacute o servidor de banco de dados
Os servidores de aplicaccedilatildeo priorizam o compartilhamento de componentes e
aplicaccedilotildees fazendo assim com que seja mais faacutecil o desenvolvimento manutenccedilatildeo e
gerenciamento de sistemas complexos
Aleacutem das caracteriacutesticas jaacute citadas outros serviccedilos tambeacutem estatildeo disponiacuteveis nos
servidores de aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
14
bull Toleracircncia agrave falhas atraveacutes de poliacuteticas para recuperaccedilatildeo e distribuiccedilatildeo de
componentes em clones dos servidores
bull Balanceamento de carga a anaacutelise da carga nos servidores permite a distribuiccedilatildeo de
clientes de forma a maximizar a utilizaccedilatildeo dos recursos disponiacuteveis (ver capiacutetulo 3 seccedilatildeo36)
bull Gerenciamento dos componentes atraveacutes de ferramentas para a manipulaccedilatildeo de
componentes e serviccedilos tais como gerenciamento de sessatildeo notificaccedilatildeo distribuiccedilatildeo da
loacutegica de negoacutecios
bull Gerenciamento de transaccedilotildees garante a integridade da transaccedilatildeo em ambientes
distribuiacutedos
bull Console de gerenciamento permite o gerenciamento de vaacuterios servidores de aplicaccedilatildeo
atraveacutes de um uacutenico sistema graacutefico ndash conforme figura 1 exemplo de gerenciamento de
web-console do JBoss
bull Seguranccedila garante a seguranccedila da aplicaccedilatildeo (ver capiacutetulo 3 seccedilatildeo 39)
Figura 1 ndash Tela de gerenciamento de web-console do JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
15
Particularmente os servidores de aplicaccedilatildeo podem ser executados em muacuteltiplos
sistemas operacionais como Solaris Linux e Windows o que permite que seja aceitaacutevel o
desenvolvimento em uma plataforma e sua publicaccedilatildeo para produccedilatildeo em outra
Atualmente com o aumento das aplicaccedilotildees baseadas em ambiente WEB muitos
profissionais e empresas vinculadas a esta aacuterea buscam soluccedilotildees que possam agilizar prover
seguranccedila escalabilidade a cada tarefa a ser executada e onde se pode encaixar o Jboss as
estas necessidades
Servidor de Aplicaccedilatildeo JBoss surgiu destacando-se no mundo J2EE (ver capiacutetulo 2seccedilatildeo 21) e Open Source (ver capiacutetulo 2 seccedilatildeo 25) pelo qual algumas empresas constantes
na tabela 1 empregam esta tecnologia
Accenture AMD American FidelityArch Wireless BASF BuyMediaCalifornia ISO Celeris CTICorporate Express Deloitte amp Touche Dow Jones IndexesEA Games ndash Sims Online Elogex Ericom SoftwareFGM Genscape Hitachi Data SystemsLastMinuteTravelcom LeapFrog Wells FargoLesson Lab Lion Bio Sciences McDonaldsMcKesson MCI Mitre ndash DISA-DARPAMotorola Motability New York Court AdministrationNextance Nielsen Media Research Nortel NetworksNuasis Playboycom PrimusSabre ndash GetThere Schlumberger SiemensQAD US Department of State WebMethods
Tabela 1 ndash Empresa que utilizam o Servidor de Aplicaccedilotildees JBoss ndash (JBOSS 1999)
Os Sistemas Distribuiacutedos atualmente necessitam mais do que nunca dispor das
seguintes caracteriacutesticas
ldquoUm sistema paralelo ou distribuiacutedo que consiste na coleccedilatildeo decomputadores interconectados que satildeo utilizados como um soacuteunificando seus recursos computacionaisrdquo (G Pfister um dosarquitetos da tecnologia de clusters) (BUNT)
bull Flexibilidade Capacidade de poder sofrer mudanccedilas Eacute evidente que para isso a ideacuteia
eacute de que este sistema natildeo perca sua identidade e que estas mudanccedilas natildeo sejam tatildeo
complexas de serem realizadas a ponto de desperdiccedilar recursos ou ateacute mesmo ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
14
bull Toleracircncia agrave falhas atraveacutes de poliacuteticas para recuperaccedilatildeo e distribuiccedilatildeo de
componentes em clones dos servidores
bull Balanceamento de carga a anaacutelise da carga nos servidores permite a distribuiccedilatildeo de
clientes de forma a maximizar a utilizaccedilatildeo dos recursos disponiacuteveis (ver capiacutetulo 3 seccedilatildeo36)
bull Gerenciamento dos componentes atraveacutes de ferramentas para a manipulaccedilatildeo de
componentes e serviccedilos tais como gerenciamento de sessatildeo notificaccedilatildeo distribuiccedilatildeo da
loacutegica de negoacutecios
bull Gerenciamento de transaccedilotildees garante a integridade da transaccedilatildeo em ambientes
distribuiacutedos
bull Console de gerenciamento permite o gerenciamento de vaacuterios servidores de aplicaccedilatildeo
atraveacutes de um uacutenico sistema graacutefico ndash conforme figura 1 exemplo de gerenciamento de
web-console do JBoss
bull Seguranccedila garante a seguranccedila da aplicaccedilatildeo (ver capiacutetulo 3 seccedilatildeo 39)
Figura 1 ndash Tela de gerenciamento de web-console do JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
15
Particularmente os servidores de aplicaccedilatildeo podem ser executados em muacuteltiplos
sistemas operacionais como Solaris Linux e Windows o que permite que seja aceitaacutevel o
desenvolvimento em uma plataforma e sua publicaccedilatildeo para produccedilatildeo em outra
Atualmente com o aumento das aplicaccedilotildees baseadas em ambiente WEB muitos
profissionais e empresas vinculadas a esta aacuterea buscam soluccedilotildees que possam agilizar prover
seguranccedila escalabilidade a cada tarefa a ser executada e onde se pode encaixar o Jboss as
estas necessidades
Servidor de Aplicaccedilatildeo JBoss surgiu destacando-se no mundo J2EE (ver capiacutetulo 2seccedilatildeo 21) e Open Source (ver capiacutetulo 2 seccedilatildeo 25) pelo qual algumas empresas constantes
na tabela 1 empregam esta tecnologia
Accenture AMD American FidelityArch Wireless BASF BuyMediaCalifornia ISO Celeris CTICorporate Express Deloitte amp Touche Dow Jones IndexesEA Games ndash Sims Online Elogex Ericom SoftwareFGM Genscape Hitachi Data SystemsLastMinuteTravelcom LeapFrog Wells FargoLesson Lab Lion Bio Sciences McDonaldsMcKesson MCI Mitre ndash DISA-DARPAMotorola Motability New York Court AdministrationNextance Nielsen Media Research Nortel NetworksNuasis Playboycom PrimusSabre ndash GetThere Schlumberger SiemensQAD US Department of State WebMethods
Tabela 1 ndash Empresa que utilizam o Servidor de Aplicaccedilotildees JBoss ndash (JBOSS 1999)
Os Sistemas Distribuiacutedos atualmente necessitam mais do que nunca dispor das
seguintes caracteriacutesticas
ldquoUm sistema paralelo ou distribuiacutedo que consiste na coleccedilatildeo decomputadores interconectados que satildeo utilizados como um soacuteunificando seus recursos computacionaisrdquo (G Pfister um dosarquitetos da tecnologia de clusters) (BUNT)
bull Flexibilidade Capacidade de poder sofrer mudanccedilas Eacute evidente que para isso a ideacuteia
eacute de que este sistema natildeo perca sua identidade e que estas mudanccedilas natildeo sejam tatildeo
complexas de serem realizadas a ponto de desperdiccedilar recursos ou ateacute mesmo ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
15
Particularmente os servidores de aplicaccedilatildeo podem ser executados em muacuteltiplos
sistemas operacionais como Solaris Linux e Windows o que permite que seja aceitaacutevel o
desenvolvimento em uma plataforma e sua publicaccedilatildeo para produccedilatildeo em outra
Atualmente com o aumento das aplicaccedilotildees baseadas em ambiente WEB muitos
profissionais e empresas vinculadas a esta aacuterea buscam soluccedilotildees que possam agilizar prover
seguranccedila escalabilidade a cada tarefa a ser executada e onde se pode encaixar o Jboss as
estas necessidades
Servidor de Aplicaccedilatildeo JBoss surgiu destacando-se no mundo J2EE (ver capiacutetulo 2seccedilatildeo 21) e Open Source (ver capiacutetulo 2 seccedilatildeo 25) pelo qual algumas empresas constantes
na tabela 1 empregam esta tecnologia
Accenture AMD American FidelityArch Wireless BASF BuyMediaCalifornia ISO Celeris CTICorporate Express Deloitte amp Touche Dow Jones IndexesEA Games ndash Sims Online Elogex Ericom SoftwareFGM Genscape Hitachi Data SystemsLastMinuteTravelcom LeapFrog Wells FargoLesson Lab Lion Bio Sciences McDonaldsMcKesson MCI Mitre ndash DISA-DARPAMotorola Motability New York Court AdministrationNextance Nielsen Media Research Nortel NetworksNuasis Playboycom PrimusSabre ndash GetThere Schlumberger SiemensQAD US Department of State WebMethods
Tabela 1 ndash Empresa que utilizam o Servidor de Aplicaccedilotildees JBoss ndash (JBOSS 1999)
Os Sistemas Distribuiacutedos atualmente necessitam mais do que nunca dispor das
seguintes caracteriacutesticas
ldquoUm sistema paralelo ou distribuiacutedo que consiste na coleccedilatildeo decomputadores interconectados que satildeo utilizados como um soacuteunificando seus recursos computacionaisrdquo (G Pfister um dosarquitetos da tecnologia de clusters) (BUNT)
bull Flexibilidade Capacidade de poder sofrer mudanccedilas Eacute evidente que para isso a ideacuteia
eacute de que este sistema natildeo perca sua identidade e que estas mudanccedilas natildeo sejam tatildeo
complexas de serem realizadas a ponto de desperdiccedilar recursos ou ateacute mesmo ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
16
mais problemaacutetica do que a reconstruccedilatildeo do proacuteprio sistema Ou seja eacute muito
importante que os sistemas distribuiacutedos que constantemente enfrentam problemas de
complexidade e heterogeneidade consigam adaptar-se a mudanccedilas facilmente
bull Interoperabilidade Capacidade de interagir com elementos heterogecircneos Um sistema
interoperaacutevel eacute um sistema capaz de se comunicar eficientemente e de forma
padronizada com diversas partes Estas partes podem ser outros sistemas que por sua
vez podem ser sistemas legados sistemas em linguagens diferentes etc
bull Reatividade Capacidade de responder rapidamente a mudanccedilas Com a massificaccedilatildeo
da associaccedilatildeo entre sistemas distribuiacutedos e sistemas de planejamento estrateacutegico e
controle de alto risco cada vez mais se faz necessaacuterio que os sistemas distribuiacutedos
possuam a caracteriacutestica de reagirem automaticamente a alteraccedilotildees feitas sobre as suas
informaccedilotildees de forma a assegurar uma consistecircncia eficiente destas informaccedilotildees
bull Escalabilidade Capacidade de expansatildeo O quatildeo difiacutecil eacute determinar o tamanho que o
seu sistema tomaraacute no futuro Como sistemas distribuiacutedos satildeo compostos de
elementos sendo que estes podem variar em quantidade deve-se capacitar estes
sistemas da caracteriacutestica de poder suportar um crescimento E este crescimento deve
ser independente da sua variaacutevel sustentadora como por exemplo nuacutemero de
usuaacuterios nuacutemero de maacutequinas ou mesmo nuacutemero de objetos
11 ndash Objetivos do trabalho
Este trabalho tem como objetivo principal realizar o estudo do servidor de aplicaccedilotildees
JBoss destacando suas principais caracteriacutesticas
Em segundo lugar este trabalho pretende elaborar e disponibilizar um material de
consulta que possa ser utilizado por outros profissionais da aacuterea interessados no JBoss
contendo as suas principais caracteriacutesticas tipos e sugestotildees de instalaccedilatildeo
Finalmente eacute importante ressaltar que o autor deste trabalho exerce atualmente papel
de Analista de Sistema na Prefeitura do Municiacutepio de Paranavaiacute-Pr Pretende-se tambeacutem
com este trabalho iniciar-se um levantamento e estudo de tecnologias que futuramente
poderatildeo ser utilizadas na implementaccedilatildeo de sistemas para WEB na Prefeitura de Paranavaiacute
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
17
12 ndash Organizaccedilatildeo do trabalho
Esta pesquisa eacute composta de 04 capiacutetulos assim distribuiacutedos
Capiacutetulo 1 Introduccedilatildeo - onde eacute abordado o que satildeo servidores de aplicaccedilatildeo suas
vantagens em relaccedilatildeo ao modelo clienteservidor suas caracteriacutesticas quais tipos de Sistemas
Operacionais podem ser utilizados e algumas empresas conceituadas que utilizam o JBossNo capiacutetulo 2 Revisatildeo Bibliograacutefica - contendo informaccedilotildees baacutesicas sobre as tecnologias
adotadas e relacionadas ao JBoss como J2EE arquitetura EJB introduccedilatildeo baacutesica do que vem
a ser container componente Beans (Session Entity) introduccedilatildeo ao JNDI e RMI conceito de
Open Source a licenccedila LGPL adotada pelo JBoss XML e fechando o capiacutetulo o modelo RPCNo capiacutetulo 3 JBoss Aplication Server - consta uma breve introduccedilatildeo ao JBoss
Clustering no JBoss referindo-se agraves caracteriacutesticas arquitetura do clustering Balanceamento
de Carga com uma definiccedilatildeo introdutoacuteria do que vem a ser o balanceamento de carga
soluccedilotildees adotando o balanceamento e resultados obtidos com o mesmo Java ManagementExtension ndash JMX conceitos baacutesicos e arquitetura Seguranccedila em JBoss com os modelos de
seguranccedila
O capiacutetulo 4 Instalando e construindo o Servidor JBoss onde satildeo citados os requisitos
baacutesicos necessaacuterios para instalaccedilatildeo do mesmo e onde encontrar o JBoss e sugestotildees para
configuraccedilatildeo e sua estrutura de diretoacuterios Finalizando com os capiacutetulos Resultados Obtidosdescrevendo as facilidades encontradas para instalaccedilatildeo do JBoss e fechando o trabalho a
Conclusatildeo final sobre o Servidor de Aplicaccedilatildeos JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
18
2 REVISAtildeO BIBLIOGRAacuteFICA
Neste capiacutetulo satildeo apresentadas tecnologias e conceitos relacionados ao Servidor de
Aplicaccedilotildees JBoss
21 ndash Java 2 Plataform Enterprise Edition - J2EE
J2EE eacute uma tecnologia padratildeo Java 2 (SUN 2004) da SUN Inclui vaacuterias APIs para
construccedilatildeo de aplicaccedilotildees Java de niacutevel coorporativo incluem EJB Servlets JDBC JNDIJSP JMS e transaccedilotildees
JSP - JavaServer eacute uma tecnologia da Sun que permite misturar conteuacutedo HTML
estaacutetico e dinacircmico na Web eacute um script que roda no lado do servidor o JSP eacute uma plataforma
centrada nos componentes para que a reutilizaccedilatildeo de coacutedigo seja facilitada e para que possam
ser criadas aplicaccedilotildees mais poderosas (SUN 2004)JTA - Java Transaction API eacute uma especificaccedilatildeo de interfaces para o sistema de transaccedilotildees
JTA eacute utilizado por desenvolvedores de beans que tecircm controle expliacutecito (programaacutetico) de
transaccedilotildees (BMT) suporte por parte do container eacute obrigatoacuterio (SUN 2004)JTS - Java Transaction Service especifica a implementaccedilatildeo de um gerenciador de
transaccedilatildeo que aceita JTA e implementa o mapeamento Java da especificaccedilatildeo ObjectTransation Service - OTS 11 do OMB no niacutevel abaixo da API (SUN 2004)
JDBC uma API para conectividade independente do banco de dados entre a plataforma
J2EE e uma grande variedade de fontes de dados (SUN 2004)Enterprise Java Beans satildeo o centro da especificaccedilatildeo J2EE da Sun EJB satildeo
componentes de arquitetura pura do lado-servidor que proporciona suporte embutido para
serviccedilos de aplicaccedilotildees como transaccedilotildees seguranccedila e conectividade de banco de dados
ldquo Java Beans eacute um modelo de componentes portaacutevel e independente de plataforma
escrito em Java Ele permite aos desenvolvedores escrever componentes reusaacuteveis e executaacute-los em qualquer lugar se beneficiando do poder do Java
Enterprise JavaBeans - EJB eacute uma arquitetura de componentes multi-plataforma parao desenvolvimento de aplicaccedilotildees Java distribuiacutedas escalaacuteveis e orientadas a objetos EJB
torna faacutecil escrever aplicaccedilotildees de negoacutecios como componentes provendo um conjunto deserviccedilos automaacuteticos para suportar aplicaccedilotildees transacionaisrdquo (MUNDO OO 2004)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
19
211 A Arquitetura J2EEContainers e Serviccedilos A chave da arquitetura J2EE eacute que muito trabalho
normalmente feito pelo programador eacute poupado jaacute que eacute feito automaticamente pelo
middleware - o programador se concentra no Business Logic
A entidade que faz essa maacutegica eacute o Container onde um container envolve um
componente de forma a capturar mensagens dirigidas ao componente e fornecer serviccedilos
automaacuteticos a este
Portanto antes de ser usado um componente (seja cliente Web ou EJB) deve
bull Ser montado numa aplicaccedilatildeo
bull Ser deployed (implantado) dentro de um container
O container pode ser configurado em tempo de deployment
bull Com declarative programming isto eacute mudanccedila de atributos
Exemplos do que se faz no deployment ao configurar um container
bull Estabelecer seguranccedila
bull Estabelecer o tratamento transacional
bull Mapear nomes entre a aplicaccedilatildeo e os recursos disponiacuteveis
O container tambeacutem gerencia serviccedilos natildeo configuraacuteveis
bull O lifecycle dos componentes (achar criar destruir )
bull Pooling de recursos (conexotildees de bancos de dados por exemplo)
bull Persistecircncia de dados
Tipos de Containers os seguintes tipos de containers existem e executam no servidor
J2EE
bull Container EJB um tal container para acolher algumas ou todas as Enterprise
Beans (EJBs) de uma aplicaccedilatildeo
bull Web container um tal container para acolher algumas ou todas as JSPs e
servlets de uma aplicaccedilatildeo
Os seguintes tipos de containers existem e executam na maacutequina cliente
bull Application Client Container para executar uma aplicaccedilatildeo consoleObserve que servlets e JSPs podem executar sem um J2EE server completo
bull Podem executar num servidor Web com suporte especial sem ter suporte a EJB
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
20
bull Por exemplo Apache Tomcat
Portanto na figura 1 representa a arquitetura J2EE
Figura 2 - Arquitetura da plataforma J2EE ndash (ROB JOHNSON 2003)
22 ndash Arquitetura EJB
A arquitetura EJB pode ser dividida entre as seguintes funcionalidades (STARK2002)
sect Servidores de Aplicaccedilatildeo
sect Containers EJBsect Enterprise Java Beans
sect Clientes EJBsect Sistemas Auxiliares (J2EE)
bull JNDI (SUN 2004)
bull JTS (SUN 2004)
EJB provecirc containers (fornecem suporte em tempo de execuccedilatildeo para os componentesJ2EE) onde os componentes podem ser inseridos no servidor fornecendo a funcionalidade da
aplicaccedilatildeo
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
21
Figura 3 ndash Container ndash J2EE Design and Development - (ROB JOHNSON 2003)
Servidor de Aplicaccedilotildees provecirc container para gerenciar a execuccedilatildeo de um componente
O Container automatiza as funcionalidades de gerecircncia do ciclo de vida do EJB
gerecircncia de estado seguranccedila transaccedilotildees distribuiacutedas e persistecircncia dos objetos
Segundo a SUN (SUN 2004) a tecnologia do padratildeo EJB permite ao desenvolvedor a
independecircncia de plataforma e de fabricante no que se refere ao desenvolvimento de
aplicaccedilotildees corporativas multi-camadas Aleacutem disto a complexidade de desenvolvimento de
aplicaccedilotildees distribuiacutedas eacute consideravelmente simplificada
23 ndash Session Beans X Entity Beans
Segundo a SUN (SUN 2004) a tecnologia EJB define dois tipos de componentesSession Beans e Entity Beans
Session BeansEntender o funcionamento de cada um desses tipos de EJB eacute fundamental para a
adequada construccedilatildeo de uma aplicaccedilatildeo J2EE Os Session Beans satildeo os mais simples leves e
eficientes dos ldquogratildeosrdquo E satildeo ainda classificados como Stateless ou Stateful Um StatelessSession Bean natildeo manteacutem informaccedilotildees sobre o seu contexto de execuccedilatildeo Ele eacute preparado
pelo container executa uma tarefa em favor do cliente e logo em seguida eacute devolvido para o
pool de beans mantido pelo servidor de aplicaccedilotildees para maximizar a eficiecircncia
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
22
Jaacute um Stateful Session Bean atende exclusivamente ao cliente para qual foi criado
Esses componentes satildeo usados para controlar transaccedilotildees que se desenvolvem em vaacuterias
etapas O ciclo de vida do Stateful Session Bean eacute bem mais sofisticado do que de seu irmatildeo
menor Como o estado da transaccedilatildeo deve ser preservado por um tempo determinado esse
componente precisa de mecanismos para salvar suas informaccedilotildees em um banco de dados
bull Stateless Session Beans O componente de sessatildeo distribuiacutedo natildeo tem estado
associado logo permitem acessos concorrentes
bull Stateful Session Beans Os componentes de sessatildeo distribuiacutedos tecircm estado
associado no entanto este estado natildeo eacute persistente e o acesso a cada componente
eacute limitado a um cliente
Entity BeansSatildeo objetos distribuiacutedos com estado persistente Este estado eacute imutaacutevel ateacute mesmo
pelo proacuteprio componente
Pode-se ter como exemplo um Entity Bean que represente a entidade aluno
implementando meacutetodos para alterar e acessar os dados e mantendo a persistecircncia das
informaccedilotildees Os containers cuidam das transaccedilotildees (distribuiacutedas ou natildeo) e existe um
identificador uacutenico para cada entidade (chave primaacuteria)Persistecircncia eacute o atributo essencial das entities bean podendo ser implementada pelo
bean ou pelo container Um Entity Bean implementa os meacutetodos requeridos pelo containercomo ejbCreate() ejbFindByPrimaryKey ejbLoad() ejbStore()
Componentes em que o seu estado eacute controlado pelo seu container usam o ContainerManaged Persistence - CMP ao passo que os componentes que mantecircm o seu proacuteprio estado
usam Bean Managed Persistence ndash BMP a tabela 2 mostra as diferenccedilas entre o BMP e CMP
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
23
Diferenccedilas BMP-CMPDiferenccedila Container-Managed
PersistenceBean-Managed
PersistenceDefiniccedilatildeo da classe Abstrata Concreta
Chamadas de acesso ao banco de
dados
Gerada pelas ferramentas no
deployment
Codificada pelo programador
Estado persistente Representadas como campos
persistentes virtuais
Codificadas como variaacuteveis de
instacircncia
Meacutetodos de acesso a campos
persistentes e relacionamentos
Obrigatoacuterios (abstract) Natildeo haacute
Meacutetodo findByPrimaryKey Gerado pelo container Codificado pelo programador
Meacutetodos finder customizados Gerados pelo container mas
programador deve escrever EJB-QL
Codificado pelo programador
Meacutetodos select Gerados pelo container Natildeo haacute
Valor de retorno de ejbCreate() Deve ser null Deve ser a chave primaacuteria
Tabela 2 Diferenccedilas BMP-CMP ndash (ROCHA 2004)
24 ndash Serviccedilo Distribuiacutedo e Remote Method Invocation - RMI
Para cada EJB instalado em um container esse uacuteltimo automaticamente registra a
interface Home do EJB em um serviccedilo de diretoacuterio usando o Java Name Directory Interface -JNDI (SUN 2004) Atraveacutes do JNDI os clientes entatildeo localizam o EJB que necessitam
utilizar
ldquo JNDI - A principal funccedilatildeo de um serviccedilo de nomes eacute permitir a associaccedilatildeo de um nome (ouuma outra representaccedilatildeo alternativa mais simples) a recursos computacionais como
bull endereccedilos de memoacuteria de rede de serviccedilosbull objetos e referecircnciasbull coacutedigos em geralSuas duas funccedilotildees baacutesicas satildeobull Associar (mapear) um nome a um recursobull Localizar um recurso a partir de seu nomeldquo
(ROCHA 2004)
A tecnologia EJB usa o Java Remote Method Invocation API (RMI) para promover
acessos a meacutetodos remotos O RMI suporta vaacuterios protocolos de comunicaccedilatildeo (IIOP JRMP)
Remote Method Invocation - RMI eacute uma das abordagens da tecnologia Java para
prover as funcionalidades de uma plataforma de objetos distribuiacutedos Esse sistema de objetos
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
24
distribuiacutedos faz parte do nuacutecleo baacutesico de Java desde a versatildeo JDK 11 com sua API sendo
especificada atraveacutes do pacote javarmi e seus subpacotes (SUN 2004)Atraveacutes da utilizaccedilatildeo RMI eacute possiacutevel que um objeto ativo em uma maacutequina virtual
Java possa interagir com objetos de outras maacutequinas virtuais Java independentemente da
localizaccedilatildeo dessas maacutequinas virtuais
No desenvolvimento de uma aplicaccedilatildeo cliente-servidor usando Java RMI como para
qualquer plataforma de objetos distribuiacutedos eacute essencial que seja definida a interface de
serviccedilos que seratildeo oferecidos pelo objeto servidor
Os serviccedilos especificados pela interface RMI deveratildeo ser implementados atraveacutes de
uma classe Java Nessa implementaccedilatildeo dos serviccedilos eacute preciso indicar que objetos dessa classe
poderatildeo ser acessados remotamente
Com a interface estabelecida e o serviccedilo implementado eacute possiacutevel criar as aplicaccedilotildees
cliente e servidor RMIA execuccedilatildeo da aplicaccedilatildeo cliente-servidor em RMI requer aleacutem da execuccedilatildeo da
aplicaccedilatildeo cliente e da execuccedilatildeo da aplicaccedilatildeo servidor a execuccedilatildeo do serviccedilo de registro de
RMI Aleacutem do princiacutepio baacutesico de execuccedilatildeo de aplicaccedilotildees RMI a arquitetura RMI oferece
facilidades para operaccedilatildeo com coacutedigo disponibilizado de forma distribuiacuteda e ativaccedilatildeo
dinacircmica aleacutem de outros serviccedilos distribuiacutedos
RMI-IIOP ndash eacute uma versatildeo da RMI implementada para usar o protocolo CORBA IIOP
RMI em cima de IIOP oferece interoperabilidade com objetos CORBA implementados em
qualquer linguagem se as interfaces remotas foram definidas originalmente como interfaces
RMI (SUN 2004)A interface Home do EJB define os meacutetodos que permitem um cliente localizar e criar
um EJB Object Jaacute a interface Remote estende javaxejbEJBObject e define os meacutetodos que
implementam a loacutegica de negoacutecio que cliente pode chamar
25 ndash Open Source
Pode-se definir o conceito fundamental de open source quando os programadores
podem ler redistribuir e modificar o coacutedigo fonte ou um pedaccedilo de software As pessoas
contribuem e o aprimoram corrigindo bugs (entenda-se falhas) Open eacute um termo
frequumlentemente mal entendido relativo a software graacutetis
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
25
Programas que tem seu coacutedigo aberto Qualquer um pode baixar o coacutedigo fonte do
programa estudaacute-lo ou mesmo aperfeiccediloaacute-lo Open Source natildeo eacute a mesma coisa que de
domiacutenio puacuteblico Um programa Open Source continua pertencendo ao seu criador e a quem
ajudou no seu desenvolvimento
Open Source Initiative - OSI Web Site fornece recursos aos que definem os vaacuterios
aspectos de Open Source inclusive uma definiccedilatildeo de Fonte Aberta httpwwwopen-sourceorgdocs A referecircncia seguinte da homepage OSI sintetiza os aspectos fundamentais
ldquoWe in the open source community have learned that this rapid evolutionary process producesbetter software than the traditional closed model in which only a very few programmers cansee the source and everybody else must blindly use an opaque block of bits
Open Source Initiative exists to make this case to the commercial world
Open source software is an idea whose time has finally come For twenty years it has beenbuilding momentum in the technical cultures that built the Internet and the World Wide WebNow its breaking out into the commercial world and thats changing all the rules Are youreadyrdquo Fonte site httpwwwopensourceorg
Segundo Bruce Perens ldquoOpen Source natildeo significa apenas acesso ao coacutedigo-fonte Ostermos de distribuiccedilatildeo de softwares open source precisam seguir os seguintes criteacuterios
1 Redistribuiccedilatildeo livreA licenccedila natildeo deve restringir qualquer grupo de vender ou oferecer o software
como um componente de uma distribuiccedilatildeo contendo programas de diversas fontesdiferentes A licenccedila natildeo deve cobrar royalties ou qualquer outro tipo de taxa por talvenda
2 Coacutedigo fonteO programa deve incluir o coacutedigo-fonte e deve permitir a distribuiccedilatildeo tanto no
formato source code como no formato compilado Quando alguma forma do produto eacutedistribuiacuteda sem o coacutedigo-fonte deve haver uma maneira devidamente anunciada decomo obtecirc-lo por natildeo mais do que um custo razoaacutevel de reproduccedilatildeo (ex Custo deenvio do CD com o coacutedigo fonte) ou via download na Internet sem custos O coacutedigo-fonte deve ser a forma preferida pela qual um programador modificaria o programaCoacutedigo deliberadamente confuso natildeo eacute permitido Distribuiccedilatildeo de formasintermediaacuterias tais como as saiacutedas de um preprocessador natildeo satildeo permitidas
3 Trabalho derivadoA licenccedila deve permitir modificaccedilotildees e trabalhos derivados e deve permitir
que eles sejam distribuiacutedos sob os mesmos termos da licenccedila do software original
4 Integridade do coacutedigo-fonte do autorA licenccedila pode restringir o coacutedigo-fonte de ser distribuiacutedo de maneira
modificada somente se a licenccedila permitir a distribuiccedilatildeo de patches com a finalidadede modificar o programa em tempo de compilaccedilatildeo A licenccedila deve explicitamentepermitir a distribuiccedilatildeo de software criado a partir do coacutedigo fonte modificado A
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
26
licenccedila pode obrigar que trabalhos derivados tenham nome ou versatildeo diferentes dosoftware original
5 Sem discriminaccedilatildeo contra pessoas ou gruposA licenccedila natildeo deve ser discriminatoacuteria contra nenhuma pessoa ou grupo de
pessoas
6 Sem discriminaccedilatildeo contra campos de trabalhoA licenccedila natildeo deve restringir ningueacutem de fazer uso do programa em um campo
especiacutefico de trabalho Por exemplo ela natildeo pode restringir o programa de ser usadoem uma determinada empresa ou de ser usado em uma determinada pesquisa
7 Distribuiccedilatildeo da licenccedilaOs direitos atribuiacutedos ao programa se aplicam a todos para os quais o
programa for redistribuiacutedo sem haver a necessidade da criaccedilatildeo de uma licenccedilaadicional por essas partes
8 A licenccedila natildeo deve ser especiacutefica de um produtoOs direitos atribuiacutedos ao programa natildeo devem depender do programa fazer
parte de uma distribuiccedilatildeo de software em particular Se o programa for extraiacutedo dadistribuiccedilatildeo e usado ou distribuiacutedo dentro dos termos de sua licenccedila todos os grupospara quem o programa foi redistribuiacutedo devem ter os mesmos direitos que satildeogarantidos em conjunto com a distribuiccedilatildeo original
9 A licenccedila natildeo deve restringir outros softwaresA licenccedila natildeo deve por restriccedilotildees quanto ao uso de outro software distribuiacutedo
com o software licenciado Por exemplo a licenccedila natildeo deve exigir que todos os outrosprogramas distribuiacutedos pelo mesmo meio devam ser Open Sourcerdquo (PERENS 1997)
251 ndash Library General Policy License - LGPL
Esta licenccedila eacute derivada da GPL que foi criada para atender a necessidade
principalmente de bibliotecas desenvolvidas pela Free Software Foundation Consiste em
uma licenccedila menos restritiva que a GPL pois permite que o software desenvolvido sobre essa
licenccedila possa integrar um software comercial Ela foi concebida para dar agraves bibliotecas freemaior chance de competiccedilatildeo com as non-free e portanto melhores condiccedilotildees de se espalhar
Na GPL tradicional todo o coacutedigo do programa eacute aberto isso atende bem agrave maioria
dos projetos colaborativos O problema eacute que muitas empresas possuem segredos a guardar o
que as impede de simplesmente abrir totalmente o coacutedigo de seus programas
Segundo Carlos A M dos Santos professor da Universidade Regional Integrada em
Santo Acircngelo ndash RS no que diz respeito agrave instalaccedilatildeo execuccedilatildeo dos programas e
aproveitamento dos resultados produzidos por eles BSD e GPL se equivalem regulam apenas
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
27
coacutepia modificaccedilatildeo e redistribuiccedilatildeo do software A BSD permite distribuiccedilatildeo de coacutedigo objeto
ou executaacutevel sem o coacutedigo fonte
A GPL exige que seja fornecido o coacutedigo fonte podendo-se cobrar pelo custo de
reproduccedilatildeo ou instruccedilotildees de como obtecirc-lo (dizer onde obter uma coacutepia via Internet porexemplo)
A BSD permite que o software seja incluiacutedo no todo ou em parte em outro softwaredistribuiacutedo sob uma licenccedila diferente Com GPL eacute tudo ou nada se algueacutem escrever um
programa com milhares de linhas de coacutedigo e incluir apenas algumas linhas de um coacutedigo
coberto pela GPL o programa inteiro tem de ser distribuiacutedo sob GPL a natildeo ser que se
obtenha permissatildeo expliacutecita para a coacutepia (numa sutil contradiccedilatildeo entre a licenccedila e opreacircmbulo segundo o qual satildeo as licenccedilas de software comercial que nos privam daliberdade de compartilhar e modificar o software)
Uma consequumlecircncia desagradaacutevel disto eacute a falta de reciprocidade pode-se incluir
coacutedigo distribuiacutedo sob licenccedila BSD em software distribuiacutedo sob GPL mas natildeo o contraacuterio
(SANTOS 2003)O coacutedigo licenciado sob a LGPL (pode-se usaacute-la modificaacute-la e redistribuiacute-la
livremente Eacute hoje uma das mais utilizadas para a produccedilatildeo de software livre por ser muitocompleta aleacutem de poder ser utilizada com vaacuterias linguagens de programaccedilatildeo) pode ser
dinacircmica ou estaticamente vinculado a qualquer outro coacutedigo independentemente da sua
licenccedila assim como os usuaacuterios podem executar debuggers (depurar um programa
usualmente requer executar o programa e parar repetidamente em vaacuterios pontos durante aexecuccedilatildeo para examinar o valor de variaacuteveis diferentes para determinar a causa de erros deloacutegica no programa) no programa combinado Na verdade esta licenccedila reconhece uma
ligaccedilatildeo entre o coacutedigo LGPL e o coacutedigo ao qual ele eacute vinculado
26 ndash Extensible Markup Language - XMLEacute linguagem de marcaccedilatildeo de dados (meta-markup language) que provecirc um formato
para descrever dados estruturados Isso facilita declaraccedilotildees mais precisas do conteuacutedo e
resultados mais significativos de busca atraveacutes de muacuteltiplas plataformas O XML tambeacutem vai
permitir o surgimento de uma nova geraccedilatildeo de aplicaccedilotildees de manipulaccedilatildeo e visualizaccedilatildeo de
dados via internet
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
28
O XML permite a definiccedilatildeo de um nuacutemero infinito de tags Enquanto no HTML (W3C2004) se as tags podem ser usadas para definir a formataccedilatildeo de caracteres e paraacutegrafos o
XML provecirc um sistema para criar tags para dados estruturados
Um elemento XML pode ter dados declarados como sendo preccedilos de venda taxas de preccedilo
um tiacutetulo de livro a quantidade de chuva ou qualquer outro tipo de elemento de dado Como
as tags XML satildeo adotadas por intranets de organizaccedilotildees e tambeacutem via Internet haveraacute uma
correspondente habilidade em manipular e procurar por dados independentemente das
aplicaccedilotildees onde os quais satildeo encontrados Uma vez que o dado foi encontrado ele pode ser
distribuiacutedo pela rede e apresentado em um browser como o Internet Explorer de vaacuterias formas
possiacuteveis ou entatildeo esse dado pode ser transferido para outras aplicaccedilotildees para processamento
futuro e visualizaccedilatildeo
O XML provecirc uma representaccedilatildeo estruturada dos dados que mostrou ser amplamente
implementaacutevel e faacutecil de ser desenvolvida
Implementaccedilotildees industriais na linguagem SGML (Standard Generalized MarkupLanguage)(W3C 2004) mostraram a qualidade intriacutenseca e a forccedila industrial do formato
estruturado em aacutervore dos documentos XML
O XML eacute um subconjunto do SGML o qual eacute otimizado para distribuiccedilatildeo atraveacutes da
web e eacute definido pelo Word Wide Web Consortium (W3C 2004) assegurando que os dados
estruturados seratildeo uniformes e independentes de aplicaccedilotildees e fornecedores
XML provecirc um padratildeo que pode codificar o conteuacutedo as semacircnticas e as
esquematizaccedilotildees para uma grande variedade de aplicaccedilotildees desde simples ateacute as mais
complexas dentre elas
bull Um simples documento
bull Um registro estruturado tal como uma ordem de compra de produtos
bull Um objeto com meacutetodos e dados como objetos Java ou controles ActiveX
bull Um registro de dados Um exemplo seria o resultado de uma consulta a bancos de
dados
bull Apresentaccedilatildeo graacutefica como interface de aplicaccedilotildees de usuaacuterio
bull Entidades e tipos de esquema padrotildees
bull Todos os links entre informaccedilotildees e pessoas na web
Uma caracteriacutestica importante eacute que uma vez tendo sido recebido o dado pelo cliente tal dado
pode ser manipulado editado e visualizado sem a necessidade de reacionar o servidor Dessa
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
29
forma os servidores tecircm menor sobrecarga reduzindo a necessidade de computaccedilatildeo e
reduzindo tambeacutem a requisiccedilatildeo de banda passante para as comunicaccedilotildees entre cliente e
servidor
O XML eacute considerado de grande importacircncia na Internet e em grandes intranetsporque provecirc a capacidade de interoperaccedilatildeo dos computadores por ter um padratildeo flexiacutevel e
aberto e independente de dispositivo As aplicaccedilotildees podem ser construiacutedas e atualizadas mais
rapidamente e tambeacutem permitem muacuteltiplas formas de visualizaccedilatildeo dos dados estruturados
Separaccedilatildeo entre dados e apresentaccedilatildeo mais importante caracteriacutestica do XML se resume em
separar a interface com o usuaacuterio (apresentaccedilatildeo) dos dados estruturados O HTML especifica
como o documento deve ser apresentado na tela por um navegador Jaacute o XML define o
conteuacutedo do documento Por exemplo em HTML satildeo utilizadas tags para definir tamanho e
cor de fonte assim como formataccedilatildeo de paraacutegrafo No XML vocecirc utiliza as tags para
descrever os dados como exemplo tags de assunto tiacutetulo autor conteuacutedo referecircncias datas
etc
O XML ainda conta com recursos tais como folhas de estilo definidas com ExtensibleStyle Language (XSL) e Cascading Style Sheets(CSS) para a apresentaccedilatildeo de dados em um
navegador O XML separa os dados da apresentaccedilatildeo e processo o que permite visualizar e
processar o dado como quiser utilizando diferentes folhas de estilo e aplicaccedilotildees
No XML as regras que definem um documento satildeo ditadas por DTDs (Document Type
Definitions) as quais ajudam a validar os dados quando a aplicaccedilatildeo que os recebe natildeo possui
internamente uma descriccedilatildeo do dado que estaacute recebendo Mas os DTDs satildeo opcionais e os
dados enviados com um DTD satildeo conhecidos como dados XML vaacutelidos Um analisador de
documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter
certeza de que o dado foi estruturado corretamente Os dados enviados sem DTD satildeo
conhecidos como dados bem formatados Nesse caso o documento pode ser usado para
implicitamente se auto-descrever
Com os dados XML vaacutelidos e com os bem-formatados o documento XML se torna
auto-descritivo porque as tags datildeo ideacuteia de conteuacutedo e estatildeo misturadas com os dados Devido
ao formato do documento ser aberto e flexiacutevel ele pode ser usado em qualquer lugar onde a
troca ou transferecircncia de informaccedilatildeo eacute necessaacuteria Desta forma podemos usar o XML para
descrever informaccedilotildees sobre paacuteginas HTML ou descrever dados contidos em objetos ou
regras de negoacutecios ou transaccedilotildees eletrocircnicas comerciais O XML pode ser inserido dentro de
documentos HTML o que foi definido pelo W3C como data-islands Esse recurso permite
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
30
que um documento HTML possa ter muacuteltiplas formas de visualizaccedilatildeo quando se faz uso da
informaccedilatildeo de semacircntica contida no XML
O que define formalmente quais elementos e quais combinaccedilotildees possiacuteveis satildeo
permitidas dentro de um documento XML eacute o schema ou seja esquema Existem novos
esquemas propostos ao W3C dentre eles estando o DCD (Document Content Description)que provecircm agrave mesma funcionalidade dos DTDs e que pelo fato de linguagens esquema
serem extensiacuteveis os desenvolvedores podem aumentaacute-los com informaccedilotildees adicionais tais
como regras de apresentaccedilatildeo tornando essas novas linguagens esquema mais poderosas que
os DTDs
As DTDs satildeo formas de se descrever classes de documentos XML (como gramaacuteticas
para outras linguagens)
Problemas com DTDs
bull se muito simples natildeo tem poder expressivo de descriccedilatildeo
bull se for muito complexa teraacute uma sintaxe horriacutevel
Um exemplo de DTD
ltDOCTYPE recipecollection [ltELEMENT recipe(titleauthordatedescriptioningredientspreparationrelated)gtltATTLIST recipe id IDREQUIREDcategory (breakfast|lunch|dinner|dessert|unknown)IMPLIEDgtltELEMENT title (PCDATA)gtltELEMENT author ANYgt]gt
A soluccedilatildeo para as DTDs usar linguagens de esquemas (schema languages) tais comoDSDXML Schema etchellip
Os documentos para serem validados tecircm que ser bem formados e tambeacutem estaremem conformidade com a DTD dada (DOMINGUES 2003)
27 ndash STUB ndash RPC
A comunicaccedilatildeo entre processos em ambientes distribuiacutedos pode ser feita basicamente
atraveacutes de memoacuteria compartilhada distribuiacuteda ou troca de mensagens A primeira abordagem
disponibiliza uma aacuterea de memoacuteria comum na qual os processos podem escrever e ler
informaccedilotildees A segunda teacutecnica efetua transferecircncia de dados entre processos atraveacutes do
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
31
envio e recebimento de mensagens diversas variantes do paradigma de troca de mensagens
foram elaboradas como Rendezvous (encontro) Chamada de Procedimento Remoto (RPC) e
primitivas de Send (envio) e Receive (resposta)
O modelo Remote Procedure Call - RPC eacute baseado na necessidade de se executar um
componente de uma aplicaccedilatildeo em qualquer local da rede RPCs utilizam uma construccedilatildeo
tradicional de programaccedilatildeo - a chamada a procedimentos a qual eacute estendida de um uacutenico
sistema para uma rede de sistemas
No contexto da comunicaccedilatildeo em um ambiente clienteservidor a solicitaccedilatildeo RPC de
um determinado serviccedilo de um componente de recurso (servidor) eacute emitida pelo componente
de processos (cliente) O local do componente de recursos eacute transparente para o usuaacuterio
(cliente) RPCs satildeo muito utilizadas nas aplicaccedilotildees clienteservidor fornecendo ferramentas
poderosas e necessaacuterias ao desenvolvimento de programas distribuiacutedos
Stubs (adaptadores) satildeo procedimentos que conteacutem o coacutedigo adicional ao programa
para implementar RPC Do lado do software que faraacute chamada (cliente) um procedimento
stub substitui o procedimento que se tornou remoto Do lado do procedimento que faraacute
chamada (servidor) o stub substitui o mesmo que faraacute chamada Estes dois stubsimplementam toda a comunicaccedilatildeo necessaacuteria para a chamada a procedimentos remotos
deixando os procedimentos originais intactos (IMASTER 2001)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os conceitos relacionados ao JBoss introduzindo a
tecnologia J2EE sua arquitetura EJBs JavaBeans Container Session Beans e Entity Beans
Bem como uma introduccedilatildeo ao que vem a ser o conceito de software Open Source e a licenccedila
LGLP uma breve definiccedilatildeo de XML e para finalizar conceitos de STUB-RPC
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
32
3 ndash JBOSS APPLICATION SERVER
31- Introduccedilatildeo
O desenvolvimento do JBoss iniciou-se em marccedilo de 1999 Nascido como um simples
container EJB e ao longo dos anos evoluiu para ser um servidor de aplicaccedilotildees Javacompleto Ele eacute desenvolvido por uma comunidade open source sob a licenccedila LGPL e estaacute se
tornando um seacuterio concorrente aos servidores de aplicaccedilatildeo comercial
O Grupo JBoss (JBOSS 2004) recentemente lanccedilou a versatildeo 4x do seu servidor de
aplicaccedilotildees Java que suporta a especificaccedilatildeo Java 2 Enterprise Edition mdash J2EE da SunMicrosystems
O JBoss conquistou em 2002 o precircmio da JavaWorld na categoria ldquoBest JavaApplication Serverrdquo estando agrave frente de produtos comerciais cujas licenccedilas custam vaacuterios
milhares de doacutelares por CPU (JBOSS 2004)
Uma funcionalidade bastante importante eacute que o microkernel baseado em JMX (ver
capiacutetulo 3 seccedilatildeo 37) pode ao ser inicializado baixar toda a sua configuraccedilatildeo as classes de
que necessita e as aplicaccedilotildees a partir de um servidor HTTP Com isto eacute possiacutevel se criar farms(redes de servidores) de servidores JBoss a partir de um servidor central E como o
microkernel do JBoss cabe tranquumlilamente em um floppy (disquete) eacute possiacutevel fazer oservidor totalmente autoconfigurado
32 ndash JBoss Clustering
Clustering eacute um serviccedilo de noacutes estes noacutes geralmente tecircm finalidades em comum
uuml Toleracircncia agrave Falhas
uuml Balanceamento de Carga por reacuteplica
Estes conceitos estatildeo frequumlentemente misturados Um noacute pode ser um computador ou
mais simplesmente um exemplo de servidor (se for servidor de diversas ocorrecircncias)(LABOUREY BURKE 2002)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
33
33 ndash Terminologia de Clustering em JBoss
Disponibilidade de um serviccedilo eacute uma proporccedilatildeo de tempo para o qual um serviccedilo eacute
acessiacutevel com tempos de resposta razoaacutevelprevisiacutevel particular O termo Alta
Disponibilidade geralmente eacute usado para denotar uma ldquoproporccedilatildeordquo alta Natildeo obstante esta
proporccedilatildeo eacute contexto-dependente Alta Disponibilidade - HA para um sistema criacutetico em um
espaccedilo provavelmente estaacute baseado na figura mais alta de HA para um site da web regional
A HA proporciona assim permissatildeo maacutexima de tempo para manutenccedilatildeo em um periacuteodo
particular
A tabela 3 apresenta alguns exemplos de permissatildeo maacutexima para tempos de
manutenccedilatildeo por ano que depende da proporccedilatildeo de HAHA Proporccedilatildeo Permissatildeo maacutexima de tempo para manutenccedilatildeo acumulado por ano
98 73 dias99 876 horas
995 438 horas999 876 horas9995 438 horas9999 53 minutos
99999 525 minutos999999 31 segundos
9999999 31 segundosTabela 3 - Amostra permissatildeo para tempo de manutenccedilatildeo por proporccedilotildees de HA
Estaacute claro que ateacute mesmo se a proporccedilatildeo de HA for estritamente relativa ao seu tempo
de manutenccedilatildeo permitido associado custo geralmente natildeo for passando de 99 a 9999 eacute
geralmente muito mais caro do que 98 a 99 ateacute mesmo se a diferenccedila for maior
Por exemplo as Empresas de telecomunicaccedilotildees geralmente requerem uns 5-9 (ex
99999) niacutevel de HA
bull Toleracircncia agrave falhas implica Alta Disponibilidade Natildeo obstante dados Altamente
Disponiacuteveis natildeo satildeo dados necessariamente corretos considerando que uma falta de
serviccedilo tolerante sempre garante comportamento estritamente correto apesar de um certo
nuacutemero e tipo de falhas
Consequumlentemente alguns sistemas soacute requerem alta disponibilidade (serviccedilo dediretoacuterio que consiste por exemplo em dados estaacuteticos) considerando que outros requerem
toleracircncia agrave falhas (sistemas bancaacuterios que requerem confianccedila transacional por exemplo)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
34
bull Balanceamento de carga (ver capiacutetulo 3 seccedilatildeo 36)
(LABOUREY BURKE 2002)
Alta disponibilidade pode ser definida como redundacircncia Se um servidor falhar ou
natildeo puder atender uma requisiccedilatildeo entatildeo outro servidor assumiraacute da forma mais transparente
possiacutevel o processamento da requisiccedilatildeo Isso tende a eliminar os pontos de falha de uma
aplicaccedilatildeo
34 ndash Caracteriacutesticas de Clustering JBoss
JBoss atualmente suporta as seguintes caracteriacutesticas de clustering
bull Automatic Discovery Noacutes agrave procura de clustering ao outro sem configuraccedilatildeo
adicional
bull Fail-Over e Load-balancing - caracteriacutesticas para
o JNDIo RMI (pode ser usado para implementar seus proacuteprios serviccedilos agrupados)o Entity Beans
o Stateful Session Beans com estado de memoacuteria replicante
o Stateless Session Beans
bull HTTP Session replica com Tomcat (30) e Jetty (CVS HEAD)
bull Dynamic JNDI discovery Clientes de JNDI podem descobrir o JNDI
InitialContext automaticamente
bull Cluster-wide replicated JNDI tree
bull Farming - Cluster-wide hot-deployment distribution
bull Pluggable RMI load-balance policies
35 ndash Particcedilotildees
Particcedilatildeo eacute o conceito central no que diz respeito a clustering em JBoss
Em uma mesma rede pode-se ter particcedilotildees diferentes Para distingui-las cada particcedilatildeo
tem que conter um nome particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
35
Figura 4 - Particcedilotildees (LABOUREY BURKE 2002)
Na figura 3 uma das amostras de clustering um caso de limite estaacute composto de um
uacutenico noacute Enquanto isto natildeo traz interesse particular (nenhuma toleracircncia agrave falhas oubalanceamento de carga eacute possiacutevel) um noacute novo poderia ser acrescentado qualquer hora a
esta particcedilatildeo que ficaria muito mais interessante entatildeo
Eacute possiacutevel uma instancia do JBoss fazer ao mesmo tempo parte de particcedilotildees muacuteltiplas
consideraremos que um servidor JBoss sempre faz no entanto parte de uma uacutenica particcedilatildeo Se
nenhum nome eacute atribuiacutedo a uma particcedilatildeo entatildeo eacute utilizado um nome padratildeo
36 ndash Balanceamento de Carga
Eacute uma meacutedia para obter melhor performance despachando pedidos que chegam a
servidores diferentes Natildeo faz nenhuma suposiccedilatildeo no niacutevel de toleracircncia agrave falhas ou
disponibilidade do sistema
O crescimento constante da Internet vem causando diversos problemas de
desempenho incluindo baixos tempos de resposta congestionamento da rede e interrupccedilatildeo de
serviccedilos (DOS) Existem diversas abordagens de como esses problemas podem ser
contornados Exemplo de alguns deles satildeo
bull Espelhamento do Site - em diversos locais que podem ser acessados
manualmente pelos usuaacuterios atraveacutes de uma listagem com as URLscorrespondentes Esse tipo de soluccedilatildeo traz diversas desvantagens
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
36
como a natildeo transparecircncia ao usuaacuterio e ausecircncia de controle na
distribuiccedilatildeo de requisiccedilotildees
bull Servidores Proxy - consiste em manter coacutepias (caches) de objetos Web
acessados perto dos usuaacuterios Isso pode ser controlado por
servidores que colocam objetos Web populares em outros servidores
cooperativos ou ainda disparados por requisiccedilotildees individuais de
usuaacuterios que passam por um servidor Proxy Uma outra teacutecnica
consiste em preacute-carregar os objetos frequumlentemente acessados de
forma a mascarar a latecircncia da rede
bull Balanceamento de Carga - eacute fazer o servidor Web mais poderoso atraveacutes do
uso de uma arquitetura em cluster na qual muacuteltiplas maacutequinas
funcionam como um uacutenico servidor Um cluster eacute definido como
um grupo de servidores executando a mesma aplicaccedilatildeo Web
simultaneamente aparecendo para o mundo como se fosse um
uacutenico servidor
Para balancear a carga nos servidores o sistema distribui as requisiccedilotildees para diferentes
noacutes que compotildeem o cluster de servidores com objetivo de otimizar o desempenho do
sistema Os resultados satildeo
bull Alta disponibilidade - (ver capiacutetulo3 seccedilatildeo 33)
bull Escalabilidade - eacute a habilidade que uma aplicaccedilatildeo tenha de suportar um
crescente nuacutemero de usuaacuterios ou seja no contexto eacute uma medida
de vaacuterios fatores incluindo o nuacutemero de usuaacuterios simultacircneos que
um cluster pode suportar e o tempo que se leva para responder uma
requisiccedilatildeo
bull Administraccedilatildeo facilitada da aplicaccedilatildeo - no sentido de que o cluster aparece
como um uacutenico sistema para os usuaacuterios aplicaccedilotildees e para o resto
da rede facilitando o acesso e administraccedilatildeo do sistema e dos
recursos de rede
Com respeito agraves entidades que podem realizar o balanceamento de carga temos
bull Baseada no Cliente
bull Baseada no DNS
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
37
bull Baseada num Despachante
bull Baseada no Servidor
Existem duas abordagens de como colocar o mecanismo de seleccedilatildeo de servidores no
lado do cliente satisfazendo o requisito de transparecircncia atraveacutes dos proacuteprios clientes
(browsers) ou por meio de servidores ProxyTipicamente a transparecircncia da arquitetura eacute obtida atraveacutes de uma uacutenica interface
virtual direcionada ao mundo externo pelo menos ao niacutevel da URL
Numa primeira soluccedilatildeo desenvolvida no lado do cluster a responsabilidade de
distribuir as requisiccedilotildees entre os servidores eacute atribuiacuteda ao DNS do cluster ou melhor ao
servidor de DNS autoritaacuterio pelo domiacutenio dos noacutes do cluster Atraveacutes de um processo de
traduccedilatildeo entre os nomes simboacutelicos (URL) e endereccedilos IP o DNS do cluster pode selecionar
qualquer noacute que compotildee o cluster
Uma abordagem alternativa agrave arquitetura baseada em DNS visa ter total controle sobre
as requisiccedilotildees de clientes e mascarar o roteamento entre muacuteltiplos servidores Para esse
propoacutesito a virtualizaccedilatildeo do endereccedilo realizada na soluccedilatildeo baseada em DNS eacute estendida do
niacutevel da URL para o niacutevel do IP Nessa abordagem um uacutenico endereccedilo IP virtual eacute fornecido
ao cluster Web Esse eacute o endereccedilo do chamado despachante que atua com escalonador
central do cluster
37 ndash Java Management Extension - JMX
Conhecida anteriormente por JMAPI define uma arquitetura de gerecircncia APIs e
serviccedilos de gerecircncia todos sobre uma uacutenica especificaccedilatildeo A especificaccedilatildeo JMX foi
desenvolvida pela SUN em parceria com os principais liacutederes da induacutestria de gerecircncia
seguindo a Comunidade Java (SUN 2004)JMX fornece uma maneira simples para instrumentaccedilatildeo de objetos Java A
instrumentaccedilatildeo JMX tem poucas limitaccedilotildees porque eacute totalmente independente da infra-
estrutura de gerecircncia Isto significa que um recurso pode ser gerenciado sem a preocupaccedilatildeo de
como seu gerente eacute implementado se eacute implementado por exemplo sobre TMN ou SNMP
(SUN 2004)JMX permite que os desenvolvedores de aplicaccedilotildees baseadas em tecnologia Java
criem os agentes inteligentes e gerentes na linguagem Java Estas aplicaccedilotildees podem ser
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
38
integradas agraves soluccedilotildees em sistemas de gerecircncia existentes A arquitetura JMX eacute dividida em
trecircs niacuteveis niacutevel de instrumentaccedilatildeo niacutevel de agente e niacutevel de gerente
A especificaccedilatildeo do JMX eacute um padratildeo para gerenciar redes aplicaccedilotildees dispositivos
etc atraveacutes de Java O JMX eacute uma extensatildeo aberta e universal da linguagem Java e permite
que corporaccedilotildees e provedores de serviccedilos gerenciem ambientes heterogecircneos de uma maneira
padratildeo (MIC99 1999)
38 Arquitetura JMX
A divisatildeo dos niacuteveis traz flexibilidade permitindo que subconjuntos da especificaccedilatildeo
sejam utilizados individualmente por diferentes comunidades de desenvolvedores que
utilizam a tecnologia Java A figura 4 mostra a arquitetura JMX e seus niacuteveis
Figura 5 - Arquitetura JMX
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
39
O niacutevel de instrumentaccedilatildeo fornece a gerecircncia imediata de qualquer objeto baseado em
tecnologia Java Este niacutevel eacute direcionado a toda a comunidade de desenvolvedores que utiliza
tecnologia Java
O niacutevel agente fornece os agentes de gerecircncia Os agentes JMX satildeo recipientes que
contecircm a base dos serviccedilos de gerecircncia Esta base pode ser facilmente estendida adicionando-
se recursos JMX Este niacutevel eacute direcionado para a comunidade de desenvolvedores de soluccedilotildees
de gerecircncia e fornece o gerenciamento atraveacutes da tecnologia Java
O niacutevel gerente fornece os componentes de gerecircncia que podem operar como gerente
ou agente para distribuiccedilatildeo e consolidaccedilatildeo dos serviccedilos de gerecircncia Este niacutevel eacute direcionado
para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e a complementa atraveacutes da
tecnologia Java provida pelo niacutevel agente As APIs de protocolos de gerecircncia adicionais satildeo
direcionadas para a comunidade de desenvolvedores de soluccedilotildees de gerecircncia e proporcionam
a integraccedilatildeo com as soluccedilotildees jaacute existentes
O JMX possui ainda componentes como (SUN 2004)
bull Recurso Gerenciaacutevel
bull Agente JMX
bull Gerente JMX
bull Serviccedilos de Gerecircncia
bull APIs para outros protocolos de gerecircncia
39 ndash Seguranccedila em JBOSS
Seguranccedila eacute uma parte fundamental de qualquer aplicaccedilatildeo de uma empresa Pode-se
restringir o que eacute permitido acessar em suas aplicaccedilotildees e controle de usuaacuterios em que
aplicaccedilotildees de operaccedilotildees podem executar As especificaccedilotildees de J2EE definem um modelo de
seguranccedila role-based simples para EJBs e componentes Web O componente JBossframework que controla seguranccedila eacute o JBossSX extension framework (JBOSSSX 2004)
Um framework eacute uma aplicaccedilatildeo reusaacutevel semicompleta que pode ser especializada
para produzir aplicaccedilotildees customizadas Por exemplo para criar a interface de um aplicativo eacute
necessaacuterio instanciar diversos objetos tais como formulaacuterios bototildees caixas de textos
menus etc Cada ocorrecircncia de cada um desses elementos na interface do aplicativo eacute um
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
40
objeto O moacutedulo de software que conteacutem as classes prefabricadas a partir das quais se criam
esses objetos eacute o framework de classes (class framework)Diz-se que o framework eacute uma aplicaccedilatildeo porque conteacutem a implementaccedilatildeo de diversas
classes de objetos que estatildeo relacionadas entre si e pertencem a um mesmo assunto como por
exemplo interface graacutefica diz-se que ele eacute reusaacutevel porque pode ser utilizado na construccedilatildeo
de diferentes sistemas semi-completo porque nunca implementa tudo o que seria possiacutevel e
customizaacutevel porque admite que o desenvolvedor estenda suas funcionalidades
Existem frameworks em diversas aacutereas tais como acesso a banco de dados
persistecircncia de objetos em ambiente relacional criaccedilatildeo de interface graacutefica gerenciamento de
coleccedilotildees de objetos seguranccedila etc
391 ndash J2EE Declarative Security Overview
O modelo de seguranccedila defendido pela especificaccedilatildeo J2EE eacute um modelo declarativo
pois se descreve os papeacuteis de seguranccedila e permissotildees que usam um descriptor XML standardem lugar de embutir seguranccedila em seu componente business Isto isola a seguranccedila do coacutedigo
de business-level porque a seguranccedila tende a ser mais uma funccedilatildeo onde o componente eacute
desdobrado em lugar de um aspecto inerente da loacutegica de negoacutecio do componente Por
exemplo considere um componente de BANCO 24 HORAS que seraacute usado para acessar uma
conta bancaacuteria As exigecircncias de seguranccedila papeacuteis e permissotildees variaratildeo independente de
como a pessoa acessa a conta bancaacuteria baseada em que banco estaacute administrando a conta onde
o banco 24 horas eacute desdobrado e assim por diante
392 ndash Secure Remote Password (SRP) Protocol
O protocolo de SRP eacute uma implementaccedilatildeo do public key exchange handshake descrita
nos padrotildees de Internet (RFC2945)O framework de JBossSX inclui uma implementaccedilatildeo de SRP que consiste nos
elementos seguintes
bull Implementaccedilatildeo do SRP handshake protocol que eacute independente de qualquer
protocolo clientserver particular
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
41
bull Implementaccedilatildeo RMI do protocolo handshake como o clientserver por padratildeo SRPimplementado
bull Ao lado do cliente implementaccedilatildeo JAAS LoginModule que usa a implementaccedilatildeo de
RMI para uso autenticando os clientes em um modo seguro
bull JMX MBean por administrar o servidor de implementaccedilatildeo RMI O MBean permite ao
servidor de implementaccedilatildeo RMI conectar-se em um framework JMX e externaliza a
configuraccedilatildeo de armazenamento informaccedilatildeo e verificaccedilatildeo Tambeacutem estabelece um
cache de autenticaccedilatildeo que eacute ligado no servidor JBoss JNDI namespacebull Ao lado do servidor JAAS LoginModule implementation que usa o cache de
autenticaccedilatildeo administrada pelo SRP JMX MBean (JBOSSSX 2004)
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foram abordados os seguintes contextos quando se deu iniacutecio ao JBosssua versatildeo atual e alguns destaques obtidos Foram citadas as metas comuns do clusteringcom balanceamento de carga e toleracircncia a falhas caracteriacutesticas e sobre particcedilotildees do
Clustering JBoss quais os resultados que podem ser obtidos utilizando-se deste recurso
algumas alternativas de como melhorar o desempenho utilizando clusterConceitos baacutesicos do Java Management Extension ndash JMX sua arquitetura e
componentes e a utilizaccedilatildeo de um modelo de trecircs niacuteveis instrumentaccedilatildeo agente e gerente
JMX e finalizando o capiacutetulo alguns conceitos de seguranccedila no JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
42
4 ndash INSTALANDO E CONSTRUINDO O SERVIDOR JBOSS
A seguir seraacute abordada a instalaccedilatildeo baacutesica do JBoss requisitos para instalaccedilatildeo dicas e
como executar o servidor
41 ndash Condiccedilotildees preacutevias para instalaccedilatildeo
Antes da instalaccedilatildeo e execuccedilatildeo do Servidor JBoss eacute necessaacuterio JSDK 13 ou superior
(SUN 2004) Pode-se fazer o download em httpjavasuncomj2se142downloadhtmlAtualmente a versatildeo mais atual eacute a 142_02 na seccedilatildeo Download J2SE v 142_02 e faccedila o
download de Windows Installation (SDK) Para verificar este requisito eacute necessaacuterio executar
o comando ldquojava-versionrdquo para assegurar que o Java Executable encontra-se no pathconforme a figura 4
Figura 6 Execuccedilatildeo do comando java ndashversion
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
43
Figura 7 Execuccedilatildeo do comando set
A figura 5 demonstra o path do sistema operacional e suas variaacuteveis de ambiente
destacando que eacute necessaacuterio adicionar a variaacutevel JAVA_HOME=diretoacuterio de instalaccedilatildeo doJSDK para o reconhecimento do Java pelo SO
Natildeo importa onde esteja instalado o JBoss poreacutem a instalaccedilatildeo deve natildeo estar em um
diretoacuterio que conteacutem espaccedilos (CArquivos de programasJBoss 4xx) pois causa problemas
em algumas situaccedilotildees isto devido a bugs com URLs
Pode-se encontrar o JBoss para download a princiacutepio nestes dois endereccedilos
uuml Grupo JBoss (httpwwwjbossorg)
uuml SourceForge (httpsourceforgenetprojectsjboss)Onde se encontra quickstarts coacutedigos fonte e patches bugs feature requests change
notes dentre outra informaccedilotildees
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
44
JBoss possui um banco de dados relacional nativo escrito em Java o Hypersonic SQL(POINTBASE 2004) Isso facilita a vida do desenvolvedor na hora de testar seus Entity Beanseliminando assim o trabalho de configurar uma nova base de dados Para instalar uma nova
base de dados no JBoss eacute necessaacuterio seguir alguns passos A configuraccedilatildeo e instalaccedilatildeo da base
de dados satildeo feitas atraveacutes de um arquivo XML Metadata InterchangeNo diretoacuterio $JBOSS_DISTdocsexamplesjca conforme a figura 7 haacute vaacuterios modelos
de arquivos de configuraccedilatildeo
Figura 8 Modelos de arquivos para configuraccedilatildeo
Uma sugestatildeo para WebContainer no JBoss pode-se optar entre Tomcat ((JAKARTA2004) - eacute mais que um servidor de aplicaccedilotildees com as caracteriacutesticas de servir como umcontrolador de servlets e JSP e com a vantagem de ser gratuito)) ou Jetty ((JETTY 2003) -tambeacutem um MBean)) A grande sugestatildeo fica por conta do Jetty que haacute uma oacutetima integraccedilatildeo
com o JBoss ambos podem ser executados na mesma Java Virtual Machine (JVM permiteque programas desenvolvidos em Java sejam executados em qualquer computadorindependente do sistema operacional ou do hardware O sistema eacute ofertado por diversosfornecedores incluindo a Sun)
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
45
42 ndash Configurando e Iniciando o JBoss
Apoacutes o download descompacte o arquivo na raiz da unidade ex CJBoss-400DR3
pode-se usar umas das trecircs configuraccedilotildees preacute-estabelecidas pelo JBoss ou o mais
recomendado eacute criar uma proacutepria configuraccedilatildeo
Para iniciar o JBoss eacute necessaacuterio acessar o diretoacuterio $JBOSS_DISTbin e executar o
arquivo de lote run Para os usuaacuterios do Windows a linha de comando eacute
JBOSS_DISTbinrunbat e para os usuaacuterios do Linux a linha eacute $JBOSS_DISTbinrunsh
Figura 9 Tempo para carregamento do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
46
O teste acima demonstrado na figura 8 o tempo de carregamento do servidor JBosscom a configuraccedilatildeo completa (all) isto sendo a primeira execuccedilatildeo foi de 145s329ms em um
equipamento com a seguinte configuraccedilatildeo Pentium III 800 MHz 512 MB Ram HD 40 GB
com sistema operacional Windows XP PROPode-se nomear a configuraccedilatildeo do servidor escolhendo uma configuraccedilatildeo padratildeo ou
criando uma personalizada O JBoss vem com trecircs configuraccedilotildees padratildeo miacutenima (minimal)padratildeo (default) e completa (all) Estas configuraccedilotildees estatildeo em $JBOSS_DISTserver O
usuaacuterio pode criar ainda a sua proacutepria configuraccedilatildeo bastando para isso apenas criar um novo
diretoacuterio junto com as outras configuraccedilotildees Eacute sempre melhor criar a sua proacutepria
configuraccedilatildeo pois isso facilita manutenccedilatildeo
Para visualizar o estado dos componentes do JBoss (MBeans) deve-se abrir o
browser no endereccedilo httplocalhost8082 O endereccedilo padratildeo do WebServer (Jetty ouTomcat) eacute httplocalhost8080 conforme figura 10 Na versatildeo 302 em diante o endereccedilo
para visualizar os componentes JMX eacute httplocalhost8080jmx-console conforme a figura 9
Figura 10 Mostra tela de configuraccedilatildeo jmx-console do servidor JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
47
Figura 11 Mostra tela de configuraccedilatildeo do TomCat
43 ndash Estrutura de diretoacuterios
A distribuiccedilatildeo do JBoss cria um diretoacuterio jboss-4xx que conteacutem server start scriptsjars (Java Archive - um formato de arquivo independente de plataforma permitindo quemuitos arquivos sejam agregados em um uacutenico arquivo) configuraccedilatildeo de servidor e diretoacuterios
de trabalho
Uma instalaccedilatildeo padratildeo do JBoss inclui os seguintes diretoacuterios imediatamente abaixo
do diretoacuterio superior lt jboss-home gt como mostrado na figura 6
- BIN Conteacutem todos os arquivos executaacuteveis (both scripts e JARs) incluiacutedas na
distribuiccedilatildeo JBoss
- CLIENT Este eacute o diretoacuterio onde as bibliotecas requeridas para clientes satildeo
colocadas Um cliente tiacutepico requer jboss-clientjar jbosssx-clientjar jaasjar jnp-
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
48
clientjar ejbjar e jta-spec1_0_1jar Se o cliente natildeo estiver rodando JDK 13
requereraacute jndijar tambeacutem
- DOCS Contecircm a documentaccedilatildeo JBoss API o Javadoc-style e a outra documentaccedilatildeo
no formato do HTML
- LIB Contecircm bibliotecas java no formato JAR que o JBoss usa O diretoacuterio lib
conteacutem arquivos JARs que necessitam estar no path da classe do sistema os JARs em
lib estatildeo disponiacuteveis ao classloader MLet-baseado servidor JBoss
- SERVER cada um dos subdiretoacuterios dentro eacute aqui uma configuraccedilatildeo diferente do
usuaacuterio A configuraccedilatildeo eacute selecionada passando ldquo-c lt nome da opccedilatildeo daconfiguraccedilatildeo gtrdquo ao script
- LOG Os logs de registro do JBoss estatildeo situados neste diretoacuterio Registrar os logs eacute
iniciado por padratildeo
- DEPLOY Este eacute o diretoacuterio da distribuiccedilatildeo Onde satildeo colocados os arquivos JAR e
EAR e aqui seratildeo desdobrados automaticamente
- CONF O conjunto de configuraccedilatildeo JBoss eacute encontrado aqui Por padratildeo haacute somente
um conjunto de configuraccedilatildeo situado no subdiretoacuterio padratildeo adicionar mais de eacute
permitido A instalaccedilatildeo empacotada do JBoss com web container (Tomcat ou Jetty)cria um conjunto adicional de configuraccedilatildeo
- DB O diretoacuterio que conteacutem outros diretoacuterios com arquivos relacionados agraves bases de
dados Hypersonic e Instantdb (configuraccedilatildeo indexaccedilatildeo tabelas etc)
- DEPLOY desdobra o coacutedigo de aplicaccedilatildeo (jar war e ear files) e os baixa aqui
Tambeacutem eacute usado para serviccedilos hot-deployable (esses aos quais podem seracrescentados ou removidos do servidor corrente) e desdobrar JCA resourceadapters3
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
49
A figura 11 mostra a estrutura de diretoacuterios do servidor JBoss
Figura 12 Estrutura de diretoacuterios no JBoss
O diretoacuterio JBOSS_DISTserver conteacutem um ou mais conjuntos de arquivo de
configuraccedilatildeo A arquivo padratildeo de configuraccedilatildeo fica situado no diretoacuterio
JBOSS_DISTserverdefault JBoss permite mais de um conjunto de configuraccedilatildeo executando
de forma alternada no servidor
Dentro do diretoacuterio server haacute trecircs configuraccedilotildees de exemplo all default e minimalcada uma instala um conjunto diferente de serviccedilos Natildeo surpreendentemente a configuraccedilatildeo
default eacute usada se natildeo for passado qualquer paracircmetro ao script de execuccedilatildeo
A configuraccedilatildeo default conteacutem tudo o que vocecirc precisa executar stand-alone J2EEserver As outras duas satildeo minimal - o miacutenimo exigido para iniciar o JBoss Iniciam o serviccedilo
de Log um servidor de JNDI e um scanner de desenvolvimento de URL para achar
desenvolvimentos novos Isto eacute necessaacuterio para usar JMXJBoss para iniciar seus proacuteprios
serviccedilos sem qualquer outro serviccedilo J2EE para esta configuraccedilatildeo - natildeo haacute web container
nenhum EJB ou JMS A configuraccedilatildeo ALL - inicia todos os serviccedilos disponiacuteveis Isto inclui o
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
50
RMIIIOP e agrupando serviccedilos e o deployer de web-services que natildeo estaacute carregado na
configuraccedilatildeo default
Instalado e configurado o JBoss conforme as necessidades de cada caso basta agora
ao desenvolvedor o papel de colocar em praacutetica sua aplicaccedilatildeo e utilizar toda as vantagens e
facilidades oferecidas pelo JBoss
Consideraccedilotildees finais deste capiacutetulo
Neste capiacutetulo foi abordado o requisito necessaacuterio para instalaccedilatildeo do JBoss e onde
podemos encontraacute-lo para download sugestotildees de configuraccedilatildeo e sua estrutura com a
descriccedilatildeo de alguns diretoacuterios
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
51
RESULTADOS OBTIDOS
Segundo as facilidades demonstradas anteriormente quanto a instalaccedilatildeo e aquisiccedilatildeo do
JBoss e o que o difere dos seus concorrentes estas facilidades podem ser fundamentais naescolha de um servidor de aplicaccedilatildeo e ainda mais distribuiacutedo pela licenccedila LGPL
Por ser Open Source o caminho seguido pelo JBoss para distinccedilatildeo eacute integra-se muito
bem com uma seacuterie de ferramentas Open Source para a criaccedilatildeo de ambientes dedesenvolvimento de software bastante completa e robusta
Segundo as especificaccedilotildees teacutecnicas o JBoss 4X inclui um framework para Aspect
Oriented Programming ndash AOP (JBOSS 2004) que permite aos desenvolvedores com
facilidade adicionar serviccedilos como transaccedilotildees persistecircncia e replicaccedilatildeo de cache a partir de
objetos Java comuns sem a necessidade de criar EJBs O framework AOP cuida de todo o
trabalho de transformar o objeto Java em um EJB e libera o desenvolvedor para se concentrarna loacutegica de negoacutecio das aplicaccedilotildees
Quanto a sua instalaccedilatildeo apoacutes os downloads dos requisitos necessaacuterios para instalaccedilatildeo
do JBoss inicialmente o primeiro passo foi a instalaccedilatildeo do JSDK que ocorreu sem problema
algum com a execuccedilatildeo do arquivo de instalaccedilatildeo j2sdk-1_4_2-nb-3_5_1-bin-windowsexe onde
praticamente eacute tudo automaacutetico lembrando apenas que foram necessaacuterios a configuraccedilatildeo da
variaacutevel de ambiente JAVA_HOME e adicionar no path do sistema operacional o diretoacuterioonde se encontra o JSDK
Apoacutes este passo foi descompactado o arquivo jboss-400DR3zip no C e atraveacutes do
Prompt do Dos no diretoacuterio Cjboss-400DR3bin a execuccedilatildeo do comando runbat mais a
opccedilatildeo desejada para o tipo de servidor (mininal default all) Finalizando o seu carregamento
pode-se chamar o browser de sua preferecircncia e iniciar as telas de configuraccedilatildeo do JBoss peloendereccedilo http1270018080jmx-console
Sem duacutevida tratando-se de um servidor de aplicaccedilatildeo sua instalaccedilatildeo eacute simples e raacutepida
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
52
CONCLUSAtildeO
Atraveacutes do estudo realizado sobre JBoss existem fatos importantes a serem citados
como os servidores de aplicaccedilatildeo J2EE estarem ganhando um amplo impulso devido agrave
produtividade no desenvolvimento de aplicaccedilotildees corporativas distribuiacutedas e facilidade que
tecircm no aproveitamento de sistemas e bases de dados relacionais em novas aplicaccedilotildees Estes
servidores estatildeo se tornando a infra-estrutura da nova geraccedilatildeo de aplicaccedilotildees corporativas sejapara utilizaccedilatildeo intracorporaccedilatildeo seja em aplicaccedilotildees B2B e B2C
Em um cenaacuterio onde os executivos de TI tecircm cada vez maiores restriccedilotildees
orccedilamentaacuterias aleacutem disso enorme pressatildeo por resultados eacute uma alternativa para servidor de
aplicaccedilatildeo Open Source de grande qualidade Assim como o Linux o Apache e outros
softwares Open Source o JBoss estaacute se tornando elemento essencial nas decisotildees de TI dasgrandes corporaccedilotildees
Um grande trunfo do ponto de vista de sua arquitetura interna o JBoss eacute baseado em
uma arquitetura de microkernel JMX onde todos os moacutedulos que compotildeem o servidor aleacutem
das proacuteprias aplicaccedilotildees satildeo componentes (MBeans) ldquoplugadosrdquo ou substituiacutedos
dinamicamente em runtime sem a necessidade de paradas no servidor Esta funcionalidadeque eacute chamada de ldquohot deployrdquo daacute uma grande flexibilidade e robustez ao servidor
Para justificar os altos preccedilos cobrados pelos concorrentes comerciais do JBoss os
desenvolvedores destes sistemas procuram se diferenciar oferecendo acoplado com o Servidor
de Aplicaccedilatildeo um conjunto de ferramentas e outros softwares tais como ambientes dedesenvolvimento de aplicaccedilotildees gerenciadores de conteuacutedo portais e etc
Mesmo sendo o JBoss Open Source haacute uma dificuldade em relaccedilatildeo a sua
documentaccedilatildeo que esta sim eacute paga Outro incomodo eacute que atualmente somente estaacute disponiacutevel
em inglecircs fato este que desencorajam muitos pois haacute muitos termos teacutecnicos o que pode vir
a gerar duacutevidas sobre alguns aspectos
Conclui-se mesmo com algumas dificuldades encontradas quanto agrave documentaccedilatildeo
escrita e on-line (web)cedil o JBoss cativa com respeito a rapidez no requisito de instalaccedilatildeo agrave
qualidade de seus recursos viabilidade tecnologia utilizada e uma ampla visatildeo quanto ao
futuro dos produtos Open Source onde se pode observar no proacuteprio portal do JBoss na seccedilatildeo
news a crescente procura e interesse de outras empresas e pessoas quanto agrave integraccedilatildeo e a
procura do conhecimento mais aprofundados sobre o JBoss
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
53
REFEREcircNCIAS
CARVILHE J L V A utilizaccedilatildeo de tecnologias web em sistemas de gerecircnciacorporativa Curitiba PUC-PR 2000 (Monografia apresentada no Curso deEspecializaccedilatildeo em Sistemas Distribuiacutedos)
HARNEDY S Web-based management for the enterprise New Jersey Prentice
Hall 1999
LABOUREY S BURKE B and The JBoss Group - JBoss Clustering Atlanta
Dez 2002
STARK S and The JBoss Group - JBoss Administration and DevelopmentSecond Edition Atlanta Nov 2002
LABOUREY S BURKE B - JBoss 30 WorkBook for Enterprise JavaBeans 3ordfEdition Atlanta 2002
CARDELINI V COLAJANNI M YU P S - Dinamic Load Balancing on Web-
server Systems
BUNT R B EAGER D L OSTER G M and WILLIAMSON C L
Achieving Load Balance and Effective Caching in Clustered Web Servers
TEO Y M AYANI R - Comparison of Load Balancing Strategies on Cluster-
based Web Servers
CARDELINI V COLAJANNI M YU P S - Geographic Load Balancing for
Scalable Distributed Web Systems
ROCHA Helder da Minicursos ndash Java J523 ndash Tutorial JNDI 2004
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
54
MIC99 - 1999 Sun Microsystems Java management extensions white paperTechnical report Palo Alto - CA Junho 1999
PERENS -1997 Bruce - The Debian Free Software Guidelines ndash junho de 1997
SANTOS Carlos A M dos BSD e GPL 2003
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
55
LINKS
VISWANATHAN Vivek Load Balancing Web Applications 2001
httpwwwonjavacompubaonjava20010926loadhtml
BURKE B LABOUREY S Clustering with JBoss 30 2002
httpwwwonjavacompubaonjava20020710jbosshtml
BURKE B Clustering with JBossJetty 2001
httpwwwonjavacompubaonjava20010918jbosshtml
SCHAEFER A Using JBoss Web Application Server 2001
httpwwwonjavacompubaonjava20010716jbosshtml
CARVILHE Joseacute Luiacutes Bate Byte 100 Agosto2000 ndash Java ManagementExtension 2000
httpwwwprgovbrbatebyteedicoes2000bb100javahtm
DOMINGUES Andreacute Luiacutes dos Santos - Extensible Markup Language ndash XML2003
httpwwwicmcscuspbr~alsdicmc-usp-disciplina-hm-seminario-www-xmlhtml
ROCHA Helder da Argo Navis Informaacutetica e Consultoria SC Ltda 2004httpwwwargonaviscombr
Revista On-Line sobre Javahttpwwwjavaworldcom
SUN 2004 ndash Sun Microsystemshttpwwwsuncom
JBOSS 1999 ndash JBoss Professional Open Sourcehttpwwwjbossorg
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom
56
Mundo OO 2004 ndash Mundo OOhttpwwwmundooocombr
W3C 2004 ndash Word Wide Web Consortiumhttpwwww3org
POINTBASE 2004 ndash The Point Basehttpwwwpointbasecom httpwwwhypersonicsqlcom
JAKARTA 2004 ndash The Jakarta Site ndash Apache Tomcathttpjakartaapacheorgtomcat
JETTY 2003 ndash Jetty Java HTTP Servelet Serverhttpjettymortbayorgjettyindexhtml
IMASTER 2001 ndash iMasters FFPAhttpwwwimasterscombr
JBOSSSX 2004 ndash The JBossSx Default Security Managerhttppipintmdnsacyuextrajava2libsJBossch09s09html
ROB JOHNSON - J2EE Design and Development - J2EE Overview 2003
httpwwwjavacampinascombrpalestraseventoJavaCampinas2003_J2EEpdf
PDF Creator - PDF4Free v20 httpwwwpdf4freecom