next up previous
Next: About this document ... Up: invocador-java-iiop Previous: Os Invocadores do JBoss

O Que Você Deve Fazer

Sua tarefa é implementar e testar 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, leia as seções 2.4.2 (JBoss MBean Services) e 2.4.3 (Writing JBoss MBean Services) do JBoss Application Server Guide (disponível em http://labs.jboss.com/portal/jbossas/docs) e estude 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.

Sua solução deve rodar na versão 4.0.4 GA do JBoss. Use o programa ant para automatizar a geração do seu invocador. 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 EJBs compatíveis com a versão 2.1 da especificação EJB, que (em princípio) não devem precisar de alteração alguma para funcionarem com o JavaIIOPInvoker. Use, em seus testes, os componentes EJB 2.1 disponibilizados juntamente com este enunciado.

Dúvidas sobre este trabalho devem ser enviadas para a lista de discussão de SMA.

Bom trabalho!


next up previous
Next: About this document ... Up: invocador-java-iiop Previous: Os Invocadores do JBoss
Francisco Reverbel
2006-10-05