SlideShare une entreprise Scribd logo
1  sur  6
II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica
João Pessoa - PB - 2007
UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O
DESENVOLVIMENTO DE APLICAÇÕES CORPORATIVAS PARA WEB
Fellipe Araújo ALEIXO (1); Ivanilson França VIEIRA Júnior (2); Eder Carlos de Oliveira
NOGUEIRA (3); Wanderson CÂMARA dos Santos (4); Thyago Barbosa RODRIGUES (5)
(1) CEFET-RN, Av. Sen. Salgado Filho, 1559, Tirol, Natal-RN – CEP: 59015-000, telefone: (84) 4005 2637,
e-mail: fellipe@cefetrn.br
(2) CEFET-RN, e-mail: ivanilsonjunior@cefetrn.br
(3) CEFET-RN, e-mail: eder_tds@yahoo.com.br
(4) CEFET-RN, e-mail: wan007@gmail.com
(5) CEFET-RN, e-mail: thyagobr@gmail.com
RESUMO
Ao passo que as tecnologias relacionadas com o desenvolvimento de sistemas evoluem, aumenta a
complexidade dos sistemas que se deseja desenvolver. O aumento da complexidade dos sistemas a serem
desenvolvidos, e o fato desse desenvolvimento necessitar acontecer em menos tempo (por uma questão de
competitividade), tem levado ao desenvolvimento de mecanismos de middleware. Um middleware visa
oferecer uma série de serviços prontos para serem utilizados pelos desenvolvedores de aplicações. O nome de
aplicações corporativas foi associado a tais aplicações que por sua complexidade, fazem uso de serviços de
middleware para acelerar o seu desenvolvimento, concentrando esforços na lógica do negócio. Uma das
plataformas para o desenvolvimento de sistemas corporativos foi desenvolvida pela Sun Microsystems, e é
chamada de Java Enterprise Edition, atualmente na sua versão 5, o JEE 5. Com o objetivo de otimizar ainda
mais o desenvolvimento de aplicações corporativas JEE 5, voltadas para a Web, foi desenvolvido o framework
JBoss Seam. O objetivo deste trabalho é realizar uma compilação de bibliografia sobre o JBoss Seam, além de
explorar seus aspectos práticos no desenvolvimento de um estudo de caso. O estudo de caso em questão trata-
se do desenvolvimento de uma aplicação completa utilizando este framework. A seguinte metodologia será
utilizada para o desenvolvimento do trabalho: realizar uma revisão bibliográfica sobre o tema; levantar os
requisitos e especificar o sistema a ser desenvolvido; definir a arquitetura do sistema a ser desenvolvido com
base no framework escolhido para o desenvolvimento; e apresentar aspectos relativos a fase de implementação
e testes. Será adotado para o desenvolvimento do sistema proposto uma customização do processo unificado.
Palavras-chave: Java Enterprise Edition, Jboss Seam, Aplicações Corporativas.
II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica
João Pessoa - PB - 2007
1. INTRODUÇÃO
Ao passo que as tecnologias relacionadas com o desenvolvimento de sistemas evoluem, aumenta a
complexidade dos sistemas que se deseja desenvolver. O aumento da complexidade dos sistemas a serem
desenvolvidos, e o fato desse desenvolvimento necessitar acontecer em menos tempo (por uma questão de
competitividade), tem levado ao desenvolvimento de mecanismos de middleware.
Um middleware visa oferecer uma série de serviços prontos para serem utilizados pelos desenvolvedores de
aplicações. O nome de aplicações corporativas foi associado a tais aplicações que por sua complexidade,
fazem uso de serviços de middleware para acelerar o seu desenvolvimento, concentrando esforços na lógica do
negócio. Uma das plataformas para o desenvolvimento de sistemas corporativos foi desenvolvida pela Sun
Microsystems, e é chamada de Java Enterprise Edition, atualmente na sua versão 5, o JEE 5.
Com o objetivo de otimizar ainda mais o desenvolvimento de aplicações corporativas JEE 5, voltadas para a
Web, foi desenvolvido o framework JBoss Seam. O objetivo deste trabalho é realizar uma compilação de
bibliografia sobre o JBoss Seam, além de explorar seus aspectos práticos no desenvolvimento de um estudo de
caso. O estudo de caso em questão trata-se do desenvolvimento de uma aplicação completa utilizando este
framework.
A necessidade de códigos mais limpos e menos complexos vem tornando a utilização de ferramentas de
desenvolvimentos cada vez mais recentes por parte dos programadores e uma dessas ferramentas é o
framework JBOSS SEAM criado por Gavin King o mesmo criador do Hibernate. A utilização do framework
visa facilitar a manipulação do código integrando JSF e EJB3 deixando a cargo do programador somente a
definição do Negocio da Aplicação.
2. APLICAÇÕES DISTRIBUÍDAS
A segunda metade do século vinte foi o palco de uma enorme inovação tecnológica. Os computadores
começaram a dominar diversos setores, e é claro que as empresas não ficaram de fora desta revolução. Cada
vez mais as necessidades comerciais foram sendo delegadas aos computadores, que passaram a dominar desde
as frentes de loja até os pisos de fábrica, passando por estoques, departamentos financeiros, setores de direção
e etc. Para realizar tarefas tão complexas, softwares igualmente complexos são necessários. Tais softwares
precisam encarar desafios como integrar diversos setores de uma mesma companhia (ERM), conectar
empresas geograficamente separadas, realizar verificações inteligentes na base de dados (Business
Inteligence), além das tarefas que se esperam de qualquer software empresarial, ou seja, tarefas que
compensem o investimento, promovendo lucros e benefícios. Tais programas são conhecidos como Aplicações
Corporativas, justamente por tratarem de problemas com um complexidade de níveis empresariais.
Aplicações Corporativas englobam uma grande quantidade de sub-sistemas, e apresentam um grande número
de requisitos de alta complexidade. Um portal de compras na Internet, por exemplo, precisa estar sempre
online, garantir segurança para o cliente, suportar milhares de requisições por segundo, entre outras coisas.
Para implementar sistemas de tamanha capacidade, faz-se necessário utilizar uma linguagem confiável, uma
plataforma robusta. Java foi a escolha mais óbvia, principalmente por se tratar de uma linguagem livre de
código aberto.
Java é uma plataforma de desenvolvimento criada pela Sun Microsystems. Em verdade, existem quatro
plataformas: Java SE, para programas Desktop; Java EE, para aplicações corporativas; Java ME, para
aplicações de aparelhos móveis, como celulares e PDAs; e Java Card Technology, para smart cards e outros
equipamentos de memória e processamento extremamente limitados. Embora o Java EE (Enterprise Edition)
seja focado em aplicações corporativas, tais aplicações podem vir a utilizar todas as quatro plataformas de
desenvolvimento, dependendo, obviamente, das suas necessidades. Neste artigo, apenas as plataformas Java
EE e Java SE serão utilizadas (posto que a Java EE é naturalmente utilizada em conjunto com as classes de
núcleo do Java, que estão no Java SE).
Do site da Sun: "Java Platform, Enterprise Edition (Java EE) é o padrão da indústria para o desenvolvimento
de aplicações java do lado do servidor portáveis, robustas, escaláveis e seguras. Construída sobre a fundação
sólida do Java Platform, Standard Edition (Java SE), Java EE provê APIs para web services, modelo de
componentes, gerenciamento e comunicação, que a tornam o padrão da indústria para a implementação da
arquitetura orientada a serviços (SOA) de classe corporativa e aplicações web da próxima geração".
Devido ao tamanho e à complexidade das aplicações em questão, torna-se bastante complicado o
desenvolvimento de todos os aspectos necessários para o programa, entre requisitos funcionais e não-
II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica
João Pessoa - PB - 2007
funcionais. E estes são alguns dos motivos que levaram a comunidade de desenvolvimento a criar programas
de apoio para tais aplicações, os chamados Servidores de Aplicação. Estes, por sua vez, são middlewares para
aplicações corporativas e/ou distribuídas que facilitam bastante a sua implementação e manutenção.
3. MIDDLEWARE PARA APLICAÇÕES CORPORATIVAS
As aplicações distribuídas possuem diversas necessidades - algumas das quais já foram ilustradas neste
trabalho - e muitas delas mostram-se redundantes de uma aplicação para outra. Funcionalidades tais como
balanceamento de carga, métodos de autenticação e segurança, controle de transações, serviço interno de
nomes, abstração dos protocolos de comunicação via rede, etc., são utilizados em muitas aplicações
corporativas distribuídas. Muito embora estes serviços sejam fundamentais para a maioria das aplicações, eles
não se referem diretamente à lógica de negócio das aplicações, e constituem assim um interesse paralelo. E é a
fim de prover tais funcionalidades que existem os middlewares.
Segundo a Internet2, Um Middleware é uma camada de software localizada entre a rede e as aplicações. Esse
software provê serviços tais como identificação, autenticação, autorização, diretórios e segurança. Ou seja,
um midleware é um software que provê abstração de serviços para outros softwares, permitindo que estes
softwares utilizem diversas funcionalidades de maneira simples ou transparente. A principal vantagem dos
middlewares é retirar das mãos da equipe de desenvolvimento o fardo de ter que programar todas estas
funcionalidades, o que provocaria re-escrita de um código que provavelmente já existe em diversos outros
programas.
Utilizar um middleware ajuda ainda a comunidade de desenvolvimento como um todo, posto que torna-se
possível estabelecer padrões. Seria muito difícil, por exemplo, desenvolver um sistema de agentes de software
que se comunicasse com diversos serviços se o protocolo de comunicação de cada serviço fosse diferente. Ao
utilizar um serviço comum - aquele provido pelo middleware - estas dificuldades são eliminadas. No entanto,
para que as empresas aceitem ficar tão dependentes de um software, é preciso que ele tenha consistência no
mercado. Seria ingenuidade acreditar que as empresas iriam aceitar qualquer middleware unicamente pelas
suas funcionalidades; é preciso saber, por exemplo, que a empresa por trás da criação do middleware é séria,
que o projeto tem sustentação - em outras palavras, que eles não estão pegando um barco destinado a afundar.
Alguns middlewares de suporte para aplicações distribuídas em Java já conseguiram o seus lugares no
mercado. Dentre os mais conhecidos, destacam-se o JBoss (Red Hat), Sun Java System (Sun), Oracle
(Oracle), WebSphere (IBM), Geronimo (Apache) e WebLogic (BEA). Todos têm em comum o fato de
receberem suporte de grandes empresas de renome no mercado.
Umas das mais novas e solicitadas funções dos middlewares modernos para Java é a de prover serviços Web
(ou Web services, como será chamado neste trabalho à partir deste ponto). Web services nada mais são do
que, como o próprio nome diz, serviços que são disponibilizados através da Web. Os Web services são uma
implementação da Arquitetura Orientada a Serviços, ou SOA (Service Oriented Architecture) (BELL, 2006),
tão comentada hoje em dia. Mas a concorrência entre os middlewares os levam a fazer mais do que
simplesmente oferecer a opção de disponibilizar os Web services. Middlewares de alta capacidade trazem todo
um modelo automatizado de deployment de Web services (ou seja, de preparação para disponibilização do
serviço). O JBoss, por exemplo, apresenta uma integração com o JAX-WS 2.0 (tecnologia Java para criação
simples de Web services) (HANSEN, 2007) que permite que o serviço seja criado completamente à partir de
apenas uma classe Java relativamente simples, criando automaticamente arquivos de configuração e
disponibilizando o serviço na web.
4. FRAMEWORK JBOSS SEAM
O Seam é um framework para JEE 5, e é inspirado nos seguintes princípios:
 Integração EJB 3.0 com JSF;
 AJAX integrado;
 Integrar o processo de negocio na declaração das classes;
 Declaração gerenciável do estado.
