Um exemplo de aplicação multi-tenancy com Hibernate Shards

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

Download "Um exemplo de aplicação multi-tenancy com Hibernate Shards"

Transcrição

1 Um exemplo de aplicação multi-tenancy com Hibernate Shards Anderson Fernando Custódio 1, Edson A. Oliveira Junior 2 Resumo. Com o avanço da computação em nuvem, pequenas e grandes empresas tem passado por mudanças no fornecimento de software ao seus clientes. Nesse modelo, o software passa a ser oferecido como serviço (SaaS). Uma forma de implementar SaaS é por meio do modelo arquitetural multitenancy, que permite compartilhar a instância de uma aplicação e banco de dados entre diversos clientes. Implementar multi-tenancy sem a ajuda de um framework pode se tornar uma tarefa difícil. Este artigo apresenta uma revisão bibliográfica para identificar o estado da arte de multi-tenancy e, no final, é apresentado o desenvolvimento de um exemplo de aplicação multi-tenancy utilizando o framework Hibernate Shards o qual diminui consideravelmente a complexidade da implementação e torna o desenvolvimento mais rápido e menos exaustivo. Palavras-chave: Computação em Nuvem, Hibernate Shards, Multi-tenancy, Software como Serviço. Abstract. With the advance of cloud computing, small and large companies have changed their software supply to their customers. In this model, the software is now offered as a service (SaaS). One way to implement SaaS is through the multi-tenancy architectural model, which allows one to share an application instance and database among several customers. Implementing multi-tenancy without the help of a framework can become a hard task. Thus, this paper presents a literature review to identify the state of the art of multitenancy and it is presented the development of an application example using the multi-tenancy framework Hibernate Shards. With this framework implementation complexity is significantly reduced, making development faster and less exhausting. Keywords: Cloud Computing, Hibernate Shards, Multi-tenancy, Software as a Service. 1 Aluno do curso de especialização em Desenvolvimento de Sistemas para Web Universidade Estadual de Maringá (UEM) - Av. Colombo, 5790 Bloco C56 Maringá PR Brasil 2 Departamento de Informática Universidade Estadual de Maringá (UEM) - Av. Colombo, 5790 Bloco C56 Maringá PR Brasil - 1

2 1. Introdução Computação em nuvem ou cloud computing é um modelo que permite acessar recursos (rede, servidores, aplicações, etc.) [1] convenientemente. Esses recursos são fornecidos dinamicamente como serviço, podendo ser acessados por meio da Internet, utilizando um navegador e configurados de acordo com a necessidade do contratante. Diferentemente dos modelos cliente/servidor em que a aplicação é disponibilizada estaticamente como produto [2]. De acordo com o NIST (National Institute of Standards and Technology), cloud computing é classificada em três modelos de serviços: Software como Serviço (SaaS), Plataforma como Serviço (PaaS) e Infraestrutura como Serviço (IaaS) [1]. É no modelo de SaaS (Software as a Service) que é encontrada a abordagem organizacional multi-tenancy ou multi-inquilino. Algumas características de aplicações multi-tenancy são: compartilhamento de recursos de hardware, aplicação e banco de dados [3]. O modelo arquitetural multi-tenancy permite que uma instância da aplicação ou banco de dados, sendo executada em um servidor, possa ser compartilhada entre diversos inquilinos ou tenants, com a garantia de isolamento dos dados [4]. Alguns dos benefícios de um ambiente multi-tenancy são o compartilhamento de recursos e a diminuição de custos. Porém o desenvolvimento de uma aplicação multi-tenancy pode ser uma tarefa complexa e exaustiva sem o uso de algum framework. O objetivo deste artigo é mostrar de forma prática e objetiva, a implementação de uma estratégia multi-tenancy, utilizando a tecnologia Java e o framework Hibernate Shards. O uso desse framework diminui consideravelmente a complexidade do desenvolvimento multi-tenancy, principalmente no que tange ao armazenamento dos dados. 2

3 2. Revisão Bibliográfica 2.1 Cloud Computing Existem diversas definições para cloud computing. Neste artigo será utilizada a definição proposta pelo NIST [1]: computação em nuvem é um modelo que permite acesso configurável a recursos computacionais, fornecidos com o mínimo de esforço ou interação. Assim, o modelo de cloud computing é dividido em cinco principais características, três serviços e quatro modelos de implantação. Como o foco deste artigo é multi-tenancy serão abordadas as principais características e serviços da computação em nuvem utilizando a definição proposta pelo NIST Principais Características Alocação de recursos sob demanda: recursos podem ser adquiridos e configurados pelo consumidor conforme a sua necessidade. Assim, não é necessária a interação humana com cada provedor dos serviços que estão sendo disponibilizados. Amplo acesso a rede: os recursos são disponibilizados na rede e podem ser acessados por meio de diversos dispositivos tais como Smartphones e laptops. Pooling de recursos: em cloud computing os recursos físicos e virtuais são fornecidos sob um modelo multi-tenancy de acordo com a demanda do consumidor. Não há uma noção exata para o usuário de onde os recursos estão localizados, mas geralmente existe a possibilidade do usuário selecionar o local em um alto nível de abstração (país, estado ou datacenter). Elasticidade rápida: é a capacidade de aumentar ou reduzir recursos quando esses não estão sendo utilizados. Tudo feito de forma rápida e normalmente automática, gerando redução de custos para o cliente. Para o provedor dos serviços é muito conveniente, pois permite melhor utilização dos recursos do datacenter. Controle de serviços: sistemas de cloud computing controlam e otimizam automaticamente a utilização dos recursos. Assim, o contratante ou consumidor pode monitorar, controlar e ter acesso a relatórios e recursos de 3

4 logging. Isso permite maior transparência sobre os serviços disponibilizados e utilizados Modelos de Serviços Software como serviço (Software as a Service - SaaS): neste modelo, os sistemas são fornecidos para os usuários por meio da Internet e podem ser acessados geralmente usando um navegador Web. A aplicação e o banco de dados podem ser compartilhados entre os inquilinos, ficando transparente para o usuário final, pois o sistema deve garantir o isolamento dos dados, para que um tenant não acesse os dados de outro. No modelo SaaS o usuário não precisa adquirir licenças de software como acontece no modelo convencional, paga somente pelos recursos que utilizar [6]. Outra característica é que o usuário não controla a infraestrutura como: rede, servidores, sistemas operacionais, mas somente configurações limitadas e específicas do usuário, tais como o tema visual e idioma da aplicação [1, 5, 6]. Exemplos de SaaS são o CRM da Salesforce e o Google Docs [5, 6]. Plataforma como Serviço (Platform as a Service - PaaS): a PaaS fornece uma infraestrutura que permite o desenvolvimento e a execução de aplicações em nuvem [3]. Em tal infraestrutura o desenvolvedor tem um conjunto de ferramentas pré-definidas que são suportadas pela plataforma, tais como linguagem de programação e Sistema Gerenciador de Banco de Dados (SGBD) [1]. Assim como no SaaS, o usuário não tem controle sobre a infraestrutura subjacente. Além disso, o usuário está sujeito a aceitar imposições feitas pela plataforma quanto ao tipo de software que pode desenvolver e qual SGBD pode ser utilizado [6, 7]. Alguns exemplos de PaaS são o Google App Engine [8], Force.com Platform [9] e Windows Azure Platform [10]. Infraestrutura como serviço (Infrastructure as a Service - IaaS): esse modelo fornece toda a infraestrutura para a PaaS e SaaS. Nele o cliente pode controlar recursos como rede, armazenamento e sistema operacional [1]. Um benefício da IaaS é poder solicitar novos servidores virtuais conforme a necessidade, escalando a aplicação horizontalmente [11]. Isso proporciona 4

