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

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

Tópicos Avançados em Sistemas Distribuídos

Apresentações semelhantes


Apresentação em tema: "Tópicos Avançados em Sistemas Distribuídos"— 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
Código Monolítico Lógica de Apresentação Lógica de Negócios Lógica de Acesso a Dados Banco de dados

4 Desenvolvimento em Camadas 2 Camadas físicas
Cenário de 2 camadas físicas Lógica de Apresentação Lógica de Negócios Lógica de Acesso a Dados Banco de 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
Cenário de 3 camadas físicas Lógica de Apresentação Lógica de Negócio Lógica de Acesso a Dados Banco de dados

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
Lógica de Apresentação Lógica de Negócio Lógica de Acesso a Dados Banco de dados

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 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 Serviços de diretório
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 Segurança Suporte para XML
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 Troca de mensagens e e-mail
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) 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
Navegador da web Contêiner JSP Camada de apresentação JSP Aplicativo de computador de mesa Funcionalidade do processo de pagamento Contêiner EJB Camada de negócio Cliente de comunicação móvel EJB contendo funcionalidades do processo de pagamento

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:
Apresentar os produtos ao cliente Permitir que um cliente selecione um ou mais produtos Confirmar o pedido e receber detalhes da entrega Receber pagamento dos itens Entregar seu pedido para seus sistemas de armazenamento e distribuição [opcional] Autenticar o usuário para acessar informações ou preferências armazenadas anteriormente [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
Contêiner EJB Contêiner Cliente Componente Cliente Chamada a métodos Do negócio Bean corporativa Obtém Instância Base Consulta EJB Banco de Dados Fábrica

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

33 Contêineres Web Java Server Pages Servlet
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 DD Módulos EJB DD Módulos Da Web
EJB_JAR DD de Contêiner DD Módulos EJB WAR DD Módulos Da Web JAR Módulos Cliente DD Módulos de Recurso RAR DD


Carregar ppt "Tópicos Avançados em Sistemas Distribuídos"

Apresentações semelhantes


Anúncios Google