Recursos especiais neste artigo:
Conteúdo sobre Novidades
Autores: Marcos de Melo Siega e Everton Coimbra de Araújo
Este artigo apresenta a funcionalidade, agregada à versão 4 do framework Hibernate, que provê mecanismos de suporte à arquitetura Multi-Tenant (vários clientes, logicamente isolados, utilizando os mesmos recursos físicos). Além de demonstrar os aspectos deste novo recurso, expõe-se uma contextualização sobre Hibernate e Multi-Tenancy, e então, ao final, implementa-se um exemplo prático utilizando esta nova funcionalidade.
Em que situação o tema é
útil
Arquitetos de software encontram grandes desafios ao construir modelos
arquiteturais SaaS (Software como serviço, do inglês Software as a Service) que
apresentem uma infraestrutura de dados diferenciada, podendo não contar com
servidores locais e infraestrutura própria, tendo que dispor todos os dados em
um espaço compartilhado. Fatores como estes influenciam diretamente na
capacidade de gerência, monitoramento e até mesmo na segurança dos dados.
Na medida em que a linguagem Java começou a ganhar destaque em ambientes corporativos, notou-se rapidamente que um tempo excessivo era gasto com a codificação de instruções SQL e com código JDBC capaz de interpretá-las.
O processo de desenvolvimento sofre influência direta deste aspecto negativo, pois há uma imensa queda de produtividade quando o desenvolvedor torna-se responsável por criar tais instruções manualmente, cabendo a ele tratar da mudança do paradigma orientado a objetos para o mapeamento objeto relacional e vice-versa. Este procedimento implica na necessidade de escrita de muitas linhas de código, criando um enorme obstáculo para o desenvolvedor, que ficará encarregado de tratar da persistência e recuperação de seus objetos utilizando uma linguagem de consulta estruturada.
A existência desta divergência entre o modelo orientado a objetos e o modelo relacional estimulou o desenvolvimento de mecanismos que contornassem este problema. Uma das principais ferramentas que surgiram, buscando resolver esta incompatibilidade, foi o Hibernate. Este framework aplica técnicas de mapeamento objeto relacional para resolver a dissonância entre os modelos.
Os frameworks de mapeamento objeto relacional, como o Hibernate, permitem mapear a representação dos dados de um modelo de objeto para um modelo de dados relacional e seu respectivo esquema de banco de dados, utilizando arquivos de configuração no formato XML e anotações Java.
Tais ferramentas de ORM, além de tratar da persistência e recuperação dos dados, devem garantir que as informações permaneçam íntegras e seguras, seja qual for a arquitetura de software adotada para a solução. Diante da constante necessidade de garantia destes fatores nos mais variados contextos, a versão 4 do Hibernate oferece suporte para uma das arquiteturas que tem ganhado bastante destaque, denominada Multi-Tenancy. Este novo recurso vai de encontro ao aumento do número de aplicações que estão sendo desenvolvidas voltadas para a nuvem, ou ambientes onde os recursos disponíveis são compartilhados.
Com base nisso, este artigo aborda as principais características deste recurso adicionado ao Hibernate, suas possíveis aplicações e um exemplo simples de como empregá-lo.
Hibernate
O Hibernate é um framework para mapeamento objeto relacional e consulta a bases de dados de código aberto e que é distribuído sob a licença LGPL. Ele assegura a transparência no processo de armazenamento de objetos em bancos de dados relacionais para o desenvolvedor, tirando dele a necessidade de se preocupar com a forma com que estes objetos serão persistidos ou recuperados. Esta transparência permite que o desenvolvedor concentre-se somente nas características e nos problemas a serem resolvidos pela aplicação.
O Hibernate possibilita que os desenvolvedores utilizem a convenção POJO (Objetos Simples em Java, do inglês Plain Old Java Objects) para construir a camada de modelo das aplicações. No entanto, ele não é apenas uma solução ORM, mas sim uma coleção de projetos que fornecem funcionalidades que vão além do mapeamento objeto relacional. Uma dessas funcionalidades é o suporte ao isolamento de dados para os vários clientes de uma aplicação, também conhecido como Multi-Tenancy, sobre o qual abordaremos a partir de agora.
O que é Multi-Tenancy?
Em uma aplicação que atende diversos clientes simultaneamente, é fundamental que uma possível falha na operação de um cliente não afete os demais. Desta maneira, em modelos onde os recursos computacionais são amplamente compartilhados, este cenário requer uma atenção especial.
Para as organizações, mecanismos que garantam a integridade dos dados, seu mais importante acervo, são extremamente importantes. Por este motivo, elas preferem manter seus softwares e bancos de dados instalados em hardwares pertencentes à própria organização, a ter que confiá-los a estruturas inadequadas de fornecedores de hospedagem.
Com o advento da computação em nuvem, e a tendência de novas aplicações operarem e serem disponibilizadas, cada vez mais, por esta tecnologia, modelos arquiteturais adequados que forneçam apoio à integridade dos dados se tornam imprescindíveis.
Diante deste cenário, onde a utilização dos recursos físicos é feita de maneira compartilhada e a garantia de integridade e segurança dos dados é vital, uma solução tem ganhado destaque por permitir o isolamento lógico dos recursos. Esta solução é o modelo chamado de Multi-Tenancy.
...Confira outros conteúdos:
Programação x Concurso Público
Osvaldo aprendeu programação
DevMedia x Netflix: Onde investir meu...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.