A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tópicos Avançados em Sistemas Distribuídos Divisão em Camadas e Servidores de Aplicação.

Apresentações semelhantes


Apresentação em tema: "Tópicos Avançados em Sistemas Distribuídos Divisão em Camadas e Servidores de Aplicação."— Transcrição da apresentação:

1 Tópicos Avançados em Sistemas Distribuídos Divisão em Camadas e Servidores de Aplicação

2 Desenvolvimento em Camadas  Divisões lógicas de um programa  Lógica de Apresentação  Interação usuário x aplicativo  Apresentação das informações  Lógica de Negócio  Regras que governam o processo de negócio  Lógica de Acesso a Dados  Funcionalidades de acesso a dados e persistência

3 Desenvolvimento em Camadas Monolítico Lógica de Apresentação Lógica de Negócios Lógica de Acesso a Dados Banco de dados Código Monolítico

4 Desenvolvimento em Camadas 2 Camadas físicas Lógica de Apresentação Lógica de Negócios Banco de dados Cenário de 2 camadas físicas Lógica de Acesso a Dados

5 Desenvolvimento em Camadas 2 Camadas físicas  Problemas do modelo  Cliente com lógica de negócio  Necessidade do cliente saber detalhes da localização das fontes de dados  Clientes gordos  Atualizações individuais  Suporte ao desenvolvimento WEB

6 Desenvolvimento em Camadas 3 Camadas físicas Banco de dados Cenário de 3 camadas físicas Lógica de Acesso a Dados Lógica de Negócio Lógica de Apresenta ção

7 Desenvolvimento em Camadas 3 Camadas físicas  Vantagens  Independência entre camadas  Divisão de trabalho  Facilidade na atualização  Proteção do código  Transparência no acesso a dados  Maior portabilidade

8 Desenvolvimento em Camadas Modularidade  Divisão independente das camadas, baseada na reunião de conceitos interligados  Funções - > Classes -> Pacotes -> Componentes  Orientação Objetos  Encapsulamento, interfaces, classes e pacotes;  Componentes  Containers  Comunicação, persistência, etc  Componentes distribuídos  Interface

9 Desenvolvimento em Camadas Camadas Físicas e Componentes Banco de dados Lógica de Acesso a Dados Lógica de Negócio Lógica de Apresentaçã o

10 Servidores de Aplicação  Software que disponibiliza uma ambiente para instalação e execução de certas aplicações, fornecendo uma infra- estruturas para seu funcionamento  Funcionalidades comuns a diversas aplicações  Segurança  Persistência  Balanceamento de carga  Vantagens  Integração de dados e código  Configuração centralizada  Segurança  Desempenho  Suporte a transações

11 Servidores de Aplicação  Framework.NET  Microsoft  Desenvolvimento Multi-linguagem  Asp.NET, Windows Mobile, ADO.NET, LINQ  Plataformas J2EE  SUN  Java  J2SE, J2ME, JSF, Servlet, JDBC, etc  Jboss, GlassFish, Tomcat, WebSphere, etc.

12 J2EE  Padrão dinâmico para a produção de aplicativos corporativos escaláveis e altamente disponíveis  Define os serviços a serem fornecidos  JSR 58  Exige padrões abertos de construção:  J2SE  Componentes de interface web  Componentes para encapsular processos corporativos  Acesso a dados em repositórios de dados corporativos  Conectividade com outras fontes de dados e sistemas legados  Suporte a XML, linguagem do comércio eletrônico B2B

13 J2EE – Componentes e Contêineres  Containers  Fornecem um ambiente em tempo de execução para os componentes  J2SE  APIs  Comunicação entre componentes  Persistência  Descoberta de serviços  Implementados pelos fornecedores de servidores de aplicação  Há um container para cada tipo de componente  Contêiner de applet  Contêiner de clientes de aplicativo  Contêiner Web  EJBs

14 J2EE  Componentes que rodam no servidor J2EE  WEB  EJB

15 Contêineres J2EE

16 J2EE – Serviços Padrão  Conectividade  Objetos distribuídos  Java RMI e Corba  Internet  Http e https  Serviços de diretório  Serviços de atribuição de nome  Registro e descoberta de componentes  Java Naming and Directory Interface  Acesso a dados e persistência  API Java Database Connection (JDBC)  Fornece uma interface a nível de aplicativo para acesso ao banco de dados  E interface para construção de drivers para bancos de dados específicos

