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

Documentos relacionados
Session Beans. Modelam o estado não-persistente

Arquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003

J2EE. J2EE - Surgimento

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Web Technologies. Tópicos da apresentação

UNIDADE IV ENTERPRISE JAVABEANS

EJB. Session Beans. J2EE (C. Geyer) Introdução a SessionBean 1

Java para WEB com Struts 2 e Hibernate

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Programação Na Web. Servlets: Ciclo de Vida. Agenda. Visão geral sobre ciclo de vida. Nascimento de uma Servlet. Execução de uma Servlet

J530 - Enterprise JavaBeans. Introdução a EJB e Stateless. Session Beans. argonavis.com.br. Helder da Rocha (helder@acm.org)

Enterprise Java Beans (I)

Introdução à Plataforma J2EE Java2 Enterprise Edition. Alex de V. Garcia, Dr.

JavaTM RMI - Remote Method Invocation

Desenvolvimento de Sistemas Corporativos Aula 1.5 Introdução a Servlets. Prof. Bruno Moreno

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Middleware de Aplicações Paralelas/Distribuídas

Aplicações Distribuídas Cliente/ Servidor Corporativas

Ciclo de vida; Funcionamento; Requisições e Respostas.

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Aplicações distribuídas em Java Parte II: Componentes EJB

Sistemas Distribuídos

Plataforma J2EE e EJB

Session Bean Stateful

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Stateful Session Beans

Enterprise Java Beans

DESENVOLVIMENTO DE SISTEMAS WEB UNIDADE I Criação de Aplicativos Web. Luiz Leão

Java Server Pages. Arquitectura de uma aplicação distribuída em Internet. Figura 1 Modelo 2

Paradigmas de Computação Paralela

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs Aplicações dinâmicas para a Web: HTTP porto 80

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV1-01. Luiz Leão

Java 2 Enterprise Edition Session Beans

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Enterprise Java Bean. Enterprise JavaBeans

J2EE. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Java Server Pages (JSP)

Desenvolvimento Web TCC Turma A-1

Sumário. Parte Um Visão geral Introdução... 23

Plataforma J2EE Write Once, Run Anywhere

Métodos em Objectos Remotos

Sistemas de Objetos DistribuídosPrimeira Aplicação Java ORB p.1/21

JavaScript Fundamental e Servlet Fundamental

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Java 2 Enterprise Edition RMI-IIOP e Enterprise JavaBeans

Agilizando o processo de redeploy de aplicações Java

A Primeira Aplicação Web com Servlets

Curso de Linguagem Java

J2EE TM Java 2 Plataform, Enterprise Edition

Aplicações Distribuídas

APIs Java para Web Services

Enterprise JavaBeans. Java Deployment Course. por Jorge H. C. Fernandes DI-UFPE Julho de 1999

Aplicações Distribuídas

Tutorial J2EE. Aprendendo EJB de uma maneira fácil! Paulo Silveira

J530 - Enterprise JavaBeans. Message-driven Beans. argonavis.com.br. Helder da Rocha

O caminho do inferno está pavimentado de boas intenções. Marx.

Projeto webservicejax

SIST706 Sistemas Distribuídos

1. Identifique-se na parte inferior desta capa. Caso se identifique em qualquer outro local deste caderno, você será eliminado do Concurso.

Registo de condutor (Protótipo funcional) Página apresentada ao utilizador

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Sistemas Distribuídos

Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim

Enterprise JavaBeansTM

Servlets.

programação de páginas de conteúdo dinâmico

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

1.2- Ambientes de Middleware

TDC2012. EJB simples e descomplicado, na prática. Slide 1

Java para WEB. Servlets

Java RMI. Alcides Calsavara

J820. Testes em J2EE com. Jakarta C A C T U S. argonavis.com.br. Helder da Rocha

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

2 Criar uma Enterprise Application que num módulo EJB irá conter um ou vários Beans.

Message Driven Beans. Apresentação. Introdução Implementação de MDBs Deployment no JBoss Java Messaging Service Exemplo

Lista de exercícios I - RESPOSTAS Servlets e banco de dados

João Carlos Pinheiro. Julho / 2004

Middleware de Aplicações Paralelas/Distribuídas

Enterprise Java Beans

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Marco Aurélio Uma Visão Geral Sobre Plataforma Java

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

Java 2 Enterprise Edition. Plataforma J2EE: fundamentos e introdução prática. Helder da Rocha

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski

!" # # # $ %!" " & ' ( 2

Sistemas Distribuídos

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

UNIVERSIDADE. Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática

IBM WebSphere MQ. Introdução

Java RMI - Remote Method Invocation. Programação com Objetos Distribuídos (C. Geyer) Java-RMI 1

Transcrição:

J2EE Apresentado por Nuno Nunes TM 1

J2EE Tecnologia Java, A visão O J2EE Resumo da tecnologia J2EE 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 J2EE versus.net TM 2

Tecnologia Java, A visão J2SE Java Standard Edition J2ME Java Micro Edition J2EE Java Enterprise Edition TM 3

