Sistemas Distribuídos e Paralelos

Tamanho: px
Começar a partir da página:

Download "Sistemas Distribuídos e Paralelos"

Transcrição

1 Sistemas Distribuídos e Paralelos Objectos e Componentes Distribuídos Ricardo Mendão Silva Universidade Autónoma de Lisboa November 19, 2014 Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

2 Outline 1 Introdução 2 Objectos distribuídos 3 Dos objectos aos componentes 4 Caso de estudo: Enterprise JavaBeans Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

3 Introdução Uma solução de middleware completa deve apresentar uma abstracção tanto ao nível de programação de alto-nível, como ao nível do sistema distribuído. Neste capítulo vamos abordar duas das mais importantes abstracções na programação, nomeadamente: Objectos distribuídos Componentes distribuídos Para além da análise teórica, vamos ainda abordar um caso prático: Enterprise JavaBeans Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

4 Introdução Middleware de objectos distribuídos A característica chave dos objectos distribuídos é que permitem adoptar um modelo de programação totalmente orientado aos objectos, escondendo toda a complexidade dos sistemas distribuídos. Neste panorama as entidades são representadas por objectos. Os objectos comunicam maioritariamente utilizando o método de invocação remota de métodos. Porém, outros métodos como eventos distribuídos são também utilizados. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

5 Introdução Middleware de objectos distribuídos Esta abordagem simplista apresenta um conjunto de benefícios: O encapsulamento herdado das soluções baseadas em objectos é uma mais valia nos sistemas distribuídos. A abstracção de dados permite separar completamente o uso do objecto da sua implementação, permitindo que os programadores preocupem-se simplesmente em invocar os métodos fornecidos, ignorando totalmente os detalhes de implementação. Esta abordagem permite assim soluções dinâmicas e extensíveis, introduzindo, por exemplo, novos objectos ou substituir objectos por outros. Exemplo de soluções: Java RMI e CORBA. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

6 Introdução Middleware de componentes distribuídos As soluções baseadas em componentes têm sido desenvolvidas para resolver uma série de limitações que têm vindo a ser detectadas nos sistemas baseados em objectos distribuídos, nomeadamente: Dependências implícitas: As interfaces dos objectos não descrevem as dependências da implementação do objecto, tornando os sistemas baseados em objectos difíceis de desenvolver e gerir, principalmente para os third-party. Complexidade de programação: A programação de objectos distribuídos leva à necessidade de dominar vários detalhes de baixo nível associados com a implementação do middleware. Falha na separação dos detalhes da distribuições: Os programadores têm o dever de considerar detalhes como segurança, gestão de falhas e concorrência, o que não conseguem se não tiverem conhecimento da distribuição do sistema. Sem suporte de instalação: Os middlewares orientados a objectos fornecem pouca ou nenhuma informação sobre a instalação e configuração dos objectos. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

7 Outline 1 Introdução 2 Objectos distribuídos 3 Dos objectos aos componentes 4 Caso de estudo: Enterprise JavaBeans Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

8 Objectos distribuídos Os middleware orientados a objectos são desenhados para fornecer o nível de programação orientada a objectos e, como tal, trazer os benefícios da mesma para a programação distribuída. Os programadores deste tipo de sistemas têm ao seu dispor não só uma abstracção mais rica, mas também os princípios da orientação a objectos, ferramentas e técnicas, tais como UML. Por exemplo, o CORBA OMG incluí suporte para a norma UML. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

9 Objectos distribuídos Os objectos distribuídos fornecem uma abstração baseada nos princípios orientados a objectos. Os principais exemplos de middlewares que seguem esta lógica são o Java RMI, analisado anteriormente, e o CORBA.. Apesar de ambas as soluções partilharem bastante em comum, existe uma diferença importante: O uso de Java RMI está limitado à linguagem Java, enquanto que o CORBA é uma solução multi-linguagem permitindo objectos escritos numa variedade de linguagens interoperarem. (Ex: C++, Python, Java, etc...). Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

10 Objectos distribuídos Diferenças entre objectos e objectos distribuídos Objectos Objectos Distribuídos Referências Referências para objectos para objectos remotos. Interfaces Interface remotas. Acções Acções distribuídas. Excepções col- Garbage lection remoto (uso de IDL). Iniciadas pela invocação de um método, resultando possivelmente numa cadeia de invocações. Excepções distribuídas. Garbage collection distribuído. Descrição dos objectos distribuídos As referências para objectos remotos são únicas e globais, podendo ser passadas por parâmetro. Fornecem uma especificação abstracta dos métodos que podem ser invocados no objecto Excepções adicionais geradas pela natureza distribuída do sistema, incluinda mensagens perdidas ou falhas nos processos. Garante que um objecto continua a existir desde que uma referência ou uma referência remota para o objecto exista.requer um algoritmo de garbage collection distribuído. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

11 Objectos distribuídos Complexidade acrescida Para além das diferenças entre objectos e objectos distribuídos, os SD adicionam um nível de complexidade superior, nomedamente: Comunicação entre objectos: Um middleware de objectos distribuídos deve oferecer um ou mais mecanismos para que os objectos comuniquem no ambiente distribuído. Estes mecanismos são normalmente implementados via invocação remota, mas existem outras técnicas, por exemplo, baseadas na comunicação indirecta, que também são utilizadas. CORBA fornece um sistema de eventos e notificações implementados como serviços no topo do middleware. Gestão do tempo de vida: A gestão do tempo de vida aborda a criação, migração e eliminação de objectos, com cada etapa a ter de lidar com a questão distribuída. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

12 Objectos distribuídos Complexidade acrescida (continuação) Activação e desactivação: Num sistema não distribuído é assumido que os objectos estão activos durante todo o tempo de execução. Num sistema distribuído isto não pode ser assumido, uma vez que o número de objectos pode ser muito vasto, o que seria um desperdício de recrusos garantir a disponibilidade de todos simultaneamente. Para além disso, os nós "donos" dos objectos podem eles próprios não estarem disponíveis. Persistência: Os objectos tipicamente têm um estado que é importante manter independentemente dos ciclos de activação e desactivação ou mesmo de falhas do sistema. Como tal, os middleware orientados a objectos distribuídos devem oferecer gestão de persistência para o estado dos objectos. Seviços adicionais: Uma framework deste género deve ainda suportar uma série de serviços considerados importantes no âmbito dos sistemas distribuídos, tais como serviço de nomes, segurança e tolerância a falhas. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

13 Outline 1 Introdução 2 Objectos distribuídos 3 Dos objectos aos componentes 4 Caso de estudo: Enterprise JavaBeans Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

14 Dos objectos aos componentes Introdução Os middleware baseados em objectos distribuídos têm sido largamente utilizados nos mais variados cenários, incluindo os abordados no 1 o capítulo: finanças, banca, jogos, saúde, educação, etc... As técnicas incorporadas no CORBA e plataformas similares, provaram a sua eficiência em resolver pontos chave dos sistemas distribuídos: heterogeneidade, portabilidade, interoperabilidade dos softwares, segurança e fiabilidade. No entanto, uma série de questões têm surgido, o que levou ao desenvolvimento do que se conhece por abordagens baseadas em componentes. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

15 Dos objectos aos componentes Problemas nos middlewares orientados a objectos As abordagens baseadas em componentes surgiram de modo a resolver os problemas nas abordagens orientadas a objectos, nomeadamente: Dependências implícitas Como sabemos, os objectos distribuídos fornecem os seus métodos via interfaces, que abstraem completamente a implementação. Ao invocar cada método remoto, não existe conhecimento sobre o código que é executado e se esse código recorre ele próprio a outras chamadas remotas,ou seja, se tem dependências externas, sejam de serviços de nomes, controlo de concorrência, etc. Ao desconhecer estes detalhes, torna-se impossível garantir uma configuração segura do sistema como um todo, substituir um objecto por outro, ou ainda integrar com desenvolvimentos e terceiros. Requisito. Daqui existe um claro requisito no que toca não só à especificação das interfaces oferecidas por um objectos, mas também das dependências que esse objecto tem de outros objectos numa configuração distribuída. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

16 Dos objectos aos componentes Problemas nos middlewares orientados a objectos (continuação) Interacção com o middleware As plataformas de middleware baseadas em objectos, estão implementadas de uma forma que utilizam inúmeros processos de baixo nível que garantem a operação e manutenção do middleware ao longo do seu tempo de vida, como por exemplo, código para criar e gerir as referências de objectos, para gerir os ciclos de vida dos objectos, as políticas de acesso, etc.. Requisito Existe a necessidade clara de simplificar a programação das aplicações distribuídas, apresentando uma separação limpa entre código da aplicação (lógica de negócio) e código de gestão do middleware. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

17 Dos objectos aos componentes Problemas nos middlewares orientados a objectos (continuação) Falha na separação das preocupações da distribuição Quando se programa para sistemas distribuídos temos de nos preocupar não só com as questões funcionais da aplicação, mas também com questões não funcionais, tais como segurança, transacções, coordenação e replicação. Nas abordagens por objectos, estes pontos são alcançados com a inserção das chamadas apropriadas para cada serviço do sistema. Este método obriga a que os programadores conheçam muito bem os detalhes dos serviços e ferramentas disponíveis, aumentando a complexidade da programação distribuída. Requisito: A separação abordada no ponto anterior deve ser estendida aos serviços, abstraindo, sempre que possível, a complexidade em lidar com estes. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

18 Dos objectos aos componentes Problemas nos middlewares orientados a objectos (continuação) Sem suporte de implantação Apesar dos middlewares orientados a objectos, como CORBA ou RMI, possibilitarem configurações arbitrárias de objectos, não existe qualquer suporte na implantação dos mesmos, tendo esse passo que ser manualmente realizado. Esta questão torna-se critica quando o número de objectos envolvidos é grande, levando facilmente a que ocorram erros básicos. Requisito: As plataformas de middleware devem fornecer ferramentas que permitam a implantação do sistema distribuído, de forma fácil e transparente, tal como se de uma aplicação local se tratasse. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

19 Dos objectos aos componentes Problemas nos middlewares orientados a objectos (continuação) Com base nos quatro problemas apontados nos slides anteriores, surgiu o conceito de abordagens baseadas em componentes e, como resultado, middlewares baseados em componentes. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

20 Dos objectos aos componentes Componente Definição: Um componente de software é uma unidade de composição com interfaces contractualmente especificadas, com todas as dependências de contexto explicitas. Os componentes de software são como os objectos, na perspectiva em que ambos encapsulam unidades de composição. No entanto, os componentes especificam explicitamente, para além das interfaces, as suas dependências para com outros componentes, ao contrário dos objectos. As dependências são também representadas como interfaces. Um componente é especificado em forma de contrato, incluindo: um conjunto de interfaces fornecidas - as interfaces que o componente oferece como serviços aos outros componentes. um conjunto de interfaces requeridas - as dependências que este componente tem em relação aos outros componentes. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

21 Dos objectos aos componentes Componente Exemplo TinyOS - Arquitectura do Software Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

22 Dos objectos aos componentes Componente As interfaces podem ser de vários tipos. No geral, as abordagens baseadas em componentes oferecem dois estilos de interfaces, nomeadamente: interfaces com suporte para invocação remota de métodos, tal como CORBA e Java RMI. interfaces com suporte para eventos distribuídos. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

23 Dos objectos aos componentes Componente A programação de sistemas baseados em componentes assenta sobre o desenvolvimento de componentes e a sua composição. O objectivos é suportar um estilo de programação totalmente modular, permitindo conjugar diferentes componentes, de diferentes modos, desenvolvendo serviços mais sofisticados. Migrar do desenvolvimento de software para o assemblamento de software Com este estilo de desenvolvimento e estruturação de software, torna-se mais simples: a disponibilização/integração de/com código de terceiros. adaptar a configuração de sistemas em runtime, substituindo módulos, desde que disponham das mesmas interfaces. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

24 Dos objectos aos componentes Componentes e sistemas distribuídos Uma série de middlewares baseados em componentes têm surgido, sendo os mais populares o Enterprise JavaBeans (que vamos analisar mais à frente) e o CORBA Component Model (CCM). Estes sistemas não só suportam os conceitos abordados anteriormente, como também introduzem suporte para o desenvolvimento de sistemas distribuídos e respectiva implantação. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

