INSTITUTO FEDERAL DO ESPÍRITO SANTO PÓS-GRADUAÇÃO LATO SENSU EM ENGENHARIA ELÉTRICA COM ÊNFASE EM SISTEMAS INTELIGENTES APLICADOS À AUTOMAÇÃO

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

Download "INSTITUTO FEDERAL DO ESPÍRITO SANTO PÓS-GRADUAÇÃO LATO SENSU EM ENGENHARIA ELÉTRICA COM ÊNFASE EM SISTEMAS INTELIGENTES APLICADOS À AUTOMAÇÃO"

Transcrição

1 INSTITUTO FEDERAL DO ESPÍRITO SANTO PÓS-GRADUAÇÃO LATO SENSU EM ENGENHARIA ELÉTRICA COM ÊNFASE EM SISTEMAS INTELIGENTES APLICADOS À AUTOMAÇÃO GABRIEL LORENZONI BENZ SISTEMA MULTIPLATAFORMA DE AQUISIÇÃO DE DADOS VITÓRIA 2015

2 GABRIEL LORENZONI BENZ SISTEMA MULTIPLATAFORMA DE AQUISIÇÃO DE DADOS Monografia apresentada ao Curso de Pós- Graduação Lato Sensu em Engenharia Elétrica com Ênfase em Sistemas Inteligentes Aplicados à Automação do Instituto Federal do Espírito Santo como requisito parcial para obtenção do certificado de Especialista em Sistemas Inteligentes Aplicados à Automação. Orientador: Prof. Me. Marcelo Brunoro VITÓRIA 2015

3 (Biblioteca Nilo Peçanha do Instituto Federal do Espírito Santo) B471s Benz, Gabriel Lorenzoni. Sistema multiplataforma de aquisição de dados / Gabriel Lorenzoni benz f. : il. ; 30 cm Orientador: Marcelo Brunoro. Monografia (especialização) Instituto Federal do Espírito Santo, Coordenadoria de Pós-Graduação em Engenharia Elétrica, Curso Pós-Graduação Lato Sensu em Engenharia Elétrica com Ênfase em Sistemas Inteligentes Aplicados à Automação, Engenharia elétrica. 2. Sistemas embarcados (Computadores). 3. Integração de aplicações corporativas (Sistemas de computação). 4. Engenharia de Sistemas. I. Brunoro, Marcelo. II. Instituto Federal do Espírito Santo. III. Título. CDD

4 GABRIEL LORENZONI BENZ SISTEMA MULTIPLATAFORMA DE AQUISIÇÃO DE DADOS Monografia apresentada ao Curso de Pós- Graduação Lato Sensu em Engenharia Elétrica com Ênfase em Sistemas Inteligentes Aplicados à Automação do Instituto Federal do Espírito Santo como requisito parcial para obtenção do certificado de Especialista em Sistemas Inteligentes Aplicados à Automação. Aprovada em 16 de março de 2015 COMISSÃO EXAMINADORA

5 DECLARAÇÃO DO AUTOR Declaro, para fins de pesquisa acadêmica, didática e técnico-científica, que este Trabalho de Conclusão de Curso pode ser parcialmente utilizado, desde que se faça referência à fonte e ao autor. Vitória, 16 de março de 2015

6 Dedico a minha família e ao meu avô Roberto, por não terem medido esforços para que eu concluísse mais esta etapa e por serem fiéis incentivadores da minha eterna busca por conhecimento.

7 RESUMO O aumento do número de dispositivos com capacidade de se conectar à Internet contribui para uma rede de comunicação de dados cada vez mais difusa e heterogênea. Dessa forma, prover uma comunicação confiável entre dispositivos cada vez mais distintos em arquitetura e em recursos computacionais se torna uma tarefa complexa. O objetivo deste trabalho é, portanto, propor uma forma de comunicação entre sistemas heterogêneos, estruturando um sistema multiplataforma de aquisição de dados, que coleta e transmite informações para um sistema de interface web remoto, onde os dados podem ser analisados e monitorados. Para isso, o sistema é composto por um Middleware Orientado a Mensagens, que é projetado para suportar uma vasta gama de protocolos, ser utilizável em uma ampla variedade de servidores de aplicação e possuir clientes em diferentes linguagens de programação, possibilitando o sistema de aquisição de dados a enviar informações para o sistema de monitoramento de diferentes formas, de acordo com sua capacidade e interoperabilidade. Palavras Chave: Internet das coisas. Sistemas embarcados. Integração de sistemas. Middleware orientado a mensagens.

8 ABSTRACT The increasing number of internet-capable devices contributes to a data communication network increasingly diffuse and heterogeneous. Thus, to provide a reliable communication among devices that are distinct in architecture and computational resources becomes complex over time. Therefore, the purpose of this paper is to suggest a configuration of communication among heterogeneous devices and systems, by structuring a multi platform data acquisition system, which collects and transmits data to a remote web application, where the data can be analyzed and monitored. To perform this, it's used a message-oriented middleware, designed to support a large number of Cross Language Clients, to speak a wide range of Protocols and to be usable in a wide variety of Containers, allowing the acquisition system to send information to the monitoring system in different ways, according to their capacity and interoperability. Keywords: Internet of Things. Embedded Systems. Message Oriented Middleware.

9 LISTA DE FIGURAS Figura 1 - Modelo de comunicação com M.O.M Figura 2 - Sistema de Baixo Custo para Termometria de Grãos Figura 3 - Sistema Web de Monitoração de Dados Figura 4 - Sistema com utilização de Computação nas Nuvens Figura 5 - Modelo de Comunicação Síncrona Figura 6 - Modelo de Comunicação Assíncrona Figura 7 - Acoplamento do MOM com aplicações Figura 8 - Fila de Mensagens com produtores e consumidores Figura 9 - Fluxograma do Sistema Figura 10 - Sistema de Aquisição de Dados - Beaglebone Figura 11 - Diagrama de Circuitos Figura 12 - Console de Administração do ActiveMQ Figura 13 - Diagrama de blocos Figura 14 - Log do Sistema de Aquisição na Beaglebone Figura 15 - Lista de tópicos do ActiveMQ - dl.topic.data Figura 16 - Lista de filas do ActiveMQ - dl.newdata.queue Figura 17 - Organização dos projetos Figura 18 - Dashboard do Sistema de Monitoramento Figura 19 - Página de Listagem de Data (informação) Figura 20 - Página Real Time com informações dos últimos 5 minutos Figura 21 - Página de Listagem de Devices (dispositivos) Figura 22 - Página de Formulário de Device (dispositivo) Figura 23 - Página de Listagem de Setpoints Figura 24 - Página de Formulário de Setpoints Figura 25 - Página de Notifications (notificações) Figura 26 - Console de Administração - Amazon EC

10 SUMÁRIO 1 INTRODUÇÃO OBJETIVO GERAL ORGANIZAÇÃO DO TRABALHO REFERENCIAL TEÓRICO TRABALHOS CORRELATOS FUNDAMENTAÇÃO TEÓRICA Data Logger Aplicações Web Modelos de Comunicação Comunicação Síncrona Comunicação Assíncrona Middleware e a Integração de Sistemas Middleware orientado a mensagens Gerenciadores de Fila de Mensagens JMS Java Message Service Topic tópicos Queues filas METODOLOGIA SISTEMA DE AQUISIÇÃO DE DADOS SISTEMA GERENCIADOR DE MENSAGENS SISTEMA DE MONITORAMENTO DE DADOS PUBLICAÇÃO NA NUVEM IMPLEMENTAÇÃO E RESULTADOS SISTEMA DE AQUISIÇÃO DE DADOS SISTEMA DE GERENCIAMENTO DE MENSAGENS SISTEMA DE MONITORAMENTO PUBLICAÇÃO NA NUVEM CONCLUSÕES E TRABALHOS FUTUROS REFERÊNCIAS APÊNDICE A - Código do Sistema de Aquisição de Dados (Beaglebone White) APÊNDICE B - Código e configuração do ActiveMQ... 63

