Tres arquitecturas basadas en web services

20 / Julio / 2010 – 22:42

Por Felipe López Hernández

John Hagel y John Seely Brown (2001) hacen referencia a la arquitectura basada en servicios Web (Web Services) como la “nueva arquitectura”, señalando incluso el inicio del final de los sistemas de información propietarios y el “amanecer” de los servicios compartidos. W3C define un Web Service como un sistema de software diseñado para soportar la interacción e interoperabilidad máquina a máquina sobre una red. Por lo tanto, los servicios Web tiene como principal objetivo proporcionar una forma estándar de interoperabilidad entre diferentes aplicaciones de software que se ejecuta en una variedad de plataformas. Desde mi parecer, a continuación indico cuáles han sido las principales arquitecturas  relacionadas con los Web Services.

Service Oriented Architecture (SOA)

El objetivo de SOA es básicamente la colaboración a través de servicios, los cuales se publican y están disponibles para la invocación en el Service Bus. La adopción de SOA es fundamental para mejorar la agilidad de negocios y la flexibilidad TI prometida por los Web Services. Estos beneficios son entregados por la arquitectura de servicios desde una perspectiva tecnológica y la adopción de protocolos de Web Services, además requieren de un entorno orientado a servicios.

Los resultados han sido que muchas empresas los utilicen en sus plataformas comerciales y que muchas aplicaciones se diseñen y desarrollan bajo una arquitectura orientada a servicios. Además, SOA representa también una oportunidad para el desarrollo incremental, despliegue, mantenimiento y extensión de las aplicaciones de negocios (Natis, 2003).

Representational State Transfer (REST)

Según Tyagi (2006), en el mundo de los Web Services, REST es un “idioma” clave de diseño que abarca una arquitectura cliente-servidor sin estado en el que los servicios web son vistos como recursos y pueden ser identificados por sus direcciones URL. Los servicios web REST se construyen usando HTTP, URIs, XML, JSON, Atom, etc. Los clientes de que utilizan estos recursos acceden a una representación particular mediante la transferencia de contenido de la aplicación usando métodos remotos que describen la acción que debe realizarse en el recurso. REST es una descripción analítica de la arquitectura Web existentes, y por lo tanto la interacción entre el estilo y el protocolo HTTP parece perfecta. REST tiene como principales principios u objetivos la utilización de los estándares Web, tales como HTTP y URI, y aprovechar la arquitectura de la Web para su beneficio.

Los resultados de REST es que actualmente existen una gran cantidad de aplicaciones basadas en REST, que prácticamente cualquier servicio es accesible desde una petición GET en HTTP, en contraposición a SOA que es más restrictiva. De acuerdo con Wikipedia, algunas de las aplicaciones las encontramos en blogosfera, Amazon.com, eBay, Bloglines, Yahoo, Microsoft, Twitter, Google Apps, SalesForce, etc.

Software as a Service (SaaS)

“Software como servicio (del inglés: Software as a Service, SaaS) es un modelo de distribución de software en donde la compañía de tecnologías de información y comunicación (IT) provee el servicio de mantenimiento, operación diaria, y soporte del software usado por el cliente” (Wikipedia, 2010). Por lo tanto, SaaS es una aplicación “hospedada” en un servidor remoto y accedida desde Internet. Muchas de estas son software de negocios y típicamente son de menor costo para que el negocio pueda tener software especializado y que muchos usuarios lo puedan operar. Las características del software como servicio incluyen: acceso y administración a través de una red, actividades gestionadas desde ubicaciones centrales permitiendo a los clientes el acceso remoto a las aplicaciones mediante la Web, la distribución de la aplicación es más cercana al modelo uno-a-muchos (una instancia, múltiples usuarios) que al modelo uno-a-uno, actualizaciones centralizadas y frecuente integración con una red mayor de software de comunicación.

Los resultados es que es una tecnología emergente, y tienen ventaja sobre SOA de que las aplicaciones de software se comunican entre sí. Gartner espera que para el 2010 el 25% del software de negocio sea entregado en una arquitectura SaaS. SaaS está llamando mucho la atención en estos días, se puede decir que SaaS está marcando la pauta para muchos enfoques de modelos de negocio que van desde las Green TIs, plataformas como servicios, Cloud-computing, Grid-computing, Application Service Provider (ASP), etc. Además, según Singla (2009), SaaS envuelve muchas aplicaciones expuestas en la red como son software para soporte a clientes, sistemas financieros, comercio electrónico, sistemas de pago, inteligencia de negocios, administración de ventas y mercadotecnia, entre otras.

Conclusión