25 Dos objectos aos componentes Componentes e sistemas distribuídos Container O conceito de containers é totalmente central nos middleware baseados em componentes. Os containers suportam um padrão comum, frequentemente encontrado neste tipo de middleware, que consiste em: um cliente front-end; um ou mais componentes que implementam a aplicação ou a lógica do negócio; um conjunto de serviços responsáveis pela gestão dos dados nas bases de dados persistentes. Assim, a função do container é a de fornecer um ambiente de gestão de componentes do lado do servidor, resolvendo um dos problemas das soluções orientadas a objectos, com os componentes a lidarem com as questões da aplicação e o container a lidar com as questões do sistema distribuído, do middleware e com todos os processos não-funcionais. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

26 Dos objectos aos componentes Componentes e sistemas distribuídos Container O container encapsula vários componentes. O acesso directo aos componentes é vedado, sendo que as invocações são interceptadas e processadas garantindo que as devidas propriedades do SD são mantidas. Middlewares com suporte de containers são conhecidos como Servidores Aplicacionais Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

27 Dos objectos aos componentes Suporte para implantação Os middleware baseados em componentes fornecem suporte para a configuração da implantação (deployment) dos componentes. As releases de software são empacotadas como arquitecturas de software, ou seja, incluindo os componentes e as suas inter-ligações, juntamente com a descrição da implantação, que define detalhadamente como a configuração deve ser implantada no ambiente distribuído. Note-se que os componentes são implantados nos containers, sendo estes responsáveis por interpretar os descritores da implantação, de modo a garantir as políticas requeridas pelo sistema (segurança, fiabilidade, etc.). Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

28 Dos objectos aos componentes Suporte para implantação Deste modo, um determinado container incluí um conjunto de componentes que requerem a mesma configuração em termos de sistema distribuído. Os descriptores de implantação são normalmente definidos em XML e incluem informação suficiente para garantir que: os componentes estão correctamente ligados utilizando os protocolos apropriados e com o devido suporte do middleware. o middleware é configurado para garantir determinado nível de suporte à configuração do componente. o sistema distribuído associado é configurado para fornecer determinado nível de segurança, suporte de transacções, fiabilidade, etc. Os middleware fornecem ainda ferramentas para interpretar os descriptores de implantação e garantir a correcta implantação numa determinada arquitectura física. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

29 Outline 1 Introdução 2 Objectos distribuídos 3 Dos objectos aos componentes 4 Caso de estudo: Enterprise JavaBeans Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

30 Caso de estudo: Enterprise JavaBeans Os desafios em desenvolver aplicações corporativas As aplicações corporativas apresentam diversos desafios, tais como portabilidade, reutilização, interoperabilidade e integração aplicacional. Desde a sua génese, o Java tinha tido, maioritariamente, maior foco nas aplicações cliente, não apostando na resolução dos problemas do lado do servidor. O desafio era então desenvolver aplicações servidor capazes de responder aos requisitos das corporações. Para isso era necessário o desenho de componentes pequenos e transparentes na localização que, operando em conjunto, respondessem aos requisitos. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

31 Caso de estudo: Enterprise JavaBeans Os desafios em desenvolver aplicações corporativas A computação empresarial está em constante mudança, tanto em termos de hardware como de software. Novas aplicações são constantemente requisitadas, garantindo, no entanto, interoperabilidade com os sistemas antigos. Não é viável deitar todo o esforço e dinheiro gasto no desenvolvimento de software que com os anos torna-se legacy, substituindo todo o sistema. É por isso importante desenvolver novos módulos possíveis de integrar nas aplicações já existentes, mesmo que desenvolvidas em linguagens de programação antigas. Hoje em dia, os software de servidor permitem que uma corporação repense a sua infraestrutura, não só para as necessidades actuais, mas também para a capacidade de crescimento e integração de novas funcionalidades. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

32 Caso de estudo: Enterprise JavaBeans Os desafios em desenvolver aplicações corporativas As aplicações corporativas são complexas e em muitos casos estão distribuídas por múltiplos domínios. As aplicações dos dias de hoje requerem tempos de resposta cada vez mais rápidos para preencher os requisitos dos utilizadores. Para além disso, a interoperabilidade com outros ambientes (hardware, software e rede) é cada vez mais importante nos ambientes corporativos e, como tal, um enorme desafio. Nesse âmbito, as arquitecturas de sistemas corporativos têm sofrido uma evolução bastante grande, que se iniciou com a arquitectura cliente-servidor (two-tier), seguindo para uma arquitectura three-tier e mais tarde web-based. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

33 Caso de estudo: Enterprise JavaBeans Introdução A arquitectura JEE (Java Enterprise Edition) é um conjunto de especificações, standards, frameworks e guias que fornecem capacidades Java nos servidores corporativos. O Enterprise JavaBeans (EJB) é o coração da arquitectura JEE. As restantes APIs são utilizadas como serviços pela API EJB. Existem inúmeras implementações de JEE, tais como o BEA s WebLogic Server, IBM s WebSphere ou o JBoss (open source). JEE oferece aplicações corporativas com alto nível de abstracção. Não oferece somente portabilidade das aplicações-servidor baseadas em componentes, como também oferece um conjunto de serviços que suportam todos os aspectos da infraestrutura. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

34 Caso de estudo: Enterprise JavaBeans Porquê EJB? A arquitectura EJB permite que as aplicações corporativas sejam portáveis ao correrem em servidores aplicacionais compatíveis com JEE. As aplicações EJB podem ser particionadas de um modo mais reutilizável, flexível e expansível. Os EJBs são componentes altamente reutilizáveis e representam a próxima geração no progresso do Java, permitindo desenvolver aplicações capazes de suportar aplicações corporativas críticas.. Os EJBs permitem assim que o desenvolvimento da lógica de negócio seja transversal a todas as aplicações corporativas e entre diferentes plataformas. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