11 9 1 INTRODUÇÃO A inserção de dispositivos computacionais inteligentes no mercado e no cotidiano das pessoas é um fato inquestionável. Pesquisas evidenciam que o número de dispositivos capazes de se conectar à Internet é cada vez maior. Stamford (2013) cita um estudo feito pela empresa de consultoria e pesquisa Gartner Inc., concluindo que essa quantidade de dispositivos com a capacidade de se conectar à Internet chegará a 26 bilhões em Outra pesquisa, realizada pela ABI Research, estima que esse número será ainda maior no mesmo ano, chegando a expressivos 30 bilhões de dispositivos. É importante ressaltar que esses dispositivos não são apenas smartphones ou tablets, mas todo dispositivo capaz de transmitir dados pela rede, desde pequenos sensores para monitoramento de um ambiente a microcontroladores com Inteligência Artificial. Esse aumento do número de dispositivos vinculados à Internet colabora para que termos como "internet das coisas", "computação ubíqua" e "computação onipresente" estejam cada vez mais em discussão e presentes em estudos em diversas áreas, tais como: monitoramento ambiental, apresentado por Li et al. (2011); operações de monitoramento e controle de infraestruturas, conforme trabalhos de Gubbi et al. (2013); aplicações industriais, em Severi et al. (2014); gerenciamento de energia, citado por Ersue et al. (2014); sistemas de assistência médica, mostrado por Istepanian et al. (2011); automação residencial Alkar, A. Z.; Buhur, U. (2005). A Internet das Coisas é, segundo Holler et al. (2014), a interconexão de dispositivos embarcados unicamente identificáveis dentro da infraestrutura da Internet. Normalmente, é esperado que a Internet das Coisas ofereça conectividade avançada entre dispositivos, sistemas e serviços que vão além da comunicação máquina-a-máquina (M2M - Machine to Machine) e abrange uma variedade de protocolos, domínios e aplicações.

12 10 A Internet das Coisas tem como objetivo facilitar a troca de informações sobre - entre outros - bens em uma rede de fornecimento global, isto é, a infraestrutura de tecnologia de informação deveria prover informações sobre essas coisas de maneira segura e confiável (WU et al., 2010). No entanto, o grande número de dispositivos, dos mais variados tipos, favorece para que a troca de informações se torne uma tarefa difícil, principalmente em sistemas heterogêneos, ou seja, quando os dispositivos do sistema são divergentes quanto à arquitetura (plataforma), sistema operacional, configurações de hardware, fabricante, entre outras. Nota-se uma crescente difusão da Internet, que evolui constantemente buscando acomodar todas as tecnologias de redes emergentes que apresentam novas características e requisitos. Essas redes emergentes variam desde simples acesso residencial até controles industriais complexos através da Internet. Portanto, como prover, nessa rede heterogênea, uma interação eficiente e confiável entre dispositivos cada vez mais distintos em arquitetura e recursos computacionais? Tanenbaum (2002) cita que um recurso bastante utilizado nos dias de hoje está relacionado às tecnologias para comunicação entre processos e dispositivos através de troca de mensagens (programação distribuída). 1.1 OBJETIVO GERAL O objetivo deste trabalho é propor uma forma de comunicação entre sistemas heterogêneos, estruturando um sistema multiplataforma de aquisição de dados, responsável por coletar e transmitir informações para um sistema de interface web remoto, onde os dados podem ser analisados e monitorados.

13 11 Para isto, foi desenvolvida uma estrutura distribuída, composta por um middleware responsável por fazer a comunicação entre o sistema de aquisição de dados e o sistema de monitoramento através de troca de mensagens. O Middleware Orientado a Mensagens (representado pela sigla M.O.M.) é projetado para suportar um grande número de clientes implementados em diferentes linguagens de programação, além de conseguir trabalhar com uma vasta gama de protocolos e ser utilizável em uma ampla variedade de servidores de aplicação, possibilitando o sistema de aquisição de dados a enviar informações para o sistema de monitoramento de formas variadas, de acordo com sua capacidade. A Figura 1 exibe o modelo de comunicação entre um emissor e um receptor, simulando uma rede heterogênea, com dispositivos emissores de dados de tipos e arquiteturas variados, interagindo com um receptor (no caso deste trabalho, um sistema web, onde os dados serão monitorados) por intermédio de um gerenciador de fila de mensagens (M.O.M.). Figura 1 - Modelo de comunicação com M.O.M. Fonte: Elaborado pelo autor, A utilização do Middleware Orientado a Mensagens no modelo de comunicação proposto permite que os emissores de informação sejam desacoplados do receptor. Segundo Curry(2005), esse tipo de middleware permite a criação de sistemas

14 12 coesos e flexíveis; um sistema coeso é aquele que permite que as alterações em uma parte do sistema seja feita sem comprometer outras partes do sistemas. 1.2 ORGANIZAÇÃO DO TRABALHO A estrutura deste trabalho apresenta-se com os seguintes capítulos: Capítulo 1, Introdução, que contextualiza o trabalho por meio da explicação da proposta e motivo de construção de um sistema multiplataforma de aquisição de dados; Capítulo 2, Referencial Teórico, onde são destacados alguns trabalhos correlatos, levantando suas limitações e vantagens. Além disso, nesse capítulo também é feito o estudo de fundamentação teórica, em que são apresentados conceitos fundamentais para a compreensão do trabalho; Capítulo 3, Metodologia, aborda como o sistema foi separado em etapas, os métodos de desenvolvimento e os materiais utilizados em cada etapa; Capítulo 4, Implementação e Resultados, contempla todo o desenvolvimento em cada sistema, como os projetos foram organizados e implementados, as configurações feitas, os resultados obtidos, as páginas e os logs dos sistemas desenvolvidos; e Capítulo 5, Conclusões e Trabalhos Futuros, onde são apresentadas as considerações finais, abordando os aprendizados e deduções obtidas com o trabalho proposto, bem como sugestões para posteriores evoluções do sistema.

15 13 2 REFERENCIAL TEÓRICO Neste capítulo são apresentados os aspectos teóricos relevantes à elaboração do presente trabalho. Este capítulo está dividido em duas partes: na primeira, são analisadas as características de alguns trabalhos correlatos que serviram de base para a elaboração do sistema apresentado. Na segunda parte, são apresentados os conceitos, descrições, esquemas de arquitetura que esclarecem e justificam as tecnologias computacionais utilizadas. 2.1 TRABALHOS CORRELATOS Os trabalhos correlatos analisados nesta seção apresentam características semelhantes: todos possuem um sistema de aquisição de dados (seja preparado para coletar diferentes informações ou apenas uma informação específica) que alimenta um sistema (podendo ser remoto ou local) que faz o monitoramento dos dados coletados. Cantú, Dyego (2013) e Ferrasa e Mayer (2013) optaram por embarcar todo o data logger (sistema de aquisição e sistema de monitoramento dos dados) em um único dispositivo. Os autores fizeram essa opção tendo como principais justificativas o baixo custo e a facilidade de implementação. A Figura 2 exibe a estrutura do sistema proposto por Ferrasa e Mayer (2013), mostrando desde a aquisição dos dados por meio de sensores de temperatura, a forma de transmissão e recepção dos dados, até o acesso e monitoramento das informações em um sistema escrito na linguagem de programação Java.

16 14 Figura 2 - Sistema de Baixo Custo para Termometria de Grãos Fonte: Ferrasa e Mayer (2013) Um grande diferencial encontrado nos trabalhos de Inácio et al. (2012), Cantú, Dyego (2013), Ferrasa e Mayer (2013) foi uso da interface web para exibição das informações coletadas. Dessa forma, os dados obtidos podem ser acessados em tempo real a partir de qualquer lugar (e qualquer dispositivo) que acesse a Internet, o que, segundo os autores, facilita e agiliza a análise dos dados. A Figura 3 mostra uma das telas do sistema web de monitoramento de dados proposto por Cantú, Dyego (2013). Figura 3 - Sistema Web de Monitoração de Dados Fonte: Cantú (2013)

