[patrones] Observer Pattern Remoto

2008-09-05 Por tema Angel Java Lopez
Hola gente!



Me alegro, Leandro, que te haya interesado… Una aclaracion: no tiene nada que 
ver con Biztalk, con el Biztalk que conocemos como producto. Por alguna razón 
lo llamaron asi a Biztalk Service (algún genio del marketing… J), pero creo que 
le van a cambiar el nombre, algo bajo el paraguas del proyecto con nombre clave 
Zurich. Pero aparte del nombre, no usa nada de Biztalk de tu lado. Del lado del 
servidor de Microsoft, usa nuevas tecnologías, no vi que estuviera el producto 
Biztalk involucrado.

 

Desconozco el tema precios, cuando sea liberado, como se va a ofrecer, o si ya 
hay una lista de precios, si va a ser como los servicios de Amazon, mi 
desconocimiento en el tema es total.

 

Lo mismo de Biztalk Services, lo “taguie” como zurich:

 

 http://delicious.com/ajlopez/zurich http://delicious.com/ajlopez/zurich

 

Una explicación de hacia donde apunta Zurich, Ray Ozzie, y las movidas que 
vienen en:

Ozzie foreshadows ‘Zurich,’ Microsoft’s elastic cloud

 http://blogs.zdnet.com/microsoft/?p=1503 
http://blogs.zdnet.com/microsoft/?p=1503

 

Nos leemos!



Angel “Java” Lopez

http://www.ajlopez.com/

 

