Modulus: Uma Solução para o Gerenciamento de Componentes Java em Tempo de Execução

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

Download "Modulus: Uma Solução para o Gerenciamento de Componentes Java em Tempo de Execução"

Transcrição

1 Modulus: Uma Solução para o Gerenciamento de Componentes Java em Tempo de Execução Ranieri de Souza Fernandes, Rodrigo Prestes Machado Curso de Análise e Desenvolvimento de Sistemas Faculdade de Tecnologia Senac RS (FATEC/RS) Porto Alegre RS Brasil Abstract. The dynamic assignment of components is an important resource in the Java applications development. In the server side, the critical systems must have the maximum possible availability. In this case, as well as add new features, it is necessary there is need to deploy new versions of components that are already under running. The objective of this paper is provinding a solution to the dynamic assignment of components in the Java platform without using JEE application servers. Resumo. O gerenciamento de componentes em tempo de execução, fazendo a sua alocação dinâmica, é um recurso importante no desenvolvimento de aplicações na plataforma Java. No lado do servidor, os sistemas críticos devem possuir o máximo de disponibilidade possível. Pois, além de adicionar recursos novos, existe a necessidade de implantar novas versões de componentes que já estão em execução. O objetivo deste trabalho é apresentar uma solução para a alocação dinâmica de componentes e serviços na plataforma Java, sem a utilização de servidores de aplicação JEE. 1.Introdução Nos sistemas de software que possuem longos ciclos de vida, as fases de manutenção e evolução são inevitáveis (TIZZEI, GUERRA e RUBIRA, 2007). Neste contexto, a alocação dinâmica de componentes de software é uma necessidade que está presente durante o tempo de execução de algumas aplicações. Os sistemas críticos que rodam no servidor (server side) devem permanecer disponíveis o maior tempo possível, ou seja, preferencialmente não devem parar. A atualização e controle de componentes são um problema. Muitas vezes, a solução para a realização das atualizações é a utilização de horários fora do expediente de atendimento do sistema. Isto resolve o problema de disponibilidade da aplicação, mas como efeito colateral a área técnica acaba atendendo em horários alternativos, como a noite ou madrugada. No caso de aplicações de alta disponibilidade, o processo se complica, pois não existem janelas de tempo para a execução dos procedimentos de implantação e a interrupção dos serviços pode se tornar inevitável. Para resolver este problema, a melhor abordagem é atualizar os componentes de software sem a necessidade de interromper o atendimento dos serviços. Para estes casos, as soluções mais comuns da plataforma Java são os containers EJB, Enterprise JavaBeans (EJB, 2008). Mas eles possuem algumas exigências em termos de memória, capacidade de processamento do hardware e administração. A infra estrutura pode ser muito maior e complexa do que o sistema a ser desenvolvido. Além disso, não se possui

2 o controle completo sobre o ciclo de vida do componente, suas versões e seus possíveis conflitos. Outra abordagem seria a implementação de hierarquia de carregadores de classes, classloader (GOSLING, JOY, STEELE e BRACHA, 2005), criando uma solução customizada, mas completamente incompatível com o restante do mercado. Qualquer destas soluções aumenta a complexidade da aplicação e, no caso do JEE (Java Enterprise Edition), normalmente os requisitos não funcionais também. Com a aprovação da JSR 291, Java Specification Request (JSR291, 2008), foi oficializada a tecnologia OSGi, Open Services Gateway initiative (OSGI, 2008), como um padrão da plataforma Java. Esta tecnologia fornece um ambiente orientado a serviços e baseado em componentes. Ela preenche a lacuna de um caminho padronizado de gerenciamento do ciclo de vida de componentes para a plataforma. Apesar de sua origem ser os dispositivos embarcados, esta tecnologia está crescendo nos servidores, se tornando uma opção viável para desenvolvimento de componentes. Este artigo tem como objetivo a implementação do Modulus. Um servidor de aplicação simplificado, para desenvolvimento de sistemas server side com a tecnologia OSGi. Como ela é um padrão da plataforma Java, servidores JEE como Jboss, WebLogic, WebSphere, Jonas e Glassfish estão implementando ou já implementaram esta tecnologia. Assim, os serviços de regras de negócio implementados no Modulus serão compatíveis com servidores JEE de mercado. Possibilitando, a migração do sistema para um servidor de maior porte se isto for necessário. A utilização do OSGi também proporciona a extensão do servidor, com a introdução de componentes de serviços de terceiros. O presente artigo está organizado em 5 seções. A seção 2 apresenta os trabalhos relacionados com tema, mostrando as possíveis soluções para o problema exposto. Na seção 3 descreve se a solução do problema, juntamente com as funcionalidades do Modulus. Na seção 4 estão descritos os métodos de validação do software. As conclusões e os trabalhos futuros são expostos na seção Trabalhos Relacionados Nesta seção são descritas as principais soluções encontradas para o gerenciamento de componentes Java em tempo de execução Classloader's Uma saída para controlar os componentes e seus ciclos de vida em Java é implementar uma solução com a utilização de hierarquia de carregadores de classes (ClassLoader's). Os carregadores de classes são organizados de forma hierárquica, conforme Figura 1. Bootstrap Class Loader System Class Loader Class Loader Marte Class Loader Saturno Figura 1. Hierarquia de Carregadores de Classes

