Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços White paper Oracle Atualizado em Junho de 2008 Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços Introdução.......................................................................................................................... 3 Oracle e o Java Platform, Enterprise Edition 5.................................................................. 4 Melhor Lógica de Negócios para o SOA........................................................................... 5 O EJB 3.0 Elimina Tarefas .................................................................................... 6 Anotações Fazem todo o Trabalho......................................................................... 6 Descritores de Implantação Ficaram Simplificados ............................................. 7 O Oracle WebLogic Server Implementa o EJB 3.0 com Pitchfork ....................... 7 Persistência agilizada para o SOA..................................................................................... 8 Suporte para JPA e JDO ........................................................................................ 9 Implementação com Alta Performance.................................................................. 9 Oracle TopLink................................................................................................................ 10 Melhor Processamento de Web Services......................................................................... 11 Interfaces da Web Melhoradas........................................................................................ 12 Implantação e Gerenciamento de SOA em Nível Corporativo........................................ 12 Conclusão........................................................................................................................ 14 Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 2 Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços INTRODUÇÃO A arquitetura orientada a serviços (SOA) iniciou uma revolução na tecnologia da informação. A implantação de pacotes coerentes de funcionalidade de software como serviços agrupados com baixo acoplamento proporciona uma melhora radical na flexibilidade dos aplicativos, permitindo que as empresas adaptem constelações de serviços continuamente, mantendo o alinhamento entre os recursos de TI e os objetivos de negócios. A Oracle é a líder quando se trata de ajudar as empresas a aproveitar os benefícios do SOA com Java. Com o Oracle WebLogic Server, a Oracle fornece um sólido alicerce para o SOA, baseado no Java Platform, Enterprise Edition 5 (Java EE 5). O Oracle WebLogic Server é extremamente fácil de usar desde o início e oferece confiabilidade, disponibilidade, escalabilidade e desempenho de nível corporativo. Os clientes podem fazer o upgrade dos serviços existentes rapidamente e gerenciá-los com poderosas ferramentas de configuração, implantação e gerenciamento. Eles também podem aproveitar a integração a outros produtos Oracle Fusion Middleware, bem como a experiência de seus desenvolvedores com tecnologias de código aberto, como o Spring Framework. Este documento discute como o Java EE 5 acelera drasticamente o desenvolvimento dos aplicativos SOA e como os desenvolvedores empresariais podem aproveitar seu poder usando o Oracle WebLogic Server. Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 3 ORACLE E O JAVA PLATFORM, ENTERPRISE EDITION 5 A Oracle é a líder quando se trata de ajudar as empresas a aproveitar os benefícios do SOA com Java. A empresa detém a maior participação no mercado mundial de servidores de aplicação Java, de acordo com as empresas de pesquisa Gartner e IDC. É líder também em satisfação do desenvolvedor, de acordo com uma pesquisa recente da Evans Data Corporation, e em desempenho no benchmark SPECjAppServer2004. A Oracle é a líder quando se trata de ajudar as empresas a aproveitar os benefícios do SOA com Java. A empresa detém a maior participação no mercado mundial de servidores de aplicação Java, de acordo com as empresas de pesquisa Gartner e IDC.2 É líder também em satisfação do desenvolvedor, de acordo com uma pesquisa recente da Evans Data Corporation3, e em desempenho no benchmark SPECjAppServer2004. A Oracle construiu essa liderança com anos de incansável inovação em SOA. Uma de suas inovações mais recentes é o Java Platform, Enterprise Edition 5 (Java EE 5). Esse padrão apresenta melhorias radicais tanto na lógica de negócios quanto na persistência dos objetos. O Enterprise JavaBeans (EJB) 3.0 simplifica a programação de lógica de negócios rica, enquanto a Java Persistence API (JPA) torna mais fácil conectar essa lógica aos dados de registro correspondentes. O aprimoramento nos conjuntos de aplicativos da Web e Web Services torna a composição de aplicativos úteis a partir dos serviços mais fácil do que nunca. Como um todo, o Java EE 5 simplifica o desenvolvimento de SOA sem sacrificar o poder. Como mostra a Figura 1, a Oracle desempenhou um papel crucial no fornecimento das melhorias ao Java EE 5, avaliando os requisitos dos clientes e identificando a necessidade de simplificação. Então, fez contribuições importantes durante o desenvolvimento da especificação do EJB 3.0 e contribuiu para melhorias no processamento dos Web Services por meio de mecanismos como o Streaming API para XML. O mais importante é que a Oracle foi o primeiro fabricante comercial a apresentar uma implementação do Java EE 5 pronta para produção: o Oracle WebLogic Server. Figura 1: novas ferramentas de produtividade para desenvolvedores no Java EE 5 ________________________ 1 “Market Share: AIM and Portal Software, Worldwide 2005”, pesquisa da Gartner (junho de 2006). 2 “Worldwide Application Server Software 2006–2010 Forecast and 2005 Vendor Shares”, IDC (dezembro de 2006). 3 “Developers’ Choice Application Servers—2006 User Rankings”, Evans Data Corporation (outubro de 2006). Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 4 Clientes existentes do Oracle WebLogic Server já valorizam o compromisso da Oracle com o suporte a iniciativas de SOA de missão crítica. Entretanto, a versão mais recente do Oracle WebLogic Server oferece ainda mais com essa plataforma comprovada: os clientes podem criar serviços mais rapidamente, compô-los com maior facilidade e gerenciá-los com mais eficácia. Para as organizações que querem recursos de nível corporativo para seus desenvolvedores, esta solução é a escolha mais óbvia como a mais moderna, robusta e poderosa plataforma de SOA baseada em Java. Figura 2: Oracle WebLogic Server MELHOR LÓGICA DE NEGÓCIOS PARA SOA Em um ambiente SOA, diferentes serviços podem operar em níveis de abstração diferentes. Para as empresas, alguns dos serviços mais importantes, que geralmente correspondem a tarefas de âmbito comercial, podem incluir “verificar pontuação de crédito” no domínio de processamento de empréstimos, “provisionar conta” no domínio de telefonia celular e “enviar fatura” no domínio de contas a receber. Obviamente, a implementação de tais serviços requer algum tipo de modelo de software para o domínio correspondente. O EJB 3.0 isola totalmente os desenvolvedores do trabalho braçal. Em grande parte, os EJBs podem ser tratados como objetos Java comuns, simplificando drasticamente o desenvolvimento. Com essa abordagem agilizada, os desenvolvedores podem finalmente usar o EJB para implementar uma grande variedade de modelos de domínio que suportam os serviços empresariais mais importantes. O objetivo original do EJB era fornecer a infraestrutura para criar ricos modelos de domínio que pudessem suportar processos de negócios sofisticados. Beans de entidade manipulavam dados e implementavam o comportamento das entidades de domínio, como proposta de empréstimo, cliente e pedido de compra. Um portfólio de beans de sessão coordenava as interações das entidades para executar os processos de cada domínio – por exemplo, “avaliar empréstimo”, “inscrever cliente” e “pagar fornecedores”. Em muitos casos, versões anteriores do EJB se mostravam complexas demais para suportar essa abordagem. A API expunha muitos dos mecanismos necessários para assegurar a execução robusta de processos de domínio. Para criar modelos de domínio eficazes, geralmente são necessárias muitas idas e vindas em um ciclo que inclui protótipo, testes e refinamento. Ao forçar os desenvolvedores a se preocuparem com o trabalho subjacente durante esse ciclo, os EJBs se tornavam muito complicados de usar em muitos projetos. Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 5 Em contrapartida, o EJB 3.0 isola totalmente os desenvolvedores do trabalho braçal. Em grande parte, os EJBs podem ser tratados como objetos Java comuns, simplificando drasticamente o desenvolvimento. Com essa abordagem agilizada, os desenvolvedores podem finalmente usar o EJB para implementar uma grande variedade de modelos de domínio que suportam os serviços empresariais mais importantes. O EJB 3.0 Elimina Tarefas As mudanças no EJB 3.0 afetam principalmente como os desenvolvedores interagem com as facilidades do container. Com exceção da persistência, essas mudanças não afetam significativamente as facilidades em si. Em versões anteriores do EJB, os desenvolvedores tinham de realizar tarefas pesadas para interagir com o container. A primeira grande tarefa era implementar todas as interfaces necessárias, que exigia a criação de interfaces iniciais, locais e remotas, bem como a implementação da interface correspondente ao tipo do EJB. Para as interfaces inicial e remota, o desenvolvedor precisava lidar com todas as exceções necessárias. Os Beans de Entidade também exigiam métodos localizadores. A etapa final era implementar todos os métodos do ciclo de vida para a interface EJB aplicável. A segunda grande tarefa era escrever consultas em JNDI (Java Naming and Directory Interface) para adquirir referências de recursos. Modelos de domínio ricos naturalmente têm muitos relacionamentos entre seus elementos. Cada relacionamento, assim como qualquer referência a recursos de infraestrutura, exigia código de consulta. O EJB 3.0 elimina ambas as tarefas. Os desenvolvedores escrevem EJBs como POJOs (plain old Java objects ou objetos Java antigos e simples). Eles interagem com as facilidades do container adicionando anotações simples e declarativas ao código do POJO. O container se encarrega das tarefas necessárias, permitindo que os desenvolvedores se concentrem em criar modelos de domínio. Anotações Fazem todo o Trabalho O Java EE 5 inclui anotações correspondentes para outros tipos de EJBs. Além disso, em vez de implementar métodos do ciclo de vida, os desenvolvedores podem criar novas instâncias, como com qualquer outro POJO. Para os beans de entidade, há até mesmo anotações para o caso comum de especificar um identificador gerado automaticamente como chave principal e depois executar consultas usando essa chave. Além de controlar EJBs, o Java EE 5 também inclui várias anotações para simplificar o acesso à segurança, persistência e facilidades dos Web Services. Como mencionado, as anotações são a principal inovação que melhora a experiência do desenvolvedor com o EJB 3.0. A Oracle foi uma das pioneiras no uso de anotações e trabalhou para ampliar seu uso no Java EE. Se um desenvolvedor pode especificar de forma não ambígua o que é para ser feito, por que não simplesmente cuidar disso automaticamente? Por exemplo, suponha que um desenvolvedor que está trabalhando no domínio de processamento de empréstimos queira escrever um cliente para um bean de sessão sem estado que execute processamento de empréstimos. Em vez de toda a implementação da interface e do código de consulta JNDI necessários com as versões anteriores do EJB, o desenvolvedor simplesmente escreveria import loanprocessor.LoanProcessor @Stateless public class LoanProcessorClient { @Inject LoanProcessor … } Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 6 A notação @Stateless substitui a definição manual da interface remota, enquanto a anotação @Inject-substitui uma consulta JNDI manual. O Java EE 5 inclui anotações correspondentes para outros tipos de EJBs. Além disso, em vez de implementar métodos do ciclo de vida, os desenvolvedores podem criar novas instâncias, como com qualquer outro POJO. Para os beans de entidade, há até mesmo anotações para o caso comum de especificar um identificador gerado automaticamente como chave principal e depois executar consultas usando essa chave. Além de controlar EJBs, o Java EE 5 também inclui várias anotações para simplificar o acesso à segurança, persistência e facilidades dos Web Services. Descritores de Implantação Ficaram Simplificados Como se não bastassem as tarefas de programação associadas às versões anteriores do EJB, os desenvolvedores também tinham de enfrentar complicados descritores de implantação. Após realizar as tarefas e escrever a lógica de negócios em si, a implantação e execução de um EJB exigia que um descritor de implantação fosse escrito usando XML. Para os beans de sessão, o descritor continha em sua maioria informações redundantes como a classe, os nomes das interfaces associadas e o tipo do EJB. Então, havia diretivas para serviços de infraestrutura, como gerenciamento de transações e segurança. No caso de beans de entidade com persistência gerenciada pelo container, o descritor da implantação poderia conter dezenas de entradas especificando seu esquema abstrato de dados e várias consultas para esse esquema. A maioria das implementações de produção, como o Oracle WebLogic Server, incluiu ferramentas para gerar descritores de implantação e colocá-los no local correto. Mas esse se tornou outro item com o qual o desenvolvedor tinha de se preocupar, em vez de se concentrar no problema de negócios. No EJB 3.0, os descritores de implantação são opcionais. O desenvolvedor pode escrever e executar qualquer tipo de EJB sem um descritor, com as anotações e um conjunto de padrões fornecendo informações suficientes para executar o EJB. E o desenvolvedor que quiser realmente especificar um descritor precisa especificar apenas as entradas que se sobrepõem aos padrões. No EJB 3.0, a implementação de um serviço sofisticado que utiliza um grupo de EJBs em cooperação exige muito menos arquivos, cada um com muito menos entradas. O Oracle WebLogic Server Implementa o EJB 3.0 com Pitchfork Acrescentando o Pitchfork ao Oracle WebLogic Server, o container do EJB cria uma das melhores soluções da categoria: um container comprovado e de nível corporativo, e uma estrutura que aprimora a produtividade. Como foi observado anteriormente, o EJB 3.0 não muda significativamente as facilidades fornecidas pelos containers do EJB; em vez disso, facilita ainda mais seu uso. O Oracle WebLogic Server implementa o EJB 3.0 como extensão de seu container comprovado, que fornece a inteligência necessária para executar EJBs mais simplificados, convertendo anotações em instruções específicas e resolvendo dependências declarativamente especificadas. Para criar essa extensão, a Oracle trabalhou com os desenvolvedores do Spring Framework de código aberto para criar o Pitchfork, uma versão especial do Spring – uma estrutura popular que ajudou a introduzir a simplificação do desenvolvimento de aplicativos Java através do uso de injeção de dependência. Acrescentando o Pitchfork ao Oracle WebLogic Server, o container do EJB cria uma das melhores soluções da categoria: um container comprovado e de nível corporativo, e uma estrutura que aprimora a produtividade. Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 7 Dois efeitos dessa abordagem são a compatibilidade retroativa e olho no futuro. Como o Pitchfork atua como mediador entre o código do EJB 3.0 e facilidades tradicionais do container, o Oracle WebLogic Server é totalmente compatível retroativamente com o EJB 2.1. Os EJBs simplesmente ignoram o Pitchfork e usam as facilidades do container diretamente. E os clientes podem executar o EJB 3.0 e o EJB 2.1 lado a lado. Além da compatibilidade retroativa, o Pitchfork facilita que se pense no futuro. Muitos desenvolvedores adotaram abordagens de programação avançada como programação orientada a aspecto usando o Spring. O Pitchfork permite essas mesmas abordagens com o EJB 3.0. PERSISTÊNCIA AGILIZADA PARA SOA Ao isolar os desenvolvedores da complexidade, o EJB 3.0 permite que se concentrem em criar modelos de domínio representativos. A persistência é o próximo desafio. A execução de processos de negócios requer manipulação dos dados de registro. As entidades proposta de empréstimo, cliente e pedido de compra mencionadas anteriormente como exemplos têm representações Java que são executadas no container EJB. Entretanto, para executar um trabalho de verdade é necessário carregar e salvar as representações correspondentes armazenadas em bancos de dados de back-end, que asseguram que haja apenas uma cópia “verdadeira” de cada unidade de alta granularidade dos dados e que serviços diferentes manipulando as mesmas unidades de dados não interfiram um no outro. Em teoria, uma abordagem multinível como SOA torna a camada de aplicativos independente da camada de dados. Na prática, uma grande parte do código da camada de aplicativos se dedica a tarefas de gerenciamento de dados. O problema fundamental está em como a camada de aplicativos agrega valor. A maioria dos serviços fornece um valor razoavelmente único dentro de um determinado domínio – eles executam um conjunto atribuído de tarefas dentro de processos mais amplos. Essa especificidade requer que eles manipulem dados sobre a entidade de negócios de maneira particular. Não é de se surpreender que queiram organizar os dados necessários da maneira mais conveniente. Com base em uma grande experiência de campo da Oracle, o Oracle WebLogic Server incorpora o Oracle Kodo, que integra perfeitamente tanto o JPA quanto JDO (Java Data Objects). Com o Oracle WebLogic Server, os desenvolvedores podem escolher o mecanismo ideal para modelos de domínio específicos. Portanto, cada serviço deve mapear unidades de alta granularidade dos dados de back-end a seus modelos de entidade de menor granularidade. A escrita e depuração manuais do código de mapeamento é extremamente demorada e suscetível a erros. Abordagens de mapeamento automatizado não são uma panacéia porque equilibram flexibilidade e complexidade. Se não houver flexibilidade suficiente, os desenvolvedores precisarão escrever manualmente um monte de código para atender aos requisitos. Devido à complexidade excessiva, os desenvolvedores têm a impressão de que o uso da ferramenta automatizada equivale a escrever um monte de código. Com base em uma grande experiência de campo da Oracle, o Oracle WebLogic Server incorpora o Oracle Kodo, que integra perfeitamente tanto o JPA quanto JDO (Java Data Objects). Com o Oracle WebLogic Server, os desenvolvedores podem escolher o mecanismo ideal para modelos de domínio específicos. Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 8 Suporte para JPA e JDO Como foi discutido anteriormente, o EJB 3.0 usa anotações para reduzir a codificação das implementações de interface e entradas em descritores de implantação. A vantagem desta última é mais clara para beans de entidade com persistência gerenciada por container. A codificação abstrata mais descritores de implantação prolixos foram responsáveis pela complexidade do uso no EJB 2.1. Além disso, embora o EJB 2.1 fizesse algum esforço para tornar suas facilidades de persistência independentes da tecnologia de banco de dados, tendia a tornar o uso de bancos de dados relacionais muito mais complicado do que o necessário. A facilidade de uso e os aprimoramentos funcionais que vêm com o JPA dão aos desenvolvedores a capacidade de rapidamente implementar a persistência para os requisitos de acesso aos dados de SOA mais comuns. O JPA resolve todos esses pontos fracos. Os desenvolvedores simplesmente fornecem anotações de código instruindo o container a acessar os dados apropriados do banco de dados relacional. Uma anotação @Id antes de um conjunto de métodos acessadores define a chave principal. Há até anotações para especificar chaves compostas. Uma anotação @OneToMany antes de uma definição de coleção define um relacionamento de um para muitos. No caso de relacionamentos de muitos para muitos, uma anotação @JoinTable fornece o meio de configurar uma tabela de junção. Anotações mais sofisticadas como @Transaction e @NamedQueries incluem um grande conjunto de atributos para controlar de forma precisa interações especializadas com bancos de dados relacionais. O JPA faz mais do que apenas simplificar os recursos de persistência do EJB 2.1. Inclui também aprimoramentos necessários. O mais importante: os desenvolvedores não precisam mais especificar métodos do ciclo de vida para beans de entidade. O container automaticamente fornece um objeto EntityManager para controlar o ciclo de vida das instâncias. O JPA também permite que as classes Java especifiquem estratégias para lidar com a herança no mapeamento para o banco de dados. Em comparação com a linguagem de consulta do EJB da versão 2.1, a linguagem de consulta do JPA inclui diversos novos recursos, como operações em volume, junções externas e subconsultas. Juntos, a facilidade de uso e os aprimoramentos funcionais dão aos desenvolvedores a capacidade de rapidamente implementar a persistência para os requisitos de acesso aos dados de SOA mais comuns. Apesar dos aprimoramentos do JPA, muitos desenvolvedores ainda vão querer usar o JDO. Como o JPA concentra-se na persistência do banco de dados relacional, adota um estilo relacional. Quando se trabalha com modelos avançados orientados a objetos, a sintaxe mais orientada a objetos do JDO poderia ser atrativa. Em muitos casos, a escolha simplesmente será uma questão de gosto. Com o Oracle WebLogic Server, os desenvolvedores podem usar persistência gerenciada pelo container com o JPA ou persistência de gerenciamento de beans com o JDO. Embora JPA e JDO compartilhem muita funcionalidade subjacente, cada um tem recursos que faltam ao outro. O Oracle WebLogic Server fornece extensões a ambas as APIs, tornando-os funcionalmente equivalentes. Os desenvolvedores não precisam sacrificar recursos ao escolher um ou outro. Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 9 Implementação com Alta Performance O compromisso da Oracle em criar serviços de alto valor com o Java EE 5 vai além de dar aos desenvolvedores uma opção de API de persistência. Inclui o fornecimento de alta performance, qualquer que seja a alternativa preferida pelo desenvolvedor. O compromisso da Oracle em criar serviços de alto valor com o Java EE 5 vai além de dar aos desenvolvedores uma opção de API de persistência. Inclui o fornecimento de alta performance, qualquer que seja a alternativa preferida pelo desenvolvedor. Como foi mencionado, o mesmo mecanismo de persistência executa funções tanto do JPA quanto do JDO. O Oracle Kodo inclui uma longa lista de recursos de nível corporativo. Talvez o maior desafio ao fornecer persistência para os serviços de negócios mais importantes seja o suporte a transações grandes e de longa duração. A conclusão de uma etapa significativa em um processo de negócios pode resultar em extensas atualizações em muitos dados diferentes. O Oracle Kodo suporta transações de tamanho ilimitado. Para garantir a coordenação de processos de negócios complexos, podem ser necessárias transações que permaneçam em andamento por vários minutos, horas ou até dias. O Oracle Kodo gerencia com eficiência conexões a fontes de dados durante essas transações de longa duração. ORACLE TOPLINK Oracle TopLink é uma tecnologia alternativa de persistência de alta performance que vem inclusa com o Oracle WebLogic Server. Essa solução é uma versão de nível comercial e é um superconjunto do TopLink Essentials. A Oracle, como líder na co-especificação do novo EJB 3.0/JPA, ajudou a projetar e fornecer orientação arquitetônica para a nova especificação JPA. Além disso, contribuiu com o código do TopLink Essentials para a implementação de referência do JPA. O TopLink Essentials agora tem o código-fonte aberto. Oracle TopLink é uma tecnologia alternativa de persistência de alta performance que vem inclusa com o Oracle WebLogic Server. Essa solução é uma versão de nível comercial e é um superconjunto do TopLink Essentials. Quando incluso com o Oracle WebLogic Server, o Oracle TopLink vem com recursos avançados de mapeamento objeto-relacional (ORM) além dos presentes no TopLink Essentials. Eles incluem armazenamento em cache coordenado para suporte a implantações de aplicativos em cluster e políticas de bloqueio otimistas e não invasivas. O Oracle TopLink fornece suporte para funções e procedimentos armazenados independente de plataforma; possibilita mapeamento histórico e consultas de um momento específico. Os beans gerenciados (MBeans) do Java Management Extensions (JMX) permitem gerenciamento e monitoração de sessões do Oracle TopLink e seus caches. Ao operar em um ambiente com Banco de Dados Oracle, o Oracle TopLink fornece os seguintes recursos: • Um banco de dados privado virtual • Mapeamento tipo XML e geração de consultas SQLX • Dicas • Consultas hierárquicas • ORMs, matrizes, estruturas, referências de objetos e tabelas aninhadas • Linha de negócios personalizada, registro de hora e tipos de dados de byte duplo Por fim, o Oracle TopLink suporta mapeamento para sistemas de informações executivos usando adaptadores de recursos do Java Connector Architecture. Oferece mapeamento objeto-XML baseado em Arquitetura Java para XML Binding (JAXB) 1.0 e forneces suporte antecipado para a funcionalidade do JAXB 2.0. Como a Oracle está comprometida com uma arquitetura hot-pluggable, os desenvolvedores podem optar por usar a tecnologia de persistência adequada ao seu projeto. Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 10 MELHOR PROCESSAMENTO DE WEB SERVICES O uso de objetos Java comuns pelo EJB 3.0 torna rápido e fácil para os desenvolvedores criar modelos de domínio ricos e conectá-los a bancos de dados de back-end. É claro que esses modelos devem então ser disponibilizados como serviços dentro dos processos de negócios maiores suportados pelo SOA empresarial. A cooperação perfeita entre todos os serviços exige um alicerce sólido para processamento do protocolo de Web Services. O Oracle WebLogic Server inclui suporte para os mais recentes protocolos de Web Services voltados à segurança e à performance. Existem dois principais problemas no processamento do protocolo. Primeiro, a interoperabilidade requer implementação de todo um conjunto de protocolo e compatibilidade confirmada com conjuntos de diferentes fornecedores. O Oracle WebLogic Server inclui suporte para os mais recentes protocolos de Web Services (WS) voltados à segurança e à performance. Na área de segurança, as atualizações suportam WSSecurity 1.1 e WS-SecurityPolicy 1.1 e 1.2. Há novo suporte para WS-Trust e WSSecureConversation, que possibilitam aos serviços estabelecer um contexto de segurança compartilhada e manter relacionamentos confiáveis e duradouros. Na área de performance, há novo suporte para as especificações XML-binary Optimized Packaging (XOP) e Message Transmission Optimization Mechanism (MTOM). O XOP permite que os serviços transmitam dados binários como estão, sem codificação base64, e coloquem-nos no mesmo pacote MIME que o resto do documento XML. Essa abordagem reduz a largura de banda necessária e o trabalho de codificação. O MTOM descreve como usar o XOP para otimizar a transmissão de mensagens SOAP (Simple Object Access Protocol). A Oracle participou de diversos eventos de interoperabilidade para garantir que suas implementações desses protocolos, assim como outros do conjunto do Oracle WebLogic Server, funcionem bem como os de outros fabricantes. O segundo problema no processamento do protocolo é mais sutil. A API de processamento JAX-RPC (Java API for XML-Based Remote Procedure Call) de versões anteriores do Java EE suporta somente o estilo RPC, que infelizmente é o menos flexível de todos os estilos de interação dos Web Services. O Java EE 5 introduz uma nova API de processamento – JAX-WS (Java API for XML Web Services) –, que suporta o estilo voltado aos documentos, que é mais flexível. O Oracle WebLogic Server também fornece suporte básico para um terceiro estilo – Transferência de Estado Representacional – que pode simplificar certas interações. A infraestrutura de processamento para vários estilos de Web Services permite aos desenvolvedores adequar as interações dentro de um SOA para atender a diferentes requisitos empresariais. Embora não seja estritamente um problema no processamento do protocolo, conjuntos de Web Services somente para clientes são um problema de ordem prática para os clientes que querem criar aplicativos leves que atuem apenas como consumidores de serviços, sem o fardo da funcionalidade voltada ao servidor. O Oracle WebLogic Server fornece uma biblioteca Java especial que implementa somente as porções cliente dos protocolos definidos no Perfil Básico da Organização de Interoperabilidade de Web Services. Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 11 INTERFACES DA WEB MELHORADAS Quase todos os processos de negócios suportados por um SOA requerem alguma forma de interação com o usuário, e a maioria dos processos envolve muita interação. Os serviços de SOA mais importantes tendem a fornecer uma representação natural das tarefas de negócios. O aproveitamento dessa representação para fornecer interfaces de usuário mais sofisticadas é uma tremenda oportunidade. O Java EE 5 fornece um pacote integrado de melhorias para suas APIs de interface Web. Elas permitem interações mais sofisticadas com o usuário, facilitam a programação da interface e expandem a amplitude e profundidade da interação das pessoas com os serviços. O elemento central das APIs da interface Web do Java EE 5 é o JavaServer Faces (JSF). O objetivo principal do JSF é fazer o desenvolvimento de interfaces Web mais semelhante ao desenvolvimento de GUIs. O modelo subjacente à estrutura permite que os desenvolvedores conectem recursos da interface aos componentes da lógica, criando essencialmente widgets abstratos. Interações entre usuário e widgets usam um modelo orientado pelo evento. A etapa final do desenvolvimento é ligar o modelo de interação abstrato a uma tecnologia específica como a Web. Esse estilo de interação torna muito fácil lidar com o estado da interface dentro da estrutura. Um benefício imediato é que os desenvolvedores não precisam implementar muito código Java e EL (Expression Language) relacionado ao estado em seus JavaServer Pages (JSPs). O JSF também pode lidar tranquilamente com conversão e validação de valores. E como o JSF usa o mesmo modelo como GUI, funciona muito bem com ferramentas de desenvolvimento de interface. Como desenvolvedores de cliente/servidor tradicionais aprenderam muito tempo atrás, criar uma interface com uma boa ferramenta é muito mais produtivo do que codificá-la “na unha”. As interfaces de usuário são o segredo para utilizar o poder do SOA. Facilitando sua construção e criando oportunidades para rápido aprimoramento futuro, estabelece-se um trabalho de base para um retorno ainda melhor do investimento em SOA. Agora que o JSF faz parte do Java EE, ele funciona perfeitamente com o JSP. Eles compartilham um EL unificado, e o JSP é o mecanismo de apresentação padrão para o JSF. Mais importante é o fato de haver uma tremenda oportunidade de ampliar os recursos da interface de usuário da plataforma padrão. O JSF, combinado com as bibliotecas de tags do JSP, facilita a criação de componentes reutilizáveis da interface de usuário. Além disso, a maioria das funções da estrutura é plug and play. Os desenvolvedores podem substituí-los peça por peça por versões aprimoradas ou podem até trocar a estrutura inteira por uma alternativa como o Spring. As interfaces de usuário são o segredo para utilizar o poder de SOA. Facilitando sua construção e criando oportunidades para rápido aprimoramento futuro, estabelece-se um trabalho de base para um retorno ainda melhor do investimento em SOA. IMPLANTAÇÃO E GERENCIAMENTO DE SOA EM NÍVEL CORPORATIVO Ao facilitar a escrita de serviços de negócios e suas interfaces, o Java EE 5 promove uma ecologia de SOA muito mais rica. Na verdade, para se construir essa ecologia dentro das empresas, é necessário manter instâncias de serviços individuais e o ambiente de SOA mais amplo precisa ser saudável. Uma especificação de API sozinha não consegue atender a esse requisito. As empresas precisam de uma implementação de nível corporativo, com a implantação, gerenciamento e robustez exigidos de qualquer componente de TI de missão crítica. Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 12 O Oracle WebLogic Server provou sua capacidade de operar em um ambiente empresarial. A versão mais recente amplia esse sucesso e abrange o Java EE 5, para que os clientes possam gerenciar todos os novos recursos do console conhecido, e facilitando ao máximo o upgrade dos serviços existentes. Para o upgrade, basta reimplantar um sistema existente na nova plataforma, sem necessidade de portar. O Oracle WebLogic Server provou sua capacidade de operar em um ambiente empresarial. A versão mais recente amplia esse sucesso e abrange o Java EE 5, para que os clientes possam gerenciar todos os novos recursos do console conhecido, e facilitando ao máximo o upgrade dos serviços existentes. As empresas também enfrentam o desafio de fazer o upgrade de clientes para novas versões de um serviço. Diversos recursos facilitam essa consequência natural de um SOA maduro. Várias versões dos mesmos serviços podem ser executadas no mesmo servidor ou cluster. Os administradores podem segmentar o acesso da população de clientes às versões – por exemplo, disponibilizando versões mais novas somente aos clientes provenientes de segmentos da rede locais ou internos. Por fim, os administradores podem especificar declarativamente a política de migração dos clientes. O Oracle WebLogic Server resolve diversos outros problemas dos clientes. Para redes empresariais sem suporte para multicast, a versão mais recente oferece cluster com unicast. Ao operar um cluster, a migração dos serviços do Java Message Service e Java Transaction API de uma máquina para outra costumava exigir diversas etapas manuais. A versão mais recente conta com migração automática do serviço. Possibilita também a gravação e registro em script das operações do console. Conforme o Oracle WebLogic Server vai se tornando parte padrão da infraestrutura de TI, muitas empresas querem monitorá-lo como parte de seus consoles SNMP (Simple Network Management Protocol). A versão mais recente suporta SNMP 3, incluindo uma visão do SNMP do JMX Runtime MBeans. Além disso, o agente SNMP do servidor de administração agora fornece uma visão de todo o domínio do Oracle WebLogic Server. Essas melhorias demonstram o compromisso da Oracle em fazer do SOA um benefício para toda a organização de TI, não apenas para arquitetos e desenvolvedores. Figura 3: estrutura de diagnóstico do Oracle WebLogic Server Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 13 CONCLUSÃO O Java EE 5 acelera drasticamente o desenvolvimento de aplicativos de SOA. O EJB 3.0 simplifica a lógica de negócios ao permitir que os desenvolvedores se concentrem mais no modelo de domínio e menos no trabalho do middleware. O JPA simplifica as tarefas de gerenciamento de persistência mais comuns associadas ao mapeamento dos objetos de domínio aos bancos de dados relacionais de back-end. As APIs de interface Web possibilitam uma interação mais rica e flexível do usuário com SOA, enquanto o JAX-WS permite uma cooperação mais rica e flexível entre os serviços de um SOA. O Oracle WebLogic Server é a plataforma Java EE de maior popularidade, produtividade e performance. Agora é uma das primeiras a disponibilizar aos desenvolvedores empresariais o poder de uma implementação do Java EE 5 pronta para produção. O Oracle WebLogic Server é uma das primeiras implementações do Java EE 5 prontas para produção. Ele não só cumpre o padrão, como também adota seu espírito, que é o da simplicidade sem sacrifício. Os desenvolvedores obtêm a vantagem de uma API simplificada sem abrir mão de nenhuma infraestrutura comprovada no alicerce do Oracle WebLogic Server. O Oracle TopLink também vem incluso, fornecendo uma instância de alta performance da implementação de referência da persistência do Java EE. Ajudar os clientes a operar melhor seus negócios é o objetivo primordial, e o Oracle WebLogic Server oferece recursos do Java EE 5 da maneira como são mais suportados. O Oracle WebLogic Server é a plataforma Java EE de maior popularidade, produtividade e performance. Agora é uma das primeiras a disponibilizar aos desenvolvedores empresariais o poder de uma implementação do Java EE 5 pronta para produção. Os clientes existentes podem tirar proveito imediato das APIs aprimoradas, enquanto os novos têm a confiança do alinhamento com um líder consagrado. Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços página 14 Oracle WebLogic Server: um Sólido Alicerce para a Arquitetura Orientada a Serviços Atualizado em junho de 2008 Oracle Corporation Filial Brasil Av. Alfredo Egídio de Souza Aranha, 100 – 5º andar Chácara Santo Antônio – São Paulo – SP – 04726-170 Brasil Telefone para contato: 0800-891-4433 Internet: www.oracle.com/br Copyright © 2008, Oracle e/ou afiliadas. Todos os direitos reservados. Este documento é fornecido com propósito meramente informativo, e as informações aqui contidas estão sujeitas a alterações sem prévio aviso. Este documento pode não estar isento de erros, nem está sujeito a nenhuma outra garantia ou condição, seja expressa oralmente ou implícita pela lei, incluindo garantias implícitas e condições de comercialização ou adequação a um propósito específico. A Oracle especificamente se isenta de qualquer responsabilidade com respeito a este documento. Nenhuma obrigação contratual é estabelecida direta ou indiretamente por este documento. Este documento não pode ser reproduzido ou transmitido de forma ou meio algum, seja mecânico ou eletrônico, para nenhuma finalidade, sem autorização prévia expressa por escrito. Oracle é uma marca registrada da Oracle Corporation e/ou de suas afiliadas. Outros nomes podem ser marcas comerciais de seus respectivos proprietários. 0408