Swing Faces

4 views
Skip to first unread message

Claudio

unread,
Aug 27, 2010, 4:36:18 PM8/27/10
to JavaSOS
Estimados, Tengo una aplicacion JSF funcionando, está implementada mas
o menos asi:
Hay una capa de presentación formada por los XHTML "enganchados" con
los managed beans de Faces, y estos a su vez se comunican con una
Fachada de la capa de servicios, y esta invoca los diferentes
servicios y tiene ademas acceso a toda la capa de negocios, la capa de
negocios a su vez accede a la capa de datos.

XHTML - ManagedBeans - ServiceFacade - Services - Business - Data
(Solo los XHTML viven en el cliente, los ManagedBeans si bien forman
la capa de presentacion, viven en el servidor)

Necesito ahora hacer un cliente Swing para esta aplicación, o sea,
reemplazar el browser por una aplicación swing. La idea es lograrlo
tocando la menor cantidad de código posible en el servidor.
Mi consulta es: Contra que parte del server deben interactuar mis
objetos del cliente Swing?
Una primera posibilidad es hacerlo contra la fachada, es lo más
natural si tenemos en cuenta que para eso es una fachada, pero capaz
no sea la mejor idea teniendo en cuenta las siguientes cuestiones: Los
ManagedBeans están manejando objetos de negocio, los crean, los mandan
como parametro a la fachada y los reciben como respuesta de la
invocacion de servicios. Deberia replicar/duplicar esto en mis
componentes swing y agregar la complejidad de serializar/des-
serializar estos objetos.
Una segunda posibilidad es intentar que mis componentes Swing
dialoguen con los ManagedBeans, de forma similar a como lo hacen los
XHTML que quiero reemplazar. El problema es que los ManagedBeans
ademàs de tener acceso a Business Objects, también "conocen" a objetos
propios de JSF (SelectItem por ejemplo) y además son muchos beans ...
Una tercera posibilidad es que mi cliente Swing haga por cada request
del usuario un HTTPRequest que termine invocando al FacesServlet con
los mismos parametros que lo hace hoy el browser desde las paginas
Xhtml, esto me abstrae absolutamente de los beans y de los business
objects. El ApplicationServer ni se entera que el request vino de
Swing y no de un browser. La aplicacion Swing tendria que saber armar
el request y saber interpretar el response. Esto me parece que
estaría bueno, pero..... ustedes que opinan???
En fin, si a alguien se le ocurre otra idea mejor (TOCANDO LO MENOS
POSIBLE EL SERVIDOR) soy todo oidos (ojos).
Gracias!!!!!
Claudio

Pablo Saavedra

unread,
Aug 27, 2010, 5:02:01 PM8/27/10
to jav...@googlegroups.com
Hola,

tenes que proveer exactamente la misma funcionalidad? Yo en principio expondría la fachada con SOAP, REST, RMI o algún otro protocolo que te solucione la vida. Usas algún framework tipo spring o ejb en el servidor? Esto te simplifica un poco las cosas.

Si podes reutilizar los objetos del negocio en tu aplicación swing (haciendolos serializables) eso sería idea, solamente tendrías que implementar el código que se comunique con el servidor y que maneje el tema presentación.

Olvidate de mandar requests http al faces servlet, es bastante complejo y no creo que quieras meterte en esa.

Cuál es el objetivo de tener el cliente swing? Por qué no usa el navegador para acceder a la aplicación? Me parece raro que no haya ningún requerimiento extra (por ejemplo, poder trabajar offline).

Saludos.

2010/8/27 Claudio <claudio...@gmail.com>

--
www.JavaSOS.com
Grupo de colaboración Java/J2ee para desarrolladores de habla hispana.

Claudio

unread,
Aug 28, 2010, 12:05:34 AM8/28/10
to JavaSOS

Gracias! Uso Spring en el servidor, en que me facilita las cosas?
Ya se que es raro el tema, digamos que es parte de un experimento que
intento hacer...
Saludos,
Claudio
On Aug 27, 6:02 pm, Pablo Saavedra <pablo.a.saave...@gmail.com> wrote:
> Hola,
>
> tenes que proveer exactamente la misma funcionalidad? Yo en principio
> expondría la fachada con SOAP, REST, RMI o algún otro protocolo que te
> solucione la vida. Usas algún framework tipo spring o ejb en el servidor?
> Esto te simplifica un poco las cosas.
>
> Si podes reutilizar los objetos del negocio en tu aplicación swing
> (haciendolos serializables) eso sería idea, solamente tendrías que
> implementar el código que se comunique con el servidor y que maneje el tema
> presentación.
>
> Olvidate de mandar requests http al faces servlet, es bastante complejo y no
> creo que quieras meterte en esa.
>
> Cuál es el objetivo de tener el cliente swing? Por qué no usa el navegador
> para acceder a la aplicación? Me parece raro que no haya ningún
> requerimiento extra (por ejemplo, poder trabajar offline).
>
> Saludos.
>
> 2010/8/27 Claudio <claudio.roit...@gmail.com>
Reply all
Reply to author
Forward
0 new messages