Implementações da Java Virtual Machine (JVM)


Diferentemente do que muita gente pensa, existem diversas implementações da JVM disponíveis.


Uma Java Virtual Machine (JVM) é um programa que se comporta como uma máquina virtual que permite que um computador execute programas Java, bem como programas escritos em outras linguagens que também são compilados para o bytecode Java.


A JVM é detalhada por uma especificação que a descreve formalmente, e assim seja possível a criação de implementações funcionais dela. A existência da JVM garante a interoperabilidade de programas Java em suas diferentes implementações, de modo que os autores de programas que usam o Java Development Kit (JDK) não precisem se preocupar com idiossincrasias da plataforma de hardware subjacente. Escreve uma vez (os programas), rode em qualquer lugar (que tenha uma JVM).


A implementação de referência da JVM é desenvolvida pelo projeto OpenJDK como código-fonte aberto e inclui um compilador JIT (Just In Time) chamado HotSpot. As versões de Java comercialmente suportadas disponíveis na Oracle Corporation são baseadas na OpenJDK.


1 - Azul Zing

A Azul Systems, Inc., desenvolve plataformas de execução para aplicativos baseados em Java. Fundada em março de 2002, a Azul Systems está sediada em Sunnyvale, Califórnia, e tem escritórios em Londres (Reino Unido), São Petersburgo e Novosibirsk (Rússia) e Bangalore (Índia).

A Azul produz o Zing, uma JVM e toda uma plataforma de execução para aplicativos Java. Anteriormente, a empresa era conhecida por seus dispositivos especializado para execução de programas Java (Java Computer Appliance - JCA), chamados de 'Vega'. O Vega é um hardware especializado e projetado para usar recursos de computação específicos para aplicativos Java. A Zing mantém toda uma tecnologia de software desenvolvida especializada para o hardware Vega.

O Zing tornou-se disponível em outubro de 2010. O produto inclui uma ferramenta de gerenciamento e monitoramento e a JVM. O Zing é baseado em uma tecnologia criada pela Azul que permite que os aplicativos Java existentes sejam dimensionados para dezenas de núcleos de CPU e centenas de gigabytes de memória "elasticamente". Ou seja, os recursos podem aumentar e diminuir com base em demandas em tempo real e sem pausas de coleta de lixo, presente em outra JREs (Java Runtime Enviroments).


O Zing é compatível com o padrão Java SE e é baseado no HotSpot da Oracle. Uma JVM típica usa tamanhos de 'heap' estáticos e atinge uma limitação prática de tamanho devido a pausas de coleta de lixo. Mas com a Zing é diferente. Ela implementa uma tecnologia de software de coleta de lixo 'C4' (Continuously Concurrent Compacting Collector), permitindo tamanhos de centenas de GB sem pausas. A Zing também utiliza a tecnologia da Azul para memória elástica, que permite que os 'heaps' de memória para instâncias Java cresçam e diminuam com base na carga. Esse escalonamento de 'heap' dinâmico elimina a necessidade da maioria dos ajustes de JVM e GC (Garbage Collector).


Os Java Computer Appliances (JCAs) da Azul foram projetados para ampliar massivamente os recursos de computação utilizáveis ​​disponíveis para aplicativos Java. Um proxy JVM instalado no sistema existente reimplementa de forma transparente os aplicativos Java no dispositivo Azul, cuja versão mais recente, o Vega 3, pode conter até 864 núcleos de processador e 768 GB de memória.


O Zing é uma excelente JVM, com métricas certificadas e totalmente compatíveis com a especificação Java SE 6, 7 ou 8. O Zing permite que seus aplicativos de produção operem em tempo real. Os aplicativos Java podem escalonar para altos níveis de desempenho com consistência de tempo de resposta sem precedentes e atender aos requisitos mais exigentes de nível de serviço, sem que seja preciso fazer alterações no código ou recompilação. O Zing permite que aplicativos lidem com muito mais usuários e transações na infraestrutura existente. É uma inovação revolucionária que abre novas capacidades de negócios e oportunidades que não são práticas com outras plataformas de software Java.