35 Caso de estudo: Enterprise JavaBeans Porquê EJB? O modelo EJB é baseado em Java RMI, que permite a separação da execução de componentes entre múltiplos tiers. Esta separação permite maior flexibilidade na implementação e alta escalabilidade. O RMI permite o acesso a componentes remotos, como se estes fossem locais. Para além disso, a inclusão na infraestrutura de um service provider permite gerir e oferecer uma série de serviços aos EJBs implantados. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

36 Caso de estudo: Enterprise JavaBeans Porquê EJB? - Resumo Simplicidade Oferece uma série de serviços já pré-adicionados que facilitam no desenvolvimento das aplicações. Portabilidade Aplicações EJB podem ser instaladas em qualquer servidor que suporte JEE. Reutilização O EJB é construído em blocos altamente reutilizáveis. Particionamento A separação da lógica de negócio da sua apresentação permite que as equipas de desenvolvimento de negócio trabalhem independentes das equipas de front-end. Distribuição EJB permite facilmente criar aplicações distribuídas que, independentemente do número de servidores, parecem unificadas aos olhos dos utilizadores. Interoperabilidade A arquitectura EJB permite que os componentes EJB acedam a outros componentes desenvolvidos noutras linguagems, tais como CORBA ou.net. Integração Um dos objectivos do EJB foi facilitar a integração de aplicações, mesmo com sistemas legacy e non- Java. As especificações JCA (Java Connecter Architecrure) e JMS (Java Message Service) são utilizadas nesse sentido. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

37 Caso de estudo: Enterprise JavaBeans EJB Objectivos A arquitectura EJB foi desenvolvida com os seguintes objectivos: Ser o standard das arquitecturas baseadas em componentes para o desenvolvimento dos sistemas distribuídos orientados a objectos nas aplicações Java. Tornar mais fácil o desenvolvimento das aplicações corporativas, evitando a necessidade de conhecer transacções de baixo nível e detalhes de gestão de estados, multi-threading, pools de ligações e outras APIs de baixo-nível. Permitir que um EJB seja desenvolvido como um só, mas implantado em múltiplas plataformas sem necessidade de recompilação ou modificação de código. Para endereçar o desenvolvimento, implantação e aspectos de execução do tempo de vida das aplicações corporativas. Para ser compatível com plataformas servidor existentes e com outras APIs Java. Para fornecer interoperabilidade entre EJBs, componentes JEE e aplicações não-java. Para ser compatível com os protocolos CORBA. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

38 Caso de estudo: Enterprise JavaBeans Dentro do EJB Geralmente um EJB é constituído por duas interfaces e uma classe: as interfaces home e component e a classe bean. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

39 Caso de estudo: Enterprise JavaBeans Dentro do EJB A interface home lista os métodos para criar, remover e encontrar EJBs no container. O objecto home representa a implementação do objecto home que é gerado pelo container no momento da implantação. Durante a execução o objecto home vai ser utilizado pelo cliente em conjunto com um serviço de nomes para encontrar o componente e estabelecer a ligação à interface do seu componente. A interface do componente define os métodos do negócio oferecidos pela classe bean. A classe bean não implementa esta interface, mas utiliza uma classe EJBObject que faz a ligação entre as chamadas do cliente e o respectivo objecto bean. O container contem a implementação desta interface e o cliente utiliza-a. A interface componente pode tanto ser local como remota, dependendo da localização do EJB cliente relativamente ao EJB. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

40 Caso de estudo: Enterprise JavaBeans Dentro do EJB O cliente EJB localiza os containers EJB através do serviço JNDI (Java Naming and Directory Interface). Depois do cliente EJB localizar a referência para a interface home do EJB, pode requerer a interface componente, invocar um método do negócio e o container, por sua vez, invocar o respectivo bean. Os clientes EJB podem ser servlets, JSPs ou simples aplicações Java. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

41 Caso de estudo: Enterprise JavaBeans EJB Server - JEE Application Server Um EJB Server ou JEE Application Server é o container de topo que aglomera todos os containers e restantes elementos que compõem o ambiente EJB. O EJB Server gere um ou mais EJB containers e fornece o suporte a serviços requeridos, tais como gestão de transacções, persistência e acesso de clientes. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

42 Caso de estudo: Enterprise JavaBeans EJB Server - JEE Application Server Um EJB Server fornece ainda recursos operacionais, tais como, processos e execução de threads, memória, rede, gestão de recursos, pooling de ligações, caching, load balancing, fail-over, etc., aos containers e elementos nele inseridos. O EJB Server pode fornecer ainda funcionalidades especificas de vendedores, tais como, drivers de BD optimizados, interfaces para sistemas de backend e acessibilidade CORBA. Ex.: BEA s WebLogic Server, IBM s WebSphere ou o JBoss (open source). Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

43 Caso de estudo: Enterprise JavaBeans EJB Container - Serviços essenciais Todos os EJB correm dentro de um container, que lhes fornece uma série de serviços de sistema e controla os seus ciclos de vida. Uma vez que o container gere todas as questões ao nível do sistema, os programadores EJB só têm de se preocupar em desenvolver devidamente a lógica de negócio. Em geral os containers JEE definem três tipos principais de serviços, nomeadamente: serviços verticais comuns, serviços horizontais comuns e ferramentas de implantação comuns. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

44 Caso de estudo: Enterprise JavaBeans EJB Container - Serviços verticais comuns Estes serviços são herdados dos containers e não são especificados na API JEE. Contribuem para a performance e aspectos de runtime dos EJBs e dos serviços a estes prestados. Gestão do ciclo de vida Segurança RMI Gestão de transacções O container cria e destrói instâncias de bens com base nos requisitos dos clientes. O container pode multiplexar transparentemente uma pool de instâncias entre vários clientes e assim optimizar os recursos. Este serviço garante que apenas utilizadores autorizados acedem aos recursos. O JEE só fornece uma método simples de segurança para os beans e componentes web, sendo que na maioria das vezes são integradas soluções third-party, como LDAP. O container gere a comunicação de modo transparente entre os beans e os outros componentes. Assim, não é necessário implementar sockets, mensagens, empacotar, desempacotar ou outras questões de baixo nível. O programador somente implementa o negócio e ignora a comunicação. O serviço de transacções liberta o programador da preocupação em lidar com transacções complexas, que podem ocorrer em múltiplos beans ou recursos, tais como bases de dados. Assim, se um update ou delete falhar num os elementos, este serviços é responsável por fazer rollback e garantir a integridade dos dados no sistema. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