17 15 Inácio et al. (2012) ainda fez a opção de publicar os dados coletados na nuvem 1, o que tende a aumentar a disponibilidade do sistema, além de diminuir custos de sua manutenção, hospedagem e implantação. Para isso, foi feita a utilização do Sistema web API Cosm, que permite, entre outras coisas, consultar as informações coletadas em um determinado período de tempo. A Figura 4 exibe a proposta do sistema elaborado por Inácio et al. (2012), que possui um gateway que recebe todos os dados coletados em diferentes sistemas de aquisição e depois os envia para um sistema remoto em que os dados serão monitorados. Figura 4 - Sistema com utilização de Computação nas Nuvens Fonte: Inácio et al. (2012) 2.2 FUNDAMENTAÇÃO TEÓRICA Para melhor entendimento do problema e de sua solução, é importante familiarizarse com alguns termos e conceitos. Por este motivo, são descritas nesta seção as 1 Segundo Mell, Peter e Grance, Timothy (2011), computação em nuvem (em inglês, cloud computing), é um modelo para permitir acesso à rede de forma ubíqua, conveniente e sob demanda, provendo acesso a recursos computacionais configuráveis (por exemplo, redes, servidores, armazenamento, aplicações e serviços) que podem ser fornecidos e liberados com um esforço mínimo de gerenciamento ou interação com o provedor de serviços.

18 16 definições e características das tecnologias que foram utilizadas no presente trabalho com o intuito de facilitar a comunicação entre dispositivos de diferentes plataformas e sanear (ou pelo menos, minimizar) alguns dos problemas evidenciados anteriormente nos trabalhos correlatos Data Logger Em Omega Tech (2009), o termo data logger é definido como: [...] qualquer dispositivo que pode ser usado para armazenar dados. Isto inclui muitos dispositivos de aquisição de dados, tais como placas plug-in ou sistemas de comunicação serial que usam um computador como um sistema de gravação de dados em tempo real. No entanto, a maioria dos fabricantes de instrumentos considera um data logger um dispositivo stand alone, que pode ler vários tipos de sinais elétricos e armazenar os dados na memória interna para ser carregado mais tarde para um computador. A vantagem dos Data Loggers é que eles podem funcionar independentemente de um computador, ao contrário de muitos outros tipos de dispositivos de aquisição de dados. No presente trabalho, o termo Data Logger, proveniente do inglês e comumente utilizado na literatura será substituído, em sua maioria, para seu equivalente em português: Sistema de Aquisição de Dados. Esses sistemas, segundo Rajmond (2010), têm sido amplamente utilizados, não só em ambientes eletrônicos, mas em todos os sistemas que se referem à tecnologia. Mahzan et al. (2013) afirmam que, além de ser um dispositivo cujo o trabalho principal é armazenamento de dados, ele também tem a capacidade de monitorar um sistema, isto é, pode gravar todos os dados requeridos pelo usuário e informar ao usuário, quando necessário, como em uma situação de defeito ou qualquer erro ocorreu ao sistema. Além disso, têm a capacidade de armazenar todos os dados armazenados em memória de armazenamento para que o usuário seja capaz de recuperar estes dados com facilidade a qualquer momento necessário. São construídos juntando-se o microcontrolador com o armazenamento da memória e sensor.

19 17 Conforme Wei et al. (2012), na maioria das vezes, os data loggers são equipados com um relógio de tempo real para que ele seja capaz de registrar a hora e a data ao registrar todos os dados Aplicações Web Segundo Cantú, Dyego (2013), os serviços web utilizam a infraestrutura de rede Internet para disponibilizar acesso à informação e a aplicativos. A arquitetura dos aplicativos que executam utilizando serviços Internet é denominada cliente/servidor. Um servidor pode disponibilizar acesso a um aplicativo ou conter páginas hospedadas de texto a serem exibidas no cliente. O cliente é o aplicativo denominado navegador para acesso ao conteúdo de páginas web ou para prover acesso a aplicativos desenvolvidos para execução na Internet. Cantú, Dyego (2013) ainda afirma que a conexão entre o cliente e o servidor é, geralmente, realizada pelo protocolo TCP/IP (Transmission Control Protocol/Internet Protocol), pelo menos nas aplicações denominadas web tradicionais que são as baseadas em HTML (HyperText Markup Language). Em termos de serviços, de um lado está o cliente web (browser ou navegador) que solicita dados ao servidor web, que recebe as respostas, formata a informação e a apresenta ao usuário; do outro lado está o servidor web que recebe as requisições, executa as instruções necessárias (podendo, se necessário, buscar informações em um repositório de dados externo) e retorna os dados para o cliente Modelos de Comunicação Dois modelos de comunicação denominam a forma de interação entre ambientes computacionais distribuídos: o modelo de comunicação síncrona e o modelo de comunicação assíncrona.

20 18 Esta seção introduz conceitos básicos sobre as duas abordagens, explicando suas características e evidenciando suas vantagens e desvantagens Comunicação Síncrona Segundo Curry (2005), quando um procedimento, função ou método é chamado usando o modelo de interação síncrona, o emissor (ou caller, quem faz a chamada do procedimento remoto) deve bloquear e esperar (suspender o processamento) até que o receptor (called, procedimento que é chamado) conclua a execução e retorne o controle para ela; o código chamador pode então continuar o processamento. Neste caso, o sistema não tem controle de processamento independente, ou seja, o sistema precisa confiar no retorno do controle do método chamado para então continuar o processamento. Figura 5 - Modelo de Comunicação Síncrona Fonte: Curry. (2005) Comunicação Assíncrona

21 19 Curry (2005), afirma que modelo de interação assíncrona, ilustrado na Figura 6, permite que o emissor (caller) mantenha o controle de processamento. Dessa forma, o emissor não precisa bloquear e esperar o receptor (called) retornar. Este modelo permite que o emissor continue o processamento, independentemente do estado de processamento do procedimento / função / método chamado. Este modelo de interação requer um intermediário para lidar com a troca de requisições; normalmente este intermediário é uma fila de mensagens. Embora mais complexo do que o modelo síncrono, o modelo assíncrono permite todos os participantes a manter a independência de processamento. Os participantes podem continuar o processamento, independentemente do estado dos outros participantes. Figura 6 - Modelo de Comunicação Assíncrona Fonte: Curry. (2005) A natureza assíncrona de comunicação fornece as seguintes vantagens no design 2, implementação e manutenção de um sistema: (1) flexibilidade, já que a estrutura de comunicação desacopla as aplicações e as deixa independentes e autônomas, provendo maior flexibilidade ao atualizar e/ou 2 Design de Software, segundo Freeman e Hart (2004), se refere a todas as atividades envolvidas na conceituação, enquadramento, implementação e modificação de sistemas complexos.

22 20 integrar outras aplicações com menor efeito colateral no sistema todo ou outros componentes; (2) Eficiência, uma vez que o sender pode continuar com seu trabalho imediatamente depois de enviar a mensagem. Isso é especialmente importante para operações que levam muito tempo para serem finalizadas; (3) Robustez, já que o sender pode enviar a mensagem mesmo se o recebedor não estiver disponível no momento. M.O.M.s podem também fornecer níveis de tolerância de falhas, usando filas de mensagens persistentes que permitem que mensagens não enviadas ou não lidas sejam enviadas novamente depois de falhas do sistema Middleware e a Integração de Sistemas Para Bakken (2001), middleware é: [...] uma classe de software projetada para ajudar a gerenciar a complexidade e heterogeneidade inerente a sistemas distribuídos. Define-se como uma camada de software acima do sistema operacional, mas abaixo do programa de aplicação que fornece uma abstração de programação comum em um sistema distribuído. Isto reduz significativamente a carga sobre programadores de aplicativos por aliviá-los desse tipo de programação tediosa e propensa a erros. Middleware também são conhecidos como programas intermediadores. Qiyang (2006) cita que middleware pode ser classificado como sendo de banco de dados, Remote Procedure Call (RPC), servidor de aplicação, orientado a mensagem (MOM), Object Request Broker (ORB), monitores de processamento de transações e Middleware Web.