3 Sempre que o Java Runtime Environment (JRE) é carregado, um carregador de classes chamado Bootstrap Class Loader é instanciado e tem a responsabilidade de carregar todas as classes do JRE. O segundo carregador de classes a ser chamado é o System Class Loader e tem a função de carregar todas as classes que estão listadas na variável de ambiente CLASSPATH ou no parâmetro classpath. Quando não redefinimos os carregadores de classe, é o System Class Loader que carrega as classes chamadas. Abaixo do System Class Loader podem ser criados os carregadores de classes customizados. Se os carregadores estiverem no mesmo nível, os objetos instanciados por eles estão isolados. Isto é, uma classe carregada pelo classloader Marte (Figura 1) não enxerga as classes carregadas no classloader Saturno. Além disto, por exemplo, se durante a execução do JRE a classe PessoaJuridica for instanciada pelo classloader Marte, sua estrutura será carregada para o contexto deste classloader. Na segunda instanciação, pelo classloader Marte, esta estrutura já estará em memória e não será carregada novamente, mesmo que o arquivo binário seja substituído por uma nova versão. Mas, se a mesma classe PessoaJuridica for instanciada pelo classloader Saturno, ela não existirá no seu contexto por causa do isolamento. Portanto, o classloader Saturno fará uma carga da classe cliente em seu contexto de memória, com a versão que estiver no disco. Utilizando se estes recursos, pode ser desenvolvida uma monitoração dos binários e implementar classloader's customizados para gerenciar a atualização de componente em tempo de execução. Porém, além do tempo investido na solução customizada, a não existência de um padrão de comportamento acarretaria em sistemas incompatíveis, pois cada um implementaria sua própria solução, ficando muito prejudicada a integração com componentes de outros sistemas ou de terceiros Servidores JEE O container EJB é a solução padrão que a plataforma Java oferece para implementação de componentes de negócio. Eles possuem o recurso de recarga de classes Java em tempo de execução (hot deploy). Este recurso é a capacidade de implantação ou atualização de componentes sem interrupção dos serviços, mesmo que eles já tenham sido carregados pela Java Virtual Machine (JVM). Neste caso, é necessária a utilização de uma estrutura de tamanho razoável, pois normalmente os servidores EJB possuem algumas exigências em termos de memória, capacidade de processamento e administração (EJB, 2008). Mesmo assim, não se possui o controle completo sobre o ciclo de vida do componente. Não é possível, por exemplo, desligar um serviço ou ter duas versões do mesmo componente de negócio rodando simultaneamente. Quando se possui ambientes distribuídos, pode ser necessário que a versão antiga de um componente continue disponível, para que atenda as requisições de clientes que ainda não estão atualizados, pois o novo componente pode ser até mesmo incompatível com versões anteriores. Se isto não for possível, é necessário que a aplicação resolva o problema, se preocupando em identificar qual é o comportamento ou o formato da mensagem de resposta que deve ser utilizada para atender a requisição do cliente Open Services Gateway Initiative OSGi OSGi é uma organização que agrupa grandes empresas de tecnologia como Ericsson, Siemens, Motorola, Intel, IBM, Oracle, entre outros. O objetivo desta iniciativa foi criar uma especificação aberta para o desenvolvimento, configuração e gerenciamento de

4 serviços para a Plataforma Java. Com isto, ela oferece um padrão para montagem dinâmica de sistemas baseados em componentes, tornando possível a definição de componentes, fazendo o controle de visibilidade de sua API (Application Programming Interface), o gerenciamento de dependências com outros componentes e suas versões, o controle do seu ciclo de vida. Os componentes são chamados de bundles na especificação da OSGi. O resultado desta especificação foi um padrão onde um bundle exporta serviços e a API que ele fornece. Este bundle pode encontrar outros serviços utilizando o registro de serviços do OSGi. No modelo, um bundle é como uma aplicação distribuída em um arquivo JAR (Java archive), com seu arquivo de manifesto que, além de exportar pacotes, pode disponibilizar serviços. Este manifesto fornece ao framework informações da classe que ativa o bundle, versão, os pacotes externos Java e quais partes da sua API estão disponíveis para os demais bundles, conforme Figura 2. Figura 2. Arquitetura OSGi O framework OSGi gerencia de forma dinâmica as modificações dos bundles no ambiente, validando dependências entre bundles e serviços. Ele possui mecanismos para controlar a instalação, ativação, desativação, atualização e remoção de bundles físicos. Proporciona um modelo de programação onde a especificação do serviço é feita através de interfaces Java, separando a especificação de sua execução (OSGI, 2008). 3. Implementação do Modulus Como foi exposto anteriormente, o objetivo deste estudo é construir o Modulus, um servidor de aplicações que suporte o gerenciamento dinâmico de componentes. A tecnologia que melhor se adaptou a proposta foi a OSGi, pois possui um tamanho reduzido e foi projetada para dispositivos com poucos recursos. A implementação de OSGi utilizada foi a Equinox (EQUINOX, 2008), desenvolvida pela Eclipse Foundation. Ela prove o controle do ciclo de vida dos componentes de negócio e seu versionamento. Foram criadas camadas de serviços e utilitários para atender as principais necessidades do servidor. O Modulus roda sobre uma JVM no servidor, a Figura 3 demonstra o modelo de funcionamento. O servidor precisa suportar a sua utilização em alta disponibilidade, isto é, não pode sofrer interrupções não programadas, sendo necessário que se defenda de problemas de implementação de componentes de negócios de terceiros.

