servidor de aplicacoes jboss - espweb — especialização em web...

51
SUMÁRIO LISTA DE ILUSTRAÇÕES .................................................................................................. 08 LISTA DE TABELAS ........................................................................................................... 09 LISTA DE ABREVIATURAS OU LISTA DE SIGLAS....................................................... 10 RESUMO................................................................................................................................ 11 ABSTRACT............................................................................................................................ 12 1. INTRODUÇÃO ................................................................................................................. 13 1.1. OBJETIVOS DO TRABALHO.................................................................................... 16 1.2. ORGANIZAÇÃO DO TRABALHO............................................................................ 17 2. REVISÃO BIBLIOGRÁFICA............................................................................................ 18 2.1. JAVA 2 PLATAFORM ENTERPRISE EDITION – J2EE......................................... 18 2.1.1. A ARQUITETURA J2EE......................................................................................... 19 2.2. ARQUITETURA EJB................................................................................................... 20 2.3. SESSION BEANS X ENTITY BEANS………………………………......………..... 21 2.4. SERVIÇO DISTRIBUÍDO E REMOTE METHOD INVOCATION – RMI....……. 23 2.5. OPEN SOURCE............................................................................................................ 24 2.5.1. LIBRARY GENERAL POLICY LICENSE - LGPL ............................................ 26 2.6. EXTENSIBLE MARKUP LANGUAGE – XML…………………………………… 27 2.7. STUB – RPC……………………………………………………………………….… 30 3. JBOSS APPLICATION SERVER...................................................................................... 32 3.1. INTRODUÇÃO........................................................................................................... 32 3.2 JBOSS CLUSTERING.................................................................................................. 32 3.3. TERMINOLOGIA DE CLUSTERING EM JBOSS.................................................. 33 3.4. CARACTERISTICAS DO CLUSTERING JBOSS.................................................... 34 3.5. PARTIÇÕES................................................................................................................. 34 PDF Creator - PDF4Free v2.0 http://www.pdf4free.com

Upload: hoanghanh

Post on 19-Apr-2018

218 views

Category:

Documents


2 download

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