Tecnologia Java, A visão J2SE J2EE TM 4

Tecnologia Java, A visão É importante perceber......o J2EE não é um produto, mas uma especificação... TM 5

Tecnologia Java, A visão J2EE Apresentação web Lógica do negócio Ex.: jdbc Recursos Ex.: Servlets, JSP Ex.: Suporte a transacções cliente J2EE Server SGBD s, etc. O J2EE é um enriquecimento do J2SE visando oferecer serviços complementares, importantes, nos ambientes aplicacionais existentes actualmente TM 6

Tecnologia Java, A visão Resumo (APIs J2EE v1.4) Enterprise Java Beans Java Servlet / Java Server Pages JMS Java Transaccion API JavaMail Java API for XML processing (JAXP) Java API XML Based RPC SOAP with Atachments API JAVA API for XML Registries J2EE connector Architecture JDBC API Java Naming and Directory Interface Java Authentication and Authorization service TM 7

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

Do lado do servidor - Tecnologias de apresentação 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 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) TM 9

Do lado do servidor - Tecnologias de apresentação A resposta apresentada no J2EE é constítuida por 2 tecnologias distintas: Servlets JSP s s1 get s1 O WebContainer gere: s2 Segurança get s1 jsp1 Gestão de sessões Gestão de concorrência Error Handling get jsp1 Web Container Gere distribuição... TM 10

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("</head>"); out.println("<body>"); out.println("<h1>hello World!</h1>"); out.println("</body>"); out.println("</html>"); out.println("<title>helloworld!</title>"); TM 11

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> TM 12

Do lado do servidor Lógica de negócio Lógica do negócio EJB (Enterprise Java Beans) Gestão de transacções Segurança Gestão de recursos TM 13

Do lado do servidor Lógica de negócio síncronos Sessão sem estado com estado Enterprise Java Beans Entidade Message Driven Persistentes Gerida pelo próprio bean Gerida pelo container assíncrono TM 14

Do lado do servidor Lógica de negócio Session beans (sessão) Representar processos de negócio Ex.: como receber um pagamento (interagir com) TM 15

Do lado do servidor Lógica de negócio 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) TM 16

Do lado do servidor Lógica de negócio Entity beans (entidades) Representar os dados do negócio (ex.: factura, cliente, items em stock) Porquê os Entity beans, não podemos usar um SGBD? A ideia por trás dos Entity beans é simular um sistema perfeito Fundamentalmente esconde os SGBD s, O sistema nunca perde dados e simula memória infinita O programador só tem de usar dados em memória Encontra-se sob um ambiente transaccional Os beneficios são: O EJB container controla todo o ambiente transaccional O EJB container pode tratar de toda a preservação de dados no SGBD O SGBD utilizado é completamente transparente para o programador / portabilidade no meio de armazenamento Optimizações geridas pelo EJB TM 17

Do lado do servidor Lógica de negócio TM 18

Do lado do servidor Lógica de negócio Message driven bean Criados para responder a sistemas legados Criados para responder a sistemas assíncronos (ex.: JMS) Respondem a mensagens/não gera mensagens TM 19

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!!!!!"; } } TM 20

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; } TM 21

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; } TM 22

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> </ejb-jar> TM 23

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 ); TM 24

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

J2EE, Integração Como integrar com um SGBD? Como integrar com um sistema legado? Como integrar sistemas entre negócios (B2B) TM 26

J2EE, Integração Como integrar com SGBD s JDBC API para Integrar com SGBD s JTA API para gerir transacções TM 27

J2EE, Integração Sistemas legados Java Connector Integration Permite fazer chamadas a procedimentos a aplicações noutras linguagens (tipicamente C ou Cobol) JNI (Java Connector) Especifica uma interface. É possível comprar adaptadores para integrar com outras aplicações CORBA TM 28

J2EE, Integração Business integration (B2B) WebServices, RMI ou CORBA TM 29

J2EE, Integração WebServices Composição e Parsing de mensagens SOAP Compile time utilities Cria os stubs usados pelos webservices Processador de XML via SAX ou DOM Interface com o sistema UDDI (publicar e pesquisar webservices) TM 30

J2EE versus.net Especificação ou produto Portabilidade do vendedor Portabilidade no S.O. Linguagens J2EE Especificação 30 vendedores Qualquer S.O. que suporte a JVM JAVA.NET Produto Microsoft? Apenas em O.S. Microsoft? C#, VB, VC++, etc TM 31

J2EE versus.net TM 32

J2EE versus.net Acesso a base de dados Serviços de directoria XML Parsing WebServices Integração com software legado Segurança J2EE JDBC JNDI JAXP (SAX & DOM) JAXM (SOAP, ebxml) JAXR (WSDL, UDDI) JAX-RPC JNI, CORBA, JMS e Java Connector Architecture J2SE (core security), JAAS, J2EE specific.net ADO.net ADO.net MSXML (SAX & DOM) SOAP, WSDL, UDDI MS Host Integration Service Passport.net TM 33