II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica
João Pessoa - PB - 2007
A seguir é apresentado um trecho de código-fonte de um componente Seam, onde fica evidenciado que a sua
diferença para uma classe Java comum são as anotações específicas do JBoss Seam.
Para um componente Seam é preciso ser definido um nome, e isso é feito pela anotação @Name, este nome
precisa ser único dentro da aplicação Seam. Sempre que um componente Seam é instanciado há uma ligação
com uma variável de contexto com o contexto padrão do componente. O contexto padrão é especificado
usando a anotação @Scope. Um construtor vazio é requerido pelo EJB 3 e pelo Seam. As anotações
@NotNull e @Length são parte do framework de validação do Hibernate, o Seam integra o validador do
Hibernate e permite que você utilize-o para validação, mesmo se você não estiver usando Hibernate para
persistência.
5. CONCLUSÃO
A utilização do framewok JBoss Seam para o desenvolvimento de aplicações corporativas para a Web leva a
utilização de uma arquitetura mais simplificada. Ao utilizarmos o Seam não temos a necessidade de duplicar
código entre camadas. O fato de poder construir um componente Seam como um EJB 3 que pode ser acessado
a partir da camada de apresentação como um backingbean, evita a criação de código duplicado e permite que
o desenvolvedor se concentre na lógica da aplicação
A criação de componentes Seam realmente aumenta a produtividade no desenvolvimento, dado que além de
evitar a construção de código duplicado entre camadas, permite a criação de componentes Seam apenas com a
adição de anotações específicas no código-fonte dos componentes.
As vantagens de utilização do JBoss Seam só contrastam com a curva de aprendizado necessária para a
utilização efetiva do framework. Embora de criação bastante simples, a utilização do framework necessita que
usuário compreenda uma série de conceitos importantes relativos ao desenvolvimento de aplicações
@Entity
@Name("user")
@Scope(SESSION)
@Table(name="users")
public class User implements Serializable
{
private String username;
private String password;
private String name;
public User(String name, String password, String username)
{
this.name = name;
this.password = password;
this.username = username;
}
public User() {}
@NotNull @Length(min=5, max=15)
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
@NotNull
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
@Id @NotNull @Length(min=5, max=15)
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
}
Quadro 1 - Exemplo de Código-fonte de um Componente Seam
II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica
João Pessoa - PB - 2007
corporativas e mais especificamente conceitos relativos a plataforma JEE 5. Embora com esta ressalva, a
utilização do framework deve ser considerado como uma alternativa para otimizar o desenvolvimento de
aplicações corporativas.
REFERÊNCIAS
DEITEL, Harvey M. Java – Como Programar. Prentice Hall Brasil, 2007.
LEWIS John; CHASE, Joe; DEPASQUALE, Peter. Java Foundations. Addison Wesley, 2007.
SAVITCH, Walter; MOCK, Kenrick. Absolute Java. Addison Wesley, 2007.
SAMPAIO, Cleuton. Guia do Java Enterprise Edition 5. Brasport, 2007.
MCLAUGHLIN, Brett. Building Java Enterprise Applications. O'Reilly & Associates, 2002.
CRAWFORD, William; FARLEY, Jim. Java Enterprise in a Nutshell. O'Reilly & Associates, 2005.
ECKSTEIN, Robert. Java Enterprise Best Practices. O'Reilly & Associates, 2002.
MARK, Grand. Java Enterprise Design Patterns. John Wiley Consumer, 2001.
SULLINS, Benjamin G.; WHIPPLE, Mark B. EJB – Livro de Receitas. Ciência Moderna, 2004.
GONÇALVES, Edson; Desenvolvendo Aplicações Web com JSP e Servlets. Ciência Moderna, 2007.
ANSELMO, Fernando. Tudo Sobre a JSP. Visual Books, 2005.
SCHALK, Chris. Java Server Faces – The Complete Reference. MCGRAW-HILL Professional, 2006.
KEITH, Michael; HALEY, Jason; SCHINCARIOL, Merrick. PRO EJB 3 – Java Persistence API. Apress,
2006.
BELL, Michael; MARKS, Eric A. Service-Oriented Architecture – SOA. John Wiley Trade, 2006.
WOODS, Dan. Enterprise SOA. O'Reilly & Associates, 2006.
HANSEN, Mark. D. SOA Using Java Web Services. Prentice Hall, 2007.
II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica
João Pessoa - PB - 2007
corporativas e mais especificamente conceitos relativos a plataforma JEE 5. Embora com esta ressalva, a
utilização do framework deve ser considerado como uma alternativa para otimizar o desenvolvimento de
aplicações corporativas.
REFERÊNCIAS
DEITEL, Harvey M. Java – Como Programar. Prentice Hall Brasil, 2007.
LEWIS John; CHASE, Joe; DEPASQUALE, Peter. Java Foundations. Addison Wesley, 2007.
SAVITCH, Walter; MOCK, Kenrick. Absolute Java. Addison Wesley, 2007.
SAMPAIO, Cleuton. Guia do Java Enterprise Edition 5. Brasport, 2007.
MCLAUGHLIN, Brett. Building Java Enterprise Applications. O'Reilly & Associates, 2002.
CRAWFORD, William; FARLEY, Jim. Java Enterprise in a Nutshell. O'Reilly & Associates, 2005.
ECKSTEIN, Robert. Java Enterprise Best Practices. O'Reilly & Associates, 2002.
MARK, Grand. Java Enterprise Design Patterns. John Wiley Consumer, 2001.
SULLINS, Benjamin G.; WHIPPLE, Mark B. EJB – Livro de Receitas. Ciência Moderna, 2004.
GONÇALVES, Edson; Desenvolvendo Aplicações Web com JSP e Servlets. Ciência Moderna, 2007.
ANSELMO, Fernando. Tudo Sobre a JSP. Visual Books, 2005.
SCHALK, Chris. Java Server Faces – The Complete Reference. MCGRAW-HILL Professional, 2006.
KEITH, Michael; HALEY, Jason; SCHINCARIOL, Merrick. PRO EJB 3 – Java Persistence API. Apress,
2006.
BELL, Michael; MARKS, Eric A. Service-Oriented Architecture – SOA. John Wiley Trade, 2006.
WOODS, Dan. Enterprise SOA. O'Reilly & Associates, 2006.
HANSEN, Mark. D. SOA Using Java Web Services. Prentice Hall, 2007.

Contenu connexe

En vedette

Mapa conceptual 2
Mapa conceptual 2Mapa conceptual 2
Mapa conceptual 2LILIVECA
 
CV Sarah Stefanini - Español
CV Sarah Stefanini - EspañolCV Sarah Stefanini - Español
CV Sarah Stefanini - EspañolSarah Stefanini
 
Across the earth spanish
Across the earth spanishAcross the earth spanish
Across the earth spanishcamilo
 
Aula Sistemas De Marketing
Aula Sistemas De MarketingAula Sistemas De Marketing
Aula Sistemas De Marketingeloychaves
 
El proceso terapéutico en psi quiatria
El proceso terapéutico en psi quiatriaEl proceso terapéutico en psi quiatria
El proceso terapéutico en psi quiatriaBURROBALL
 
Hort urbà
Hort urbàHort urbà
Hort urbàallumahu
 
Youblisher.com 986927-cana mix-edi_ao_73_2
Youblisher.com 986927-cana mix-edi_ao_73_2Youblisher.com 986927-cana mix-edi_ao_73_2
Youblisher.com 986927-cana mix-edi_ao_73_2Lela Gomes
 
Happy New Year 2011 - Reflection
Happy New Year 2011 - ReflectionHappy New Year 2011 - Reflection
Happy New Year 2011 - ReflectionhOw Global
 
