j2ee - inesc-idler/docencia/tm0405/slides/j2ee.pdf · j2ee apresentação lógica do negócio...
TRANSCRIPT
![Page 1: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/1.jpg)
25 de Novembro de 2004 TM 1
J2EE
Apresentado por Nuno Nunes
![Page 2: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/2.jpg)
TM 225 de Novembro de 2004
J2EE
n Tecnologia Java, “A visão”¨ O J2EE¨ Resumo da tecnologia J2EE
n Os componentes do J2EE¨ Do lado do cliente...¨ Do lado do servidor – Tecnologias de apresentação¨ Do lado do servidor – Lógica do negócio¨ Integração
n J2EE versus .net
![Page 3: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/3.jpg)
TM 325 de Novembro de 2004
Tecnologia Java, “A visão”
n J2SE – Java Standard Editionn J2ME – Java Micro Editionn J2EE – Java Enterprise Edition
![Page 4: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/4.jpg)
TM 425 de Novembro de 2004
Tecnologia Java, “A visão”
J2SE J2EE
![Page 5: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/5.jpg)
TM 525 de Novembro de 2004
Tecnologia Java, “A visão”
É importante perceber......O J2EE não é um produto, mas uma
especificação....
![Page 6: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/6.jpg)
TM 625 de Novembro de 2004
Tecnologia Java, “A visão”J2EE
Apresentação Lógica donegócio
Recursos
n O J2EE é um enriquecimento do J2SE visando oferecer serviços complementares, importantes, nos ambientes aplicacionais existentes actualmente
Ex.: Servlets, JSP Ex.: Suporte a transacções
Ex.: jdbc
web
cliente J2EE Server SGBD’s, etc.
![Page 7: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/7.jpg)
TM 725 de Novembro de 2004
Tecnologia Java, “A visão”Resumo (APIs J2EE v1.4) n Enterprise Java Beansn Java Servlet / Java Server Pagesn JMSn Java Transaccion APIn JavaMailn Java API for XML processing (JAXP)n Java API – XML Based RPCn SOAP with Atachments APIn JAVA API for XML Registriesn J2EE connector Architecturen JDBC APIn Java Naming and Directory Interfacen Java Authentication and Authorization service
![Page 8: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/8.jpg)
TM 825 de Novembro de 2004
Os componentes do J2EEDo lado do cliente...
¨ Interacção através de uma aplicação cliente¨ Interacção via equipamentos móveis
(telemóveis, PDA’s)¨ Interacção via Web
![Page 9: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/9.jpg)
TM 925 de Novembro de 2004
Os componentes do J2EEDo lado do servidor - Tecnologias de apresentação
n Porquê dar importância à Web?¨ Os web browsers são ubíquos¨ É muito simples fazer o upgrade de uma aplicação¨ Os servidores web são extremamente escaláveis
n As tecnologias existentes (CGI’s, ASP / PHP, etc.) não chegam?¨ São computacionalmente dispendiosos¨ São “sujos” na forma com lidam com os dados
(misturam apresentação com lógica do negócio)
![Page 10: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/10.jpg)
TM 1025 de Novembro de 2004
Os componentes do J2EEDo lado do servidor - Tecnologias de apresentação
n A resposta apresentada no J2EE é constítuida por 2 tecnologias distintas:¨ Servlets¨ JSP’s
Web Container
s1
jsp1
s2get s1
get s1
get jsp1
O WebContainer gere:•Segurança•Gestão de sessões•Gestão de concorrência•Error Handling•Gere distribuição•...
![Page 11: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/11.jpg)
TM 1125 de Novembro de 2004
Os componentes do J2EEDo lado do servidor - Tecnologias de apresentação
//Servlet HelloWorld
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<html>"); out.println("<body>"); out.println("<head>"); out.println("<title>HelloWorld!</title>");out.println("</head>"); out.println("<body>");out.println("<h1>Hello World!</h1>");out.println("</body>");out.println("</html>");
} }
![Page 12: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/12.jpg)
TM 1225 de Novembro de 2004
Os componentes do J2EEDo lado do servidor - Tecnologias de apresentação
<HTML><HEAD>
<TITLE>hello jsp</TITLE><%! String message = "Hello, World, from JSP"; %>
</HEAD><BODY><h2><font color="#AA0000"><%= message%></font></h2> <h3>
<font color="#AA0000"><%= new java.util.Date() %>
</font></h3></BODY></HTML>
![Page 13: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/13.jpg)
TM 1325 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio
n Lógica do negócio¨EJB (Enterprise Java Beans)
n Gestão de transacçõesn Segurançan Gestão de recursos
![Page 14: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/14.jpg)
TM 1425 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio
Enterprise Java Beans
Sessão
Entidade
“Message Driven”
• sem estado• com estado
•Persistentes• Gerida pelo próprio bean• Gerida pelo container
síncronos
assíncrono
![Page 15: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/15.jpg)
TM 1525 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio
n Session beans (sessão)¨ Representar processos de negócio
n Ex.: como receber um pagamento (interagir com)
![Page 16: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/16.jpg)
TM 1625 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio
n Com estado ou sem estado?¨ Stateless session beans
¨ Cada pedido é independente
¨ É por inerência mais escalável
¨ Statefull session beans¨ Usado qundo é necessário
responder a sequências de pedidos
¨ Cada session bean, apenas responde a um cliente durante uma sessão (implica que o cliente informe quando termina a sessão)
![Page 17: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/17.jpg)
TM 1725 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio
n Entity beans (entidades)¨ Representar os dados do negócio (ex.: factura, cliente, items em stock)
n Porquê os Entity beans, não podemos usar um SGBD?¨ A ideia por trás dos Entity beans é simular um sistema “perfeito”
n Fundamentalmente esconde os SGBD’s, n O sistema nunca perde dados e simula memória infinitan O programador só tem de usar dados em memórian Encontra-se sob um ambiente transaccional
¨ Os beneficios são:n O “EJB container” controla todo o ambiente transaccionaln O “EJB container” pode tratar de toda a preservação de dados no SGBDn O SGBD utilizado é completamente transparente para o programador /
portabilidade no meio de armazenamenton Optimizações geridas pelo EJB
![Page 18: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/18.jpg)
TM 1825 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio
![Page 19: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/19.jpg)
TM 1925 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio
n Message driven bean¨Criados para responder a sistemas legados¨Criados para responder a sistemas
assíncronos (ex.: JMS)n Respondem a mensagens/não gera mensagens
![Page 20: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/20.jpg)
TM 2025 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio[user@host app]# mkdir org[user@host app]# mkdir org/acme
HelloBean.java
package org.acme;
import java.rmi.RemoteException;import javax.ejb.*;
public class HelloBean implements SessionBean {private SessionContext sessionContext ;public void ejbCreate() {}public void ejbRemove() {}public void ejbActivate() {}public void ejbPassivate() {}public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;}public String sayHello() throws java.rmi.RemoteException {
return "Hello World!!!!!";}
}
![Page 21: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/21.jpg)
TM 2125 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio
HelloHome.java
package org.acme;
import java.rmi.*;import javax.ejb.*;import java.util.*;
public interface HelloHome extends EJBHome {public HelloObject create() throws RemoteException, CreateException;
}
![Page 22: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/22.jpg)
TM 2225 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio
HelloObject.java
package org.acme;
import java.rmi.*;import javax.ejb.*;import java.util.*;
public interface HelloObject extends EJBObject {public String sayHello() throws RemoteException;
}
![Page 23: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/23.jpg)
TM 2325 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócioMETA-INF\ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?><ejb-jar>
<enterprise-beans><session>
<ejb-name>Hello</ejb-name><home>org.acme.HelloHome</home><remote>org.acme.HelloObject</remote><ejb-class>org.acme.HelloBean</ejb-class><session-type>Stateless</session-type><transaction-type>Container</transaction-type>
</session></enterprise-beans><assembly-descriptor><container-transaction>
<method><ejb-name>Hello</ejb-name><method-name>*</method-name>
</method><trans-attribute>Required</trans-attribute>
</container-transaction></assembly-descriptor>
</ejb-jar>
![Page 24: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/24.jpg)
TM 2425 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócioHelloWorld.java
package org.acme;
import javax.rmi.*;import javax.naming.*;import java.util.*;
public class HelloWorld {
public static void main( String args []) {try{
Properties p = new Properties();
//The JNDI properties you set depend//on which server you are using.//These properties are for the Remote Server.p.put("java.naming.factory.initial", "org.openejb.client.RemoteInitialContextFactory");p.put("java.naming.provider.url", "127.0.0.1:4201");p.put("java.naming.security.principal", "myuser");p.put("java.naming.security.credentials ", "mypass");
//Now use those properties to create//a JNDI InitialContext with the server.InitialContext ctx = new InitialContext( p );
![Page 25: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/25.jpg)
TM 2525 de Novembro de 2004
Os componentes do J2EEDo lado do servidor – Lógica de negócio
//Lookup the bean using it's deployment idObject obj = ctx.lookup("/Hello");
//Be good and use RMI remote object narrowing//as required by the EJB specification.HelloHome ejbHome = (HelloHome)
PortableRemoteObject.narrow(obj,HelloHome.class);
//Use the HelloHome to create a HelloObjectHelloObject ejbObject = ejbHome.create();
//The part we've all been wainting for...String message = ejbObject.sayHello();
//A drum roll please.System.out.println( message );
} catch (Exception e){e.printStackTrace();
}}
}
![Page 26: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/26.jpg)
TM 2625 de Novembro de 2004
J2EE, Integração
n Como integrar com um SGBD?n Como integrar com um sistema legado?n Como integrar sistemas entre negócios
(B2B)
![Page 27: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/27.jpg)
TM 2725 de Novembro de 2004
J2EE, Integração
n Como integrar com SGBD’s¨JDBC
n API para Integrar com SGBD’s
¨JTAn API para gerir transacções
![Page 28: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/28.jpg)
TM 2825 de Novembro de 2004
J2EE, Integração
n Sistemas legados¨Java Connector Integration
n Permite fazer chamadas a procedimentos a aplicações noutras linguagens (tipicamente C ou Cobol)
¨JNI (Java Connector)n Especifica uma interface. É possível comprar
adaptadores para integrar com outras aplicações
¨CORBA
![Page 29: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/29.jpg)
TM 2925 de Novembro de 2004
J2EE, Integração
n Business integration (B2B)¨WebServices, RMI ou CORBA
![Page 30: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/30.jpg)
TM 3025 de Novembro de 2004
J2EE, IntegraçãoWebServices
Processador de XMLvia SAX ou DOM
Composição e Parsing de mensagens SOAP
Interface com o sistema UDDI(publicar e pesquisar webservices)
“Compile time utilities”Cria os stubs usados pelos webservices
![Page 31: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/31.jpg)
TM 3125 de Novembro de 2004
J2EE versus .net
C#, VB, VC++, etc
JAVALinguagens
Apenas em O.S. Microsoft ?
Qualquer S.O. que suporte a JVM
Portabilidade no S.O.
Microsoft ?30 vendedoresPortabilidade do vendedor
ProdutoEspecificaçãoEspecificação ou produto
.NETJ2EE
![Page 32: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/32.jpg)
TM 3225 de Novembro de 2004
J2EE versus .net
![Page 33: j2ee - INESC-IDler/docencia/tm0405/slides/j2ee.pdf · J2EE Apresentação Lógica do negócio Recursos nO J2EE é um enriquecimento do J2SE visando oferecer serviços complementares,](https://reader033.vdocuments.net/reader033/viewer/2022042213/5eb8b689a715313641553d44/html5/thumbnails/33.jpg)
TM 3325 de Novembro de 2004
J2EE versus .net
Passport .netJ2SE (core security), JAAS, J2EE – specific
Segurança
MS Host IntegrationService
JNI, CORBA, JMS e Java ConnectorArchitecture
Integração com softwarelegado
SOAP, WSDL, UDDIJAXM (SOAP, ebXML) JAXR (WSDL, UDDI) JAX-RPC
WebServices
MSXML (SAX & DOM)JAXP (SAX & DOM)XML Parsing
ADO.netJNDIServiços de directoria
ADO.netJDBCAcesso a base de dados
.netJ2EE