JBoss AOP: Tópicos Avançados de Programação Orientada a Aspectos. Kabir Khan Flavia Rainone

Tamanho: px
Começar a partir da página:

Download "JBoss AOP: Tópicos Avançados de Programação Orientada a Aspectos. Kabir Khan Flavia Rainone"

Transcrição

1 JBoss AOP: Tópicos Avançados de Programação Orientada a Aspectos Kabir Khan Flavia Rainone

2 Tópicos Extração de Aspectos Programação Orientada a Aspectos Dinâmica Tipos de bindings Carga de classes no JBoss e escopos AOP Tipos de Advices Integração com o JBoss Microcontainer O ContainerJBoss EJB3 Outros Recursos 2

3 Refatoramento - Extração de Aspectos

4 Extração de aspectos O código aparenta estar no lugar errado Se repete com freqüência Difícil de ser adicionado/removido Código não é conciso public void transfer(account from, Account to, float amount){ tm.begin(); boolean error = false; try{ from.debit(amount) to.credit(amount); catch(exception e){ error = true; finally{ if (error)tm.rollback(); else tm.commit(); 4

5 Refatorando Mantenha o código como ele deveria ser: claro e public void transfer(account from, Account to, float amount){ from.debit(amount); to.credit(); 5

6 Refatorando Encapsule a funcionalidade ortogonal num aspecto public class TxInterceptor implements Interceptor{ public Object invoke(invocation inv)throws Throwable{ tm.begin(); boolean error = false; try{ return inv.invokenext(); catch(exception e){ error = true; finally{ if (error)tm.rollback(); else tm.commit(); Utilize pointcuts para aplicar o advice jboss-aop.xml <aop> <bind <interceptor class="txinterceptor"/> </bind> <aop> 6

7 Programação Orientada a Aspectos Dinâmica

8 Programação Orientada a Aspectos Dinâmica JBoss AOP é totalmente dinâmico Métodos AspectManager.addXXX() <aop> <bind <interceptor class="txinterceptor"/> </bind> <aop> Se torna: AdviceBinding binding = new null); AspectFactory factory = new GenericAspectFactory("TxInterceptor", null); AspectDefinition def = new AspectDefintion("TxInterceptor", Scope.PER_VM, factory); AspectManager.instance().addAspectDefinition(def); ScopedInterceptorFactory ifac = new ScopedInterceptorFactory(def); AspectManager.instance().addInterceptorFactory(ifac.getName(), ifac); binding.addinterceptorfactory(ifac); AspectManager.instance().addBinding(binding); 8

9 Programação Orientada a Aspectos Dinâmica Contanto que o joinpoint tenha sido instrumentado podemos adicionar e remover aspectos em tempo de execução Bind Prepare <aop> <prepare <aop> AdviceBinding binding = new null);... AspectManager.instance().addBinding(binding); 9

10 Tipos de Bindings

11 Tipos de Bindings (Per Class/Instance) Domínio Subclasse de AspectManager Um domínio para cada classe Um domínio para cada instância Hierarquia Visibilidade aos aspectos do domínio pai apenas AspectManager POJO CD FOO CD POJO 1 ID POJO 2 ID FOO 1 ID FOO 2 ID POJO 1 POJO 22 FOO 1 FOO 2 Domínios de classes Domínios de instâncias 11

12 Tipos de Bindings (Per public class POJO{ int field; void public class Foo{ int field; void method(); <aop> <bind <interceptor class="someinterceptor"/> </bind> <aop> POJO pojo1 = new POJO(); POJO pojo2 = new POJO(); Foo foo = new Foo(); AdviceBinding newbinding = new null); //Add FieldInterceptor to newbinding... A forma como o binding é adicionado define onde ele será aplicado 12

13 Bindings do tipo Per Class <aop> <bind <interceptor class="someinterceptor"/> </bind> <aop> Adiciona aspectos apenas ao domínio da classe POJO POJO pojo1 = new POJO(); POJO pojo2 = new POJO(); Foo foo = new Foo(); AdviceBinding newbinding = new null); //Add FieldInterceptor to newbinding... Advisor pojoca = ((Advised)pojo1)._getAdvisor(); AspectManager pojomgr = pojoca.getmanager(); pojomgr.addbinding(pojobinding); pojo1.value = 10; //SomeInterceptor + FieldInterceptor pojo2.value = 15; //SomeInterceptor + FieldInterceptor foo.value = 20; //SomeInterceptor 13

14 Bindings do tipo Per Instance <aop> <bind <interceptor class="someinterceptor"/> </bind> <aop> Adiciona aspectos apenas ao domínio da instância POJO1 POJO pojo1 = new POJO(); POJO pojo2 = new POJO(); Foo foo = new Foo(); AdviceBinding newbinding = new null); //Add FieldInterceptor to newbinding... Advisor pojo1ia = (Advisor)((InstanceAdvised)pojo1)._getInstanceAdvisor(); AspectManager pojo1mgr = pojo1ia.getmanager(); pojo1mgr.addbinding(pojobinding); pojo1.value = 10; //SomeInterceptor + FieldInterceptor pojo2.value = 15; //SomeInterceptor foo.value = 20; //SomeInterceptor 14

15 Bindings do tipo Per Instance - Examplo Exemplo de uso: POJO Cache Insere um objeto no cache Dinamicamente associa interceptadores de campos Garante que o estado seja atualizado no cache O objeto se torna uma janela par a o estado do cache / Person joe = new Person(); joe.setname(joe); joe.setage(30); cache.attach("/persons/joe, joe); Person persons Replicação joe.setname("joey") name=joe age=30 joe sally name Joey age 30 15

16 Carga de Classes no JBoss AS & Escopos AOP

17 Carga de Classes no JBoss AS Um ClassLoader para cada implantação Suportado por um domínio Todos class loaders do domínio compartilham um repositório Visibilidade total de classes entre aplicações distintas Loader Repository? Person Person loadclass(person); loadclass(person); Person.class person.ear Account.class account.ear 17

18 Escopos AOP no JBoss AS Podemos querer que uma classe não seja visível por outra Duas versões da mesma aplicação Sobrescrevendo classes do servidor É possível ainda ver classes do domínio global, mas domínios irmãos não conseguem ver uns aos outros Global Loader Repository Child/Scoped Repositories Person Account person.ear account.ear Dog (1) dog1.ear Dog (2) Person (override) dog2.ear jboss-app.xml: <jboss-app> <loader-repository> some:unique=name <loader-repository-config> java2parentdelegation=false </loader-repository-config> </loader-repository> </jboss-app> 18

19 Escopos AOP no JBoss AS Aspectos implantados no domínio global são visíveis a todas as aplicações Aspectos implantados num subdomínio são visíveis somente no seu domínio Global Loader Repository Child Repositories dog1.ear/ dog1-ejb.jar/ dog1-aspects.aop/ BarkAspect.class META-INF/ jboss-aop.xml dog2.ear/ dog2-ejb.jar/ dog2-aspects.aop/ BiteAspect.class META-INF/ jboss-aop.xml <aop> <aspect class= BarkAspect"/> <bind pointcut="all(dog)"> <interceptor class= BarkAspect"/> <bind> </aop> <aop> <aspect class= BiteAspect"/> <bind pointcut="all(dog)"> <bind> </aop> <interceptor class= BiteAspect"/> 19

20 Tipos de Advices

21 Tipos de Advices 5 tipos de advices: Before Around After After-throwing ou Throwing Finally Assinatura flexível com parâmetros anotados Caller, Target, Arg, Args, JoinPoint, Thrown, Return Mensagens de erro mais claras Overloaded advices 21

22 Around vs. Before/After/Throwing/Finally Around utiliza Invocations Informações do JoinPoint Meta-dados, abjeto alvo e argumentos <aspect class="demoaspect"/> <bind pointcut="execute(double POJO->calculate(int)"> <advice name="demoaspect" name="invoke"/> </bind> public class DemoAspect{ public Object invoke(methodinvocation inv)throws Throwable{ Object[] args = inv.getarguments(); Annotation ann = inv.resolveannotation(annotation.class); String metadata = inv.getmetadata("security", "principal"); Method m = inv.getmethod(); Object target = inv.gettargetobject(); return inv.invokenext(); 22

23 Around vs. Before/After/Throwing/Finally É possível obter o comportamento completo de b/a/t/f com um advice do tipo around Criação de Invocations public class DemoAspect{ public Object invoke(methodinvocation inv)throws Throwable{ Object ret = null; try{ //Before ret = inv.invokenext(); //After return ret; catch(exception e){ //Throwing finally{ //Finally 23

24 Around vs. Before/After/Throwing/Finally <aspect class="bataspect"/> <bind pointcut="execute(double POJO->calculate(int))"> <before name="bataspect" name="before"/> <after name="bataspect" name="after"/> <throwing name="bataspect" name="throwing"/> </bind> <bind pointcut="field(* POJO->i)"> <before name="bataspect" name="before"/> </bind> Benchmarks mostram ganho de 15/20x public class BATAspect{ void MethodInfo POJO int i){ log.info("calling " + info.getmethod().getname() + "(" + i + ") on " + tgt); void POJO tgt){ 24

25 Integração com o JBoss Microcontainer

26 JBoss Microcontainer Framework de injeção de dependências Substitui o micro kernel JMX no JBoss 5 Padrão JMX Gerenciamento de dependências e de ciclo de vida além do JMX Serviços são simples POJOs JMX disponibilizado como um aspecto Permite que os serviços do JBoss rodem fora do servidor, em uma aplicação standalone/ ou em outros containers JBoss everywhere 26

27 Implantando um Bean no MC Implante beans no JBoss com um arquivo -beans.xml some-beans.xml <deployment> <bean name="simple" class="simplebean"> <property name="value">hello</property> </bean> <bean name="dependent" class="dependentbean"> <property name= dependency"><inject bean="simple"/></property> </bean> </deployment> public class SimpleBean{ String value; public void setvalue(string val){ value = val; public class DependentBean{ SimpleBean dependency; public void setdependency(simplebean dep){ dependency = dep; 27

28 Integração do Microcontainer com o JBoss AOP Aspectos gerenciados Anotações por bean Dependências de aspectos são propagadas aos beans interceptados Recursos de AOP através do arquivo xml de arquivo *- beans.xml 28

29 Aspectos Gerenciados some-beans.xml <deployment> <bean name="txmanager" class="txmanager"/> <aop:aspect xmlns:aop="urn:jboss:aop-beans:1.0" name="transactional" code="txinterceptor" <property name= txmanager"><inject bean="txmanager"/></property> </aop:aspect> <bean name="simplenotx" code="simplebean"/> <bean name="simpletx" code="simplebean"> </bean> </deployment> public class TxInterceptor implements Interceptor{ TxManager tm; public void settxmanager(txmanager tm){ this.tm = tm; public Object invoke(invocation inv) throws Throwable{... 29

30 Exemplo: JMX no JBoss 5 MC é o core do JBoss 5 O MBeanServer é instalado como um bean Os arquivos no formato antigo -service.xml são aceitos O bean é registrado no MC e no JMX -beans.xml instala beans no MC Sem JMX... A é requerida para registrar o bean no MBean Server <deployment> <bean name="mcandjmxbean" class="somebean"> exposedinterface=somebeaninterface.class) </annotation> </bean> </deployment> public interface SomeBeanInterface{ int getattribute(); void setattribute(int i); String operation(string s); 30

31 Exemplo: JMX como um Aspecto Microcontainer registermbean() start() JMX ASPECT Bean 31

32 O Container JBoss EJB 3

33 JBoss EJB3 Evolução do container EJB2.1 Proxy dinâmico com interceptadores do lado do cliente Comportamento do container é definido através de interceptadores Utiliza AOP para configurar os proxies do cliente e do servidor SLSB, SFSB, MDB Mapeamentos padrão para cada tipo de bean Podem ser sobrescritos/customizados deploy/ejb3-interceptors-aop.xml Internamente o container utiliza Invocations e Interceptors Criados no proxy dinâmico do cliente e passados adiante para o servidor Client JVM Client EJB Container 33

34 Lado Cliente ejb3-interceptors-aop.xml <stack name="statelesssessionclientinterceptors"> <interceptor-ref name="islocalinterceptor"/> <interceptor-ref name="securityclientinterceptor"/> <interceptor-ref name="clienttxpropagationinterceptor"/> <interceptor-ref name="invokeremoteinterceptor"/> </stack> <stack name="clusteredstatelesssessionclientinterceptors"> <interceptor-ref name="islocalinterceptor"/> <interceptor-ref name="securityclientinterceptor"/> <interceptor-ref name="clienttxpropagationinterceptor"/> <interceptor-ref name="clusterchooserinterceptor"/> <interceptor-ref name="invokeremoteinterceptor"/> </stack> <stack name="statefulsessionclientinterceptors">.../stack> @Clustered public class TestBean implements TestRemote{... 34

35 Lado Servidor ejb3-interceptors-aop.xml <domain name="stateless Bean"> <bind pointcut="execution(public <interceptor-ref name="authorizationandauthentication"/> </bind> <bind pointcut="execution(public <interceptor-ref name="runassecurityinterceptorfactory"/> </bind> <bind pointcut="execution(public <interceptor-ref name="replicantsmanagerinterceptorfactory"/> </bind> <bind pointcut="execution(public * *->*(..))"> <interceptor-ref name="statelessinstanceinterceptor"/> <interceptor-ref name="txinterceptorfactory"/> <interceptor-ref name="ejb3interceptorsfactory"/> </bind> </domain> <domain @Clustered public class TestBean implements TestRemote{... 35

36 Customizando a pilha de interceptadores public class MyClientInterceptor implements Interceptor{ public String getname(return "MyClientInterceptor"; public Object invoke(invocation inv) throws Throwable{ invocation.getmetadata().addmetadata( "CUSTOM", "ip", getlocalipaddress()); return inv.invokenext(); public class MyServerInterceptor implements Interceptor{ public String getname(return "MyServerInterceptor"; public Object invoke(invocation inv) throws Throwable{ System.out.println("Call coming from" + invocation.getmetadata( "CUSTOM", "ip")); return inv.invokenext(); 36

37 Customizando a pilha de interceptadores my-custom-aop.xml <aop> <stack name="myclientstack"> <interceptor-ref name="islocalinterceptor"/> <interceptor-ref name="securityclientinterceptor"/> <interceptor-ref name="clienttxpropagationinterceptor"/> <interceptor-ref name="myclientinterceptor"/> <interceptor-ref name="invokeremoteinterceptor"/> </stack> <domain name="mydomain" extends="stateless Bean" inheritsbindings="true"> <bind pointcut="execution(* *->*(..))"> <interceptor class="myserverinterceptor"/> </bind> </domain> </aop> myejb.jar MyClientInterceptor.class MyServerInterceptor.class TestBean.class TestRemote.class my-custom-aop.xml public class TestBean implements TestRemote{... 37

38 Interceptadores EJB3 Interceptação de métodos de negócio Faz parte da especificação public class MyInterceptor public Object intercept(invocationcontext invocation) throws Exception { System.out.println( MyInterceptor called ); ejb-jar.xml <assembly-descriptor>... <interceptor-binding> <ejb-name>mybean</ejb-name> <interceptor-class>myinterceptor</interceptor-class> <method-name>dosomething</method-name> </interceptor-binding> </assembly-descriptor> 38

39 Eventos de ciclo de vida public class MyInterceptor public Object intercept(invocationcontext invocation) throws Exception { Object target = invocation.gettarget( ); Field[] fields = target.getclass().getdeclaredfields( ); for (Field field : fields) { MyAnnotation annotation = field.getannotation(myannotation.class); if (annotation!= null) { Object obj = // determine field value field.setaccessible(true); field.set(target, obj); invocation.proceed( ); ejb-jar.xml <assembly-descriptor>... <interceptor-binding> <ejb-name>mybean</ejb-name> <interceptor-class>myinterceptor</interceptor-class> <method-name>dosomething</method-name> </interceptor-binding> </assembly-descriptor> 39

40 Outros Recursos Cflow dinâmico Pointcut plugável Declaração de regras de contrato... Erro Aviso AspectFactory Meta-dados Precedência de advices Introdução de anotações 40

41 Resumo JBoss AOP é core no JBoss: Microcontainer POJO Cache, JBoss EJB3, JBoss Messaging Totalmente dinâmico Aspectos podem ser implantados em tempo de execução Aspectos globais/por classe/por instância Entende o sistema de carga de classes do JBoss Implantação com escopo Typed advices fornecerão melhorias no desempenho Pode ser utilizado em aplicações standalone Mais informações: 41

42 Dúvidas? 42

Programação Orientada a Aspectos

Programação Orientada a Aspectos Programação Orientada a Aspectos Bibliotecas Dinâmicas Motivação class MyClass { public MyClass() {......... public void method1 () public... void method1 () {...... public int method2() {... public...

Leia mais

Programação Orientada a Aspectos Dinâmica

Programação Orientada a Aspectos Dinâmica Universidade de São Paulo Instituto de Matemática e Estatística MAC 5701 Tópicos em Ciências da Computação Programação Orientada a Aspectos Dinâmica Flávia Rainone fla@ime.usp.br Orientador: Francisco

Leia mais

Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações de negócio

Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações de negócio [Web Boas Práticas Design Patterns Orientação a Objetos AOP Spring.NET] Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações

Leia mais

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

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side

Leia mais

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente Java RMI - Remote Method Invocation Callbacks Folha 9-1 Vimos, na folha prática anterior, um exemplo muito simples de uma aplicação cliente/ servidor em que o cliente acede à referência remota de um objecto

Leia mais

Computação Paralela. Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

Computação Paralela. Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Computação Paralela Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Dezembro 2005 Fases de desenvolvimento de aplicações paralelas

Leia mais

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

TDC2012. EJB simples e descomplicado, na prática. Slide 1 TDC2012 EJB simples e descomplicado, na prática Slide 1 Palestrantes Kleber Xavier Arquiteto Senior / Globalcode kleber@globalcode.com.br Vinicius Senger Arquiteto Senior / Globalcode vinicius@globalcode.com.br

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Sistemas Operacionais: Threads

Sistemas Operacionais: Threads Sistemas Operacionais: Threads Threads Única linha de execução x múltiplas linhas de execução Benefícios Tempo de resposta Compartilhamento de recursos Economia de recursos Desempenho em arquiteturas multiprocessadas

Leia mais

Enterprise Java Beans (III)

Enterprise Java Beans (III) Enterprise Java Beans (III) Professor: Diego Passos UFF dpassos@ic.uff.br Baseado no material original cedido pelo Professor Carlos Bazilio Última Aula Disponibilização do EJB no container. Arquivo descritor.

Leia mais

Autenticação e Controle de Acesso

Autenticação e Controle de Acesso J530 - Enterprise JavaBeans Autenticação e Controle de Acesso Helder da Rocha (helder@acm.org) argonavis.com.br 1 Controle de acesso a autenticação A especificação EJB define controle de acesso a métodos

Leia mais

Aspectos para Leigos. Programação Orientada a. Aprenda a dar os primeiros passos no paradigma orientado a aspectos usando o AspectJ com anotações.

Aspectos para Leigos. Programação Orientada a. Aprenda a dar os primeiros passos no paradigma orientado a aspectos usando o AspectJ com anotações. Eduardo Guerra (guerra@mundoj.com.br / Twitter @emguerra) é desenvolvedor de frameworks, pesquisador em design de software, editor-chefe da revista MundoJ e professor do ITA, onde concluiu sua graduação,

Leia mais

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e

Leia mais

Desenvolvimento de aplicações Web. Java Server Pages

Desenvolvimento de aplicações Web. Java Server Pages Desenvolvimento de aplicações Web Java Server Pages Hamilton Lima - athanazio@pobox.com 2003 Como funciona? Servidor web 2 Internet 1 Browser 3 Arquivo jsp 4 JSP Compilado 2 Passo a passo 1 browser envia

Leia mais

Invocação de Métodos em Objectos Remotos

Invocação de Métodos em Objectos Remotos Invocação de Métodos em Objectos Remotos Invocações de métodos remotas e locais A remote invocation B local C invocation local E invocation local invocation D remote invocation F Page 1 1 Invocação de

Leia mais

UNIDADE IV ENTERPRISE JAVABEANS

UNIDADE IV ENTERPRISE JAVABEANS UNIDADE IV ENTERPRISE JAVABEANS MODELO J2EE COMPONENTES DE Camada de Negócios NEGÓCIOS JAVA SERVLET, JSP E EJB Nos capítulos anteriores, foi mostrado como desenvolver e distribuir aplicações servlet e

Leia mais

Java RMI. Alcides Calsavara

Java RMI. Alcides Calsavara Java RMI Alcides Calsavara Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância de uma classe Java) situado em outra máquina

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Invocação de Objetos

Leia mais

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre Prática: 1 - A plataforma JEE (Java Enterprise Edition) UBI, DI, Paula Prata SDTF T01 1 Arquitectura

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

THREADS EM JAVA. George Gomes Cabral

THREADS EM JAVA. George Gomes Cabral THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores

Leia mais

AOP - Livro de Receitas

AOP - Livro de Receitas AOP - Livro de Receitas Michel de Montalvão Guedes Abstract Este tutorial visa demonstrar como a AOP (Orientação a Aspectos) pode auxiliar-nos a resolver problemas de complexidade médio-elevada de forma

Leia mais

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Threads Threads Threads Threads Professor: César Melo Slides baseados

Leia mais

Introdução. Programação. Orientada a Objetos: Reuso. Introdução. Classes Abstratas

Introdução. Programação. Orientada a Objetos: Reuso. Introdução. Classes Abstratas Introdução Programação Orientada a Objetos: Reuso Alexandre César Muniz de Oliveira Hierarquia de classes está associada a forma como se distribui conceitos (comportamentos) entre as unidades que compõem

Leia mais

Prova Específica Cargo Desenvolvimento

Prova Específica Cargo Desenvolvimento UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para

Leia mais

Desenvolvimento Web com Framework Demoiselle versão 1.0

Desenvolvimento Web com Framework Demoiselle versão 1.0 Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado

Leia mais

Invocação de Métodos Remotos

Invocação de Métodos Remotos Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso

Leia mais

Mini-curso Gratuito Globalcode Slide 1

Mini-curso Gratuito Globalcode Slide 1 Mini-curso Gratuito Slide 1 Mini-curso Gratuito Introdução Enterprise Java Beans (EJB) 3.0 Slide 2 Agenda Plataforma Java EE Conceitos Iniciais (EJB) Session Bean Message-Driven Bean (MDB) Java Persistence

Leia mais

EJB 3.1: A Community Update

EJB 3.1: A Community Update EJB 3.1: A Community Update Reza Rahman Autor, EJB 3 in Action Expert Group Member, Java EE 6 and EJB 3.1 Fundador, Cognicellence Julho de 2008 1 EJB 3.0: Revisão Breve > As grandes mudanças > EJB simplificado

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

O uso de exceções permite separar a detecção da ocorrência de uma situação excepcional do seu tratamento, ao se programar um método em Java.

O uso de exceções permite separar a detecção da ocorrência de uma situação excepcional do seu tratamento, ao se programar um método em Java. Exceções em Java Miguel Jonathan DCC/IM/UFRJ (rev. abril de 2011) Resumo dos conceitos e regras gerais do uso de exceções em Java O uso de exceções permite separar a detecção da ocorrência de uma situação

Leia mais

Spring Framework Luiz Daniel Creão Augusto laugusto@ime.usp.br Sistemas de Middleware Avançados IME-USP - 2006/02

Spring Framework Luiz Daniel Creão Augusto laugusto@ime.usp.br Sistemas de Middleware Avançados IME-USP - 2006/02 Spring Framework Luiz Daniel Creão Augusto laugusto@ime.usp.br Sistemas de Middleware Avançados IME-USP - 2006/02 Agenda Introdução Inversão de Controle Spring AOP Portable Service Abstractions Spring

Leia mais

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Construção de novas Classes em Java. Classes Atributos Métodos Herança... Construção de novas Classes em Java Classes Atributos Métodos Herança... 1 Exemplo Representação em UML Java (Unified Modeling Language) Stack items : Vector Stack( ) push( ) pop( ) isempty( ) finalize(

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

Plataforma para Agentes

Plataforma para Agentes Plataforma para es JATLite - Java Template, Lite O que é o JATLite? http://java.stanford.edu/ http://www.fe.up.pt/~eol/aiad/jatlite/doc/index.html Pacote de programas em Java permitindo: rápida criação

Leia mais

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br Você Gosta do EJB? O EJB esteve por muito tempo na berlinda do mundo Java É pesado... É complicado... Código muito

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais

UNIVERSIDADE FEDERAL FLUMINENSE CENTRO TECNOLÓGICO INSTITUTO DE COMPUTAÇÃO

UNIVERSIDADE FEDERAL FLUMINENSE CENTRO TECNOLÓGICO INSTITUTO DE COMPUTAÇÃO UNIVERSIDADE FEDERAL FLUMINENSE CENTRO TECNOLÓGICO INSTITUTO DE COMPUTAÇÃO HELIOMAR KANN DA ROCHA SANTOS PROGRAMAÇÃO ORIENTADA A ASPECTOS NITERÓI 2008 2 HELIOMAR KANN DA ROCHA SANTOS PROGRAMAÇÃO ORIENTADA

Leia mais

Descrição: Retorna uma lista com todos os publishers disponíveis no middleware.

Descrição: Retorna uma lista com todos os publishers disponíveis no middleware. 1 Publisher GET http://server:port/publisher Descrição: Retorna uma lista com todos os publishers disponíveis no middleware. Parâmetros: void. status: error: false, message: null, data: publishers: [ description:

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando

Leia mais

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

Num sistema de objectos distribuídos, dois conceitos são fundamentais. Folha 10-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais RMI JAVA MIDDLEWARE Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Camadas Middleware Representação Externa dos Dados Sistemas Operacionais RMI REMOTE METHOD INVOCATION Invocação remota

Leia mais

Stateful Session Beans

Stateful Session Beans J530 - Enterprise JavaBeans Stateful Session Beans Helder da Rocha (helder@acm.org) argonavis.com.br 1 Stateful Session Beans Quando um cliente chama um método de um bean, ele está iniciando um diálogo

Leia mais

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado ARQUITETURA SISGRAD Manual de Utilização Versão: 2.0 Criação: 05 de julho de 2007 Autor: André Penteado Última Revisão: 09 de outubro de 2009 Autor: Alessandro Moraes Controle Acadêmico - Arquitetura SISGRAD

Leia mais

Entity Beans CMP. O que é CMP? Criação de Entity Beans CMP Deployment no JBoss EJB-QL Exemplo Prático

Entity Beans CMP. O que é CMP? Criação de Entity Beans CMP Deployment no JBoss EJB-QL Exemplo Prático Entity Beans CMP O que é CMP? Criação de Entity Beans CMP Deployment no JBoss EJB-QL Exemplo Prático O que é CMP? Container Managed Persistence é a criação automática de lógica de persistência pelo servidor

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira neto Aula 17-18: Middleware: Implementação de RMI (cont.), RPC, Modelo de Eventos, Exemplo com Java RMI Chamadas dinâmicas

Leia mais

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding Introdução à Programação Interface, Polimorfismo e Dynamic Binding Interface Programador Java PLENO Possuir sólida experiência em programação Desenvolvimento na linguagem JAVA Webservice, Struts ou JSF(desejável)

Leia mais

Classes Abstratas e Interfaces

Classes Abstratas e Interfaces Java Básico Classes Abstratas e Interfaces Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br Novembro/2005 Classe abstrata Recurso avançado da OO Não pode ser instanciada Deve ser instanciada

Leia mais

Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática

Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática Java RMI - Remote Method Invocation Folha 5-1 No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

Curso - Padrões de Projeto Módulo 2: Padrões de Criação

Curso - Padrões de Projeto Módulo 2: Padrões de Criação Curso - Padrões de Projeto Módulo 2: Padrões de Criação Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

J550. Model View Controller

J550. Model View Controller J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras

Leia mais

J2EE. J2EE - Surgimento

J2EE. J2EE - Surgimento J2EE Java 2 Enterprise Edition Objetivo: Definir uma plataforma padrão para aplicações distribuídas Simplificar o desenvolvimento de um modelo de aplicações baseadas em componentes J2EE - Surgimento Início:

Leia mais

Entity Beans. Introdução Entity Beans BMP

Entity Beans. Introdução Entity Beans BMP Entity Beans Introdução Entity Beans BMP Agenda Conceitos básicos de persistência Definição de entity beans Recursos Conceitos de programação Típos de entity beans Exemplos de entity beans usando Bean-

Leia mais

Aplicações Distribuídas Cliente/ Servidor Corporativas

Aplicações Distribuídas Cliente/ Servidor Corporativas Aplicações Distribuídas Cliente/ Servidor Corporativas Introdução Desenvolver e distribuir Servlets e aplicativos EJB. Desenvolver e distribuir aplicativos Enterprise JavaBeans (EJB). Introdução Simples

Leia mais

Os Sete Hábitos das Exceções Altamente Eficazes

Os Sete Hábitos das Exceções Altamente Eficazes c o l u n a Mundo OO Os Sete Hábitos das Exceções Altamente Eficazes Aprenda os bons hábitos na modelagem de erros de uma aplicação A modelagem no tratamento de erros de uma aplicação é uma atividade que

Leia mais

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

Message Driven Beans. Apresentação. Introdução Implementação de MDBs Deployment no JBoss Java Messaging Service Exemplo Message Driven Beans Apresentação Introdução Implementação de MDBs Deployment no JBoss Java Messaging Service Exemplo 1 Introdução Message Driven Beans são EJBs que consomem mensagens enviadas para filas

Leia mais

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite

Leia mais

(Aula 17) Threads em Java

(Aula 17) Threads em Java (Aula 17) Threads em Java Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Remote Method Invocation (RMI) Introdução Solução JAVA para Objetos Distribuídos Um objeto existe em uma máquina É possível

Leia mais

Design Patterns (Factory Method, Prototype, Singleton)

Design Patterns (Factory Method, Prototype, Singleton) DesignPatterns (FactoryMethod,Prototype,Singleton) JoãoAntónioPaz LuísMiguelClaro AlbertoManuelGomes N.º12812 N.º12817 N.º12818 FACTORYMETHOD Padrãoquedefineumainterfaceparacriaçãodeobjectos,masdeixaassubclassesdecidirque

Leia mais

Capítulo 4. Packages e interfaces

Capítulo 4. Packages e interfaces Capítulo 4. Packages e interfaces 1/17 Índice Indice 4.1 - Package 4.2 - Interface 2/17 Índice 4.1 Package 4.1 - Package 4.2 -- Interface 3/17 4.1 Package Package ou pacote está para o Java como as directorias

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

Leia mais

Invocação Remota MC704

Invocação Remota MC704 Invocação Remota MC704 Aplicações distribuídas Aplicação distribuída: conjunto de processos que cooperam entre si para prover um serviço ou realizar uma computação normalmente processos precisam invocar

Leia mais

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br WebWork 2 João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 0.5 Última Atualização: Agosto/2005 1 Agenda Introdução WebWork 2 & XWork Actions Views Interceptadores Validação Inversão de Controle (IoC)

Leia mais

MÓDULO Programação para Web 2

MÓDULO Programação para Web 2 MÓDULO Programação para Web 2 USANDO O JSF Continuação Interdependência e Injeção Instâncias de Managed Beans podem conversar entre si para dividir o processamento das requisições dos usuários de acordo

Leia mais

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

EJB. Session Beans. J2EE (C. Geyer) Introdução a SessionBean 1 EJB Session Beans J2EE (C. Geyer) Introdução a SessionBean 1 Autores! Autores " Cláudio Geyer " Eduardo Studzinski Estima de Castro (EJB 3.0) " Gisele Pinheiro Souza (EJB 3.0) J2EE (C. Geyer) Introdução

Leia mais

Java 2 Enterprise Edition Session Beans

Java 2 Enterprise Edition Session Beans Java 2 Enterprise Edition Session Beans Helder da Rocha www.argonavis.com.br 1 Session Beans São objetos de processo de negócio Implementam lógica de negócio, algoritmos, workflow Representam ações Uma

Leia mais

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; um objeto; é definido; Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; class ClasseBase{ é instanciado; $objetobase = new ClasseBase; Caso queira,

Leia mais

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA Lincoln S. Rocha (lincoln@great.ufc.br) POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA Background Artigo do Kiczales 2 3 1 Objetivo da Programação?

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br A arquitetura Enterprise JavaBeans é uma arquitetura de componentes para o desenvolvimento e a implantação de aplicativos de negócio distribuídos

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

Programação com Acesso a BD. Programação com OO Acesso em Java

Programação com Acesso a BD. Programação com OO Acesso em Java Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática

Leia mais

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3)

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3) pg. 1/6 Material de Apoio 5 Herança Observe o código das classes Fatorial e Fibonacci apresentados abaixo. class Fatorial { class Fibonacci { private int n, res; private int n, res; public Fatorial( int

Leia mais

Explorando os novos recursos de EJB 3.1. Fabio Velloso fabio@soujava.org.br

Explorando os novos recursos de EJB 3.1. Fabio Velloso fabio@soujava.org.br Explorando os novos recursos de EJB 3.1 Fabio Velloso fabio@soujava.org.br Esta obra está licenciada sob uma Licença Creative Commons http://creativecommons.org/licenses/by-nc-sa/2.0/br/ Fabio Velloso

Leia mais

Java Threads. Introdução

Java Threads. Introdução Java Threads mleal@inf.puc-rio.br 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização

Leia mais

Mapeamento Lógico/Relacional com JPA

Mapeamento Lógico/Relacional com JPA Mapeamento Lógico/Relacional com JPA Elaine Quintino da Silva Doutora em Ciência da Computação pelo ICMC-USP/São Carlos Analista de Sistemas UOL PagSeguro Instrutora Globalcode Agenda! Persistência de

Leia mais

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

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br)

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br) Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) (kalinowski@ic.uff.br) Agenda Arquiteturas Web em Java (Relembrando) Arquitetura Java EE Introdução a Enterprise Java Beans

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Orientação a Objetos em Java Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução; Orientação a Objetos; Orientação a Objetos em Java; Leonardo Murta Orientação a Objetos em Java 2 Agosto/2007

Leia mais

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos. Encapsulamento Programação Orientada a Objetos Encapsulamento de Dados Ocultação de dados Garante a transparência de utilização dos componentes do software, facilitando: Entendimento Reuso Manutenção Minimiza as interdependências

Leia mais

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações Programação Orientada por Objectos com Java www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt 1 Multithreading 154 Objectivos Ser capaz de: Explicar os conceitos básicos de multithreading Criar threads múltiplos

Leia mais

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação

Leia mais

Boas Práticas no desenvol Aprenda a desenvolver componentes e serviços

Boas Práticas no desenvol Aprenda a desenvolver componentes e serviços SEÇÃO BOAS PRÁTICAS: NESTA SEÇÃO VOCÊ ENCONTRA ARTIGOS SOBRE TÉCNICAS QUE PODERÃO AUMENTAR Boas Práticas no desenvol Aprenda a desenvolver componentes e serviços A tecnologia EJB permite a construção de

Leia mais

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes. Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais

Desenvolvimento Web Avançado com JSF2, EJB3.1 e CDI

Desenvolvimento Web Avançado com JSF2, EJB3.1 e CDI TREINAMENTOS Desenvolvimento Web Avançado com JSF2, EJB3.1 e CDI Desenvolvimento Web Avançado com JSF2, EJB3.1 e CDI 15 de abril de 2013 Sumário i Sobre a K19 1 Seguro Treinamento 2 Termo de Uso 3 Cursos

Leia mais

POO Programação Orientada a Objetos. Classes em Java

POO Programação Orientada a Objetos. Classes em Java + POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

A Linguagem Java. Alberto Costa Neto DComp - UFS

A Linguagem Java. Alberto Costa Neto DComp - UFS A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão

Leia mais

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla 1 1. Conceitos Básicos a. Invocação remota (RPC/RMI)

Leia mais

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ...

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ... Programação Na Web Linguagem Java Parte II Sintaxe António Gonçalves break com o nome do bloco Nome do bloco Termina o bloco class class Matrix Matrix { private private int[][] int[][] mat; mat; public

Leia mais

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Invocação de Métodos Remotos RMI (Remote Method Invocation) Invocação de Métodos Remotos RMI (Remote Method Invocation) Programação com Objetos Distribuídos Um sistema de objetos distribuídos permite a operação com objetos remotos A partir de uma aplicação cliente

Leia mais