Como se puede apreciar, las tres arquitecturas son tecnologías basadas en Web Services que ha emergido en la última década, destacando precisamente a SOA como una arquitectura para la integración de servicios, REST como una arquitectura simple y ampliamente utilizada por su facilidad de acceso todo desde una petición HTTP sin ser restrictivo como lo es SOA, y por último, Software as a Service, la cual envuelve muchas aplicaciones, que en estos días los departamentos de TIs la están tomando mucho en cuenta por las oportunidades de negocio que esta ofrece.

Mapa conceptual

SOA, REST y SaaS en un mapa conceptual de sistemas distribuidos (Dahan, 2008)

Fuentes consultadas

Booth, D.; Hass, H.; McCabe, F.; Newcomer, E.; Champion, M.; Ferris, C. & Orchard, D. (2004). Web Services Architecture. W3C Working Group. From http://www.w3.org/TR/ws-arch/

Dahan, U. (2008). Distributed Systems Conceptual Map.  The Software Simplist, Enterprise Development Expert & SOA Specialist. From http://www.udidahan.com/2008/08/04/distributed-systems-concept-map/

Hagell, J. & Brown, J. S. (2001) Your Next IT strategy. Harvard Business Publishing Corporation. From http://tailieu.athena.edu.vn/Ky%20Nang%20IT/Kinh%20Doanh%20IT/Your%20Next%20IT%20Strategy%20-%20Harvard%20Business%20Review.pdf

Natis, Y. V. (2003). Service-Oriented Architecture Scenario. Gartner Reseach. (ID: AV-19-6751). From http://www.gartner.com/resources/114300/114358/114358.pdf

Singla, V. (2009). The Overlapping Worlds of SaaS and SOA: How SaaS and SOA will enable “IT as a Service”. Cloud Computing Journal. From http://www.dosideas.com/noticias/java/314-introduccion-a-los-servicios-web-restful.html

Sprott, D. & Wilkes, L. (2004). Understanding Service-Oriented Architecture. Microsoft Architect Journal. From http://msdn.microsoft.com/en-us/library/aa480021.aspx

Tilkov, S. (2007). A Brief Introduction to REST.InfoQ. From http://www.infoq.com/articles/rest-introduction

Tyagi, S. (2006). RESTful Web Services. Oracle. From http://java.sun.com/developer/technicalArticles/WebServices/restful/

WIKIPEDIA. (2010). Representational State Transfer. Wikipedia, the free encyclopedia. From http://en.wikipedia.org/wiki/Representational_State_Transfer

Compartir/guardar

Seis aspectos a considerar para el desarrollo Web

18 / Julio / 2010 – 23:12

Por Felipe López

Con base a lecturas en Wikipedia y analizando procesos de desarrollo de algunas empresas encontré que típicamente el proceso de desarrollo de software tradicional y de Web no varían, es decir, generalmente pasan por requerimientos, diseño, implementación, pruebas e implantación. En particular, coincido con G. Engels, M. Lohmann & A. Wagner (2003), quienes señalan que los programadores de aplicaciones web se enfrentan con más frecuencia a nuevos requerimientos (o cambios en estos) que los desarrolladores de sistemas de software tradicional. Por lo tanto el proceso de desarrollo de software tradicional tiene que ser adaptado cuando se desarrolla una aplicación para web de acuerdo a las siguientes aspectos.

  • La duración del proyecto en ciclos de desarrollo son cortos, es decir, de tres a seis meses promedio comparado con las aplicaciones tradicionales que son de 12 a 18 meses.
  • Los requerimientos para aplicaciones web cambian o emergen durante el desarrollo del proyecto.
  • Las liberaciones a plazos fijos conduce a una metodología de desarrollo basada en prototipos.
  • Se presta para el desarrollo paralelo en diferentes versiones, es decir, que muchas actividades en el diseño, implementación y pruebas pueden trabajarse en paralelo para diferentes versiones.
  • La reutilización e integración es necesaria porque la presión por el tiempo conduce a que se desarrollen componentes reutilizables y que se puedan integrar en otros proyectos.
  • Los niveles de complejidad en el desarrollo web es de menor en las primeras etapas, y conforme se van integrando mas perspectivas la complejidad aumenta.

De acuerdo a lo anterior, considero que no se recomienda que los especialistas del proceso de desarrollo de software desarrollen una aplicación web porque esta demanda grupos multidisciplinarios, mucha comunicación y coordinación, además de que los grupos son más pequeños y con semejante expertis.

Fuentes consultadas:

G. Engels, M. Lohmann & A. Wagner.(2006). Web Engineering: The Discipline of Systematic Development of Web Applications. (pp 197-218). John Wiley & Sons.

Wikipedia. (2010). Wikipedia, the free encyclopedia. From http://en.wikipedia.org/wiki/Software_development_process, http://en.wikipedia.org/wiki/Agile_web_development y http://en.wikipedia.org/wiki/Software_development_methodology

