• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

Share "J2EE. Apresentado por Nuno Nunes. 25 de Novembro de 2004 TM 1"

Copied!
33
0
0

Texto

(1)

J2EE

(2)

2

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

(3)

Tecnologia Java, “A visão”

n

J2SE – Java Standard Edition

n

J2ME – Java Micro Edition

(4)

4

Tecnologia Java, “A visão”

(5)

Tecnologia Java, “A visão”

É importante perceber...

...O J2EE não é um produto, mas uma

especificação....

(6)

6

Tecnologia Java, “A visão”

J2EE

Apresentação

Lógica do

negó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

(7)

Tecnologia Java, “A visão”

Resumo (APIs J2EE v1.4)

n

Enterprise Java Beans

n

Java Servlet / Java Server Pages

n

JMS

n

Java Transaccion API

n

JavaMail

n

Java API for XML processing (JAXP)

n

Java API – XML Based RPC

n

SOAP with Atachments API

n

JAVA API for XML Registries

n

J2EE connector Architecture

n

JDBC API

n

Java Naming and Directory Interface

(8)

8

Os componentes do J2EE

Do lado do cliente...

¨

Interacção através de uma aplicação cliente

¨

Interacção via equipamentos móveis

(telemóveis, PDA’s)

(9)

Os componentes do J2EE

Do 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)

(10)

10

Os componentes do J2EE

Do 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

s2

get 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

•...

(11)

Os componentes do J2EE

Do 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>"); } }

(12)

12

Os componentes do J2EE

Do 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>

(13)

Os componentes do J2EE

Do lado do servidor – Lógica de negócio

n

Lógica do negócio

¨

EJB (Enterprise Java Beans)

n

Gestão de transacções

n

Segurança

(14)

14

Os componentes do J2EE

Do 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

(15)

Os componentes do J2EE

Do lado do servidor – Lógica de negócio

n

Session beans (sessão)

¨

Representar processos de negócio

(16)

16

Os componentes do J2EE

Do 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)

(17)

Os componentes do J2EE

Do 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 infinita

n

O programador só tem de usar dados em memória

n

Encontra-se sob um ambiente transaccional

¨

Os beneficios são:

n

O “EJB container” controla todo o ambiente transaccional

n

O “EJB container” pode tratar de toda a preservação de dados no SGBD

n

O SGBD utilizado é completamente transparente para o programador /

portabilidade no meio de armazenamento

(18)

18

Os componentes do J2EE

(19)

Os componentes do J2EE

Do 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)

(20)

20

Os componentes do J2EE

Do 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!!!!!";

}

}

(21)

Os componentes do J2EE

Do 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;

}

(22)

22

Os componentes do J2EE

Do 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;

}

(23)

Os componentes do J2EE

Do lado do servidor – Lógica de negócio

META-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>

(24)

24

Os componentes do J2EE

Do lado do servidor – Lógica de negócio

HelloWorld.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 );

(25)

Os componentes do J2EE

Do lado do servidor – Lógica de negócio

//Lookup the bean using it's deployment id Object 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 HelloObject

HelloObject 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(); }

} }

(26)

26

J2EE, Integração

n

Como integrar com um SGBD?

n

Como integrar com um sistema legado?

n

Como integrar sistemas entre negócios

(27)

J2EE, Integração

n

Como integrar com SGBD’s

¨

JDBC

n

API para Integrar com SGBD’s

¨

JTA

(28)

28

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

(29)

J2EE, Integração

n

Business integration (B2B)

(30)

30

J2EE, Integração

WebServices

Processador de XML

via SAX ou DOM

Composição e Parsing de mensagens SOAP

Interface com o sistema UDDI

(publicar e pesquisar webservices)

“Compile time utilities”

(31)

J2EE versus .net

Apenas em

O.S. Microsoft ?

Qualquer S.O.

que suporte a

JVM

Portabilidade

no S.O.

Microsoft ?

30 vendedores

Portabilidade

do vendedor

Produto

Especificação

Especificação

ou produto

.NET

J2EE

(32)

32

(33)

J2EE versus .net

MS Host Integration

Service

JNI, CORBA, JMS e

Java Connector

Architecture

Integração com software

legado

SOAP, WSDL, UDDI

JAXM (SOAP, ebXML)

JAXR (WSDL, UDDI)

JAX-RPC

WebServices

MSXML (SAX & DOM)

JAXP (SAX & DOM)

XML Parsing

ADO.net

JNDI

Serviços de directoria

ADO.net

JDBC

Acesso a base de dados

.net

J2EE

Referências

Documentos relacionados

A análise das competências e tendências relacionadas ao perfil de Gestão da Inovação possibilita observar a relevância dada pelos setores produtivos a este

Em relação aos objetivos, a pesquisa é do tipo exploratória (pretende discutir um problema relativamente pouco investigado) e descritiva (devida à caracterização

falhar inesperadamente: 1. Verifique se o tipo e o nível de solução de Controlo de Qualidade correspondem ao tipo de teste e às informações do intervalo de QC. Verifique o prazo

Vários fotógrafos importantes que se afastaram do realismo em direção à arte no final do século xx retornaram à fotografia pura para ex- plorar as formas por meio da abstração.

A gente tem um PIB forte, mas um mercado de trabalho ainda fraco, justamente porque os setores que empregam mais são os setores que estão para trás

O seu bebé irá dormir seguro e confortável, pois os materiais duradouros do estrado do berço foram testados para garantir que dão o apoio corporal necessário.. O estrado pode

The aim of this study is to compare the floristic composition of Orchidaceae among different areas of Northwestern South America using similarity and grouping analysis, and to

Tendo isto em mente, é possível verificar que a Recomendação n⁰ 62/2020 do Conselho Nacional de Justiça atua senão como um dever de observância pelas