[figure] Technology landscape
[figura] Copo de café.

Java Enterprise Edition

A plataforma para o software enterprise-class

A crescente dependência das empresas e dos seus processos de infra-estruturas de software determinou um conjunto de características que levou a definição do software de classe empresarial.

As principais necessidades que um software empresarial deve atender são: robustez, escalabilidade, flexibilidade, interoperabilidade.

[figura] Conector USB estilizado com cabo distorcido.

As arquiteturas multicamadas foram, nos últimos anos, a melhor resposta para as exigências da empresa, proporcionando solidez e, ao mesmo tempo, capacidade de rápida adaptação de suas soluções. A idéia que está por trás das arquiteturas multicamadas é que por meio da disjunção entre os storage de dados, as lógicas de negócios e a apresentação dos dados (mais genericamente a interação homem/maquina) pode-se ter um ganho na centralização das aplicações em data-centers dotados de infra-estrutura apropriada, atingindo assim a robustez necessária para aplicações emporesariais. Flexibilidade, tendo as lógicas de negócios definidas dentro de componentes responsáveis pela execução dos processos e que rodam em pontos centralizados hospedados por servidores de aplicação; Escalabilidade, podendo tais componentes ser distribuídos em vários servidores permitindo que a carga de processamento seja dividida em um modelo de crescimento potencialmente ilimitado.

Gerenciar a comunicação entre as várias camadas e a concorrência da atividade dos componentes é está longe de ser algo banal. Este modelo evidencia a necessidade de uma plataforma que forneça os serviços de base em cima dos quais os desenvolvedores criarão as aplicações. Esta, de forma muito simplificada, é a função da plataforma Java EE.

Java Enterprise Edition define padrões para o desenvolvimento de aplicações empresariais multicamada, permitindo o desenvolvimento de tais aplicações em termos de componentes modulares padronizados e fornecendo um conjunto de serviços para estes componentes, gerenciando todas as exigências de base sem a necessidade de programação complexa por parte do desenvolvedor.

[figura] Homem falando ao telefone.

Observe que a definição fornecida fala de padrões e não de produto. Isto é, qualquer software vendor pode desenvolver uma plataforma Java EE desde que respeite as especificações dadas.

Isso garante independência e portabilidade das aplicações, podendo, por exemplo, rodar de forma equivalente em ambientes Unix, Linux e Windows ou qualquer outro, desde que exista uma plataforma Java EE compatível para estes ambientes.

Após a introdução das arquiteturas multicamadas (três ou mais), as exigências de interoperabilidade e integração entre a empresa e seus parceiros (incluindo fornecedores e clientes), levaram à introdução das arquiteturas orientadas aos serviços (SOA) que na maioria das vezes apresentam-se sob a forma de Web Services. Ou seja, aplicações que expõem as próprias funcionalidades por meio de serviços e que podem ser acessados por outras aplicações (operantes em ambientes completamente separados) por meio do protocolo SOAP através de chamadas e respostas HTTP a um URL específico.

Java EE oferece pleno suporte à tecnologia de Web Services por meio da inclusão do WS-I Basic Profile, que permite ao desenvolvedor em ambiente Java EE, criar aplicações baseadas em Web Services que interagem com outros Web Services operantes em ambiente não Java EE.

A Contribuição IRIDE

[figura] Mao escrevendo caracteres no ar com caneta especial.

Os especialistas da Iride acompanham a evolução e o desenvolvimento das arquiteturas Java EE podendo contar sobre anos de experiência e diversos casos no desenvolvimento, planejamento arquitetural e deploy de aplicações em ambiente Java EE. Tendo as competências para auxiliar as empresas, seja no desenvolvimento de aplicações multicamadas, seja na migração ou evolução, no sentido de aplicações baseadas sobre Web Services e SOA.