Miguel Vieira Ferreira Lopes Gomes - IT Architect - Systems Integration / Engineering Group 16 setembro 2010 Acelerando o desenvolvimento Java com RAD 7.5
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
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
Tecnologias suportadas pelo RAD 7.5 Tecnologias Java IBM Java Runtime Environment 1.6 Java Server Pages (JSP) 2.1 Java Servlet 2.5 Enterprise JavaBeans (EJB) 3.0 Java Server Faces (JSF) 1.2 Java Persistence API (JPA) 1.0 Service Data Objects (SDO) 2.0 Struts 1.3 Principais Banco de Dados suportados 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 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 4
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 Acelere o desenvolvimento com programação baseada em anotações e quickfixes Performance Qualidade Usabilidade Integração Analise com as regras de análise estática e de cobertura de linha de código Integração com servidores WebSphere 5
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
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 7 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 Palette View: através desta view os componentes (HTML,JSP,JSF entre outros) podem ser arrastados diretamente para dentro do Page Designer
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
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
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
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
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
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); Criação de Manager Beans Edição de Query Criação de Entities 13
Trabalhando com JPA no RAD 7.5 Explore as propriedades e atributos do Entity através da view JPA Details 14
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
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
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
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
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
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
Desenvolvendo EJBs visualmente É possível editar o código através do diagrama e acessar suas propriedades (ex. annotations) 21
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
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
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
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
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
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
Crie aplicações sofisticadas com Dojo 28
Dojo no RAD 7.5 Content assist em JSP Content assist em JavaScript 29
Dojo no RAD 7.5 Acesso as propriedades através da Propertie View; 30
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
Arquitetura Web 2.0 com RPC, EJB e JPA Websphere Application Server O cliente Dojo invoca os EJBs e POJOs via RPC Adapter EJBs de negócio acessam o Banco de Dados via JPA. Aqui está a aplicação cliente que foi contruída usando Dojo HTTP EJB AJAX JSON WebSphere RPC Adapter Web-tier façade JPA BD 32
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
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
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
JSR 286 - Criação de Eventos 36
JSR 286 novo Portlet Deployment Descriptor 37
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
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
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
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
Links - 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
Links Redbook Redbook Rational Application Developer V7.5 Programming Guide http://www.redbooks.ibm.com/redbooks.nsf/redpieceabstracts/sg247672.html 43
44