O Zing é otimizado para implementações de servidores Linux e projetado para aplicativos corporativos e cargas de trabalho que exigem qualquer combinação de memória grande, altas taxas de transação, baixa latência, tempos de resposta consistentes ou alta taxa de transferência sustentada. É a única JVM que elimina as pausas de coleta de lixo para tamanhos de 'heap' grandes.


2- Hotspot

O HotSpot é a principal JVM para desktops e servidores, produzida pela Oracle Corporation. Ele apresenta técnicas como compilação just-in-time e otimização adaptativa projetada para melhorar o desempenho.

Seu nome deriva do fato de que, à medida que executa o bytecode Java, ele analisa continuamente o desempenho do programa em busca de "pontos de acesso" que são executados com frequência ou repetidamente. Em seguida, eles são direcionados para otimização, levando a uma execução de alto desempenho com um mínimo de sobrecarga para um código com desempenho menos crítico. Em alguns casos, é possível que a otimização adaptativa de uma JVM exceda o desempenho do código C++ ou C codificado manualmente.


O HotSpot é um componente central da plataforma Java SE. Ele implementa a especificação da JVM e é entregue como uma biblioteca compartilhada no Java Runtime Environment (JRE). Como o mecanismo de execução do bytecode Java, ele fornece recursos de tempo de execução Java, como sincronização de threads e objetos, em uma variedade de sistemas operacionais e arquiteturas. Inclui compiladores dinâmicos que compila de forma adaptável os bytecodes de Java em instruções de máquina otimizadas e gerencia com eficiência o 'heap' Java usando coletores de lixo, otimizados para tempo de pausa e taxa de transferência baixos. Ele fornece dados e informações para ferramentas e aplicativos de monitoramento e depuração.

O HotSpot é uma JVM "ergonômica". Com base na configuração da plataforma, ele selecionará um compilador, configuração de 'heap' Java e coletor de lixo que produzirão desempenho de bom a excelente para a maioria dos aplicativos. Em circunstâncias especiais, no entanto, ajustes específicos podem ser necessários para obter o melhor desempenho possível.


A Oracle está comprometida com uma comunidade vibrante e participativa que suporta a plataforma Java, Standard Edition (Java SE). A Oracle disponibiliza o download gratuito do Java Development Kit (JDK) e do Java Runtime Environment (JRE), além de continuar o suporte para a implementação de código aberto do Java SE por meio do projeto OpenJDK. Com a aquisição da Sun, a Oracle possui duas importantes implementações de Java Virtual Machine (JVM), a Java HotSpot VM e a Oracle JRockit JVM. No curto a médio prazo, ambos continuarão como JVMs estratégicas com investimento ativo. Com o tempo, a Oracle planeja convergir a funcionalidade e as bases de código dessas JVMs.


3 - IcedTea

O IcedTea é um projeto de construção e integração do OpenJDK lançado pela Red Hat em junho de 2007. O IcedTea-Web é uma implementação de software livre do Java Web Start e do plug-in de navegador da Web Java. O IcedTea-Sound é uma coleção de plug-ins para o subsistema de som Java, incluindo o provedor PulseAudio, que costumava ser incluído no IcedTea. A Free Software Foundation recomenda que todos os programadores Java usem o IcedTea como seu ambiente de desenvolvimento.


Historicamente, o objetivo inicial do projeto IcedTea era fazer o software OpenJDK, que a Sun Microsystems lançou como software livre em 2007, utilizável sem a necessidade de qualquer software proprietário, e assim tornar possível adicionar o OpenJDK ao Fedora e outras distribuições Linux, que insistem em software grátis. Este objetivo foi cumprido, e uma versão do IcedTea baseada no OpenJDK foi empacotada com o Fedora 8 em novembro de 2007.


Abril de 2008 foi a primeira versão de uma nova variante, IcedTea6, que é baseada na versão Sun do OpenJDK6, um fork do OpenJDK com o objetivo de ser compatível com o JDK6 existente. Isso foi lançado no Ubuntu e no Fedora em maio de 2008. O pacote IcedTea nessas distribuições foi renomeado para OpenJDK usando o aviso de marca registrada OpenJDK. Em junho de 2008, a versão do Fedora passou no rigoroso teste TCK da Sun em x86 e x86-64.


