33
25 de Novembro de 2004 TM 1 J2EE Apresentado por Nuno Nunes

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,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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