Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fernando Albuquerque - fernando@cic.unb.br JavaBeans & Enterprise JavaBeans Fernando Albuquerque fernando@cic.unb.br (061) 273-3589 Fernando Albuquerque - fernando@cic.unb.br Tópicos n Introdução n Modelo JavaBeans n Propriedades n Eventos n Persistência n Introspecção n EJB Fernando Albuquerque - fernando@cic.unb.br Introdução n Componentes : • Peças de software que aderem a uma especificação definida e que pode ser distribuída e usada em diversas aplicações. • Para transformar uma classe em um componente, é necessário adicionar funcionalidade e respeitar convenções. • Componentes são interligados de modo a construir uma aplicação. • Um componente é desenvolvido com um objetivo específico e não para uma aplicação específica. Fernando Albuquerque - fernando@cic.unb.br Introdução n Modelos de componentes : • Um modelo de componentes define um conjunto de interfaces e classes que precisam ser usadas de uma determinada forma. • Um modelo de componentes especifica como serão expostas as propriedades, métodos e eventos. • JavaBeans é um modelo de componentes para construção de aplicações de forma visual e Enterprise JavaBeans é um modelo de componentes para arquiteturas distribuídas. • Os modelos JavaBeans e Enterprise JavaBeans não são relacionados. • Enterprise JavaBeans não é uma extensão do JavaBeans. Fernando Albuquerque - fernando@cic.unb.br Modelo JavaBeans n Especificação JavaBeans : • Descreve uma arquitetura de componentes para Java baseada nas classes Java. • Define regras que devem ser seguidas de modo a tornar as classes configuráveis e reutilizáveis. • Possibilita que componentes sejam usados por diferentes ferramentas. • Define classes e métodos através dos quais podem ser obtidas informações sobre os componentes. • Padrões definem convenções para nomes dos métodos. Fernando Albuquerque - fernando@cic.unb.br Modelo JavaBeans n Característica de um bean : • Suporte para introspecção e customização. • Suporte para eventos na conexão entre componentes. • Suporte para propriedades. • Suporte para persistência. • Implementado como um arquivo JAR. n Níveis de interação : • Propriedades. • Métodos. • Eventos. Fernando Albuquerque - fernando@cic.unb.br Modelo JavaBeans JavaBean Métodos Propriedades BeanInfo Eventos Configurador JAR Fernando Albuquerque - fernando@cic.unb.br Propriedades n Propriedades : • Propriedades definem as características de um bean. • Propriedades possibilitam a configuração de um bean. • Podem ser lidas ou escritas através de métodos do bean. • Podem ser read-write, read-only ou write-only. • Podem ser simples ou com múltiplos valores, • Podem ser inativas ou ativas. • As ativas geram um evento quando o valor é modificado. • Uma propriedades não tem que ter o mesmo nome de um atributo nem estar relacionado a um único atributo. Fernando Albuquerque - fernando@cic.unb.br Métodos n Métodos : • Definem o que pode ser feito com o bean • Podem ser invocados a partir de outros componentes • Existem convenções para os nomes dos métodos Fernando Albuquerque - fernando@cic.unb.br Eventos n Eventos : • Usados com os métodos para a comunicação entre beans. • São freqüentemente usados para interligar beans. • Usados pelos beans para informar que algo está ocorrendo. • Ao projetar um bean é usado um modelo de tratamento de eventos baseado em delegação. • O modelo de evento contém um conjunto de classes e interfaces. • Os eventos são entregues apenas aos interessados. • Os interessados tem que informar o seu interesse nos eventos. Fernando Albuquerque - fernando@cic.unb.br Persistência n Conceitos : • Um objeto persistente sabe armazenar o seu estado e posteriormente recupera-lo. • Um modelo de persistência facilita a reutilização de componentes. • O mecanismo mais simples para a persistência em JavaBeans é o serviço de serialização. • Existem também serviços que possibilitam o empacotamento e a distribuição de beans. Fernando Albuquerque - fernando@cic.unb.br Persistência n Regras para serialização : • Atributos de um bean serializável precisam ser também serializáveis. • Atributos estáticos não são serializáveis. • Atributos identificados por transient não são serializáveis. • Em uma hierarquia de classes, as classes mais altas são serializadas primeiro. • O processo de serialização armazena informações sobre o tipo da classe mas não sua implementação. • Apenas uma cópia do objeto é armazenada, mesmo que o objeto seja referenciado múltiplas vezes. Fernando Albuquerque - fernando@cic.unb.br Introspecção n Conceitos : • Introspecção é a capacidade de se descobrir características de um componente em tempo de execução. • Podem ser descobertas as propriedades, métodos e eventos. • Ferramentas podem inspecionar um bean de modo a descobrir propriedades e comportamento. • São seguidos padrões que possibilitam a inspeção do bean por um introspector. Fernando Albuquerque - fernando@cic.unb.br Introspecção n Reflexão : • Pode-se obter informações também sobre classes. • Reflexão provê uma forma simples de introspecção. • Aplicável a qualquer classe. • A principal classe se chama Class. • Todo objeto Java tem uma instância de Class. n Exemplos de métodos em Class : • getName getSuperClassgetInterfaces • getFields getMethods getConstructors • getPackage isInterface isPrimitive Fernando Albuquerque - fernando@cic.unb.br EJB n Conceitos : • Arquitetura de componentes para o desenvolvimento de aplicações orientadas a objetos distribuídas. • Define um modelo para componentes a serem executados nos servidores. • Define um modelo para monitores de transações baseados em tecnologias de objetos distribuídos. • Define a estrutura de um framework e os contratos entre os elementos. • Define as responsabilidades dos clientes, servidores e componentes. Fernando Albuquerque - fernando@cic.unb.br EJB n Objetivos : • Ser a arquitetura de componentes padrão para o desenvolvimento de aplicações distribuídas orientadas a objetos na linguagem Java. • Facilitar o desenvolvimento de aplicações, possibilitando que o programador abstraia dos detalhes de baixo nível. • Possibilidade dos servidores atuais serem atualizados de modo a suportar EJB. • Possibilitar o acesso a partir de clientes Java via RMI e a partir de outros clientes via CORBA. • Ser independente de plataforma. Fernando Albuquerque - fernando@cic.unb.br EJB n Elementos de um sistema EJB : • Objetos locais aos clientes. • Containers. • Componentes. n Conceitos importantes : • Objetos distribuídos. • Componentes para servidores. • Servidores de aplicações. • Component Transaction Monitors ( CTM ) Fernando Albuquerque - fernando@cic.unb.br EJB n Objetos distribuídos : • Objetos distribuídos são a base tecnológica dos sistemas atuais baseados em três camadas . • Nos sistemas em três camadas, a lógica de apresentação fica na primeira camada, a lógica do negócio na segunda e o banco de dados na terceira. • Protocolos para objetos distribuídos procuram fazer com que os objetos remotos pareçam ser locais. • A tecnologia de objetos distribuídos é baseada em objetos servidores, skeletons e stubs. • A um tipo de servidor há um skeleton e um stub associado. Fernando Albuquerque - fernando@cic.unb.br EJB • Um protocolo para a chamada de métodos remotos é usado para a comunicação. • As tecnologias CORBA, Java RMI e Microsoft DCOM usam os seus protocolos para chamadas a métodos remotos. • Cada objeto servidor é envolvido por um skeleton que escuta solicitações dos stubs. • Os stubs residem nas máquinas onde se encontram os clientes e se comunicam com os objetosservidores através dos skeletons. • Os stubs e os skeletons escondem o uso do protocolo de chamadas a métodos remotos. Fernando Albuquerque - fernando@cic.unb.br EJB PRIMEIRA CAMADA REDE SEGUNDA CAMADA STUB SERVIDOR SKELETON Cliente invoca o método Comunicação via remoto protocolo de chamada a métodos remotos Cliente recebe o retorno do método Fernando Albuquerque - fernando@cic.unb.br EJB n Componentes EJB : • Executam em containers. • Implementam lógicas dos negócios. n Containers EJB : • Interagem com os EJBs segundo um conjunto definido de interfaces. • Ambientes de execução. • Provêem serviços para os componentes. • Facilitam o desenvolvimento dos componentes. • Múltiplas instâncias tipicamente existem em um container. Fernando Albuquerque - fernando@cic.unb.br EJB n Tipos de componentes EJBs : • EJBs podem ser persistentes ou transientes. • EJBs de sessão são transientes. • EJBs entidades são persistentes. n Características de um EJB de sessão : • Executa em benefício de um único cliente. • É uma extensão do cliente que o criou. • Pode atualizar dados em bancos de dados mas não representa os dados. • Tempo de vida curto. • Destruído em caso de falha do servidor. Fernando Albuquerque - fernando@cic.unb.br EJB n Características de um EJB entidade : • Possibilita acesso compartilhado de múltiplos usuários. • Participa em transações. • Representa dados armazenados de forma persistente. • Dura tanto quanto os dado em um banco de dados. • Uma falha do servidor é transparente ao cliente. • Tem uma referência persistente para o objeto. Fernando Albuquerque - fernando@cic.unb.br EJB n Identificadores : • Todo EJB tem um identificador único. • O identificador de um EJB de sessão o diferencia de outros EJBs do mesmo tipo. • O identificador de um EJB entidade identifica a informação. n Interfaces implementadas por um EJB : • Home interface define um contrato entre um EJB e o seu container. • Remote interface define os serviços que podem ser solicitados pelos clientes. Fernando Albuquerque - fernando@cic.unb.br EJB n Visão do cliente : • Para o cliente um EJB é um objeto CORBA remoto. • Obtida referência para o objeto remoto. • Invocados os métodos como se o objeto fosse local. • Container EJB é um objeto que representa o servidor onde se encontram EJBs. • Um container pode ser encontrado usando-se um serviço de diretório. Fernando Albuquerque - fernando@cic.unb.br EJB ORB Cliente Servidor Finder Container Factory EJB Fernando Albuquerque - fernando@cic.unb.br EJB n Suporte para transações : • Um dos aspectos chave dos EJBs é o suporte para transações distribuídas. • Aplicações podem atualizar dados de forma atômica. • Dados podem estar distribuídos entre múltiplos servidores. • Um Object Transaction Monitor ( OTM ) responsabiliza- se por gerenciar as transações.
Compartilhar