03.29.07
Posted in Programación, Servicios Web at 1:32 pm by Miguel
Arquitectura Orientada a Servicios, o lo que es lo mismo Service Oriented Architecture (SOA).
Como siempre, tiro de Wikipedia para mostraros la definición “oficial” http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios
¿Aplicaciones? Puf.
Un ejemplo simple de la potencia que desprende esta arquitectura. Imaginaros una aplicación encargada de capturar las tomas de los contadores de agua de una comunidad. La aplicación consta de dos partes, una web, que emplean en una oficina central, y otra en una PDA, que utiliza el técnico que realiza la toma. En la aplicación web se encargan de hacer estadísticas, realizar los cobros… la aplicación del técnico se encarga de mostrarle las direcciones de las comunidades de vecinos a las que debe acudir… seleccionar el abonado y asignarle la toma del contador. Ambas aplicaciones tienen una capa de presentación bastante distina, una es web, y otra es una aplicación de escritorio para pda. Pero ambas necesitan en un momento dado obtener los datos de un abonado en concreto. ¿Realizamos la misma consulta para ambas aplicaciones? No, llamamos al mismo servicio web, que nos devolverá los mismos datos, y ya será la propia capa de presentación de cada aplicación la que se encargar de mostrarlo de la manera que deba.
Añadidle a esto la transparencia que supone, las aplicaciones no tienen ni idea de cómo va el modelo y el controlador, sólo tienen la vista, les da igual cómo está programado, la vista recibe XML y punto.
Saludos.
Miguel.
Permalink
03.12.07
Posted in Libros at 7:38 pm by Miguel
Por fin me llegó el último libro que pedí. En este caso estoy hablando de “The Non-Designer’s Design Book” cuya autora es Robin Williams. Podéis encontrar información sobre ella en http://ratz.com/.
El libro viene recomendado por Jesús Castañeda, Certificado por Sun Microsystems, el profesor del último curso al que asistí, el cual contaba con amplia experiencia en Usabilidad. La verdad es que nos lo “vendió” bastante bien, y como considero que mi capacidad de diseñar no es precisamente algo que me diferencie, me decidí a comprarlo.
Por ahora sólo le he echado una ojeada, pero he encontrado exáctamente lo que necesitaba. Una guía para gente como yo, que moviéndose en el mundo del desarrollo no le ha quedado más remedio que realizar diseño, sin tener formación académica sobre ello, y sobre todo, sin tener un especial don para el mismo.
Si os interesa el libro, podéis adquirirlo en http://www.amazon.com, el ISBN es el 0-321-19385-7.
Saludos a todos.
Permalink
03.04.07
Posted in .NET, Programación at 5:01 pm by Miguel
Recuerdo la primera vez (y no tan primera), en la que empecé a trabajar con aplicaciones cliente-servidor, donde el cliente realizaba consultas a la base de datos. En concreto fue una aplicación en un entorno WAMP (Windows-Apache-MySQL-PHP). En aquel momento el problema de realizar consultas se realizaba de manera algo rudimentaria, vamos, la select a piñón en el código, mezclado además entre el propio diseño de la página, y poquito más. La cosa fue mejorando cuando a partir de alguna pequeña técnica y concatenando strings la cosa tomaba mejor forma. Eso sí, el gran salto vino cuando conocí cómo resolver el problema a través de clases de manejo de SQL, las cuales te ayudaban a realizar selects, updates, inserts y deletes, abstrayéndote un poco de lo que es el SQL en sí. Es más, realmente podías hacer una consulta en una base de datos sin tener ni idea de qué era el SQL.
A medida que pasó el tiempo, y con algo más de experiencia, apareció la necesidad clara de relacionar las interacciones contra la base de datos directamente con cada uno de los objetos del modelo de negocio. Es decir, ya no sólo crear las consultas ayudado por una jerarquía de objetos, si no que dichas consultas tuvieran sólo sentido embebidas en las clases que te ayudaban a gestionar el negocio. Ejemplo simple: cuando tengo que realizar una select que me retorna todos los usuarios de mi aplicación, voy a utilizar métodos de mi propia clase de Usuarios que son los que van a tener incorporados por debajo las clases de interacción con la base de datos.
Normalmente se puede hacer una relación 1 a 1 entre las tablas de base de datos maestras de una aplicación y las clases (hablando en términos de programación orientada a objetos). Qué bonito sería, pensaba yo, que cada vez que creo una tabla en mi base de datos, inmediatamente tuviera un objeto que me ayudara a manejarla. Poder acceder directamente a los campos, conocer su tamaño, su tipo, poder añadir métodos para realizar inserts, updates, selects… Es más, era algo que preparaba manualmente. Creaba la tabla, luego un objeto para manejarla, donde cada campo de la tabla era una propiedad de la clase, creaba métodos para realizar inserts, selects… Vamos, para mi una maravilla, era algo laborioso, pero a mi parecer bastante elegante.
Qué bonito, seguía pensando yo, que llegue un momento que este se pudiera crear automáticamente. Y… entonces salió Visual Studio 2005 y los TableAdapter. Madre mia, alguien había escuchado mis plegarias y había hecho exactamente lo que necesitaba. La verdad es que hacía ya tiempo que conocía la existencia de los TableAdapter, pero hasta hace poco no había tenido la ocasión de trabajar directamente con ellos.
Soy totalmente conocedor de que aún me queda bastante tiempo para dominarlos, pero por lo que conozco ahora, realmente me parecen una auténtica maravilla. Para quien desee conocerlos, dejo un link, http://msdn2.microsoft.com/es-es/library/bz9tthwx(VS.80).aspx
Saludos a todos!
Permalink