5 economia para o contratante, por não precisar adquirir hardware mais robusto, como acontece no modelo convencional de infraestrutura. Um exemplo de IaaS é o Amazon Elastic Cloud Computing (EC2) [5]. 2.2 Multi-Tenancy No modelo tradicional de distribuição de software, cada organização tem uma aplicação e um banco de dados sendo executados. Assim, os recursos podem ficar ociosos em grande parte do tempo e, em momentos de pico, podem se tornar insuficientes. Multi-tenancy é um modelo arquitetural que permite que uma instância da aplicação ou banco de dados, possa ser compartilhada entre diversos inquilinos [4]. O tenant é uma entidade organizacional que aluga uma aplicação multitenancy que é fornecida no modelo SaaS. Cada tenant pode ter vários usuários que são os stakeholders da organização [3]. Uma aplicação multi-tenancy deve garantir que os dados de um tenant não estejam visíveis para o outro. Mesmo estando em um ambiente com recursos compartilhados, cada tenant tem a impressão que está em uma aplicação com recursos dedicados. Esse modelo define níveis de maturidade para o isolamento ou compartilhamento para a arquitetura de software e dados. A seguir são descritas as principais abordagens multi-tenancy [12]: Banco de dados separados (Separate database) Esse é o modelo mais simples. Nele a instância da aplicação é compartilhada entre os tenants, cada qual com seu próprio banco de dados. Isso traz um isolamento lógico entre os tenants, permitindo que suas informações fiquem separadas. A Figura 1 apresenta os bancos de dados isolados de cada tentant. 5

6 Figura 1. Um banco de dados distinto para cada tenant [12] A Figura 1 ilustra os tenants de uma aplicação, onde o nome do banco de dados é a palavra "Tenant" seguido do número da sua identificação. Ao cadastrar um tenant o número é incrementado e um novo banco de dados é criado. Ter um banco de dados para cada tenant pode facilitar a extensão do modelo de dados para atender às necessidades específicas do tenant. A restauração dos dados em caso de falha é mais fácil, pois as informações estão separadas em cada banco de dados. Porém, nessa abordagem, o custo de hardware é maior e o arquiteto deve estar atento às possíveis limitações do SGBD, quanto ao número máximo de bancos de dados suportados Esquemas Separados (Separate schema) Nessa abordagem existe somente um banco de dados. Ao cadastrar um novo tenant, é criado um novo esquema no banco de dados com um conjunto de entidades para o referido tenant. A Figura 2 apresenta os esquemas isolados de cada tenant compartilhando o mesmo banco de dados. Figura 2. Modelo de dedicação compartilhada com esquemas separados [12] 6

7 Nesse modelo é criado um esquema para cada tenant,, como é possível ver na Figura 2. Neste exemplo o nome do esquema corresponde à palavra "tenant" seguido do número da sua identificação. Ao cadastrar um tenant na aplicação, o número é incrementado e um novo esquema é criado no banco de dados. Assim como no modelo anterior, esse torna simples a extensão do modelo de dados e ainda permite um grau moderado da lógica de isolamento dos dados. Uma desvantagem é a dificuldade para recuperar os dados em caso de falha, pois a restauração completa do banco de dados vai sobrepor os dados de todos os tenants.. Isso exige uma estratégia de restauração de backups em casos de falhas Esquema Compartilhado (Partitioned data) Nesse e modelo existe somente um banco de dados e o esquema é compartilhado entre todos os tenants. Para isso cada entidade deve conter uma coluna que associe o registro ao tenant apropriado. A Figura 3 ilustra os tenants compartilhando o mesmo esquema do banco de dados. Figura 3. Modelo de dedicação compartilhada com esquemas compartilhados [4] No esquema compartilhado o isolamento dos dados é feito por meio de uma coluna no banco de dados que identifica o tenant. A Figura 3 ilustra esse 7

8 isolamento pela coluna "InquilinoID". Os números desta coluna são as identificações dos tenants da aplicação. Esse modelo tem o menor custo de hardware por permitir maior número de tenants por servidor. Deve ser tomado grande cuidado com a segurança para não permitir que os dados de um tenant se misturem com os de outro, em casos de erros inesperados. A restauração de backup em caso de falhas é similar ao do modelo anterior, devendo ser desenvolvida uma estratégia para recuperação dos dados. 2.3 Hibernate Shards O Hibernate Shards é uma extensão do Hibernate Core que foi desenvolvido por um pequeno time de engenheiros da Google, com a finalidade encapsular e reduzir a complexidade do particionamento horizontal do banco de dados [13]. O engenheiro de software do Google, Max Ross juntamente com Tomislav Nad e Maulik Shah, desenvolveram o Hibernate Shards e passaram a utilizá-lo para uso interno do Google. Após algum tempo o projeto foi doado para a JBoss e passou a ser mantido pela mesma [4]. Uma das facilidades do Hibernate Shards é a integração com o Hibernate Core que permite fácil desenvolvimento do ambiente multi-tenancy. Para aplicações já existentes que utilizam o Hibernate Core, a implementação pode ser feita sem grandes impactos ou refatorações [13]. Segundo a documentação oficial do Hibernate Shards [13], o framework não implementou totalmente a interface Criteria e o suporte à HQL aceita somente queries simples, não podendo utilizar distinct, order by ou agregações. 3. Exemplo de Aplicação Multi-Tenancy com Hibernate Shards Nesta seção é mostrado um exemplo de uso do Hibernate Shards para desenvolver uma solução multi-tenancy considerando dois tenants. A abordagem selecionada é a de bancos de dados separados (Seção 2.2.1). 8

9 Assim, para cada tenant existirá um banco de dados com as respectivas entidades. 3.1 Pré-requisitos Para desenvolver esse exemplo, foi utilizada o IDE NetBeans versão 7.3 e a linguagem de programação Java SE 7. A Figura 4 lista as bibliotecas utilizadas. Figura 4. Bibliotecas utilizadas no desenvolvimento do exemplo Conforme pode-se ver na Figura 4, ao adicionar a biblioteca do Hibernate, o NetBeans insere automaticamente outras bibliotecas que são necessárias para o funcionamento do Hibernate. Já o Driver JDBC é responsável pela conexão com o banco de dados, neste caso foi usado o Driver do PostgreSQL. A única biblioteca que difere de uma configuração padrão do Hibernate, é a do Hibernate Shards, a qual pode ser encontrada no site da JBoss Community, na seção de downloads [14]. 9