Informe técnico campanha influenza- 2014
Informe técnico campanha influenza- 2014Informe técnico campanha influenza- 2014
Informe técnico campanha influenza- 2014José Ripardo
 
Curso de despachante 1 port instr.
Curso de despachante 1  port instr.Curso de despachante 1  port instr.
Curso de despachante 1 port instr.Rotivtheb
 
Como postar set no soubalada.com
Como postar set no soubalada.comComo postar set no soubalada.com
Como postar set no soubalada.comMarcos Elias
 
¿Cómo abrir una cuenta en hotmail?
¿Cómo abrir una cuenta en hotmail?¿Cómo abrir una cuenta en hotmail?
¿Cómo abrir una cuenta en hotmail?male_tati
 

En vedette (20)

Mapa conceptual 2
Mapa conceptual 2Mapa conceptual 2
Mapa conceptual 2
 
Poph roadshow
Poph roadshowPoph roadshow
Poph roadshow
 
CV Sarah Stefanini - Español
CV Sarah Stefanini - EspañolCV Sarah Stefanini - Español
CV Sarah Stefanini - Español
 
Across the earth spanish
Across the earth spanishAcross the earth spanish
Across the earth spanish
 
Mates tema 0
Mates tema 0Mates tema 0
Mates tema 0
 
SMITH & ENRON
SMITH & ENRONSMITH & ENRON
SMITH & ENRON
 
Uni3 act1 peda
Uni3 act1 pedaUni3 act1 peda
Uni3 act1 peda
 
Aula Sistemas De Marketing
Aula Sistemas De MarketingAula Sistemas De Marketing
Aula Sistemas De Marketing
 
Cidade eficiente
Cidade eficienteCidade eficiente
Cidade eficiente
 
ouvidoria tjse
ouvidoria tjseouvidoria tjse
ouvidoria tjse
 
El proceso terapéutico en psi quiatria
El proceso terapéutico en psi quiatriaEl proceso terapéutico en psi quiatria
El proceso terapéutico en psi quiatria
 
Hort urbà
Hort urbàHort urbà
Hort urbà
 
Youblisher.com 986927-cana mix-edi_ao_73_2
Youblisher.com 986927-cana mix-edi_ao_73_2Youblisher.com 986927-cana mix-edi_ao_73_2
Youblisher.com 986927-cana mix-edi_ao_73_2
 
Happy New Year 2011 - Reflection
Happy New Year 2011 - ReflectionHappy New Year 2011 - Reflection
Happy New Year 2011 - Reflection
 
Informe técnico campanha influenza- 2014
Informe técnico campanha influenza- 2014Informe técnico campanha influenza- 2014
Informe técnico campanha influenza- 2014
 
Curso de despachante 1 port instr.
Curso de despachante 1  port instr.Curso de despachante 1  port instr.
Curso de despachante 1 port instr.
 
Mi primera clase
Mi primera claseMi primera clase
Mi primera clase
 
Como postar set no soubalada.com
Como postar set no soubalada.comComo postar set no soubalada.com
Como postar set no soubalada.com
 
Exposições artes
Exposições artesExposições artes
Exposições artes
 
¿Cómo abrir una cuenta en hotmail?
¿Cómo abrir una cuenta en hotmail?¿Cómo abrir una cuenta en hotmail?
¿Cómo abrir una cuenta en hotmail?
 

Similaire à UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕES CORPORATIVAS PARA WEB

Teoria de Sistemas de Informação - Atividade: Tecnologia e SI
Teoria de Sistemas de Informação - Atividade: Tecnologia e SITeoria de Sistemas de Informação - Atividade: Tecnologia e SI
Teoria de Sistemas de Informação - Atividade: Tecnologia e SIAlessandro Almeida
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 
WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)Juarez Junior
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerAlan Carlos
 
Desenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageriaDesenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageriaPaula Santana
 
Artigo Automação de testes funcionais com Demoiselle Behave
Artigo Automação de testes funcionais com Demoiselle BehaveArtigo Automação de testes funcionais com Demoiselle Behave
Artigo Automação de testes funcionais com Demoiselle BehaveJulian Cesar
 
Novidades no Windows Mobile Line of Business Solution Accelerator 2008
Novidades no Windows Mobile Line of Business Solution Accelerator 2008Novidades no Windows Mobile Line of Business Solution Accelerator 2008
Novidades no Windows Mobile Line of Business Solution Accelerator 2008Pedro Lamas
 
Processos de software
Processos de softwareProcessos de software
Processos de softwareDann Volpato
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLAnnkatlover
 
Criacao.Fabrica.Open.Source
Criacao.Fabrica.Open.SourceCriacao.Fabrica.Open.Source
Criacao.Fabrica.Open.SourceAnnkatlover
 
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII Eder Nogueira
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Tutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com JavaTutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com JavaPaulo César M Jeveaux
 
Aumentando escalabilidade com SOA
Aumentando escalabilidade com SOAAumentando escalabilidade com SOA
Aumentando escalabilidade com SOAHugo Marques
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 

Similaire à UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕES CORPORATIVAS PARA WEB (20)

Teoria de Sistemas de Informação - Atividade: Tecnologia e SI
Teoria de Sistemas de Informação - Atividade: Tecnologia e SITeoria de Sistemas de Informação - Atividade: Tecnologia e SI
Teoria de Sistemas de Informação - Atividade: Tecnologia e SI
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test Manager
 
Desenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageriaDesenvolvimento de sistemas com mensageria
Desenvolvimento de sistemas com mensageria
 
Cursos
CursosCursos
Cursos
 
Restaurante
RestauranteRestaurante
Restaurante
 
Artigo Automação de testes funcionais com Demoiselle Behave
Artigo Automação de testes funcionais com Demoiselle BehaveArtigo Automação de testes funcionais com Demoiselle Behave
Artigo Automação de testes funcionais com Demoiselle Behave
 
Novidades no Windows Mobile Line of Business Solution Accelerator 2008
Novidades no Windows Mobile Line of Business Solution Accelerator 2008Novidades no Windows Mobile Line of Business Solution Accelerator 2008
Novidades no Windows Mobile Line of Business Solution Accelerator 2008
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
 
Criacao.Fabrica.Open.Source
Criacao.Fabrica.Open.SourceCriacao.Fabrica.Open.Source
Criacao.Fabrica.Open.Source
 
Gr spice wrks
Gr spice wrksGr spice wrks
Gr spice wrks
 
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Tutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com JavaTutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com Java
 
Aumentando escalabilidade com SOA
Aumentando escalabilidade com SOAAumentando escalabilidade com SOA
Aumentando escalabilidade com SOA
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Java Web, o Tutorial
Java Web, o TutorialJava Web, o Tutorial
Java Web, o Tutorial
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 

Plus de Eder Nogueira

DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YIIDETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YIIEder Nogueira
 
Títulos de Renda Fixa
Títulos de Renda FixaTítulos de Renda Fixa
Títulos de Renda FixaEder Nogueira
 
HIstóricos e Causas da Inflação
HIstóricos e Causas da InflaçãoHIstóricos e Causas da Inflação
HIstóricos e Causas da InflaçãoEder Nogueira
 
Kant e a Ética do Dever
Kant e a Ética do DeverKant e a Ética do Dever
Kant e a Ética do DeverEder Nogueira
 
Projeto Político Pedagógico - Parte I - Versão FULL
Projeto Político Pedagógico - Parte I - Versão FULLProjeto Político Pedagógico - Parte I - Versão FULL
Projeto Político Pedagógico - Parte I - Versão FULLEder Nogueira
 
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAR
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLARPROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAR
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAREder Nogueira
 
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTES
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTESATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTES
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTESEder Nogueira
 
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAIS
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAISATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAIS
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAISEder Nogueira
 
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOS
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOSAPRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOS
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOSEder Nogueira
 
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLA
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLAAPRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLA
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLAEder Nogueira
 
CERTIFICAÇÃO DE QUALIDADE: ISO
CERTIFICAÇÃO DE QUALIDADE: ISOCERTIFICAÇÃO DE QUALIDADE: ISO
CERTIFICAÇÃO DE QUALIDADE: ISOEder Nogueira
 
Ferramentas Colaborativas
Ferramentas ColaborativasFerramentas Colaborativas
Ferramentas ColaborativasEder Nogueira
 
Tutorial JBoss Seam
Tutorial JBoss Seam Tutorial JBoss Seam
Tutorial JBoss Seam Eder Nogueira
 
Padrão de Projeto Mediator
Padrão de Projeto MediatorPadrão de Projeto Mediator
Padrão de Projeto MediatorEder Nogueira
 
JAVA MEDIA FRAMEWORK
JAVA MEDIA FRAMEWORKJAVA MEDIA FRAMEWORK
JAVA MEDIA FRAMEWORKEder Nogueira
 
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...Eder Nogueira
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão GeralEder Nogueira
 
Abordagem humanística da administração e decorrências da teoria das relações ...
Abordagem humanística da administração e decorrências da teoria das relações ...Abordagem humanística da administração e decorrências da teoria das relações ...
Abordagem humanística da administração e decorrências da teoria das relações ...Eder Nogueira
 
AGILE UNIFIED PROCESS
AGILE UNIFIED PROCESSAGILE UNIFIED PROCESS
AGILE UNIFIED PROCESSEder Nogueira
 

Plus de Eder Nogueira (20)

COBIT 5
COBIT 5 COBIT 5
COBIT 5
 
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YIIDETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
 
Títulos de Renda Fixa
Títulos de Renda FixaTítulos de Renda Fixa
Títulos de Renda Fixa
 
HIstóricos e Causas da Inflação
HIstóricos e Causas da InflaçãoHIstóricos e Causas da Inflação
HIstóricos e Causas da Inflação
 
Kant e a Ética do Dever
Kant e a Ética do DeverKant e a Ética do Dever
Kant e a Ética do Dever
 
Projeto Político Pedagógico - Parte I - Versão FULL
Projeto Político Pedagógico - Parte I - Versão FULLProjeto Político Pedagógico - Parte I - Versão FULL
Projeto Político Pedagógico - Parte I - Versão FULL
 
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAR
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLARPROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAR
PROJETO POLÍTICO PEDAGÓGICO - DIAGNÓSTICO ESCOLAR
 
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTES
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTESATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTES
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - DOCENTES
 
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAIS
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAISATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAIS
ATENDIMENTO EDUCACIONAL ESPECIALIZADO - PAIS
 
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOS
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOSAPRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOS
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ALUNOS
 
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLA
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLAAPRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLA
APRESENTAÇÃO DO PPP ESCOLA MUN. PROF. LUIZ MARANHÃO FILHO PARTE I - ESCOLA
 
CERTIFICAÇÃO DE QUALIDADE: ISO
CERTIFICAÇÃO DE QUALIDADE: ISOCERTIFICAÇÃO DE QUALIDADE: ISO
CERTIFICAÇÃO DE QUALIDADE: ISO
 
Ferramentas Colaborativas
Ferramentas ColaborativasFerramentas Colaborativas
Ferramentas Colaborativas
 
Tutorial JBoss Seam
Tutorial JBoss Seam Tutorial JBoss Seam
Tutorial JBoss Seam
 
Padrão de Projeto Mediator
Padrão de Projeto MediatorPadrão de Projeto Mediator
Padrão de Projeto Mediator
 
JAVA MEDIA FRAMEWORK
JAVA MEDIA FRAMEWORKJAVA MEDIA FRAMEWORK
JAVA MEDIA FRAMEWORK
 
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...
PROGRAMAÇÃO DECLARATIVA COM JAVAFX: UM PARADIGMA NA CONSTRUÇÃO DE INTERFACES ...
 