5 Figura 3. Diagrama de funcionamento do Modulus Algumas funcionalidades do servidor foram implementadas na forma de serviços. A execução destes componentes foi feita por meio de bundles. Através deles são disponibilizadas as funcionalidades para os componentes clientes, que podem ser a aplicação final ou outros bundles. Fisicamente, os bundles são arquivos JAR contendo um arquivo de manifesto especial (HALL; CERVANTES, 2004). No Modulus, os componentes de negócio também são implementados como bundles e registrados como serviços. Assim é possível controlar o ciclo de vida, os estados dos componentes de negócio. Os estados, durante o ciclo de vida de um bundle, estão descritos na Figura 4. Instalado o componente foi implantado com sucesso. Os códigos nativos e dependências foram todos validados. Resolvido todas as classes Java do componente estão disponíveis e, portanto, suas dependências estão resolvidas. Iniciando Os procedimentos para carregar o bundle estão em execução. Parando Os procedimentos para descarregar o bundle estão em execução. Ativo foi iniciado com sucesso e está rodando. Desinstalado O bundle foi desinstalado. Figura 4. Ciclo de vida de um componente (bundle)

6 As próximas seções descrevem as camadas e serviços principais disponibilizados pelo Modulus Servidor Modulus O servidor Modulus carrega os principais serviços e as configurações iniciais. Faz o controle de exceções não tratadas para que o servidor seja robusto, impedindo tentativas de operações indevidas que causem o término da execução do servidor. Além disto, carrega, configura e gerencia o framework OSGi. A Figura 5 descreve a estrutura de diretórios do Modulus. Figura 5. Estrutura de diretórios No diretório bin estão todos os pacotes que compõem o servidor Modulus. No diretório log estão arquivos com os registros de informações e ocorrências do funcionamento do servidor e seus serviços, enquanto no diretório webapps estão os domínios e, no seu interior, os bundles de negócio Serviços Para que o Modulus possa executar os componentes negócio, é necessária uma infraestrutura de serviços. Os serviços do Modulus foram desenvolvidos dentro do padrão OSGi e estão descritos a seguir Serviço de Comunicação O serviço de comunicação (ServCom) é responsável por receber e enviar mensagens para as aplicações clientes. Utiliza o protocolo HTTP (Hypertext Transfer Protocol) e segue uma abordagem REST (Representational State Transfer), onde os serviços são identificados por uma URI (uniform resource identifiers). A motivação para o desenvolvimento do REST foi criar um modelo de arquitetura para recomendar a forma como a Web deve funcionar, de modo que ela pudesse servir como estrutura de orientação para os protocolos padrões da Web. REST tem sido aplicado para descrever a desejada arquitetura Web, ajudar na identificação de problemas existentes, comparar soluções alternativas e assegurar que estas extensões de protocolo não violem as principais regras que fazem da Web um sucesso. Este trabalho foi feito como parte da Internet Engineering Taskforce (IETF) e World Wide Web Consortium (W3C) no esforço para definir os padrões arquitetônicos da Web: HTTP, URI, e HTML. (FIELDING,2000).

7 As informações para processamento são entregues e respondidas no formato JSON, (JavaScript Object Notation)(RFC4627, 2008). Ele é um formato leve, baseado em texto para troca de mensagens entre linguagens. É derivado do padrão ECMAScript e é definido pela RFC4627. No Modulus, todos os serviços de negócio são registrados pelos bundles e estão acessíveis através de URI's. Uma URI seria formada pelo domínio onde se encontra o bundle, o nome em que o serviço foi registrado, que é o mesmo da classe ou interface, o método desejado, os parâmetros e, opcionalmente, a versão do componente, que, por padrão, será a mais recente. Caso o parâmetro version for igual a?, o Modulus retorna uma coleção com as versões disponíveis do serviço. Assim, uma URI teria o seguinte formato param={<dados>}&version=<versão>. Chamando uma URI somente com o nome do serviço, o ServCom retorna os métodos e seus parâmetros, como na Figura 6. Figura 6. Informações ServLog Serviço de Gerenciamento de Conexões a Bases de Dados O serviço de gerenciamento de conexões a bases de dados (ServBd), controla uma coleção (pool) de conexões com a base dados utilizada. O componente de negócio solicita uma conexão com uma determinada base de dados, então recebe a conexão para a execução da transação. Após o seu uso, devolve a conexão para o pool. O pool de conexões é utilizado para reduzir o tempo de espera de uma nova conexão, que impacta no tempo total de resposta do serviço Serviço de Processamento O serviço de processamento (ServProc) é quem executa o componente de negócio solicitado, entregando a mensagem recebida pelo ServCom. Ele trabalha de forma assíncrona, através de filas de entrada e saída, controlando o acesso aos serviços, sempre respeitando o seu versionamento. Quando um serviço é requisitado, ele verifica se foi informada uma versão específica. Caso contrário, executa a versão mais atual. Fazem parte de suas funções também o controle do limite de tempo de execução (timeout), paralelismo e escalabilidade da execução dos serviços de negócio. Ele gerencia a quantidade de execuções em paralelo de cada serviço, pois um serviço pode