23 21 Em Hohpe, Gregor e Woolf, Bobby (2003), a integração enterprise envolve o uso uma das anteriores tecnologias para conectar díspares e sistemas heterogêneos. A integração por mensagens é, supostamente, uma das opções mais utilizadas para a integração, uma vez que pode suportar a operação assíncrona, prover baixo acoplamento 3, facilidade de encaminhamento e suporte a transformação e transação de mensagem 4. Nos middlewares orientados à mensagem, as aplicações se comunicam entre si através de um sistema de mensagens que controla a recepção e entrega da mensagem. Há muitos exemplos de middleware orientado a mensagens proprietários como IBM MQSeries, MSMQ da Microsoft e Tibco (RAMKUMAR I.; BALASUNDARAM C., 2012). Muitas das soluções proprietárias usam protocolos não padronizados e envolvem custos de licenciamento enormes. Há muitas alternativas de código aberto para a mensagem middleware orientado como a suíte de produtos Apache (Apache Camel, Apache ServiceMix, Open ESB, Apache ActiveMQ e Apache CXF), Mule, Spring Integration e JBoss Enterprise Application Platform. Muitos deles oferecem suporte a todos os padrões empresariais de integração, bem como fornecem uma linguagem de domínio específico que pode ser usada para criar endpoints, rotas, filas e regras de tradução Middleware orientado a mensagens Os sistemas MOM (middleware orientado a mensagens) proporcionam comunicação distribuída em função do modelo de interação assíncrona. 3 Segundo Eder, Kappel e Schrefl (1992), no desenvolvimento de software, o acoplamento é a medida das interdependências entre métodos e classes de objetos. O baixo acoplamento leva um programa a ser mais confiável e de fácil manutenabilidade. 4 Segundo Prakash Malani (2012), na especificação JMS, uma transação organiza e agrupa a mensagem em uma unidade atômica de processamento.

24 22 Segundo Curry (2005), este modelo sem bloqueio permite o MOM resolver muitas das limitações encontradas nos sistemas de comunicação síncrona. Os participantes de um sistema baseado em MOM não são obrigados a bloquear e esperar uma mensagem de envio, eles são autorizadas a continuar o processamento, uma vez que uma mensagem foi enviada. Isto permite a entrega de mensagens quando o emissor ou receptor não está ativo ou disponível para responder no momento da execução. Esse tipo de middleware suporta a entrega de mensagens que pode demorar alguns minutos para entregar, ao contrário de mecanismos como RPC (RMI) que entregam em milissegundos ou segundos. Ao utilizar MOM, um aplicativo de envio não tem qualquer garantia de que sua mensagem será lida por outro aplicativo nem é dada uma garantia sobre o tempo que levará a mensagem a ser entregue. Estes aspectos são determinados principalmente pela aplicação de recepção. Implementações de sistemas distribuídos baseados em MOM, como mostrado na Figura 7, oferecem uma abordagem baseada em serviços para comunicação entre processos. Segundo Tanenbaum (2002), mensagens MOM são semelhantes ao serviço postal. As mensagens são entregues aos correios; em seguida, o serviço postal leva responsabilidade para a entrega segura da mensagem. As principais vantagens do MOM consistem no baixo acoplamento entre os sistemas, alta confiabilidade, escalabilidade 5 e disponibilidade. 5 Segundo Bondi (2000), escalabilidade é uma característica desejável em todo o sistema, em uma rede ou em um processo, que indica sua capacidade de manipular uma porção crescente de trabalho de forma uniforme, ou estar preparado para crescer.

25 23 Figura 7 - Acoplamento do MOM com aplicações Fonte: Curry. (2005) Gerenciadores de Fila de Mensagens A fila de mensagens é um conceito fundamental dentro MOM, já que elas fornecem a capacidade de armazenar mensagens em uma plataforma MOM. Dessa forma, clientes MOM são capazes de enviar e receber mensagens de e para uma fila. Segundo Curry (2005), a filas são fundamentais para a implementação do modelo de interação assíncrona dentro do MOM. Uma fila, como mostrado na Figura 8, é um destino para onde as mensagens podem ser enviadas e recebidas; geralmente, as mensagens contidas em uma fila são classificadas em uma ordem particular. A fila padrão encontrada em um sistema de mensagens é (FIFO) First-In First-Out; como o nome sugere, a primeira mensagem a entrar na fila é a primeira mensagem a sair (e, por isso, também conhecido como PEPS).

26 24 Figura 8 - Fila de Mensagens com produtores e consumidores Fonte: Curry. (2005) Um gerenciador de filas de mensagem (message broker) é um programa que traduz mensagens de um protocolo de um remetente (sender) para um recebedor (receiver) em uma rede, em outras palavras, faz o intermédio da comunicação entre aplicações. Segundo Yamamoto (2009), um gerenciador de filas de mensagem pode ser visto como um conjunto de filas (embora Curry represente apenas um), no qual as mensagens são armazenadas e enviadas de acordo com a ordem de chegada. O objetivo desse tipo de ferramenta em um sistema distribuído é realizar o balanceamento de carga entre os servidores através da gerência dos dados das filas, ou seja, uma vez que determinada fila estiver cheia devido a uma grande quantidade de mensagens que estiverem sendo processadas pelo servidor, o broker pode ser configurado para enviar mensagens para as filas de outro servidor que dispõe de maior quantidades de recursos ociosos e subutilizados, e com isso, aproveitar de forma mais eficiente os recursos do ambiente. O gerenciador de filas utilizado no presente trabalho é o AtiveMQ, uma ferramenta open source que implementa Serviços de Mensagem Java (Java Message System - JMS) permitindo comunicação entre processos com suporte para clientes em várias linguagens, entre elas Java (HORSTMANN, 2001), C++ (STROUSTRUP, 1993), Ruby (FLANAGAN, 2008), Python (LUTZ, 2006). Além disso, o ActiveMQ tem muitas características avançadas, como por exemplo, o

27 25 suporte a JMS 1.1 e J2EE 1.4, que fornece recursos como agrupamento (clustering) e armazenamento de múltiplas mensagens JMS Java Message Service Atualmente, existe uma série de implementações MOM, incluindo ActiveMQ, RabbitMQ, WebSphere MQ, TIBCO, SonicMQ, Herald, Hermes, Siena, OpenJMS e etc. Segundo Curry (2005), para simplificar o desenvolvimento de sistemas utilizando MOMs, um padrão foi preciso para fornecer uma interface universal para as interações através de mensagens. Com isso, alguns padrões surgiram, tais como CORBA Event Service, CORBA Notification Service e a mais importante: Java Message Service, JMS. Curry (2005) ainda afirma que o JMS fornece uma forma comum para o programador criar, enviar, receber e ler mensagens, já que a especificação JMS provê uma base sólida para a construção de infraestrutura de mensagens que podem ser aplicadas a uma larga quantidade de aplicações. A especificação JMS define uma API de proposta geral para serviços de mensagem e um conjunto de semânticas que descrevem a interface e o comportamento geral de um serviço de mensagem. O objetivo da especificação JMS é, portanto, fornecer de uma maneira consistente um padrão de interagir com múltiplos sistemas de mensagem heterogêneos Topic tópicos Na especificação JMS, um topic (tópico) implementa a semântica de publicação e assinatura.

28 26 Quando uma mensagem é publicada, ela é enviada para todos os assinantes que se inscreveram para receber as mensagens daquele tópico, logo, zero ou muitos assinantes irão receber uma cópia da mensagem enviada. Somente os assinantes que tiverem a assinatura no momento em que o broker recebe a mensagem receberão uma cópia da mensagem Queues filas Uma fila JMS implementa a semântica de balanceamento de carga. Uma mensagem única será recebida por exatamente um consumidor. Se não houver consumidores disponíveis no momento em que a mensagem é enviada, ela será mantida na fila até que um consumidor disponível possa processá-la.