10 3.2 Configuração do Hibernate Shards A configuração do Hibernate Shards é muito semelhante à configuração tradicional do Hibernate. Para cada tenant é criado um arquivo de configuração. Abaixo o conteúdo do arquivo de configuração do shard0 (Listagem 1). O mesmo é feito para o shard1. Listagem 1. Arquivo de configuração hibernate0.cfg.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory name="hibernatesessionfactory0"> <property name="dialect">org.hibernate.dialect.postgresqldialect</property> <property name="connection.driver_class">org.postgresql.driver</property> <property name="connection.url"> jdbc:postgresql://localhost:5432/shard0 </property> <property name="connection.username">postgres</property> <property name="connection.password">postgres</property> <property name="hibernate.connection.shard_id">0</property> <property name="hibernate.shard.enable_cross_shard_relationship_checks"> true </property> <property name="hibernate.hbm2ddl.auto">update</property> </session-factory> </hibernate-configuration> Seguindo o código da Listagem 1, deve-se criar um novo arquivo de configuração para o tenant1 com o nome "hibernate1.cfg.xml". No novo arquivo alterar o valor da propriedade "connection.url" para "shard1". Também deve ser alterado o valor da propriedade "hibernate.connection.shard_id" para "1" Classe para a Estratégia de Definição do Shard Ao considerar vários tenants é necessário ter uma estratégia de sharding, que permite identificar o tenant de cada shard. Para isso, é feita uma implementação da interface ShardSelectionStrategy fornecida pelo Hibernate Shards, conforme o código da Listagem 2. 10

