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!