Java é uma palavra muito comum nos últimos anos, no entanto tremendamente mal compreendida, pois a maioria das pessoas que ouvem este nome pensa numa linguagem de programação. Java é uma plataforma, com muitos conceitos e tecnologias que facilitar e aceleram o desenvolvimento de aplicativos e grandes sistemas. Como parte desta plataforma, existe também uma linguagem de mesmo nome.
Desta forma podemos dizer que a plataforma Java é o nome dado ao ambiente computacional, ou plataforma, criada pela empresa estadunidense Sun Microsystems e vendida para a Oracle depois de alguns anos. A plataforma permite desenvolver aplicativos utilizando qualquer uma das linguagens criadas para a plataforma Java, sendo a linguagem padrão a que leva seu próprio nome: Linguagem Java. Uma grande vantagem da plataforma é a de não estar presa a um único sistema operacional ou hardware, pois seus programas rodam através de uma máquina virtual.
Em outras palavras, JAVA é um conjunto de recursos e funcionalidades, baseados numa especificação, que descreve em detalhes todo o seu funcionamento. Um programa JAVA não será executado diretamente pelo Sistema Operacional, como ocorre com um programa comum, ele será executado por um conjunto de bibliotecas chamado Java Runtime Environment (JRE), formando um ambiente isolado, onde a aplicação irá funcionar normalmente. Normalmente este ambiente isolado é chamado de JAVA Virtual Machine (Máquina Virtual JAVA - JVM).
Um programa padrão, como Microsoft Word, por exemplo, é executado diretamente pelo Windows. Já um programa JAVA não é compreendido pelo Windows, para que ele seja executado, será necessário um intermediador, chamado de JVM. O Windows irá executar a JVM, que por sua vez irá executar o programa JAVA. Caso você queira rodar o mesmo programa feito em JAVA em outro sistema operacional, como exemplo o Linux, basta instalar uma versão do JAVA para o Linux, executar a JVM, que irá ler o seu programa em JAVA, o mesmo que funcionou no Windows, sem requerer nenhuma alteração.
Em outras palavras, que sempre executa o seu programa Java é a JVM, o seu programa não tem acesso direto aos recursos que estão no seu computador, ele faz requisições à JVM, que por sua vez faz a requisição ao sistema operacional. Vamos supor que o programa JAVA gere um resultado num arquivo de texto, para isto o desenvolvedor programou uma rotina para gravar o resultado em disco. O programa Java passa os comandos para a JVM, que é sempre do mesmo modo, pois é Java, é sempre igual. Já a JVM é feita com as particularidades do sistema operacional no qual está rodando, ela recebe o comando do programa JAVA e encaminha para o sistema operacional. Sendo assim, não importa o tipo de sistema operacional que você rode o seu programa, a gravação de arquivos será feita sempre do mesmo jeito.
Agora imagine este imenso potencial da plataforma JAVA, atualmente temos computadores com Windows, Linux, Mac OS X, além de Smart Phones, tablets e tantos outros. Você cria um programa e consegue executá-lo onde quiser. Claro que dentro de certas limitações, um programa muito grande e complexo, que requer muitos recursos, que roda em um computador certamente não ira conseguir rodar num celular. Observe a figura abaixo:
Figura 1
Com isso, um programa Java pode ser criado em um sistema operacional e rodar em outro sem modificações. Para isto basta mudar a JVM, não precisa mudar o programa Java. Isso é uma grande vantagem para o desenvolvedor e principalmente para grandes empresas que não precisam ficar atrelados aos problemas particulares de cada sistema operacional.
O Java pode executar sistemas em várias plataformas de hardware diferentes, celulares, computadores pessoais e em grandes servidores. Com a expansão da utilização do JAVA e a necessidade de atender os mais variados equipamentos, o JAVA evoluiu para três distribuições:
• Java Standard Edition (JSE): Como o nome sugere, e a base da plataforma; incluindo o ambiente de execução e as bibliotecas comuns.
• Java Enterprise Edition (JEE): Criado para suprir a necessidade crescente das grandes empresas, que geralmente utilizam aplicações com interfaces Web. Ela é voltada para aplicações corporativas e para a internet.
• Java Micro Edition (JME): É uma versão reduzida, com o mínimo essencial, para que funcione em sistemas simples, com pouco capacidade de processamento, aparelhos como celulares, dispositivos de ouvir música e afins. É, de modo geral, uma versão simplificada da JSE.
Estas são as principais, existem outras distribuições existentes, porém não serão citadas neste manual.
A plataforma JSE é composta de uma série de bibliotecas e serve como base para o desenvolvimento de aplicações JAVA. Na figura abaixo podemos verificar a quantidade de tecnologia disponível numa distribuição JAVA:
Figura 2
O diagrama acima mostra em detalhes a estrutura de toda a plataforma JSE, agrupadas em três áreas:
1) Java SE API (indicador à direita), que é um conjunto de bibliotecas escritas em Java que são capazes de prover os mais diversos serviços que podem ser utilizados e ter suas funcionalidades estendidas.
2) Java Runtime Environment (indicador à esquerda, na parte interna), ou JRE, que é o ambiente de execução, necessária para a execução de qualquer programa escrito em Java e composto da junção da Java Virtual Machine, ou JVM em conjunto com as bibliotecas presentes na Java SE API.
3) Java Development Kit (indicador à esquerda, na parte externa), que contém uma JRE e uma série de ferramentas para o desenvolvimento de sistemas em Java, como compiladores, ferramentas básicas de diagnósticos, de documentação, entre outras.
Dica:
A maioria das pessoas, quando questionadas sobre JAVA, diz que se trata de uma linguagem de programação, no entanto JAVA é um conjunto de especificações que, quando implementados, formam uma rica biblioteca de funcionalidades. Todas funcionando dentro de um ambiente padrão denominado de Java Virtual Machine (JVM), que irá rodar sempre da mesma forma, independente do hardware utilizado. Desde que a linguagem que estamos programando gere byte code que a plataforma JAVA entenda, não precisamos necessariamente utilizar a linguagem JAVA.
Desta forma JAVA é, de fato, uma plataforma, que adota como padrão uma linguagem homônima, que pode ser trocada por outra linguagem qualquer que também gere byte code.
A Plataforma Java Enterprise Edition (JEE) difere-se da Plataforma Java Standard Edition (JSE) pela adição de bibliotecas que fornecem funcionalidade para desenvolver software Java distribuído, tolerante a falhas e multicamada, baseada amplamente em componentes modulares executando em um servidor de aplicações. A plataforma Java EE, comumente chamada de J2EE, é considerada um padrão de desenvolvimento já que o fornecedor de software nesta plataforma deve seguir determinadas regras se quiser declarar os seus produtos como compatíveis com Java EE. Ela contém bibliotecas desenvolvidas para o acesso a base de dados, acesso via rede, acesso a discos, controle de transações, troca de mensagens, etc. Devido a essas características a plataforma é utilizada principalmente para o desenvolvimento de aplicações corporativas.
Principais funcionalidades que a plataforma JEE oferece:
· Tecnologia Enterprise JavaBeans;
· Java Servlets;
· Java Server Pages (JSP);
· Java Message Service API (JMS);
· Java Mail API / JavaBeans Activation Framework (JAF);
· J2EE Connector Architecture (JCA);
· Java Transaction API (JTA)
· Java Database Connector (JDBC);
· Java Naming and Directory Interface (JNDI);
· Java API for XML Processing (JAXP).
· Java Authentication and Authorization Service (JAAS);
Para ter acesso a todas essas facilidades é necessária a utilização de um servidor de aplicação. Pois uma vez que um sistema é programado, ira utilizar todos os recursos disponíveis no J2EE através do Servidor de aplicações.
Dica:
Este material não irá detalhar os itens acima, recomendamos a leitura de cada um dos itens acima na internet, a compra de algum livro sobre J2EE ou até mesmo algum treinamento. Existe um projeto para criar uma manual semelhante a este sobre J2EE.