45 Caso de estudo: Enterprise JavaBeans EJB Container - Serviços verticais comuns (continuação) Persistência O serviço de persistência simplifica a ligação entre a aplicação e os tiers de bases de dados. Passivação/Activação Este mecanismo é utilizado pelo container para guardar um bean inactivo no disco e restaura-lo para memória quando invocado. Deste modo é possível servir mais clientes libertando recursos, tais como memória, dinamicamente. Clustering Permite a replicação de EJBs e serviços por múltiplas aplicações servidor, instaladas na mesma máquina ou em máquinas distintas. Clustering envolve o balanceamento de carga de pedidos de serviços e EJBs entre as instâncias replicadas. Para além, disso suporte fail-over. Se uma instância falha, a outra assegura o serviço. Pooling de recursos dos clientes. Quando um instância é libertada, esta volta novamente Suporta a alocação de pools de instâncias, que atribuí aos pedidos para a pool. Existem pools, por exemplo, para as ligações JDBC. Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November 19, / 53

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) J2EE () Sumário Introdução J2EE () APIs J2EE Web Container: Servlets e JSP Padrão XML 2 J2EE é Uma especificação para servidores

Leia mais

Web Technologies. Tópicos da apresentação

Web Technologies. Tópicos da apresentação Web Technologies Tecnologias de Middleware 2004/2005 Hugo Simões hsimoes@di.fc.ul.pt 1 A Web Tópicos da apresentação Tecnologias Web para suporte a clientes remotos (Applets,CGI,Servlets) Servidores Aplicacionais

Leia mais

J2EE TM Java 2 Plataform, Enterprise Edition

J2EE TM Java 2 Plataform, Enterprise Edition CURSO DE GRADUAÇÃO J2EE TM Java 2 Plataform, Enterprise Edition Antonio Benedito Coimbra Sampaio Junior abc@unama.br OBJETIVOS DO CURSO Capacitar os alunos no desenvolvimento de aplicações para a WEB com

Leia mais

Java 2 Enterprise Edition

Java 2 Enterprise Edition Java 2 Enterprise Edition Pablo Vieira Florentino 8/11/2006 Contexto Linguagem Java A linguagem Java é Orientada a Objetos Influenciada diretamente por C++ e Eiffel, a linguagem segue a grande tendência

Leia mais

J2EE. J2EE - Surgimento

J2EE. J2EE - Surgimento J2EE Java 2 Enterprise Edition Objetivo: Definir uma plataforma padrão para aplicações distribuídas Simplificar o desenvolvimento de um modelo de aplicações baseadas em componentes J2EE - Surgimento Início:

Leia mais

Enterprise Java Bean. Enterprise JavaBeans

Enterprise Java Bean. Enterprise JavaBeans Enterprise Java Bean Introdução Elementos do Modelo Enterprise JavaBeans A especificação do Enterprise JavaBeansTM (EJB) define uma arquitetura para o desenvolvimento de componentes de software distribuídos

Leia mais

WebSphere MQ. Bruno Miguel de Sousa Gonçalves

WebSphere MQ. Bruno Miguel de Sousa Gonçalves WebSphere MQ Bruno Miguel de Sousa Gonçalves 1.Introdução ao WebSphere Os produtos WebSphere providenciam comunicação entre programas através da interligação entre componentes heterogéneos, processadores,

Leia mais

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES Hugo Henrique Rodrigues Correa¹, Jaime Willian Dias 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil hugohrcorrea@gmail.com, jaime@unipar.br Resumo.

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Web Services Ricardo Mendão Silva Universidade Autónoma de Lisboa r.m.silva@ieee.org November 29, 2014 Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos November

Leia mais

EXPLORE - UMA FERRAMENTA DE SOFTWARE PARA EXPERIMENTAÇÃO PRÁTICA COM TRANSAÇÕES DISTRIBUÍDAS EM SISTEMAS BASEADOS EM COMPONENTES

EXPLORE - UMA FERRAMENTA DE SOFTWARE PARA EXPERIMENTAÇÃO PRÁTICA COM TRANSAÇÕES DISTRIBUÍDAS EM SISTEMAS BASEADOS EM COMPONENTES TRABALHO DE GRADUAÇÃO EXPLORE - UMA FERRAMENTA DE SOFTWARE PARA EXPERIMENTAÇÃO PRÁTICA COM TRANSAÇÕES DISTRIBUÍDAS EM SISTEMAS BASEADOS EM COMPONENTES Aluno: Fábio Ottobeli Machado Orientador: Márcia Pasin

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5 Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Tecnologia Java Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Origem da Tecnologia Java Projeto inicial: Oak (liderado por James Gosling) Lançada em 1995 (Java) Tecnologia

Leia mais

Desenvolvimento de Aplicações. Desenvolvimento de Aplicações. Desenvolvimento de Aplicações. Dificuldades no uso de Bancos de Dados

Desenvolvimento de Aplicações. Desenvolvimento de Aplicações. Desenvolvimento de Aplicações. Dificuldades no uso de Bancos de Dados Desenvolvimento de Aplicações Desenvolvimento de Aplicações Dificuldades no uso de Bancos de Dados Um leigo não sabe o que é e como funciona um BD Mesmo um profissional da área de informática pode ter

Leia mais

R/3 e SAP WAS. 8/28/2003 José Alves Marques. R/3 e SAP WAS(2)

R/3 e SAP WAS. 8/28/2003 José Alves Marques. R/3 e SAP WAS(2) R/3 e SAP WAS O R/3 é um ERP Enterprise Resource Planning Um ERP é o sistema empresarial que disponibiliza módulos para os processos de negócio - de uma empresa Um ERP permite aumentar a eficiência dos

Leia mais

4 Um Exemplo de Implementação

4 Um Exemplo de Implementação 4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação

Leia mais