8 ter diversas chamadas simultâneas de diversas aplicações cliente. Isto evita que um único serviço consuma todos os recursos do servidor. O controle de timeout faz com que a transação executada pelo serviço seja abortada se ultrapassar o limite definido de tempo. O ServProc cria uma fila para cada serviço de negócio. Elas podem reter o fluxo de solicitações e esperar, caso um determinado serviço não esteja disponível ou em atualização, evitando assim a negação de serviço durante operações rápidas de manutenção. Desta forma, propicia que os recursos do servidor sejam consumidos de forma controlada e ordenada Serviço de Monitoração O serviço de monitoração (ServMon) faz o controle de log's, a monitoração do servidor e dos componentes de negócio. Ele gerencia informações como: quantidade de execuções, o tempo de execução, a quantidades de timeout's, tempo médio de execução, tempo mínimo e máximo de execução de cada componente de negócio. Assim é possível verificar a situação atual do servidor, os serviços mais consumidos, os serviços mais problemáticos, entre outros. Com isto, pode se estimar a capacidade de processamento e identificar componentes de negócio que estão com uma demora excessiva na execução. Na Figura 7 estão as informações fornecidas pelo ServLog. Nela, os tempos estão em milissegundos: Serviço: é o nome do serviço ao qual pertencem as informações Qtd Exec: quantas vezes o serviço foi executado Fila: quantas requisições estão na fila para execução ou envio de resposta Proc: quantas requisições estão sendo processadas simultaneamente Maxfila: maior tamanho atingido pela fila e que momento isto ocorreu Timeout: quantidade de ocorrências de timeout Tempomin: menor tempo de processamento de uma requisição ao serviço Tempomax: maior tempo de processamento de uma requisição ao serviço Tempomed: tempo médio de processamento de uma requisição ao serviço Figura 7. Informações ServLog

9 3.3. Componentes de Negócio Esta camada é implementada pelos desenvolvedores da aplicação final, que são as classes que possuem as regras de negócio que se deseja implementar. Os componentes de negócio são instanciados sob demanda. Assim, são executados quando forem explicitamente chamados pela aplicação cliente. Eles podem ser invocados pela aplicação cliente via URI, por outros componentes ou serviços dentro do Modulus. Para a publicação dos serviços dos componentes de negócio, é necessário realizar um serviço OSGi. A sua implantação será automática, após a cópia do arquivo JAR do bundle para o diretório do seu domínio, conforme Figura 5. Após a implantação do componente, ele será automaticamente mapeado por uma URI. Por exemplo, no caso de um componente para conta corrente que calcule o digito verificador. Após registrar o serviço que implementa a interface ContaCorrente (Figura 8), a URI seria: Isto propicia a adoção do principio da convenção no lugar da configuração. Se o serviço foi registrado utilizando uma interface, então todos os métodos da interface estarão disponíveis. Para usar o serviço, basta passar o número da conta no formato JSON, como no exemplo: CalculaDigitoVerificador?param={ }. Para solicitar uma versão específica de um serviço, por exemplo a versão 1.0.3, adiciona se o parâmetro version= Validações Figura 8. Interface conta corrente Para validar a solução proposta neste trabalho, foi realizado um estudo de caso. Este estudo de caso é exposto na seção 4.1, onde a necessidade de alocação dinâmica de componentes é demonstrada Cenário do Estudo de Caso Para tornar possível a validação do servidor Modulus, foi criado um cenário comum em ambientes distribuídos, visando simular a necessidade de alocação dinâmica de componentes. Neste cenário, um sistema bancário trabalha de forma distribuída, instalado em diversas agências. Cada agência tem um servidor dedicado e atende as contas correntes de seus clientes. Quando um correntista efetua uma transação fora de sua agência, o sistema se comunica diretamente com o sistema da agência de origem do correntista, para que ele efetue a operação. Por questão de segurança, as atualizações deste sistema não são efetuadas de uma única vez. Se ocorresse um problema grave com uma versão, o impacto poderia ser muito grande na rede de agências e na disponibilidade dos serviços. Portanto, são escolhidas agências piloto e, após um período de avaliação, as versões são distribuídas

10 gradativamente às demais agências. Com isto, devem conviver na rede diferentes versões dos serviços que podem ser incompatíveis, como por exemplo, possuir formato de buffers diferentes. Neste caso, a agência que receber a nova versão terá que atender solicitações de agências com o formato de buffer antigo e com o novo Execução do Estudo de Caso A validação foi a implantação da versão do componente com.bancox.contacorrente, em substituição ao componente versão 1.1.0, que está em ambiente de produção. Nesta nova versão, a operação de depósito passa a receber uma nova informação, que é uma assinatura digital da transação gerada pelo cartão do cliente. Isto exigirá uma alteração na tabela de movimento, para receber a nova informação. Durante certo período, a agência precisa aceitar requisições pelo formato antigo, mantendo a versão do componente disponível. Este período não pode ser antecipadamente determinado, pois as agências piloto e o tempo para distribuição total podem variar muito. O procedimento realizado para a atualização do componente foi o seguinte: 1. Iniciou se a simulação das requisições de operação de depósito com o JMeter (JMETER, 2008), consumindo a versão do componente com.banco. ContaCorrente através da seguinte URI: &version= Foi preparado o ambiente para executar o comando de alteração da tabela movimento na base de dados. 3. Foi desativado o componente com.bancox.contacorrente, ficando no estado de resolvido. Com isto, as filas do ServProc retiveram as requisições dos clientes durante 30 segundos. 4. Foi realizada a alteração na tabela, criando o novo campo. 5. O serviço de conta corrente versão foi reativado e as requisições pendentes começaram a ser novamente consumidas. 6. Foi copiada para o diretório do domínio a versão do componente, com o suporte a nova mensagem. 7. O Modulus implantou a nova versão do componente. 8. Verificou se a disponibilidade da versão do componente através da URI: 9. Iniciou se a simulação das requisições de operação de depósito com o JMeter, consumindo a versão do componente com.bancox.contacorrente, através da URI:

11 &version= Ficaram dois tipos de clientes acessando os serviços simultaneamente, cada um solicitando uma versão específica do componente. Para simular as agências clientes, foram utilizados dois computadores com um plano de testes, configurados no software Apache JMeter. Cada um possuía uma base de operações de depósito, para serem realizadas em contas correntes. Cada equipamento simulou 200 conexões simultâneas e estavam configurados para solicitar uma das versões do serviço. Portanto, foram executadas requisições, como demonstrado na Figura 9 e a mesma quantidade de inserções na tabela de movimento, como mostra a Figura 10. Figura 9. Requisições aos serviços Figura 10. Registros na tabela movimento Este teste cobriu as funções básicas do servidor. Foram realizadas as validações de eficiência, negação de serviço e funcionalidades de controle de paralelismo dos serviços ServCom e ServProc. O componente de conta corrente foi implementado usando o padrão DAO (Data Access Object)(ALUR, CRUPI e MALKS, 2002) e foi utilizado JDBC (Java Database Connectivity) para as operações com o banco de dados. O ServCom foi avaliado pelas chamadas aos componentes de negócio. Foi observado o comportamento do serviço ServBD através do gerenciamento das conexões com a base de dados, que foram necessárias para atender o componente de negócio. Os serviços ServProc e ServMon foram validados pelas informações de quantidade de execuções, estouros de tempo, tempos de execução médio, mínimo e máximo de cada componente de negócio, como demonstrado a Figura 9. O ServProc cumpriu a função de controlar o consumo aos serviços pelas suas versões, atendendo os clientes com a versão do serviço por ele solicitada.

12 5. Conclusões e Trabalhos Futuros Neste trabalho avaliamos uma alternativa para o gerenciamento de componentes Java em tempo de execução. A utilização da tecnologia OSGi junto com uma abordagem de publicação de serviços REST se mostrou eficaz no controle da alocação dinâmica de componentes. Os serviços disponibilizados pelo Modulus foram capazes de suprir as necessidades de alta disponibilidade. Quando foi necessário desativar o serviço para a manutenção na base de dados, o ServProc enfileirou as requisições, retendo o seu fluxo por alguns segundos. Após a manutenção, as requisições pendentes foram consumidas sem negação de serviço. A possibilidade de trabalhar simultaneamente com versões diferentes do mesmo componente de negócio propicia grande flexibilidade e segurança na hora de atualizar os sistemas. Como foi exposto na validação, não é necessário que a nova versão do componente trate peculiaridades da versão anterior. No caso da alteração do formato do buffer, sem o versionamento o componente novo precisaria tratar os dois formatos. Isto reflete em mais complexidade no desenvolvimento, pois além de implementar as novas funcionalidades, deve existir a preocupação com a compatibilidade de funcionamento com a versão anterior. Se existir algum problema na compatibilidade, os clientes com versões anteriores também serão atingidos. Mantendo a versão que está em produção ativa, a possibilidade de problemas se concentra nos clientes com versão nova. Quando todos os clientes possuírem a nova versão, basta desativar a versão anterior do serviço. Alguns pontos de melhoria, que podem ser acrescentados em trabalhos futuros, foram constatados durante este trabalho. Criação de modelos e assistentes para IDE's, facilitando o trabalho no desenvolvimento de componentes de negócio. Interface gráfica para administração remota e visualização das informações de execução dos componentes de negócio. Isolamento dos domínios, que poderiam rodar em instâncias diferentes da JVM. Implementar no ServCom outros tipos requisições, como socket's, SOAP, JMS, entre outros. Implementar mecanismo de implantação distribuída de componentes 6. Referências ALUR, Deepak; CRUPI, John; MALKS, Dan. Core J2EE Patterns. Rio de Janeiro: Editora Campus, EJB. Enterprise JavaBeans Technology, Disponível em: <http://java.sun.com /products/ejb/>. Acesso em: 20 de Abril, EQUINOX. The Equinox Project, Disponível em: <http://www.eclipse.org/equinox/>. Acesso em: 16 de Março, 2008.

13 FIELDING, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, GOSLING, James; JOY, Bill; STEELE, Guy; BRACHA, Gilad. The Java Language Specification Third Edition. Sun Microsystems, Maio Disponível em: <http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf>. Acesso em: 20 de Setembro, HALL, S. Richard.; CERVANTES, Humberto. An OSGi implementation and Experience Report. In: First IEEE Consumer Communications and Networking Conference, Janeiro, JMETER. Apache Jmeter, Disponível em: <http://jakarta.apache.org/jmeter/>. Acesso em: 20 de Setembro, JSR291. Dynamic Component Support for Java SE, Disponível em: <http://www.jcp.org/en/jsr/detail?id=291>. Acesso em: 16 de Março, TIZZEI, Leonardo P.; GUERRA, Paulo A.; RUBIRA, Cecília M.F. Uma abordagem sistemática para reutilização e versionamento de componentes de software. Workshop de Manutenção de Software Moderna. Junho de Ipojuca - PE Brasil NETBEANS. The NetBeans Community, Disponível em: <http://www.netbeans.org/>. Acesso em: 16 de Março, OSGI. The OSGi Home Page. Disponível em: <http://www.osgi.org/>. Acesso em: 16 de Março, RFC4627. The Internet Engineering Task Force, Disponível em: <http://www.ietf.org /rfc/rfc4627.txt/>. Acesso em: 20 de Setembro, 2008.

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

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

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

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

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

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

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

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

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