29 27 3 METODOLOGIA Para o desenvolvimento do trabalho, optou-se pela implementação de cada componente do sistema separadamente. O trabalho foi dividido em 4 etapas, descritos a seguir: (1) Desenvolvimento do sistema de aquisição de dados: nesta etapa foi necessário o estudo do dispositivo escolhido, compreender seu funcionamento, bem como entender como ocorre sua interface com periféricos e componentes que fazem a coleta de informações. Após esse estudo, foi desenvolvido um programa escrito em Java para coletar informações e enviá-las para o gerenciador de fila de mensagens; (2) Configuração do gerenciador de fila de mensagens: em que foi feito um levantamento dos principais brokers do mercado e optou-se pelo uso do ActiveMQ. Nesta etapa também foi feita toda a configuração do broker e a definição dos protocolos de comunicação, que recebem e transportam as mensagens entre os sistemas; (3) Desenvolvimento do sistema de monitoramento dos dados: nesta etapa foi desenvolvido um sistema web para monitoramento dos dados, com funções para acompanhamento em tempo real e acesso a dados históricos, que podem ser acessados de qualquer dispositivo com acesso à Internet; e (4) Disponibilização do sistema: nesta etapa foi feito um estudo para definir a infraestrutura computacional em nuvem que seria utilizada. Posteriormente, foi feito o deploy (disponibilização) do sistema de gerenciamento de fila de mensagens e o sistema de monitoramento dos dados em uma micro instância da Amazon EC2. A Figura 9 mostra o fluxograma do processo, apresentando desde o seu início, coleta do dado, a montagem da mensagem e o envio para o gerenciador de filas (processos realizados pelo sistema de aquisição de dados), até a mensagem chegar

30 28 ao destino final, que é o sistema de monitoramento, passando antes pelo sistema gerenciador de fila de mensagens. Figura 9 - Fluxograma do Sistema Fonte: Elaborado pelo autor, SISTEMA DE AQUISIÇÃO DE DADOS O sistema de aquisição de dados tem como responsabilidade fazer a coleta da informação e manipular essa informação de forma a garantir que ela seja enviada corretamente para o broker (sistema de gerenciamento de fila de mensagens).

31 29 O sistema foi escrito utilizando a linguagem de programação Java, em sua versão JDK 7 64-bit da Oracle e embarcado em uma Beaglebone White, que é baseada no SoC (System on Chip) AM3359, um ARM Cortex-A8 da Texas Instruments que roda em até 720MHz e possui 32KiB de cache L1, 256KiB de cache L2, 176KiB de ROM e 64KiB de SRAM interna, mais 256 MiB de RAM DDR2. Além disso, a Beaglebone White possui acelerador gráfico 3D, controlador LCD de 24 bits, controlador para a interface touchscreen e já possui em seu SoC um controlador de ethernet (a nível de hardware), bem como a pilha TCP/IP provida pelo Sistema Operacional (distribuição Linux, Angstrom) instalado em seu SD Card. No caso do presente trabalho, são coletados os dados de temperatura (em graus Celsius) e a intensidade luminosa do ambiente. A coleta de temperatura foi feita utilizando um Thermistor NTC 10 kω (Negative Temperature Coefficient). Nesse tipo de termistor, por ter o coeficiente de temperatura negativo, como sugere o nome, sua resistência diminui com o aumento da temperatura. Já para coletar os dados de intensidade luminosa, foi utilizado um sensor de luz baseado em um divisor resistivo entre um LDR e um resistor de 10 kω, em que o primeiro está conectado à 1,8 V e o segundo conectado à referência (GND_ADC). A Figura 10 mostra o circuito utilizado para coletar as informações de temperatura e luminosidade na Beaglebone.

32 30 Figura 10 - Sistema de Aquisição de Dados - Beaglebone Fonte: Elaborado pelo autor, A Figura 11 mostra o diagrama de circuitos para obtenção das informações. Figura 11 - Diagrama de Circuitos Fonte: Elaborado pelo autor, Na Beaglebone White é possível ler cada uma das 8 entradas analógicas de 12 bits no subdiretório tsc. No entanto, somente 7 estão disponíveis em seu conector de expansão.

33 31 Nessas entradas analógicas, o valor de tensão aplicado deve ser de 0 a 1,8 V, obtendo um valor convertido para o digital de 0 a 4095, sendo que a entrada ain1 do Sistema Operacional (e consequentemente, a entrada de leitura do programa em Java), corresponde à entrada analógica 0 do AM3359 (AIN0 - pino 39, do conector P9 da Beaglebone). A mesma lógica se aplica às demais entradas. Portanto, a implementação do programa consiste na leitura da informação analógica convertida para o valor digital. Após a coleta da informação, o valor é adequado para a unidade de medida escolhida (no caso da temperatura, usou-se Celsius e no caso da intensidade luminosa, adotou-se o valor digital coletado), a mensagem é estruturada e então enviada para o broker. Após a estruturação da mensagem, foi construída a lógica de transmissão da mesma para o gerenciador de filas de mensagens. Como se trata de enviar informações para um sistema remoto, foi anexado à Beaglebone um cabo ethernet RJ-45 com acesso à Internet. Com isso, foi possível enviar mensagens com informações coletadas no sistema embarcado (Beaglebone) através do protocolo TCP para o endereço de IP externo do sistema gerenciador de fila de mensagens. 3.2 SISTEMA GERENCIADOR DE MENSAGENS A comunicação entre os sistemas de aquisição e o sistema de monitoramento no presente trabalho foi feita por meio de um middleware orientado a mensagens, do tipo gerenciador de fila de mensagens. Esse middleware foi projetado para remover a dependência (acoplamento) entre os sistemas de coleta de dados e o de monitoramento, possibilitando a integração e o compartilhamento de dados entre as partes sem qualquer interrupção por espera de resposta para as mensagens enviadas, ou seja, assíncrono.