UNIDADE IV ENTERPRISE JAVABEANS

UNIDADE IV ENTERPRISE JAVABEANS UNIDADE IV ENTERPRISE JAVABEANS MODELO J2EE COMPONENTES DE Camada de Negócios NEGÓCIOS JAVA SERVLET, JSP E EJB Nos capítulos anteriores, foi mostrado como desenvolver e distribuir aplicações servlet e

Leia mais

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos.

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. 1. Introdução aos Sistemas de Bases de Dados Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. O conceito de base de dados faz hoje parte do nosso

Leia mais

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. Common Object Request Broker Architecture [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. From: Fintan Bolton Pure CORBA SAMS, 2001 From: Coulouris, Dollimore and

Leia mais

Middleware de Aplicações Paralelas/Distribuídas

Middleware de Aplicações Paralelas/Distribuídas Computação Paralela Middleware de Aplicações Paralelas/Distribuídas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Principais aspectos a gerir pelo Middleware

Leia mais

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware. Camadas de Software - o Middleware Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas Modelos de Arquitecturas para sistemas distribuidos Interfaces e Objectos Requerimentos para Arquitecturas Distribuídas

Leia mais

Enterprise JavaBeans. Java Deployment Course. por Jorge H. C. Fernandes (jhcf@di.ufpe.br) DI-UFPE Julho de 1999

Enterprise JavaBeans. Java Deployment Course. por Jorge H. C. Fernandes (jhcf@di.ufpe.br) DI-UFPE Julho de 1999 Enterprise JavaBeans Java Deployment Course por Jorge H. C. Fernandes (jhcf@di.ufpe.br) DI-UFPE Julho de 1999 Enterprise JavaBeans Java Deployment Course Copyright 1999 by Jorge H. C. Fernandes (jhcf@di.ufpe.br)

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 28 de abril de 2010 Principais suportes de Java RMI (Remote Method Invocation), da Sun Microsystems DCOM (Distributed Component Object Model), da

Leia mais

Daniel Berti Fonseca RA 0310096-8º semestre INTEGRAÇÃO DE SISTEMAS CORPORATIVOS COMPLEXOS COM JAVA EE

Daniel Berti Fonseca RA 0310096-8º semestre INTEGRAÇÃO DE SISTEMAS CORPORATIVOS COMPLEXOS COM JAVA EE Daniel Berti Fonseca RA 0310096-8º semestre INTEGRAÇÃO DE SISTEMAS CORPORATIVOS COMPLEXOS COM JAVA EE Jaguariúna 2006 Daniel Berti Fonseca RA 0310096-8º Semestre INTEGRAÇÃO DE SISTEMAS CORPORATIVOS COMPLEXOS

Leia mais

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):

Leia mais

Desenvolvimento Cliente-Servidor 1

Desenvolvimento Cliente-Servidor 1 Desenvolvimento Cliente- 1 Ambiienttes de Desenvollviimentto Avançados Engenharia Informática Instituto Superior de Engenharia do Porto Alexandre Bragança 1998/99 Ambientes de Desenvolvimento Avançados

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Tolerância a Falhas Ricardo Mendão Silva Universidade Autónoma de Lisboa r.m.silva@ieee.org January 14, 2015 Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos

Leia mais

Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse

Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse LEIC 2003/04 Engenharia de Software Dezembro de 2003 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Bruno Santos,

Leia mais

Padrões de Projeto Implementados em Infraestrturas de Componentes

Padrões de Projeto Implementados em Infraestrturas de Componentes Padrões de Projeto Implementados em Infraestrturas de Componentes Paulo Pires paulopires@nce.ufrj.br http//genesis.nce.ufrj.br/dataware/hp/pires 1 distribuídas baseadas em componentes Comunicação transparente,

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS Pablo dos Santos Alves Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação Revisão bibliográfica

Leia mais

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Fundamentos da Plataforma Java EE Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Como a plataforma Java EE trata o SERVIÇO DE NOMES Serviço de Nomes Num sistema distribuído os componentes necessitam

Leia mais

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Sistemas peer-to-peer Ricardo Mendão Silva Universidade Autónoma de Lisboa r.m.silva@ieee.org December 3, 2014 Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos

Leia mais

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre Prática: 1 - A plataforma JEE (Java Enterprise Edition) UBI, DI, Paula Prata SDTF T01 1 Arquitectura

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 6 EJB Enterprise Java

Leia mais

Escola Superior de Tecnologia de Setúbal. Projecto Final

Escola Superior de Tecnologia de Setúbal. Projecto Final Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Projecto Final Computação na Internet Ano Lectivo 2002/2003 Portal de Jogos Executado por:

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras do livro

Leia mais

TDC2012. EJB simples e descomplicado, na prática. Slide 1

TDC2012. EJB simples e descomplicado, na prática. Slide 1 TDC2012 EJB simples e descomplicado, na prática Slide 1 Palestrantes Kleber Xavier Arquiteto Senior / Globalcode kleber@globalcode.com.br Vinicius Senger Arquiteto Senior / Globalcode vinicius@globalcode.com.br

Leia mais

MÓDULO. Linguagem de Programação para Web 2

MÓDULO. Linguagem de Programação para Web 2 MÓDULO Linguagem de Programação para Web 2 Distribuição das Disciplinas de Programação para Web LPW 1: MVC Servlets JSP LPW2: Visão geral do JEE, JSF MVC, Facelets, PrimeFaces,... Padrões de projeto relacionadas

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br)

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br) Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) (kalinowski@ic.uff.br) Agenda Arquiteturas Web em Java (Relembrando) Arquitetura Java EE Introdução a Enterprise Java Beans

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Dynamic Data Center. A infra-estrutura de suporte às SOA. Francisco Miller Guerra Senior Product Manager Fujitsu Siemens Computers

Dynamic Data Center. A infra-estrutura de suporte às SOA. Francisco Miller Guerra Senior Product Manager Fujitsu Siemens Computers Dynamic Data Center A infra-estrutura de suporte às SOA Francisco Miller Guerra Senior Product Manager Fujitsu Siemens Computers As necessidades do negócio pressionam continuamente as infra-estruturas