From: patrones@mug.org.ar [mailto:[EMAIL PROTECTED] On Behalf Of Leandro Tuttini
Sent: Friday, September 05, 2008 12:27 PM
To: patrones List Member
Subject: [patrones] Observer Pattern Remoto

 



[patrones] Observer Pattern Remoto

2008-09-04 Por tema Walter Poch
Hola Leandro,

Mirá yo no soy arquitecto, y no se si tu solución será la óptima; pero para 
hacer lo que queres de abrir puertos etc, lo que podrías es crear una VPN entre 
el server Web y tus clientes; y de esta forma crear una zona segura con puertos 
abiertos.

Una herramienta de la gente de LogMeIn que te permite hacer esto es Hamachi, 
tiene dos version, una gratuita y otra paga.

Es sólo un granito de arena 

Saludos!

Walter G. Poch
.NET Developer

Cell: +54 (9 341) 3353273

e-Mail: [EMAIL PROTECTED]
MSN: [EMAIL PROTECTED]
Skype: walter.poch

wpoch.com.ar


From: Leandro Tuttini 
Sent: Thursday, September 04, 2008 10:36 AM
To: patrones List Member 
Subject: [patrones] Observer Pattern Remoto



  Hola que tal.

  Queria plantear una situacion a ver que cosnejos me dan, y si es posible 
implementarla.

  La idea es aplicar el patron observer pero de forma remota.

  Planteo el escenario:
  Tengo una aplicacion expuesta en la web, que expone una aplicacion web y 
varios servicios, usando wcf y asmx, es indistinto.

  Por otro lado tengo aplicaciones de escritorio que estan dentro de un red 
local, y tienen salida a internet para utilizar la aplicacion.

  Resulta que ante cierta operacion con la aplicacion se deberia procesar 
la logica de negocio (en el servidor remoto) y lanzar una impresion en ciertos 
print server (que se encuentran locales en el red), esto ultimo de imprimir es 
solo una idea, puede se que mas adelante se necesite para enviar otras cosas 
comos e un cash dispenser, o alertas, etc.

  La cuestion es que los clientes tienen salida a internet con lo cual 
pueden acceder a la aplicacion y sus servicios, pero desde el servidor 
expuertos en la web no me puedo comunicar hacia adentro de la empresa, ya que 
como sabran hay firewall y demas aspectos de seguridad.
  Nota: el cliente no tiene servicio expuestos en la web, ni posee 
infraestructura para poder tenerlos, es por eso que la aplicacion esta hosteada 
en servidores de terceros expuestos a internet, con toda la seguridad que esto 
requiere (uso de SSL, etc)

  Entonces que pense, desarrollar un servicio de windows que corrar en los 
sevidores de impresion o en alguna otro pc local a la empresa y que al 
iniciarse se subscriba mediante la llamada a un servicio web, pasandoles la 
informacion de su localizacion, esto se puede sin problemas ya que se tiene 
salida.

  Ahora la otra pata es la compleja y por la cual queria consultar, como 
comunico el servidor con el servicio corriente en las maquians locales, habia 
pensado implementar algo parecido a los que hace la aplicacion de LogMeIn 
(https://secure.logmein.com/home.asp).

  Creo que por ahi saben como funciona, se descarga un cliente que envia 
info a un servidor para registrase, y cuando entra una peticion el server es el 
que se contacta con el cliente, y lo mas interesante es que pasa todos los 
firewall sin necesidad de abrir puertos.

  Esto me permitiria que al procesar en el servidor enviar un mensaje al 
servicio de windows (que se registro) para que imprima localmente o envie un 
mensaje, o etc.

  Se que me diran que realice un servicio que cada cierto tiempo realice 
una consulta a un servicio web para ver si tiene alguna peticion que puede 
estar almacenada en un msqueue, o en una table en la db; pero justamente por 
eso consulto por el patron observer, es mas linda la solucion, ya que los 
clientes se subscriben y desde el servidor se envian los mensajes, ante un 
evento

  La pregunta es: tienen idea como se puede implementar algo similar a como 
funciona logmein, y como es que este servicio puede funcionar sin que los 
firewalls le molesten e identificar una pc en particular.

  Bueno cualquier sugerencia sera de gran ayuda.

  Saludos 




¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile.yahoo.com/onesearchEmoticon1.gif

[patrones] Observer Pattern Remoto

2008-09-04 Por tema José Selesán
Hola Leandro. Pregunto: ¿no te sirve usar un servicio tipo DynDNS para que
desde fuera se vea un servidor de la empresa? Incluso podes mapear puertos
del router a determinado puerto e IP interno. Te digo esto porque por
ejemplo, nosotros porbamos de acceder a un SQL Server interno, desde
internet usando DynDNS y funcionó de 10, aunque tenés el tema de la
seguridad (que no sería mayor problema si en la empresa pones un web service
que haga el trabajo)

Saludos


El 4 de septiembre de 2008 10:54, Alejandro G. Jack
[EMAIL PROTECTED]escribió:

  Event Broker, Remoting



 *From:* patrones@mug.org.ar [mailto:[EMAIL PROTECTED] *On Behalf Of *Leandro
 Tuttini
 *Sent:* Thursday, September 04, 2008 10:36 AM
 *To:* patrones List Member
 *Subject:* [patrones] Observer Pattern Remoto





 Hola que tal.



 Queria plantear una situacion a ver que cosnejos me dan, y si es posible
 implementarla.



 La idea es aplicar el patron observer pero de forma remota.



 Planteo el escenario:

 Tengo una aplicacion expuesta en la web, que expone una aplicacion web y
 varios servicios, usando wcf y asmx, es indistinto.



 Por otro lado tengo aplicaciones de escritorio que estan dentro de un red
 local, y tienen salida a internet para utilizar la aplicacion.



 Resulta que ante cierta operacion con la aplicacion se deberia procesar la
 logica de negocio (en el servidor remoto) y lanzar una impresion en ciertos
 print server (que se encuentran locales en el red), esto ultimo de imprimir
 es solo una idea, puede se que mas adelante se necesite para enviar otras
 cosas comos e un cash dispenser, o alertas, etc.



 La cuestion es que los clientes tienen salida a internet con lo cual pueden
 acceder a la aplicacion y sus servicios, pero desde el servidor expuertos en
 la web no me puedo comunicar hacia adentro de la empresa, ya que como sabran
 hay firewall y demas aspectos de seguridad.

 Nota: el cliente no tiene servicio expuestos en la web, ni posee
 infraestructura para poder tenerlos, es por eso que la aplicacion esta
 hosteada en servidores de terceros expuestos a internet, con toda la
 seguridad que esto requiere (uso de SSL, etc)



 Entonces que pense, desarrollar un servicio de windows que corrar en los
 sevidores de impresion o en alguna otro pc local a la empresa y que al
 iniciarse se subscriba mediante la llamada a un servicio web, pasandoles la
 informacion de su localizacion, esto se puede sin problemas ya que se tiene
 salida.



 Ahora la otra pata es la compleja y por la cual queria consultar, como
 comunico el servidor con el servicio corriente en las maquians locales,
 habia pensado implementar algo parecido a los que hace la aplicacion de
 LogMeIn (https://secure.logmein.com/home.asp).



 Creo que por ahi saben como funciona, se descarga un cliente que envia info
 a un servidor para registrase, y cuando entra una peticion el server es el
 que se contacta con el cliente, y lo mas interesante es que pasa todos los
 firewall sin necesidad de abrir puertos.



 Esto me permitiria que al procesar en el servidor enviar un mensaje al
 servicio de windows (que se registro) para que imprima localmente o envie un
 mensaje, o etc.



 Se que me diran que realice un servicio que cada cierto tiempo realice una
 consulta a un servicio web para ver si tiene alguna peticion que puede
 estar almacenada en un msqueue, o en una table en la db; pero justamente por
 eso consulto por el patron observer, es mas linda la solucion, ya que los
 clientes se subscriben y desde el servidor se envian los mensajes, ante un
 evento



 La pregunta es: tienen idea como se puede implementar algo similar a como
 funciona logmein, y como es que este servicio puede funcionar sin que los
 firewalls le molesten e identificar una pc en particular.



 Bueno cualquier sugerencia sera de gran ayuda.



 Saludos


  --


 ¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
 http://ar.mobile.yahoo.com/onesearch



[patrones] Observer Pattern Remoto

2008-09-04 Por tema Alejandro G. Jack
Leete esto

 

Distributed Systems Patterns

http://msdn.microsoft.com/en-us/library/ms998483.aspx

 

 

 

Broker

http://msdn.microsoft.com/en-us/library/ms978706.aspx

 

Context

Many complex software systems run on multiple processors or distributed 
computers. There are a number of reasons to distribute software across 
computers, for example:

·  A distributed system can take advantage of the computing power of multiple 
CPUs or a cluster of low-cost computers.

·  Certain software may only be available on specific computers.

·  Parts of the software may have to run on different network segments due to 
security considerations.

·  Some services may be provided by business partners and may only be accessed 
over the Internet.

However, implementing a distributed system is not easy because you have to deal 
with issues such as concurrency, cross-platform connectivity, and unreliable 
network connections.

Problem

How can you structure a distributed system so that application developers don't 
have to concern themselves with the details of remote communication? 

Forces

The following forces must be reconciled as you build a distributed system:

·  Although distributed systems provide a lot of advantages, they also tend to 
introduce significant complexity into the software system. Physical and logic 
boundaries exist between processes or computers running on the same network. To 
have objects running on different processes or computers communicating with 
each other across these boundaries, you have to deal with issues such as 
communications, encoding, and security. If you mix these implementation details 
with the application code, a simple change in the communications infrastructure 
could lead to significant code changes.

·  The distribution of the system often occurs after development is complete. 
For example, software may be distributed across multiple servers to increase 
processing power. You would not want to change the application code at this 
late a stage in the life cycle.

·  The details of cross-process communication can be quite tedious. You have to 
deal with TCP/IP sockets, marshaling and unmarshaling, serialization, timeouts, 
and many other challenges. Therefore, it makes sense to have a special team 
focus on the infrastructure so that the application developers do not have to 
learn about remote communications.

·  To maintain the flexibility of being able to move components to different 
locations at deployment time, you must avoid hard-coding the location of 
specific components.

Esto viene de aca y ted a un marco teorico base

 

Enterprise Solution Patterns Using Microsoft .NET

http://msdn.microsoft.com/en-us/library/ms998469.aspx

 

despues pasa a

 

CAB -Event Broker: Pub-Sub for your components

http://blogs.msdn.com/edjez/archive/2005/04/20/CABEventBroker101.aspx

 

aunque sea smart client te sirven los conceptos

 

Smart Client - Composite UI Application Block

http://msdn.microsoft.com/en-us/library/aa480450.aspx

 

 

 

From: patrones@mug.org.ar [mailto:[EMAIL PROTECTED] On Behalf Of Leandro Tuttini
Sent: Thursday, September 04, 2008 10:36 AM
To: patrones List Member
Subject: [patrones] Observer Pattern Remoto

 


 

Hola que tal.

 

Queria plantear una situacion a ver que cosnejos me dan, y si es posible 
implementarla.

 

La idea es aplicar el patron observer pero de forma remota.

 

Planteo el escenario:

Tengo una aplicacion expuesta en la web, que expone una aplicacion web y varios 
servicios, usando wcf y asmx, es indistinto.

 

Por otro lado tengo aplicaciones de escritorio que estan dentro de un red 
local, y tienen salida a internet para utilizar la aplicacion.

 

Resulta que ante cierta operacion con la aplicacion se deberia procesar la 
logica de negocio (en el servidor remoto) y lanzar una impresion en ciertos 
print server (que se encuentran locales en el red), esto ultimo de imprimir es 
solo una idea, puede se que mas adelante se necesite para enviar otras cosas 
comos e un cash dispenser, o alertas, etc.

 

La cuestion es que los clientes tienen salida a internet con lo cual pueden 
acceder a la aplicacion y sus servicios, pero desde el servidor expuertos en la 
web no me puedo comunicar hacia adentro de la empresa, ya que como sabran hay 
firewall y demas aspectos de seguridad.

Nota: el cliente no tiene servicio expuestos en la web, ni posee 
infraestructura para poder tenerlos, es por eso que la aplicacion esta hosteada 
en servidores de terceros expuestos a internet, con toda la seguridad que esto 
requiere (uso de SSL, etc)

 

Entonces que pense, desarrollar un servicio de windows que corrar en los 
sevidores de impresion o en alguna otro pc local a la empresa y que al 
iniciarse se subscriba mediante la llamada a un servicio web, pasandoles la 
informacion de su localizacion, esto se puede sin problemas ya que se tiene 
salida.

 

Ahora la otra pata es la compleja y por la cual queria consultar, como comunico 
el servidor

[patrones] Observer

2007-03-05 Por tema Angel \Java\ Lopez
Hola gente!

Leandro, gracias por el dato, ya lo estoy agregando a mis enlaces de delicious 
(delicious es adictivo...:-)

Bien, no vi algo asi en .NET, pero en el articulo que te habia mencionado mas 
abajo

http://msdn.microsoft.com/msdnmag/issues/06/10/wcfessentials/default.aspx

encontraran la forma de establecer un Http Dual (si, como Florencia de la V 
chiste para argentinos...no pude contenerme :-)

Nos leemos!

Angel Java Lopez
http://www.ajlopez.com/
  - Original Message - 
  From: Leandro Tuttini 
  To: patrones List Member 
  Sent: Tuesday, February 27, 2007 3:49 PM
  Subject: [patrones] Observer


  Hola, que tal.

  No existe algo similar a esto en .NET

  Build asynchronous applications with the Distributed Event-Based Architecture 
for Web Services
  
http://www-128.ibm.com/developerworks/webservices/library/ws-dbarch/?Openca=daw-ws

  Se trata de DEBA - Distributed Event-Based Architecture 

  Este permite por ejemplo implementar un observer sobre web services, pero 
creo que va mas alla ya que esta orientado a objetos distribuidos.

  No se migro algo parecido a .net, jeje, lo pregunto porque como se migran 
tanto proyectos de java por ahi algo como esto es util, aunque veo que es 
complejo.

  Por ahi se puede implementar algo similar adaptando WCF, es posible?

  Saludos

  Angel \Java\ Lopez [EMAIL PROTECTED] escribió:
Hola gente!

Leandro, WCF hace bidireccion sobre algunos transportes, no sobre todos. 
Pueden ver algun detalle mas explicativo que esta corta respuesta en

http://msdn.microsoft.com/msdnmag/issues/06/10/wcfessentials/default.aspx

En cuanto al caso remoto de Observer preguntas por la interfaz en el 
cliente? Por abajo se puede implementar un objeto cliente que converse con el 
objeto Observador que esta en el servidor. En el servidor, el que observa es 
este objeto, y en cuanto recibe algo, le hace callback al objeto en el cliente.

Nos leemos!

Angel Java Lopez
http://www.ajlopez.com/
  - Original Message - 
  From: Leandro Tuttini 
  To: patrones List Member 
  Sent: Tuesday, February 20, 2007 9:51 AM
  Subject: [patrones] Observer


  Angel que tal.

  Me dejaste pensando sobre el comentario de WCF y el canal bidireccional.

  Como se implementaria esto si se tratara de una aplicarlo sobre el 
protocolo http, sea mediante servicios web.

  Entiendo que WCF abstrae de la implementacion fisica del servicio, o sea 
pudiendo cambiar de HTTP, a TCP, o MSQ, etc.
  En FTP entiendo que el framework deje escuchando en un puerto 
determinado, pero en http, no me cierra como queda escuchando sobre el puerto 
80 sabiendo que este si se encuentra en una WAN seguro un firewall impedira 
esto.

  Segun vi el patron observer hace uso de un interfaz para disminuir el 
acoplamiento si es remoto no me cierra como interviene la interfaz.
  A que me refiero como registrar la referencia al objeto remoto.

  Implementar Observer remoto, no seria casi como estar en una arquitertura 
orientada a eventos?
  En donde objetos remotos se subscriben a eventos que les interesan.


  Gracias por la respuesta.
  Saludos


  Angel \Java\ Lopez [EMAIL PROTECTED] escribió:
Hola gente!

Tema interesante, respuesta rapidisima...

- Ahora con WCF (Windows Communication Framework), podemos implementar 
un canal bidireccional, entre dos AppDomains, asi que uno puede escuchar al 
otro

- El Observer puede servir para alertar a otro sistema o parte de 
nuestra aplicacion, de algo que le interese. No necesariamente es una 
presentacion, puede ser, digamos, un sistema de CRM que quiere enterarse que 
hay una nueva venta...

- El Observer local podria igual distribuir remotamente, algun 
evento... Recuerdo alguna implementacion con Remoting... Podria dejar tambien 
algo en una cola de mensajeria, para que alguien remoto se entere de algo, por 
ejemplo el CRM se entere de una nueva venta

- Un Observer local podria grabar algo, como un Event Log, o algo de 
WMI y eso luego ser tomado y procesado mas adelante

- Me daria una vuelta por
http://www.martinfowler.com/eaaDev/OrganizingPresentations.html
http://www.martinfowler.com/eaaDev/MediatedSynchronization.html
en caso de no tener miedo a quedarme pegado con todos los temas 
interesantes que ahi se tratan

- Le daria un vistazo a Enterprise Service Bus para un tema mas 
grande y fascinante...  debe haber algo en
http://www.ajlopez.net/Busqueda.php?Filtro=esb Y para integracion entre 
aplicaciones, como siempre www.integrationpatterns.com

Nos leemos!

Angel Java Lopez
http://www.ajlopez.com/
  - Original Message - 
  From: Leandro Tuttini 
  To: patrones List Member 
  Sent: Monday, February 19, 2007 5:17 PM
  Subject: [patrones] Observer



  Que

[patrones] Observer

2007-02-19 Por tema Angel \Java\ Lopez
Hola gente!

Tema interesante, respuesta rapidisima...

- Ahora con WCF (Windows Communication Framework), podemos implementar un canal 
bidireccional, entre dos AppDomains, asi que uno puede escuchar al otro

- El Observer puede servir para alertar a otro sistema o parte de nuestra 
aplicacion, de algo que le interese. No necesariamente es una presentacion, 
puede ser, digamos, un sistema de CRM que quiere enterarse que hay una nueva 
venta...

- El Observer local podria igual distribuir remotamente, algun evento... 
Recuerdo alguna implementacion con Remoting... Podria dejar tambien algo en una 
cola de mensajeria, para que alguien remoto se entere de algo, por ejemplo el 
CRM se entere de una nueva venta

- Un Observer local podria grabar algo, como un Event Log, o algo de WMI y 
eso luego ser tomado y procesado mas adelante

- Me daria una vuelta por
http://www.martinfowler.com/eaaDev/OrganizingPresentations.html
http://www.martinfowler.com/eaaDev/MediatedSynchronization.html
en caso de no tener miedo a quedarme pegado con todos los temas interesantes 
que ahi se tratan

- Le daria un vistazo a Enterprise Service Bus para un tema mas grande y 
fascinante...  debe haber algo en
http://www.ajlopez.net/Busqueda.php?Filtro=esb Y para integracion entre 
aplicaciones, como siempre www.integrationpatterns.com

Nos leemos!

Angel Java Lopez
http://www.ajlopez.com/
  - Original Message - 
  From: Leandro Tuttini 
  To: patrones List Member 
  Sent: Monday, February 19, 2007 5:17 PM
  Subject: [patrones] Observer



  Que tal, queria plantear la siguiente consulta.

  Resulta que esto repasando el libro de Larman, UML y Patrones, y me surgen 
alguans dudas que queria plantear.

  En muchos ejemplo hace referencia a que el dominio podria hacer uso del 
patron Observer para enviar alertas a la presentacion, cuando comenta esto lo 
hace junto a una aplicacion confeccionada en Swing.

  Esto ultimo me parecio raro ya que a medida que avanza despues habla de 
distribuido pero hasta dodne se el Observer solo funciona si esta en el mismo 
AppDomain, o sea presentacion y Dominio corriendo en el mismo proceso.

  Ahora bien como se aplicaria este mismo concepto si se tratara de una 
aplicacion distribuida, o web, es viable?

  Que alternativas hay para que el negocio informe a la presentacion de 
cambios?.

  Si no se puede utilizar el observer en con al presentacion, en que otros 
casos se usaria?, la verdad mucha utilidad no le veo, mejor dicho no encuentro 
ejemplos mas claros, salvo con al presentacion.

  Bueno seria esto simplemente.
  Saludos



--
  Preguntá. Respondé. Descubrí.
  Todo lo que querías saber, y lo que ni imaginabas,
  está en Yahoo! Respuestas (Beta).
  Probalo ya!