1 / 36

Tópicos Avançados em Sistemas Distribuídos

Tópicos Avançados em Sistemas Distribuídos. Divisão em Camadas e Servidores de Aplicação. 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

kylar
Download Presentation

Tópicos Avançados em Sistemas Distribuídos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 CamadasModularidade • 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 • 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 NamingandDirectory 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 ConnectorArquitecture (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 ResourcePlanning). • Pode ser utilizado para criação de novos adaptadores para conectar outros sistemas • Segurança • Java AutenticationandAuthorizationService (JAAS) • Suporte para XML • API JAXP para análise de documentos XML • DocumentObjectModel (DOM) • Simple API for XML (SAX) • eXtensibleStylesheetLanguageTransformation (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 e-mail • 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 e-mails em depósitos de correspondência

  19. J2EE - Blueprints • Conjunto de boas práticas de implementação de aplicativos J2EE • Java Pet StoreSample 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. 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 • 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 ResourceArchives (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 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

More Related