34 32 A ferramenta escolhida para coordenar essa comunicação foi o Apache Active MQ, conforme mostrado na Figura 12, por ser uma ferramenta open source 6 e bastante popular no mercado, além de suportar clientes de várias linguagens de programação (como Java, C, C++, C#, Ruby, Perl, Python, PHP), diferentes protocolos (OpenWire, Stomp, AMQP, MQTT), possuir suporte às melhores práticas de integração de sistemas e seguir a especificação JMS. Figura 12 - Console de Administração do ActiveMQ Fonte: Elaborado pelo autor, Toda mensagem recebida pelo ActiveMQ foi configurada para ser persistida (gravada) em um repositório de dados específico chamado KahaDB, que é um banco de dados baseado em arquivo, otimizado para gravar informações de forma rápida e confiável. Persistir a mensagem é um passo importante para garantir que o sistema consiga se recuperar sem perder informações em caso de qualquer problema com o envio da mensagem para o destino. 3.3 SISTEMA DE MONITORAMENTO DE DADOS 6 Open source: denota um software cujo código-fonte original é disponível livremente e pode ser redistribuído e modificado.

35 33 Após os dados serem enviados para o broker, a mensagem é então enviada para o sistema de monitoramento de dados que tem dois principais objetivos: (1) gravar a informação recebida em um banco de dados; e (2) exibir as informações adquiridas em um sistema web, que pode ser acessado por qualquer dispositivo que tenha acesso à Internet. Todo o sistema de monitoramento foi escrito utilizando a linguagem de programação Java, em sua versão JDK 7 64-bit da Oracle, com utilização do framework Spring MVC e do servidor de aplicação Apache Tomcat A escolha de um framework para o desenvolvimento de um sistema web é extremamente recomendada, uma vez que praticamente todas as funcionalidades de desse tipo de sistema lidam diretamente com o protocolo HTTP. Mesmo com a ajuda dos containers (servidores de aplicação como o Apache Tomcat) e a API de Servlets, que encapsulam o protocolo e facilitam o trabalho do desenvolvedor, muito conhecimento é necessário e muito trabalho é feito repetidamente para desenvolver até as lógicas mais simples. Sendo assim, frameworks MVC (model-view-controller), como o Spring, diminuem o impacto da API de Servlets e permitem o desenvolvedor se preocupar mais com a lógica de negócios, que é o código que gera valor para aplicação. Para o gerenciamento, construção e implementação do projeto, a ferramenta adotada foi o Apache Maven Existem várias ferramentas de construção (build) no mercado, a mais conhecida delas é o Make, muito utilizado em projetos escritos em C e C++, mas esse possui algumas desvantagens em Java e não é muito utilizado. O Maven, portanto, se encarrega de fazer de forma automatizada algumas atividades repetitivas que sem ele, teriam que ser executadas manualmente, como o gerenciamento de dependências, build do código, geração dos artefatos, geração de relatórios e documentação, etc.

36 34 Todas as informações recebidas no sistema de monitoramento que são enviadas pelo broker (gerenciador de filas) são persistidas em um banco de dados MySQL 5.6, escolhido principalmente por ser um banco de dados gratuito, de código aberto, simples e muito utilizado no mercado. A Figura 13 ilustra o sistema através de um diagrama de blocos, mostrando os principais componentes do sistema, desde os emissores de mensagens, passando pelo M.O.M., com seu repositório de dados KahaDB até o sistema de monitoramento, com seu banco de dados MySQL. Figura 13 - Diagrama de blocos Fonte: Elaborado pelo autor, Além das ferramentas acima, foram utilizados: (a) Hibernate 4.3.6, como framework de persistência ORM (mapeamento objeto-relacional) que implementa a especificação JPA (Java Persistence API); (b) Apache Camel , como um ESB embutido para facilitar o manuseio e roteamento das mensagens; (c) Spring Security 3.1.4, para segurança e autenticação no sistema; (d) JUnit 4.11 e JMock 2.6.0, para testes unitários automatizados; (e) Log4j e Slf4j 1.7.2, como ferramentas de log; e (f) Twitter Bootstrap 3.2.0, framework front-end, para facilitar o desenvolvimento de elementos de interface.

37 35 As ferramentas utilizadas no projeto foram escolhidas de acordo com suas funcionalidades, por serem de código aberto, possuírem uma documentação técnica rica, serem bastante utilizadas no mercado e por serem previamente conhecidas pelo autor. 3.4 PUBLICAÇÃO NA NUVEM Depois de finalizados o protótipo do sistema de monitoramento de dados e a configuração do gerenciador de fila de mensagens, foi feita a publicação das aplicações na nuvem, utilizando uma micro instância da Amazon EC2 (Elastic Compute Cloud). Tanto o sistema de monitoramento quanto o gerenciador de fila de mensagens foram publicados na nuvem. Fazer o uso de computação na nuvem é uma tendência do mercado atual. As diversas plataformas existentes no mercado já são bem maduras e vêm sendo cada vez mais utilizadas. Atualmente, é possível fazer uso de plataformas que fazem provisionamento de infraestrutura (IaaS - Infrastructure as a Service), como Amazon ou Azure, que permitem utilizar recursos computacionais (processamento, memória, espaço em disco, etc.) à medida em que forem sendo utilizados. A Amazon Web Services (AWS), plataforma escolhida para o presente trabalho, fornece uma estrutura elástica de fácil escalabilidade, bastante flexível para progredir de acordo com as necessidades e evolução do sistema. Além de toda infraestrutura, uma série de serviços são oferecidos, podendo ser contratados conforme necessidade.

38 36 4 IMPLEMENTAÇÃO E RESULTADOS Este capítulo apresenta os sistemas implementados como resultado do desenvolvimento deste trabalho, desde o programa para a aquisição do dado, passando pela lógica de envio de mensagem para o broker até as páginas desenvolvidas para o sistema de monitoramento. 4.1 SISTEMA DE AQUISIÇÃO DE DADOS O desenvolvimento do projeto iniciou-se com a implementação do sistema de aquisição de dados, que consiste no desenvolvimento de um programa capaz de coletar dados e transmiti-los para um sistema remoto. O código fonte do programa pode ser encontrado no Apêndice A. No caso do presente trabalho, para leitura dos dados de temperatura, fez-se a leitura da entrada analógica 0 da Beaglebone (equivalente à ain1 no sistema operacional). Para os dados de intensidade luminosa, leu-se a entrada analógica 1, que corresponde à entrada ain2 no sistema operacional. Após os dados serem coletados, as informações adquiridas foram estruturadas em forma de mensagem, fazendo o uso de uma sintaxe específica (JSON), conforme mostra o Quadro 1. Quadro 1 - Exemplos de Mensagens de Luminosidade e Temperatura { "eventtype":{ "name":"new_data" }, "guid":"abcd", "data":{ "type":"light", "unit":"", "value":900,

39 37 } } "device":"beaglebone White" { } "eventtype":{ "name":"new_data" }, "guid":"defg", "data":{ "type":"temperature", "unit":"c", "value":27.5, "device":"beaglebone White" } Fonte: Elaborado pelo autor, O formato JSON é apenas um dos muitos dos formatos conhecidos e foi escolhido para o protótipo por ser de fácil entendimento e implementação. As estruturas mostradas no Quadro 1 exemplificam mensagens do tipo "NEW_DATA", que são compostas por um GUID (identificador universal) e pelas informações do tipo de dado coletado ( Temperature para informações de temperatura e Light para intensidade luminosa), unidade de medida (C, Celsius), o valor coletado e o dispositivo em que o dado foi coletado (ambas Beaglebone White). Após estruturada a mensagem, foi feita a configuração da conexão entre os sistemas para que a troca de informações fosse possível. Para isso, foram configurados 3 conectores de transporte, que operam em 3 protocolos diferentes, TCP (porta 61616), Stomp (porta 61613) e HTTP (porta 61615). O programa embarcado na Beaglebone se conecta com o gerenciador de fila de mensagens através do protocolo TCP, na porta e, em caso de qualquer eventual falha nessa conexão, o protocolo Stomp é utilizado, fazendo uso da porta

40 38 A Figura 14 mostra o log gerado ao ser executado o programa que faz a coleta das informações e as envia para o gerenciador de mensagens. Figura 14 - Log do Sistema de Aquisição na Beaglebone Fonte: Elaborado pelo autor, Conforme mostrado no log da aplicação, o programa primeiramente tenta fazer a conexão com o sistema de gerenciamento de fila de mensagens e, após obter sucesso neste passo, iniciam-se a coleta e o envio das informações. 4.2 SISTEMA DE GERENCIAMENTO DE FILA DE MENSAGENS Todas as mensagens referentes às informações coletadas são estruturadas ainda nos sistemas de aquisição de dados com o tipo NEW_DATA. Então, essas mensagens são enviadas para o tópico dl.data, que agrupa todas as mensagens do tipo data (NEW_DATA, DATA_UPDATED, etc.).

41 39 Todo o código de configuração do ActiveMQ é mostrado no Apêndice B. Assim que a mensagem chega ao tópico dl.data (JMS topic), ela é persistida em um repositório de arquivos (KahaDB). Só após persistir a mensagem o broker considera a mensagem enviada com sucesso. Passada essa etapa, um consumidor JMS transfere a mensagem do tópico para a fila dl.newdata.queue e então a mensagem enviada para um processador, já no Sistema de Monitoramento, que irá transformar a mensagem recebida para um objeto Java, e depois persistirá esse objeto no banco de dados. As Figuras 15 e 16 exibem, nesta ordem, os tópicos e filas no console administrativo do ActiveMQ. Figura 15 - Lista de tópicos do ActiveMQ - dl.topic.data Fonte: Elaborado pelo autor, Figura 16 - Lista de filas do ActiveMQ - dl.newdata.queue Fonte: Elaborado pelo autor, 2015.

42 SISTEMA DE MONITORAMENTO O Sistema de Monitoramento tem 2 funções: (1) persistir as informações vindas do broker no banco de dados; e (2) permitir a visualização e monitoramento dessas informações (seja em tempo real ou com possibilidade de acesso à base histórica) via navegador. O sistema foi estruturado em 9 projetos, separados de acordo com suas respectivas propostas e responsabilidades, conforme descrito na Tabela 1: Tabela 1 - Descrição das responsabilidades de cada projeto Projeto dl-base dl-persistence-api dl-jms dl-messaging-api dl-messagingcamel dl-new-datamessagingconsumer dl-core dl-application Proposta Fornecer classes básicas necessárias a todos os demais projetos; Prover estruturas básicas para persistência dos dados; Estruturar configurações JMS, tais como propagação de transações, cache, conexões jms, etc.; Prover estruturas básicas para o envio e tratamento de mensagens; Fornecer classes úteis ao tratamento de mensagens, como classes que serializam ou desserializam mensagens, classes de evento de mensagem, rotas, etc.; Configurar rotas de mensagem para consumir eventos do tipo NEW_DATA e também estruturar os processadores desse tipo de mensagem; Fornecer classes (entidades, serviços e estruturas de dados) fundamentais do projeto; Estruturar controladores da aplicação web, configurações de

43 41 segurança e autenticação; dl-web-application Configurar projeto web, fornecer recursos como páginas html, arquivos CSS e Javascript, configurações de filtros e listeners, etc. Fonte: Elaborado pelo autor, A Figura 17 exibe a organização dos projetos e a maneira como eles são publicados no servidor de aplicação (container), Apache Tomcat : Figura 17 - Organização dos projetos Fonte: Elaborado pelo autor, O sistema é composto por quatro estruturas principais: (1) Data (informação), que é enviada pelos dispositivos; (2) Device (dispositivo), que captura a informação a ser monitorada e envia para a fila de mensagens; (3) Setpoints, que representa a faixa de valores esperada para uma determinada informação; e

44 42 (4) Notification (notificação), que é criada sempre quando uma informação estiver fora dos valores estipulados nos setpoints. A Figura 18 mostra a página inicial do sistema, logo após o usuário ser autenticado com sucesso na tela de login. Figura 18 - Dashboard do Sistema de Monitoramento Fonte: Elaborado pelo autor, Logo na página inicial, o usuário pode ter acesso a um resumo de tudo que foi coletado e está sendo monitorado pelo sistema. Na parte superior, são mostradas a quantidade de informações registradas no dia, a quantidade de dispositivos cadastrados, os setpoints e as notificações. Na parte inferior, é mostrado um gráfico com as últimas 100 amostras registradas e um comparativo dos tipos de informações coletadas. Todas as informações recebidas pelo sistema de monitoramento através do gerenciador de fila de mensagens são persistidas em banco de dados, podendo servir como base histórica de monitoramento. A Figura 19 mostra a listagem das informações recebidas.

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

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

Middleware Orientado a Mensagens (MOM)

Middleware Orientado a Mensagens (MOM) Middleware Orientado a Mensagens Visão Geral RPC/RMI é inadequado para comunicação em alguns cenários de aplicação Cliente e servidor precisam estar ativos durante a comunicação Implica em espera para

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

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

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

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

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT 1. IDENTIFICAÇÃO Padrão Segmento Código P06.002 Revisão v. 2014 Plataformas Web 2. PUBLICAÇÃO Recursos Tecnológicos Versão Data para adoção Publicação v. 2014 23 de dezembro de 2014 PORTARIA N Nº 225 de

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

Leia mais

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

Leia mais

Cogent DataHub v7.0. A próxima geração em soluções para troca de dados em tempo real

Cogent DataHub v7.0. A próxima geração em soluções para troca de dados em tempo real Cogent DataHub v7.0 A próxima geração em soluções para troca de dados em tempo real Cogent é reconhecida como uma líder no segmento de soluções de middleware no domínio do tempo real. E, com a introdução

Leia mais

Planejamento Estratégico de TI. Felipe Pontes felipe.pontes@gmail.com

Planejamento Estratégico de TI. Felipe Pontes felipe.pontes@gmail.com Planejamento Estratégico de TI Felipe Pontes felipe.pontes@gmail.com VPN Virtual Private Network Permite acesso aos recursos computacionais da empresa via Internet de forma segura Conexão criptografada

Leia mais

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos Aula II Prof. Rosemary Silveira F. Melo Arquitetura de Sistemas Distribuídos Conceito de Arquitetura de Software Principais elementos arquiteturais

Leia mais

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer lugar e independente da plataforma, bastando para isso

Leia mais

CAPÍTULO 2. Este capítulo tratará :

CAPÍTULO 2. Este capítulo tratará : 1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,

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 13 Web Services Web Services

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

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

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

JXTA. Alessandro Vasconcelos Ferreira de Lima. avfl@cin.ufpe.br

JXTA. Alessandro Vasconcelos Ferreira de Lima. avfl@cin.ufpe.br JXTA Alessandro Vasconcelos Ferreira de Lima Roteiro Motivação Introdução Arquitetura de JXTA Elementos de JXTA Os Protocolos Comparações e Desvantagens Conclusão Motivação Limitações do Modelo Cliente

Leia mais

Padrões Arquiteturais e de Integração - Parte 1

Padrões Arquiteturais e de Integração - Parte 1 1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015 2 / 58 Agenda Tópicos

Leia mais

JAVA MESSAGE SERVICE, UMA ALTERNATIVA ENTRE COMUNICAÇÃO DE SISTEMAS: uma abordagem prática. Lucas Yokowo dos Santos 1 RESUMO

JAVA MESSAGE SERVICE, UMA ALTERNATIVA ENTRE COMUNICAÇÃO DE SISTEMAS: uma abordagem prática. Lucas Yokowo dos Santos 1 RESUMO JAVA MESSAGE SERVICE, UMA ALTERNATIVA ENTRE COMUNICAÇÃO DE SISTEMAS: uma abordagem prática Lucas Yokowo dos Santos 1 RESUMO Mesmo com a consolidação de protocolos de comunicação via rede no mercado, como

Leia mais

7 Utilização do Mobile Social Gateway

7 Utilização do Mobile Social Gateway 7 Utilização do Mobile Social Gateway Existem três atores envolvidos na arquitetura do Mobile Social Gateway: desenvolvedor do framework MoSoGw: é o responsável pelo desenvolvimento de novas features,

Leia mais

Middleware Orientado a Mensagens Visão Geral Comunicação Gerenciamento de Filas Padrões e Produtos 1 Middleware Orientado a Mensagens RPC/RMI é inadequado para comunicação em alguns cenários de aplicação

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE A proposta para o ambiente apresentada neste trabalho é baseada no conjunto de requisitos levantados no capítulo anterior. Este levantamento, sugere uma

Leia mais

INTERNET HOST CONNECTOR

INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR IHC: INTEGRAÇÃO TOTAL COM PRESERVAÇÃO DE INVESTIMENTOS Ao longo das últimas décadas, as organizações investiram milhões de reais em sistemas e aplicativos

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

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 Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação

Leia mais

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

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCE-557 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

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Estudo de Caso 22. Figura 4 Console da TEC*. *Alguns dados foram removidos atendendo a política de segurança da informação da empresa.

Estudo de Caso 22. Figura 4 Console da TEC*. *Alguns dados foram removidos atendendo a política de segurança da informação da empresa. 2 Estudo de Caso O gerenciamento de serviços é um fator crítico para a organização em análise, os processos devem garantir os acordos de níveis de serviços estabelecidos com os clientes. Destarte, a atividade

Leia mais

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com,

Leia mais

Integrações e o ecossistema Java. Fabric8 ao Resgate!

Integrações e o ecossistema Java. Fabric8 ao Resgate! Integrações e o ecossistema Java Fabric8 ao Resgate! Quem sou eu? Leandro O. Gomes blog.leandrogomes.com @leandro_gomes 7 anos de estrada Arquiteto de Software na Owse no Rio de Janeiro Apaixonado por

Leia mais

Uma Proposta de Framework de Comparação de Provedores de Computação em Nuvem

Uma Proposta de Framework de Comparação de Provedores de Computação em Nuvem Uma Proposta de Framework de Comparação de Provedores de Computação em Nuvem Igor G. Haugg Bolsista PIBITI/CNPq Orientador: Dr. Rafael Z. Frantz Área de Pesquisa Integração de Aplicações Empresariais Computação

Leia mais

3 Arquitetura do Sistema

3 Arquitetura do Sistema 3 Arquitetura do Sistema Este capítulo irá descrever a arquitetura geral do sistema, justificando as decisões de implementação tomadas. Na primeira seção iremos considerar um conjunto de nós interagindo

Leia mais

Alexandre Malveira, Wolflan Camilo

Alexandre Malveira, Wolflan Camilo Alexandre Malveira, Wolflan Camilo Introdução Cloud Computing Computação Móvel SaaS, PaaS e IaaS CloudBees Diariamente arquivos são acessados, informações dos mais variados tipos são armazenadas e ferramentas

Leia mais

Programação para Web Artefato 01. AT5 Conceitos da Internet

Programação para Web Artefato 01. AT5 Conceitos da Internet Programação para Web Artefato 01 AT5 Conceitos da Internet Histórico de revisões Data Versão Descrição Autor 24/10/2014 1.0 Criação da primeira versão HEngholmJr Instrutor Hélio Engholm Jr Livros publicados

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo TECNOLOGIA WEB Principais Protocolos na Internet Aula 2 Profa. Rosemary Melo Tópicos abordados Compreender os conceitos básicos de protocolo. Definir as funcionalidades dos principais protocolos de Internet.

Leia mais

4 Desenvolvimento da ferramenta

4 Desenvolvimento da ferramenta direcionados por comportamento 38 4 Desenvolvimento da ferramenta Visando facilitar a tarefa de documentar requisitos funcionais e de gerar testes automáticos em uma única ferramenta para proporcionar

Leia mais

Paradigma Cliente/Servidor

Paradigma Cliente/Servidor Paradigma Cliente/Servidor Mário Meireles Teixeira UFMA Departamento de Informática Dezembro, 2012 Comunicação em Sistemas Distribuídos! Os processos em um SD estão lógica e fisicamente separados. Precisam

Leia mais

Curso Introdução à Educação Digital - Carga Horária: 40 horas (30 presenciais + 10 EaD)

Curso Introdução à Educação Digital - Carga Horária: 40 horas (30 presenciais + 10 EaD) ******* O que é Internet? Apesar de muitas vezes ser definida como a "grande rede mundial de computadores, na verdade compreende o conjunto de diversas redes de computadores que se comunicam e que permitem

Leia mais

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 FileMaker Pro 14 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 2007-2015 FileMaker, Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

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

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

Sistema de Memorandos On-Line. (Projeto Arquitetural)

Sistema de Memorandos On-Line. (Projeto Arquitetural) Universidade Federal de Campina Grande Pb Departamento de Sistemas e Computação Disciplina: Projeto em Computação I 2111185 Professora: Francilene Procópio Garcia, P.Sc Alunos: Arnaldo de Sena Santos;

Leia mais

milenaresende@fimes.edu.br

milenaresende@fimes.edu.br Fundação Integrada Municipal de Ensino Superior Sistemas de Informação A Internet, Intranets e Extranets milenaresende@fimes.edu.br Uso e funcionamento da Internet Os dados da pesquisa de TIC reforçam

Leia mais

DIGIMAN. WTB Tecnologia 2009. www.wtb.com.br

DIGIMAN. WTB Tecnologia 2009. www.wtb.com.br DIGIMAN MANDADO JUDICIAL ELETRÔNICO Arquitetura WTB Tecnologia 2009 www.wtb.com.br Arquitetura de Software O sistema DIGIMAN é implementado em três camadas (apresentação, regras de negócio e armazém de

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com O que veremos hoje... Evolução Histórica Motivação Conceitos Características

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

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

FileMaker Pro 12. Utilização de uma Conexão de Área de Trabalho Remota com o

FileMaker Pro 12. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 12 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 12 2007 2012 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Um pouco sobre Pacotes e sobre os protocolos de Transporte Um pouco sobre Pacotes e sobre os protocolos de Transporte O TCP/IP, na verdade, é formado por um grande conjunto de diferentes protocolos e serviços de rede. O nome TCP/IP deriva dos dois protocolos mais

Leia mais

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES Sistema de Informação e Tecnologia FEQ 0411 Prof Luciel Henrique de Oliveira luciel@uol.com.br Capítulo 5 INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES PRADO, Edmir P.V.; SOUZA, Cesar A. de. (org). Fundamentos

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44 Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 3 Virtualização de Sistemas 1. Conceito Virtualização pode ser definida

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

Minicurso Computação em Nuvem Prática: Openstack

Minicurso Computação em Nuvem Prática: Openstack Grupo de Pesquisa em Software e Hardware Livre André Rover de Campos Membro Colméia andreroverc@gmail.com Joinville Minicurso Computação em Nuvem Prática: Openstack Roteiro Definições Virtualização Data

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

6 - Gerência de Dispositivos

6 - Gerência de Dispositivos 1 6 - Gerência de Dispositivos 6.1 Introdução A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções do sistema operacional. Sua implementação é estruturada através de

Leia mais

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural Arquitetura e Protocolos de Rede TCP/IP Modelo Arquitetural Motivação Realidade Atual Ampla adoção das diversas tecnologias de redes de computadores Evolução das tecnologias de comunicação Redução dos

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

INTERNET CONCEITOS. Internet é a "grande rede mundial de computadores"

INTERNET CONCEITOS. Internet é a grande rede mundial de computadores INTERNET CONCEITOS O que é Internet Estamos acostumados a ouvir que Internet é a "grande rede mundial de computadores" Entretanto, essa definição não é muito simplista. Na realidade, Ela é uma coleção

Leia mais

Comunicando através da rede

Comunicando através da rede Comunicando através da rede Fundamentos de Rede Capítulo 2 1 Estrutura de Rede Elementos de comunicação Três elementos comuns de comunicação origem da mensagem o canal destino da mensagem Podemos definir

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. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Objetos distribuídos e invocação remota Introdução Comunicação entre objetos distribuídos Chamada de procedimento remoto Eventos e notificações Objetos

Leia mais

Prof. Manuel A Rendón M

Prof. Manuel A Rendón M Prof. Manuel A Rendón M Tanenbaum Redes de Computadores Cap. 1 e 2 5ª. Edição Pearson Padronização de sistemas abertos à comunicação Modelo de Referência para Interconexão de Sistemas Abertos RM OSI Uma

Leia mais

OCEL001 Comércio Eletrônico Módulo 9_3: OpenShift

OCEL001 Comércio Eletrônico Módulo 9_3: OpenShift OCEL001 Comércio Eletrônico Módulo 9_3: OpenShift Prof. Charles Christian Miers e-mail: charles.miers@udesc.br OpenShift Solução livre de PaaS da RedHat Aquisição da Makara em 2010 Principais concorrentes:

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

Leia mais

Gestão de Armazenamento

Gestão de Armazenamento Gestão de Armazenamento 1. Introdução As organizações estão se deparando com o desafio de gerenciar com eficiência uma quantidade extraordinária de dados comerciais gerados por aplicativos e transações

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

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

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina Programação para Internet Rica 1 Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina Objetivo: Identificar as principais características de uma Aplicação Internet Rica.

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

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Boas Práticas de Desenvolvimento Seguro

Boas Práticas de Desenvolvimento Seguro Boas Práticas de Desenvolvimento Seguro Julho / 2.012 Histórico de Revisões Data Versão Descrição Autor 29/07/2012 1.0 Versão inicial Ricardo Kiyoshi Página 2 de 11 Conteúdo 1. SEGURANÇA DA INFORMAÇÃO

Leia mais

BlackBerry Mobile Voice System Versão: 5.0 Service pack: 1. Visão geral técnica e dos recursos

BlackBerry Mobile Voice System Versão: 5.0 Service pack: 1. Visão geral técnica e dos recursos BlackBerry Mobile Voice System Versão: 5.0 Service pack: 1 Visão geral técnica e dos recursos SWD-1031491-1025120324-012 Conteúdo 1 Visão geral... 3 2 Recursos... 4 Recursos para gerenciar contas de usuário

Leia mais

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

Leia mais

Introdução. O que é Serviços de Terminal

Introdução. O que é Serviços de Terminal Introdução Microsoft Terminal Services e Citrix MetaFrame tornaram-se a indústria padrões para fornecer acesso de cliente thin para rede de área local (LAN), com base aplicações. Com o lançamento do MAS

Leia mais

PROTÓTIPO DE UM SISTEMA DE RASTREAMENTO PARA COMPUTADORES

PROTÓTIPO DE UM SISTEMA DE RASTREAMENTO PARA COMPUTADORES UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE SISTEMAS DE INFORMAÇÃO PROTÓTIPO DE UM SISTEMA DE RASTREAMENTO PARA COMPUTADORES Bárbara Dias Pereira Prof. Miguel Alexandre Wisintainer, Orientador ROTEIRO DA

Leia mais

TECNOLOGIA WEB INTERNET PROTOCOLOS

TECNOLOGIA WEB INTERNET PROTOCOLOS INTERNET PROTOCOLOS 1 INTERNET Rede mundial de computadores. Também conhecida por Nuvem ou Teia. Uma rede que permite a comunicação de redes distintas entre os computadores conectados. Rede WAN Sistema

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Sistemas Distribuídos. Introdução

Sistemas Distribuídos. Introdução Sistemas Distribuídos Introdução Definição Processos Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software distribuído. Executados

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