Leia mais

Enunciado de apresentação do projecto

Enunciado de apresentação do projecto Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 Enunciado de apresentação do projecto FEARSe Índice 1 Introdução... 2 2 Cenário de Enquadramento... 2 2.1 Requisitos funcionais...

Leia mais

Componentes para Computação Distribuída

Componentes para Computação Distribuída Componentes para Computação Distribuída Conceitos Foi a partir do fenômeno da Internet (WWW), no início dos anos noventa, que a computação distribuída passou a ter relevância definitiva, a ponto de a Internet

Leia mais

Arquitecturas de Sistemas de Informação

Arquitecturas de Sistemas de Informação Arquitecturas de Sistemas de Informação Arquitectura Tecnológica Arquitectura Tecnológica O que é: É a escolha dos tipos de tecnologia que devem ser utilizados para dar suporte a cada um dos sistemas e

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java Web Arquitetura Aplicações web são basicamente constituídas de: Requisições Respostas Model View Controller (MVC) O que é MVC? Padrão

Leia mais

Marco Aurélio malbarbo@din.uem.br. Uma Visão Geral Sobre Plataforma Java

Marco Aurélio malbarbo@din.uem.br. Uma Visão Geral Sobre Plataforma Java RedFoot J Dukes Uma Visão Geral Sobre Plataforma Java Marco Aurélio malbarbo@din.uem.br 1 Roteiro Objetivos Plataforma Java Linguagem de Programação Maquina Virtual Tecnologias Conclusão 2 Objetivos Geral

Leia mais

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

Framework. Marcos Paulo de Souza Brito João Paulo Raittes Framework Marcos Paulo de Souza Brito João Paulo Raittes Sobre o seu surgimento A primeira versão do spring foi escrita por Rod Johnson em 2002, quando ele estava Lancando o seu livro Expert One-on-One

Leia mais

Service Oriented Architectures

Service Oriented Architectures Service Oriented Architectures Uma abordagem evolutiva Manager, IT Middleware Vodafone Portugal Mario.saraiva@vodafone.com Agenda 1. O desafio da Integração O princípio do Middleware, ActiveWorks e Middleware

Leia mais

Prova Específica Cargo Desenvolvimento

Prova Específica Cargo Desenvolvimento UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br

Leia mais

SISTEMAS DISTRIBUÍDOS (1. CICLO)

SISTEMAS DISTRIBUÍDOS (1. CICLO) SISTEMAS DISTRIBUÍDOS (1. CICLO) Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelos e arquitecturas 14/15 Sistemas Distribuídos 1 Modelos arquitecturais 14/15 Sistemas Distribuídos 2 Camadas de Software: o Middleware Aplicações Middleware Sistema Operativo

Leia mais

ORDEM DE SERVIÇO OS 003/DINFO/2013 16/09/2013

ORDEM DE SERVIÇO OS 003/DINFO/2013 16/09/2013 A DIRETORIA DE INFORMÁTICA DINFO DA UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO -UERJ, no uso de suas atribuições legais, estabelece: Art. 1º: Para fins de normatização do Desenvolvimento Tecnológico na UERJ

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Exemplos de SD Quais podem ser? Ex. de SD: Internet Internet é um conjunto de redes de computadores, de muitos tipos diferentes,

Leia mais

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br Objetivos Apresentação Tecnologia CORBA Conceitos Básicos e Terminologia Considerações

Leia mais

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Web Services. Integração de aplicações na Web. Sistemas Distribuídos Web Services Integração de aplicações na Web Integração de Aplicações na Web Interoperação entre ambientes heterogêneos desafios diversidade de componentes: EJB, CORBA, DCOM... diversidade de linguagens:

Leia mais

Experiência em missão crítica de missão crítica

Experiência em missão crítica de missão crítica 2 / 17 Experiência em missão crítica de missão crítica Pioneira no ensino de Linux à distância Parceira de treinamento IBM Primeira com LPI no Brasil + de 30.000 alunos satisfeitos Reconhecimento internacional

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

Oracle WebLogic Server 11g: Conceitos Básicos de Administração

Oracle WebLogic Server 11g: Conceitos Básicos de Administração Oracle University Entre em contato: 0800 891 6502 Oracle WebLogic Server 11g: Conceitos Básicos de Administração Duração: 5 Dias Objetivos do Curso Este curso treina administradores Web nas técnicas para

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

4 - Padrões da Camada de Integração. Introdução

4 - Padrões da Camada de Integração. Introdução Padrões de Projeto J2EE J931 Padrões da Camada de Integração Helder da Rocha (helder@acm.org) argonavis.com.br Introdução A camada de integração encapsula a lógica relacionada com a integração do sistema

Leia mais

Open Operational Platform

Open Operational Platform Open Operational Platform Visão Tecnológica 20.01.2009 Agenda Enquadramento Arquitectura Características Diferenciadoras Case Study 2 Enquadramento 3 Mobilidade Optimização Processos Tecnologia Operações

Leia mais

Information Router: Plataforma webservice de comunicação entre aplicações

Information Router: Plataforma webservice de comunicação entre aplicações Information Router: Plataforma webservice de comunicação entre aplicações Pedro Silva 1, José Castro 1, e Ildemundo Roque 1 Telbit, Tecnologias de Informação Rua Banda da Amizade, 38 r/c Dto. 3810-059

Leia mais

Arquiteturas de Aplicações Distribuídas

Arquiteturas de Aplicações Distribuídas Arquiteturas de Aplicações Distribuídas Fernando Albuquerque 061-2733589 fernando@cic.unb.br www.cic.unb.br/docentes/fernando Tópicos Introdução. HTTP / CGI. API sockets. JDBC. Remote Method Invocation.

Leia mais

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos Middleware Camada Intermediária de Suporte a Sistemas Distribuídos Alternativas de comunicação entre processos (IPC) Mecanismos de IPC tradicionais (ou de baixo nível) Memória compartilhada, filas de mensagens,

Leia mais

Sistemas Operativos I

Sistemas Operativos I Componentes de um Sistema Operativo Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sistema Operativo Um Sistema Operativo pode ser visto como um programa de grande complexidade, responsável

