arquitetura de aplicações j2eejhcf/cursos/dim341s03.2/j2ee.pdf · session beans?modelo de...

35
Arquitetura de Aplicações J2EE Jorge Fernandes Outubro de 2003

Upload: others

Post on 11-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Arquitetura de Aplicações J2EE

Jorge FernandesOutubro de 2003

Page 2: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

J2EE? O que é? Como se organiza? Como funciona? Elementos? Arquitetura Típica

Page 3: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Componentes de Software? Reuso é um processo

? Publicar interfaces? Distribuir componentes

? Componentes de sw? Unidades coesas de código (sw) que possuem uma interface

pública bem definida

? Utilizar múltiplas cópias do componente em várias configurações de sistema, baseado na interface do componente

? Reusabilidade é uma propriedade

Page 4: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Reusabilidade relaciona-se com Acoplamento e Coesão

? Coesão? Propriedade desejável, que demonstra unidade

conceitual de dos elementos que formam um módulo de software

? Acomplamento? Propriedade indesejável, que demonstra a falta

de coerência no no agrupamento de elementos que formam um módulo de software

Page 5: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Classes e componentes? O que é uma classe?

? UNIDADE DE MODELAGEM DE OBJETOS, ATRAVÉS DE métodos e atributos, usando uma linguagem de programação orientada a objetos

? Relacionado a codificação? Quando os métodos de uma classe são

públicos, podemos dizer que eles formam a interface da classe? Por princípio, os atributos são privados

Page 6: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

classe classemetods

metodos

Pacote x

metods

metods

Componente x.jarmetods

metods

classe classemetods

metodos

Pacote x

metods

metods

Gerando ou construindo um componenteCriando um “build”

código

componente

Métodos públicosFormam a interface de componentes

Page 7: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Componente x.jar

metods

metods

Componente x.jar

metods

metods

Componente x.jar

metods

metods

Ciclo de desenvolvimento de software com reuso

aplicacao

Componente x.jar

metods

metods

Componente x.jar

metods

metods

Novo ComponenteProduzido

metods

metods

Cópia (reuso)

Publicacao e divulgacãoDe novos componentes

Componente x.jar

metods

metods

Código da aplicação

aplicação

biblioteca

Page 8: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

A Solução da Tecnologia Java

Um amplo espectro de Plataformas,edições, configurações e perfis

Page 9: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Edições Java 2 e Seus Dispositivos. Fonte [CLDC1.0a]

Page 10: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

J2EE – Plataforma para Desenvolvimento de Software e Sistemas Corporativos

? Conjunto de bibliotecas, interpretadores e outras ferramentas adequadas para desenvolvimento e execução de aplicações distribuídas de uso corporativo

? Objetivos? Padronização

? Integração entre modelo web e modelo corporativo

? Simplificação na construção de componentes? Reuso de componentes? Agilidade e produtividade na construção? Desempenho? Escalabilidade

Page 11: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Diferentes Perspectivas de Evolução de Sistemas Corporativos

? O que pode variar?? Cliente? Regras de negócio? Sistemas e bases de

dados? Infra-estrutura

Apresentação

Regras de funcionamentoDo negócio

Bases de dados

Infra-estrutura

Page 12: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Infra-estrutura de Aplicações Corporativas

Bases de Dados

Subsistemas eRegras de Negócios

InterfaceWeb/Wap/J2ME/XML

Sistemas Legados

Page 13: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Variando os Clientes

web

Regras de funcionamentoDo negócio

Bases de dados

wap tv xml

Filtro

Page 14: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Variando as Regras

apresentação

Bases de dados

Ambiente de Runtime Padronizado

Módulo #1

Módulo #2

Módulo #3

Módulo #n

Page 15: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Dependências entre classes ou pacotes

utilitário

componente

componente

Componente

aplicacao

utilitários

Componentes de negócios

Page 16: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Variando os Dados

apresentação

SGDB #1

Regras de funcionamentoDo negócio

SGDB #2 SGDB #n

Integrador de dados

Page 17: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Modelo de Infra-estrutura abstrata para Aplicações Corporativas

web wap tv xml

Filtro

Módulo #1

Módulo #2

Módulo #3

Módulo #n

SGDB #1 SGDB #2 SGDB #n

Integrador de dados

Ambiente de Runtime Padronizado

Page 18: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Ambiente J2EE

Page 19: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Container? Ambiente de runtime padronizado que provê

serviços específicos para clientes? Qualquer plataforma J2EE deve conter este

runtime? Serviços padronizados

? Gerenciamento de transação? Gerenciamento de sessão web? Messaging? Instalação e configuração

Page 20: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

APIs J2EE? JSP – Java Server Pages? Enterprise JavaBeans? Java API for XML

Processing (JAXP)? J2EE Connector

Architecture? infrastructure para

interacting com Enterprise Information System como ERP, CRM, and other

? JDBC 2.-? Java Transaction – JTA

? JNDI – Java Naming and Directory

? Java IDL – InterfaceDefinition Language

? Java RMI? Java Message Service? Java Authentication and

Authorization Service –JAAS

? JavaMail? JavaBeans

Page 21: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

APIs J2EE

Page 22: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

JSP – Java Server Pages? Tecnologia de componentes

para interface com usuário web? Html – wml – xml –

? O componente é o JSP? O foco é em apresentação,

em vez de controle

Page 23: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Enterprise JavaBeans? Tecnologia de componentes para regras de

negócios e persistência de objetos? Componentes:

? Entity beans? Modelo de componente especializado para representar

entidade de dados que pode ser persistida junto ao um SGBD

? Session beans? Modelo de componente EJB especializado para representar

as regras de negócios da organização, sistema ou aplicação

? Message beans? Modelo de componentes para tratamento de integração com

sistemas através de eventos ou mensagens assíncronas

Page 24: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Java API for XML Processing (JAXP)

Page 25: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

J2EE Connector Architecture? infrastructure para

interacting com Enterprise Information System como ERP, CRM, and other

Page 26: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

JDBC 2.-

Page 27: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Java Transaction – JTA

Page 28: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

JNDI – Java Naming and Directory

Page 29: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Java IDL – Interface Definition Language

Page 30: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Java RMI

Page 31: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Java Message Service

Page 32: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Java Authentication and Authorization Service – JAAS

Page 33: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

JavaMail

Page 34: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

JavaBeans? Modelo de componente originalmente

concebido para criar componentes de GUI? É um idioma de programação? Prescreve um modo padronizado de escrita

de mensagens, métodos de acesso a propriedades e tratamento de eventos

Page 35: Arquitetura de Aplicações J2EEjhcf/cursos/DIM341s03.2/J2EE.pdf · Session beans?Modelo de componente EJB especializado para representar as regras de negócios da organização,

Um exemplo de JavaBeanclass Componente {

setNome(String nome) {// especificação de que o componente tem uma

propriedade nome, que é alterável}String getNome() {// especificação de que o componente tem uma

propriedade nome, que é alterável}

}