El documento describe cuatro conceptos relacionados con la arquitectura de software: SOA, arquitectura cliente-servidor, SaaS y ASP. SOA se refiere a utilizar servicios para satisfacer los requisitos del negocio de una manera escalable. La arquitectura cliente-servidor distribuye tareas entre servidores y clientes. SaaS ofrece software hospedado en la nube que se accede a través de un navegador. ASP es una tecnología de Microsoft para páginas web dinámicas que funciona con IIS.
1. SOA, ARQ C/S, SAAS, ASP
SOA
Es un concepto de arquitectura de software que define la utilización de servicios para dar
soporte a los requisitos del negocio.
Permite la creación de sistemas de información altamente escalables que reflejan el
negocio de la organización, a su vez brinda una forma bien definida de exposición e
innovación de servicios, los cuales facilita la interacción entre diferentes sistemas propios
o de terceros.
Beneficios
Mejora la toma de decisiones.
Agilidad para habilitar rápidamente soluciones innovadoras y para adaptarse a cambios en
el mercado cuando ocurra.
Aplicaciones más productivas y flexibles.
Desarrollo de aplicaciones más rápido y económico.
Aplicaciones más seguras y manejables.
Capacidad de reutilizar y potenciar otras aplicaciones.
ARQUITECTURA C/S
La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas
se reparten entre los proveedores de recursos o servicios, llamados servidores, y los
demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el
servidor, que le da respuesta. Esta idea también se puede aplicar a programas que se
ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo
multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los
servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la
centralización de la gestión de la información y la separación de responsabilidades, lo que
facilita y clarifica el diseño del sistema.
La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor
no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo
programa. Los tipos específicos de servidores incluyen los servidores web, los servidores
de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos
servicios a otros, la arquitectura básica seguirá siendo la misma.
Características
En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus
características son:
Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la
comunicación.
Espera y recibe las respuestas del servidor.
2. Por lo general, puede conectarse a varios servidores a la vez.
Normalmente interactúa directamente con los usuarios finales mediante una interfaz
gráfica de usuario.
Al contratar un servicio de redes, se tiene que tener en la velocidad de conexión que le
otorga al cliente y el tipo de cable que utiliza, por ejemplo: cable de cobre ronda entre 1
ms y 50 ms.
Al receptor de la solicitud enviada por el cliente se conoce como servidor. Sus
características son:
Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un
papel pasivo en la comunicación.
Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el
número máximo de peticiones puede estar limitado).
No es frecuente que interactúen directamente con los usuarios finales.
SAAS
Software como Servicio (Software as a Service) es un modelo de distribución de software
donde el software y los datos que maneja se alojan en servidores de la compañía de
tecnologías de información y comunicación (TIC) y se accede con un navegador web o un
cliente fino especializado, a través de internet. La empresa TIC provee el servicio de
mantenimiento, operación diaria, y soporte del software usado por el cliente.
Regularmente el software puede ser consultado en cualquier computador, esté presente
en la empresa o no. Se deduce que la información, el procesamiento, los insumos y los
resultados de la lógica de negocio del software están hospedados en la compañía de TIC.
Características
Las características del software como servicio incluyen:
Acceso y administración a través de una red.
Actividades gestionadas desde ubicaciones centrales, en lugar de la sede de cada cliente,
permitiéndoles tener 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 con
múltiples usuarios) que al modelo uno-a-uno, incluyendo arquitectura, precios,
colaboración y administración.
Actualizaciones centralizadas, lo cual elimina la necesidad de descargar parches por parte
de los usuarios finales.
Frecuente integración con una red mayor de software de comunicación, bien como parte
de un mashup o como un enlace para una plataforma como servicio.
ASP
Active Server Pages, es una tecnología de Microsoft del tipo "lado del servidor" para
páginas web generadas dinámicamente, que ha sido comercializada como un anexo a
Internet InformationServices (IIS).
3. Descripción: La tecnología ASP está estrechamente relacionada con el modelo tecnológico
y de negocio de su fabricante. Intenta ser solución para un modelo de programación
rápida ya que "programar en ASP es como programar en Visual Basic y C#", por supuesto
con muchas limitaciones y algunas ventajas específicas en entornos web.
Lo interesante de este modelo tecnológico es poder utilizar diversos componentes ya
desarrollados como algunos controles ActiveX así como componentes del lado del
servidor, tales como CDONTS, por ejemplo, que permite la interacción de los scripts con el
servidor SMTP que integra IIS.
Se facilita la programación de sitios web mediante varios objetos integrados, como por
ejemplo un objeto de sesión basada en cookies, que mantiene las variables mientras se
pasa de página a página.
Es limitado a solo funcionar con IIS, por lo que su uso es cuestionado por la mayoría de los
programadores web quienes prefieren otros lenguajes de programación del lado del
servidor como por ejemplo PHP, Perl, Java Etc.