Contexto


Las organizaciones del siglo XXI están volteando al uso de sistemas de información apoyados por tecnologías de información y comunicaciones (TIC) para ser más eficientes, reduciendo sus gastos, minimizando sus costos, agilizando sus procesos, generando valor a sus clientes, aumentando las ventas y maximizando sus ganancias.


Cada una de ellas enfrenta una decisión que será crucial a la hora de elegir implementar un sistema de información: manufacturar a la medida el sistema que necesitan o adquirir un sistema con aplicaciones especializadas que prometen tener las mejores prácticas en la operación y control de las funciones de los negocios.

En ambos casos, esta decisión deberá estar acompañada de una estrategia de negocios, el apoyo incondicional de la alta gerencia y, por supuesto, una inversión en tiempo y dinero considerables. Si estas condiciones no se dan, lo único que será garantía será un total fracaso.

La arquitectura de los sistemas de información es parte fundamental de la calidad del producto de software y dependerá del objetivo que se quiera alcanzar y el uso que se le quiera dar.


  • ¿Cuál es la arquitectura de los sistemas que administran las transacciones?
  • ¿Qué estructura tienen la mayoría de los sistemas de información comercial?
  • ¿Qué potencial existe en arquitecturas destinadas al procesamiento del lenguaje?

Esta son algunas de las preguntas que podrás resolver en este tema.

Explicación


Las principales arquitecturas de los sistemas de información que puedes encontrar en diferentes áreas de la organización son sistemas transaccionales, sistemas de información gerencial, y sistemas expertos. Cada una de ellas cubre diferentes necesidades que dependen de las funciones que realice el personal según su nivel operativo. En este tema se analizan los sistemas transaccionales y los sistemas de información gerencial.

9.1 Aplicaciones transaccionales

Los sistemas de información que procesan las transacciones diarias son llamados TPS – transaction processing systems. Permiten registrar las operaciones diarias de la empresa, como por ejemplo: ventas, pagos, nómina, facturación, registros de entradas y salidas de inventarios, por mencionar algunos. Están destinados al uso de áreas operativas más básicas. Sin los sistemas TPS no habría información histórica para que la alta dirección pudiera tomar decisiones fundamentadas y generar estrategias de negocio eficaces.


“Una transacción de base de datos es una secuencia de operaciones que se trata como una sola unidad (una unidad atómica)” (Sommerville, 2011).


Diariamente nos vemos obligados a interactuar con sistemas transaccionales aunque no nos demos cuenta de ello. Si vamos a un supermercado, la cajera registra cada artículo mediante un lector electrónico de código de barras, una computadora hace el cálculo del costo total, registra el pago e imprime la nota o recibo. Este proceso se explica en el siguiente diagrama:


Imagen tomada del libro: Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson. Fig. 6.14. Sólo para fines educativos.


La transacción inicia cuando un usuario solicita al sistema una acción al componente de Procesamiento de Entrada y Salida. Esta solicitud se analiza por el componente de “lógica de aplicación”, se genera la transacción (se llena el registro con toda la información relevante de la transacción) y finalmente se procede a guardarse en una base de datos. Parte importante de este proceso es asegurarse de la consistencia de datos, por lo que el gestor se cerciorará que la información se encuentre completa antes de generar cualquier cambio en la base de datos.

Sommerville (2011), considera que la arquitectura de los sistemas de transacción pueden también organizarse como una arquitectura de “tubería y filtro” agrupando los componentes que hagan las operaciones de entrada, procesamiento y salida.

Por ejemplo, considera la arquitectura de software un cajero automático (ATM). Los componentes de entrada que interactúan con el usuario son considerados como elementos de entrada que a través de una interfaz gráfica obtienen la petición del cliente, mientras que los componentes de proceso, evalúan la instrucción y ejecutan la acción que se verá reflejada a través de los componentes de salida. Esta arquitectura es similar a la de tubería y filtro, ya que los componentes de proceso (filtro) se activarán en relación con la acción solicitada por el cliente.


Arquitectura de software de un ATM. Diagrama tomado del libro: Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson. Fig. 6.15. Sólo para fines educativos.



Sistemas de procesamiento de datos por lotes (Batch data processing systems): estas arquitecturas obtienen o ingresan datos en grupos llamados lotes, ya sea desde/hacia archivos o base de datos.

Sommerville (2011) menciona que esta arquitectura está formada por tres principales componentes: entrada, proceso y salida.

El componente de entrada obtiene los datos de una o varias fuentes de información. El proceso realiza algunos cálculos a los datos recolectados y finalmente la salida los regresa a su fuente o los coloca en otra fuente de información o dispositivo de salida, como una impresora.

Por ejemplo, una compañía telefónica recopila los registros de las llamadas realizadas por sus clientes desde las bases de datos que se encuentran en las centrales telefónicas, las procesa para reconocer el número telefónico origen, número destino y la duración de la llamada, que servirá para calcular el costo y finalmente genera la factura al cliente.

