next up previous
Next: O padr�o servi�o/sess�o de Up: entidades-e-servicos Previous: A controv�rsia sobre entidades

As interfaces de uma entidade

Tanto no EJB (at� a vers�o 2.1) como no CCM, os componentes tipo entidade representam uma cole��o homog�nea de objetos persistentes. Tal cole��o pode ser um conjunto de contas correntes, ou de produtos, funcion�rios, clientes, etc. Nesses dois modelos, um componente tipo entidade tem duas interfaces: a interface das inst�ncias e a interface home.

A interface das inst�ncias � a interface comum a todos os elementos da cole��o de objetos. Exemplo: interface ContaCorrente, no caso de uma cole��o de contas correntes.

A interface home tem um papel duplo: de f�brica (factory) que sabe criar novos elementos para a cole��o de objetos (exemplo: cria��o de uma nova ContaCorrente) e de buscador (finder) capaz de encontrar elementos com determinadas propriedades (exemplo: buscar ContaCorrente pelo nome do titular). Tanto o EJB como o CCM usam o termo home para a interface usada para fabrica��o e busca de elementos da cole��o (inst�ncias do componente). Pode-se considerar que a interface home � a interface de uma cole��o de objetos e que a interface das inst�ncias � a interface de cada elemento da cole��o.

A pr�tica usual em EJB e CCM � dar � interface home o nome da interface das inst�ncias, com o sufixo Home. Este � um exemplo bem simples, em IDL, de interface de inst�ncia (Customer) e sua correspondente interface home (CustomerHome):

    interface Customer {
        long getId();
        string getName();
        string getPhone();
        void setPhone(in string phone);
    };

    interface CustomerHome {
        Customer create(in long id, in string name, in string phone) raises(CreateException);
        void remove(in long id) raises(RemoveException);
        Customer findById(in long id) raises(NotFoundException);
        CustomerList findByName(in string name);
        CustomerList findByPhone(in string phone);
    };
Embora as interfaces acima n�o sejam de componentes EJB (que t�m suas interfaces definidas em Java) nem de componentes CCM (pois elas n�o satisfazem certas condi��es que n�o v�m ao caso aqui), elas ilustram o conceito de entidade nesses modelos de componentes. Ambos os modelos d�o suporte � gera��o autom�tica de c�digo que faz acesso a um banco de dados para leitura ou atualiza��o do estado persistente das entidades. Al�m disso, ambientes EJB e CCM cuidam autom�ticamente de certos ``aspectos de sistema'' como seguran�a, transa��es e controle de concorr�ncia, al�m de manter e gerenciar pools de threads e de conex�es com servidores de bancos de dados. Lidar com esses aspectos dificulta bastante a constru��o de aplica��es servidoras a partir do zero. O EJB e o CCM resolvem esse problema oferecendo um ``servidor gen�rico e extens�vel'' que cuida dos aspectos de sistema e permite que nele sejam implantados componentes voltados especificamente para as aplica��es. Esse tipo de servidor EJB ou CCM � denominado servidor de aplica��es.


next up previous
Next: O padr�o servi�o/sess�o de Up: entidades-e-servicos Previous: A controv�rsia sobre entidades
Francisco Reverbel
2006-04-18