JavaFX - Uma visão Geral
JavaFX - Uma visão GeralJavaFX - Uma visão Geral
JavaFX - Uma visão Geral
 
Abordagem humanística da administração e decorrências da teoria das relações ...
Abordagem humanística da administração e decorrências da teoria das relações ...Abordagem humanística da administração e decorrências da teoria das relações ...
Abordagem humanística da administração e decorrências da teoria das relações ...
 
AGILE UNIFIED PROCESS
AGILE UNIFIED PROCESSAGILE UNIFIED PROCESS
AGILE UNIFIED PROCESS
 

UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕES CORPORATIVAS PARA WEB

  • 1. II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica João Pessoa - PB - 2007 UTILIZANDO O FRAMEWORK JBOSS SEAM PARA ACELERAR O DESENVOLVIMENTO DE APLICAÇÕES CORPORATIVAS PARA WEB Fellipe Araújo ALEIXO (1); Ivanilson França VIEIRA Júnior (2); Eder Carlos de Oliveira NOGUEIRA (3); Wanderson CÂMARA dos Santos (4); Thyago Barbosa RODRIGUES (5) (1) CEFET-RN, Av. Sen. Salgado Filho, 1559, Tirol, Natal-RN – CEP: 59015-000, telefone: (84) 4005 2637, e-mail: fellipe@cefetrn.br (2) CEFET-RN, e-mail: ivanilsonjunior@cefetrn.br (3) CEFET-RN, e-mail: eder_tds@yahoo.com.br (4) CEFET-RN, e-mail: wan007@gmail.com (5) CEFET-RN, e-mail: thyagobr@gmail.com RESUMO Ao passo que as tecnologias relacionadas com o desenvolvimento de sistemas evoluem, aumenta a complexidade dos sistemas que se deseja desenvolver. O aumento da complexidade dos sistemas a serem desenvolvidos, e o fato desse desenvolvimento necessitar acontecer em menos tempo (por uma questão de competitividade), tem levado ao desenvolvimento de mecanismos de middleware. Um middleware visa oferecer uma série de serviços prontos para serem utilizados pelos desenvolvedores de aplicações. O nome de aplicações corporativas foi associado a tais aplicações que por sua complexidade, fazem uso de serviços de middleware para acelerar o seu desenvolvimento, concentrando esforços na lógica do negócio. Uma das plataformas para o desenvolvimento de sistemas corporativos foi desenvolvida pela Sun Microsystems, e é chamada de Java Enterprise Edition, atualmente na sua versão 5, o JEE 5. Com o objetivo de otimizar ainda mais o desenvolvimento de aplicações corporativas JEE 5, voltadas para a Web, foi desenvolvido o framework JBoss Seam. O objetivo deste trabalho é realizar uma compilação de bibliografia sobre o JBoss Seam, além de explorar seus aspectos práticos no desenvolvimento de um estudo de caso. O estudo de caso em questão trata- se do desenvolvimento de uma aplicação completa utilizando este framework. A seguinte metodologia será utilizada para o desenvolvimento do trabalho: realizar uma revisão bibliográfica sobre o tema; levantar os requisitos e especificar o sistema a ser desenvolvido; definir a arquitetura do sistema a ser desenvolvido com base no framework escolhido para o desenvolvimento; e apresentar aspectos relativos a fase de implementação e testes. Será adotado para o desenvolvimento do sistema proposto uma customização do processo unificado. Palavras-chave: Java Enterprise Edition, Jboss Seam, Aplicações Corporativas.
  • 2. II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica João Pessoa - PB - 2007 1. INTRODUÇÃO Ao passo que as tecnologias relacionadas com o desenvolvimento de sistemas evoluem, aumenta a complexidade dos sistemas que se deseja desenvolver. O aumento da complexidade dos sistemas a serem desenvolvidos, e o fato desse desenvolvimento necessitar acontecer em menos tempo (por uma questão de competitividade), tem levado ao desenvolvimento de mecanismos de middleware. Um middleware visa oferecer uma série de serviços prontos para serem utilizados pelos desenvolvedores de aplicações. O nome de aplicações corporativas foi associado a tais aplicações que por sua complexidade, fazem uso de serviços de middleware para acelerar o seu desenvolvimento, concentrando esforços na lógica do negócio. Uma das plataformas para o desenvolvimento de sistemas corporativos foi desenvolvida pela Sun Microsystems, e é chamada de Java Enterprise Edition, atualmente na sua versão 5, o JEE 5. Com o objetivo de otimizar ainda mais o desenvolvimento de aplicações corporativas JEE 5, voltadas para a Web, foi desenvolvido o framework JBoss Seam. O objetivo deste trabalho é realizar uma compilação de bibliografia sobre o JBoss Seam, além de explorar seus aspectos práticos no desenvolvimento de um estudo de caso. O estudo de caso em questão trata-se do desenvolvimento de uma aplicação completa utilizando este framework. A necessidade de códigos mais limpos e menos complexos vem tornando a utilização de ferramentas de desenvolvimentos cada vez mais recentes por parte dos programadores e uma dessas ferramentas é o framework JBOSS SEAM criado por Gavin King o mesmo criador do Hibernate. A utilização do framework visa facilitar a manipulação do código integrando JSF e EJB3 deixando a cargo do programador somente a definição do Negocio da Aplicação. 2. APLICAÇÕES DISTRIBUÍDAS A segunda metade do século vinte foi o palco de uma enorme inovação tecnológica. Os computadores começaram a dominar diversos setores, e é claro que as empresas não ficaram de fora desta revolução. Cada vez mais as necessidades comerciais foram sendo delegadas aos computadores, que passaram a dominar desde as frentes de loja até os pisos de fábrica, passando por estoques, departamentos financeiros, setores de direção e etc. Para realizar tarefas tão complexas, softwares igualmente complexos são necessários. Tais softwares precisam encarar desafios como integrar diversos setores de uma mesma companhia (ERM), conectar empresas geograficamente separadas, realizar verificações inteligentes na base de dados (Business Inteligence), além das tarefas que se esperam de qualquer software empresarial, ou seja, tarefas que compensem o investimento, promovendo lucros e benefícios. Tais programas são conhecidos como Aplicações Corporativas, justamente por tratarem de problemas com um complexidade de níveis empresariais. Aplicações Corporativas englobam uma grande quantidade de sub-sistemas, e apresentam um grande número de requisitos de alta complexidade. Um portal de compras na Internet, por exemplo, precisa estar sempre online, garantir segurança para o cliente, suportar milhares de requisições por segundo, entre outras coisas. Para implementar sistemas de tamanha capacidade, faz-se necessário utilizar uma linguagem confiável, uma plataforma robusta. Java foi a escolha mais óbvia, principalmente por se tratar de uma linguagem livre de código aberto. Java é uma plataforma de desenvolvimento criada pela Sun Microsystems. Em verdade, existem quatro plataformas: Java SE, para programas Desktop; Java EE, para aplicações corporativas; Java ME, para aplicações de aparelhos móveis, como celulares e PDAs; e Java Card Technology, para smart cards e outros equipamentos de memória e processamento extremamente limitados. Embora o Java EE (Enterprise Edition) seja focado em aplicações corporativas, tais aplicações podem vir a utilizar todas as quatro plataformas de desenvolvimento, dependendo, obviamente, das suas necessidades. Neste artigo, apenas as plataformas Java EE e Java SE serão utilizadas (posto que a Java EE é naturalmente utilizada em conjunto com as classes de núcleo do Java, que estão no Java SE). Do site da Sun: "Java Platform, Enterprise Edition (Java EE) é o padrão da indústria para o desenvolvimento de aplicações java do lado do servidor portáveis, robustas, escaláveis e seguras. Construída sobre a fundação sólida do Java Platform, Standard Edition (Java SE), Java EE provê APIs para web services, modelo de componentes, gerenciamento e comunicação, que a tornam o padrão da indústria para a implementação da arquitetura orientada a serviços (SOA) de classe corporativa e aplicações web da próxima geração". Devido ao tamanho e à complexidade das aplicações em questão, torna-se bastante complicado o desenvolvimento de todos os aspectos necessários para o programa, entre requisitos funcionais e não-
  • 3. II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica João Pessoa - PB - 2007 funcionais. E estes são alguns dos motivos que levaram a comunidade de desenvolvimento a criar programas de apoio para tais aplicações, os chamados Servidores de Aplicação. Estes, por sua vez, são middlewares para aplicações corporativas e/ou distribuídas que facilitam bastante a sua implementação e manutenção. 3. MIDDLEWARE PARA APLICAÇÕES CORPORATIVAS As aplicações distribuídas possuem diversas necessidades - algumas das quais já foram ilustradas neste trabalho - e muitas delas mostram-se redundantes de uma aplicação para outra. Funcionalidades tais como balanceamento de carga, métodos de autenticação e segurança, controle de transações, serviço interno de nomes, abstração dos protocolos de comunicação via rede, etc., são utilizados em muitas aplicações corporativas distribuídas. Muito embora estes serviços sejam fundamentais para a maioria das aplicações, eles não se referem diretamente à lógica de negócio das aplicações, e constituem assim um interesse paralelo. E é a fim de prover tais funcionalidades que existem os middlewares. Segundo a Internet2, Um Middleware é uma camada de software localizada entre a rede e as aplicações. Esse software provê serviços tais como identificação, autenticação, autorização, diretórios e segurança. Ou seja, um midleware é um software que provê abstração de serviços para outros softwares, permitindo que estes softwares utilizem diversas funcionalidades de maneira simples ou transparente. A principal vantagem dos middlewares é retirar das mãos da equipe de desenvolvimento o fardo de ter que programar todas estas funcionalidades, o que provocaria re-escrita de um código que provavelmente já existe em diversos outros programas. Utilizar um middleware ajuda ainda a comunidade de desenvolvimento como um todo, posto que torna-se possível estabelecer padrões. Seria muito difícil, por exemplo, desenvolver um sistema de agentes de software que se comunicasse com diversos serviços se o protocolo de comunicação de cada serviço fosse diferente. Ao utilizar um serviço comum - aquele provido pelo middleware - estas dificuldades são eliminadas. No entanto, para que as empresas aceitem ficar tão dependentes de um software, é preciso que ele tenha consistência no mercado. Seria ingenuidade acreditar que as empresas iriam aceitar qualquer middleware unicamente pelas suas funcionalidades; é preciso saber, por exemplo, que a empresa por trás da criação do middleware é séria, que o projeto tem sustentação - em outras palavras, que eles não estão pegando um barco destinado a afundar. Alguns middlewares de suporte para aplicações distribuídas em Java já conseguiram o seus lugares no mercado. Dentre os mais conhecidos, destacam-se o JBoss (Red Hat), Sun Java System (Sun), Oracle (Oracle), WebSphere (IBM), Geronimo (Apache) e WebLogic (BEA). Todos têm em comum o fato de receberem suporte de grandes empresas de renome no mercado. Umas das mais novas e solicitadas funções dos middlewares modernos para Java é a de prover serviços Web (ou Web services, como será chamado neste trabalho à partir deste ponto). Web services nada mais são do que, como o próprio nome diz, serviços que são disponibilizados através da Web. Os Web services são uma implementação da Arquitetura Orientada a Serviços, ou SOA (Service Oriented Architecture) (BELL, 2006), tão comentada hoje em dia. Mas a concorrência entre os middlewares os levam a fazer mais do que simplesmente oferecer a opção de disponibilizar os Web services. Middlewares de alta capacidade trazem todo um modelo automatizado de deployment de Web services (ou seja, de preparação para disponibilização do serviço). O JBoss, por exemplo, apresenta uma integração com o JAX-WS 2.0 (tecnologia Java para criação simples de Web services) (HANSEN, 2007) que permite que o serviço seja criado completamente à partir de apenas uma classe Java relativamente simples, criando automaticamente arquivos de configuração e disponibilizando o serviço na web. 4. FRAMEWORK JBOSS SEAM O Seam é um framework para JEE 5, e é inspirado nos seguintes princípios:  Integração EJB 3.0 com JSF;  AJAX integrado;  Integrar o processo de negocio na declaração das classes;  Declaração gerenciável do estado.
  • 4. II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica João Pessoa - PB - 2007 A seguir é apresentado um trecho de código-fonte de um componente Seam, onde fica evidenciado que a sua diferença para uma classe Java comum são as anotações específicas do JBoss Seam. Para um componente Seam é preciso ser definido um nome, e isso é feito pela anotação @Name, este nome precisa ser único dentro da aplicação Seam. Sempre que um componente Seam é instanciado há uma ligação com uma variável de contexto com o contexto padrão do componente. O contexto padrão é especificado usando a anotação @Scope. Um construtor vazio é requerido pelo EJB 3 e pelo Seam. As anotações @NotNull e @Length são parte do framework de validação do Hibernate, o Seam integra o validador do Hibernate e permite que você utilize-o para validação, mesmo se você não estiver usando Hibernate para persistência. 5. CONCLUSÃO A utilização do framewok JBoss Seam para o desenvolvimento de aplicações corporativas para a Web leva a utilização de uma arquitetura mais simplificada. Ao utilizarmos o Seam não temos a necessidade de duplicar código entre camadas. O fato de poder construir um componente Seam como um EJB 3 que pode ser acessado a partir da camada de apresentação como um backingbean, evita a criação de código duplicado e permite que o desenvolvedor se concentre na lógica da aplicação A criação de componentes Seam realmente aumenta a produtividade no desenvolvimento, dado que além de evitar a construção de código duplicado entre camadas, permite a criação de componentes Seam apenas com a adição de anotações específicas no código-fonte dos componentes. As vantagens de utilização do JBoss Seam só contrastam com a curva de aprendizado necessária para a utilização efetiva do framework. Embora de criação bastante simples, a utilização do framework necessita que usuário compreenda uma série de conceitos importantes relativos ao desenvolvimento de aplicações @Entity @Name("user") @Scope(SESSION) @Table(name="users") public class User implements Serializable { private String username; private String password; private String name; public User(String name, String password, String username) { this.name = name; this.password = password; this.username = username; } public User() {} @NotNull @Length(min=5, max=15) public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @NotNull public String getName() { return name; } public void setName(String name) { this.name = name; } @Id @NotNull @Length(min=5, max=15) public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } Quadro 1 - Exemplo de Código-fonte de um Componente Seam
  • 5. II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica João Pessoa - PB - 2007 corporativas e mais especificamente conceitos relativos a plataforma JEE 5. Embora com esta ressalva, a utilização do framework deve ser considerado como uma alternativa para otimizar o desenvolvimento de aplicações corporativas. REFERÊNCIAS DEITEL, Harvey M. Java – Como Programar. Prentice Hall Brasil, 2007. LEWIS John; CHASE, Joe; DEPASQUALE, Peter. Java Foundations. Addison Wesley, 2007. SAVITCH, Walter; MOCK, Kenrick. Absolute Java. Addison Wesley, 2007. SAMPAIO, Cleuton. Guia do Java Enterprise Edition 5. Brasport, 2007. MCLAUGHLIN, Brett. Building Java Enterprise Applications. O'Reilly & Associates, 2002. CRAWFORD, William; FARLEY, Jim. Java Enterprise in a Nutshell. O'Reilly & Associates, 2005. ECKSTEIN, Robert. Java Enterprise Best Practices. O'Reilly & Associates, 2002. MARK, Grand. Java Enterprise Design Patterns. John Wiley Consumer, 2001. SULLINS, Benjamin G.; WHIPPLE, Mark B. EJB – Livro de Receitas. Ciência Moderna, 2004. GONÇALVES, Edson; Desenvolvendo Aplicações Web com JSP e Servlets. Ciência Moderna, 2007. ANSELMO, Fernando. Tudo Sobre a JSP. Visual Books, 2005. SCHALK, Chris. Java Server Faces – The Complete Reference. MCGRAW-HILL Professional, 2006. KEITH, Michael; HALEY, Jason; SCHINCARIOL, Merrick. PRO EJB 3 – Java Persistence API. Apress, 2006. BELL, Michael; MARKS, Eric A. Service-Oriented Architecture – SOA. John Wiley Trade, 2006. WOODS, Dan. Enterprise SOA. O'Reilly & Associates, 2006. HANSEN, Mark. D. SOA Using Java Web Services. Prentice Hall, 2007.
  • 6. II Congresso de Pesquisa e Inovação da Rede Norte Nordeste de Educação Tecnológica João Pessoa - PB - 2007 corporativas e mais especificamente conceitos relativos a plataforma JEE 5. Embora com esta ressalva, a utilização do framework deve ser considerado como uma alternativa para otimizar o desenvolvimento de aplicações corporativas. REFERÊNCIAS DEITEL, Harvey M. Java – Como Programar. Prentice Hall Brasil, 2007. LEWIS John; CHASE, Joe; DEPASQUALE, Peter. Java Foundations. Addison Wesley, 2007. SAVITCH, Walter; MOCK, Kenrick. Absolute Java. Addison Wesley, 2007. SAMPAIO, Cleuton. Guia do Java Enterprise Edition 5. Brasport, 2007. MCLAUGHLIN, Brett. Building Java Enterprise Applications. O'Reilly & Associates, 2002. CRAWFORD, William; FARLEY, Jim. Java Enterprise in a Nutshell. O'Reilly & Associates, 2005. ECKSTEIN, Robert. Java Enterprise Best Practices. O'Reilly & Associates, 2002. MARK, Grand. Java Enterprise Design Patterns. John Wiley Consumer, 2001. SULLINS, Benjamin G.; WHIPPLE, Mark B. EJB – Livro de Receitas. Ciência Moderna, 2004. GONÇALVES, Edson; Desenvolvendo Aplicações Web com JSP e Servlets. Ciência Moderna, 2007. ANSELMO, Fernando. Tudo Sobre a JSP. Visual Books, 2005. SCHALK, Chris. Java Server Faces – The Complete Reference. MCGRAW-HILL Professional, 2006. KEITH, Michael; HALEY, Jason; SCHINCARIOL, Merrick. PRO EJB 3 – Java Persistence API. Apress, 2006. BELL, Michael; MARKS, Eric A. Service-Oriented Architecture – SOA. John Wiley Trade, 2006. WOODS, Dan. Enterprise SOA. O'Reilly & Associates, 2006. HANSEN, Mark. D. SOA Using Java Web Services. Prentice Hall, 2007.