Novo em programação Java? Esta página fornece uma visão geral de™ noções básicas de tecnologia Java e explica
como a tecnologia se encaixa no contexto de desenvolvimento de software
moderno. Os links para conteúdo de introdução relevante do developerWorks, outros recursos educacionais,
bem como downloads e produtos IBM, oferecem um excelente ponto de partida para investigação adicional.
Tecnologia Java é uma linguagem de programação e uma plataforma:
A linguagem de programação Java é uma linguagem de alto nível, orientada a objetos. A linguagem não é comum, porque os programas são compilados einterpretados. A compilação, que ocorre uma vez por programa, converte o código Java em uma linguagem intermediária chamada bytecode Java. O bytecode é, por sua vez, analisado e executado (interpretado) pela Java Virtual Machine (JVM) — um conversor entre a linguagem e o sistema operacional e hardware subjacentes. Todas as implementações da linguagem de programação devem emular a JVM, permitindo que programas Java sejam executados em qualquer sistema que tenha uma versão da JVM.
A plataforma Java é uma plataforma apenas de software que é executada sobre várias plataformas de hardware. Ela possui três versões (consulte Várias edições da plataforma Java, abaixo). Consiste na JVM e na Application Programming Interface (API) Java — um grande conjunto de componentes de software (classe) prontos para uso que facilitam o desenvolvimento e implantação de applets e aplicativos. A API Java estende tudo, de objetos básicos à rede e segurança, geração XML e serviços da Web. Está agrupada em bibliotecas— conhecidas comopacotes — de classes e interfaces relacionadas.
Juntamente com a API Java, cada implementação completa da plataforma Java inclui:
Ferramentas de desenvolvimento para compilação, execução, monitoramento, depuração e documentação de aplicativos.
Mecanismos padrão para implantação de aplicativos para usuários.
Kits de ferramentas da interface com o usuário que permitem criar interfaces gráficas com o usuário (GUIs) sofisticadas.
Bibliotecas de integração que permitem que os programas acessem bancos de dados e manipulem objetos remotos.
A JVM também provou ser uma plataforma robusta para execução de linguagens diferentes da linguagem de programação Java. Por exemplo, Groovy, Scala e implementações especiais de Ruby e Python oferecem aos desenvolvedores a versatilidade para programar a JVM em uma linguagem dinâmica ou funcional. (Para obter informações adicionais, consulte Como a tecnologia Java está relacionada às linguagens dinâmicas e programação funcional? abaixo.)
A tecnologia Java foi desenvolvida pela Sun Microsystems. O Java Community Process (JCP), uma organização aberta de desenvolvedores e licenciados Java internacionais, desenvolve e revisa especificações de tecnologia Java, implementações de referência e kits de compatibilidade de tecnologia. Em 2007, a Sun disponibilizou uma grande quantidade de sua tecnologia Java principal como software livre na GNU general public license version 2 (GPLv2). (Para obter informações adicionais, consulte Como a tecnologia Java está relacionada ao desenvolvimento de software livre? abaixo.)
O principal benefício da linguagem Java é a portabilidade de aplicativos Java em plataformas de hardware e sistemas operacionais — possível porque a JVM instalada em cada plataforma entende o mesmo bytecode.
A linguagem Java e a plataforma têm uma escala impressionante. Os aplicativos podem ser facilmente gravados (ou adaptados de aplicativos de desktop Java existentes) para dispositivos com recursos limitados. Em escala, a linguagem é uma estrutura ideal para programação da Web do lado do servidor, estendendo a força de computação do usuário do desktop para os recursos da Web. Como ela foi projetada para execução de maneira segura em redes, a linguagem suporta este nível de segurança ao operar na Internet. Os componentes da Web são suportados por plataformas de tempo de execução chamadas contêineres de Web, cujos serviços incluem o dispatch de pedidos, segurança, simultaneidade, gerenciamento de ciclo de vida e acesso a APIs, tais como, nomenclatura, transações e e-mail. No high end, servidores de aplicativos Java servem como contêineres de Web para componentes Java, XML e serviços da Web que podem interagir com bancos de dados e fornecer conteúdo da Web dinâmico; eles também fornecem um ambiente de implantação de aplicativos para aplicativos corporativos, com recursos de gerenciamento de transações, segurança, armazenamento em cluster, desempenho, disponibilidade, conectividade e escalabilidade.
Saiba mais sobre a filosofia da IBM Arquitetura Orientada a Serviços - SOA e como a SOA ajuda usuários a construir aplicativos compostos que possuem a funcionalidade de várias origens na e além da corporação para suportar processos de negócios horizontais. Para ajudá-lo a começar a usar SOA, a IBM oferece o conceito SOA Entry Points centrado em negócios e em TI.
O Business Process Management da IBM ativado por SOA oferece uma abordagem baseada em componente, abrangente para a mudança estratégica. As ofertas são baseadas em um software flexível, extensível, baseado em padrões abertos — incluindo tecnologia Java— e infraestrutura de hardware.
Projeto Zero é um projeto incubador da IBM focalizado no desenvolvimento rápido de aplicativos da Web 2.0 que seguem a SOA.
Várias edições da plataforma Java
Três edições da plataforma Java facilitam para desenvolvedores de software, provedores de serviços e fabricantes de dispositivos o direcionamento a mercados específicos:
Java SE (Java Platform, Standard Edition). O Java SE permite desenvolver e implantar aplicativos Java em desktops e servidores, bem como ambientes integrados e em tempo real. O Java SE inclui classes que suportam o desenvolvimento de serviços da Web para Java e fornece a base para Java Platform, Enterprise Edition (Java EE). O Java SE 6 ("Mustang") é a versão atual da plataforma Java SE. Muitos desenvolvedores Java usam o Java SE 5, também conhecido como Java 5.0 ou "Tiger."
As colunas Taming Tiger fornecem uma excelente visão geral de Java SE 5. Muitos aplicativos Java existentes são baseados em Java SE 5, e a maioria dos conceitos nesta série são relevantes para a programação Java SE 6.
"Criar Aplicativos Rich com o Script JavaFX" introduz uma linguagem de script que é executada sobre Java SE 6 e facilita a codificação de interfaces com o usuário sofisticadas.
Java EE (Java Platform, Enterprise Edition). A versão corporativa o ajuda a desenvolver e implantar aplicativos Java do lado do servidor transportáveis, robustos, escaláveis e seguros. Construído com base em Java SE, o Java EE fornece APIs de serviços da Web, de modelo de componente, de gerenciamento e de comunicações para implementar aplicativos SOA e da Web 2.0 de classe corporativa.
Java ME (Java Platform, Micro Edition). O Java ME fornece um ambiente para aplicativos em execução em uma grande variedade de dispositivos móveis e integrados, como telefones celulares, PDAs, TV set-top boxes e impressoras. A plataforma Java ME inclui interfaces com o usuário flexíveis, um modelo de segurança robusto, uma grande variedade de protocolos de rede integrados e suporte extensivo para aplicativos em rede e off-line que podem ser transferidos por download dinamicamente. Os aplicativos baseados em especificações Java ME são gravados uma vez para uma grande variedade de dispositivos que já exploram recursos nativos de cada dispositivo.
Saiba mais na abrangente série de quatro partes de dois tutoriais e dois artigos associados que focalizam J2ME e Mobile Information Device Profile (MIDP).
A zona de tecnologia Java do developerWorks mantém um glossário completo das tecnologias de componentes Java padrão. A seguir está uma lista parcial de componentes, pacotes opcionais e extensões para cada edição da plataforma — as partes complexas que formam o todo — completado com uma breve descrição e um link para um recurso para demonstrar seu lugar no mundo de desenvolvimento Java. Observe que muitos dos seguintes recursos estão disponíveis nas três edições.
JavaHelp é um sistema de ajuda independente de plataforma, extensível, que permite que desenvolvedores e autores incorporem a ajuda on-line em applets, componentes, aplicativos, sistemas operacionais e dispositivos e entreguem a documentação on-line baseada na Web. (Consulte "Dê uma mão aos seus aplicativos Java.")
Java Native Interface (JNI) permite que o código Java executado em uma JVM interopere com aplicativos e bibliotecas gravados em outras linguagens de programação. (Consulte "Manipulando eventos de objetos nativos em código Java.")
API Java 2D é um conjunto de classes para gráficos 2D avançados e imagens que fornece suporte extensivo para composição de imagens e imagens de canal alfa, um conjunto de classes para fornecer definição e conversão precisas de espaço de cores e um conjunto de operadores de imagem orientados por exibição. (Consulte o tutorial "Introdução a Java 2D.")
Java Web Start o ajuda a simplificar a implantação de aplicativos Java, permitindo que os usuários façam download e ativem aplicativos com todos os recursos (como planilhas) com um único clique, sem passar por procedimentos de instalação. (Consulte "Java Web Start.")
API de Caminho de Certificação fornece um conjunto de APIs para a criação, construção e verificação de caminhos de certificação (também conhecidos como "cadeias de certificados") para estabelecer seguramente o mapeamento de uma chave pública para um assunto. (Consulte "Gerar cadeias de certificados para testar aplicativos Java.")
Java Database Connectivity (JDBC) é uma API que permite acessar as origens de dados mais tabulares a partir do código Java, fornecendo conectividade entre DBMSs com uma grande variedade de bancos de dados SQL e acesso a outras origens de dados tabulares, tais como, planilhas ou arquivos simples. (Consulte "O que há de novo no JDBC 3.0" e o tutorial "Entendendo o JDBC.")
Java Advanced Imaging (JAI) é uma API que fornece um conjunto de interfaces orientadas a objetos que suportam um modelo de programação simples, de alto nível, que permite que desenvolvedores manipulem imagens facilmente. (Consulte "Controle suas imagens com código JSP.")
Java Cryptography Extension (JCE) é um conjunto de pacotes que fornece uma estrutura e implementações para criptografia, geração de chave e acordo e algoritmos Message Authentication Code (MAC). Fornece suporte à criptografia para códigos simétricos, assimétricos, de bloco e de fluxo, e suporta fluxos seguros e objetos lacrados. (Consulte o tutorial "Segurança Java: Noções básicas de criptografia.")
Java Data Objects (JDO) é uma abstração de modelo Java baseado em interface padrão de persistência que permite que os programadores armazenem diretamente suas instâncias de modelo de domínio Java em armazenamento persistente (banco de dados), possivelmente substituindo tais métodos, como E/S de arquivo direto, serialização, JDBC e Beans de Entidade EJB Bean Managed Persistence (BMP) ou Container Managed Persistence (CMP). (Consulte o tutorial "Java Data Objects Úteis".
Java Management Extensions (JMX) fornece ferramentas para a construção de aplicativos distribuídos, baseados na Web, modulares e dinâmicos para gerenciar e monitorar dispositivos, aplicativos e redes orientadas a serviços. (Consulte "Usando beans de gerenciamento de plataforma Java.")
Java Media Framework (JMF) permite que áudio, vídeo e outras mídias baseadas em tempo sejam incluídas em aplicativos e applets Java. (Consulte o tutorial "Noções básicas de Java Media Framework.")
Java Naming and Directory Interface (JNDI) fornece aplicativos Java com uma interface unificada para vários serviços de nomenclatura e de diretório na corporação, permitindo a conectividade total com serviços de nomenclatura e de diretório corporativos heterogêneos. (Consulte "Otimização de JNDI com força industrial"; tente também "Navegue pelo labirinto de JNDI.")
Java Secure Socket Extensions (JSSE) é um conjunto de pacotes que permite a comunicação segura pela Internet, implementando uma versão Java de protocolos SSL (Secure Sockets Layer) e TLS (Transport Layer Security) e incluindo a funcionalidade para criptografia de dados, autenticação de servidor, integridade da mensagem e autenticação de cliente opcional. (Consulte "Segurança Java com JAAS e JSSE"; tente também o tutorial "Usando JSSE para comunicação de soquete seguro.")
Java Speech API (JSAPI) inclui as especificações Grammar Format (JSGF) e Markup Language (JSML) e permite que aplicativos Java incorporem tecnologia de voz em interfaces com o usuário. JSAPI define uma API de plataforma cruzada para suportar reconhecedores de comandos e de controles, sistemas de ditado e sintetizadores de voz. (Consulte esta seção de "A interface com o usuário de Java 2.")
Java 3D é uma API que pode ser usada por desenvolvedores para incorporar facilmente gráficos 3D escaláveis, independentes de plataforma em aplicativos Java, fornecendo um conjunto de interfaces orientadas a objetos que suportam um modelo de programação simples, de alto nível. (Consulte o tutorial "Passeio de automóvel em Java 3D.")
Metadata Facility permite marcar classes, interfaces, campos e métodos como tendo atributos específicos para que possam ser processados de maneiras especiais por ferramentas de desenvolvimento, ferramentas de implantação ou bibliotecas de tempo de execução. (Consulte "Anotações em Tiger, Parte 1: Incluir metadados em código Java.")
API Java Content Repository é uma API para acessar repositórios de conteúdo em Java SE, independentemente de implementação. Um repositório de conteúdo é um sistema de gerenciamento de informações de alto nível que é um superconjunto de repositórios de dados tradicionais. (Consulte "Introdução à API Java Content Repository.")
Enumerações são um tipo que permite representar partes específicas de dados como constantes, tudo de maneira segura. (Consulte "Introdução a tipos enumerados.")
Utilitários de Simultaneidade são um conjunto de utilitários de nível médio que fornecem a funcionalidade comumente necessária em programas simultâneos. (Consulte o tutorial "Simultaneidade em JDK 5.0.")
Java API for XML Processing (JAXP) permite que aplicativos Java analisem e transformem documentos XML independentemente de uma implementação de processamento XML específica e oferece a flexibilidade de troca entre processadores XML, sem fazer mudanças no código do aplicativo. Java API for XML Binding (JAXB) permite automatizar o mapeamento entre documentos XML e objetos Java. (Consulte o tutorial de três partes "Programação XML em tecnologia Java"; aprofunde-se no JAXP com "Tudo sobre JAXP, Parte 1" e "Tudo sobre JAXP, Parte 2"; explore ainda mais na série de artigos Ligação de dados prática ; confira também a zona XML do developerWorks.)
SOAP with Attachments API for Java (SAAJ) permite que desenvolvedores produzam e consumam mensagens em conformidade com a especificação SOAP 1.1 e a nota SOAP with Attachments. (Leia "Enviar e receber mensagens SOAP com SAAJ".)
JavaMail é uma API que fornece um conjunto de classes abstratas que modelam um sistema de correio. (Consulte o tutorial "Princípios Básicos da API JavaMail.")
Java Message Service (JMS) é uma API que permite o desenvolvimento de aplicativos transportáveis, baseados em mensagens para a plataforma Java, definindo um conjunto comum de conceitos de sistema de mensagens e estratégias de programação para todos os sistemas de mensagens compatíveis com a tecnologia JMS. (Consulte o tutorial "Introdução ao Sistema de Mensagens Java.")
JavaServer Faces (JSF) fornece um modelo de programação que ajuda a projetar aplicativos da Web, montando componentes reutilizáveis da UI em uma página, conectando estes componentes a uma origem de dados do aplicativo e ligando eventos gerados pelo cliente a manipuladores de eventos do lado do servidor. (Consulte o tutorial de duas partes "Introdução a JavaServer Faces" e explore a série de colunas JSF para não adeptos.
JavaServer Pages (JSP) permite que desenvolvedores da Web desenvolvam rapidamente e mantenham facilmente páginas da Web dinâmicas, independentes de plataforma com interfaces com o usuário separadas e geração de conteúdo, para que designers possam alterar o layout da página sem alterar o conteúdo dinâmico. A tecnologia usa tags semelhantes a XML que encapsulam a lógica que gera o conteúdo para a página. (Consulte o tutorial "Introdução à tecnologia JavaServer Pages"; consulte também a série Boas práticas de JSP.)
Standard Tag Library for JavaServer Pages (JSTL) é uma coleta de tags customizadas que permitem muitas funções comuns de Web site em um formato padronizado. (Consulte "Atualize suas páginas JSP com JSTL" e tente a série de artigos de quatro partes "Um manual de JSTL.")
Servlets Java estendem e aprimoram o alcance de servidores da Web, fornecendo um método baseado em componente, independente de plataforma para a construção de aplicativos baseados na Web sem as limitações de desempenho de programas CGI. (O tutorial "Introdução à tecnologia de Servlet Java" deve ajudá-lo a iniciar.)
J2EE Management Specification (JMX) define um modelo de informações de gerenciamento para a plataforma J2EE. O Modelo de Gerenciamento J2EE foi projetado para ser interoperável com muitos sistemas de gerenciamento de protocolos e inclui mapeamentos padrão do modelo no Common Information Model (CIM), em um SNMP Management Information Base (MIB) e no modelo de objeto Java, por meio de um componente EJB residente no servidor, o J2EE Management EJB Component (MEJB). (Consulte "De caixas pretas a corporações: Gerenciamento, estilo JMX 1.1.")
Java Transaction API (JTA) é uma API de alto nível, independente de implementação e de protocolo que permite que aplicativos e servidores de aplicativos acessem transações. Java Transaction Service (JTS) especifica a implementação de um Gerenciador de Transações que suporta JTA e implementa o mapeamento Java da especificação OMG Object Transaction Service (OTS) 1.1 no nível abaixo da API. JTS propaga transações usando o Internet Inter-ORB Protocol (IIOP). (Consulte "Entendendo JTS — Uma introdução a transações.")
Connected Device Configuration (CDC) é uma estrutura baseada em padrões para construção e entrega de aplicativos que podem ser compartilhados entre uma variedade de dispositivos integrados e do consumidor
conectados à rede. (Consulte "Protegendo o J2ME wireless.")
Mobile 3D Graphics API for J2ME (M3G) é uma API de gráficos 3D leve, interativa que fica entre o J2ME e o MIDP como um pacote opcional. (Consulte o artigo de duas partes "Gráficos 3D para dispositivos remotos Java.")
A linguagem Java tem sido a base de desenvolvimento da Web e, nos últimos anos, tem ocorrido uma explosão de estruturas e ferramentas que simplificam o desenvolvimento da Web para Java e facilitam a criação de aplicativos Web 2.0 rich e interativos.
Saiba mais sobre desenvolvimento da Web na linguagem Java:
Ajax, uma metodologia de programação que usa o script do lado do cliente para trocar dados com o servidor da Web, permite atualizações de páginas mais rapidamente sem recarregamentos de várias páginas. Saiba como o Ajax se aplica a você como um desenvolvedor Java no artigo de várias partes "Ajax e o desenvolvimento Java mais simplificado" e a série Ajax para desenvolvedores Java. E visite o Ajax resource center do developerWorks para obter informações adicionais sobre o Ajax.
JavaServer Faces (JSF) fornece um modelo de programação que ajuda a projetar aplicativos da Web, montando componentes reutilizáveis da UI em uma página, conectando estes componentes a uma origem de dados do aplicativo e ligando eventos gerados pelo cliente a manipuladores de eventos do lado do servidor. (Consulte o tutorial de duas partes "Introdução a JavaServer Faces" e explore a série de colunas JSF para não adeptos.
O Eclipse Web Tools Platform (WTP) estende o popular Eclipse IDE com ferramentas para desenvolvimento de aplicativos da Web para Java EE. (Consulte o tutorial "Uma introdução ao Eclipse Web Tools Platform V1.0.")
Uma arquitetura orientada a serviços é um modelo de componente que relaciona as unidades funcionais de um aplicativo (conhecidas como serviços, de agora em diante serviços da Web) por meio de interfaces e contratos bem definidos entre os serviços. A interface é definida de uma maneira neutra, independentemente do hardware, sistema operacional e linguagem de programação nos quais o serviço é implementado, permitindo que serviços construídos em diferentes sistemas interajam uns com os outros de maneira uniforme, universal. As SOAs são um modelo alternativo fracamente acoplado para os modelos mais tradicionais, altamente acoplados, orientados a objetos.
Os serviços da Web resultantes permitem que regras e processos de negócios sejam definidos em XML para que os aplicativos de software possam comunicar-se de uma maneira independente de plataforma e de linguagem de programação. A tecnologia XML torna os dados transportáveis e facilita a criação de mensagens, enquanto a tecnologia Java torna o código transportável. O fato de o XML e a linguagem Java funcionarem bem juntos os tornam uma combinação ideal para construção e implantação de serviços da Web.
A série "Serviços da Web para Java" explora estruturas de serviços da Web para Java e novas camadas de funcionalidade construídas sobre os serviços da Web.
"Construa um serviço da Web RESTful" introduz o elegante estilo arquitetural de serviços da Web chamado Representational State Transfer (REST) e mostra como usar uma estrutura Java para construir serviços da Web RESTful.
Entender o Java APIs para XML-Based RPC (JAX-RPC) é uma etapa importante para gravar serviços da Web de forma eficiente na linguagem Java. O tutorial "Construa um serviço e cliente RPC usando JAX-RPC" é um ótimo local para começar.
Muitos aspirantes a desenvolvedores Java têm uma vasta experiência em outras linguagens. E até mesmo os desenvolvedores Java veteranos concordam que a linguagem de programação Java não é a linguagem ideal para cada necessidade de desenvolvimento. Felizmente, o suporte da JVM para várias linguagens permite que a plataforma Java se beneficie da agilidade e recursos de linguagens de script dinâmicas modernas e de linguagens funcionais para protótipos ou construção de alguns tipos de aplicativos.
Outras estruturas estão modelando a forma de construção de estruturas Java, e os conceitos usados por outras linguagens podem informar sua programação Java. A série de colunas Crossing borders discute conceitos e técnicas de programação que diferem do desenvolvimento Java, mas ainda são altamente relevantes para ele.
A linguagem de script Groovy coloca os recursos e bibliotecas com os quais os desenvolvedores Java estão mais familiarizados em uma estrutura de desenvolvimento ágil, que não requer compilação, facilita construções sintáticas e permite que seus scripts sejam usados em aplicativos Java normais. Obtenha uma visão abrangente do que o Groovy pode fazer na série de colunas Practically Groovy.
A API de script Java, nova no Java SE 6 e compatível com versões anteriores a Java SE 5, oferece uma maneira simples de invocar diversas linguagens de script usando um pequeno conjunto de interfaces e classes concretas. Permite ainda ler e invocar scripts externos no tempo de execução, permitindo alterar o comportamento de um aplicativo em execução. Leia mais sobre ela no artigo de duas partes "Invocar dinamicamente linguagens dinâmicas."
O suporte para linguagens alternativas tem sido um recurso de JVM por algum momento. Confira a série de colunas alt.lang.jre para aprender sobre como usar implementações de Rexx, Ruby, JavaScript, Python e outras linguagens na plataforma Java.
Uma grande quantidade de projetos de software livre estendem a tecnologia Java com bibliotecas, ferramentas, estruturas, aplicativos e servidores de aplicativos para ajudar os programadores a utilizar esta poderosa tecnologia. Várias tecnologias de software livre foram incorporadas na própria plataforma Java, e outras são eternas favoritas (e, em alguns casos, padrões de facto) para desenvolvedores Java.
Saiba mais sobre algumas das proeminentes tecnologias de software livre para programação Java:
A Apache Software Foundation é a organização abrangente para um grande conjunto de projetos de software livre que são predominantemente baseados em linguagem Java. A seguir está uma amostra:
Apache Shale é uma moderna estrutura de desenvolvimento de aplicativos da Web — o sucessor do Apache Struts — baseado na tecnologia JavaServer Pages. (A série de artigos Salve Shale introduz o Shale.)
A ferramenta de construção Apache Maven foi projetada para atender aos desafios de modernos projetos de software, que requerem colaboração dinâmica entre equipes de projetos e dependem de uma combinação de componentes criados e mantidos globalmente. (Consulte o tutorial "Introdução ao Apache Maven".)
O projeto Apache Geronimo está construindo um servidor de aplicativos Java EE totalmente compatível, inteiramente baseado em componentes de software livre. (Conheça o Geronimo em "Introdução ao Geronimo" e visite o Apache Geronimo project resources do developerWorks para obter muitas informações sobre o Geronimo.)
Eclipse é uma plataforma de desenvolvimento aberta com fornecedor neutro e um conjunto de estruturas de aplicativos para a construção de software. A plataforma Eclipse foi gravada na linguagem Java e fornece uma estrutura baseada em plug-in que facilita a criação, integração e uso de ferramentas de software. (A IBM é um membro fundador do Eclipse e participa ativamente do Eclipse.org Board of Stewards e de seus subcomitês ativos.) Saiba mais sobre algumas das tecnologias do componente da plataforma para desenvolvimento Java:
AspectJ é uma extensão orientada a aspectos para a linguagem Java que pode ser usada para modular questões de crosscutting, tais como, criação de log e manipulação de exceção. (Consulte o tutorial "Uma introdução ao AOP" e explore ainda mais em vários artigos na série AOP at work.)
Spring Security — conhecido anteriormente como o Acegi Security System for Spring — é uma solução de segurança eficiente, flexível para aplicativos corporativos desenvolvidos usando o Spring Framework. Saiba mais sobre o artigo de quatro partes "Protegendo aplicativos Java com Acegi".
No processo de software livre para a plataforma Java, a Sun Microsystems distribuiu três novos projetos comunitários abrangentes java.net :
Você pode usar duas rotas para melhorar suas habilidades: fazer um curso (para certificação ou apenas para aprendizado) ou como autodidata (e, é claro, praticar a gravação de código). Além de utilizar o conhecimento de desenvolvedores experientes, o curso ou caminho de certificação pode oferecer uma prova tangível para empregadores prospectivos de que você possui as habilidades necessárias para construir a tecnologia de que eles precisam. E, tentando você mesmo e usando recursos disponíveis, você aprimora suas habilidades em várias áreas de tecnologia Java. Os seguintes recursos devem ajudar qualquer esforço:
As séries Magic with Merlin e Taming Tiger são excelentes referências para aprimorar seus domínios em programação Java.
Convertendo a teoria de design em aplicativo(s) prático(s) é o foco da série Teoria e prática de Java.
Os programadores Java são experientes para projetar aplicativos com detecção de erros e teste integrados. O developerWorks oferece um conjunto de colunas sobre depuração Java (focalizando uma ferramenta conhecida como padrões de erros) chamado Diagnosticando o código Java. Outros artigos úteis neste tópico incluem os artigos Testando com eficiência de Brian Goetz, bem como "Eliminar erros" do mesmo autor.
Escolha entre uma grande variedade de cursos de Java on-line, em classe, baseados em multimídia oferecidos pelo IBM Global Services.
Treinamento de certificação
Se estiver pensando sobre como certificar suas habilidades em Java, você poderá fazer vários exames. Visite o site Java Certification para localizar os recursos de treinamento de certificação.
A IBM oferece certificação profissional em tecnologias relacionadas, como desenvolvimento do WebSphere (para aplicativos Java corporativos), software IBM Rational, DB2, XML e SOA.
Fóruns
Para uma abordagem ainda mais interativa para aprender como usar a linguagem Java, entre nos fóruns de discussão Java, orientados por especialistas conhecidos, com anos de experiência no mundo real em projetos de tecnologia relacionada a Java.
A IBM está na linha de frente como um dos inovadores líderes no uso de tecnologia Java. A seção abaixo realça ferramentas e produtos oferecidos pela IBM para desenvolvedores Java.
Downloads grátis:
O conjunto Kick-start Your Java Apps.— DB2 Express-C, WebSphere Application Server Community Edition e o Eclipse IDE — oferece tudo o que você precisa para executar aplicativos Java para Web e serviços da Web em funcionamento atualmente.
Java Developer Kits são oferecidos pela IBM para criar e testar applets e aplicativos Java SE e aplicativos Java ME em plataformas populares, incluindo Windows, Linux e AIX.
IBM Development Package para Eclipse é uma ferramenta de desenvolvimento baseada em Eclipse não-suportada, que permite que os desenvolvedores construam e executem aplicativos Java com seu ambiente de desenvolvimento prontos para execução e prontos para uso.
Liberação de projetos simultâneos do Eclipse Faça download grátis de pacotes configuráveis de software livre Eclipse no developerWorks, incluindo projetos de liberação simultâneos Callisto e Europa.
Tecnologia Java no alphaWorks é um armazém virtual de emergentes tecnologias Java geradas pela IBM, incluindo APIs, ambientes de desenvolvimento integrados e devkits, componentes, implementações de referência e utilitários. A seguir estão apenas alguns:
Análise e Geração de Arquivo de Construção Ant. Uma ferramenta que ajuda a analisar e gerar um arquivo de construção Ant que pode ser testado para projetos Java EE e SCA desenvolvidos usando Eclipse, Rational ou IDEs WebSphere.
Toolkit para MPEG-4. Um conjunto de classes e APIs Java com aplicativos de amostra para a geração de conteúdo MPEG-4 para uso com dispositivos compatíveis com MPEG-4.
Secure Shell Library para Java. Uma implementação leve do protocolo Internet Engineering Task Force (IETF) Secure Shell (SSH-2) para proteger o log-in remoto e outros serviços de rede seguros em uma rede não-segura.
Fluid Sync. Uma estrutura Java que facilita o desenvolvimento de aplicativos colaborativos e de vários dispositivos.
As ferramentas IBM Rational são construídas na plataforma Eclipse 3.0 e podem facilitar o desenvolvimento, teste e implantação de aplicativos de alta qualidade. As ferramentas Rational para desenvolvedores Java incluem:
Rational Method Composer, uma plataforma de processo de desenvolvimento de software configurável.
Ferramentas de gerenciamento de configuração de software, tais como, ClearCase e ClearQuest.
Rational Application Developer para WebSphere Software, uma ferramenta de desenvolvimento de aplicativos para desenvolver, analisar, testar, determinar o perfil e implantar aplicativos da Web, SOA, Java, J2EE e de portal na plataforma IBM WebSphere.
WebSphere Application Server é um servidor de aplicativos certificado por Java EE com todos os recursos, que entrega a infraestrutura de aplicativos segura, escalável, resiliente de que as corporações precisam para uma arquitetura orientada a serviços. Saiba mais sobre as ferramentas de desenvolvimento Java para a família WebSphere:
Visite a página Novo no WebSphere e o restante dos recursos técnicos do WebSphere do developerWorks para aumentar a velocidade com esta plataforma principal de integração de software da IBM.
WebSphere Enterprise Service Bus fornece conectividade de serviços da Web, sistema de mensagens JMS e integração orientada a serviços para aprimorar sua SOA.
WebSphere sMash é uma plataforma para construir e executar aplicativos dinâmicos baseados na Web 2.0 usando princípios de SOA, baseados no Projeto Zero.
Visite a área de ferramentas de desenvolvimento do WebSphere para obter as informações técnicas e de instruções mais recentes para usar ferramentas do WebSphere para criar, testar e implantar aplicativos Java EE em escala corporativa.
Rational Application Developer para WebSphere Software é uma ferramenta de desenvolvimento rápido de aplicativos para desenvolver, analisar, testar, determinar o perfil e implantar aplicativos da Web, SOA, Java, J2EE e de portal na plataforma WebSphere da IBM.
A zona WebSphere Portal fornece portlets, ferramentas, tutoriais e notícias para desenvolvedores que usam a tecnologia do WS Portal.
WebSphere MQ é um serviço de programação de aplicativos que permite a comunicação de programas de aplicativos.
WebSphere MQ Everyplace permite o acesso a dados corporativos para trabalhadores remotos e dispositivos remotos com entrega de mensagens garantida.
Branch Transformation Toolkit para WebSphere Studio é uma estrutura e um conjunto de ferramentas especializadas baseadas em Eclipse que aceleram a fase de construção para aplicativos transacionais front office com multicamadas.
WebSphere Message Broker entrega um Barramento de Serviço Corporativo avançado, fornecendo conectividade e transformação de dados universais para aplicativos e serviços baseados em padrão e não-padrão para aprimorar SOAs.
O software IBM Information Management é uma poderosa família de servidores relational database management system (RDBMS) juntamente com software para data warehousing, análise de dados, mineração de dados, gerenciamento de ativos de mídia, gerenciamento de conteúdo corporativo e integração de informações. O software IBM Information Management suporta programação Java, incluindo aplicativos clientes, recursos do lado do servidor e ferramentas para facilitar o desenvolvimento e implantação:
DB2 UDB é um ajuste natural para negócios abertos, baseados em padrões.
O software IBM Informix entrega desempenho do banco de dados superior para ambientes com transações intensivas.
O software IBM Information Integration integra e transforma dados melhorando a produtividade, flexibilidade e desempenho, portanto, você tem as informações corretas para seus negócios.