Outsource2india. (2010). Application Development Process. From http://www.outsource2india.com/software/process.asp

B. Alexander. (2010). Macronimous. Site Development Process. From http://www.macronimous.com/resources/web_development_life_cycle.asp

Compartir/guardar

Cuatro limitantes en TIs

8 / Julio / 2010 – 22:06

Por: Felipe López

Si bien, se entiende que las tecnologías de información (TIs) han originado grandes beneficios para muchas empresas, también es muy importante tener en cuenta que el uso de las TIs y su administración son muy complejas para muchas empresas. A continuación destaco cuatro limitaciones en cuanto al uso de las tecnologías de información en empresas mexicanas.

Infraestructura de las tecnologías de información

Las tecnologías de información se encuentran soportadas por una infraestructura, es decir, equipos de cómputo, redes, software, bases de datos, etc., por lo tanto, la administración de la infraestructura de TIs y la obtención de los propios recursos de la infraestructura, son algunos de los principales obstáculos por lo que muchas empresas no se pueden beneficiar realmente las TIs.

Tecnologías de información emergentes

Está claro que los crecientes avances en las tecnologías de información generan nuevas oportunidad para las empresas, pero también estamos conscientes de que la “longevidad” de algunas tecnologías ya no alcanza para su implementación o implantación en empresas típicas puesto que la inversión en nuevas tecnologías siguen siendo muy cuestionadas. Otro aspecto de las TIs emergentes, por ejemplo sistemas de comercio electrónico, arquitecturas orientadas a servicios, Web Servises, Software-as-a-Services, Cloud Computing, Grid Computing, comercio móvil, virtualización, etc., suelen ser adoptadas muy tarde puesto que no se cuenta con la infraestructura adecuada, ni con el presupuesto y los conocimiento de que estas demandan. Por señalar algo,  encontré casos como en ReadWriteWeb (2007)  y en AListApart (2006) donde ya desde hace algunos años se ha hablado sobre Web 3.0 mientras que nosotros apenas estamos haciendo la transición de la Web 1.0 a la Web 2.0.

Las TIs requieren personal altamente calificado

En el ámbito de las tecnologías de información, otra limitante para su uso es que las TIs demandan personal cada vez mejor calificados, diseñadores de software, ingenieros en redes y seguridad, administradores de bases de datos, etc., todos estos son ejemplos de puestos profesionales necesarios para la operación de las TIs. Por lo tanto, la contratación de servicios especializados o la capacitación del personal existente en una empresa típica implica decisiones que se salen del alcance de los bolsillos y no entran en el modelo de negocio de la empresa.

Recursos económicos

Muchas empresas han adoptado la subcontratación de empresas de TI, independientemente de que la subcontratación es un tema creciente y que “garantiza” el ahorro en los gastos para los servicios de TIs, las empresas proveedoras de servicios de TIs siguen siendo muy cuestionadas en cuanto a la garantía de los servicios, el costo de los servicios,  y así como también, en la privacidad de la información; sin considerar el los beneficios potenciales.  Otra situación que cabe señalar son los altos costos en la infraestructura de las TIs, por ejemplo en El Universal (2009) se reportó que México tiene los servicios de telecomunicaciones más caros no solo entre los países de la OCDE, sino también entre países del continente. tarifas más caras en telefonía residencial y empresarial, así como también en telefonía celular. Así que las empresas se siguen limitando en la inversión en TIs o en al subcontratación de servicios.

Conclusión

Las limitaciones en el uso de las TIs en empresas típicas de México obstaculizan los beneficios que las mismas TIs prometen, porque el uso de estas no se perpetúa de la mejor manera, aunque a mi juicio estas limitaciones podrían originarse a causas de otro tipo, es decir, cuestiones políticas, económicas, sociales e incluso culturales.

Fuentes consultadas:

  • E. Turban & L. Valdonino. (2009). Information Technology for Management: Information Technology for Management: Improving Performance in the Digital Economy. (7th Edition). USA: John Wiley & Sons.
  • M. Lacity & L. Willcocks. (2009). Information Systems and Outsourcing Studies in Theory and Practice. USA: palgrave macmillan.
  • Cyber Futuristics. (ne). Information Technology Outsourcing. From http://www.cyfuture.com/information-technology-outsourcing.htm
  • El universal. (2009). Tarifas de internet en México, de las más caras. From http://www.eluniversal.com.mx/articulos/55127.html
  • RedWriteWeb (2007). Eric Schmidt Defines Web 3.0. From desde http://www.readwriteweb.com/archives/eric_schmidt_defines_web_30.php
  • A List Apart (2006). A List Apart: Articles: Web 3.0. From http://www.readwriteweb.com/archives/eric_schmidt_defines_web_30.php

Compartir/guardar