17 J2EE – Serviços Padrão  Conectividade legada  Java Connector Arquitecture (JNC)  Fornece suporte a integração de servidores de informação corporativas e sistemas legados, como processamento de informações de computadores de grande portes e sistemas ERP (Enterprise Resource Planning).  Pode ser utilizado para criação de novos adaptadores para conectar outros sistemas  Segurança  Java Autentication and Authorization Service (JAAS)  Suporte para XML  API JAXP para análise de documentos XML  Document Object Model (DOM)  Simple API for XML (SAX)  eXtensible Stylesheet Language Transformation (XSTL)

18 J2EE – Serviços Padrão  Transações  Java Transaction API (JTA)  Fornece serviços de transações para seus componentes  Pode ser controlado tanto pela aplicação como pelo contêiner  Troca de mensagens e  Java Message Service (JMS)  Permite um componente enviar e receber mensagens síncronas e assíncronas, normalmente dentro de um limite organizacional  JavaMail  Permite envio de correspondência pela Web e fornece funcionalidades para recuperar s em depósitos de correspondência

19 J2EE - Blueprints  Conjunto de boas práticas de implementação de aplicativos J2EE  Java Pet Store Sample Application (http://java.sun.com/reference/blueprints)http://java.sun.com/reference/blueprints  Promove:  Reutilização de código  Particionamento lógico funcional  Separação de áreas de alta manutenção  Extensibilidade  Modularidade  Segurança  Interface com usuário simples e consistente  Integridade dos dados

20 J2EE – Papéis de desenvolvimento  Provedor de produtos J2EE  Empresa que projeta e disponibiliza no mercado uma versão da plataforma  Fornecedores de sistemas operacionais, servidores de aplicação ou servidores web  Provedor de ferramentas  Cria ferramentas usadas para desenvolvimento, montagem ou implantação de componentes  Provedor de componentes de aplicação  Desenvolvedor de enterprise bean  Desenvolvedor de componentes Web  Desenvolvedor de clientes de aplicação J2EE  Montador da aplicação  Utiliza os componentes criados pelos provedores para montar uma aplicação J2EE  Utiliza as ferramentas desenvolvidas pelo provedor de ferramentas

21 J2EE – Camadas Físicas e Componentes  J2EE facilita o desenvolvimento em camadas  Foco na camada de apresentação e na camada de negócio  As camadas são construídas utilizando diversos componentes, os quais devem possui um fraco acoplamento

22 J2EE – Camadas Físicas e Componentes Funcionalidade do processo de pagamento JSP EJB contendo funcionalidades do processo de pagamento Contêiner EJB Contêiner JSPCamada de apresentação Camada de negócio Navegador da web Aplicativo de computador de mesa Cliente de comunicação móvel

23 J2EE – Componentes Corporativos  Vantagens  Maior eficiência  Divisão de trabalho agiliza a implementação de novos aplicativos  Pessoas especializadas em cada uma das camadas  Extensibilidade  Adição de novas funcionalidades apenas adicionando novos componentes  Independência de linguagem  Divisão em módulos e bibliotecas de integração permite que códigos escritos em diferentes linguagens se comuniquem  Corba e COM Bridge  Upgrade do sistema  Atualizações internas de um componente não alteram o funcionamento dos demais componentes do sistema

24 Componentes: Enterprise JavaBeans  Fornecem uma maneira conveniente de encapsular e compartilhar lógica do negócio comum  Tira proveito de serviços fornecidos pelo contêiner EJB

25 EJB - Cenário  Aplicativo de comércio eletrônico. Fluxo da aplicação: 1. Apresentar os produtos ao cliente 2. Permitir que um cliente selecione um ou mais produtos 3. Confirmar o pedido e receber detalhes da entrega 4. Receber pagamento dos itens 5. Entregar seu pedido para seus sistemas de armazenamento e distribuição 6. [opcional] Autenticar o usuário para acessar informações ou preferências armazenadas anteriormente 7. [opcional] Gerar um relatório dos itens adquiridos por um cliente em particular ou em um dia específico

26 EJB - Cenário  Lógica de negócio espalhada na camada de usuário  Informações sobre produtos e preços podem estar espalhadas em diversos banco de dados, ou ainda deve ser extraída de um sistema legado  Podem existir processos corporativos extras que precisam ser aplicados durante a criação do catálogo.  Informações sobre preferências dos clientes requerem autenticação e conhecimento do local de armazenamento  Tais problemas podem ser resolvidos com EJBs  Fornecem componentes para a lógica do negócio  Podem ser descobertos automaticamente  JNDI e RMI  Base EJB

27 Usando um Componente EJB Cliente Bean corporativa Base Componente Contêiner EJB Fábrica Contêiner Cliente Banco de Dados Consulta EJB Obtém Instância Chamada a métodos Do negócio

28 Tipos de Componentes EJB  Beans de Sessão  Tipos mais simples e comuns  Encapsula um conjunto de funções corporativas comuns  Armazena informações relevantes apenas para a sessão de usuário corrente  Pode usar conexões com JDBC ou utilizar um EJBs de entidade para obter dados persistentes  Beans de Entidade  Utilizado para modelar objetos corporativos que possuem dados dinâmicos e que podem ser compartilhados entre vários clientes a qualquer momento  Oferece um interface síncrona através do qual um cliente pode acessar seus dados e sua funcionalidade  Atua como uma representação dinâmica dos dados corporativos, fornecendo métodos para atualizá-los e recuperá-los

29  Beans de mensagens  Oferecem uma interface assíncrona através do qual os clientes podem interagir com eles  Destinada a abrigar lógica de negócio e não dados  Acessa dados através de JDBC ou de beans de entidade  É acessado através de mensagens enviadas pelo cliente a fila de mensagens a qual o beans está associado

30 J2EE - Camada de Apresentação  Trata a interface de comunicação entre o usuário e lógica de negócio criada com os EJBs  O dispositivo utilizado para exibição da lógica de apresentação pode ser um dispositivo móvel, um aplicativo desktop ou uma página web

31 J2EE - Componentes Centrados na Web  Aplicados na camada de apresentação  Fornece serviços para clientes que usam HTTP como meio de comunicação  Navegadores orientados para HTML  Dispositivos J2ME conectando-se através de redes sem fio  Desktops utilizando HTTP bruto ou funcionalidade de soquetes  Navegadores WML (Wireless Markup Language), encontrados em dispositivos móveis compatíveis com WAP

32 Funcionalidade do processo de pagamento JSP ou Servlet EJBs Contêiner de EJBs Contêiner WEB Camada de apresentação Camada de negócio Navegador da web Aplicativo de computador de mesa Cliente de comunicação móvel Cliente centrado na WEB Requisição Http Resposta Http

33 Contêineres Web  Java Server Pages  Combinação de tags JSP que contém código dinâmico (scripts) e marcação estática (HTML)  Código dinâmico é processado no servidor e o resultado é uma página HTML contendo tanto o HTML original como a resultante do processamento  Geração transparente  Servlet  Aplicativos Java que rodam em um servidor WEB  Inúmeras vantagens sobre scripts CGI  Velocidade, independência de plataforma, API padrão (Servlet), poder (acesso as APIs Java), Suporte  Interage facilmente com outros componentes J2EE

34 J2EE – A Camada do Cliente  Clientes HTML estáticos  Clientes HTML dinâmicos  Clientes Applet Java  Outros clientes HTTP  Exemplo dispositivos WAP com navegador WML

35 Empacotando e Implantando Arquivos J2EE  Um aplicativo J2EE consiste:  Zero ou mais componentes Web empacotados como Web Archives (arquivos WAR)  Zero ou mais componentes EJB empacotados como arquivos EJB-JAR  Zero ou mais componentes clientes empacotados como arquivos JAR  Zero ou mais conectores empacotados como Resource Archives (arquivos RAR)  Todos os componentes são armazenados em um arquivo JAR específico, chamado Enterprise Application Archive (EAR)  Descritores de Implantação  Arquivos XML contendo informações sobre a configuração interna do pacotes  Inter-relacionamento  Requisitos de ambiente

36 DD de Aplicativo DD de Contêiner Módulos EJB Módulos Da Web Módulos Cliente Módulos de Recurso EJB_JAR DD WAR DD JAR DD RAR DD


Carregar ppt "Tópicos Avançados em Sistemas Distribuídos Divisão em Camadas e Servidores de Aplicação."

Apresentações semelhantes


Anúncios Google