Arquitectura de un sistema de procesamiento de datos por lotes. Tomado de Sommerville, I. (2008). Batch data processing systems. Recuperado de http://ifs.host.cs.st-andrews.ac.uk/Books/SE9/Web/Architecture/AppArch/BatchDP.html

9.2. Sistemas de información

La mayoría de los sistemas de administración son modelados a través de niveles a los que se les asigna un rol de control específico. Por lo general, puedes notar que el nivel superior se relaciona con la interacción del usuario (presentación), el nivel intermedio con componentes que gestionan las funciones del sistema (lógica) y el nivel inferior con el almacenamiento de información (datos).

No existe una única forma de representar estas arquitecturas, cada sistema establece el número de niveles y las funciones que realizará cada componente dentro de cada nivel. A este tipo de arquitecturas también se le conoce como multiniveles (en inglés mult-itier).

Los sistemas de asignación de recursos (Resource allocations systems) son un tipo de arquitecturas ampliamente utilizadas ya que ofrecen versatilidad en la asignación de servicios o recursos del sistema a procesos o usuarios. Algunos ejemplos van desde sistemas de administración de bibliotecas hasta sistemas de administración de tráfico aéreo.

Estos sistemas están basados en arquitecturas en capas. La capa inferior contiene la base de datos de los recursos disponibles en el sistema.

Haz clic en cada concepto para conocer más detalle.

Finalmente, se encuentra la capa de la interfaz de usuario, que controla la interacción del usuario con el sistema, que por lo general es a través de un navegador web.

La capa de autenticación de usuarios, entrega de recursos y gestión de consultas, permite controlar la asignación de recursos a los usuarios acreditados, preparar los recursos que serán utilizados y buscar recursos disponibles en el sistema, respectivamente.

En la siguiente capa aparecen los componentes de gestión, políticas y asignación de recursos:

  • El componente de gestión de recursos permite añadir, eliminar o bloquear recursos.
  • El control de políticas establece las condiciones que se deben cumplir para el uso de recursos. Por ejemplo, en un sistema de tráfico aéreo, el espacio y separación que deben mantener cada avión debe ser administrado por el sistema. Existen zonas exclusivas para la navegación comercial y la distancia entre aviones está regulada. Este tipo de normas las administra este componente
  • El componente de asignación de recursos administra el estado que mantiene cada recurso, constituyendo así el corazón de esta arquitectura. Un error en la asignación de este recurso impediría que un usuario pudiera pedir prestado un libro que se encuentre disponible o en un caso extremo marcaría como disponible una pista de aterrizaje cuando no es así.

La base de datos de recursos permite agregar o eliminar recursos según que requiera o bien bloquear recursos que sólo deban ser utilizados por un usuario o un grupo de usuarios. Todo ello hace que el sistema sea flexible a la hora de asignar recursos en el sistema.

Por otro lado, la arquitectura de un sistema de procesamiento basado en eventos (Event processing systems) se fundamenta en responder cada vez que surge un suceso particular, ya sea que provenga de un usuario o de un proceso interno desde una interfaz.

Estas arquitecturas sirven para aquellas aplicaciones o programas donde los eventos son impredecibles y a la vez se requiere de una respuesta particular a cada evento originado por una interfaz de usuario. Es así como se estructuran programas como los video juegos o aplicaciones ofimáticas (procesadores de palabras, hojas de cálculo y presentaciones) Otro uso que se les da a este tipo de arquitecturas corresponde a aplicaciones en tiempo real que requieren una respuesta a un estímulo externo.

En el siguiente ejemplo, Sommerville (2008) propone un modelo de arquitectura de un sistema que sirve para editar documentos de texto, diagramas o imágenes, de los cuales se espera que el sistema responda rápidamente cada vez que el usuario active una función específica, mientras que mantiene un control de la aplicación cuando surge algún evento inesperado que provoque una falla.

Observa que existen diferentes eventos que disparan acciones independientes sin la existencia de un controlador central, en su lugar los componentes críticos se ejecutan de forma concurrente y de forma directa lo que mejora el tiempo de respuesta del editor.

Modelo de la arquitectura de un sistema de edición. Sommerville, I. (2008). Event processing systems. Recuperado de: http://ifs.host.cs.st-andrews.ac.uk/Books/SE9/Web/Architecture/AppArch/EventProc.html Sólo para fines educativos.

9.3 Sistemas de procesamiento de lenguaje

El procesamiento del lenguaje natural es uno de los principales campos de investigación en las ciencias computacionales, ya que ofrece la posibilidad de acercar la computación a las personas con poco o nulo conocimiento de informática.

El lenguaje natural se refiere a la comunicación hablada o escrita que los usuarios utilizan comúnmente. En contraste con los lenguajes artificiales utilizados para codificar el software, el objetivo de este tipo de procesamiento es manipular el lenguaje natural tal y como se habla o se escribe y transformarlo en instrucciones para la computadora.