OSGi Um Sistema Dinâmico de Módulos para Java

OSGi Um Sistema Dinâmico de Módulos para Java OSGi Um Sistema Dinâmico de Módulos para Java Raoni Kulesza raoni@larc.usp.br MAC-5863 Sistemas de Middleware Avançados 2006/2 Prof. Dr. Francisco Reverbel IME-USP, 28/11/2006 Agenda Introdução Arquitetura

Leia mais

OSGi distribuído: deployment local e execução remota

OSGi distribuído: deployment local e execução remota OSGi distribuído: deployment local e execução remota Marcelo Malcher Monografia de Seminários de Sistemas Distribuídos Departamento de Informática Pontifícia Universidade Católica do Rio de marcelom@inf.puc-rio.br

Leia mais

Estudo comparativo entre tecnologias Java: Applet e JWS.

Estudo comparativo entre tecnologias Java: Applet e JWS. Estudo comparativo entre tecnologias Java: Applet e JWS. Clara Aben-Athar B. Fernandes¹, Carlos Alberto P. Araújo¹ 1 Centro Universitário Luterano de Santarém Comunidade Evangélica Luterana (CEULS/ULBRA)

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

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

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel A linguagem JAVA A linguagem Java O inicio: A Sun Microsystems, em 1991, deu inicio ao Green Project chefiado por James Gosling. Projeto que apostava

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

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

SISTEMA DE CONTROLE DE DADOS CLIMÁTICOS NA WEB NO AUXILIO À AGRICULTURA RESUMO SYSTEM CONTROL OF CLIMATIC DATA IN THE WEB TO ASSIST THE AGRICULTURE

SISTEMA DE CONTROLE DE DADOS CLIMÁTICOS NA WEB NO AUXILIO À AGRICULTURA RESUMO SYSTEM CONTROL OF CLIMATIC DATA IN THE WEB TO ASSIST THE AGRICULTURE SISTEMA DE CONTROLE DE DADOS CLIMÁTICOS NA WEB NO AUXILIO À AGRICULTURA CAROLINE VISOTO 1 EDUARDO RUBIN 2 THIAGO X. V. OLIVEIRA 3 WILINGTHON PAVAN 4 JOSÉ MAURÍCIO CUNHA FERNANDES 5 CRISTIANO ROBERTO CERVI

Leia mais

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com. Consumindo um Web Service através de uma Aplicação Comercial em Android Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.br 08/2014 Agenda Introdução Conceitos Web Service Por que utilizar

Leia mais

Especificações Técnicas

Especificações Técnicas Visual COBOL é a solução líder da indústria para o desenvolvimento de aplicações COBOL e implantação em sistemas Windows, Unix e Linux. Ele combina as melhores ferramentas de desenvolvimento de sua classe

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

Introdução a Servlets

Introdução a Servlets Linguagem de Programação para Web Introdução a Servlets Prof. Mauro Lopes 1-31 21 Objetivos Iniciaremos aqui o estudo sobre o desenvolvimento de sistemas web usando o Java. Apresentaremos nesta aula os

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

Integrando Eclipse e Websphere Application Server Community Edition

Integrando Eclipse e Websphere Application Server Community Edition 1 Integrando Eclipse e Websphere Application Server Community Edition Sobre o Autor Carlos Eduardo G. Tosin (carlos@tosin.com.br) é formado em Ciência da Computação pela PUC-PR, pós-graduado em Desenvolvimento

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

Modularidade com Java Module System & OSGi

Modularidade com Java Module System & OSGi Modularidade com Java Module System & OSGi Vinicius Senger vinicius@globalcode.com.br vsenger.blogspot.com 1 Agenda > Novos problemas > OSGi Framework > Java Module System > Modularidade com Java SE e

Leia mais

Palestrante. Alexandre Faria

Palestrante. Alexandre Faria Palestrante Alexandre Faria Desenvolvedor e Instrutor JAVA e Web da Vertical Training. Trabalhando em projetos envolvendo tecnologias Java / J2 EE. Experiência em análise, arquitetura e desenvolvimento

Leia mais

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP Alan Jelles Lopes Ibrahim, alan.jelles@hotmail.com Eduardo Machado Real, eduardomreal@uems.br

Leia mais

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64 direcionados por comportamento 64 5 Estudo de caso Neste capítulo serão apresentadas as aplicações web utilizadas na aplicação da abordagem proposta, bem como a tecnologia em que foram desenvolvidas, o

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor

Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática /

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

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

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

2.4. Carregamento de classes e classloader hell

2.4. Carregamento de classes e classloader hell passando o número desejado. Muitas pessoas perguntam -se por que o JIT não compila todos os métodos, rodando tudo de forma nativa e otimizada. É fácil testar este caso, passando 1 na opção anterior, e

Leia mais

ESPECIFICAÇÕES. Aquisição de Solução de Gerenciamento de Desempenho de Aplicações JEE

ESPECIFICAÇÕES. Aquisição de Solução de Gerenciamento de Desempenho de Aplicações JEE Departamento de Planejamento e Projetos de Infraestrutura - DEPI ESPECIFICAÇÕES Aquisição de Solução de Gerenciamento de Desempenho de Aplicações JEE Especificação Técnica - Aquisição de Solução de Gerenciamento

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

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

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

SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores

SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores Requerimentos do Software Versão para Microsoft Windows/Unix Dezembro 2006 Bem-Vindo ao to SIQ GQF Plugin s WEB - Gestão da Qualidade

Leia mais

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1.

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1. UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL Java Peristence API 1.0 Salvador-Ba Março/2009 1 RAMON PEREIRA LOPES Java Peristence API

Leia mais

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Arquiteturas de Aplicações Web Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aplicações Convencionais vs. Web Aplicações convencionais Escritas usando uma linguagem de programação (ex.: Java) Sites de

Leia mais

Uso de Design Patterns e J2EE: um estudo de caso

Uso de Design Patterns e J2EE: um estudo de caso Uso de Design Patterns e J2EE: um estudo de caso Rogério Sorroche (FURB) rs@furb.br Maurício Capobianco Lopes (FURB) mclopes@furb.br Resumo. Este trabalho apresenta um estudo de caso sobre o desenvolvimento

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

LINGUAGEM DE PROGRAMAÇÃO Material de apoio - Aula II (25/02/2008) - Profº Sidney Leal

LINGUAGEM DE PROGRAMAÇÃO Material de apoio - Aula II (25/02/2008) - Profº Sidney Leal AMBIENTE JAVA CONCEITO LINGUAGEM DE PROGRAMAÇÃO O ambiente de desenvolvimento Java é composto de ferramentas e utilitários para a realização de tarefas (depuração, compilação e documentação) relacionadas

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

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

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

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres Linguagem de Programação Orientada a Objeto Introdução a Orientação a Objetos Professora Sheila Cáceres Introdução a Orientação a Objetos No mundo real, tudo é objeto!; Os objetos se relacionam entre si

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

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas Criação de uma Serviço de Geração de Relatórios Goiânia 12/2011 Versionamento 12/12/2011 Hugo Marciano... 1.0

Leia mais

Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows

Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows 1 - Configuração do J2SDKSE (Java 2 SDK Standard Edition) Deve-se obter o arquivo j2sdk-1_4_2_03-windows-i586-p.exe ou mais recente

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

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Conceitos Gerais Graça Bressan Graça Bressan/LARC 2000 1 Forças de marketing que conduzem à arquitetura cliente/servidor "Cliente/Servidor é um movimento irresistível que está reformulando

Leia mais

CURSO DESENVOLVEDOR JAVA Edição 2009

CURSO DESENVOLVEDOR JAVA Edição 2009 CURSO DESENVOLVEDOR JAVA Edição 2009 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

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

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico Fundamentos de Java Prof. Marcelo Cohen 1. Histórico 1990 linguagem Oak; desenvolvimento de software embutido para eletrodomésticos S.O. para o controle de uma rede de eletrodomésticos o surgimento da

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

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

SO Sistemas Operacionais

SO Sistemas Operacionais GOVERNO DO ESTADO DO RIO DE JANEIRO FUNDAÇÃO DE APOIO A ESCOLA TÉCNICA ESCOLA TÉCNICA ESTADUAL REPÚBLICA SO Sistemas Operacionais Curso de Informática ETE REPÚBLICA - Rua Clarimundo de Melo, 847, Quintino

Leia mais

Introdução ao Derby. Version 10.2 Derby Document build: December 11, 2006, 7:16:07 AM (PST)

Introdução ao Derby. Version 10.2 Derby Document build: December 11, 2006, 7:16:07 AM (PST) Introdução ao Derby Version 10.2 Derby Document build: December 11, 2006, 7:16:07 AM (PST) Contents Direitos autorais reservados... 3 Introdução ao Derby...4 Opções de implementação...4 Requisitos do

Leia mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

Leia mais

Manual de referência do HP Web Jetadmin Database Connector Plug-in

Manual de referência do HP Web Jetadmin Database Connector Plug-in Manual de referência do HP Web Jetadmin Database Connector Plug-in Aviso sobre direitos autorais 2004 Copyright Hewlett-Packard Development Company, L.P. A reprodução, adaptação ou tradução sem permissão

Leia mais

Tratamento de Eventos Orientado à Composição de Serviços Web Documento Técnico para Configuração e Validações Práticas (data: 27/02/2012)

Tratamento de Eventos Orientado à Composição de Serviços Web Documento Técnico para Configuração e Validações Práticas (data: 27/02/2012) Tratamento de Eventos Orientado à Composição de Serviços Web Documento Técnico para Configuração e Validações Práticas (data: 27/02/2012) Mauricio Chui Rodrigues (chui@usp.br) Índice 1. Introdução...3

Leia mais

Fundação Universidade Estadual de Maringá

Fundação Universidade Estadual de Maringá Fundação Universidade Estadual de Maringá PAD/DIRETORIA DE MATERIAL E PATRIMÔNIO AVISO DE LICITAÇÃO EDITAL 485/2007 CONCORRÊNCIA PÚBLICA - PROC.: N 15344/2007 OBJETO: CONTRATAÇÃO DE UMA EMPRESA ESPECIALIZADA

Leia mais

Segurança e Escalabilidade em WebLab no Domínio de Redes de Computadores

Segurança e Escalabilidade em WebLab no Domínio de Redes de Computadores Segurança e Escalabilidade em WebLab no Domínio de Redes de Computadores Autor: Daniel Vieira de Souza 1, Orientador: Luís Fernando Faina 1 1 Programa de Pós-Graduação em Ciência da Computação Universidade

Leia mais

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

TC - IOT M2M CORE Services Protocol. Mensagens do FemtoM2M. Versão: 1.0 Data: 2014-01-22

