Ayuda sobre Servicios Web

07/04/2008 - 15:55 por Juan Diego Bueno | Informe spam
Buenas gente:

Estoy inmerso en un proyecto de aplicación distribuida, la cual consta
de un servidor central con una BD central, y una serie de bases de
datos distribuidas en cada uno de los nodos.

La idea, como cabría de esperar, es montar un sistema de réplica
controlado entre el servidor central y los nodos. Se trata de poder
enviar y recibir datos de central a nodo y de nodo a central. Mi
primera idea, básicamente por mis conocimientos actuales, es usar
WebServices. En principio, no tengo mayor problema para hacer lo que
hago, pero me preocupa una cuestión: El WS envía archivos XML con los
registros y el esquema de documento por cada tabla que importo o
exporto. El tema es que estos nodos están en movimiento y en algún
momento han de tener que conectarse vía satélite o móvil. En estos
casos, se suele facturar por la tasa de transferencia de datos y por
ello es necesario que estos sean lo menor posible. Y he aquí mi duda:

¿Puedo de alguna manera comprimir o minimizar este envío y recepción de
datos con WS/XML?
¿Debo pensar en alguna otra posibilidad que me garantice que los datos
que se envían son mímimos? Y de ser así ¿qué más opciones tengo?

Gracias de antemano. Un saludo

http://www.moondance.tk

Preguntas similare

Leer las respuestas

#16 Jesús López
07/04/2008 - 20:21 | Informe spam
¡Yo flipo!

Con un par de rutinillas de ná y menos y con el DataTable ya tenemos un
sistema de sincronización para una base de datos de 100 tablas.
Y todo en una tarde (o dos como mucho) ¡Y además será eficiente!

Macho, eres un monstruo :-)

Saludos:

Jesús López
www.solidq.com




"Alfredo Novoa" escribió en el mensaje
news:

Hola Juan Diego,

On Mon, 7 Apr 2008 09:28:57 -0700 (PDT), Juan Diego Bueno
wrote:

¿Esto no me requiere mucho tiempo de desarrollo?. Estoy hablando de
replicar unas 100 tablas con sus correspondientes campos y tipos...



Hombre, habría que hacer un par de rutinillas que leyesen y
escribiesen cualquier DataTable, no lo vas a hacer 100 veces :-)

Estoy suponiendo que se mandan a cascoporro cada uno de los registros
y luego de ahí tengo que extraer sus campos y traducirlos a la
estructura propia de la tabla. Desde luego, a nivel de información, se
manda la justa, pero me da que esto lleva mucho tiempo implementarlo.



¿Más de media tarde? Yo creo que no.

Casi me convence más usar System.IO.Compression



Es que habría que usar las dos cosas.


Saludos
Respuesta Responder a este mensaje
#17 Alfredo Novoa
07/04/2008 - 21:01 | Informe spam
On Mon, 7 Apr 2008 20:21:57 +0200, "Jesús López"
wrote:

Con un par de rutinillas de ná y menos y con el DataTable ya tenemos un
sistema de sincronización para una base de datos de 100 tablas.



No hombre, con un par de rutinillas tenemos la "serialización" y la
"deserialización" eficientes. Además de esto hacen falta algunas
cosillas más como copiar y pegar un servidor TCP/IP de la ayuda o de
cualquier Web.

Pero ya he puesto en otro mensaje que ni siquiera hace falta esto por
que hay gente que ya lo ha hecho y ha dejado el código por ahí.

Y todo en una tarde (o dos como mucho) ¡Y además será eficiente!

Macho, eres un monstruo :-)



Tu si que eres feo :-)

Es broma :-)


Saludos
Respuesta Responder a este mensaje
#18 Alfredo Novoa
07/04/2008 - 21:25 | Informe spam
On Mon, 7 Apr 2008 20:13:34 +0200, "Jesús López"
wrote:


Si montas un sistema de replicación y/o sincronización en un par de días me
quito el sombrero :-).



Hombre, el primero que monté me llevó cerca de 10 tardes, pero era con
Delphi 1 y cuando todavía estaba empezando. Ahora las cosas son
bastante más sencillas. Después he hecho varios más y no creo que me
hayan llevado más de eso. Al final es más que nada un trabajo de
copiar y pegar cosas que están muy bien documentadas y que traen
montones de ejemplos. Lo único un poco complicado es el tema de la
seguridad si lo quieres hacer bien.

Microsoft tiene un equipo de varias personas sólo para el tema de
replicación en SQL Server y para el Microsoft Synchonization Services
también y ya llevan meses trabajando en él y todavía está en CTP2.



Pero no tiene nada que ver un sistema de sincronización de una
aplicación en concreto que sabes exactamente las 4 cosas que
necesitas, con el de un producto tan genérico como SQL Server.

Esto puede ser una opción interesante. Aun no lo he probado, así que
no se si puede ser eficiente o no.




Es como todo. Si lo usas bien, será eficiente, si lo usas mal se arrastrará.



Si usas XML sin compresion con grandes cantidades de datos ya lo
puedes hacer todo lo bien que quieras que se arrastrará.

Y el BinaryFormatter de .NET Remoting es más
eficiente que el XmlSerializer de los Servicios Web ASP.NET



Cierto, pero sigue siendo horriblemente ineficiente.


Saludos
Alfredo
Respuesta Responder a este mensaje
#19 Juan Diego Bueno
08/04/2008 - 11:56 | Informe spam
Alfredo Novoa ha formulado el lunes :
On Mon, 7 Apr 2008 09:28:57 -0700 (PDT), Juan Diego Bueno
wrote:

Mira, buscando un poco seguro que encuentras cosas ya hechas:

http://www.codeproject.com/KB/cs/Ra...lizer.aspx

Aquí hay un serializador que dice que es mucho más eficiente que el de
Remoting.

"The BinaryFormatter is a horribly inefficient beast for transmitting
data. It creates a large "binary" file and it sucks up huge amounts of
memory because it isn't a stream, and it can crash your application.
For example, a typical use is to package up the contents of a
DataTable:



Está bien este juguetito, de momento he hecho una prueba con una tabla
de 320 registros y 14 columnas y me la ha dejado en apenas 30 Kbs. En
XML, 166 Kbs

Saludos

http://www.moondance.tk
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida