Miguel Vieira Ferreira Lopes Gomes - IT Architect - Systems Integration / Engineering Group 16 setembro 2010 Acelerando o desenvolvimento Java com RAD 7.5 developerWorks Brasil © 2010 IBM Corporation Conteúdo Apresentando o Rational Application Developer 7.5 Perspectiva Web Explorando a funcionalidade DataTooling para Java Persistent API (JPA) Desenvolvendo EJBs visualmente Web 2.0: Expondo EJBs para páginas Web usando RPC com Dojo (Ajax) Suporte à JSR 286 Testando Web Services 2 developerWorks Brasil © 2010 IBM Corporation Apresentando o Rational Application Developer 7.5 É uma suíte completa de desenvolvimento, análise, teste, e deploy, que permite implementar, de forma rápida, aplicações Java SE e EE, Portal, Web 2.0, Web Services e SOA. Foi construída sob o Eclipse 3.4; Suporta tecnologias Java EE 5.0, EJB 3.0, JPA, e Web 2.0 com desenvolvimento Ajax e Dojo; Otimizado para rodar aplicações nos servidores WebSphere Application e Portal Server; Atualmente o RAD está na versão 7.5.5.1; 3 developerWorks Brasil © 2010 IBM Corporation Tecnologias suportadas pelo RAD 7.5 Tecnologias Java Principais Banco de Dados suportados IBM Java Runtime Environment 1.6 Java Server Pages (JSP) 2.1 Java Servlet 2.5 Enterprise JavaBeans (EJB) 3.0 CloudScape 5.1 Apache Derby 10.0, 10.1 e 10.2 DB2 (Linux, UNIX,Windows) 7.2, 8.1, 8.2, 9.1, 9.5 SQL Server Enterprise 7, 2000, e 2005 MySQL 4.0, 4.1, 5.0, e 5.1 Oracle 8, 9, 10 e11 Servidores de Aplicação Java Server Faces (JSF) 1.2 Java Persistence API (JPA) 1.0 Service Data Objects (SDO) 2.0 Struts 1.3 4 WebSphere Application Server 6.0, 6.1 e 7.0 WebSphere Portal Server 6.0 e 6.1 Weblogic Server 6.1, 7.0 e 8.1 Apache Tomcat 3.2, 4.0, 4.1, 5.0, 5.5 e 6.0 JBoss 3.2.3, 4.0, 4.2 e 5.0 OC4J 10.1.3 e 10.1.3.n developerWorks Brasil © 2010 IBM Corporation IBM Presentation Template Full Version RAD aumenta a eficiência e reduz o ciclo de desenvolvimento e testes Visualize e execute Arquiteturas Java EE Execute complexos code refactoring Performance Qualidade Acelere o desenvolvimento com programação baseada em anotações e quickfixes Analise com as regras de análise estática e de cobertura de linha de código Usabilidade Integração Integração com servidores WebSphere 5 developerWorks Brasil © 2010 IBM Corporation IBM Presentation Template Full Version Conteúdo Apresentando o Rational Application Developer 7.5 Perspectiva Web Explorando a funcionalidade DataTooling para Java Persistent API (JPA) Desenvolvendo EJBs visualmente Web 2.0: Expondo EJBs para páginas Web usando RPC com Dojo (Ajax) Suporte à JSR 286 Testando Web Services 6 developerWorks Brasil © 2010 IBM Corporation Perspectiva Web Perimite criar e editar recursos da Web, como servlets, JSPs, páginas HTML, folhas de estilo e imagem, bem como a edição do descritor web.xml. As views PageData e Services serão detalhadas nos próximos slides; Page Designer: esta view permite a edição de arquivos HTML,JSP e JavaScript. Pode-se trabalhar em 3 perspectivas diferentes (Design, Source e Split) a tab Preview mostra a página da forma como seria exibida em um Browser (somente HTML estático é mostrado) Enterprise Explorer: esta view permite a visualização do projeto com os artefatos JEE Page Data: Esta view permite gerenciar e manipular objetos de várias fontes como JPA, SDO e variáveis de script de JSP. Estes objetos podem ser arrastados para dentro do Page Designer 7 Palette View: através desta view os componentes (HTML,JSP,JSF entre outros) podem ser arrastados diretamente para dentro do Page Designer developerWorks Brasil © 2010 IBM Corporation Perspectiva Web - Web Diagram Editor Através do Web Diagram Editor podemos criar páginas JSP/JSF/Struts e HTML além de Managed Bean. É possível também criar a estrutura de navagação entre as páginas, conectar objetos de dados como JPA e SDO e associá-los às páginas Web; 8 developerWorks Brasil © 2010 IBM Corporation Editor visual para o descritor web.xml Visualize e altere os recursos Web de maneira visual Economize tempo adicionando recursos através de wizards O descritor web.xml é atualizado com as informações fornecidas. As tags são automaticamente preenchidas de acordo com a especificação JEE 9 developerWorks Brasil © 2010 IBM Corporation Componentes JSF Os componentes JSF podem ser arrastados para dentro do page designer; As propriedades, validações, regras podem ser editadas visualmente atráves da view de propriedades; 10 developerWorks Brasil © 2010 IBM Corporation Publicando no servidor de aplicações O RAD possui total integração com WebSphere Application Server e Portal; É possível testar,executar e depurar aplicativos que estão instalados no servidor; Funcionalide ‘run-on-server’ que permite a instalação, publicação e execução do aplicativo no servidor com apenas um clique; Adicione,publique, sincronize, execute aplicativos Overview com configurações básicas do servidor. As demais configurações estão disponíveis na console administrativa 11 developerWorks Brasil © 2010 IBM Corporation IBM Presentation Template Full Version Conteúdo Apresentando o Rational Application Developer 7.5 Perspectiva Web Explorando a funcionalidade DataTooling para Java Persistent API (JPA) Desenvolvendo EJBs visualmente Web 2.0: Expondo EJBs para páginas Web usando RPC com Dojo (Ajax) Suporte à JSR 286 Testando Web Services Source: If applicable, describe source origin 12 developerWorks Brasil © 2010 IBM Corporation Trabalhando com JPA no RAD 7.5 O RAD possui funcionalidades que auxiliam o desenvolvimento de JPAs: – Criação e inicialização automática de mapeamentos: • Novas tabelas a partir de entity beans já existentes (top-down); • Novos entity beans a partir de tabelas já existentes (bottom-up); Edição de Query Criação de Manager Beans Criação de Entities 13 developerWorks Brasil © 2010 IBM Corporation Trabalhando com JPA no RAD 7.5 Explore as propriedades e atributos do Entity através da view JPA Details 14 developerWorks Brasil © 2010 IBM Corporation Trabalhando com JPA no RAD 7.5 Manager Beans: – JPA manager beans são services beans que atuam como Façades ou Controllers sobre um Entity em particular. Eles abstraem e encapsulam todo o código de acesso aos dados 15 developerWorks Brasil © 2010 IBM Corporation JPA no RAD 7.5 Para utlizar JPA no RAD é preciso habilitar o Facet JPA no projeto Procedimentos: – Clique com o botão direito em cima do projeto e selecione: Properties → Project Facets e marque a opção JPA As versões 6.0 e 6.1 do WAS precisam ter a Feature Pack for EJB 3.0 instalada para suporte ao JPA 16 developerWorks Brasil © 2010 IBM Corporation Trabalhando com JPA no RAD 7.5 Para criar objetos JPA através de tabelas já existentes (bottom-up); Procedimentos: → – Abra a perspectiva JPA; – Crie um projeto JPA: File → New → JPA Project; – Clique com o botão direito no projeto e selecione JPATools → Generate Entities (fig.1) ; – Selecione uma conexão e o esquema do Banco de Dados; – Na próxima tela, selecione as tabelas e clique em Finish (fig. 2); – O código será gerado de acordo com a especificação JPA (fig. 3); 1 3 2 17 developerWorks Brasil © 2010 IBM Corporation IBM Presentation Template Full Version Conteúdo Apresentando o Rational Application Developer 7.5 Perspectiva Web Explorando a funcionalidade DataTooling para Java Persistent API (JPA) Desenvolvendo EJBs visualmente Web 2.0: Expondo EJBs para páginas Web usando RPC com Dojo (Ajax) Suporte à JSR 286 Testando Web Services 18 developerWorks Brasil © 2010 IBM Corporation IBM Presentation Template Full Version Conteúdo Apresentando o Rational Application Developer 7.5 Perspectiva Web Explorando a funcionalidade DataTooling para Java Persistent API (JPA) Desenvolvendo EJBs visualmente Web 2.0: Expondo EJBs para páginas Web usando RPC com Dojo (Ajax) Suporte à JSR 286 Testando Web Services 19 developerWorks Brasil © 2010 IBM Corporation Desenvolvendo EJBs visualmente O RAD possui suporte total a especificação EJB 3.0; Propriedades e atributos podem ser explorados visualmente; Através de um diagrama de classes, o RAD permite modelagem de EJBs (além de JPA e Web Services) de maneira visual 20 developerWorks Brasil © 2010 IBM Corporation Desenvolvendo EJBs visualmente É possível editar o código através do diagrama e acessar suas propriedades (ex. annotations) 21 developerWorks Brasil © 2010 IBM Corporation Criação de EJBs através de wizards O RAD permite a criação de projetos EJB a partir da versão 1.1. A versão 3.0 está disponível para o WAS 6.1 somente quando o Feature Pack estiver instalado Estrutura de um projeto EJB Visualização dos EJBs existentes por categoria Classes Java com código EJB Interface Java com métodos de negócio que serão implementados pela classe do EJB 22 developerWorks Brasil © 2010 IBM Corporation IBM Presentation Template Full Version Conteúdo Apresentando o Rational Application Developer 7.5 Perspectiva Web Explorando a funcionalidade DataTooling para Java Persistent API (JPA) Desenvolvendo EJBs visualmente Web 2.0: Expondo EJBs para páginas Web usando RPC com Dojo (Ajax) Suporte à JSR 286 Testando Web Services 23 developerWorks Brasil © 2010 IBM Corporation Web 2.0: Expondo EJBs para páginas Web usando RPC com Dojo (Ajax) Web-remoting é um padrão que fornece suporte para JavaScript ou código client-side invocar diretamente a lógica do lado do servidor. Remote Procedure Call (RPC) fornece um mecanismo para expor objetos Java serverside como EJB, Pojo e JPA para interfaces de usuário baseado em AJAX; A invocação é realizada através de uma chamada JSON-RPC.O uso mais comum são chamadas assíncronas com XMLHttpRequest. Os dados são transferidos entre o servidor e cliente no formato JSON. – JavaScript Object Notation (JSON) é um formato leve de troca de dados, tem sido usado como um alternativa para o formato XML em AJAX; O adaptador RPC foi projetado para ajudar os desenvolvedores a criar comandos baseado em serviços de forma rápida e fácil, 24 developerWorks Brasil © 2010 IBM Corporation Dojo Toolkit Dojo é um toolkit JavaScript open source, do qual a IBM é uma grande contribuidora; Fornece funcionalidades para tratamento de eventos, localização, acessibilidade; Pode ser usado para criar interfaces ricas com o usuários e não está vinculado a tecnologias específicas do lado do servidor; Provê uma camada de abstração para com JavaScript, reduzindo a incompatibilidade entre os diversos navagadores; Possui diversos widgets do tipo calendário, combo, grid, menu, barras de progresso, etc; Dojo é integrante do OpenAJAX Alliance; 25 developerWorks Brasil © 2010 IBM Corporation Dojo no RAD 7.5 Para utlizar o Dojo no RAD é preciso habilitar o Facet Web 2.0 Procedimentos: – Clique com o botão direito em cima do projeto Web e selecione: Properties → Project Facets e marque a opção Web 2.0 As versões 6.0 e 6.1 do WAS precisam ter a Feature Pack for Web 2.0 instalado para suporte ao Dojo 26 developerWorks Brasil © 2010 IBM Corporation Dojo no RAD 7.5 O RAD permite a construção de interfaces ricas com Dojo de maneira visual; Através da Pallet view, é possível arrastar e soltar os componentes Dojo para dentro da página Web; O código é automaticamente gerado e pode ser modificado dentro do Page Designer ou através da Properties view; 27 developerWorks Brasil © 2010 IBM Corporation Crie aplicações sofisticadas com Dojo 28 developerWorks Brasil © 2010 IBM Corporation Dojo no RAD 7.5 Content assist em JSP Content assist em JavaScript 29 developerWorks Brasil © 2010 IBM Corporation Dojo no RAD 7.5 Acesso as propriedades através da Propertie View; 30 developerWorks Brasil © 2010 IBM Corporation Expondo EJBs com RPC Através da view Services, podemos expor EJBs ou POJOs para serem consumidos através do Dojo Escolha o método que será exposto do EJB ou POJO Adicione o código Dojo na página Web que irá consumir o serviço 31 developerWorks Brasil © 2010 IBM Corporation Arquitetura Web 2.0 com RPC, EJB e JPA Websphere Application Server EJBs de negócio acessam o Banco de Dados via JPA. O cliente Dojo invoca os EJBs e POJOs via RPC Adapter Aqui está a aplicação cliente que foi contruída usando Dojo EJB HTTP AJAX 32 JSON WebSphere RPC Adapter Web-tier façade BD JPA developerWorks Brasil © 2010 IBM Corporation Conteúdo Apresentando o Rational Application Developer 7.5 Perspectiva Web Explorando a funcionalidade DataTooling para Java Persistent API (JPA) Desenvolvendo EJBs visualmente Web 2.0: Expondo EJBs para páginas Web usando RPC com Dojo (Ajax) Suporte à JSR 286 Testando Web Services 33 developerWorks Brasil © 2010 IBM Corporation Portal Tools O RAD permite o desenvolvimento, testes e publicação de aplicativos de Portal (Portlets); Aparência, navegação e contéudo do Portal são configurados através da ferramenta Portal Designer; Possui integração com WebSphere Application Server 6.0 e 6.1; 34 developerWorks Brasil © 2010 IBM Corporation Suporte à JSR-286 •Suporte para Portlet Events: JSR 286 permite que Portlets declarems os eventos que desejam publicar(send) e eventos que desejam processar (receive). •Os eventos podem ser utilizados para o intercâmbio de dados complexos entre portlets e e para disparar triggers, como as de atualizações de sistemas back-end 35 developerWorks Brasil © 2010 IBM Corporation JSR 286 - Criação de Eventos 36 developerWorks Brasil © 2010 IBM Corporation JSR 286 – novo Portlet Deployment Descriptor 37 developerWorks Brasil © 2010 IBM Corporation Conteúdo Apresentando o Rational Application Developer 7.5 Perspectiva Web Explorando a funcionalidade DataTooling para Java Persistent API (JPA) Desenvolvendo EJBs visualmente Web 2.0: Expondo EJBs para páginas Web usando RPC com Dojo (Ajax) Suporte à JSR 286 Testando Web Services 38 developerWorks Brasil © 2010 IBM Corporation Geração de Web Services Web Services podem ser gerados por meio de duas abordagens Top-Down – Quando criamos um Web Service usando esta abordagem, primeiro nós implementamos o Web Service usando o editor WSDL disponível no RAD. Então podemos usar os Wizards disponíveis para criar os skeleton Java no qual adicionamos a lógica de negócio. Bottom-up – Esta é uma maneira de desenvolvimento mais rápida e fácil, especialmente se você é novo em WebService. Primeiro crie um EJB ou uma classe Java (Bean) e utilize os Wizards disponíveis para que o WSDL seja gerado através das classes. Nota: Com WebSphere Application Server Feature Pack for Web Services instalado para o WAS 6.1, somente podemos criar Web Services pelas bordagens top-down ou bottom-up usando classes Java (Bean). Para expor um EJB 3.0 como Web Service somente é possível no WAS 7.0 39 developerWorks Brasil © 2010 IBM Corporation Usando annotations de Web Services em um Java Bean • Podemos usar annotations para marcar uma classe Java como um Web Services e seus métodos como operações de serviço • Crie uma nova classe Java, de acordo com o código abaixo: A annotation @WebService marca a classe Java como uma implementação de Web Service O atributo ‘name’ é usado como nome do wsdl:portType A annotation @WebMethod marca a o método Java como uma operação externa do Web Service O atributo ‘operationName’ é usado como nome do wsdl:operation. 40 developerWorks Brasil © 2010 IBM Corporation Testando o Web Service Inicie o Servidor WAS 7.0; Clique na aba da view Services que está abaixo do Enterprise Explorer; Abra a pasta JAX-WS e clique com o botão direito em RAD75JSFWeb: {http://rad75.ws.com/}ReservasWSService e selecione: Test with Web Services Explorer O Web Services Explorer irá abrir; Selecione a operação totalReservas e clique no botão Go; O resultado irá aparecer no painel Status; 41 developerWorks Brasil © 2010 IBM Corporation Links developerWorks Brasil - Portal IBM para desenvolvedores e profissionais de TI do Brasil http://www.ibm.com/developerworks/br IBM Rational Blog Brasil https://www.ibm.com/developerworks/mydeveloperworks/blogs/rationalbrasil/?ca=rationalblog&me=W&met=inli&re=dWsBrasil_RHN&lang=pt_br Rational Application Developer for WebSphere Software http://www-01.ibm.com/software/awdtools/developer/application/ Certificações Técnicas da Rational http://www-03.ibm.com/certify/certs/rl_index.shtml Artigos Developing Web applications with the Java Persistence API and JavaServer Faces http://www.ibm.com/developerworks/rational/library/08/0819_mutdosch/index.html?S_TACT=105AGX15&S_CMP=LP Using IBM RAD 7.5 to develop a Web 2.0 page that references a session bean http://www.ibm.com/developerworks/rational/library/08/1118_endres/index.html Increase productivity by using Rational Application Developer with other Rational software http://www.ibm.com/developerworks/rational/library/10/radintegrationwithrationalsoftware/index.html 42 developerWorks Brasil © 2010 IBM Corporation Links Redbook Redbook Rational Application Developer V7.5 Programming Guide http://www.redbooks.ibm.com/Redbooks.nsf/RedpieceAbstracts/sg247672.html 43 developerWorks Brasil © 2010 IBM Corporation 44 developerWorks Brasil © 2010 IBM Corporation