next up previous
Next: About this document ... Up: ep2 Previous: Os Invocadores do JBoss

O Que Voc� Deve Fazer

Neste exerc�cio voc� implementar� um invocador IIOP que siga o esquema acima. Ao contr�rio do invocador IIOP existente no JBoss, o invocador que voc� escrever� ser� voltado exclusivamente para clientes Java, pois utilizar� proxies din�micos no lado do cliente. Por esse motivo, vamos cham�-lo de JavaIIOPInvoker. Antes de escrever esse invocador voc� deve ler o material sobre service MBeans do JBoss (esse material est� no xerox do CAMAT) e estudar detalhadamente o c�digo de algum dos invocadores existentes no JBoss (o JRMPInvoker, por exemplo).

Al�m de ser um service MBean do JBoss, seu JavaIIOPInvoker deve ser um servente CORBA que implementa a seguinte interface IDL:

    #ifndef _INVOKER_IDL_
    #define _INVOKER_IDL_

    module org {

        module jboss {

            module invocation {

                module javaiiop {

                    typedef sequence<octet> JavaSerializedObject;

                    exception InvocationException {
                        JavaSerializedObject javaException;
                    };

                    interface Invoker {
                        readonly attribute string serverHostName;
                        JavaSerializedObject invoke(in JavaSerializedObject invocation)
                            raises(InvocationException);
                    };
                };
            };
        };
    };
Use o m�todo startService() para registrar o servente CORBA com um POA persistente e para obter uma refer�ncia CORBA para a interface org.jboss.invocation.javaiiop.Invoker.

Escreva tamb�m a classe JavaIIOPInvokerProxy, que implementa um proxy invoker associado a um JavaIIOPInvoker. Esse proxy invoker possui uma IOR para o objeto CORBA remoto implementado por seu JavaIIOPInvoker. Ele implementa a interface org.jboss.invocation.Invoker simplesmente repassando as chamadas ao objeto CORBA remoto. � importante que o JavaIIOPInvokerProxy seja externaliz�vel e que seus m�todos readExternal() e writeExternal() sejam definidos de modo a permitir que ele seja passado por valor do servidor para os clientes.

Para testar e exercitar seu JavaIIOPInvoker, crie uma configura��o do JBoss que use esse invocador como default. Implante num servidor com essa configura��o os EJBs desenvolvidos no EP1, que (em princ�pio) n�o devem precisar de altera��o alguma para funcionarem com o JavaIIOPInvoker.

Sua solu��o deve rodar em JBoss 3.x. Use o programa ant para automatizar a gera��o do seu invocador.

Este exerc�cio deve ser feito preferencialmente em equipes de duas pessoas. O ideal � o esquema de ``programa��o pareada'' (pair programming) de XP. Como alguns podem ter restri��es de hor�rio que os impe�am de trabalhar assim, aceitarei tamb�m exerc�cios individuais.

D�vidas sobre o enunciado devem ser enviadas para reverbel-sma@ime.usp.br.





Bom trabalho!


next up previous
Next: About this document ... Up: ep2 Previous: Os Invocadores do JBoss
Francisco Reverbel
2002-09-30