Por ejemplo, ahora es muy común que las aplicaciones de celulares inteligentes soporten texto predictivo, reconocimiento de escritura a mano, o traductores automáticos de páginas web, lo que facilita la interacción de los usuarios con las aplicaciones.

La arquitectura de software en la que se basan este tipo de aplicaciones se les llama sistemas de procesamiento de lenguaje o también NLP - Natural Language Processing.

Las aplicaciones prácticas de NLP tienen un interés particular en muchos sectores de la sociedad, tanto comercial como académico. Por ejemplo, durante las elecciones de EE. UU., los equipos de campaña desean conocer qué es lo que más se comenta en las redes sociales, de tal forma que sea posible plantear estrategias políticas en favor de su candidato; una franquicia de cafeterías podría revisar si la opinión de sus fans sobre una nueva bebida es favorable para el negocio; una agencia antiterrorista podría obtener hits de personas que buscan información de fabricación de bombas caseras; un inversionista estaría interesado en conocer si existen comentarios positivos sobre las acciones de una empresa en la bolsa de valores; son algunos ejemplos prácticos de NLP basados en buscadores de internet.

Imágenes tomadas del sitio http://sentdex.com/ Sólo para fines educativos.


En opinión de Reese (2015), el procesamiento de lenguaje natural requiere de técnicas de tokenización, detección de oraciones, clasificación y extracción de relaciones.

Sommerville (2011) propone el siguiente modelo que representa este tipo de arquitecturas. Como puedes observar, existe un componente de entrada que recibe la instrucción en lenguaje natural y procede a convertirá en instrucciones que la computadora pueda interpretar, para finalmente pasar a ejecutar el comando adecuado.

Estas arquitecturas no sólo se usan para recoger instrucciones directas del usuario, sino también son útiles en la traducción a otro idioma.

El reto de las arquitecturas de software que procesan el lenguaje natural radica en la imprecisión y complejidad de nuestra forma de expresarnos, tanto de forma hablada como escrita, lo que requiere un enfoque aplicado a la inteligencia artificial que utilice patrones robustos para interpretarlo. Las funcionalidades de corrección de ortografía y redacción, acceso a diccionarios contextuales, traducción simultánea, acceso a información en libros digitalizados, correlación de información en mensajes de texto, e-mail, tweets o comentarios de Facebook, son algunas de las aplicaciones de este tipo de sistemas que aún se siguen perfeccionando.

Arquitectura de un sistema de procesamiento de lenguaje. Tomado del libro: Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson. Fig. 6.18. Sólo para fines educativos.

Tal vez no esté tan lejos el día en el que puedas interactuar con la computadora al estilo de la película La Máquina del Tiempo (2002) ,basada en la novela de H. George Wells del mismo nombre.

Cierre


Los sistemas de información apoyados en el hardware y software son una de las herramientas más poderosas que pueden utilizar las organizaciones del siglo XXI. De ellas se puede obtener información útil que pueda ayudar a generar estrategias de negocio innovadoras y convertirse en verdaderas ventajas competitivas.

El mismo mercado ha empujado a muchas empresas a hacer uso de las tecnologías de información para estar a la altura de sus exigencias. Los clientes dan por hecho que una empresa seria tendrá una página web, registrará sus pedidos apoyándose de sistemas de información, utilizará bases de datos para almacenar la información más relevante de sus órdenes de compra, agilizará sus procesos internos, facturará sin errores, en pocas palabras trabajará con calidad.

En respuesta a este entorno, las organizaciones han apostado por desarrollos de sistemas que sean un apoyo a los procesos de la cadena de valor. Las arquitecturas de software deben responder a las necesidades de las empresas generando diseños versátiles, robustos, modificables e innovadores.

Checkpoint


Asegúrate de poder:

  • Reconocer las características de las arquitecturas de las aplicaciones para que puedas utilizarlas en el desarrollo de sistemas de información robustos.
  • Analizar las arquitecturas de software del procesamiento del lenguaje para reconocer su potencial en aplicaciones prácticas presentes y futuras.

Referencias


  • Reese, M. (2015). Natural Language Processing with Java. Inglaterra: Packt Publishing.
  • Laudon, K y Laudon J. (2012). Sistemas de información gerencial (12ª ed.). EE. UU: Pearson.
  • Sommerville, I. (2008). Event processing systems. Recuperado de http://ifs.host.cs.st-andrews.ac.uk/Books/SE9/Web/Architecture/AppArch/EventProc.html
  • Sommerville, I. (2011). Ingeniería de Software (9ª ed.). México: Pearson.

Glosario


Sistemas de información: componentes interrelacionados que trabajan en conjunto para recolectar, procesar, almacenar y diseminar información para soportar la toma de decisiones, la coordinación, el control, el análisis y la visualización en una organización (Laudon & Laudon, 2012)

Tecnologías de Información: se refiere a las tecnologías (hardware & software) que requieren los negocios para alcanzar sus objetivos.

Tokenización: (tokenization): es una técnica que divide un texto en una secuencia de palabras llamados tokens, basándose principalmente en los espacios que se encuentran entre las palabras de una oración.