11 Listagem 2. Classe ShardSelectionStrategyImpl.java package br.com.config.shard; import br.com.model.entidade.pessoa; import org.hibernate.shards.shardid; import org.hibernate.shards.strategy.selection.shardselectionstrategy; public class ShardSelectionStrategyImpl implements ShardSelectionStrategy public ShardId selectshardidfornewobject(object obj) { if (obj instanceof Pessoa) { return new ShardId(((Pessoa) obj).gettenantid()); throw new IllegalArgumentException(); É importante destacar no código da Listagem 2 a chamada ao método "gettenantid" da classe Pessoa. Este método identifica o tenant e deverá existir em cada entidade. 3.4 Desenvolvendo a Session Factory A classe responsável pela construção da SessionFactory foi desenvolvida conforme é mostrado na Listagem 3. Listagem 3. Classe HibernateUtil.java public class HibernateUtil { private static final SessionFactory sessionfactory = buildsessionfactory(); private static SessionFactory buildsessionfactory() { AnnotationConfiguration config = new AnnotationConfiguration().configure("config/hibernate0.cfg.xml"); config.addannotatedclass(pessoa.class); List shardconfigs = new ArrayList(); shardconfigs.add(buildshardconfig("config/hibernate0.cfg.xml")); shardconfigs.add(buildshardconfig("config/hibernate1.cfg.xml")); Map<Integer, Integer> virtualshardmap = new HashMap<>(); virtualshardmap.put(0, 0); virtualshardmap.put(1, 1); ShardStrategyFactory shardstrategyfactory = buildshardstrategyfactory(); ShardedConfiguration shardedconfig = new ShardedConfiguration( config, shardconfigs, shardstrategyfactory, virtualshardmap); 11

12 return shardedconfig.buildshardedsessionfactory(); public static SessionFactory getsessionfactory() {return sessionfactory; private static ShardConfiguration buildshardconfig(string configfile) { AnnotationConfiguration prototypeconfig = new AnnotationConfiguration().configure(configFile); return new ConfigurationToShardConfigurationAdapter(prototypeConfig); private static ShardStrategyFactory buildshardstrategyfactory() { return new ShardStrategyFactory() public ShardStrategy newshardstrategy(list<shardid> shardids) { ShardSelectionStrategy pss = new ShardSelectionStrategyImpl(); ShardResolutionStrategy prs = new AllShardsShardResolutionStrategy(shardIds); ShardAccessStrategy pas = new SequentialShardAccessStrategy(); return new ShardStrategyImpl(pss, prs, pas); ; Na Listagem 3 o método "buildsessionfactory" faz a leitura dos arquivos de configurações dos tenants (Seção 3.2), em seguida, chama o método "buildshardstrategyfactory" que é responsável por criar as estratégias que controlam o comportamento do sharding. Para obter a sessionfactory é instanciada a classe ShardedConfiguration passando como parâmetros: as configurações dos shards, a ShardStrategyFactory e um map com a identificação dos tenants. 3.5 A Classe Pessoa Em seguida é apresentado o código da classe entidade Pessoa, que será persistida no banco de dados, conforme a Listagem 4. Listagem 4. Classe public class Pessoa implements Serializable { private static final long serialversionuid = GenerationType.AUTO, generator = "pessoa_seq") 12

13 @SequenceGenerator(name = "pessoa_seq", sequencename = "pessoa_seq") private Long id; private String nome; private Integer idade; private int tenantid; //Getters and Setters //Equals and HashCode 3.6 A Classe DAO (Data Access Object) Para facilitar a persistência no banco de dados foi desenvolvido um DAO simples, conforme a Listagem 5. Listagem 5. Classe DAO.java public class DAO<T> { private Session session = null; public void saveorupdate(t objeto) { try { getsession().begintransaction(); getsession().saveorupdate(objeto); getsession().gettransaction().commit(); catch (Exception exception) { rollback(exception, "saveorupdate"); finally { closesession(); private Session getsession() { if (session == null) { session = HibernateUtil.getSessionfactory().openSession(); return session; private void rollback(exception e, String operacao) { if (getsession().gettransaction().isactive()) { getsession().gettransaction().rollback(); System.out.println("Não foi possível executar a operação de " + operacao + ". " + "Erro: " + e.getmessage()); private void closesession() { if (getsession().isopen()) { getsession().close(); 13

14 session = null; A Listagem 5 mostra o funcionamento de um DAO que permite centralizar o código responsável por persistir os objetos no banco de dados. O método "getsession" é responsável por buscar a sessão invocando o método "getsessionfactory" (Seção 3.4). O método mais importante é o "saveorupdate" que abre a transação, insere o objeto e faz o commit no banco de dados. Se algum erro ocorrer, o método "rollback" é chamado e a operação é revertida. No final a sessão é encerrada. 3.7 A Classe Principal do Exemplo Por fim é criada a classe que contêm o método main, responsável por executar a aplicação. Nessa classe existem dois objetos da classe pessoa, que são persistidos no banco de dados quando a aplicação é executada, conforme a Listagem 6. Listagem 6. Classe Main.java public class Main { public static void main(string args[]) { new Main().run(); private void run() { DAO<Pessoa> daopessoa = new DAO<>(); Pessoa pessoa1 = new Pessoa(); pessoa1.setnome("joão"); pessoa1.setidade(30); pessoa1.settenantid(0); daopessoa.saveorupdate(pessoa1); Pessoa pessoa2 = new Pessoa(); pessoa2.setnome("maria"); pessoa2.setidade(25); pessoa2.settenantid(1); daopessoa.saveorupdate(pessoa2); 14

15 A classe "Main.java" listada é responsável por executar o aplicativo. Ao invocar o método "run" é feita uma instância do DAO, em seguida são criados dois objetos do tipo Pessoa. Para cada pessoa é definido um tenant diferente, por meio do método "settenantid". O método "saveorupdate" (Seção 3.6) é chamado e insere os registros nos bancos de dados. 3.8 A Criação do Banco de Dados Para que a aplicação funcione é necessário criar dois bancos de dados com os nomes "shard0" e "shard1". Neste exemplo foi utilizado o PostgreSQL. Com a configuração que foi feita na Seção 3.2, definindo o valor da propriedade "hibernate.hbm2ddl.auto" como "update", o hibernate cria as entidades no banco de dados automaticamente. 3.9 Estrutura dos Arquivos do Exemplo A Figura 5 apresenta a estrutura dos arquivos do exemplo, para facilitar a organização. Figura 5. Estrutura de arquivos do exemplo com hibernate shards 3.10 Considerações sobre a Execução da Aplicação No NetBeans para executar o aplicativo, basta abrir a classe "Main.java" e clicar no botão "Executar Projeto". 15

16 Quando o método "saveorupdate" da classe DAO é chamado, o Hibernate Shards precisa identificar em qual banco de dados deve ser inserido o novo registro. Para isso é invocado o método "selectshardidfornewobject" da classe "ShardSelectionStrategyImpl" (Seção 3.3), que identifica por meio do método "gettenantid" à qual tenant pertence o objeto a ser gravado. Ao executar a aplicação, será feita a inserção da pessoa com nome "João" no banco de dados "shard0", e a pessoa com nome "Maria" será inserida no banco de dados "shard1". 4. Lições Aprendidas Durante o desenvolvimento deste trabalho, foi possível perceber a importância da pesquisa de novas tecnologias e conceitos. Principalmente sobre Cloud Computing e o desenvolvimento e entrega de Software como Serviço, que é uma forte tendência nos últimos anos. Existem vários artigos que trazem informações sobre multi-tenancy, porém pode-se perceber a escassez de material que aborde a implementação. Ao pesquisar sobre o framework Hibernate Shards não foram encontradas muitas soluções implementadas, o que dificultou no desenvolvimento do exemplo da aplicação. 5. Considerações Finais e Trabalhos Futuros Este artigo apresentou o desenvolvimento de um exemplo de aplicação multi-tenancy utilizando o framework Hibernate Shards. Foram mostrados os principais conceitos de cloud computing e seus três modelos de serviço: SaaS, PaaS e IaaS, que permitiram destacar o modelo arquitetural multi-tenancy e suas abordagens. O fornecimento de software como serviço pode trazer muitas vantagens para empresas que desenvolvem software. É muito importante que programadores e engenheiros de software conheçam melhor esse modelo. A 16

17 pesquisa e a construção de um exemplo de aplicação multi-tenancy foi o que motivou o desenvolvimento deste trabalho. Por meio deste artigo e do exemplo considerado, foi possível concluir que o Hibernate Shards atende às necessidades para o desenvolvimento de uma solução multi-tenancy para pequenas aplicações. Sua configuração é muito simples, principalmente se existir conhecimento prévio do Hibernate. É importante destacar que o Hibernate Shards suporta somente queries simples e sua última versão foi lançada no ano de Este artigo forneceu uma visão sobre as principais características sobre o modelo multi-tenancy. Dentre as várias opções de implementação, este trabalho se limitou a desenvolver um exemplo de aplicação multi-tenancy, com a abordagem de bancos de dados separados, utilizando o framework Hibernate Shards. Como direção para possíveis trabalhos futuros tem-se: (i) desenvolver exemplos das outras abordagens multi-tenancy; (ii) estudar a viabilidade da utilização do Hibernate Shards ou do Hibernate 4, que já possuem suporte a multi-tenancy; e (iii) catalogar e comparar os principais frameworks multitenancy para Java. Referências Bibliográficas [1] NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. NIST Cloud Computing Program. Disponível em: <http://www.nist.gov/itl/cloud/index.cfm>. Acesso em: 01 de julho [2] AZAMBUJA JUNIOR, UALTER. "Computação Java nas Nuvens". Java Magazine, 108ª Edição, Editora DevMedia, [3] NETO, JOSINO RODRIGUES. "Desenvolvimento de aplicações multi-tenancy: um estudo de mapeamento sistemático". Recife: UFPE, p. Dissertação (Mestrado) - Programa de Pós-graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, [4] MOREIRA, THIAGO. "Multitenancy e Hibernate Shards". Java Magazine, 92ª Edição, Editora DevMedia, [5] SOUSA, FLÁVIO; MOREIRA, LEONARDO; MACHADO, JAVAM. "Computação em Nuvem: Conceitos, Tecnologias, Aplicações e Desafios". ERCEMAPI 2009, SBC: [6] OLIVEIRA JUNIOR, E. A.; BONINI, R. P. "Desenvolvimento de Sistemas para a Nuvem: como identificar as principais tecnologias de apoio ao ciclo de vida de software". Engenharia de Software Magazine, v. 57, p ,

18 [7] NETO, JOSINO RODRIGUES et al. "Software as a Service: Desenvolvendo Aplicações Multi-tenancy com Alto Grau de Reuso". WEBMEDIA, [8] GOOGLE INC. Google App Engine. Disponível em: <http://code.google.com/intl/pt- BR/appengine/>. Acesso em: 03 de julho [9] SALESFORCE.COM, INC. Social & Mobile Application Development Platform. Disponível em: <http://www.force.com>. Acesso em: 04 de julho 2013 [10] MICROSOFT INC. Windows Azure Platform. Disponível em: <http://www.microsoft.com/windowsazure/pt/br/>. Acesso em: 04 de julho [11] RAMALHO, NEILSON CARLOS LEITE. "Um Estudo Sobre a Adoção da Computação em Nuvem no Brasil". São Paulo: USP, p. Dissertação (Mestrado) - Programa de Pós-graduação em Sistemas de Informação, Escola de Artes, Ciências e Humanidades da Universidade de São Paulo, São Paulo, [12] MICROSOFT INC. "Arquitetura de dados para múltiplos inquilinos". Disponível em: <http://msdn.microsoft.com/pt-br/library/aa aspx>. Acesso em: 01 de agosto [13] JBoss Community. "Hibernate Shards documentation". Disponível em: <http://www.hibernate.org/subprojects/shards/docs>. Acesso em: 06 de maio [14] JBoss Community. "Hibernate Shards Downloads". Disponível em: <http://www.hibernate.org/subprojects/shards/download> Acesso em: 06 de maio

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM Rogério Schueroff Vandresen¹, Willian Barbosa Magalhães¹ ¹Universidade Paranaense(UNIPAR) Paranavaí-PR-Brasil rogeriovandresen@gmail.com, wmagalhaes@unipar.br

Leia mais

O que é Cloud Computing?

O que é Cloud Computing? O que é Cloud Computing? Referência The Economics Of The Cloud, Microsoft, Nov. 2010 Virtualização, Brasport, Manoel Veras, Fev. 2011. 2 Arquitetura de TI A arquitetura de TI é um mapa ou plano de alto

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

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE Andressa T.R. Fenilli 1, Késsia R.C.Marchi 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR Brasil andressa.trf@gmail.com, kessia@unipar.br Resumo. Computação em

Leia mais

CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS

CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS João Antônio Bezerra Rodrigues¹, Claudete Werner¹, Gabriel Costa Silva² ¹Universidade Paranaense (Unipar) Paranavaí

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

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

ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM

ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM Pedro Victor Fortunato Lima, Ricardo Ribeiro Rufino Universidade Paranaense UNIPAR Paranavaí Paraná Brasil pedrin_victor@hotmail.com, ricardo@unipar.br

Leia mais

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE EM APLICAÇÃO JAVA WEB HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este

Leia mais

14/IN01/DSIC/GSIPR 00 30/JAN/12 1/7

14/IN01/DSIC/GSIPR 00 30/JAN/12 1/7 14/IN01/DSIC/GSIPR 00 30/JAN/12 1/7 PRESIDÊNCIA DA REPÚBLICA Gabinete de Segurança Institucional Departamento de Segurança da Informação ORIGEM e Comunicações Departamento de Segurança da Informação e

Leia mais

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina - Sistemas Distribuídos Prof. Andrey Halysson Lima Barbosa Aula 12 Computação em Nuvem Sumário Introdução Arquitetura Provedores

Leia mais

Arquiteturas Paralelas e Distribuídas

Arquiteturas Paralelas e Distribuídas Arquiteturas Paralelas e Distribuídas TSI-6AN Apresentado por: Cleber Schroeder Fonseca 1 CLOUD COMPUTING 2 Cloud Computing A expressão cloud computing (computação nas nuvens) começou a ganhar força em

Leia mais

ADAPTANDO UMA APLICAÇÃO PARA CLOUD: UMA ANÁLISE ENTRE OS ESFORÇOS UTILIZADOS

ADAPTANDO UMA APLICAÇÃO PARA CLOUD: UMA ANÁLISE ENTRE OS ESFORÇOS UTILIZADOS ADAPTANDO UMA APLICAÇÃO PARA CLOUD: UMA ANÁLISE ENTRE OS ESFORÇOS UTILIZADOS Cleverson Nascimento de Mello¹, Claudete Werner¹, Gabriel Costa Silva² ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil

Leia mais

Núvem Pública, Privada ou Híbrida, qual adotar?

Núvem Pública, Privada ou Híbrida, qual adotar? Instituto de Educação Tecnológica Pós-graduação Gestão e Tecnologia da Informação - Turma 25 03/04/2015 Núvem Pública, Privada ou Híbrida, qual adotar? Paulo Fernando Martins Kreppel Analista de Sistemas

Leia mais

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais Computação em Nuvem Computação em nuvem: gerenciamento de dados Computação em nuvem (Cloud Computing) é uma tendência recente de tecnologia cujo objetivo é proporcionar serviços de Tecnologia da Informaçã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 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

Leia mais

João Víctor Rocon Maia Engenharia de Computação - UFES

João Víctor Rocon Maia Engenharia de Computação - UFES João Víctor Rocon Maia Engenharia de Computação - UFES Agenda Quem usa? Conceito Ilustração Vantagens Tipologia Topologia Como fazer? O que é preciso? Infraestrutura Sistema Operacional Software Eucalyptus

Leia mais

Curso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais

Curso de Java. Acesso a banco de dados através do Hibernate. Todos os direitos reservados Klais Curso de Java Acesso a banco de dados através do Hibernate Todos os direitos reservados Klais Motivação Java é uma linguagem orientada a objetos: Numa aplicação, o uso de objetos é um recurso importante

Leia mais

Nuvem UFRGS: IaaS como ferramenta de apoio à pesquisa

Nuvem UFRGS: IaaS como ferramenta de apoio à pesquisa Nuvem UFRGS: IaaS como ferramenta de apoio à pesquisa Éverton Didoné Foscarini, Rui de Quadros Ribeiro Universidade Federal do Rio Grande do Sul Centro de Processamento de Dados Rua Ramiro Barcelos, 2574

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

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

Segurança da Informação

Segurança da Informação INF 108 Segurança da Informação Computação em Nuvem Prof. João Henrique Kleinschmidt Introdução Centralização do processamento Surgimento da Teleinformática Década de 60 Execução de programas localmente

Leia mais

Gestão em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini E-mail: christianezapelini@nwk.edu.br

Gestão em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini E-mail: christianezapelini@nwk.edu.br Gestão em Sistemas de Informação Profa.: Me. Christiane Zim Zapelini E-mail: christianezapelini@nwk.edu.br Gestão em Sistemas de Informação Cloud Computing (Computação nas Nuvens) 2 Cloud Computing Vocês

Leia mais

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte Fernando Seabra Chirigati Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte Introdução Grid x Nuvem Componentes Arquitetura Vantagens

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Persistência Com JPA & Hibernate Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 Mapeamento Objeto-Relacional Contexto: Linguagem de programação orientada a objetos

Leia mais

Cloud Computing. Andrêza Leite. andreza.lba@gmail.com

Cloud Computing. Andrêza Leite. andreza.lba@gmail.com Cloud Computing Andrêza Leite andreza.lba@gmail.com Roteiro O que é cloud computing? Classificação O que está 'por traz' da cloud? Exemplos Como montar a sua? O que é cloud computing? Cloud Computing O

Leia mais

TÍTULO: SEGURANÇA DA INFORMAÇÃO E ESTRUTURA DA SOLUÇÃO DA COMPUTAÇÃO EM NUVEM IMPLANTADA EM UMA EMPRESA DO ESTADO DE SÃO PAULO

TÍTULO: SEGURANÇA DA INFORMAÇÃO E ESTRUTURA DA SOLUÇÃO DA COMPUTAÇÃO EM NUVEM IMPLANTADA EM UMA EMPRESA DO ESTADO DE SÃO PAULO Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3. ISSN 2357-8904 TÍTULO: SEGURANÇA DA INFORMAÇÃO E ESTRUTURA DA SOLUÇÃO DA COMPUTAÇÃO EM NUVEM IMPLANTADA EM UMA EMPRESA

Leia mais

JPA: Persistência padronizada em Java

JPA: Persistência padronizada em Java JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes

Leia mais

UMA VISÃO GERAL DA COMPUTAÇÃO EM NUVEM

UMA VISÃO GERAL DA COMPUTAÇÃO EM NUVEM UMA VISÃO GERAL DA COMPUTAÇÃO EM NUVEM Ederson dos Santos Cordeiro de Oliveira 1, Tiago Piperno Bonetti 1, Ricardo Germano 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil edersonlikers@gmail.com,

Leia mais

Virtualização de Sistemas Operacionais

Virtualização de Sistemas Operacionais Virtualização de Sistemas Operacionais Felipe Antonio de Sousa 1, Júlio César Pereira 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil felipeantoniodesousa@gmail.com, juliocesarp@unipar.br Resumo.

Leia mais

Agenda CLOUD COMPUTING I

Agenda CLOUD COMPUTING I Agenda O que é Cloud Computing? Atributos do Cloud Computing Marcos do Cloud Computing Tipos do Cloud Computing Camadas do Cloud computing Cloud Computing Tendências O Cloud Computing do Futuro Pros &

Leia mais

Palavras-chave: Tecnologia da Informação, Armazenamento, Nuvem, Internet.

Palavras-chave: Tecnologia da Informação, Armazenamento, Nuvem, Internet. 1 COMPUTAÇÃO EM NUVEM Leonardo André Junges 1 Neimar Sierota 2 Palavras-chave: Tecnologia da Informação, Armazenamento, Nuvem, Internet. 1 INTRODUÇÃO Nos dias atuais encontramos tudo ou praticamente tudo

Leia mais

Introdução a Computação nas Nuvens

Introdução a Computação nas Nuvens Introdução a Computação nas Nuvens Professor: Rômulo César Dias de Andrade. E-mail: romulocesar@faculdadeguararapes.edu.br romulodandrade@gmail.com www.romulocesar.com.br PROFESSOR... Mini CV: NOME: RÔMULO

Leia mais

Relatório de Progresso

Relatório de Progresso Luís Filipe Félix Martins Relatório de Progresso Mestrado Integrado em Engenharia Electrotécnica e de Computadores Preparação para a Dissertação Índice Introdução... 2 Motivação... 2 Cloud Computing (Computação

Leia mais

EXIN Cloud Computing Fundamentos

EXIN Cloud Computing Fundamentos Exame Simulado EXIN Cloud Computing Fundamentos Edição Maio 2013 Copyright 2013 EXIN Todos os direitos reservados. Nenhuma parte desta publicação pode ser publicado, reproduzido, copiado ou armazenada

Leia mais

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

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

Computação em Nuvem & OpenStack

Computação em Nuvem & OpenStack Computação em Nuvem & OpenStack Grupo de Pesquisa em Software e Hardware Livre Ação Computação em Nuvem: Charles Christian Miers André Rover de Campos Glauber Cassiano Batista Joinville Roteiro Definições

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

Computação em Nuvens IaaS com Openstack. Eng. Marcelo Rocha de Sá marcelo@jambu.com.br FLISOL - Belém - Pará 25 de abril 2015

Computação em Nuvens IaaS com Openstack. Eng. Marcelo Rocha de Sá marcelo@jambu.com.br FLISOL - Belém - Pará 25 de abril 2015 Computação em Nuvens IaaS com Openstack Eng. Marcelo Rocha de Sá marcelo@jambu.com.br FLISOL - Belém - Pará 25 de abril 2015 Nuvens Computacionais IaaS com Openstack Nuvens Computacionais Serviços em nuvens

Leia mais

Por Antonio Couto. Autor: Antonio Couto Enterprise Architect

Por Antonio Couto. Autor: Antonio Couto Enterprise Architect Cloud Computing e HP Converged Infrastructure Para fazer uso de uma private cloud, é necessário crescer em maturidade na direção de uma infraestrutura convergente. Por Antonio Couto O que é Cloud Computing?

Leia mais

Mapeamento Lógico/Relacional com JPA

Mapeamento Lógico/Relacional com JPA Mapeamento Lógico/Relacional com JPA Elaine Quintino da Silva Doutora em Ciência da Computação pelo ICMC-USP/São Carlos Analista de Sistemas UOL PagSeguro Instrutora Globalcode Agenda! Persistência de

Leia mais

Gerenciamento e Interoperabilidade de Redes

Gerenciamento e Interoperabilidade de Redes EN-3610 Gerenciamento e Interoperabilidade de Redes Computação em Nuvem Introdução Centralização do processamento Surgimento da Teleinformática Década de 60 Execução de programas localmente Computadores

Leia mais

Cloud Computing: Quando a nuvem pode ser um risco para o negócio. Marco Lima aka Mago Enterprise Technology Specialist

Cloud Computing: Quando a nuvem pode ser um risco para o negócio. Marco Lima aka Mago Enterprise Technology Specialist Cloud Computing: Quando a nuvem pode ser um risco para o negócio Marco Lima aka Mago Enterprise Technology Specialist 05 De onde vem o termo nuvem? Business Servidores SAN WAN SAN LANs Roteador NAS Switch

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Banco de Dados. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Banco de Dados. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Banco de Dados Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Roteiro Mapeamento de objetos para modelo relacional Estratégias de persistência Persistência JDBC Mapeando Objetos para o Modelo Relacional

Leia mais

Cloud Computing. Eduardo Roloff

Cloud Computing. Eduardo Roloff Cloud Computing Eduardo Roloff Sumário Conceituação Modelos de Serviços Modos de Implantação Oportunidades de Pesquisa Discussão Conceituação Cloud Computing é um modelo que pretende prover computação

Leia mais

Classificação::Modelo de implantação

Classificação::Modelo de implantação Classificação::Modelo de implantação Modelo de implantação::privado Operada unicamente por uma organização; A infra-estrutura de nuvem é utilizada exclusivamente por uma organização: Nuvem local ou remota;

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

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

Iniciativa CDC RNP. Projeto CDC Piloto Huawei Encontro sobre Computação em Nuvem UNICAMP, 07 de abril de 2014

Iniciativa CDC RNP. Projeto CDC Piloto Huawei Encontro sobre Computação em Nuvem UNICAMP, 07 de abril de 2014 Iniciativa CDC RNP Projeto CDC Piloto Huawei Encontro sobre Computação em Nuvem UNICAMP, 07 de abril de 2014 Sumário Programa de Computação em Nuvem da RNP Iniciativa CDC RNP Estratégia Piloto Huawei Programa

Leia mais

SISTEMA GERENCIAL TRATORPLAN

SISTEMA GERENCIAL TRATORPLAN SISTEMA GERENCIAL TRATORPLAN SIGET Fabrício Pereira Santana¹, Jaime William Dias¹, ², Ricardo de Melo Germano¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil fabricioblack@gmail.com germano@unipar.br

Leia mais

AMBIENTE VIRTUAL DE APOIO AO ALUNO Pesquisa em andamento: resultados preliminares

AMBIENTE VIRTUAL DE APOIO AO ALUNO Pesquisa em andamento: resultados preliminares AMBIENTE VIRTUAL DE APOIO AO ALUNO Pesquisa em andamento: resultados preliminares Denis Lacerda Paes 1 ; Angelo Augusto Frozza 2 RESUMO O trabalho apresentado visa desenvolver uma aplicação baseada em

Leia mais

CLOUD COMPUTING. Andrêza Leite. andreza.leite@univasf.edu.br

CLOUD COMPUTING. Andrêza Leite. andreza.leite@univasf.edu.br CLOUD COMPUTING Andrêza Leite andreza.leite@univasf.edu.br Roteiro O que é cloud computing? Classificação O que está 'por traz' da cloud? Exemplos Como montar a sua? O que é cloud computing? Cloud Computing

Leia mais

Classes de Entidades Persistentes JDB

Classes de Entidades Persistentes JDB Classes de Entidades Persistentes JDB Brasil, Natal-RN, 07 de setembro de 2011 Welbson Siqueira Costa www.jdbframework.com Nota de Retificação: em 11/12/2011 a Listagem 3 desse tutorial sofreu uma pequena

Leia mais

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem Luiz Cláudio Hogrefe Orientador: Prof. Roberto Heinzle, Doutor Roteiro Introdução Fundamentação teórica

Leia mais

Levantamento sobre Computação em Nuvens

Levantamento sobre Computação em Nuvens Levantamento sobre Computação em Nuvens Mozart Lemos de Siqueira Doutor em Ciência da Computação Centro Universitário Ritter dos Reis Sistemas de Informação: Ciência e Tecnologia Aplicadas mozarts@uniritter.edu.br

Leia mais

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS Leandro Guilherme Gouvea 1, João Paulo Rodrigues 1, Wyllian Fressatti 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil leandrog.gouvea@gmail.com,

Leia mais

COMPUTAÇÃO EM NUVEM. Michele Marques Costa 1,2, Julio César2 ¹Universidade paranaense (Unipar)

COMPUTAÇÃO EM NUVEM. Michele Marques Costa 1,2, Julio César2 ¹Universidade paranaense (Unipar) COMPUTAÇÃO EM NUVEM Michele Marques Costa 1,2, Julio César2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil Mih_nai@hotmail.com juliocesar@unipar.br Resumo. Este artigo contém a definição e citação

Leia mais

Bem-vindo à apresentação do SAP Business One.

Bem-vindo à apresentação do SAP Business One. Bem-vindo à apresentação do SAP Business One. Neste tópico, responderemos à pergunta: O que é o Business One? Definiremos o SAP Business One e discutiremos as opções e as plataformas disponíveis para executar

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

O que é Cloud Computing (Computação nas Nuvens)?

O que é Cloud Computing (Computação nas Nuvens)? O que é Cloud Computing (Computação nas Nuvens)? Introdução A denominação Cloud Computing chegou aos ouvidos de muita gente em 2008, mas tudo indica que ouviremos esse termo ainda por um bom tempo. Também

Leia mais

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF Guilherme Macedo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil guilhermemacedo28@gmail.com, jaime@unipar.br Resumo.

Leia mais

ANÁLISE COMPARATIVA DE PLATAFORMAS DE COMPUTAÇÃO EM NUVEM

ANÁLISE COMPARATIVA DE PLATAFORMAS DE COMPUTAÇÃO EM NUVEM ANÁLISE COMPARATIVA DE PLATAFORMAS DE COMPUTAÇÃO EM NUVEM Igor dos Passos Granado¹, Ricardo de Melo Germano¹, Claudete Werner¹, Gabriel Costa Silva² ¹Universidade Paranaense (Unipar) Paranavai PR Brasil

Leia mais

TCM Informática Rua Senador Ivo D'Aquino, 121 Bairro: Lagoa da Conceição 88062-050 Florianópolis, SC Brasil Fone +55 48 3334-8877 Fax +55 48

TCM Informática Rua Senador Ivo D'Aquino, 121 Bairro: Lagoa da Conceição 88062-050 Florianópolis, SC Brasil Fone +55 48 3334-8877 Fax +55 48 1.1 Roteiro para Instalação do Software 1.1.1 Servidor 1.1.1.1 Requisitos de Hardware Servidor de pequeno porte Servidor dedicado: Processador: 500Mhz Memória RAM: 256MB Hard Disk: 20 ou 40GB (7.500rpm)

Leia mais

otimizando níveis de serviço em implantações na nuvem pública

otimizando níveis de serviço em implantações na nuvem pública DOCUMENTAÇÃO TÉCNICA otimizando níveis de serviço em implantações na nuvem pública chaves para o gerenciamento de serviços efetivo agility made possible sumário resumo executivo 3 Introdução: modelos de

Leia mais

Em direção à portabilidade entre plataformas de Computação em Nuvem usando MDE. Elias Adriano - UFSCar Daniel Lucrédio - UFSCar

Em direção à portabilidade entre plataformas de Computação em Nuvem usando MDE. Elias Adriano - UFSCar Daniel Lucrédio - UFSCar Em direção à portabilidade entre plataformas de Computação em Nuvem usando MDE Elias Adriano - UFSCar Daniel Lucrédio - UFSCar III Workshop Brasileiro de Desenvolvimento de Software Dirigido por Modelos

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

GIS Cloud na Prática. Fabiano Cucolo 26/08/2015

GIS Cloud na Prática. Fabiano Cucolo 26/08/2015 GIS Cloud na Prática Fabiano Cucolo 26/08/2015 Um pouco sobre o palestrante Fabiano Cucolo fabiano@soloverdi.com.br 11-98266-0244 (WhatsApp) Consultor de Geotecnologias Soloverdi Engenharia www.soloverdi.com.br.

Leia mais

HIBERNATE Criando um projeto em Java + Hibernate do zero

HIBERNATE Criando um projeto em Java + Hibernate do zero HIBERNATE Criando um projeto em Java + Hibernate do zero SUMÁRIO 1 Instalação do NetBeans 2 Instalação do Java Development Kit (JDK) 3 Criar projeto no NetBeans 4 O arquivo hibernate.cfg.xml 5 Criar as

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

Leia mais

Serviços em Nuvem: Oportunidade para Operadoras Parte III

Serviços em Nuvem: Oportunidade para Operadoras Parte III Serviços em Nuvem: Oportunidade para Operadoras Parte III Este artigo introduz os conceitos de computação em nuvem, Cloud Computing, e a insere no contexto de mercado de serviços ao apresenta-la como uma

Leia mais

Conheça a nova solução de servidor que ajuda pequenas empresas a fazer mais Com menos.

Conheça a nova solução de servidor que ajuda pequenas empresas a fazer mais Com menos. Conheça a nova solução de servidor que ajuda pequenas empresas a fazer mais Com menos. O papel de um servidor Introdução à rede básica Sua empresa tem muitas necessidades recorrentes, tais como organizar

Leia mais

José Benedito Lopes Junior ¹, Marcello Erick Bonfim 2

José Benedito Lopes Junior ¹, Marcello Erick Bonfim 2 ISBN 978-85-61091-05-7 Encontro Internacional de Produção Científica Cesumar 27 a 30 de outubro de 2009 Definição de uma tecnologia de implementação e do repositório de dados para a criação da ferramenta

Leia mais

Padrão Arquitetura em Camadas

Padrão Arquitetura em Camadas Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização

Leia mais

SISTEMA GERENCIADOR DE BANCO DE DADOS

SISTEMA GERENCIADOR DE BANCO DE DADOS BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SISTEMA GERENCIADOR

Leia mais

CLOUD COMPUTING PEDRO MORHY BORGES LEAL. MAC0412 - Organização de Computadores Prof. Alfredo Goldman 7 de dezembro de 2010

CLOUD COMPUTING PEDRO MORHY BORGES LEAL. MAC0412 - Organização de Computadores Prof. Alfredo Goldman 7 de dezembro de 2010 CLOUD COMPUTING PEDRO MORHY BORGES LEAL MAC0412 - Organização de Computadores Prof. Alfredo Goldman 7 de dezembro de 2010 0 CLOUD COMPUTING 1 1. Introdução Com o grande avanço da tecnologia de processadores,

Leia mais

Resolvendo objeto-relacional impedance mismatch com hibernate

Resolvendo objeto-relacional impedance mismatch com hibernate Resolvendo objeto-relacional impedance mismatch com hibernate August 7, 2013 Sumário I 1 Introdução 2 3 4 Sumário II 5 Contexto Mapeamento Objeto-Relacional (ORM) é uma técnica de programação para converter

Leia mais

TRIBUTAÇÃO NAS NUVENS Uma Regulação em Debate

TRIBUTAÇÃO NAS NUVENS Uma Regulação em Debate TRIBUTAÇÃO NAS NUVENS Uma Regulação em Debate Workshop Divisão Tributária 18.04.2013 CIESP - CAMPINAS PROGRAMA 1. BREVE INTRODUÇÃO À COMPUTAÇÃO EM NUVEM 2. PRINCIPAIS OPERAÇÕES E ASPECTOS TRIBUTÁRIOS POLÊMICOS

Leia mais

Patrício Domingues Dep. Eng. Informática ESTG Instituto Politécnico de Leiria Leiria, Maio 2011 http://bit.ly/patricio

Patrício Domingues Dep. Eng. Informática ESTG Instituto Politécnico de Leiria Leiria, Maio 2011 http://bit.ly/patricio Patrício Domingues Dep. Eng. Informática ESTG Instituto Politécnico de Leiria Leiria, Maio 2011 http://bit.ly/patricio 1 Velocidade... Pesquisar Cloud computing 76 milhões resultados em 0,06 segundos Isto

Leia mais

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade

Leia mais

Cloud Computing O novo paradigma de Custeio. Anderson Baldin Figueiredo Consultor

Cloud Computing O novo paradigma de Custeio. Anderson Baldin Figueiredo Consultor Cloud Computing O novo paradigma de Custeio Anderson Baldin Figueiredo Consultor O momento da 3ª. Plataforma $$$$$ $ Conceituando Cloud Computing Mas o que significa cloud computing mesmo? Cloud = Evolução

Leia mais

WebApps em Java com uso de Frameworks

WebApps em Java com uso de Frameworks WebApps em Java com uso de Frameworks Fred Lopes Índice O que são frameworks? Arquitetura em camadas Arquitetura de sistemas WEB (WebApps) Listagem resumida de frameworks Java Hibernate O que são frameworks?

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

RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO

RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE Elio Lovisi Filho 1 Ronney Moreira de Castro 2 RESUMO Revista Eletrônica da Faculdade Metodista Granbery http://re.granbery.edu.br - ISSN 1981 0377 Curso de Sistemas de Informação - N. 10, JAN/JUN 2011 RELACIONAMENTOS ENTRE OS OBJETOS NO FRAMEWORK HIBERNATE

Leia mais

TUTORIAL: DESENVOLVIMENTO DE APLICAÇÕES COM O HIBERNATE NO NETBEANS

TUTORIAL: DESENVOLVIMENTO DE APLICAÇÕES COM O HIBERNATE NO NETBEANS TUTORIAL: DESENVOLVIMENTO DE APLICAÇÕES COM O HIBERNATE NO NETBEANS Glauber da Rocha Balthazar, Fábio Mendes Ramos Guimarães, Melise Maria Veiga de Paula, Elio Lovisi Filho Bacharelado em Sistemas de Informação

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Exemplos práticos do uso de RMI em sistemas distribuídos

Exemplos práticos do uso de RMI em sistemas distribuídos Exemplos práticos do uso de RMI em sistemas distribuídos Elder de Macedo Rodrigues, Guilherme Montez Guindani, Leonardo Albernaz Amaral 1 Fábio Delamare 2 Pontifícia Universidade Católica do Rio Grande

Leia mais

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

Uso Estratégico da Tecnologia da Informação nos Negócios Tendências e Oportunidades

Uso Estratégico da Tecnologia da Informação nos Negócios Tendências e Oportunidades Uso Estratégico da Tecnologia da Informação nos Negócios Tendências e Oportunidades Danilo Pereira, Msc. Apresentação Graduação em Ciência da Computação (1997) Mestre em Eng. Produção UFSC Mídia e Conhecimento

Leia mais

Transformação da Indústria

Transformação da Indústria Conceitos Transformação da Indústria Hoje Cloud Anos 2000 Web Anos 1990 Cliente / Servidor Anos 1970 e 80 Mainframe Novas possibilidades O momento atual do país é favorável para que as empresas passem

Leia mais

Universidade Federal do Ceará Centro de Ciências Departamento de Computação Mestrado e Doutorado em Ciência da Computação

Universidade Federal do Ceará Centro de Ciências Departamento de Computação Mestrado e Doutorado em Ciência da Computação Universidade Federal do Ceará Centro de Ciências Departamento de Computação Mestrado e Doutorado em Ciência da Computação MyDBaaS: Um Framework para o Monitoramento de Serviços de Banco de Dados em Nuvem

Leia mais

Startups e Computação em Nuvem: A Combinação Perfeita

Startups e Computação em Nuvem: A Combinação Perfeita Universidade Federal do Ceará Startups e Computação em Nuvem: A Combinação Perfeita Flávio R. C. Sousa flaviosousa@ufc.br @flaviosousa www.es.ufc.br/~flavio 2013 Introdução 2,7 bilhões de usuários na internet

Leia mais

Google App Engine. André Gustavo Duarte de Almeida. Computação Ubíqua e Nuvens. Natal, 24 de maio de 2012 andregustavoo@gmail.com

Google App Engine. André Gustavo Duarte de Almeida. Computação Ubíqua e Nuvens. Natal, 24 de maio de 2012 andregustavoo@gmail.com Google App Engine Natal, 24 de maio de 2012 andregustavoo@gmail.com Sumário Introdução Instalação Aplicação Exemplo Implantação Conclusão Introdução Google App Engine developers.google.com/appaengine Permite

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

Computação em Grid e em Nuvem

Computação em Grid e em Nuvem Computação em Grid e em Nuvem Computação em Nuvem Molos 1 Definição Um grid computacional é uma coleção recursos computacionais e comunicação utilizados para execução aplicações Usuário vê o grid como

Leia mais