TESIS
“ESQUEMA DE REFERENCIA PARA SISTEMAS
DE RASTREABILIDAD BASADO EN ARQUITAM”
QUE PARA OBTENER EL GRADO DE MAESTRÍA EN
CIENCIAS EN INGENIERIA ELECTRÓNICA
PRESENTA:
MARCOS SAMUEL GÓMEZ GARCÍA
DIRECTOR DE LA TESIS:
M. C. JOSÉ EDUARDO ACOSTA CANO DE LOS RÍOS
Instituto Tecnológico de Chihuahua
División de Estudios de Posgrado e Investigación
CHIHUAHUA, CHIH., MÉXICO JULIO 2012
D E P I T C H
SUBSECRETARÍA DE EDUCACIÓN SUPERIOR
v
"Nunca consideres el estudio como una obligación, sino como una
oportunidad para penetrar en el bello y maravilloso mundo del saber"
Albert Einstein
vi
AGRADECIMIENTOS
A Dios por llenarme de bendiciones a lo largo de mi vida.
A mi familia por brindarme su amor y apoyo incondicional en todo momento.
A mis amigos por darme ánimos para seguir adelante.
A mis compañeros de laboratorio por su apoyo y camaradería.
A los profesores de posgrado por guiarme en el camino del saber.
Al comité revisor por sus consejos e interés en mi trabajo de investigación.
A mi director de tesis José Acosta por su paciencia y entrega en este proyecto.
Al personal de posgrado por sus múltiples atenciones.
vii
RESUMEN
ESQUEMA DE REFERENCIA PARA SISTEMAS DE RASTREABILIDAD BASADO
EN ARQUITAM
Marcos Samuel Gómez García.
Candidato a Maestro en Ciencias en Ingeniería Electrónica
División de Estudios de Posgrado e Investigación del
Instituto Tecnológico de Chihuahua
Chihuahua, Chih. 2012
Director de Tesis: M.C. José Eduardo Acosta Cano de los Ríos
El objetivo principal de este trabajo radica en el desarrollo e implementación de un sistema
flexible de rastreabilidad para un entorno de producción por lotes. Se pretende conjuntar las
mejores cualidades de los sistemas de rastreabilidad existentes en el mercado para crear un
sistema que pueda ser útil en distintos entornos de producción.
El presente trabajo muestra el desarrollo de un esquema de referencia para sistemas de
rastreabilidad, desde el diseño de un modelo conceptual hasta la implementación genérica y
particular, tal y como lo propone la arquitectura de referencia ArquiTAM. Para generar un
modelo propio se analizaron sistemas de rastreabilidad comerciales y se extrajo de ellos los
elementos que hacen posible el rastreo de productos a lo largo de la cadena de suministro. Una
vez que se identificaron estos elementos se propuso una arquitectura de referencia de la cual se
pudo partir para el desarrollo de un sistema genérico de rastreabilidad. Se sugirió un modelo
genérico modular con el fin de hacer más dinámico el diseño del sistema. En consecuencia se
obtuvo un sistema de rastreabilidad flexible y adaptable a distintos entornos de producción. El
sistema cuenta con la capacidad de recolectar datos a través de elementos físicos y además
posee una interfaz que permite compartir la información capturada hacia aplicaciones de
terceros. Como siguiente paso se procedió a la implementación particular del sistema genérico
con el fin de probar su alcance y realizar las modificaciones correspondientes en caso de que
fuera necesario.
viii
ÍNDICE
LISTA DE FIGURAS............................................................................................................... xi
I. INTRODUCCIÓN ................................................................................................................. 1
II. MARCO DE REFERENCIA .............................................................................................. 3
2.1 Tipos de Sistemas de Producción ..................................................................................... 3
2.2 Rastreabilidad ................................................................................................................... 4
2.2.1 Sistemas de Rastreabilidad ............................................................................................ 5
2.3 Identificación .................................................................................................................... 6
2.3.1 Métodos de identificación .............................................................................................. 7
2.3.1.1 Códigos de barras ........................................................................................................ 7
2.3.1.1.1 Códigos de barras lineales ....................................................................................... 8
2.3.1.1.2 Códigos de barras bidimensionales ........................................................................ 10
2.3.1.2 RFID ......................................................................................................................... 11
2.3.1.3 Memorias de botones de contacto ............................................................................. 13
2.4 Recolección de datos ...................................................................................................... 14
2.4.1 RS-232 ......................................................................................................................... 14
2.4.2 USB .............................................................................................................................. 15
2.4.3 Ethernet ........................................................................................................................ 16
2.4.4 Bluetooth ...................................................................................................................... 17
2.5 ArquiTAM ...................................................................................................................... 17
2.6 Gestión de datos .............................................................................................................. 19
2.6.1 Microsoft SQL Server .................................................................................................. 20
2.6.1.1 Microsoft SQL Server 2008 ...................................................................................... 21
2.7 Middleware ..................................................................................................................... 22
2.7.1 Microsoft Visual Studio ............................................................................................... 22
2.7.1.1 Microsoft Visual Studio 2010 ................................................................................... 23
2.8 Acceso a datos ................................................................................................................ 24
2.8.1 ADO.NET .................................................................................................................... 25
2.8.2 Windows Communication Foundation ........................................................................ 25
ix
2.9 Herramientas de apoyo para el desarrollo de aplicaciones orientadas a la web ............. 26
2.9.1 .NET Framework ......................................................................................................... 26
2.9.2 Internet Information Services ...................................................................................... 27
III. PLANTEAMIENTO DEL PROBLEMA ....................................................................... 28
3.1 Objetivo general .............................................................................................................. 28
3.2 Metas ............................................................................................................................... 28
3.3 Estrategia de trabajo ........................................................................................................ 28
IV. DESARROLLO ................................................................................................................. 30
4.1 Sistema de rastreabilidad basado en ArquiTAM ............................................................ 30
4.2 Diseño de la arquitectura de referencia ........................................................................... 31
4.3 Modelo de referencia genérico ....................................................................................... 35
4.3.1 Esquema general del sistema genérico ........................................................................ 35
4.3.2 Diseño de la base de datos ........................................................................................... 38
4.3.2.1 Procedimientos almacenados .................................................................................... 40
4.3.3 Conjunto de datos ........................................................................................................ 40
4.3.4 Desarrollo del middleware ........................................................................................... 41
4.3.4.1 Configuración de la interfaz de comunicación ......................................................... 42
4.3.4.2 Estaciones de trabajo ................................................................................................ 44
4.3.4.3 Módulos de captura ................................................................................................... 45
4.3.5 Presentación de datos ................................................................................................... 50
4.3.5.1 Acceso a datos a través de servicios WCF ............................................................... 51
4.3.5.2 Alojando servicios web en el servidor IIS ................................................................ 52
4.3.5.3 Pantallas de reportes ................................................................................................. 53
4.4 Validación del sistema .................................................................................................... 54
4.4.1 Análisis de la aplicación cliente para el sistema particular ......................................... 55
V. CONCLUSIONES Y RECOMENDACIONES ............................................................... 59
REFERENCIAS ...................................................................................................................... 61
x
GLOSARIO.............................................................................................................................. 64
ANEXOS .................................................................................................................................. 67
A1. Creación de una base de datos en Microsoft SQL Server 2008 ..................................... 67
A1.1 Creación de tablas ........................................................................................................ 68
A1.2 Relaciones entre tablas ................................................................................................. 69
A1.3 Procedimientos almacenados ....................................................................................... 73
A2. Tareas básicas en Visual Studio ..................................................................................... 74
A2.1 Creación de un proyecto .............................................................................................. 74
A2.2 Agregar referencias ...................................................................................................... 78
A2.2.1 Agregar referencia de servicio .................................................................................. 79
A3. Creando un conjunto de datos como biblioteca de clase ............................................... 80
A3.1 Configurando un origen de datos ................................................................................. 81
A4. Creando un servicio WCF que contiene a un DataSet ................................................... 84
A4.1 Publicar un servicio WCF en el servidor IIS ............................................................... 86
A5. Configuración de servicios en el servidor IIS ................................................................ 88
A6. Configuración de interfaces de comunicación ............................................................... 94
xi
LISTA DE FIGURAS
II. MARCO DE REFERENCIA
Figura 2.1 Icono representativo de los sistemas de trazabilidad. ............................................ 5
Figura 2.2 Ejemplo de código de barras lineal. ...................................................................... 9
Figura 2.3 Código QR. Ejemplo de código de barras bidimensional. .................................. 11
Figura 2.4 Ejemplo de etiqueta RFID. .................................................................................. 13
Figura 2.5 Ejemplos de memorias de botones de contacto. .................................................. 14
Figura 2.6 ArquiTAM. .......................................................................................................... 18
IV. DESARROLLO
Figura 4.1 Aplicación de ArquiTAM en sistemas de rastreabilidad. .................................... 31
Figura 4.2 Modelo conceptual para sistemas de rastreabilidad. ........................................... 32
Figura 4.3 Datos que deben registrarse en un software de trazabilidad. .............................. 33
Figura 4.4 Arquitectura de referencia para sistemas de rastreabilidad. ................................ 34
Figura 4.5 Esquema modular del sistema genérico. ............................................................. 36
Figura 4.6 Modelo entidad-relación del sistema genérico de rastreabilidad. ....................... 39
Figura 4.7 Clase con el conjunto de datos. ........................................................................... 41
Figura 4.8 Pantalla principal del software de rastreabilidad. ................................................ 42
Figura 4.9 Módulo de configuración de comunicación serie. ............................................... 43
Figura 4.10 Módulo de configuración de comunicación vía TCP/IP. .................................. 44
Figura 4.11 Módulo de captura manual. ............................................................................... 44
Figura 4.12 Formulario para las estaciones de trabajo. ........................................................ 45
Figura 4.13 Formulario de captura para la materia prima. ................................................... 46
Figura 4.14 Formulario de captura para los proveedores. .................................................... 46
Figura 4.15 Formulario de captura para productos individuales. ......................................... 47
Figura 4.16 Formulario de registro de estaciones de trabajo. ............................................... 48
Figura 4.17 Formulario de registro de empleados. ............................................................... 48
Figura 4.18 Formulario de registro de lotes en almacén. ...................................................... 49
Figura 4.19 Formulario de registro de lote de productos. ..................................................... 50
xii
Figura 4.20 Servicio web con referencia a un conjunto de datos. ........................................ 51
Figura 4.21 Servicio web alojado en el servidor IIS. ............................................................ 52
Figura 4.22 Módulo de selección de formularios para la aplicación de reportes. ................ 53
Figura 4.23 Ejemplo de formulario de reportes. ................................................................... 53
Figura 4.24 Tablas de datos para el sistema particular. ........................................................ 54
Figura 4.25 Relación entre tablas del sistema genérico y módulo particular. ...................... 55
Figura 4.26 Pantalla principal del sistema particular. ........................................................... 56
Figura 4.27 Formulario para registro de conductores. .......................................................... 57
Figura 4.28 Formulario para registro de lotes de materia prima. ......................................... 57
Figura 4.29 Formulario para registro de proveedores en el sistema particular. .................... 58
ANEXOS
Figura A1.1 Creación de una nueva base de datos. .............................................................. 67
Figura A1.2. Nombrando la nueva base de datos. ................................................................ 67
Figura A1.3. Creando una nueva tabla. ................................................................................ 68
Figura A1.4. Definiendo campos en la tabla. ....................................................................... 68
Figura A1.5. Menú para el diseño de tablas. ........................................................................ 69
Figura A1.6. Creando un diagrama de base de datos. ........................................................... 69
Figura A1.7. Selección de tablas que aparecerán en el diagrama. ........................................ 70
Figura A1.8. Tablas en el diagrama. ..................................................................................... 70
Figura A1.9. Creando relaciones entre tablas. ...................................................................... 71
Figura A1.10. Agregando relaciones entre tablas. ................................................................ 71
Figura A1.11. Agregando relaciones entre tablas. ................................................................ 72
Figura A1.12. Tablas correctamente relacionadas. ............................................................... 72
Figura A1.13. Creando procedimientos almacenados. ......................................................... 73
Figura A1.14. Área de comandos para crear procedimientos almacenados. ........................ 73
Figura A2.1. Creación de nuevo proyecto en Visual Studio 2010. ...................................... 75
Figura A2.2. Selección de plantillas para el proyecto. ......................................................... 75
Figura A2.3. Solución, proyecto y plantilla creados. ............................................................ 76
Figura A2.4. Cuadro de herramientas en Visual Studio 2010. ............................................. 76
xiii
Figura A2.5. Elegir elementos del cuadro de herramientas. ................................................. 77
Figura A2.6. Cuadro de diálogo para elegir elementos. ....................................................... 77
Figura A2.7. Agregando una referencia al proyecto. ............................................................ 78
Figura A2.8. Pantalla de selección de referencias. ............................................................... 78
Figura A2.9. Agregando una referencia de servicio al proyecto. ......................................... 79
Figura A2.10. Pantalla de configuración de la referencia al servicio. .................................. 79
Figura A3.1. Creación de una biblioteca de clase. ................................................................ 80
Figura A3.2. Agregando un conjunto de datos al proyecto. ................................................. 80
Figura A3.3. Seleccionando la plantilla de conjunto de datos. ............................................. 81
Figura A3.4. Agregando una nueva conexión al entorno de desarrollo. .............................. 82
Figura A3.5. Seleccionando motor de base de datos. ........................................................... 82
Figura A3.6. Seleccionando el origen de datos. ................................................................... 83
Figura A3.7. Árbol de conexiones de datos. ......................................................................... 83
Figura A3.8. Diseñador del conjunto de datos. ..................................................................... 84
Figura A3.9. Diseñador del conjunto de datos. ..................................................................... 84
Figura A4.1. Creando un proyecto de tipo Biblioteca de servicios WCF. ........................... 85
Figura A4.2. Agregando referencia de ensamblado al servicio WCF. ................................. 86
Figura A4.3. Publicando el servicio web desde Visual Studio. ............................................ 86
Figura A4.4. Configurando ruta de almacenamiento del servicio. ....................................... 87
Figura A4.5. Creación y selección de directorios virtuales. ................................................. 88
Figura A5.1. Vista de características del sitio web. .............................................................. 89
Figura A5.2. Modos de autenticación para el sitio web. ....................................................... 89
Figura A5.3. Configurando la aplicación web. ..................................................................... 90
Figura A5.4. Configuración avanzada de la aplicación. ....................................................... 90
Figura A5.5. Selección de grupo de aplicaciones. ................................................................ 91
Figura A5.6. Configurando la identidad de aplicaciones. ..................................................... 91
Figura A5.7. Configuración avanzada del grupo de aplicaciones. ....................................... 92
Figura A5.8. Seleccionando el tipo de identidad del grupo de aplicaciones. ....................... 92
Figura A5.9. Editando los permisos de la aplicación. .......................................................... 93
xiv
Figura A5.10. Pantalla para otorgar permisos a usuarios. .................................................... 93
Figura A5.11. Servicio web creado exitosamente. ............................................................... 94
Figura A5.12. Componente SerialPort. ................................................................................. 95
Figura A5.13. Componente Winsock. .................................................................................. 95
INTRODUCCIÓN
1
I. INTRODUCCIÓN
La calidad de un producto es un elemento importante tanto para el fabricante como para el
consumidor, en consecuencia, resulta útil conocer las etapas por las cuales atraviesa el
producto a lo largo de su proceso de fabricación con el fin de identificar aquellas fases que
puedan repercutir de manera significativa en el resultado del producto final. Para conocer la
trayectoria y la ubicación de un producto se puede recurrir a distintas técnicas y herramientas,
una de ellas es la rastreabilidad, la cual comprende a un conjunto de procedimientos que
auxilian en el rastreo de un producto a lo largo de la cadena de suministro.
Es importante que las empresas dedicadas a la elaboración de productos implementen
sistemas de rastreabilidad con el fin de mejorar la calidad de lo que producen y además
cumplir con las normas y regulaciones correspondientes. En este trabajo de investigación se
analizará el funcionamiento de este tipo de sistemas y se desarrollará un sistema propio que
conjunte las características más importantes de sistemas de rastreabilidad comerciales
existentes. El diseño, desarrollo e implementación del sistema estará basado en la arquitectura
de referencia para talleres automatizados de manufactura conocida como ArquiTAM [1].
Se tiene contemplado implementar un sistema genérico que sea capaz de recolectar datos a
través de hardware, procesarlos con algún software, almacenarlos en un repositorio de datos, y
por último, generar reportes que contengan información precisa de lo que se está produciendo
en la fábrica esperando resultados satisfactorios al término de su desarrollo.
En este documento se describe de forma detallada los pasos a seguir para lograr
implementar un sistema de rastreabilidad genérico basado en ArquiTAM. El documento está
divido en varios capítulos incluyendo éste que es el primero de ellos. El capítulo dos
corresponde al marco de referencia que es donde se incluirán temas tales como antecedentes y
trabajos relacionados con la investigación en cuestión, también se abordarán ciertos conceptos
relevantes para una mejor comprensión del tema y además se describirán las herramientas que
se utilizarán para el desarrollo del sistema. El tercer capítulo se refiere al planteamiento del
problema que es donde se dan a conocer los objetivos y metas a alcanzar así como las
estrategias que se tiene contemplado seguir para lograr cumplir con lo establecido. El cuarto
capítulo corresponde al desarrollo del trabajo en cuestión, es aquí donde se describe como se
INTRODUCCIÓN
2
diseñó, implementó y validó el sistema propuesto después de haber realizado un análisis de
sistemas existentes y de haber seleccionado las herramientas propicias para su desarrollo. En
el quinto capítulo se encuentran las conclusiones y recomendaciones surgidas en base a la
investigación realizada. En el capítulo seis se incluyen las referencias que fueron de utilidad
para el análisis previo al trabajo y para el desarrollo del mismo. Adicionalmente se incluye en
el documento un apéndice donde se puede encontrar un glosario con los términos pocos
comunes que pudieran ser difíciles de comprender y además se incluye una sección de anexos
donde se explican formas de replicar el proyecto en caso de que el lector lo deseé.
MARCO DE REFERENCIA
3
II. MARCO DE REFERENCIA
Este capítulo abarca temas que están relacionados con el trabajo desarrollado. Se presentan
antecedentes para dar a conocer la línea que sigue el trabajo de investigación así como las
herramientas utilizadas para el desarrollo del mismo. De igual manera se definen algunos
conceptos básicos que pueden ser de utilidad para lograr una mejor comprensión del tema que
se está tratando.
2.1 Tipos de Sistemas de Producción
Para operar en forma efectiva, una empresa manufacturera debe tener sistemas que le
permitan lograr eficientemente el tipo de producción que realiza. Los sistemas de producción
consisten en mano de obra, equipos y procedimientos diseñados para combinar los materiales
y procesos que constituyen sus operaciones de manufactura [2].
Los sistemas de producción se podrían clasificar principalmente en tres tipos:
- Producción continua: La producción no se detiene, se producen altos volúmenes en
una forma continua. Una paralización del proceso implica, por lo general, altos costos
de apertura (por ejemplo el calentamiento del horno en una planta siderúrgica). Estos
sistemas se utilizan para la producción de acero básico, petróleo, petroquímicos y de
alimentos como el azúcar y las bebidas gaseosas.
- Producción por lotes: Se alteran los procesos por lotes de artículos; por lo general, los
lotes son modelos diferentes del mismo producto. Se incurre en costos por apertura al
tener que adaptar las instalaciones (debido a labores de limpieza, cambio de materiales
y/o ajustes de máquinas) para la producción de otro lote.
- Producción por trabajos o bajo pedidos: Estos sistemas se utilizan generalmente
cuando se necesita una producción flexible. La planta se organiza en talleres o
departamentos, cada uno con el encargo de un tipo de proceso diferente; se produce por
lotes, pero los talleres son unidades independientes que trabajan diferentes lotes cada
uno. Los costos de apertura son bastante altos, ya que cada taller incurre en ellos al
tener que procesar diferentes productos, razón por la cual se generan a menudo
problemas de planeación, secuenciación y expedición de órdenes [3].
MARCO DE REFERENCIA
4
2.2 Rastreabilidad
Según la Real Academia Española el término más adecuado en español para designar la
posibilidad de rastrear el camino seguido por un producto comercial desde su origen hasta su
destino final, así como el registro de todos los datos que permiten realizar dicho seguimiento,
es rastreabilidad. Aunque con este sentido se emplea con más frecuencia la voz trazabilidad, se
desaconseja su empleo en español, ya que el verbo trazar, del que derivaría en última
instancia trazabilidad, no posee, a diferencia del inglés to trace, el sentido de ‘rastrear o seguir
la pista’. Sin embargo, se usará en ocasiones dentro de este documento el término de
trazabilidad cuando se haga citas hacia referencias bibliográficas para conservar la esencia de
las mismas.
Se define trazabilidad como aquellos procedimientos prestablecidos y autosuficientes que
permiten conocer el histórico, la ubicación y la trayectoria de un producto o lote de productos
a lo largo de la cadena de suministros en un momento dado, a través de herramientas
determinadas [4].
La trazabilidad básicamente se puede dividir en dos partes: la trazabilidad del proceso o
interna y la trazabilidad externa.
La trazabilidad interna consiste en la trazabilidad del producto a lo largo de la cadena
productiva de la empresa, desde la recepción de las materias primas hasta la expedición del
mismo. Para garantizar este tipo de trazabilidad es necesario relacionar los productos que
entran en la empresa con las operaciones o procesos que sufrirán dentro de las mismas, hasta
llegar a los productos finales listos para su expedición [5].
Por otro lado la trazabilidad externa hace referencia al camino que recorre el producto
desde que se fabrica hasta que se implanta en el punto de venta para ofertarlo a los clientes. De
igual manera se refiere a la necesidad que tiene la empresa de conocer en todo momento la
ubicación de sus productos (dónde están desde que salen de la fábrica hasta que llegan a la
tienda) [6].
Con las herramientas adecuadas se puede lograr el rastreo de un producto a lo largo de la
cadena de suministro. Estas herramientas en conjunto forman un sistema, al cual se le conoce
como sistema de trazabilidad.
MARCO DE REFERENCIA
5
Un sistema de trazabilidad es una herramienta técnica para ayudar a una organización a
cumplir con sus objetivos definidos, y es aplicable cuando es necesario determinar la historia o
localización de un producto o sus componentes relevantes [7].
Cada vez es más común encontrar empresas que implementan sistemas de trazabilidad, ya
que contar con un sistema de este tipo hace a la empresa más atractiva debido a que brinda a
sus clientes la seguridad de que los procesos cumplen con regulaciones y certificaciones que
están relacionadas con la mejora en la calidad del producto.
Las empresas que tengan implementados sistemas de trazabilidad pueden mostrar el icono
que aparece en la Figura 2.1:
Figura 2.1 Icono representativo de los sistemas de trazabilidad.
2.2.1 Sistemas de Rastreabilidad
En la actualidad existen compañías que desarrollan sistemas de rastreabilidad para
empresas. Generalmente estos sistemas hacen uso de herramientas informáticas que registran
las etapas por las que pasa el producto. Un ejemplo de este tipo de sistemas es el software
ileANTracer 4.0 [8], el cual ofrece soluciones múltiples en cuanto a rastreabilidad se refiere.
Este sistema permite llevar un registro de los procesos por los cuales pasan los productos,
además brinda la opción de generar facturas, exportar e importar datos y activación de alarmas
en caso de detección de anomalías.
Otro sistema de rastreabilidad muy completo lo provee la empresa Dipole RFID [9], esta
compañía ofrece varias soluciones para lograr un sistema de rastreabilidad robusto, desde la
etapa de identificación del producto hasta la etapa de registrar y gestionar la información
recogida a lo largo del proceso de fabricación. Este sistema cumple con estándares
MARCO DE REFERENCIA
6
internacionales de identificación y además tiene la característica de ser un sistema escalable y
adaptable según las necesidades del usuario.
Por otro lado existen sistemas de rastreabilidad diseñados para cumplir con estándares
relacionados con los procesos de manufactura. Un ejemplo de este tipo de sistema es la
plataforma COOX por parte de la compañía Ordinal Software. Dentro de las herramientas que
funcionan bajo esta plataforma destaca un paquete que lleva por nombre MESbox PMT:
Process Management & Traceability [10], el cual se basa en los estándares ISA-S88 e ISA-
S95 para el manejo de la información.
Dentro de la industria del software libre también se pueden encontrar aplicaciones
diseñadas para llevar un registro de los productos así como de los procesos a los cuales son
sometidos. Estas aplicaciones generalmente se limitan al control de inventarios y la captura de
datos tiende a ser manual. Un ejemplo de este tipo de sistemas es el software AnJelica[11], el
cual está desarrollado en el lenguaje de programación Java y está diseñado para la gestión de
la trazabilidad en la industria de la producción y empaquetado de cortes de carne.
Los sistemas anteriormente mencionados son solo algunos ejemplos de la gran variedad de
soluciones en rastreabilidad que existen en el mercado. Cada sistema posee características
propias y están diseñados para cumplir con necesidades particulares o generales según sea el
caso.
2.3 Identificación
No debe confundirse el término trazabilidad con identificación. La identificación es un
medio para lograr la trazabilidad, pero no es la única inversión a realizar al implantar un buen
sistema de trazabilidad [12]. La palabra identificación se puede definir como la acción de
identificar, misma que está ligada a la palabra identidad que se refiere al conjunto de rasgos o
informaciones que individualizan o distinguen algo y confirman que es realmente lo que se
dice que es. En lo que respecta al tema de rastreabilidad, la identificación del producto permite
conocer la procedencia y facilita la identificación del estado del producto en las etapas de
realización. Es decir, el producto se identifica con el propósito de lograr su trazabilidad. Es
como darle su tarjeta de identificación para que se conozca toda su “vida” [13].
MARCO DE REFERENCIA
7
Para lograr la identificación es necesario asignar al producto un identificador con el fin de
poder reconocerlo fácilmente. Existen distintas tecnologías en el ámbito de la identificación
automática, algunas poseen una gran aceptación en el mercado gracias al grado de madurez
que han alcanzado, mientras que otras se encuentran todavía en etapa de crecimiento. Debido a
la diversidad de productos y de procesos no existe un método de identificación único sino que
se debe de elegir la forma más adecuada para la identificación dependiendo del tipo de
producto y los procesos a los cuales será sometido, en consecuencia el número de métodos de
identificación puede ser tan grande como las aplicaciones que se le quiera dar.
2.3.1 Métodos de identificación
Se puede definir a los métodos de identificación como las técnicas y herramientas que
hacen posible asignar una identidad a un producto. Existen diversas formas de identificación,
sin embargo, se podría hacer una clasificación de las técnicas más utilizadas debido a su gran
aceptación en el mercado y a la flexibilidad que ofrecen para adaptarse a los distintos tipos de
productos y de procesos. En primer lugar se tendría a los códigos de barras ya que es una
tecnología madura que data desde la segunda mitad del siglo XX por lo que es bastante
conocida y utilizada. En segundo lugar está la identificación por radiofrecuencia o RFID por
sus siglas en inglés, esta tecnología aunque no es del todo novedosa ha alcanzado gran
aceptación en el mercado a partir del año 2000 debido a la reducción de costos en su
implementación. Como alternativa a estos métodos se encuentran las memorias de botones de
contacto que aunque no son muy comerciales complementan a las tecnologías de
identificación anteriormente mencionadas.
2.3.1.1 Códigos de barras
El código de barras es, sin lugar a dudas, el sistema óptico de identificación automática más
ampliamente utilizado en todo el mundo. Básicamente, es un modelo reconocible
automáticamente, que alterna barras oscuras y espacios claros dispuestos de forma paralela,
con los cuales representa números y otros caracteres [14].
MARCO DE REFERENCIA
8
Los códigos de barras presentan tanto ventajas como desventajas. Dentro de sus beneficios
se encuentra el bajo costo de implementación, ya que básicamente basta con grabar en el
producto las líneas que contienen el código correspondiente. Otro de sus evidentes beneficios
es la madurez que ha alcanzado dicha tecnología, por lo que existe una gran cantidad de
estándares que regulan la forma en que este tipo de códigos deben de ser implementados. En
contraparte a los beneficios mencionados están sus desventajas. Una de sus principales
desventajas es que es un método de sólo lectura ya que una vez definido el código es
imposible modificarlo sin alterar su esencia. Otra desventaja es que cada código debe ser leído
a la vez, no es posible realizar lecturas simultáneas de varios códigos con el mismo lector lo
que hace lenta la captura de datos.
Existe una gran variedad de diseños de códigos de barras pero se clasifican principalmente
en 2 tipos:
- Códigos de barras lineales
- Códigos de barras bidimensionales
El código de barras lineal es el tipo de código más popular, se puede encontrar en casi
cualquier producto, mientras que el código de barras bidimensional vendría siendo la
evolución del código de barras tradicional ya que ofrece características adicionales al ya
mencionado.
2.3.1.1.1 Códigos de barras lineales
Este tipo de códigos es el más utilizado en la identificación de productos, su fácil
implementación y su bajo costo de operación hacen muy atractiva su utilización. Debido a la
estandarización que se ha logrado en el uso de esta tecnología es posible tener una regulación
de los productos que se fabrican en todo el mundo. Los estándares más conocidos por códigos
de barras son el EAN (European Article Number) el cual surgió en Europa y posteriormente
fue adoptado por otros países fuera del continente. El código más usual es el EAN-13 que
consta de 13 dígitos y en el cual se puede almacenar información del país de origen, de la
empresa y del producto. Otro sistema de códigos muy común es el UPC (Universal Product
Code), este estándar es el más utilizado en Estados Unidos y consta de 12 dígitos en los cuales
MARCO DE REFERENCIA
9
también se almacena información del producto. Como consecuencia de la globalización varias
organizaciones impulsoras de sistemas de códigos de barras decidieron unirse en un solo
consorcio conocido como GS1el cual busca ofrecer estándares únicos a nivel mundial en lo
que a identificación de productos se refiere. El código GS1-128 es la fusión de los códigos
europeos y americano y permite una cantidad de almacenamiento superior a la de sus
antecesores, además de que cuenta con la característica de poder almacenar caracteres ASCII.
El código de barras lineal brinda muchos beneficios a las empresas que desean identificar
sus productos pero también cuenta con una serie de desventajas, una de ellas es el tiempo de
vida del código ya que al tratarse de un símbolo impreso puede dejar de ser legible en caso de
presentar suciedad o desgaste en las líneas que lo conforman. Otra desventaja radica en la
distancia en que pueden ser leídos los códigos ya que el lector debe de estar situado a
distancias menores de un metro para poder realizar una lectura correcta de la información
contenida en el código. Una desventaja más se encuentra en la seguridad de la información, al
tratarse de un sistema muy conocido es fácil leer los datos contenidos en un código por lo que
la seguridad que presentan es muy baja.
Existen distintos diseños de códigos de barras lineales y se aplican cada uno de ellos
dependiendo del producto que se quiera identificar. La característica que todos tienen en
común es que tienen que ser leídos por un escáner, usualmente se utiliza tecnología láser para
tales fines. La altura de las barras en los códigos puede alterarse para que se amolde al envase
del producto pero lo que no se puede modificar es la relación en la longitud de las franjas ya
que se alteraría por completo la información que contiene el código. La Figura 2.2 ilustra un
ejemplo de código de barras típico.
Figura 2.2 Ejemplo de código de barras lineal.
MARCO DE REFERENCIA
10
2.3.1.1.2 Códigos de barras bidimensionales
Los códigos de barras en dos dimensiones ofrecen la capacidad de almacenar más
información que la que se podría tener en un código de barras lineal. En este tipo de códigos
se agrega otro eje de lectura por lo que es posible formar una matriz de puntos y ver esos
puntos como coordenadas en vez de verlos como una serie de líneas y espacios lo que permite
almacenar información tanto a lo ancho como a lo alto del símbolo. Debido a que se trata de
una evolución del código de barras lineal se conservan muchas de las características de su
antecesor, por ejemplo aún posee la propiedad de ser un código de solo lectura, también sigue
teniendo el inconveniente de que la distancia de lectura es muy corta y que no es posible leer
varios códigos al mismo tiempo por el mismo lector. El lector en este caso suele ser una
cámara digital, la cual lee el código de izquierda a derecha y de arriba abajo y por medio de
técnicas de procesamiento de imágenes interpreta el código y hace legible la información
contenida en él. En este tipo de códigos se pueden almacenar varios tipos de datos y no sólo
un número como en el caso de los códigos de barras lineales.
La integridad de los datos es otro aspecto que se reforzó, ya que la mayoría de este tipo de
códigos emplea corrección de errores por lo que es posible borrar parte del símbolo sin perder
información, sin embargo si presentan cantidades considerables de suciedad pueden llegar a
quedar inutilizables.
En lo que a costos se refiere sigue siendo costeable para las empresas optar por esta técnica
de identificación ya que su implementación física no requiere de herramientas costosas,
además existen estándares como el Código QR en el cual la compañía creadora de estos
códigos no ejerce los derechos de patente, por lo que al utilizarlo no se generan gastos
adicionales por pagos de derechos de autor. El Código QR posiblemente sea el código de
barras bidimensional más popular ya que con la aparición de los smartphones se incrementó su
utilización debido a que se pueden leer dichos códigos con la cámara del teléfono y pueden ser
interpretados con un software especializado. Otro estándar muy conocido es el Datamatrix que
también es de dominio público y ofrece una tolerancia a daños de hasta el 30%. Un estándar
también muy conocido es el PDF 417, cabe mencionar que es un estándar ISO así que ya se
encuentra bastante consolidado. PDF 417 se considera un archivo de datos portable de ahí sus
MARCO DE REFERENCIA
11
siglas PDF (Portable Data File), posee muchas de las características de los otros códigos de
barras de dos dimensiones y es muy utilizado en distintas áreas.
Existen otros estándares de códigos de barras bidimensionales pero varios de ellos aún se
encuentran en crecimiento o no han sido aceptados. Varias compañías optan por desarrollar su
propio estándar con el fin de tener un código personalizado que cumpla con fines específicos
de la empresa. La Figura 2.3 muestra un ejemplo de código de barras bidimensional conocido
como código QR.
Figura 2.3 Código QR. Ejemplo de código de barras bidimensional.
2.3.1.2 RFID
La identificación por radio frecuencia o RFID es un método de identificación automática
que promete ser la forma de identificación más utilizada en el futuro, se presume que sustituirá
al código de barras [15]. Este sistema de identificación consta básicamente de una etiqueta en
la cual se almacena información y de un lector que es el encargado de interpretar los datos
contenidos en la etiqueta. Son muchas las ventajas que presenta esta forma de identificación
con respecto a los códigos de barras, una de ellas es la capacidad de leer múltiples etiquetas a
la vez ya que en un caso ideal un lector puede leer más de 100 etiquetas por segundo. Otra
característica importante de esta tecnología radica en que para leer las etiquetas no es
necesario que estén a la vista o que tengan contacto directo con el lector, simplemente tienen
que estar a una distancia adecuada, las etiquetas pasivas pueden ser leídas en distancias del
orden del metro debido a que necesitan del lector para ser activadas, mientras que las etiquetas
activas se pueden leer a decenas de metros de distancia ya que poseen una batería interna por
lo que no dependen del lector para poder transmitir información. Otra ventaja sobre el código
MARCO DE REFERENCIA
12
de barras es que existen etiquetas de lectura y escritura lo que permite modificar la
información contenida en las etiquetas en caso de ser necesario.
Una característica importante que posee la tecnología RFID es la diversidad de
identificadores que maneja. Existen varios tipos de etiquetas las cuales poseen atributos
diferentes dependiendo de la aplicación que se les quiera dar, pueden variar en tamaño, forma,
adhesividad, durabilidad, entre otros.
La cantidad de datos que se pueden almacenar en las etiquetas es grande en comparación
con otras tecnologías competidoras, es posible almacenar hasta 1MB de información. Una
ventaja más es la vida útil que poseen, una etiqueta pasiva puede ser funcional por años y ya
que no es necesaria su exposición para ser leída se puede conservar oculta en el producto sin
sufrir deterioro; sin embargo las etiquetas activas suelen funcionar tanto como dure su batería.
Aunque RFID se podría considerar una tecnología emergente ya van surgiendo los
primeros estándares que regulan la forma en que se manejan los datos, la organización
mundial GS1 ofrece el estándar EPC (Electronic Product Code) con el cual se pretende que
cada producto en el mundo posea un número de identificación único, a diferencia del código
de barras donde se asignaba el mismo número a todos los productos de un mismo lote.
También existen otras regulaciones sobre el uso de frecuencias por lo que es importante
consultar cuales son los rangos de frecuencias permitidas para cada país. Ya que se trata de
una tecnología que hace uso de radiofrecuencias para lograr el intercambio de datos, se debe
de acondicionar bien el sitio donde se estarán realizando las operaciones de lectura y escritura
con el fin de que no vayan a existir interferencias por parte de otros dispositivos que también
hacen uso de ondas de radio.
El número de empresas que implementan sistemas de identificación por radiofrecuencia va
aumentando conforme se va consolidando esta tecnología, los costos de implementación son
caros pero se irán abaratando con el paso del tiempo.
Por otro lado, el uso de la tecnología RFID ha causado polémica en lo que respecta a la
privacidad del consumidor, se teme que compañías utilicen esta tecnología para obtener datos
del consumidor sin su consentimiento ya que las etiquetas pueden permanecer ocultas en
MARCO DE REFERENCIA
13
ciertos productos sin que el consumidor se percate de ello. En la Figura 2.4 se puede observar
un ejemplo de etiqueta RFID.
Figura 2.4 Ejemplo de etiqueta RFID.
2.3.1.3 Memorias de botones de contacto
Aunque no se trata de una tecnología muy extendida, y cuenta con pocos suministradores,
ha tenido cierta utilización y es potencialmente alternativa a la RFID [16]. Requiere contacto
físico entre el lector y la etiqueta en forma de botón para realizar la lectura y cada botón posee
un número de serie único. Esta tecnología fue desarrollada con fines militares por lo que las
características físicas de cada botón son robustas, lo que permite su utilización en ambientes
hostiles. El tiempo de vida de los botones puede ser de hasta 100 años.
No existen estándares formalmente aceptados para este método de identificación, el
estándar lo define la empresa que lo va a implementar. Dentro de las características de esta
tecnología se encuentra la posibilidad de modificar los datos a discreción del usuario, aunado a
esto los datos pueden estar cifrados lo que brinda mayor seguridad al momento de almacenar
información. La cantidad de información que se puede almacenar es grande, se pueden grabar
hasta 4 GB de datos.
Una desventaja que presenta esta forma de identificación es el número de identificadores
que pueden ser leídos a la vez, al requerir contacto físico del lector con el botón se limita la
lectura a un botón por vez. La Figura 2.5 muestra algunos ejemplos de memorias de botones
de contacto.
MARCO DE REFERENCIA
14
Figura 2.5 Ejemplos de memorias de botones de contacto.
2.4 Recolección de datos
Para lograr un proceso automatizado de captura de datos es necesario contar con
herramientas que permitan la recolección de datos a lo largo del proceso de fabricación de un
producto. Es importante registrar cuales son las etapas por las que pasa el producto con el fin
de conocer la ubicación exacta del mismo, esto se realiza mediante sensores, lectores o en
combinación de ambos. Una vez recolectada la información deseada es necesario transportarla
a un sistema que la gestione, para esto se requiere una interfaz de comunicación entre
dispositivos de captura de datos y el sistema de gestión. Para poder tener un sistema de
recolección de datos flexible es necesario utilizar protocolos de transporte universales tales
como RS-232, USB, Ethernet, Bluetooth, entre otros, esto con el fin de lograr compatibilidad
con distintas aplicaciones informáticas de gestión de información.
La ventaja de utilizar este tipo de protocolos radica en que se puede utilizar en cualquier
tipo de dispositivo de captura, en el caso de la rastreabilidad no importa que método de
identificación se elija siempre y cuando el intercambio de datos se realice a través de uno de
los protocolos anteriormente mencionados.
2.4.1 RS-232
RS-232 significa Recommended Standard 232 [17], está definido por el ANSI (American
National Standard Institution) como “la interface entre un equipo terminal de datos y un
equipo de comunicación de datos utilizando un intercambio binario en modo serie”.
Los dispositivos son llamados DTE - Data Terminal Equipment (por ejemplo una
computadora) y DCE - Data Circuit-terminating Equipment (por ejemplo un módem). El DTE
usa un terminal macho mientras que al DCE se conecta un terminal hembra y es el encargado
MARCO DE REFERENCIA
15
de establecer y mantener la conexión. Un equipo puede necesitar ser DTE y DCE, por ejemplo
un computador será el DTE al comunicarse con un módem y un DCE al hacerlo como
impresora.
Las características más importantes del estándar son:
- Velocidad máxima original era 20 kbps, hay aplicaciones que llegan a 116 kbps.
- Longitud máxima del cable de 15 m (revisión <<C>>).
- Tensión en modo común máxima de +25 V.
- Impedancias de 3 a 7 k?.
- Modo de operación simple.
- Un emisor y un receptor.
- Transmisión asíncrona o síncrona (usando líneas extras para el reloj).
2.4.2 USB
El puerto USB (Universal Serial Bus) surge en 1996 para mejorar las velocidades de
transmisión de los puertos serie y paralelo. [18]
Las características principales de este puerto son:
- Permite conexiones en caliente, es decir, se puede conectar y desconectar el dispositivo
al ordenador sin necesidad de reiniciar el ordenador
- Algunos dispositivos pueden recibir corriente eléctrica a través del puerto USB,
evitando tener que conectar el dispositivo a la red eléctrica. Por ejemplo un disco duro
externo
- Se pueden conectar a un puerto USB hasta 127 dispositivos, utilizando hubs para el
puerto USB.
- Las velocidades varían dependiendo de la versión como se muestra en la Tabla 2.1:
Tabla 2.1 Velocidades de transferencia del puerto USB.
Versión Velocidad
USB 1.1 1.5Mbps
USB 2.0 480 Mbps
USB 3.0 4.8 Gbps
MARCO DE REFERENCIA
16
El puerto USB se ha convertido en el estándar de conexión, conectándose a él teclados,
ratones, impresoras, escáneres, teléfonos móviles, cámaras digitales, etc. Los PC actuales
cuenta con, como mínimo, seis puertos USB, y no es raro encontrar PC con 12 puertos USB.
Existen adaptadores para puerto serie, paralelo y PS/2, los cuales permiten conectar
periféricos antiguos a computadores más modernos.
2.4.3 Ethernet
Ethernet es un protocolo de comunicaciones de gran demanda que se emplea con
frecuencia en redes de áreas locales. El estándar Ethernet se diseñó para las LAN (Local Area
Network) que usan una topología de bus; el estándar ayuda a asegurar la compatibilidad entre
dispositivos, de modo que muchas personas puedan unirse a un cable común para compartir
instalaciones y recursos de redes. [19]
Ethernet impulsó la creación de otros estándares como IEEE 802.3 el cual es una
especificación para redes de área local que comprende nivel físico y el del enlace del modelo
de referencia OSI de la ISO.
El estándar IEEE 802.3 es una familia de alternativas o sub-estándares que tienen ciertos
puntos en común, como el mecanismo de acceso al medio, pero difieren en distintos aspectos
como son la velocidad de transmisión, el medio de transmisión, el número de estaciones
máximo que se pueden conectar a la LAN, etc.
El inicio del estándar 802.3 se debió al desarrollo de los protocolos ALOHA en los años
setenta. Más tarde se le incluyó la detección de portadora; es decir que la estación que quisiera
transmitir información previamente debería escuchar el medio de transmisión, y la empresa
XEROX construyó una red CSMA/CD de 2.94 Mbit/s con la que conectó hasta cien equipos
de trabajo mediante un cable de mil metros de longitud. Esta red se llamó Ethernet (en honor
al llamado éter luminífero a través del cual se pensaba que se transmitían las ondas
electromagnéticas en el siglo XIX, hasta que el experimento de Michelson y Morley en 1887
demostró que la radiación electromagnética podría propagarse en el vacío sin ningún soporte
físico).
MARCO DE REFERENCIA
17
La red Ethernet desarrollada por Xerox tuvo un gran éxito y esta compañía, junto con DEC
(Digital Equipment Corporation) e Intel desarrollaron una norma para la red Ethernet de 10
Mbit/s, que más tarde constituyó la base para el estándar 802.3 del IEEE. Sin embargo, el
estándar 802.3 es más que las especificaciones de Ethernet. Describe toda una familia de redes
de área local basadas en el protocolo 1-persistente CSMA/CD que opera a partir de
velocidades de 1Mbit/s y que llega en la actualidad hasta 1 Gbit/s, con posibilidad más que
aceptada de superar este valor en un futuro próximo [20].
2.4.4 Bluetooth
La tecnología Bluetooth define un estándar de comunicaciones inalámbricas de corto
alcance mediante señales de radiofrecuencia que permite la transmisión de datos y voz. El
desarrollo de esta tecnología parte de los laboratorios de Ericsson Mobile Communications,
que en 1994 decidieron desarrollar una tecnología que permitiera la conexión mediante una
interfaz de radio, de consumo, coste y tamaño reducido, de los teléfonos móviles con sus
accesorios. Una vez iniciado el proyecto se pensó que esta tecnología podía utilizarse para
eliminar los cables que interconectan dispositivos como impresoras, teclados, ordenadores,
teléfonos móviles, etc., de forma transparente y amigable para los usuarios.
Las especificaciones definen un enlace radio que permite establecer enlaces de corto
alcance, hasta unos 10 metros u opcionalmente hasta unos centenares de metros, de voz
mediante enlaces síncronos (SCO), y de datos bidireccionales mediante enlaces asíncronos
(ACL). Cada canal de voz puede soportar una tasa de transferencia de 64 kbits/s en cada
sentido, suficiente para la transmisión de voz. Un canal asíncrono puede transmitir hasta 721
kbits/s en una dirección y 56 kbits/s en la dirección opuesta en enlaces asimétricos. Por otro
lado, para una conexión asíncrona es posible soportar 432.6 kbits/s en ambas direcciones si el
enlace es simétrico [21].
2.5 ArquiTAM
ArquiTAM es una estructura de referencia para talleres de manufactura propuesta por el
Instituto Tecnológico de Chihuahua en conjunto con la Universidad Politécnica de Madrid la
MARCO DE REFERENCIA
18
cual presenta la organización del taller en diferentes niveles de abstracción directamente
relacionados, que corresponden a los niveles conceptual, implementación genérica e
implementación particular. Una de las ventajas de ArquiTAM es que auxilia en el diseño de
los talleres automáticos de manufactura sin importar el giro de los mismos gracias a la
flexibilidad que propone su arquitectura. Aunado a esto, ArquiTAM cuenta con un módulo
para el manejo de particularidades en sistemas informáticos de gestión de producción llamado
iMRP[22], el cual ha sido aplicado a sistemas de coordinación de flujo y procesamiento de
pieza en sistemas de fabricación discreta.
A grandes rasgos la forma de aplicar ArquiTAM sería contemplar un conjunto de
herramientas de software y hardware destinadas al desarrollo e implementación de sistemas
informáticos en el área de automatización industrial. Luego se hace un análisis de las
actividades del taller y cómo se relacionan entre sí para obtener un modelo de referencia de
taller. Por último se definen los requerimientos particulares del taller y se realiza la
implementación del sistema informático que auxiliará en la automatización del taller. En la
Figura 2.6 se muestra de manera gráfica el concepto de ArquiTAM.
Figura 2.6 ArquiTAM.
MARCO DE REFERENCIA
19
2.6 Gestión de datos
Cada vez es más común encontrar sistemas para el manejo de la información
implementados en las empresas, algunos de ellos capturan datos automáticamente y otros
requieren de la intervención constante de un operador para poder llevar a cabo dicha labor. Sea
cual sea la forma de captura, los datos deben de almacenarse en forma organizada en algún
repositorio con el fin de poder acceder a ellos cuando exista la necesidad de hacerlo. Para
sistemas que manejan grandes cantidades de información se recomienda que ésta se almacene
en bases de datos, por lo que resulta conveniente utilizar un sistema manejador de bases de
datos (DBMS por sus siglas en inglés) con el fin de llevar una mejor organización y un mejor
control de los datos que se estarán almacenando. Existen compañías de renombre mundial que
brindan soluciones para el manejo de datos, entre ellas se encuentran Oracle y Microsoft, pero
también se pueden encontrar sistemas de bases de datos de licencia libre como PostgreSQL y
MySQL. Este tipo de manejadores permiten al desarrollador crear tablas y relaciones entre
ellas así como otorgar permisos de acceso a las mismas ya sea por medio de código o de
manera visual. Todos estos manejadores utilizan un lenguaje de consulta estructurado para la
manipulación de los datos conocido como SQL, el cual permite realizar varios tipos de
operaciones sobre las tablas como son inserción, borrado, actualización, selección, entre otros.
Además de las sentencias para operaciones básicas, también se pueden crear sentencias
personalizadas acorde a las necesidades del sistema de gestión a utilizar. Estas sentencias
pueden ser disparadas en tiempo de ejecución como es el caso de los disparadores (triggers) o
pueden mandarse llamar desde la base de datos como ocurre con los procedimientos
almacenados.
Una de las ventajas de utilizar los sistemas manejadores de bases de datos es que permiten
el acceso a los datos desde distintos sitios por lo que se puede acceder a una base de datos
desde diferentes sistemas de gestión. Para lograr comunicarse con la base de datos es
necesario hacer una referencia a la misma desde la aplicación cliente ya sea creando un
archivo de configuración que contenga los datos de conexión o utilizando herramientas
especializadas destinadas a realizar dicha labor, las cuales guían al desarrollador paso a paso
para conseguir una conexión exitosa con el servidor y la base de datos.
MARCO DE REFERENCIA
20
2.6.1 Microsoft SQL Server
Microsoft se inició en la industria de las bases de datos empresariales en 1987 cuando se
asoció con la empresa Sybase para comercializar su producto Sybase DataServer dentro de las
plataforma OS/2 de Microsoft e IBM. A partir de esa asociación surgió SQL Server 1.0 el cual
fue esencialmente una adaptación del sistema Sybase DataServer de UNIX hacia OS/2.
Después de varios años los desarrolladores de Microsoft obtuvieron un mayor acceso al
código fuente de Sybase lo que les permitió hacer más pruebas y conocerlo más a fondo, sin
embargo, el núcleo de SQL Server continuaba siendo un producto de la empresa Sybase hasta
el lanzamiento de SQL Server 4.2 para Windows NT en marzo de 1992.
SQL Server 4.2 se considera la primera versión de esta aplicación donde realmente
participaron en conjunto Sybase y Microsoft. El motor de la base de datos seguía
perteneciendo a Sybase pero las herramientas y librerías para utilizar la base de datos fueron
desarrolladas por Microsoft [23].
Para 1994, las dos compañías decidieron no seguir desarrollando juntos y Sybase le otorgó
a Microsoft una licencia con limitaciones la cual le permitía seguir usando y modificando las
tecnologías de Sybase siempre y cuando se utilizaran dentro de la plataforma Windows.
Un año después, en junio de 1995, Microsoft lanzó la primera versión de SQL Server
desarrollada exclusivamente por desarrolladores de Microsoft (SQL Server 6.0); sin embargo,
el núcleo del sistema seguía basado en las tecnologías de Sybase. En menos de un año se
realizaron más cambios y así se lanzó SQL Server 6.5 en abril de 1996.
A partir de esta versión, SQL Server fue presentando un crecimiento gradual tanto en las
funcionalidades que ofrecía así como en su aceptación en el mercado. La siguiente versión en
salir a la venta fue SQL Server 7.0, fue lanzada en diciembre de 1998 y llevaba por nombre
clave Sphinx. El código del núcleo en esta versión fue casi rescrito desde cero para trabajar
sobre una arquitectura propia y no la de Sybase. Dos años después, en agosto del año 2000
anunciaron la nueva versión que sería conocida como SQL Server 2000, de nombre clave
Shiloh y que presentaba algunos cambios mínimos respecto a su predecesor.
No fue sino hasta 2005 que se conoció la siguiente versión de SQL Server la cual tenía por
nombre clave Yukon. Esta versión fue tan aceptada que muchos decían que desplazó a Oracle
MARCO DE REFERENCIA
21
a un segundo plano en el área de manejadores de bases de datos. Presentaba herramientas para
mover y transformar datos (SQL Integration Services), analizar datos (SQL Analysis Services),
y hacer reportes con los datos (SQL Server Reporting Services). La preocupación por parte de
Microsoft por satisfacer las necesidades en el área de Inteligencia de Negocios fue lo que
atrajo a las empresas a preferir SQL Server a los productos de otras compañías.
Tres años después salió a la venta SQL Server 2008, el cual conservaba la esencia de su
predecesor pero incluyendo varias mejoras para aumentar el desempeño de dicho manejador
de bases de datos.
2.6.1.1 Microsoft SQL Server 2008
Es de esperarse la inclusión de nuevas características y mejoras cuando se lanza una
actualización de algún producto, y en SQL Server 2008 no es la excepción. Esta nueva versión
de SQL Server ofrece mayor seguridad en los datos ya que permite proteger columnas, tablas
y bases de datos completas. También presenta mejoras para conservar la integridad de la
información, se pueden realizar respaldos de datos mediante copias espejo que se realizan en
otra ubicación, además ofrece la característica de reparar fallas automáticamente.
Otra característica de esta versión es las consultas de lenguaje integrado, ya que gracias al
nuevo modelo de .NET Framework es posible realizar consultas en tablas directamente desde
el código de la aplicación cliente en .NET sin necesidad de utilizar objetos de acceso a SQL.
Se añadieron nuevos tipos de datos para un mejor detalle en las consultas y además ahora es
posible pasar como parámetros procedimientos almacenados y funciones valores de tipo tabla
lo que amplía las posibilidades al momento de consumir la información desde la base de datos.
Quizá la característica más importante de SQL Server 2008 son los servicios de reportes,
ahora es posible crear reportes más detallados que además pueden ser accedidos desde
aplicaciones de Office para una mejor experiencia del usuario. La fácil generación de reportes
es una de las razones principales por las cuales las empresas han adoptado a SQL Server como
su sistema gestor de bases de datos y si la tendencia continúa de la misma manera en un futuro
será muy común encontrar este producto de Microsoft operando en la mayoría de las grandes
compañías que hay en el mercado.
MARCO DE REFERENCIA
22
2.7 Middleware
Middleware es un software que funge como intermediario entre una aplicación y otros
componentes de software o hardware. Las aplicaciones middleware se utilizan con frecuencia
en sistemas informáticos que poseen varias capas las cuales necesitan estar intercomunicadas.
Una de las funciones principales de un middleware es la flexibilidad, por lo que debe ser
adaptable a diferentes entornos. Existen varios tipos de middleware y cada uno de ellos
cumple con funciones específicas, por ejemplo existen aplicaciones middleware basadas en
web, otras enfocadas al acceso de datos y otras a cumplir funciones especializadas. El
programador debe de tener en cuenta que aplicación final se le dará al middleware al momento
de desarrollarlo; de esa manera podrá decidir qué herramientas son las más adecuadas para su
desarrollo. Generalmente, el programador opta por elegir herramientas de desarrollo del
mismo fabricante con el fin de garantizar tota compatibilidad entre los componentes a
desarrollar.
Uno de los entornos de desarrollo integrado (IDE por sus siglas en inglés) más completos
es Visual Studio de Microsoft, ya que soporta varios lenguajes de programación y ofrece
compatibilidad entre los mismos. Por otro lado, se encuentra el entorno de desarrollo
NetBeans que al igual que Visual Studio permite el uso de distintos lenguajes de
programación. Lo atractivo de estos entornos de desarrollo es que permiten la creación de
componentes que son compatibles entre sí debido a que son desarrollados bajo la misma
plataforma que es lo que se busca al momento de desarrollar un middleware.
2.7.1 Microsoft Visual Studio
Microsoft Visual Studio es un potente Entorno de Desarrollo Integrado (IDE) que asegura
código de calidad durante todo el ciclo de vida de la aplicación, desde el diseño hasta la
implementación [24].
Una de las versiones más significativas de este IDE fue Visual Studio 97, lanzada en 1997
para la plataforma Win9x. La intención de Microsoft era unificar el mayor número de
lenguajes de programación posibles en un solo entorno y no sólo trabajar con Visual Basic y
C++. Para 1998 salió al mercado Visual Studio 6.0 el cual no presentó muchos cambios
MARCO DE REFERENCIA
23
respecto a su predecesor. Aunque en estas versiones ya se podía trabajar con varios lenguajes,
no fue sino hasta 2002 que se lanzó una nueva versión donde se logró una completa
compatibilidad entre ellos gracias a que se migró a la plataforma .NET. A esta nueva versión
internamente se le conoció como Visual Studio 7.0 pero salió al mercado como Visual
Studio.NET 2002. Dentro de las características más relevantes de esta versión se encuentra la
inclusión de los lenguajes C# y J# así como la posibilidad de crear aplicaciones y sitios web.
En 2003 salió al mercado Visual Studio.NET 2003 la cual fue una actualización menor a
Visual Studio .NET.
La siguiente versión de Visual Studio.NET se dio a conocer en 2005 bajo el nombre de
Visual Studio 2005, si bien ya no se incluía la coletilla .NET en el nombre, seguía
funcionando bajo la plataforma .NET. Para finales del año 2007 se estaba lanzando la nueva
versión de Visual Studio.NET conocida como Visual Studio 2008, además se dio a conocer el
nuevo .NET Framework 3.5. En 2010 salió al mercado otra versión de Visual Studio bajo el
nombre de Visual Studio 2010 así como la versión 4 de .NET Framework.
2.7.1.1 Microsoft Visual Studio 2010
Al igual que Visual Studio 2008 esta nueva versión va encaminada al desarrollo de
aplicaciones distribuidas orientadas a servicios, un ejemplo de esto es la nueva plataforma
Windows Azure, la cual permite alojar aplicaciones en los centros de datos de Microsoft para
poder ser accedidas desde cualquier parte del mundo. Otra característica que resalta en esta
versión es el soporte para el desarrollo de aplicaciones que usan SharePoint, que aunque no es
algo nuevo ha sido mejorado debido a que el número de aplicaciones que hacen uso de este
recurso ha ido en aumento.
La forma en que el compilador interpreta el código introducido por el programador también
presentó mejoras, ya que se dice que el compilador en esta versión es capaz de entender lo que
el programador desea hacer y por lo tanto le sugiere acciones comunes a realizar que podrían
serle de utilidad.
MARCO DE REFERENCIA
24
Por estas y otras características Visual Studio 2010 es una excelente opción para el
desarrollo de aplicaciones de varias capas, sobretodo para aquellas aplicaciones en las que se
vuelve necesario el compartir datos entre ellas en diferentes niveles.
2.8 Acceso a datos
En un sistema de gestión empresarial suelen estar involucrados una gran cantidad de datos,
por esa razón es importante organizarlos adecuadamente al momento de su almacenamiento
para poder lograr acceder a ellos con facilidad cuando sea necesario. Son diversas las formas
de acceder a la información para poder visualizarla, existen aplicaciones que realizan una
conexión directa con la base de datos que tiene almacenada la información mientras que otras
tienen que hacer uso de herramientas de terceros para lograr dicha tarea. Una vez lograda la
conexión con la base de datos es posible recuperar los datos y presentarlos a manera de
reportes para una mejor visualización de los mismos.
Existen en el mercado distintas herramientas que posibilitan el acceso a datos, algunas de
ellas ofrecen soluciones terminadas, listas para usarse tales como Streamwork de SAP o
SharePoint de Microsoft Dynamics, por otro lado también hay herramientas para
desarrolladores las cuales pueden integrar en los sistemas que se encuentran desarrollando.
Una técnica muy útil para compartir información es el uso de una arquitectura orientada a
servicios. Esta técnica está orientada a la compartición de datos a través de internet y utiliza
protocolos de transporte universales para lograr transmitir la información de un punto hacia
otro. La manera más común para intercambiar datos entre aplicaciones siguiendo esta
arquitectura son los servicios web, los cuales pueden ser implementados de distintas maneras
dependiendo del servidor de aplicaciones que se elija. Microsoft ofrece la característica de
consumir servicios web a través de la plataforma WCF (Windows Communication
Foundation), esta plataforma es parte de la tecnología .NET.
En conjunto con las tecnologías que hacen uso de protocolos de internet se encuentran
plataformas locales que permiten un acceso rápido a los datos almacenados en algún servidor.
Un ejemplo de este tipo de herramientas es ADO.NET de Microsoft el cual es un conjunto de
componentes de software que facilitan el acceso desde una aplicación cliente a la información
MARCO DE REFERENCIA
25
que se encuentra almacenada en una base de datos. También entran en esta categoría
estándares como Open Data Base Connectivity (ODBC) y XML.
2.8.1 ADO.NET
ADO.NET es un conjunto de clases que exponen servicios de acceso a datos para el
programador de .NET. ADO.NET ofrece abundancia de componentes para la creación de
aplicaciones de uso compartido de datos distribuidas. Constituye una parte integral de .NET
Framework y proporciona acceso a datos relacionales, XML y de aplicaciones. ADO.NET
satisface diversas necesidades de desarrollo, como la creación de clientes de base de datos de
aplicaciones para usuario y objetos empresariales de nivel medio que utilizan aplicaciones,
herramientas, lenguajes o exploradores de Internet [25].
2.8.2 Windows Communication Foundation
Windows Communication Foundation (WCF), anteriormente llamado “Indigo”, es la
plataforma de Microsoft con Arquitectura Orientada a Servicios (SOA), diseñada para
construir aplicaciones distribuidas orientadas a servicios para fines empresariales y de
comunicación web. WCF fue lanzado con Windows Vista como parte de la versión 3.0 del
Framework.NET, el cual se componía de 4 tecnologías principales: Windows Presentation
Foundation (WPF), Windows Workflow Foundation (WF), Windows Communication
Foundation (WCF) y Windows CardSpace.
A diferencia de sus predecesores, WCF es una plataforma interoperable, realmente
orientada a servicios y de acoplamiento débil. Simplifica el diseño de sistemas orientados a
servicios mediante la eliminación de las dependencias de diseño que tradicionalmente existen
entre la manera en que se accede a las operaciones de negocios y la implementación real de las
mismas. WCF promueve el acoplamiento débil no solo entre los servicios y la funcionalidad
que exponen, sino también al poder seleccionar protocolos, formato en que se codifican los
mensajes y el entorno en que se alojarán. Por ejemplo, los servicios pueden ser accedidos
mediante varios protocolos como TCP, HTTP y MSMQ. WCF también soporta todos los
estándares de servicios web lo que la convierte en una plataforma altamente interoperable. Los
MARCO DE REFERENCIA
26
mensajes siempre pueden ser representados en un formato consistente con los estándares
existentes para lograr la comunicación con otras plataformas [26].
2.9 Herramientas de apoyo para el desarrollo de aplicaciones orientadas a la
web
Con la creciente necesidad de aplicaciones informáticas que puedan compartir datos a
través de protocolos de Internet, las compañías dedicadas a ofrecer soluciones para
desarrolladores han incluido en sus paquetes de desarrollo herramientas que permitan al
programador crear aplicaciones orientadas a la web. Aunque existe una gran cantidad de
herramientas de este tipo, la mayoría de ellas cubren las mismas necesidades, por lo que queda
a criterio del desarrollador la elección de la herramienta más adecuada a utilizar para el
desarrollo del sistema solicitado.
Compañías como Oracle y Microsoft ofrecen paquetes bastante completos para el
desarrollo de aplicaciones orientadas a la web, pero también se pueden encontrar herramientas
de licencia libre que aunque siendo de distintos fabricantes son compatibles entre sí. En el
caso de Microsoft se pueden encontrar plataformas como .NET la cual está dedicada al
desarrollo de aplicaciones distribuidas. Esta plataforma hace posible la interacción entre
aplicaciones siempre y cuando pertenezcan al mismo marco de trabajo.
2.9.1 .NET Framework
La plataforma .NET es una plataforma de desarrollo que provee un nueva interface de
programación para APIs y servicios de Windows, e integra varias tecnologías que han
emergido de Microsoft a finales de la década de 1990. Microsoft anunció sobre la iniciativa de
la plataforma .NET en julio del 2000. La plataforma .NET se compone de cuatro grupos de
productos, descritos brevemente a continuación.
Librerías y herramientas de desarrollo. Un conjunto de lenguajes incluyendo C#, J# y
VB.NET; un conjunto de herramientas de desarrollo, incluyendo Visual Studio.NET; una
amplia librería de clases para construir servicios web y aplicaciones web o de escritorio; así
MARCO DE REFERENCIA
27
mismo incluye el entorno en tiempo de ejecución en lenguaje común o Common Language
Runtime (CLR). En conjunto estos elementos abarcan la mayor parte de la plataforma .NET.
Servicios web. Existe una gama de servicios web comerciales, específicamente los
pertenecientes a la iniciativa de Servicios .NET; por una cuota, los desarrolladores pueden
utilizar estos servicios para crear aplicaciones que los requieran.
Servidores especializados. Comprende un conjunto de servidores comerciales basados en
.NET, incluyendo SQL Server, Exchange Server, Biztalk Server, entre otros. Estos proveen
funciones especializadas para el almacenamiento de bases de datos relacionales, correo
electrónico, y para transacciones entre negocios.
Dispositivos. Dispositivos compatibles con .NET, no necesariamente computadoras sino
también teléfonos móviles o hasta consolas de videojuegos [27].
2.9.2 Internet Information Services
Internet Information Services (IIS) es una herramienta provista por Microsoft que funciona
como un servidor web, el cual le da alojamiento a servicios web y páginas web dinámicas.
Aunque originalmente era una herramienta que estaba destinada a operar bajo la arquitectura
de sistemas operativos de tipo servidor, poco a poco se fue integrando aunque con funciones
más limitadas a sistemas operativos de uso personal como Windows XP o Windows Vista.
Esto hizo posible que una computadora personal pudiera utilizarse como servidor web para
Internet y poder publicar páginas web.
El servidor IIS facilita la administración de los sitios web y el acceso a los mismos. Un
sitio alojado en el servidor IIS es configurable y gracias a que se encuentra alojado en una
ruta definida es posible acceder a él mediante una dirección web fija.
PLANTEAMIENTO DEL PROBLEMA
28
III. PLANTEAMIENTO DEL PROBLEMA
Se pretende implementar un sistema de rastreabilidad para un entorno real de producción
por lotes. Este sistema estará constituido por distintas herramientas que harán posible la
recopilación, interpretación y presentación de datos referentes a la ubicación de un producto a
lo largo del proceso de producción.
3.1 Objetivo general
Desarrollar e implementar el modelo de un sistema flexible de rastreabilidad para un
entorno de producción por lotes.
3.2 Metas
- Identificar los elementos y requerimientos del sistema de rastreabilidad.
- Desarrollar los modelos dinámico y estático del sistema básico de rastreabilidad.
- Desarrollar los modelos particulares (dinámico y estático) del sistema de rastreabilidad
(aplicación a un caso particular).
- Obtener un modelo codificado del sistema de rastreabilidad.
3.3 Estrategia de trabajo
Como primer paso en el desarrollo del proyecto se precisarán los elementos con que debe
contar el sistema básico de rastreabilidad tanto desde el aspecto funcional como el de
integración de sus elementos. Para tal efecto se tomarán en cuenta sistemas existentes en el
mercado, las especificaciones del estándar, las normas que estén relacionadas con el tema de la
rastreabilidad a lo largo de la cadena de suministro y las necesidades específicas de
rastreabilidad de este tipo de sistemas de producción. Así mismo, se definirá un conjunto de
requerimientos del sistema (arquitectura de referencia) que incluya los aspectos estructurales,
funcionales y de adaptabilidad, así como estrategias a nivel conceptual para la solución de
cada uno de los requerimientos.
Es necesario desarrollar y codificar un modelo de referencia con base en el conjunto de
estrategias planteadas a nivel arquitectura de referencia. Una vez definido e implementado el
modelo del sistema se aplicará a una fábrica dedicada a la producción por lotes tomando en
PLANTEAMIENTO DEL PROBLEMA
29
cuenta las etapas particulares del proceso. En esta etapa además de la función básica del
sistema se prevé soporte en el mismo para la incorporación de elementos físicos de lectura
(sensores, lectores de código de barra, entre otros identificados en el nivel superior) y los
elementos a incorporar en la interfaz de usuario para este caso en particular.
Una vez desarrollado e implementado el modelo particular se procederá a la validación del
sistema, ya sea mediante su aplicación en una empresa real o bien emulando las estaciones de
trabajo del proceso real.
No existe un modelo definitivo sobre los elementos que deben conformar un sistema de
rastreabilidad, por lo que se puede construir un esquema personalizado que vaya orientado a
satisfacer las necesidades de las empresas. Para el desarrollo de este proyecto se desea
implementar un sistema de rastreabilidad genérico y flexible a cambios el cual pueda
adaptarse a cualquier empresa sin importar el giro de la misma. Se pretende seguir las
recomendaciones de ArquiTAM para diseñar una arquitectura de referencia enfocada a
sistemas de rastreabilidad.
Para fines prácticos se trabajará bajo la plataforma Windows por lo que se utilizarán
exclusivamente herramientas de desarrollo por parte de Microsoft, esto para lograr una
máxima compatibilidad entre componentes.
DESARROLLO
30
IV. DESARROLLO
En éste capítulo se describe la manera en que fue desarrollado e implementado el sistema
de rastreabilidad. Principalmente se hace un análisis conceptual de lo que es el sistema
abordando los elementos que lo conforman. Se pretende que el lector comprenda la esencia del
funcionamiento del sistema sin adentrarse de lleno a las herramientas utilizadas para su
desarrollo, por lo que en este capítulo no se incluye una descripción a detalle de la forma
técnica en que se implementó el sistema. Este documento cuenta con una sección de anexos
donde se explica más a detalle como implementar el sistema propuesto en caso de que se desee
hacerlo.
4.1 Sistema de rastreabilidad basado en ArquiTAM
Básicamente el diseño del sistema de rastreabilidad basado en ArquiTAM está divido en
tres niveles: arquitectura de referencia (conceptual), modelo de referencia genérico y modelo
particular. El primer nivel comprende al universo del discurso construido en base a las
características comunes extraídas de los sistemas de rastreabilidad existentes. El segundo nivel
corresponde a la construcción de un modelo de referencia genérico construido con base en las
herramientas del marco de trabajo. En este nivel se delimita el alcance que tendrá el sistema
partiendo de la definición de actividades a realizar y de los requerimientos generales con que
debe cumplir un sistema de rastreabilidad. El tercer nivel es la implementación del sistema en
casos particulares, para lo cual se adapta el sistema genérico a las particularidades del entorno
destino sin cambiar su estructura principal.
En la Figura 4.1 se puede observar básicamente como se aplicarían los niveles de
ArquiTAM en un sistema de rastreabilidad.
DESARROLLO
31
Figura 4.1 Aplicación de ArquiTAM en sistemas de rastreabilidad.
4.2 Diseño de la arquitectura de referencia
Los elementos básicos con los cuales debe contar un sistema de rastreabilidad son: un
sistema de identificación, uno para la captura de datos y otro para la gestión de la información,
ver Figura 4.2. Teniendo en cuenta estos elementos se podría diseñar una arquitectura de
referencia de la cual partir para lograr la implementación de un modelo particular desde uno
general.
Para la parte conceptual de la arquitectura se precisa definir que elementos son comunes en
algunos de los sistemas de rastreabilidad existentes. Una vez identificados estos elementos se
diseña un modelo que pueda servir como punto de partida para el desarrollo de futuros
sistemas de rastreabilidad. El modelo propuesto sugiere dividir el sistema principalmente en
tres secciones: identificación, recolección de datos y gestión de la información, aunque
adicionalmente se puede añadir otra sección que vendría correspondiendo a la presentación de
los datos hacia un sistema de gestión empresarial externo.
Nivel conceptual
Modelo de
referencia
genérico
Modelo particular
Arquitectura de
referencia
Desarrollo del sistema
genérico
Validación en empresa
real o emulador
ArquiTAM Sistema de rastreabilidad
DESARROLLO
32
Figura 4.2 Modelo conceptual para sistemas de rastreabilidad.
La etapa de identificación consiste en asignarle al producto un identificador con el cual
pueda ser reconocible en cualquier etapa de su elaboración. Existen distintos métodos de
identificación, pero se propone hacer uso de las tecnologías más utilizadas debido a su
facilidad de implementación y a la compatibilidad que ofrecen con otras tecnologías. Las
formas de identificación más comunes son el código de barras, identificación por
radiofrecuencia (RFID) y memorias de botón de contacto (CBM), cada una ofrece ventajas
respecto a otras según sea su aplicación, pero es importante considerarlas todas para tener
distintas opciones de donde elegir. Una de las ventajas más notorias del código de barras es el
alto grado de madurez que posee dentro de los sistemas de identificación, debido a esto existe
una gran cantidad de estándares aceptados para la implementación de códigos, entre los que
destacan UPC, EAN y GS1. Aunado a esto también han ido surgiendo estándares para códigos
de barras bidimensionales tales como Datamatrix, PDF47, Código QR, etc. Por otro lado en lo
que respecta a la identificación por radiofrecuencia aún no se cuentan con muchos estándares
universales, sin embargo se comienza a utilizar el código EPC propuesto por el consorcio
Identificación
Captura de datos y
control de
movimientos
Manejo y gestión de
la información
Sistema de gestión
empresarial
Asignar al producto o lote de productos
un identificador único
Añadir información al producto sobre
las transformaciones que sufre a lo
largo del proceso de fabricación
Almacenar la información referente al
producto en un formato estandarizado
Compatibilidad para compartir
información con sistemas de gestión
comerciales
DESARROLLO
33
mundial GS1. Por parte de las memorias de botones de contacto los estándares los define la
empresa que los utiliza.
La segunda etapa de un sistema de rastreabilidad es la recolección de datos, la cual consiste
en ir capturando y registrando en una base de datos los movimientos del producto ya
identificado para su posterior procesamiento. Dicha captura se realiza a través de lectores y/o
sensores que detectan la presencia del producto al llegar a cierta estación o al ser sometido a
cierto proceso. Independientemente de la tecnología de captura de datos a utilizar la
información debe de transmitirse hacia una computadora a través de protocolos universales de
transmisión de datos tales como RS-232, TCP/IP, USB, Bluetooth, entre otros, con el fin de
lograr un sistema flexible de adquisición de datos.
Una vez que se tiene capturada la información del producto se procede a almacenarla en
formato estandarizado directamente en una base de datos o a gestionarla mediante un software
de rastreabilidad. Para referirse a este software se utilizará la palabra middleware. Un buen
software de rastreabilidad debe de ser capaz de contener la información del producto así como
de los procesos a los cuales ha sido sometido, esto con el fin de diferenciarlo de un software
de control de almacén. Ver Figura 4.3
Figura 4.3 Datos que deben registrarse en un software de trazabilidad.
Producto
Proceso
Tipo
Atributos
Tipo
Duración
Nombre, número de producto, variedad
Peso, volumen, forma, color, temperatura
Ensamble, pintura, corte, pruebas
Tiempo que dura en cada estación
DESARROLLO
34
Al tener organizada la información se puede obtener un registro del historial del recorrido
del producto a lo largo de la cadena de suministro y de esa manera poder generar reportes al
respecto. Tales reportes pueden ser de interés para la alta gerencia en la empresa por lo que
debe considerarse compartir esa información con sistemas de gestión comerciales. Para lograr
este intercambio de información se recomienda utilizar protocolos universales de transporte de
datos tales como HTTP, XML, WSDL, SOAP, etc.
La implementación de todos estos elementos conforma básicamente un sistema de
rastreabilidad flexible ya que al hacer uso de tecnologías y estándares mundialmente aceptados
se puede lograr un sistema adaptable a cambios. Por lo tanto la arquitectura de referencia para
la implementación de sistemas de rastreabilidad genéricos quedaría como se muestra en la
Figura 4.4:
Figura 4.4 Arquitectura de referencia para sistemas de rastreabilidad.
Partiendo de este modelo se puede proceder a la implementación particular de sistemas de
rastreabilidad una vez determinados los requerimientos a satisfacer en la empresa tal como se
propone en ArquiTAM, para después definir los elementos de hardware y software así como
Entorno de fabricación, almacén y
transporte
Software de rastreabilidad
(Middleware)
Sistemas de gestión empresarial
Código de
barras RFID
Botones de
contacto
Estándares de identificación UPC, EAN, GS1, Datamatrix, EPC,…
Protocolos de transporte de datos RS-232, TCP/IP, USB, Bluetooth, …
Protocolos para el intercambio de la
información XML, WSDL, SOAP, HTTP, …
Base de datos
DESARROLLO
35
determinar los procesos de fabricación y representarlos ejecutables mediante la integración e
implementación de todos los elementos que conforman al sistema.
4.3 Modelo de referencia genérico
Una vez que se cuenta con una arquitectura de referencia para sistemas de rastreabilidad, de
acuerdo a ArquiTAM el siguiente nivel de desarrollo consiste en la selección de herramientas
para la implementación de un sistema genérico. La flexibilidad del sistema no radicará en la
capacidad de ser instalado en cualquier equipo de cómputo sino en la posibilidad de poder
adaptarse a cualquier tipo de procesos en un entorno de producción, por lo tanto el diseño y la
selección de herramientas necesarias para desarrollar el sistema queda a criterio del
desarrollador. Es importante destacar la relación entre arquitectura de referencia y modelo de
referencia (o sistema genérico) establecida en ArquiTAM, donde es posible desarrollar
diferentes modelos de referencia a partir de una misma arquitectura de referencia (conceptos).
Para este caso particular se trabajará bajo la plataforma Windows y se considerará el uso de
componentes de terceros en caso de ser necesarios.
4.3.1 Esquema general del sistema genérico
Basándose en la arquitectura de referencia propuesta, se diseñó un esquema modular para
el sistema genérico. En el esquema se pueden apreciar elementos propios de la plataforma
Windows, esto se debe a que se pretende trabajar solo con componentes de dicha plataforma
con el fin de lograr un fácil acoplamiento entre los mismos y de esa manera obtener una total
compatibilidad al momento de la integración, ver Figura 4.5.
DESARROLLO
36
Figura 4.5 Esquema modular del sistema genérico.
Básicamente el sistema está dividido en varios módulos. Estos módulos están relacionados
entre sí pero están organizados de manera que cada uno de ellos pueda ser remplazado o
eliminado sin afectar drásticamente al funcionamiento de los otros. Uno de esos módulos es la
de adquisición de datos, en dicho módulo se recolecta información acerca del producto que
pasa por las estaciones de trabajo que están distribuidas a lo largo de la cadena de suministro.
A grandes rasgos, en este módulo se leen códigos de productos indicando por que lugar está
pasando el producto y en que momento lo hace, esto para lograr la rastreabilidad que se viene
buscando. Esta adquisición se realiza de forma manual y/o por medio de lectores de códigos
de barras, lectores de tarjetas RFID o lectores de memorias botones de contacto. Los lectores a
utilizar deben de contar con puertos de comunicación serial RS-232 o Ethernet ya que son dos
protocolos de transmisión de datos maduros y, por lo tanto, cuentan con soporte por parte de
un gran número de compañías dedicadas a brindar soluciones para el desarrollo de
herramientas informáticas.
Procedimientos
almacenados
Base de datos WCF
DataSet
Sistema de
gestión
Middleware
Adquisición de
datos
Referencia local
Referencia de objeto
Librerías para hardware
SQL
Referencia de
servicio
ADO.NET
DESARROLLO
37
El siguiente módulo comprende a la parte central del sistema, se trata del middleware, el
cual se encarga de recibir y organizar los datos para que luego sean almacenados en una base
de datos. El middleware está desarrollado bajo el entorno de Visual Studio 2010 utilizando
como lenguaje de programación Visual Basic.NET. Se utilizan librerías propias del entorno de
desarrollo para lograr una comunicación con los lectores de códigos. Además posee módulos
de captura para cada etapa de la cadena de suministro.
Una vez que los datos son organizados se procede a su almacenamiento en una base de
datos que es de lo que se encargan los siguientes módulos. El siguiente módulo corresponde al
conjunto de datos conocido como DataSet, el cual es un conjunto de clases que contienen
tablas de datos y las operaciones que se pueden realizar sobre ellas. El conjunto de datos, al
estar descrito como un módulo independiente, permite que se le puedan realizar
modificaciones sin alterar la estructura del middleware. Este conjunto se consume desde el
middleware a través de una referencia de objeto.
Si bien es posible realizar operaciones sobre las tablas de datos directamente desde el
DataSet a través de los adaptadores de tablas aprovechando la plataforma de ADO.NET, se
decidió utilizar procedimientos almacenados con el fin de lograr una mayor personalización en
el esquema del sistema [27]. Los procedimientos almacenados forman parte de otro módulo
del esquema y a través de ellos es como se realizan las operaciones sobre las tablas. Estos
procedimientos no son otra cosa sino sentencias en lenguaje SQL que afectan a las tablas de la
base de datos a la cual apuntan. Ya que no están ligados a una base de datos en específico, se
puede tomar a la base de datos como un módulo aparte, por lo que se pueden tener múltiples
bases de datos y acceder a ellas a través de los procedimientos almacenados.
Un módulo más sería el de servicios web, se contempló la inclusión de este módulo para
poder exponer vía web la información almacenada en las bases de datos para que de esa
manera pueda ser accedida por diversos sistemas de gestión empresarial. Se trata de servicios
que funcionan bajo la plataforma Windows Communication Foundation, los cuales hacen una
referencia local hacia el conjunto de datos y sus funciones que luego son expuestas como
operaciones de servicio.
DESARROLLO
38
Finalmente, se tiene al módulo referente a los sistemas de gestión empresarial o
aplicaciones de reportes. Estas aplicaciones pueden acceder a la información almacenada en la
base de datos haciendo uso de los servicios web. Básicamente para poder consumir un servicio
web se tiene que realizar una referencia de servicio hacia la dirección dónde está alojado el
mismo. Para poder acceder al servicio a través de una dirección web fija es recomendable
alojar el servicio en un servidor de aplicaciones web tal como el servidor IIS de Microsoft.
A grandes rasgos, estos son los principales módulos que conforman el esquema general del
sistema genérico, si bien se pueden agregar módulos o quitar algunos. Los componentes así
descritos son suficientes para lograr los fines establecidos de la mayoría de los sistemas de
rastreabilidad.
4.3.2 Diseño de la base de datos
Uno de los componentes más importantes del sistema genérico de rastreabilidad es el
modelo de datos, ver Figura 4.6. Este modelo debe de estar diseñado de manera que pueda
adaptarse a cualquier proceso de fabricación en un entorno de producción. Para lograr diseñar
un modelo de datos genérico se analizaron varios sistemas de rastreabilidad existentes y se
extrajeron los elementos comunes entre ellos para incluirlos en el diseño de la base de datos
genérica. Después de realizar dicho análisis, se logró obtener un modelo en el cual se
contemplan cinco tablas de catálogos (destinadas al almacenamiento ordenado de objetos
únicos) y tres de detalle (para fines de relacionar elementos entre tablas de catálogo). Las
tablas de catálogo comprenden a una tabla para la materia prima, otra para los productos
individuales, una para los proveedores, otra para los empleados y una más para las estaciones
de trabajo; estas tablas cumplen la función de almacenar nuevos registros que luego serán
llamados en las tablas de detalle a través de los índices correspondientes. Respecto a las tablas
de detalle, una de ellas relaciona los proveedores con la materia prima para formar lotes con
los materiales que entran al almacén. Otra de las tablas sirve para conjuntar los productos
individuales en un lote para darles detalles dinámicos que cambian durante el proceso de
fabricación. Finalmente, se encuentra la tabla que relaciona las estaciones de trabajo con los
lotes de producto y los de almacén; en esta tabla se registra la hora de entrada y hora de salida
DESARROLLO
39
del lote de producto a la estación de trabajo, así como el empleado que está encargado de la
misma, además se lleva un registro de la materia prima que entra a esa estación.
Todas estas tablas fueron creadas en el entorno integrado SQL Server Management Studio
incluido en la suite Microsoft SQL Server 2008, ver Anexo A1.
Figura 4.6 Modelo entidad-relación del sistema genérico de rastreabilidad.
Empleado
ID_Emp
Nombre
ApPat
ApMat
Puesto
Area
Lote_MP
ID_Lote_MP
ID_Mat_Pri
ID_Prov
Hora_Entrada_Almacen
Hora_Salida_Almacen
Cantidad
Lote_Prod
ID_Lote_Prod
ID_Prod
Fecha_Elaboracion
Fecha_Caducidad
Cantidad
Materia_Prima
ID_Mat_Prim
Nombre
Descripcion
Producto
ID_Prod
Nombre
Descripcion
Contenido
Proveedor
ID_Prov
Nombre
Direccion
Telefono
Estacion
ID_Est
Nombre
Proceso
Area
Lote_Est
ID_Est
ID_Lote_MP
ID_Lote_Prod
ID_Emp
Hora_Entrada_Lote
Hora_Salida_Lote
Estatus_Lote
FK_Lote_Est_Estacion
FK_Lote_Est_Empleado
FK_Lote_Prod_Producto
FK_Lote_Est_Lote_Prod FK_Lote_Est_Lote_MP
FK_Lote_MP_Materia_Prima
FK_Lote_MP_Proveedor
DESARROLLO
40
4.3.2.1 Procedimientos almacenados
Los procedimientos almacenados son rutinas que contienen sentencias SQL que se
encuentran almacenadas físicamente en una base de datos [28]. La ventaja de estos
procedimientos es que se ejecutan directamente en el motor de base de datos y además pueden
ser ejecutados por múltiples programas externos lo que brinda flexibilidad al momento de
realizar consultas.
Se decidió utilizar procedimientos almacenados para realizar las operaciones sobre la base
de datos con el fin de no alterar la lógica del programa principal, además se contempló la
posibilidad de poder reciclar esos procedimientos para que puedan ser utilizados por otros
programas en caso de ser necesario. Las operaciones más comunes para las que se utilizaron
estos procedimientos fueron inserción y actualización de datos ya que los métodos de
inserción y actualización predeterminados son poco personalizables. Ver Anexo A1.3
4.3.3 Conjunto de datos
El módulo de conjunto de datos (DataSet) comprende a una clase que contiene al esquema
de las relaciones entre tablas así como las operaciones que se pueden realizar sobre ellas. Para
crear un conjunto de datos basta con agregar una clase de tipo DataSet y definir el origen de
datos al cual apuntará la clase. Una vez que se define la procedencia de los datos se
seleccionan las tablas con las que se quiere trabajar así como los procedimientos almacenados,
vistas y demás funciones. Para este proyecto se decidió guardar el conjunto de datos como una
biblioteca de clase. En la Figura 4.7 se muestra la clase con el diagrama del conjunto de datos
correspondiente al modelo de la base de datos genérica. Se pueden apreciar las tablas que
componen a la base de datos así como las relaciones entre ellas, también se muestran los
procedimientos almacenados dentro de la misma. Ver Anexo A3 para más detalles.
Para poder interactuar con la base de datos desde la aplicación cliente, es necesario realizar
la conexión hacia la base de datos haciendo referencia a la biblioteca de clase que contiene al
conjunto de datos generado anteriormente. Si se trata de una aplicación que va a operar de
manera local es recomendable realizar una referencia de objeto desde la aplicación cliente
hacia el conjunto de datos, de otra manera se puede hacer uso de servicios web para establecer
DESARROLLO
41
el canal de comunicación entre la base de datos y la aplicación remota. Una vez realizada la
conexión se podrá trabajar con todas las tablas definidas en el conjunto de datos así como con
los procedimientos almacenados que se elijan. Para poder hacer la referencia de objeto,
primero es necesario agregar al proyecto la referencia al directorio donde se localiza la librería
anteriormente creada. Ver Anexo A2.2.
Figura 4.7 Clase con el conjunto de datos.
4.3.4 Desarrollo del middleware
El middleware es la parte central del sistema ya que es ahí donde se capturan y organizan
los datos. Es el intermediario entre el hardware y las herramientas de gestión empresarial. Para
el desarrollo de este middleware, se utilizó el entorno de desarrollo Visual Studio 2010 y el
lenguaje de programación Visual Basic.NET, ver Anexo A1 para conocer como crear un
proyecto en este entorno. La aplicación se divide en varias secciones; se cuenta con módulos
de captura para registrar nuevos elementos, también se incluye una interfaz de configuración
DESARROLLO
42
para la recepción de datos y una sección más para registrar los movimientos a los que son
sometidos los lotes de productos o materia prima a través de la cadena de suministro. La
pantalla principal de la aplicación contiene una serie de botones que dan acceso hacia los
distintos módulos del middleware, ver Figura 4.8.
Figura 4.8 Pantalla principal del software de rastreabilidad.
Se decidió nombrar a la aplicación HoundSoft, formado por la palabra hound la cual uno de
sus significados en el idioma inglés es perseguir alguna cosa, y soft que es la apócope de la
palabra software, así pues se podría definir como una aplicación de software que sirve para
seguir el rastro.
4.3.4.1 Configuración de la interfaz de comunicación
Para realizar una adquisición de datos automatizada o semiautomática se requiere primero
registrar un número de código para los lotes de producto, de esa manera se podrá agregar
información al lote acerca de los lugares por los cuales va pasando. Se eligieron tres formas de
captura para esta aplicación, una es a través de la interface de comunicación serie RS-232, otra
DESARROLLO
43
es a través de protocolo TCP/IP y por último un método de captura manual utilizando el
teclado de la computadora. Para las primeras dos se hace uso de lectores de códigos de barras,
tarjetas RFID o memorias de botones de contacto compatibles con estas interfaces; cada vez
que el lote pase por uno de estos lectores se realizará el registro y así se sabrá en qué lugares
ha estado. Lo mismo en el método de captura manual, cada vez que el lote llegue a una
estación el operador se encargará de realizar el registro. El registro se puede realizar a la
entrada y/o a la salida de la estación.
Dentro de los componentes de desarrollo predeterminados de Visual Studio se encuentra el
recurso de comunicación serial, el cual permite configurar los parámetros de conexión para
realizar una comunicación exitosa con los dispositivos que utilicen esta interfaz. Los
parámetros básicos a configurar es el número de puerto por el cual se comunicará, la velocidad
de transmisión de datos y si se hará uso de un bit de paridad (ver anexo A6). Es posible
conectar hasta 256 dispositivos a través de ese puerto haciendo uso de concentradores. En la
Figura 4.9 se muestra el módulo de configuración de comunicación serie.
Figura 4.9 Módulo de configuración de comunicación serie.
Para habilitar la comunicación por TCP/IP es necesario agregar al entorno de desarrollo de
Visual Studio una librería dinámica llamada Winsock (ver anexo A2.1 y A6). Esta librería
pertenece a la gama de componentes COM y permite la comunicación entre aplicaciones a
través de sockets. Para poder enviar un mensaje a través de este medio, se tienen que
configurar ciertos parámetros como la dirección IP del servidor al cual se desea uno conectar,
DESARROLLO
44
así como el puerto por el cual se realizará la conexión. En este caso los lectores de códigos de
barra tomarían el rol de servidor y se conectará a ellos desde el middleware. La Figura 4.10
ilustra el módulo de configuración de comunicación TCP/IP.
Figura 4.10 Módulo de configuración de comunicación vía TCP/IP.
El método de captura es mucho más simple, sólo es necesario seleccionar cual es el lote
que está en la estación e indicar la hora de entrada y de salida de la misma, ver Figura 4.11.
Figura 4.11 Módulo de captura manual.
4.3.4.2 Estaciones de trabajo
La sección de estaciones de trabajo es la parte central del middleware. En esta sección se
realiza el registro de los lotes de productos que entran y salen de las estaciones de trabajo. Esta
etapa es muy importante ya que es aquí donde se conjuntan los elementos que se relacionan
con el lote de producto. Se podría decir que la rastreabilidad ocurre en esta sección.
Los datos que se registran en esta etapa son: la estación en la cual se está trabajando, la
materia prima que será transformada en la estación, el empleado encargado de operar tal
estación y el lote del producto que se está produciendo. Además, se brinda la opción de indicar
si el lote del producto fue aprobado o rechazado después de ser inspeccionado.
DESARROLLO
45
Es aquí también donde se configuran las interfaces de comunicación ya que cada estación
deberá contar por lo menos con un método de registro de entrada y otro de salida. Cada
ventana de formulario representa a una estación y se pueden replicar cuantas estaciones se
deseen manejar desde una misma computadora aunque se recomienda utilizar una
computadora por estación para evitar confusiones. La Figura 4.12 ilustra el formulario de
estaciones de trabajo.
Figura 4.12 Formulario para las estaciones de trabajo.
4.3.4.3 Módulos de captura
La aplicación cuenta con varios módulos de captura, algunos para registrar nuevos
elementos y otros para actualizar datos existentes. A continuación se describirá la
funcionalidad de cada uno de ellos.
El primer módulo a describir es el de materia prima, Figura 4.13. En este formulario se
pueden capturar los distintos tipos de materia prima que la empresa necesita para elaborar un
producto terminado. Se trata de un catálogo donde se almacena un identificador para cada
DESARROLLO
46
materia prima, el nombre con que se le conoce, así como una breve descripción de la misma.
Debido a la diversidad de materia prima que se puede adquirir, sólo se incluyen estos datos de
captura ya que son campos comunes para la mayor parte de la materia prima.
Figura 4.13 Formulario de captura para la materia prima.
Otro de los formularios corresponde al de los proveedores, Figura 4.14, este módulo se
decidió incluir ya que hay empresas que reciben material de un gran número de proveedores
por lo que es recomendable llevar un registro de los mismos. Los datos a capturar en este
formulario son: identificador para el proveedor, nombre, dirección en que se localiza y
teléfono.
Figura 4.14 Formulario de captura para los proveedores.
DESARROLLO
47
Un módulo más de captura es el de registro de productos, Figura 4.15. Se trata de un
formulario en donde se realiza el registro de los productos que pueda elaborar la empresa. Se
captura información básica como el identificador del producto, su nombre, contenido neto y
una descripción del mismo. En este catálogo se ve a los productos como entidades
individuales, todavía no se visualizan como un lote.
Figura 4.15 Formulario de captura para productos individuales.
Otro módulo corresponde al de registro de estaciones de trabajo, Figura 4.16. Es
simplemente un catálogo de estaciones de trabajo con las que cuenta la empresa. Los datos a
capturar en este formulario son el identificador de la estación, nombre de la misma, el proceso
que se realiza en ella y el área a la cual pertenece.
DESARROLLO
48
Figura 4.16 Formulario de registro de estaciones de trabajo.
El último formulario de registro de datos es el de empleados, Figura 4.17, el cual representa
un catálogo con la información más relevante de los empleados con que cuenta la empresa.
Los datos que se incluyen son: identificador del empleado, nombre y apellidos, puesto que
desempeña y el área a la cual pertenece.
Figura 4.17 Formulario de registro de empleados.
DESARROLLO
49
El middleware cuenta con dos formularios de detalle que encapsulan elementos de otros
formularios en uno solo. Se trata de un formulario para organizar por lotes la materia prima
que entra y sale del almacén, y otro formulario para registrar los lotes de productos que se
mandarán a la línea de producción.
El formulario correspondiente al almacén de materia prima, ver Figura 4.18, hace
referencia a los catálogos de materia prima y de proveedores, además se incluyen campos para
asignarle un identificador al lote, la cantidad de piezas que contiene así como la hora en que
entra y sale del almacén.
Figura 4.18 Formulario de registro de lotes en almacén.
El formulario de registro de lote de productos es uno de los más importantes ya que este
lote es el que va a contener el producto terminado, ver Figura 4.19. Primeramente se hace el
registro de un nuevo lote antes de que se mande a la línea de producción; si bien el lote se
DESARROLLO
50
encuentra vacío, se irá transformando a lo largo del proceso de fabricación hasta convertirse
en un lote con productos terminados. A este lote se le irán asignando datos de rastreabilidad ya
que se registrará por cuales lugares ha pasado así como la hora en que lo hizo. Una vez que el
lote haya terminado su recorrido por la línea de producción se le pueden agregar datos tales
como cantidad de piezas contenidas en el lote, fecha de elaboración y fecha de caducidad.
Figura 4.19 Formulario de registro de lote de productos.
4.3.5 Presentación de datos
Uno de los objetivos de los sistemas de rastreabilidad es que la alta gerencia esté al tanto de
lo que se está produciendo. Generar reportes es de gran ayuda para lograr tales fines. Para este
sistema se decidió utilizar servicios web como medio entre las aplicaciones de reportes y las
bases de datos. Específicamente se utilizó la plataforma de Windows Communication
Foundation de Microsoft para la creación de servicios web. La ventaja de utilizar esta
plataforma es que se puede acceder a los servicios a través de contratos, esto hace que las
aplicaciones puedan consumir al servicio independientemente del lenguaje de programación
en que estén creadas. Los servicios web para esta aplicación se desarrollaron bajo el entorno
de Visual Studio 2010.
DESARROLLO
51
4.3.5.1 Acceso a datos a través de servicios WCF
Para lograr acceder a una base de datos desde un servicio WCF se tiene que agregar una
referencia hacia un conjunto de datos o bien crearlo en el mismo proyecto en que se
implementará el servicio. En este caso se optó por hacer una referencia a la biblioteca de clase
que contiene al conjunto de datos creado anteriormente. Una vez hecha la referencia se puede
hacer uso de los métodos y adaptadores de tablas del conjunto de datos dentro del servicio
web. En la Figura 4.20 se muestra el código de la interfaz del servicio WCF y la referencia
hacia el conjunto de datos previamente creado.
Figura 4.20 Servicio web con referencia a un conjunto de datos.
Una vez que se tenga configurado el servicio se puede compilar desde el entorno de
desarrollo y se generará una dirección web por la cual se puede consumir desde una aplicación
cliente. El inconveniente de realizarlo de esta manera es que se genera una dirección web
diferente cada vez que el proyecto es compilado, por lo que es necesario estar actualizando la
DESARROLLO
52
referencia desde el cliente. Para evitar esto se puede alojar el servicio web en un servidor de
aplicaciones web como lo es Internet Information Services de Microsoft, ver Anexo A4 y A5.
4.3.5.2 Alojando servicios web en el servidor IIS
El servidor IIS de Microsoft permite el acceso continuo a páginas web dinámicas. Es
posible alojar servicios web en él para que estén disponibles siempre que una aplicación quiera
acceder a ellos. Existen distintos métodos de alojar sitios web en dicho servidor pero
básicamente se trata de crear un directorio virtual donde se colocan los archivos de
compilación necesarios para hacer funcionar el servicio. Una vez que se tienen los archivos
correctos se procede a la implementación del servicio para que se genere una dirección web
fija a través de la cual lo consumirán las aplicaciones cliente. En la Figura 4.21, se muestra el
directorio virtual alojado en el servidor IIS y se pueden apreciar los archivos que contienen las
configuraciones que hacen posible que el servicio se ejecute.
Figura 4.21 Servicio web alojado en el servidor IIS.
DESARROLLO
53
4.3.5.3 Pantallas de reportes
Para efectos de pruebas de los servicios web, se creó una aplicación cliente que consumiera
el servicio creado. A través de ese servicio se puede acceder a la información almacenada en
la base de datos del sistema de rastreabilidad. Estas pantallas de reportes cumplen con la
función básica de mostrar el contenido de las tablas alojadas en la base de datos. En el cliente
no se incluyen funciones de inserción, borrado o actualización, sólo de selección.
A diferencia de la aplicación middleware que hacía referencia de objeto hacia el conjunto
de datos, esta aplicación de reportes hace una referencia de servicio ya que el conjunto de
datos está contenido dentro del servicio web, ver Anexo A2.2.1.
En la pantalla principal de la aplicación de reportes se puede seleccionar hacia qué
formulario se desea acceder, ver Figura 4.22. Los formularios en esta aplicación son muy
parecidos a los del middleware pero con la diferencia de que estos sólo sirven para visualizar
la información contenida en la base de datos. En la Figura 4.23 se muestra un ejemplo de este
tipo de formularios.
Figura 4.22 Módulo de selección de formularios para la aplicación de reportes.
Figura 4.23 Ejemplo de formulario de reportes.
DESARROLLO
54
4.4 Validación del sistema
Para probar el alcance del sistema se solicitó a una empresa real que indicará cuáles eran
los requerimientos necesarios para implementar un sistema de rastreabilidad en su entorno de
producción. El sistema de rastreabilidad se adaptó casi en su totalidad al proceso interno de
transformación del producto, aunque se tuvo que agregar un módulo extra al sistema ya que la
empresa requería de un módulo para registrar datos de recolección de materia prima en la
fábrica del proveedor. Al agregar dicho módulo se tuvo que crear una nueva base de datos que
complementara a la ya existente en vez de alterarla. Esta nueva base de datos estaba
compuesta de tres tablas; una para almacenar los datos del conductor que realiza la
recolección, otra para los datos del lote de materia prima y una tabla de detalle que relaciona a
las otras dos. Ver Figura 4.24 para más detalle.
Figura 4.24 Tablas de datos para el sistema particular.
La tabla de detalle que contiene los datos de recolección está relacionada directamente con
la tabla de conductor y con la tabla de lote, además se relaciona indirectamente mediante
procedimientos almacenados con la tabla de proveedores alojada en la base de datos original
del sistema de rastreabilidad. Así mismo, la tabla con los datos de lote se relaciona
indirectamente con la tabla de lote de materia prima de la otra base de datos.
ConductorIDConductor
Nombre
ApPat
ApMat
RecoleccionIDLote
IDConductor
IDProveedor
Modo
Fecha
LoteIDLote
IDPale
Cantidad
DESARROLLO
55
Figura 4.25 Relación entre tablas del sistema genérico y módulo particular.
Como se puede observar en la Figura 4.25, no se alteró la base de datos perteneciente al
sistema de rastreabilidad ya que ésta fue diseñada para adaptarse a cualquier tipo de proceso
de producción interno. Para no modificar el middleware, se creó una aplicación cliente
adicional con la cual se puedan capturar los datos de recolección en la planta del proveedor.
La dinámica de diseño sigue siendo la misma por lo que esta aplicación cliente se comunicará
a través de servicios web con la base de datos, contemplando que dicha aplicación podría
utilizarse en un lugar externo a la red local en que se encuentra alojada la base de datos.
4.4.1 Análisis de la aplicación cliente para el sistema particular
Los formularios de la aplicación cliente para el módulo de recolección de materia prima
siguen el mismo esquema que los formularios pertenecientes al middleware. Se cuenta con una
Empleado
ID_Emp
Nombre
ApPat
ApMat
Puesto
Area
Lote_MP
ID_Lote_MP
ID_Mat_Pri
ID_Prov
Hora_Entrada_Almacen
Hora_Salida_Almacen
Cantidad
Lote_Prod
ID_Lote_Prod
ID_Prod
Fecha_Elaboracion
Fecha_Caducidad
Cantidad
Materia_Prima
ID_Mat_Prim
Nombre
Descripcion
Producto
ID_Prod
Nombre
Descripcion
Contenido
Proveedor
ID_Prov
Nombre
Direccion
Telefono
Estacion
ID_Est
Nombre
Proceso
Area
Lote_Est
ID_Est
ID_Lote_MP
ID_Lote_Prod
ID_Emp
Hora_Entrada_Lote
Hora_Salida_Lote
Estatus_Lote
FK_Lote_Est_Estacion
FK_Lote_Est_Empleado
FK_Lote_Prod_Producto
FK_Lote_Est_Lote_Prod FK_Lote_Est_Lote_MP
FK_Lote_MP_Materia_Prima
FK_Lote_MP_Proveedor
ConductorIDConductor
Nombre
ApPat
ApMat
RecoleccionIDLote
IDConductor
IDProveedor
Modo
Fecha
LoteIDLote
IDPale
Cantidad
Sistema genérico Módulo particular
DESARROLLO
56
pantalla principal en donde se capturan los datos generales de recolección, desde esta pantalla
se puede acceder a los otros módulos de captura que son el de conductor, lote de materia prima
y proveedor. La Figura 4.26 muestra la pantalla principal del sistema particular.
Figura 4.26 Pantalla principal del sistema particular.
Los tres módulos anteriormente mencionados corresponden a formularios para catálogos
donde se dan de alta nuevos registros, los cuales posteriormente son llamados desde el
formulario principal. El primer módulo es el de conductores en el cual se registran datos
básicos como identificador del conductor, su nombre y sus apellidos, ver Figura 4.27.
DESARROLLO
57
Figura 4.27 Formulario para registro de conductores.
El siguiente módulo de captura corresponde al de registro de lotes, ver Figura 4.28. En este
formulario se dan de alta los lotes de materia prima, se le asigna un identificador, se indica a
que palé pertenece y la cantidad de materia con que está conformado el lote.
Figura 4.28 Formulario para registro de lotes de materia prima.
DESARROLLO
58
Finalmente, se encuentra el módulo de registro de proveedores, ver Figura 4.29, el cual es
idéntico al formulario de proveedores localizado dentro del middleware. Los datos de captura
son: identificador de proveedor, nombre, dirección y teléfono. Aunque en el middleware se
cuenta con un formulario igual, se decidió la inclusión de este en el sistema particular por si en
alguna ocasión se requiere dar de alta los datos de un proveedor al momento de realizar la
recolección.
Figura 4.29 Formulario para registro de proveedores en el sistema particular.
CONCLUSIONES Y RECOMENDACIONES
59
V. CONCLUSIONES Y RECOMENDACIONES
Con base en el análisis realizado acerca del diseño y del funcionamiento de los sistemas de
rastreabilidad existentes en el mercado, se observó que estos sistemas al perseguir el mismo
objetivo principal comparten características comunes aun cuando estén diseñados para cubrir
distintas necesidades particulares, en consecuencia se propuso la creación de un sistema
genérico que fuera capaz de satisfacer las necesidades de múltiples empresas aun cuando
existian ciertas diferencias entre ellas. Para lograr tal objetivo se trabajó bajo las
recomendaciones de la estructura de referencia ArquiTAM, con la cual se logró el desarrollo
de un sistema genérico que tuviera la capacidad de adaptarse a distintos entornos. Se diseñó
una arquitectura de referencia que pudiera servir como punto de partida para la construcción
de un modelo genérico para sistemas de rastreabilidad que pueda ser adaptable y flexible con
el fin de aplicarse en un entorno particular sin la necesidad de modificar sus características
estructurales. Se propuso que la arquitectura debía de estar conformada por cuatro etapas
principales: identificación del producto, recolección de datos, organización de la información
y presentación de datos.
Una vez definidos los elementos que conforman la arquitectura de referencia, se procedió
al desarrollo del sistema genérico de rastreabilidad. Para obtener un sistema que pudiera
cumplir con las expectativas se construyó un esquema modular el cual brindara la flexibilidad
que se venía buscando. Al dividir el sistema en módulos, se logró un acoplamiento débil lo
que hizo más robusto al sistema en la medida de que si un módulo falla los otros pueden seguir
operando casi en su totalidad. Se decidió que el sistema estuviera dividido en tres módulos
principales: adquisición de datos, almacenamiento de la información y presentación de datos.
Para la parte de adquisición de datos se utilizaron protocolos de comunicación maduros y
de uso frecuente en la industria con el fin de contar con una amplia gama de equipos con
potencialidades de incorporarse en el sistema. En lo que respecta al almacenamiento de la
información, se diseñó una base de datos genérica que estuviera constituida por tablas con
campos comunes para la mayoría de los productos. Por otro lado, la parte de presentación de
datos presentó alta flexibilidad debido al uso de servicios web. Se eligió hacer uso de una
arquitectura orientada a servicios con el fin de exponer los datos vía web y de esa manera
CONCLUSIONES Y RECOMENDACIONES
60
aprovechar los protocolos universales de internet para lograr una amplia compatibilidad con
las aplicaciones que deseen acceder a la base de datos mediante el consumo de estos servicios.
La flexibilidad obtenida en el sistema se debe en gran parte a las herramientas y tecnologías
seleccionadas para su desarrollo. Trabajar bajo una misma plataforma de desarrollo fue de
gran ayuda para la construcción de un sistema modular, ya que todos los componentes que
funcionan bajo esta plataforma de alguna manera son compatibles entre sí.
Se demostró que es posible la implementación del sistema genérico en un entorno
particular ya que se validó su funcionalidad tomando en cuenta los requerimientos en materia
de rastreabilidad de una empresa real. La estructura principal del sistema no se vio afectada al
momento de realizar la implementación.
Como conclusión general se puede decir que es posible la implementación particular de un
sistema genérico desarrollado en base a un modelo conceptual tal y como se propone en
ArquiTAM, por lo que se recomienda su utilización al momento de diseñar sistemas
informáticos para talleres automáticos de manufactura.
REFERENCIAS
61
REFERENCIAS
[1] J. Acosta and F. Sastrón, “Schematic Architecture: Reference Architecture / Frameworks /
Particular Models for the Shop Floor Environment”, 32nd
Annual Conf. of the IEEE Industrial
Electronics Society, Paris, FR, Nov. 2006.
[2] M. P. Groover, 1ª ed., Fundamentos de manufactura moderna. Materiales, procesos y
sistemas, MX: Prentice-Hall, 1997, p. 20.
[3] D. F. Muñoz Negrón, “Diseño del sistema de producción”, en Administración de
operaciones. Enfoque de administración de procesos de negocios, MX: CengageLearning,
2009, p. 216.
[4] R. H. Sánchez Villagrán, “Síntesis conceptual y geotrazabilidad”, en Introducción a la
trazabilidad. Un primer acercamiento para su comprensión e implementación, Buenos Aires,
AR: El Escriba, 2008, p. 133.
[5] V. de las Cuevas Insúa, Trazabilidad Avanzado. Guiá práctica para la aplicación de un
sistema de trazabilidad en una empresa alimentaria, ES: Ideaspropias Editorial, 2006, p. 95.
[6] J. A. Sancho Frías, “Guía de soluciones”, en Implantación de productos y servicios, ES:
Vértice, p. 59.
[7] International Organization of Standardization, (2010, Dic. 17), ISO 22005:2007,
Traceability in the feed and food chain - General principles and basic requirements for system
design and implementation, [En línea]. Disponible:
http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=36297
[8] ileAN Tracking Pack. A SMirallesproduct, (2008), Software de Trazabilidad.[En línea].
Disponible: http://www.ilean.net/
[9] Dipole RFID, (2007-2011), Soluciones RFID. [En línea]. Disponible:
http://www.dipolerfid.es/
REFERENCIAS
62
[10] Ordinal Software, (1989-2011) COOX-MESbox. Integrated solution of Manufacturing
Execution System.[En línea]. Disponible: http://www.ordinal.fr/en/html/mesbox_pmt.htm
[11] AnJelica, (2006-2011) Anjelica. Una solución libre de cárnicas.[En línea]. Disponible:
http://anjelica.sourceforge.net/
[12] R. H. Sánchez Villagrán, “QUÉ SE ENTIENDE POR TRAZABILIDAD. SUS
COMIENZOS”, en Introducción a la trazabilidad. Un primer acercamiento para su
comprensión e implementación, Buenos Aires, AR: El Escriba, 2008, p. 20.
[13] V. M. Nava and A. R. Jimenez, “La realización del producto”, en ISO 9000:2000
Estrategias para implantar la norma para la mejora continua, México, MX: Limusa, 2005, p.
106.
[14] J. Monsó i Bustio, “Sistemas Ópticos”, en Sistemas de identificación y control
automáticos (II). Sistemas de control del flujo físico, Barcelona, ES: Marcombo, 1994, p. 10.
[15] P. J. Sweeney II, “Taking the mystery out of RFID”, en RFID fordummies, Indianapolis,
US: Wiley Publishing Inc., 2005, p. 9.
[16] J. I. Portillo, A. B. Bermejo and A. M. Bernardos, “La tecnología RFID”, en Tecnología
de identificación por radiofrecuencia (RFID): Aplicaciones en el ámbito de la salud, Madrid,
ES: Fundación madri+d para el conociemiento, 2008, p. 66.
[17] J. R. Lajara Vizcaíno and J. Pelegrí Sebastiá, “Comunicación serie”, en LabVIEW.
Entorno gráfico de programación, Barcelona, ES: Marcombo, 2007, p. 116.
[18] I. Rodil Jiménez and C. Pardo de Vega, “El ordenador y su funcionamiento”, en
Operaciones auxiliares con tecnologías de la información y la comunicación, Madrid, ES:
Paraninfo, 2010, p. 19.
[19] R. M. Stair and G. W. Reynolds, “Telecomunicaciones y redes”, en Principios de
sistemas de información. Enfoque administrativo, México, MX: International Thomson
Editores, 2000, p. 266.
REFERENCIAS
63
[20] J. D. Peña, J. Gámiz Caro, A. Grau i Saides and H. Martinez García, “Redes de área local
(LAN)”, en Comunicaciones en el entorno industrial, Barcelona, ES: Editorial UOC, 2003, p.
228.
[21] M. Andreu, “Contexto general de las comunicaciones móviles”, en Principios de
comunicaciones móviles, Barcelona, ES: Edicions UPC, 2003, p. 41.
[22] J. Acosta and F. Sastrón, “Production shop floor system modeling with reusability
focus”, IFAC Conference on Cost Effective Automation in Networked Product Development
and Manufacturing, Monterrey, MX, Oct. 2007.
[23] C. Leiter, D. Wood, M. Cierkowski and A. Boettger, 2ª ed., “Introducing SQL Server
2008” en Beginning Microsoft SQL Server 2008 Administration, US: Wiley Publishing, 2009,
p. 1-3.
[24] Microsoft Corporation, (2012), Microsoft Visual Studio. [En línea]. Disponible:
http://www.microsoft.com/visualstudio/es-es
[25] Microsoft, (2012), msdn. [En línea]. Disponible: http://msdn.microsoft.com/es-
es/library/e80y5yhx(v=vs.80).aspx
[26] M. Leroux Bustamante, 1ª ed., “Hello Indigo” en Learning WCF, US: O’Reilly, 2007, p.
1-2.
[27] T. Thai and H. Q. Lam, 3ª ed., “.NET Overview” en .NET Framework Essentials, US:
O’Reilly, 2003, p. 1.
[28] Microsoft, (2012), msdn. [En línea]. Disponible: http://msdn.microsoft.com/es-
es/library/ms191436%28v=sql.100%29
[29] T. Groussard, “Acceso a la base de datos” en Visual Basic 2010 (VB.NET), Barcelona,
ES: Ediciones ENI, 2011, p. 410.
GLOSARIO
64
GLOSARIO
API. (Interfaz de Programación de Aplicaciones) Es un conjunto de convenciones
internacionales que definen cómo debe invocarse una determinada función de un programa
desde una aplicación
ArquiTAM. Es una estructura de referencia para talleres de manufactura que presenta la
organización del taller en diferentes niveles de abstracción directamente relacionados, que
corresponden a los niveles: conceptual, implementación genérica e implementación particular.
ASCII. (Código Estándar Americano para el Intercambio de Información) Es un código de 7-
bit que sustituye las letras del alfabeto romano por cifras y otros caracteres informáticos.
COM. (Modelo Componente Objeto) Es una plataforma de Microsoft utilizada para permitir
la comunicación entre procesos y la creación dinámica de objetos, en cualquier lenguaje de
programación que soporte dicha tecnología.
DLL. (Librería de enlace dinámico) Es un archivo ejecutable que permite a los programas
compartir código y otros recursos necesarios para realizar determinadas tareas. Microsoft
Windows proporciona archivos DLL con funciones y recursos que permiten que programas
basados en Windows funcionen en el entorno Windows.
EAN. (Número de Artículo Europeo) Es un sistema de códigos de barras adoptado por más de
100 países y cerca de un millón de empresas.
EPC. (Código Electrónico de Producto) Es un número único diseñado para identificar de
manera inequívoca cualquier objeto. Este código es un sistema de identificación y seguimiento
de las mercancías en tiempo real.
ERP. (Planificación de Recursos Empresariales) Son Sistemas de Información
Gerenciales que integran y manejan muchos de los negocios asociados con las operaciones de
producción y de los aspectos de distribución de una compañía en la producción de bienes o
servicios.
GS1. Es una organización privada global dedicada a la elaboración y aplicación
de normas mundiales y soluciones para mejorar la eficiencia y visibilidad de las cadenas de
abastecimiento, la oferta y la demanda a nivel mundial y en todos los sectores.
GLOSARIO
65
HTTP. (Protocolo de Transferencia de Hyper Texto) La transferencia hipertexto es
simplemente la transferencia de archivos hipertexto de una computadora a otra.
El protocolo de transferencia de hipertexto es el conjunto de reglas utilizadas por las
computadoras para transferir archivos hipertexto o páginas web por internet.
IDE. (Entorno Integrado de Desarrollo). Aplicación compuesta por un conjunto
de herramientas útiles para un programador. Un entorno IDE puede ser exclusivo para
un lenguaje de programación o bien, poder utilizarse para varios. Suele consistir de un editor
de código, un compilador, un depurador y un constructor de interfaz gráfica GUI.
LAN. (Red de Área Local) Una red local es la interconexión de varios ordenadores
y periféricos. Su extensión esta limitada físicamente a un edificio o a un entorno de unos
pocos kilómetros. Su aplicación más extendida es la interconexión de ordenadores personales
y estaciones de trabajo en oficinas, fábricas, etc.; para compartir recursos e intercambiar datos
y aplicaciones.
Middleware. Middleware es un software que funge como intermediario entre una aplicación y
otros componentes de software o hardware.
OS/2. Es un sistema operativo de IBM que intentó suceder a DOS como sistema operativo de
las computadoras personales. Se desarrolló inicialmente de manera conjunta entre Microsoft e
IBM, hasta que la primera decidió seguir su camino con su Windows 3.0 e IBM se ocupó en
solitario de OS/2.
SOAP. (Protocolo de Acceso Simple a Objetos) Es un protocolo para el intercambio de
mensajes sobre redes de computadoras, generalmente usando HTTP. Está basado en XML.
Socket. Designa un concepto abstracto por el cual dos programas (posiblemente situados
en computadoras distintas) pueden intercambiar cualquier flujo de datos, generalmente de
manera fiable y ordenada.
SQL. (Lenguaje de Consulta Estructurado) Es un lenguaje de acceso a bases de datos
relacionales que permite la especificación de distintos tipos de operaciones entre éstas. Gracias
a la utilización del álgebra y de cálculos relacionales, el SQL posibilita la realización de
consultas para recuperar información de las bases de datos de forma sencilla.
GLOSARIO
66
TCP/IP. (Protocolo de control de transmisión/Protocolo de Internet) Representa todas las
reglas de comunicación para Internet y se basa en la noción de dirección IP, es decir, en la idea
de brindar una dirección IP a cada equipo de la red para poder transportar paquetes de datos.
UPC. (Código Universal del Producto) Es un código en barras impreso en el envoltura de los
productos para poder así ser escaneado electrónicamente (dicho código contiene información
sobre el nombre y el precio del producto).
URL. (Localizador Uniforme de Recursos) Es una secuencia de caracteres, de acuerdo a un
formato estándar, que se usa para nombrar recursos, como documentos e imágenes en Internet,
por su localización.
WSDL. (Lenguaje de Descripción de Servicios Web). Lenguaje basado en XML para
describir servicios web. Permite describir la interfaz pública de los servicios web; eso significa
que detalla los protocolos y los formatos de los mensajes necesarios para interactuar con los
servicios listados en su catálogo.
XML. (Lenguaje de Marcas Extensible) Es un lenguaje que permite la organización y el
etiquetado de documentos. Esto quiere decir que el XML no es un lenguaje en sí mismo, sino
un sistema que permite definir lenguajes de acuerdo a las necesidades.
ANEXOS
67
ANEXOS
A1. Creación de una base de datos en Microsoft SQL Server 2008
A continuación se mostrará cómo crear una base de datos en SQL Server 2008 utilizando la
herramienta Microsoft SQL Server Management Studio.
Una vez dentro de Management Studio hay que dirigirse al Explorador de objetos y
expandir el árbol del servidor correspondiente, luego pulsar con el botón derecho del ratón
sobre la carpeta Base de datos. Aparecerá un menú emergente en el cual se debe seleccionar la
opción Nueva base de datos, ver Figura A1.1. (En caso de no estar visible el explorador, puede
mostrarse en la barra de menú en la pestaña Ver->Explorador de objeto)
Figura A1.1 Creación de una nueva base de datos.
Al pulsar la opción de Nueva base de datos aparecerá una ventana, ver Figura A1.2, donde
se procede a darle un nombre a la nueva base de datos. Para terminar se pulsa en el botón
Aceptar.
Figura A1.2. Nombrando la nueva base de datos.
ANEXOS
68
A1.1 Creación de tablas
Para crear una nueva tabla en la base de datos de forma visual, se debe expandir el árbol de
la instancia donde se desea crear la tabla. Luego hay que colocarse sobre la carpeta llamada
Tablas y presionar el botón derecho del ratón para que aparezca un menú emergente. En ese
menú se debe pulsar la opción Nueva tabla, ver Figura A1.3.
Figura A1.3. Creando una nueva tabla.
Una vez que esté creada la tabla, se puede proceder a definir los campos que estarán
contenidos en ella. Se asigna un nombre a las columnas, el tipo de datos que se almacenarán y
si es posible almacenar valor nulos. Para más detalle ver Figura A1.4.
Figura A1.4. Definiendo campos en la tabla.
Dentro de las opciones para las tablas se encuentra la de establecer claves principales,
insertar y eliminar columnas, relaciones y restricciones, entre otras. Para acceder a estas
opciones basta con seleccionar campos de la tabla y pulsar el botón derecho del teclado para
que aparezca un menú emergente, ver Figura A1.5, de otra forma también se puede acceder a
él en la barra de menú pulsando sobre la pestaña Diseñador de tablas.
ANEXOS
69
Figura A1.5. Menú para el diseño de tablas.
A1.2 Relaciones entre tablas
Para relacionar los campos de una tabla con los de otra de manera visual es necesario
primero crear un diagrama de base de datos, para realizar esto se expande el árbol de la
instancia donde se localizan las tablas, luego, se coloca el cursor sobre la carpeta llamada
Diagrama de base de datos y se pulsa el botón derecho del ratón para invocar al menú
emergente. En dicho menú se pulsa sobre la opción Nuevo diagrama de base de datos, ver
Figura A1.6.
Figura A1.6. Creando un diagrama de base de datos.
Al hacer esto aparecerá una ventana en la cual se deben seleccionar las tablas que se desea
aparezcan en el diagrama. Se seleccionan las tablas deseadas y se pulsa el botón de Agregar,
ver Figura A1.7.
ANEXOS
70
Figura A1.7. Selección de tablas que aparecerán en el diagrama.
Una vez que se hayan agregado las tablas, aparecerán de manera visual en el lienzo del
diagrama, ver Figura A1.8.
Figura A1.8. Tablas en el diagrama.
Teniendo agregadas las tablas en el diagrama se puede proceder a realizar las relaciones
entre ellas. Para crear una relación hay que posicionarse sobre la tabla a la que se quiere
relacionar y pulsar el botón derecho del ratón para que aparezca el menú emergente, luego hay
que pulsar en el menú la opción llamada Relaciones, ver Figura A1.9.
ANEXOS
71
Figura A1.9. Creando relaciones entre tablas.
Al pulsar esa opción aparecerá una ventana de dialogo en la cual el diseñador de la base de
datos podrá crear las relaciones entre tablas. Para agregar una nueva relación se debe pulsar el
botón Agregar situado en la parte inferior izquierda de la ventana. Después hay que
seleccionar la opción de Especificación de tablas y columnas y pulsar en el botón con puntos
suspensivos al final del renglón, ver Figura A1.10.
Figura A1.10. Agregando relaciones entre tablas.
ANEXOS
72
Para realizar la relación entre los campos de las diferentes tablas, se deben seleccionar los
campos de las tablas que se desean relacionar y pulsar el botón Aceptar al terminar, para más
detalle ver Figura A1.11. Se puede hacer más de una relación siempre y cuando el tipo de
datos en los campos a relacionar sea el mismo.
Figura A1.11. Agregando relaciones entre tablas.
Al volver del asistente de relaciones entre tablas se podrá visualizar en el diagrama las
relaciones entre las tablas. Si la relación se realizó correctamente, se mostrará una línea que
une a ambas tablas tal como se muestra en la Figura A1.12.
Figura A1.12. Tablas correctamente relacionadas.
ANEXOS
73
A1.3 Procedimientos almacenados
Para crear un procedimiento almacenado se expande el árbol de la instancia donde se desea
crear el procedimiento, luego se expande la carpeta llamada Programación y después se coloca
el cursor sobre la carpeta que lleva por nombre Procedimientos almacenados. Se pulsa el
botón derecho sobre esa carpeta para que aparezca el menú emergente y se selecciona la
opción Nuevo procedimiento almacenado, ver Figura A1.13.
Figura A1.13. Creando procedimientos almacenados.
Luego aparecerá un área de comandos donde el programador podrá crear procedimientos
almacenados mediante sentencias SQL. Aparece una plantilla con código la cual puede ser
modificada para crear un procedimiento almacenado personalizado, ver Figura A1.14.
Figura A1.14. Área de comandos para crear procedimientos almacenados.
ANEXOS
74
Una vez que se hayan definido las sentencias SQL a utilizar, se pulsa el botón Ejecutar para
que el procedimiento quede almacenado en la base de datos. El procedimiento puede ser
modificado posteriormente a su creación.
La estructura básica que debe seguir un procedimiento almacenado es la siguiente:
CREATE PROCEDURE NOMBREDELPROCEDIMIENTO
--Definición de parámetros
AS
BEGIN
--Operaciones SQL (selección, inserción, actualización, etc.)
END
GO
A2. Tareas básicas en Visual Studio
A continuación se mostrará cómo realizar tareas comunes en Visual Studio 2010 como por
ejemplo, crear un proyecto, agregar referencias, configurar un origen de datos, entre otros. El
lenguaje utilizado en los ejemplos es Visual Basic.NET
A2.1 Creación de un proyecto
Para crear un nuevo proyecto en el entorno de Visual Studio 2010, se debe ir a la barra de
menú y seleccionar la pestaña Archivo, luego del menú emergente posicionarse sobre Nuevo y
posteriormente pulsar la opción Proyecto como se muestra en la Figura A2.1.
ANEXOS
75
Figura A2.1. Creación de nuevo proyecto en Visual Studio 2010.
El paso siguiente para la creación de un proyecto es seleccionar el tipo de plantilla con que
se trabajará y en qué lenguaje. En este caso se decidió crear una Aplicación de Windows
Forms utilizando Visual Basic. Una vez seleccionada la plantilla se le da un nombre. También
se puede cambiar el nombre a la solución en la cual se estará trabajando. Al finalizar se pulsa
Aceptar. En la Figura A2.2 se muestra la ventana de selección de plantillas del proyecto.
Figura A2.2. Selección de plantillas para el proyecto.
ANEXOS
76
Al pulsar Aceptar se habrá creado la plantilla que se eligió y se podrá proceder a trabajar
sobre ella. En la Figura A2.3 se muestra la solución creada en base a una plantilla de Windows
Forms.
Figura A2.3. Solución, proyecto y plantilla creados.
Es posible agregar componentes a los formularios de Windows, estos pueden encontrarse
en el Cuadro de Herramientas situado a la izquierda del entorno, ver Figura A2.4. En caso de
que no aparezca el cuadro, se puede invocar a través de la pestaña Ver en la barra de menú.
Figura A2.4. Cuadro de herramientas en Visual Studio 2010.
ANEXOS
77
En ocasiones se desea agregar al formulario elementos que no se encuentran en el cuadro
de herramientas de manera predeterminada, por lo que resulta útil conocer la manera de
agregarlos al cuadro de herramientas para que estén disposición en futuras ocasiones. Para
realizar esto, se pulsa con el botón derecho del ratón sobre cualquier elemento del cuadro de
herramientas, así aparecerá un menú emergente de donde se seleccionará la opción Elegir
elementos, ver Figura A2.5.
Figura A2.5. Elegir elementos del cuadro de herramientas.
Al pulsar la opción del menú emergente aparecerá un cuadro de dialogo de donde se podrá
elegir los elementos que se desean agregar al cuadro de herramientas, ver Figura A2.6. Se
pueden seleccionar varios a la vez. Para terminar se debe pulsar el botón Aceptar.
Figura A2.6. Cuadro de diálogo para elegir elementos.
ANEXOS
78
A2.2 Agregar referencias
En ocasiones resulta útil o necesario hacer referencia hacia algún componente externo para
poder hacer uso de sus bondades. Para agregar una referencia al proyecto en curso, se puede
hacer desde la pestaña Proyecto en la barra de menú o posicionando el cursor encima del
proyecto y pulsando el botón derecho del ratón para que aparezca un menú emergente, luego
se pulsa la opción Agregar referencia, ver Figura A2.7.
Figura A2.7. Agregando una referencia al proyecto.
Aparecerá un cuadro de diálogo donde se podrá seleccionar el origen de la referencia, ver
Figura A2.8. Puede ser un componente de la plataforma .NET, algún componente COM o
alguna referencia a proyectos o archivos alojados en la computadora.
Figura A2.8. Pantalla de selección de referencias.
ANEXOS
79
A2.2.1 Agregar referencia de servicio
Para agregar una referencia de servicio se siguen los mismos pasos que se siguen para
agregar una referencia local solo que en vez de seleccionar en el menú emergente la opción
Agregar referencia se selecciona la opción de Agregar referencia de servicio, ver Figura A2.9.
Figura A2.9. Agregando una referencia de servicio al proyecto.
Al seleccionar la opción de Agregar referencia de servicio, aparecerá un cuadro de diálogo
en el cual se debe de especificar la dirección URL del servicio web. Después de colocar la ruta
del servicio en la barra de dirección, se presiona el botón Ir para comprobar que se pudo
acceder satisfactoriamente al servicio. Si la conexión es exitosa, aparecerán en el recuadro
blanco de la derecha las operaciones disponibles en el servicio, tal como se muestra en la
Figura A2.10. Se pulsa el botón Aceptar para finalizar la configuración de la referencia.
Figura A2.10. Pantalla de configuración de la referencia al servicio.
ANEXOS
80
A3. Creando un conjunto de datos como biblioteca de clase
Como primer paso, se creará un nuevo proyecto utilizando como plantilla una Biblioteca de
clase. Se selecciona la opción Biblioteca de clases del recuadro de selección de plantillas tal y
como se muestra en la Figura A3.1.
Figura A3.1. Creación de una biblioteca de clase.
Después se procede a agregar el conjunto de datos al proyecto. Para esto hay que agregarlo
como nuevo elemento, esto se puede hacer desde la pestaña Proyecto de la barra de menú o
pulsando el botón derecho sobre el proyecto en el Explorador de soluciones para abrir un
menú emergente. En este menú se selecciona la opción Agregar y posteriormente la opción
Nuevo elemento, ver Figura A3.2.
Figura A3.2. Agregando un conjunto de datos al proyecto.
ANEXOS
81
De las plantillas instaladas, se posiciona en el apartado de Datos y de los elementos
mostrados se elige Conjunto de datos, ver Figura A3.3, se cambia el nombre si así se desea y
se pulsa el botón de Agregar
Figura A3.3. Seleccionando la plantilla de conjunto de datos.
Con esto ya se tiene agregado el conjunto de datos a la biblioteca de clase. El paso
siguiente es configurar el origen de datos para poder colocar las tablas y procedimientos de la
base de datos en el diseñador del DataSet.
A3.1 Configurando un origen de datos
Para agregar un origen de datos, primero hay que realizar una conexión con el servidor que
almacena la base de datos que se desea utilizar. Como primer paso se accede al Explorador de
servidores situado a la izquierda del entorno de desarrollo o disponible en la pestaña Ver de la
barra de menú. Luego se pulsa con el botón derecho sobre el elemento Conexiones de datos,
para abrir un menú emergente donde se selecciona la opción Agregar conexión, ver Figura
A3.4.
ANEXOS
82
Figura A3.4. Agregando una nueva conexión al entorno de desarrollo.
El siguiente paso es elegir el origen de datos de un cuadro de diálogo que muestra el tipo de
origen de datos así como el proveedor. En este caso se seleccionará Microsoft SQL Server ya
que es el manejador en que está alojada la base de datos anteriormente creada. Al tener lista la
selección se pulsa el botón de Continuar. En la Figura A3.5 se muestra un cuadro de diálogo
donde se selecciona el origen de datos.
Figura A3.5. Seleccionando motor de base de datos.
Luego aparecerá un cuadro de dialogo donde se pide que se seleccione el origen de datos,
ver Figura A3.6. Los datos relevantes que se solicitan son el nombre del servidor, la base de
datos a la cual se accederá y el tipo de autenticación para realizar la conexión. Al terminar de
configurar los parámetros de conexión, se puede pulsar el botón de Probar conexión para
verificar que efectivamente se configuró bien el origen de datos. Para finalizar se pulsa el
botón Aceptar.
ANEXOS
83
Figura A3.6. Seleccionando el origen de datos.
La nueva conexión de datos aparecerá en el Explorador de servidores, como se muestra en
la Figura A3.7, y de esa manera se tornarán accesibles los elementos con que cuenta la base de
datos.
Figura A3.7. Árbol de conexiones de datos.
ANEXOS
84
Una vez agregada la conexión, se procede a agregar los elementos de la base de datos al
diseñador del conjunto de datos. Esto se realiza arrastrando hacia el diseñador del conjunto de
datos los elementos con los que se desee interactuar. Al arrastrar tablas se conservarán las
relaciones entre ellas tal y como se definieron en el diagrama de base de datos. Además de
tablas se pueden agregar al diseñador procedimientos almacenados y vistas. En la Figura A3.8
se muestran las tablas y sus relaciones en el diseñador del conjunto de datos.
Figura A3.8. Diseñador del conjunto de datos.
Para finalizar se guarda el proyecto y se genera la solución con el fin de crear una librería
con extensión .dll que contendrá el conjunto de datos creado y que podrá ser referenciada ya
sea por una aplicación cliente u otro componente. Para generar la solución se debe seleccionar
la opción Generar solución dentro de la pestaña Generar de la barra de menú, ver Figura A3.9.
Figura A3.9. Diseñador del conjunto de datos.
A4. Creando un servicio WCF que contiene a un DataSet
Como primer paso se procede a crear un nuevo proyecto. De entre las plantillas instaladas
se selecciona la opción de WCF y se elige un proyecto de tipo Biblioteca de servicios WCF,
ver Figura A4.1. Se le asigna un nombre tanto al proyecto como a la solución y se pulsa en el
botón Aceptar.
ANEXOS
85
Figura A4.1. Creando un proyecto de tipo Biblioteca de servicios WCF.
Una vez creado el proyecto se procede a agregar una referencia hacia la librería dll que
contiene al conjunto de datos. Al agregarla se podrá hacer uso de todos los atributos
contenidos en ella.
El servicio WCF funciona mediante dos clases fundamentales, una de ella es la interfaz y la
otra es la clase principal. La primera contiene a los contratos que dictminarán la forma a la que
serán accedidos las operaciones del servicio. La segunda corresponde a las funciones del
servicio. La manera en que se definen las operaciones de contrato para consumir las funciones
del conjunto de datos en la interfaz es la siguiente:
<ServiceContract()> Public Interface IService1 <OperationContract()> _ Function GetData() As Biblioteca1.DataSet1.TABLA1DataTable End Interface
Para poder hacer uso de las operaciones del DataSet en el servicio WCF es necesario
agregar una referencia al ensamblado del tipo System.Data.DataExtensions, ver Figura A4.2.
ANEXOS
86
Figura A4.2. Agregando referencia de ensamblado al servicio WCF.
Teniendo declaradas las operaciones de contrato se procede a implementar las funciones
del servicio en la clase principal. Estas funciones hacen referencia a las operaciones de
contrato y después devuelven un valor que es que se expone al momento de consumir el
servicio. La sintaxis para declarar una función con propiedades de un conjunto de datos es la
siguiente:
Public Class Service1 Implements IService1 Public Function GetData() As Biblioteca1.DataSet1.TABLA1DataTable Implements IService1.GetData Dim DataTableAdapter As New Biblioteca1.DataSet1TableAdapters.TABLA1TableAdapter Return DataTableAdapter.GetData() End Function End Class
A4.1 Publicar un servicio WCF en el servidor IIS
La forma más sencilla de publicar un servicio web es haciéndolo directamente del entorno
de desarrollo. En la pestaña Generar de la barra de menú se selecciona la opción Publicar
Servicio, ver Figura A4.3.
Figura A4.3. Publicando el servicio web desde Visual Studio.
ANEXOS
87
Al seleccionar la opción de Publicar servicio, aparecerá un cuadro de diálogo en el cual se
debe especificar la ubicación de destino donde se desee alojar el servicio, ver Figura A4.4. Se
puede alojar en un directorio existente o crear uno nuevo, para hacerlo se presiona el botón a
la derecha de la caja de texto con la ubicación del destino.
Figura A4.4. Configurando ruta de almacenamiento del servicio.
Aparecerá otro cuadro de diálogo donde se podrá seleccionar un directorio virtual para
almacenar el servicio o crear uno nuevo, ver Figura A4.5. Es importante corroborar que esté
seleccionada la opción de IIS local en el panel de la izquierda y se recomienda crear un
directorio virtual para cada servicio y que dicho directorio se localice en la carpeta de Default
Web Site. Una vez que se tenga elegido el directorio donde se alojará el servicio se presiona el
botón Abrir para volver al cuadro de diálogo anterior. Al volver al cuadro de diálogo ya se
puede publicar el servicio. Se recomienda seleccionar la opción de Eliminar todos los archivos
existentes antes de publicar así como la opción de copiar Sólo los archivos necesarios para
ejecutar esta aplicación. Teniendo seleccionadas estas opciones se pulsa el botón Publicar para
finalizar con la publicación del servicio en el servidor IIS.
ANEXOS
88
Figura A4.5. Creación y selección de directorios virtuales.
A5. Configuración de servicios en el servidor IIS
Para poder consumir un servicio de manera correcta son necesarias algunas
configuraciones. A continuación se muestran las configuraciones básicas para poder publicar
un servicio exitosamente.
Primeramente se configurará el tipo de autenticación con que se debe acceder al servicio.
Para fines prácticos se seleccionará la autenticación anónima. Esto se realiza colocando el
cursor en el servicio que se desea configurar y se selecciona la Vista de Características en la
parte inferior de la pantalla. Luego se pulsa dos veces el ícono de Autenticación para abrir un
cuadro de diálogo, ver Figura A5.1 para más detalle.
ANEXOS
89
Figura A5.1. Vista de características del sitio web.
Al acceder a tal cuadro de diálogo, se verifica que esté habilitad la Autenticación anónima,
de lo contrario se debe de activar colocando el cursor encima de ella y pulsando la opción
Habilitar en el panel de la derecha. El cuadro de diálogo se muestra en la Figura A5.2.
Figura A5.2. Modos de autenticación para el sitio web.
ANEXOS
90
Lo siguiente es configurar que la aplicación pertenezca al grupo de aplicaciones correcto.
Para esto se selecciona el sitio web y se pulsa el botón derecho sobre él para abrir un menú
emergente y seleccionar la opción de Administrar aplicación y posteriormente Configuración
avanzada, ver Figura A5.3.
Figura A5.3. Configurando la aplicación web.
Aparecerá un cuadro de diálogo con la configuración avanzada, ver Figura A5.4. Se
selecciona la opción de Grupo de aplicaciones y se pulsa el botón con los puntos suspensivos
de la derecha.
Figura A5.4. Configuración avanzada de la aplicación.
ANEXOS
91
Como último paso de esta configuración, se selecciona la opción de ASP.NET v4.0 del
cuadro de texto desplegable y se presiona el botón Aceptar, ver Figura A5.5. Se selecciona
este tipo de aplicaciones, ya que todas las aplicaciones anteriormente creadas se desarrollaron
bajo esta plataforma.
Figura A5.5. Selección de grupo de aplicaciones.
Otra configuración más es la identidad de aplicaciones. Para configurar esto se posiciona el
cursor en el elemento de Grupo de aplicaciones del servidor donde se está trabajando, luego se
selecciona el grupo de aplicaciones a configurar que en este caso son las aplicaciones que
funcionan bajo la plataforma ASP.NET v4.0. Se pulsa el botón derecho sobre el grupo y se
selecciona la opción Configuración avanzada el menú emergente, ver Figura A5.6.
Figura A5.6. Configurando la identidad de aplicaciones.
ANEXOS
92
Aparecerá un cuadro de diálogo con las configuraciones avanzadas. En la pestaña de
Modelo de proceso habrá un elemento con el nombre de Identidad, se selecciona la opción y
se pulsa el botón con los puntos suspensivos de la derecha como se muestra en la Figura A5.7.
Figura A5.7. Configuración avanzada del grupo de aplicaciones.
Emergerá una ventana en la cual se configura la identidad del grupo de aplicaciones, ver
Figura A5.8. Para este caso se debe seleccionar la opción de Cuenta integrada como
LocalSystem. Para finalizar se presiona el botón Aceptar.
Figura A5.8. Seleccionando el tipo de identidad del grupo de aplicaciones.
ANEXOS
93
Otra posible configuración serían los permisos. Para configurar esto se debe posicionar el
cursos sobre el sitio web en cuestión y pulsar el botón derecho, luego seleccionar la opción
Editar permisos del menú emergente, ver Figura A5.9.
Figura A5.9. Editando los permisos de la aplicación.
Se abrirá una ventana en donde se debe de agregar el usuario IIS USERS y otorgarle
permisos de lectura y escritura con el fin de que el servidor IIS pueda acceder libremente al
directorio donde se localiza el servicio. En la Figura A5.10 se muestra dicha ventana.
Figura A5.10. Pantalla para otorgar permisos a usuarios.
ANEXOS
94
Si las configuraciones son correctas el servicio podrá ser visualizado exitosamente en el
navegador web y se generará la dirección URL con la cual se podrá acceder a él a través de
aplicaciones cliente tal como se muestra en la Figura A5.11.
Figura A5.11. Servicio web creado exitosamente.
A6. Configuración de interfaces de comunicación
Para configurar una interfaz de comunicación serial es necesario arrastrar al formulario el
componente SerialPort desde el Cuadro de herramientas, ver Figura A5.12.
ANEXOS
95
Figura A5.12. Componente SerialPort.
Una vez colocado el componente en el formulario se selecciona algún tipo de evento
(pulsar un botón por ejemplo) con el cual al activarse, se configurará la comunicación serial.
Para este ejemplo se llamará al componente SerialPort1. Las configuraciones son las
siguientes:
SerialPort1.PortName = "Número de Puerto (COM1…256)" SerialPort1.BaudRate = Velocidad de transmisión de datos (19200, 9600, 4800, …) SerialPort1.Parity = Tipo de paridad (0,1,2,3,4) SerialPort1.Open()
Para el caso de la configuración TCP/IP se utiliza el componente Microsoft Winsock
Control, el cual se arrastra desde el Cuadro de herramientas hacia el formulario, ver Figura
A5.13. Para este ejemplo el componente será llamado Winsock1 e igual debe de ser
convocado mediante un evento.
Figura A5.13. Componente Winsock.
Winsock1.Protocol = MSWinsockLib.ProtocolConstants.sckTCPProtocol Winsock1.RemotePort = Número de Puerto del servidor (0-65535) Winsock1.RemoteHost = "Nombre o dirección IP del servidor" Winsock1.Connect()