TC - IOT M2M CORE Services Protocol. Mensagens do FemtoM2M. Versão: 1.0 Data: 2014-01-22 TC - IOT M2M CORE Services Protocol Mensagens do FemtoM2M Versão: 1.0 Data: 2014-01-22 Nome do Documento: TC-IOT M2M CORE Services Protocol-Mensagens do FemtoM2M Versão: 1.0 Data: 2014-01-22 Identificador:

Leia mais

WWW - World Wide Web

WWW - World Wide Web WWW World Wide Web WWW Cap. 9.1 WWW - World Wide Web Idéia básica do WWW: Estratégia de acesso a uma teia (WEB) de documentos referenciados (linked) em computadores na Internet (ou Rede TCP/IP privada)

Leia mais

Autoria Web Apresentação e Visão Geral sobre a Web

Autoria Web Apresentação e Visão Geral sobre a Web Apresentação e Visão Geral sobre a Web Apresentação Thiago Miranda Email: mirandathiago@gmail.com Site: www.thiagomiranda.net Objetivos da Disciplina Conhecer os limites de atuação profissional em Web

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

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

Prof. M.Sc. Fábio Procópio Prof. M.Sc. João Maria Criação: Fev/2010

Prof. M.Sc. Fábio Procópio Prof. M.Sc. João Maria Criação: Fev/2010 Prof. M.Sc. Fábio Procópio Prof. M.Sc. João Maria Criação: Fev/2010 Primeira Dica Afirmação O que é Java? Características do Java Como Java Funciona Plataforma Java Edições Java Java SE Java EE Java ME

Leia mais

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 1 Introdução ao Java Objetivos do Capítulo Compor uma visão histórica mínima para a compreensão da origem do Java. Compreender o que é o Java e para que finalidades ele é empregado. Delinear algumas

Leia mais

CA Nimsoft Monitor Snap

CA Nimsoft Monitor Snap CA Nimsoft Monitor Snap Guia de Configuração do Monitoramento do Jboss do Nimsoft jboss série 1.3 Aviso de copyright do CA Nimsoft Monitor Snap Este sistema de ajuda online (o Sistema ) destina-se somente

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

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

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2 Estrutura de Repetição. Ex. 2 A ESTRUTURA Enquanto faça{} É MELHOR UTILIZADA PARA SITUAÇÕES ONDE O TESTE DE CONDIÇÃO (V OU F) PRECISA SER VERIFICADO NO INÍCIO DA ESTRUTURA DE REPETIÇÃO.

Leia mais

Programação para Internet II

Programação para Internet II Programação para Internet II Aulas 01 e 02 Prof. Fernando Freitas Costa http://professor.fimes.edu.br/fernando nando@fimes.edu.br Prof. Fernando 1 Ementa Instalação e configuração básica do NetBeans e

Leia mais

Como sobreviver com Java 2? Saulo Arruda

Como sobreviver com Java 2? Saulo Arruda Como sobreviver com Java 2? Saulo Arruda Agenda Apresentação Contexto do mercado Soluções para Java 5+ Soluções para Java 2 Conclusões Apresentação Saulo Arruda (http://sauloarruda.eti.br) Trabalha com

Leia mais

História e Evolução da Web. Aécio Costa

História e Evolução da Web. Aécio Costa Aécio Costa A História da Web O que estamos estudando? Período em anos que a tecnologia demorou para atingir 50 milhões de usuários 3 As dez tecnologias mais promissoras 4 A evolução da Web Web 1.0- Passado

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

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

Manual de implantação

Manual de implantação Manual de implantação O BioPass ID é um serviço online baseado em nuvem que fornece uma poderosa tecnologia multibiométrica (reconhecimento de impressões digitais e face) para os desenvolvedores de qualquer

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

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

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

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

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação.

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação. GLOSSÁRIO Este glossário contém termos e siglas utilizados para Internet. Este material foi compilado de trabalhos publicados por Plewe (1998), Enzer (2000) e outros manuais e referências localizadas na

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 1: Introdução MEEC@IST Java 1/27 História versões (1) [1995] Versão 1.0, denominada Java Development Kit (JDK) 212 classes em 8 pacotes Lento, muitos bugs, mas com Applets

Leia mais

Argo Navis J931 - Padrões de Design J2EE. Versão 2.0 (setembro de 2003) Objetivos

Argo Navis J931 - Padrões de Design J2EE. Versão 2.0 (setembro de 2003) Objetivos de Projeto J931 J2EE Versão 2.0 (setembro de 2003) Helder da Rocha (helder@acm.org) argonavis.com.br Objetivos Identificar os principais padrões de projeto J2EE Distinguir os principais padrões de projeto

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

Aula 1 - Introdução e configuração de ambiente de desenvolvimento

Aula 1 - Introdução e configuração de ambiente de desenvolvimento Aula 1 - Introdução e configuração de ambiente de desenvolvimento Olá, seja bem-vindo à primeira aula do curso para desenvolvedor de Android, neste curso você irá aprender a criar aplicativos para dispositivos

Leia mais

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Professora: Sheila Cáceres Computador Dispositivo eletrônico usado para processar guardar e tornar acessível informação. Tópicos de Ambiente

Leia mais

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP Anexo VI Edital nº 03361/2008 Projeto de Integração das informações de Identificação Civil 1. Definições de interoperabilidade adotadas pela SENASP A Senasp procura adotar os padrões de interoperabilidade

Leia mais