Leia mais

SCC-0263. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCC-0263. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCC-0263 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

Iteração 2 Design inicial

Iteração 2 Design inicial Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática Engenharia de Software Iteração 2 Design inicial Projecto: FX-Center Grupo: BEDS David Pacheco (nº 32665) Cesário Lucas

Leia mais

Tecnologias Web. Java Enterprise Edition

Tecnologias Web. Java Enterprise Edition Tecnologias Web Java Enterprise Edition Cristiano Lehrer, M.Sc. Introdução Java Enterprise Edition (JEE): Plataforma de tecnologias para o desenvolvimento de aplicações corporativas distribuídas. É uma

Leia mais

CORBA (Common Object Request Broker Architecture)

CORBA (Common Object Request Broker Architecture) CORBA (Common Object Request Broker Architecture) Sistemas Distribuídos Desafios para a realização de sistemas Distribuídos Exemplos de Sistemas Distribuídos CORBA Evolução Histórica OMA (Object Management

Leia mais

Capítulo 8. Software de Sistema

Capítulo 8. Software de Sistema Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Computação Aula 01-02: Introdução 2o. Semestre / 2014 Prof. Jesus Agenda da Apresentação Definição e surgimento de Sistemas Distribuídos Principais aspectos de Sistemas Distribuídos

Leia mais

Arquitetura de Banco de Dados

Arquitetura de Banco de Dados Arquitetura de Banco de Dados Daniela Barreiro Claro MAT A60 DCC/IM/UFBA Arquitetura de Banco de dados Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group

Leia mais

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt Universidade de Trás-os-Montes e Alto Douro Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt Agenda A UTAD Virtualização Uma definição Introdução e abrangência

Leia mais

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

Leia mais

Capítulo II Modelos de Programação Distribuída (parte 2)

Capítulo II Modelos de Programação Distribuída (parte 2) Capítulo II Modelos de Programação Distribuída (parte 2) From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley From: Cardoso, Jorge, Programação de

Leia mais

JAVA ENTERPRISE EDITION: PERSISTÊNCIA DE BANCO DE DADOS

JAVA ENTERPRISE EDITION: PERSISTÊNCIA DE BANCO DE DADOS COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO JAVA ENTERPRISE EDITION: PERSISTÊNCIA DE BANCO DE DADOS FOZ DO IGUAÇU 2013 SUMÁRIO 1. PERSISTÊNCIA

Leia mais

Computational viewpoint. Engineering Viewpoint

Computational viewpoint. Engineering Viewpoint Processamento Paralelo RM-ODP Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2007/0 - INF02799 RM-ODP Reference Model for Open Distributed Processing Contém conceitos para a especificação de sistemas

Leia mais

soluções transversais SOLUÇÕES middleware

soluções transversais SOLUÇÕES middleware soluções transversais SOLUÇÕES middleware RESUMO DA SOLUÇÃO ITbank framework 4g performance orquestração interoperabilidade O Middleware SOA ITBank framework 4g implementa uma arquitetura SOA com orquestração

Leia mais

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto Java Enterprise Edition by Antonio Rodrigues Carvalho Neto Enterprise Edition Architecture O que é Java Enterprise Edition? Java EE é uma plataforma que reune diversas especificações relacionadas a computação

Leia mais

Aplicações Distribuídas Cliente/ Servidor Corporativas

Aplicações Distribuídas Cliente/ Servidor Corporativas Aplicações Distribuídas Cliente/ Servidor Corporativas Introdução Desenvolver e distribuir Servlets e aplicativos EJB. Desenvolver e distribuir aplicativos Enterprise JavaBeans (EJB). Introdução Simples

Leia mais

(UFF) JDBC (I) TEPIS II

(UFF) JDBC (I) TEPIS II Aula 20: JDBC (I) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) JDBC (I) TEPIS II 1 / 33 JDBC: Introdução Especificação que provê acesso

Leia mais

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Padrões Arquiteturais. Sistemas Distribuídos: Broker Padrões Arquiteturais Sistemas Distribuídos: Broker Sistemas Distribuídos Tendências: Sistemas Comp. com múltiplas CPUs Redes locais com centenas de hospedeiros Benefícios Economia Desempenho e escalabilidade

Leia mais

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side

Leia mais

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala Programação para a Internet Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala A plataforma WEB Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Introdução à Arquitetura de Software (continuação)

Leia mais

Daniel Wildt dwildt@gmail.com. FACENSA Grupo de Estudos Java - FUJA Slide: 1

Daniel Wildt dwildt@gmail.com. FACENSA Grupo de Estudos Java - FUJA Slide: 1 Apresentação Tecnologia Java Daniel Wildt dwildt@gmail.com FACENSA Grupo de Estudos Java - FUJA Slide: 1 1. Java 2. JCP 3. Tecnologia Java 4. J2ME/J2SE/J2EE 5. Certificações 6. JUG 7. RSJUG Agenda 8. Ambiente

Leia mais

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva 1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade

Leia mais

SOA: Service-oriented architecture

SOA: Service-oriented architecture SOA: Service-oriented architecture Roteiro Breve História O que é Arquitetura de Software? O que é SOA? Serviços Infraestrutura Composição Sua empresa está preparada para SOA? Breve História Uma empresa

Leia mais

Mini-curso Gratuito. Globalcode - The Developers Company Slide 1

Mini-curso Gratuito. Globalcode - The Developers Company Slide 1 Mini-curso Gratuito Globalcode - The Developers Company Slide 1 Globalcode - The Developers Company Slide 2 Agenda Parte teórica 1. Introdução 2. Vantagens da tecnologia Java 3. Máquinas Virtuais 4. Áreas

Leia mais

Objectos Distribuidos. Engenharia Informática Instituto Superior de Engenharia do Porto

Objectos Distribuidos. Engenharia Informática Instituto Superior de Engenharia do Porto Objectos Distribuidos Siisttemas Diisttriibuiidos Engenharia Informática Instituto Superior de Engenharia do Porto Alexandre Bragança 2000/2001 1 Objectos Distribuidos 1.1 Desenvolvimento Cliente/Servidor

Leia mais