O IcedTea 2, a primeira versão baseada no OpenJDK 7, foi lançado em outubro de 2011. O IcedTea 3, a primeira versão baseada no OpenJDK 8, foi lançado em abril de 2016. O suporte para o IcedTea 1 foi abandonado em janeiro de 2017.

4 - OpenJ9

O Eclipse OpenJ9 é uma implementação de JVM escalável e de alto desempenho que é totalmente compatível com a especificação.

O OpenJ9 pôde ser construído como um componente do OpenJDK v8 e posterior, com binários pré-construídos disponíveis no projeto AdoptOpenJDK para várias plataformas, incluindo Linux e Windows.

O OpenJ9 é uma JVM desenvolvida pela IBM e a Fundação Eclipse. Antes J9, o projeto agora migrou para a Fundação Eclipse sob o nome OpenJ9. O OpenJ9 também é um componente principal do kit de desenvolvedor da IBM, que é incorporado em muitos produtos de middleware da IBM, incluindo o WebSphere Application Server e o Websphere Liberty. O OpenJ9 também é um componente do Open Liberty.

A IBM está comprometida publicamente com a inovação na comunidade de desenvolvimento de código aberto. Contribuir com a máquina virtual J9, que tem sido o núcleo do SDK (Software Development Kit), edição Java, da IBM há muitos anos, demonstra esse compromisso. A JVM OpenJ9 é baseada em componentes de tecnologia básica do projeto Eclipse OMR, que foi contribuído pela IBM para a Fundação Eclipse em 2016.


Extensas opções de configuração garantem que a JVM possa ser ajustada para atender aos requisitos de uma ampla gama de aplicativos Java, desde aplicativos corporativos complexos executados em hardware de mainframe até aplicativos de curta duração executados em serviços em nuvem baseados em contêiner.

5 - JRockit

O JRockit, é uma JVM proprietária, originalmente desenvolvida pela Appeal Virtual Machines e adquirida pela BEA Systems em 2002. Ela tornou-se parte do Oracle Fusion Middleware quando da aquisição da BEA Systems em 2008, pela Oracle.

Após a finalização da aquisição da Sun Microsystems, a Oracle anunciou no JavaOne 2010 que os melhores recursos do JRockit seriam implementados no OpenJDK.

Em maio de 2011, a Oracle anunciou que o JRockit ficou livre e confirmou o plano de portar os recursos do JRockit no OpenJDK.


6 - Amazon Corretto


O Amazon Corretto é uma distribuição gratuita, multiplataforma e pronta para produção do Open Java Development Kit (OpenJDK). O Corretto inclui suporte de longo prazo para fornecer aprimoramentos de performance e correções de segurança. A Amazon executa o Corretto internamente em milhares de serviços de produção. Ele é certificado como compatível com o padrão Java SE. Com o Corretto, pode-se desenvolver e executar aplicativos Java em sistemas operacionais populares, incluindo o Linux, o Windows e o macOS.


O Amazon Corretto é fornecido com suporte gratuito de longo prazo da Amazon, o que permite fazer upgrade das versões somente quando necessário. A Amazon está comprometida com o Corretto e o executa internamente em milhares de serviços de produção.


O Amazon Corretto está certificado pelo padrão Java SE e pode ser usado para substituir várias distribuições do Java SE sem modificar os aplicativos. A Amazon disponibiliza atualizações trimestrais que incluem aprimoramentos de desempenho e correções de segurança, essenciais para o desenvolvimento de aplicativos empresariais.


O Amazon Corretto permite executar o mesmo ambiente na nuvem, no ambiente local e em máquinas locais. O Corretto 8 oferece suporte para Linux, Windows, macOS e Docker. O Corretto 11 oferece suporte para Linux, Windows e macOS.


O Amazon Corretto está disponível gratuitamente para download e uso. Não há recursos adicionais pagos nem restrições.


Saiba mais

10 visualizações

© 2005-2020 EzBiz Sistemas

work-with-us-4.gif
  • Instagram ícone social
  • YouTube ícone social
  • Twitter Social Icon
  • LinkedIn Social Icon
  • Facebook Social Icon