SECRETARÍA DE EDUCACIÓN PÚBLICA

SUBSECRETARIA DE EDUCACIÓN SUPERIOR

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE NUEVO LEÓN

MEMORIA DE EXPERIENCIA PROFESIONAL

“SISTEMA ALIMENTADOR DE FOTOS Y SISTEMA DE ENVIÓ DE ALERTAS PARA DISPOSITIVOS IPHONE”

QUE PRESENTA EN OPCIÓN A TITULO DE

INGENIERO EN SISTEMAS COMPUTACIONALES

OSCAR HUGO CAMPUZANO ANDRÍA

93270295

GUADALUPE, N.L. MARZO 2011

Agradecimientos

A MIS PADRES

Martha Luz Andría A. y Oscar Campuzano G. Por la admiración, amor y respeto que les tengo al ensañarme con su ejemplo y consejos ser un buen hombre.

A MI ESPOSA:

Verónica Aguilar Zúñiga. Por su apoyo, amor y compresión incondicional. Así como enseñarme a ver lo mejor de la vida y sobre todo por el gran amor que le tengo.

A MIS HIJOS

Oscar Eduardo y Maximiliano Campuzano Aguilar por darme amor, alegría y motivación para ser mejor cada día. Además del gran amor que les tengo.

2 Resumen

Grupo es un conjunto de empresas dedicadas principalmente a la elaboración de publicaciones informativas (periódicos), así como también suministra información a otras empresas editoriales a través de su Agencia de Noticias Reforma. Las diferentes empresas que constituyen el Grupo

Reforma están distribuidas en varias ciudades del país, como: ,

Distrito Federal (D.F.), , y .

La empresa recientemente a diversificado su oferta ofreciendo sus ya tradicionales productos sobre los nuevos avances en tecnologías electrónicas, como por ejemplo sitios web y aplicaciones para dispositivos móviles.

Es por ello que en esta memoria se describirá las aplicaciones que se han desarrollado para ayudar a la empresa a cumplir con dicha tarea.

3 Índice Resumen ...... 3 Índice ...... 4 Índice de Ilustraciones ...... 6 Índice de Tablas ...... 8 Capitulo 1. Grupo Reforma ...... 9 Antecedentes ...... 9 Actividades Desempeñadas ...... 17 Actividades dentro del Grupo Reforma ...... 19 Capacitación Recibida ...... 20 Capitulo 2. Fundamento Teórico ...... 21 Introducción ...... 21 Tecnología .NET ...... 22 El Entorno Común de ejecución (CLR) ...... 24 La Biblioteca de Clases de .NET ...... 27 ADO.NET ...... 30 ASP.NET ...... 34 WEB Services ...... 38 Lenguajes de Programación Utilizados ...... 41 “C#” ...... 41 Java ...... 45 Manejadores de Base de Datos ...... 48 SQL Server ...... 48 Exif ...... 53 Capitulo 3. Sistema Alimentador de Fotos ...... 57 Catalogo de Fotos del Día ...... 58 Proceso de Alimentación de Fotos ...... 63 FotoEditor Suite ...... 65 Acceso a la Intranet ...... 67 Modulo de Descarga ...... 69 Modulo de Inyección ...... 73 Modulo de ID Final ...... 80 Modulo de Corrección ID ...... 83 Modulo Auditor ...... 85 Servicios de Inyección de Fotos del Día ...... 87 Servicio Alimentador ...... 88 Servicio Repartidor ...... 92

4 Servicio de Inyección de Fotos de Agencias ...... 95 Datos Técnicos del Sistema Alimentador de Fotos ...... 101 Resultados ...... 103 Capitulo 4. Sistema Notificador de Alertas a Dispositivos IPhone ...... 106 Dispositivos de la Marca Apple ...... 107 APNS (Apple Push Notification Service) ...... 110 Arquitectura de Seguridad ...... 114 El Payload de Notificación ...... 115 Aplicación Cancha ...... 117 Servicios del Sistema ...... 126 Web Service WSGeneradorAlertas ...... 127 Web Service WSIPhone ...... 129 Servicio Notificador ...... 131 Datos Técnicos del Servicio de Alertas ...... 134 Resultados ...... 136 Conclusiones ...... 138 Bibliografía ...... 142

5 Índice de Ilustraciones

Ilustración 1. Mapa de distribución de Grupo Reforma...... 11 Ilustración 2. Organigrama Actual del Grupo Reforma...... 13 Ilustración 3. Vista general de la arquitectura .net...... 23 Ilustración 4. Proceso de compilación del CLR...... 25 Ilustración 5. Librería de Clases de .NET...... 28 Ilustración 6. Vista general de la librería ADO .NET...... 30 Ilustración 7. Estructura de Data Provider y DataSet ...... 31 Ilustración 8. Código C# para establecer una consulta a SQL Server...... 33 Ilustración 9. Evolución de ASP.NET...... 35 Ilustración 10. Como se organizan las aplicaciones basadas en ASP.NET. . 38 Ilustración 11. Evolución del lenguaje de programación C#...... 42 Ilustración 12. Estructura básica de un programa en C#...... 43 Ilustración 13. Fragmento de código en C# para leer el Exif...... 56 Ilustración 14. Solicitud de acceso por parte del Applet al sistema de archivos...... 68 Ilustración 15. Modulo de descarga utilizando su explorador de archivos. .. 70 Ilustración 16. Modulo Inyectar de la Intranet FotoEditor Suite...... 74 Ilustración 17. Identificación de Foto vista desde la aplicación Exifer...... 76 Ilustración 18. Modulo Inyectar haciendo uso del corrector ortográfico...... 77 Ilustración 19. Modulo de ID Final...... 81 Ilustración 20. Modulo de Corrección ID...... 84 Ilustración 21. Modulo Auditor...... 86 Ilustración 22. Consola para administrar el Servicio Alimentador...... 90 Ilustración 23. Consola para administrar el Servicio Repartidor...... 93 Ilustración 24. Consola para administrar el Servicio Fotos Agencias...... 95 Ilustración 25. Comparativa de los diferentes dispositivos de Apple ...... 111 Ilustración 26. Ejemplo de notificación de alerta...... 113 Ilustración 27. Esquema de envió de notificaciones...... 114 Ilustración 28. Esquema de seguridad en una conexión con el Servidor APN...... 115 Ilustración 29. Pantalla de inicio de la aplicación Cancha...... 118 Ilustración 30. Pantalla de selección de equipo para su configuración...... 119 Ilustración 31. Pantalla de configuración de alertas de un equipo en particular...... 120 Ilustración 32. Notificación de Alerta cuando se anota un Gol...... 123

6 Ilustración 33. Pantalla menú donde se selecciona un partido a configurar...... 124 Ilustración 34. Pantalla menú donde se selecciona un equipo de la liga NBA...... 125 Ilustración 35. Pantalla de configuración de alertas de un equipo de la NBA...... 126 Ilustración 36. Flujo de comunicación entre la Aplicación Minuto a Minuto y el Servicio Web WSGeneradorAlertas...... 128 Ilustración 37. Flujo de comunicación de un IPhone con el Servicio Web WSIPhone...... 130 Ilustración 38. Flujo del servicio Notificador...... 132

7 Índice de Tablas

Tabla 1. Campos más significativos del Exif ...... 55

Tabla 2. Ejemplo de Identificación...... 62

Tabla 3. Herramientas del Modulo Descarga...... 72

Tabla 4. Herramientas del Modulo Inyección...... 80

Tabla 5. Usuarios por plaza que inyectan fotos...... 104

Tabla 6. Cantidad y tiempos de Inyección de fotos por plaza...... 105

Tabla 7. Valores del diccionario APS...... 117

Tabla 8. Descripción de las alertas para juegos del Futbol Mexicano...... 122

8 Capitulo 1. Grupo Reforma

Antecedentes

El Grupo Reforma es la mayor empresa de medios impresos en México y

América Latina. La empresa pública 10 diarios en 5 ciudades, incluyendo las tres ciudades más importantes del país. Reforma en la Ciudad de México, El

Norte en Monterrey y Mural en Guadalajara. También se publican los diarios de Metro en las ciudades de México, Monterrey, Guadalajara, Puebla y

Toluca. Además se publica por la tarde en la ciudad de Monterrey el periódico El Sol.

Grupo Reforma se ha distinguido siempre por ser una empresa de medios impresos líder en el mercado; sin embargo, ya no es sólo un periódico, ya que gracias a nuevas tecnologías ha podido incursionar como un medio informativo electrónico.

Además de los tradicionales periódicos el Grupo Reforma elabora productos electrónicos donde se puede consultar la información más actualizada de lo que sucede al instante en el país y el mundo. Estos tipos de productos se

9 benefician de las nuevas tecnologías de software como por ejemplo: internet, y más recientemente de los dispositivos móviles, como por ejemplo: el teléfono móvil llamado IPhone de la compañía Apple. Además la empresa es creadora y propietaria de los sitios web de contenido informativo más importantes en México, como por ejemplo:

  http://www.elnorte.com Cancha IPhone   http://www.reforma.com Avisos de Ocasión IPhone   http://www.mural.com El Norte IPhone

 http://www.cancha.com

Por otra parte, el grupo posee el mayor servicio de agencia de noticias con información de México, el cual se denomina: Agencia Reforma.

Además colabora en asociación con los principales periódicos de Estados

Unidos. Cancha, un tabloide que contiene dentro de sus páginas información del deporte Mexicano y el mundo, es publicado cada dos semanas en las Vegas en asociación con The Vegas Review Journal.

10 Ilustración 1. Mapa de distribución de Grupo Reforma.

Para los lectores del Grupo Reforma no solo es importante estar informado de lo que ocurre en México y el mundo, también es igualmente importante saber lo que ocurre en su entorno local, en temas de ocio, profesión, cultural, social, etc. En respuesta a estas exigencias, la empresa fue creando suplementos especiales de información y de consultoría. Ejemplo de estos suplementos, son los siguientes:

  Sr. Futbol Sierra Madre   Club Cumbres   La Novia Expo Navidad 99   Texas Año Nuevo 2000

11  Magazine  Catálogo de Compras

 Expo Bebé  Etc.

 Salud y Bienestar

El grupo tiene sus oficinas corporativas en la Ciudad de México, Monterrey y

Guadalajara, siendo las oficinas de Monterrey la matriz. Es en estas tres oficinas corporativas donde se encuentra todo el personal encargado de la creación de los productos que ofrece. Para poder cumplir con esta tarea de producción, la empresa ha organizado el personal en direcciones, donde cada una de ellas cumple con un rol muy importante, para obtener como meta los productos de alta calidad que ofrece. A continuación se describen a manera de resumen cada una de estas direcciones.

12

Ilustración 2. Organigrama Actual del Grupo Reforma.

Dirección Editorial: Es quien hace la labor periodística al obtener la información y prepararla para los lectores, elabora las notas, reportajes, investigaciones, columnas de opinión, etc. Está compuesta por reporteros,

13 editores, coeditores, diseñadores, fotógrafos, especialistas de investigación, columnistas, etc.

Dirección Comercial: La Dirección está dividida en dos áreas: Comercial y

Circulación.

El Área Comercial se ocupa de:

 Ventas de espacios.

 Ventas en los suplementos como La Novia, Mi Bebé.

 Existe una División que ofrece servicio de imprenta, y elaboración de

suplementos con servicio de diseño, foto y distribución en los

periódicos del grupo.

Por otro lado, el Área de Circulación se encarga de la distribución del periódico, tanto a nivel local como nacional. Aproximadamente la mitad de los periódicos vendidos por el Grupo son a suscriptores. Para nosotros las suscripciones son muy importantes, pues promueven la lectura del periódico entre las familias.

14 Dirección de Operaciones: A esta Dirección pertenecen todos los departamentos operativos de la empresa; entre ellos se encuentran Recursos

Humanos, Auditoría, Contabilidad, Informática, Tráfico y Abastecimiento, entre otros.

Para el proceso de producción existen dos aéreas con funciones diferentes las cuales conjuntan su información para darle forma al periódico, estas son las siguientes:

Área Comercial: Es responsable de toda la publicación de anuncios.

Área Redacción: Es donde se genera toda la noticia.

Es precisamente en estas dos áreas donde el trabajo hecho se hace presente, ya que para la elaboración de los productos es necesario contar con la materia prima. Esta materia prima está constituida principalmente por fotografías y notas que componen los productos de Grupo Reforma.

Son precisamente las fotografías el tema de interés que cubre la mayor parte de este documento. Las fotos es uno de los recursos más importantes para la creación de los diferentes productos del grupo. Las fotografías sirven para

15 ilustrar las noticias en los periódicos, sitios web, aplicaciones en dispositivos móviles, además de su venta en la Agencia Reforma y la Foto Tienda.

El equipo de investigación y desarrollo donde laboro, es el encargado de crear sistemas que pongan a disposición de editores y diseñadores las fotografías que se utilizan para la elaboración del periódico.

16 Actividades Desempeñadas

Al Grupo Reforma ingreso en el año de 2001, al área de Investigación y

Desarrollo, en el puesto de Ingeniero de Desarrollo Junior, mas tarde en el año de 2007 obtengo el puesto de Ingeniero de Desarrollo Sénior donde me encuentro actualmente. Es precisamente en estos puestos donde he podido poner en práctica todos los conocimientos adquiridos durante el curso de la carrera de Ingeniería en Sistemas Computacionales.

Dentro de este puesto hemos ayudado a la empresa a hacer más eficiente los procesos de producción, desarrollando productos de software que cumplen con los requerimientos de las áreas de Redacción y Comercial

Dentro de los productos de software más sobresalientes en los que he participado, se encuentran los siguientes:

Monitor Editorial: Intranet que permite a los Editores, ver el avance que llevan los diseñadores en las diferentes paginas que componen los periódicos del grupo.

17 Administrador Corporativo: Sistema que permite el manejo de permisos para dar acceso a los sistemas: Retoque de Fotos, Monitor Editorial, Sistema

Alimentador de Fotos y Edición de Notas Editoriales. Además de permitir la configuración de objetos editoriales, como son: Publicaciones y Secciones.

Monitor Editorial IPad: Intranet optimizada para el dispositivo IPad que permite ver el avance que llevan los diseñadores en las diferentes paginas que componen los periódicos del grupo.

Monitor Editorial IPhone: Intranet optimizada para el dispositivo IPhone que permite ver el avance que llevan los diseñadores en las diferentes paginas que componen los periódicos del grupo.

CORE: Sistema que permite el envió de Fotos y Notas desde cualquier parte del mundo desde una PC con acceso a internet

Sistema de Alimentación de Fotos: Conjunto de aplicaciones que trabajan en sincronía para tener un catalogo de fotos actualizado e indexado.

Sistema de Retoque de Fotos: Sistema que permite el retoque automático de fotos para darle más calidad a las imágenes antes de usarlas en algún producto del grupo.

Sistema Alertas IPhone: Sistema que permite el envió de alertas a dispositivos, IPhone, IPod e IPad, estas alertas consisten en el envió de

18 mensajes de texto, con información referente a noticias y encuentros deportivos de equipos del futbol Mexicano.

Actividades dentro del Grupo Reforma

Algunas de las actividades que hemos llevado a cabo dentro del Grupo son las siguientes:

 Coordinación de Proyectos.

 Análisis y Diseño de Sistemas.

 Desarrollo de Sistemas

 Soporte de los Sistemas que están en producción en las tres plazas.

 Capacitación de los Sistemas Desarrollados

 Instalación e Implementación de Sistemas.

 Investigación de nuevas Tecnologías

 Actualización de Servidores de Base de Datos a nuevas versiones.

 Participación en la propuesta de mejoras continúas a los Sistemas.

 Continúas actualizaciones a los Sistemas.

 Instalación de Laboratorios de Desarrollo.

19 Capacitación Recibida

La revolución tecnológica que se ha venido gestando desde hace mas de 15 años no ha parado, al contrario sigue haciéndose más fuerte cada día que transcurre. Cada día, productos de software permiten obtener grandes beneficios al momento de desarrollar un sistema. Por lo consiguiente es muy importante mantenerse actualizado con las últimas novedades tecnológicas que puedan hacer la diferencia en este competitivo campo del desarrollo de software, dada esta situación, tratamos de estar en constante capacitación, he aquí una breve lista de algunos de los curso que hemos recibido a lo largo de más de 10 años de carrera profesional.

 Curso de Java 6 – Lenguaje de Programación.

 Análisis y Diseño Orientado a Objetos con UML

 Microsoft SQL Server 2000

 System Administration Microsoft SQL Server 7.0

 Implementing a Database Design on Microsoft SQL Server 7.0

 Mastering Enterprise Development Using Microsoft Visual Basic 6.0

 Mastering Microsoft Visual Basic 6.0 Development

 Protocolo TCP/IP

20 Capitulo 2. Fundamento Teórico

Introducción

Desde el inicio de las operaciones del grupo reforma a la fecha, se ha trabajado bajo una arquitectura que ha permitido la comunicación eficiente, congruente y estable de todos los sistemas, las plataformas han evolucionado, pero se sigue manteniendo dicha arquitectura llamada

Cliente/Servidor.

Esta arquitectura basa su funcionamiento en un Cliente que realiza peticiones a otro programa (Servidor) el cual le da respuesta.

La creciente demanda de información, aunado al crecimiento de diversas plataformas ha provocado la necesidad de responder a la mayoría de las tecnológicas existentes en el mercado, es por ello que dentro del Grupo

Reforma se crearon sistemas capases de adaptarse a las nuevas tendencias y

21 brindar compatibilidad para diferentes plataformas, todo esto girando alrededor de nuestra arquitectura Cliente/Servidor.

Para proveer dicha flexibilidad usamos las siguientes tecnologías:

Servidores

 Servidor Web (IIS)

 Servidor de Base de datos (Microsoft SQL Server 2005)

Clientes

 .NET.

 Java.

A continuación daremos una breve descripción de dichas tecnológicas y una explicación de su uso en los sistemas de Grupo Reforma.

Tecnología .NET

La herramienta .NET es un componente integral de Microsoft diseñado para soportar la próxima generación de aplicaciones y servicios. Muchos fundamentos de .NET serán muy familiares para desarrolladores que han

22 trabajado con programación orientada a objetos, sin embargo, .NET también incluye elementos únicos que serán nuevos incluso para los desarrolladores más experimentados. 1

Estos son los elementos más significativos en la arquitectura de .NET:

 El Entorno Común de ejecución (CLR)

 La Biblioteca de Clases

 El Conjunto de lenguajes de programación.

Ilustración 3. Vista general de la arquitectura .net.

1 http://www.desarrolloweb.com/articulos/1328.php

23 El Entorno Común de ejecución (CLR)

Cuando un desarrollador realiza un programa en C o en C++, el archivo binario que genera el compilador y que contiene el código que implementa dicha aplicación, se puede ejecutar únicamente sobre la plataforma sobre la cual fue desarrollada, debido a que dicho código es específico a esa plataforma, como plataforma nos referimos a Microsoft Windows, Linux, etc., en pocas palabras un programa que fue desarrollado para Windows solo se puede ejecutar en Windows, lo cual limita la portabilidad de un sistema a otras plataformas. Java quiso romper con esta limitante y desarrollo su máquina virtual. Cuando escribimos un programa en java el código que generan sus compiladores no es específico a una plataforma si no a una maquina virtual, ya sea una maquina virtual para Windows, para Linux o para Mac, gracias a este comportamiento, el código en java se puede ejecutar en cualquier plataforma para la cual exista su máquina virtual correspondiente, se dice que un programador de java “escribe su programa una vez, y lo ejecuta donde sea”.

Microsoft adopta esta idea en .NET creando CLR, la diferencia fundamental con respecto a Java y su máquina virtual es que .NET no se limita a un único lenguaje.

24 Los desarrolladores en .NET escriben su código en lenguajes como C#, Visual

Basic .NET, etc., el compilador de .NET convierte el código a MSIL (Microsoft

Intermediate Language), para después en tiempo de ejecución, es decir, al momento de ejecutar el programa, el CLR convierte el código MSIL en código nativo para el sistema operativo2.

Ilustración 4. Proceso de compilación del CLR.

Otras características importantes del CLR3:

Gestión Automática de Memoria: El CLR libera a los desarrolladores de tener que pedir y liberar memoria manualmente, debido a que cuenta con el

2 http://es.wikipedia.org/wiki/Common_Language_Runtime 3 http://msdn.microsoft.com/es-es/default

25 servicio Garbage Collector (recolector de basura) que se encarga de liberar la memoria que ya no está siendo usada por ninguna aplicación.

Gestión de Errores: Como las aplicaciones de .NET no se ejecutan directamente sobre el Sistema Operativo, cualquier error no manejado que ocurra en tiempo de ejecución será atrapado por el CLR, y esto hace que no afecte a ninguna otra aplicación que se esté ejecutando y tampoco tenga efecto alguno sobre su estabilidad.

Gestión de Seguridad: el CLR provee una barrera más de contención a la hora de ejecutar aplicaciones manejadas, ya que permite establecer políticas de seguridad muy detalladas que las aplicaciones .NET que se ejecuten en una determinada computadora deberán cumplir.

Multithreading: El CLR provee un entorno de ejecución multi-hilos por sobre las capacidades del Sistema Operativo, así como también mecanismos para asegurar su sincronización y acceso concurrente a recursos compartido.

Ejecución Basada en Componentes: todas las aplicaciones .NET son empaquetadas en componentes reutilizables denominados genéricamente

Assemblies, que el CLR se encarga de cargar en memoria y ejecutar.

26 La Biblioteca de Clases de .NET

Contar con una plataforma tan robusta y sofisticada como el CLR no serviría de nada si no tenemos un conjunto de componentes listos para ser reutilizados en nuestras aplicaciones. Es por ello que .NET nos provee su biblioteca de clases.

La biblioteca de clases es una librería en .NET formada por cientos de tipos de datos que permiten acceder a toda la funcionalidad del CLR. Además, a partir de estas clases prefabricadas el desarrollador puede crear nuevas clases heredando su funcionalidad. Esta librería es compatible con todos los lenguajes de programación de .NET.

27

Ilustración 5. Librería de Clases de .NET.

A continuación daremos una breve descripción de las clases más utilizadas de la biblioteca de clases4.

System: Tipos muy frecuentemente usados, como los tipos básicos, tablas, excepciones, fechas, números aleatorios, recolector de basura, entrada/salida en consola, etc.

System.Collections: Colecciones de datos de uso común como pilas, colas, listas, diccionarios, etc.

4 http://msdn.microsoft.com/en-US/library/d11h6832(v=VS.80).aspx

28 System.Data: Manipulación de bases de datos. Forman la denominada arquitectura ADO. NET.

System.IO: Manipulación de ficheros y otros flujos de datos.

System.Net: Realización de comunicaciones en red.

System.Reflection: Acceso a los metadatos que acompañan a los módulos de código.

System.Runtime.Remoting: Acceso a objetos remotos.

System.Security: Acceso a la política de seguridad en que se basa el CLR.

System.Threading: Manipulación de hilos.

System.Web.UI.WebControls: Creación de interfaces de usuario basadas en ventanas para aplicaciones Web.

System.Windows.Forms: Creación de interfaces de usuario basadas en ventanas para aplicaciones estándar.

System.XML: Acceso a datos en formato XML.

29 ADO.NET

Otra parte fundamental de la biblioteca de clases es ADO. NET, el cual podemos definir como un conjunto de componentes de software que es comúnmente usado para acceder y modificar los datos almacenados en un

Sistema Gestor de Base de Datos, como por ejemplo Microsoft SQL Server.

ADO. NET se creo para cumplir con los objetivos de un nuevo modelo de programación: arquitectura de datos sin mantener una conexión abierta.5

Ilustración 6. Vista general de la librería ADO .NET.

Existen dos componentes de ADO. NET que se pueden utilizar para obtener acceso a datos y manipularlos:

 Proveedores de Datos de .NET Framework (Data Provider)

 El DataSet

5 http://es.wikipedia.org/wiki/ADO.NET

30

Ilustración 7. Estructura de Data Provider y DataSet

Proveedores de Datos de .Net Framework (Data Provider)

Los proveedores de datos de .NET Framework (Data Provider) son componentes diseñados explícitamente para la manipulación de datos y el acceso rápido a datos de sólo lectura. El objeto Connection proporciona conectividad a un origen de datos. El objeto Command permite tener acceso a comandos de base de datos para devolver datos, modificar datos, ejecutar procedimientos almacenados y enviar o recuperar información sobre parámetros. El objeto DataReader proporciona una secuencia de datos de alto rendimiento desde el origen de datos. Por último, el objeto DataAdapter

31 proporciona el puente entre el objeto DataSet y el origen de datos. El

DataAdapter utiliza objetos Command para ejecutar comandos SQL en el origen de datos tanto para cargar el DataSet con datos, como para reconciliar en el origen de datos los cambios aplicados a los datos incluidos en el

DataSet.6

DataSet

El DataSet de ADO. NET está expresamente diseñado para el acceso a datos independientemente del origen de datos. Como resultado, se puede utilizar con múltiples y distintos orígenes de datos, con datos XML o para administrar datos locales de la aplicación. El DataSet contiene una colección de uno o más objetos DataTable formados por filas y columnas de datos, así como información sobre claves principales, claves externas, restricciones y relaciones relativa a los datos incluidos en los objetos DataTable.

En los sistemas de Grupo Reforma basados en la tecnología .NET, utilizamos

ADO. NET como herramienta en el acceso a nuestras bases de datos. Como estándar especificamos la conexión al servidor de base de datos en un

6 http://msdn.microsoft.com/en-us/library/h43ks021(v=vs.80).aspx

32 archivo de configuración, para realizar la búsqueda de información usamos

Store Procedures del Sistema Gestor de Base de datos, el cual nos regresa registros de datos en base a criterios de búsqueda, posteriormente pasamos esos datos a un DataSet para su procesamiento.

Aquí tenemos un ejemplo de como utilizar ADO. NET para realizar una consulta en una bases de datos SQL Server 2005.

Ilustración 8. Código C# para establecer una consulta a SQL Server.

33 ASP.NET

ASP.NET es una herramienta para el desarrollo de aplicaciones Web, en

Grupo Reforma, ASP.NET es un elemento fundamental, debido a que la mayor parte de las operaciones se realizan a través de Intranets y dichas intranets están construidas bajo esta tecnología.

ASP.NET es el resultado de la evolución de ASP (Active Server Pages). ASP es una tecnología que Microsoft introdujo en diciembre de 1996, esta formada por páginas activas que permite el uso de diferentes scripts y componentes, en conjunto con el tradicional HTML, para mostrar páginas generadas dinámicamente, el problema de ASP fue que existieron constantes quejas ya que se mezclaban la presentación con el código dificultando la legibilidad a los desarrolladores. Actualmente en grupo Reforma se encuentra varias intranets bajo la tecnología ASP, pero existe un plan para la migración total de las intranets a ASP.NET.7

La primera versión de ASP.NET 1.0 fue liberada el 5 de enero del 2002 como parte de la versión 1.0 del Framework, en la siguiente ilustracion mostraremos la evolución de ASP.Net

7 http://es.wikipedia.org/wiki/ASP.NET

34

Ilustración 9. Evolución de ASP.NET.

Las áreas concretas en las que se ha mejorado ASP.NET son:8

Productividad. Puede crear páginas Web y aplicaciones ASP.NET fácil y rápidamente utilizando los nuevos controles de servidor ASP.NET y los controles existentes con nuevas características. Nuevas áreas como suscripción, personalización y temas proporcionan una funcionalidad en el nivel del sistema que normalmente requeriría abundante codificación del desarrollador. Escenarios de desarrollo básicos, particularmente los datos, se han tratado mediante nuevos controles de datos, enlace sin código y controles de presentación de datos inteligentes.

8 http://msdn.microsoft.com/es-es/asp.net/default

35 Flexibilidad y extensibilidad. Muchas características de ASP.NET son extensibles para que pueda incorporar características personalizadas con facilidad a las aplicaciones. Por ejemplo, el modelo de proveedor ASP.NET proporciona compatibilidad de conexión para diferentes orígenes de datos.

Rendimiento. Las características como la compilación previa, el almacenamiento en caché y la invalidación de la caché de SQL le permiten optimizar el rendimiento de sus aplicaciones Web.

Seguridad. Ahora es más fácil que nunca agregar autenticación y autorización a sus aplicaciones Web.

Integridad. Las características nuevas y las existentes funcionan conjuntamente para permitirle crear escenarios de un extremo a otro que afrontan retos reales de desarrollo Web.

Por todo lo anterior ASP.NET es la piedra angular de nuestras intranets, gracias a ASP.NET creamos nuestras aplicaciones Web.

36 ASP.NET es un “Marco” (Framework) para programar aplicaciones web, de un modo similar al que se programan las aplicaciones Windows, además puede acceder a toda la librería de clases y permite usar ADO .NET para el acceso a datos.

A continuación describiremos los componentes principales de una aplicación web en ASP.NET.

 WebForms (Formularios Web): Uno o mas archivos con extensión

.aspx

 Archivos Code-Behind: Archivos Asociados a WebForms que

contienen código del lado del servidor (Ej. C#, VB.NET)

 Archivos de Configuración con formato XML: Un archivo Web.config

por cada aplicación además, un archivo Machine.config por servidor.

 Global.asax: Eventos a nivel aplicación.

 Directorio Bin: Contiene el assembly de la aplicación (Ej. Miapli.dll)

37

Ilustración 10. Como se organizan las aplicaciones basadas en ASP.NET.

WEB Services

Los Web Services permite la comunicación entre aplicaciones o componentes de aplicaciones de forma estándar a través de protocolos comunes (como http) y de manera independiente al lenguaje de programación, plataforma de implantación, formato de presentación o sistema operativo. Un Web Service es un contenedor que encapsula funciones específicas y hace que estas funciones puedan ser utilizadas en otros servidores. Algunas ventajas que presentan los Web Services son

38  Son programables

 Están basados en XML, que es un lenguaje abierto

 Son auto descriptivos

 Pueden buscar registros de otros Web Services.

Beneficios de Web Services sobre otras tecnologías.

Los Web Services presentan algunas diferencias sobre sistemas distribuidos tradicionales, tales como EJB, COM/DCOM, CORBA, SOM/DSOM o DCE.

Algunas de las diferencias son las:

 Escaso acoplamiento. El cliente no necesita conocer nada acerca de la

implementación del servicio al que está accediendo, salvo la definición

WSDL

 Independencia del lenguaje de programación. El servidor y el cliente no

necesitan estar escritos en el mismo lenguaje.

 Independencia del modo de transporte. SOAP puede funcionar sobre

múltiples protocolos de transporte, como por ejemplo HTTP, HTTPS.

39 Desventajas de los servicios Web

 Para realizar transacciones no pueden compararse en su grado de

desarrollo con los estándares abiertos de computación distribuida

como CORBA (Common Object Request Broker Architecture).

 Su rendimiento es bajo si se compara con otros modelos de

computación distribuida, tales como RMI (Remote Method Invocation),

CORBA o DCOM (Distributed Component Object Model). Es uno de los

inconvenientes derivados de adoptar un formato basado en texto. Y es

que entre los objetivos de XML no se encuentra la concisión ni la

eficacia de procesamiento.

 Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas

en firewall cuyas reglas tratan de bloquear o auditar la comunicación

entre programas a ambos lados de la barrera.

40 Lenguajes de Programación Utilizados

“C#”

En grupo reforma nos hemos preocupado por la estandarización de nuestros sistemas, es por ello que en cuanto a .NET se refiere hemos establecido como estándar el Lenguaje de Programación C#, gracias a su versatilidad y facilidad de aprendizaje.

En el año 2000 Microsoft presentó su plataforma .NET junto con su nuevo lenguaje C# diseñado por Hejlsberg.

La sintaxis de C# es muy expresiva y sencilla, cuenta con menos de 90 palabras clave. La sintaxis de C# basada en signos de llave podrá ser reconocida por cualquier desarrollador familiarizado con C; C++ o Java. La curva de aprendizaje de los desarrolladores que conocen estos lenguajes es mucho menor, por lo cual podrá empezar a trabajar productivamente en C# en un periodo muy corto. C# es un lenguaje de programación orientado a

41 objetos, y como tal, admite los conceptos de encapsulación, herencia y polimorfismo.

El lenguaje C# a tenido diferentes etapas de evolución desde su llegada, a incorporado nuevas características y mejoras, actualmente se encuentra entre los 10 lenguajes de programación más usados.

Ilustración 11. Evolución del lenguaje de programación C#.9

9 http://www.esasp.net/2009/12/c-nuevas-caracteristicas.html

42 El primer programa que la mayoría de la gente escribe cuando aprende un lenguaje es el inevitable “Hello World”. El ejemplo anterior contiene todos los elementos esenciales de C#.

Ilustración 12. Estructura básica de un programa en C#.

En C# una aplicación es una colección de una o mas clases, estructuras de datos, y otros tipos. Una clase se podría definir como un conjunto de datos combinados con métodos o funciones que puede manipular dichos datos, si observamos la aplicación Hello, World, podremos ver que solo existe una simple clase llamada Hello, Esta clase esta precedida por la palabra clave

Class, seguida de el nombre de la clase se abre un corchete, todo lo que esta adentro de dichos corchetes pertenecen a la clase.

43 Cada aplicación debe empezar por alguna parte, cuando ejecutamos una aplicación de C#, la ejecución empieza en el método llamado “Main”. Aunque existan muchas clases en una aplicación de C#, solo puede existir una sola como punto de entrada.

Como parte de .NET Framework, C# es abastecido con mucha clases que realizan una amplia gama de operaciones útiles. Estas clases están organizadas dentro de NameSpaces. Un NameSpaces es un conjunto de clase relacionadas. Un NameSpaces puede contener otros NameSpaces.

El .NET Framework esta echo de muchos NameSpaces. La más importante de todas es la llamada System. El NameSpaces System contiene las clases que la mayoría de las aplicaciones usan para interactuar con el sistema operativo. Podemos también referir objetos de los Namespaces, por ejemplo el namespaces System contiene la clase Console, la cual provee diferentes métodos incluyendo WriteLine.

Con la aplicación de ejemplo anterior podemos observar la fácil sintaxis de

C# además que apoyado de la librería de clases lo hace el lenguaje mas robusto y flexible para desarrollar nuestras aplicaciones en Grupo Reforma, esa es la razón por la cual fue elegido como nuestro lenguaje estándar.

44 Java

Java es un lenguaje de programación orientado a objetos, desarrollado por

Sun Microsystems a principios de los años 90. El lenguaje es muy parecido a otro famoso lenguaje de programación: C y C++, pero a diferencia de este,

Java tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.

Dentro de las características que destacan en este lenguaje tenemos:

 Permitir programación orientada a objetos.

 Permitir la ejecución de un mismo programa en múltiples sistemas

operativos.

 Soporte el trabajo en red.

 Permite ejecutar código en sistemas remotos de forma segura.

Dentro de los tipos de Aplicaciones que se pueden desarrollar con este lenguaje de programación tenemos las siguientes10:

10 http://es.wikipedia.org/wiki/Java_(lenguaje_de_programación)

45 Aplicaciones Desktop

Las Aplicaciones Desktop son los desarrollos mas comunes que se crean con el lenguaje de programación Java. En entorno de desarrollo Java contiene una gran cantidad de librerías para desarrollar este tipo de aplicaciones, como por ejemplo controles, layuot, etc. Un ejemplo de este tipo de aplicaciones el la Suite Ofimática llamada: Open Office.

Applets:

Los Applet Java son programas incrustados en otras aplicaciones, normalmente una página Web que se muestra en un navegador.

Servlet:

Los Servlets, son objetos que corren dentro del contexto de un contenedor de

Servlets y extienden su funcionalidad. El uso mas común de los Servlets es el de generar paginas web de manera dinámica

Java Server Pages:

También conocidas como JSP, es una tecnología que permite las creación de contenido web de manera dinámica, en forma de documentos en formato

HTML. Esta tecnología es muy parecida a las de PHP y ASP.

46 Java Runtime Environment:

También conocido como JRE, es un conjunto de librerías y utilidades que permite la ejecución de programas Java. El JRE funge como intermediario entre el sistemas Operativo y las aplicaciones Java. Para que un usuario puede ejecutar aplicaciones Java solo necesita tener instalado el JRM y esta se puede descarga de esta pagina: http://www.java.com/es/download/

Una de esas utilidades es la Maquina Virtual de Java o JVM. La JVM es un conjunto de bibliotecas Java para que las aplicaciones escritas en el lenguajes Java puedan ser ejecutadas

Entornos de desarrollo:

Existen muchos entornos de desarrollos (también conocidos como IDE) para la creación de aplicaciones en el lenguajes Java. Dentro de las mas destacadas tenemos las siguientes

 NetBeans

 Eclipse

 JBuilder

 JDeveloper

 Sun Java Studio Enterprise

47 Para obtener mas información puede consultar los siguientes sitios:

 http://java.sun.com/applets/

 http://www.oracle.com/technetwork/java/index.html

 http://home.java.net/

Manejadores de Base de Datos

SQL Server

SQL Server 2005 es una plataforma global de base de datos que ofrece administración de datos empresariales con herramientas integradas de inteligencia empresarial. El motor de la base de datos SQL Server 2005 ofrece almacenamiento más seguro y confiable tanto para datos relacionales como estructurados, lo que le permite crear y administrar aplicaciones de datos altamente disponibles y con mayor rendimiento para utilizar en su negocio.

48 El motor de datos SQL Server 2005 constituye el núcleo de esta solución de administración de datos empresariales. Asimismo, SQL Server 2005 combina lo mejor en análisis, información, integración y notificación.

La integración directa con Microsoft Visual Studio, el Microsoft Office System y un conjunto de nuevas herramientas de desarrollo, incluido el Business

Intelligence Development Studio, distingue al SQL Server 2005.

A continuación se describen características de desarrollo que se tiene en SQL

Server 2005

Soporte para .NET Framework

SQL Server 2005 introduce la posibilidad de desarrollar objetos de base de datos en lenguajes .NET. Pueden crearse Objetos de código, incluyendo

Funciones, Procedimientos y Triggers en lenguajes como C# y VB.NET. Se pueden crear también dos nuevos objetos en estos lenguajes: User-Defined

Types y Agregados.

49 Tecnologías XML

Las tecnologías XML son un estándar importante y ampliamente aceptado para distribuir datos entre diferentes aplicaciones sobre redes locales e

Internet. Microsoft SQL Server 2005 soporta el almacenamiento nativo de documentos XML, especificación de consultas con XML y devolución de resultado de consultas como documentos XML.

ADO.NET Versión 2.0

Desde el nuevo soporte para tipos SQL a "Multiple Active Result Set", ADO

.NET supone una evolución de los métodos de acceso y manipulación de datos, para conseguir una mayor escalabilidad y flexibilidad.

Mejoras en Transact-SQL

SQL Server 2005 introduce muchas posibilidades nuevas para el desarrollo de aplicaciones de bases de datos escalables. Estas mejoras incluyen el manejo de errores, nuevas posibilidades de consultas recursivas y soporte para nuevas funcionalidades del motor de SQL Server.

50 Gestor de Servicio SQL

El Gestor de Servicio SQL (SQL Service Broker) ofrece un marco para aplicaciones distribuidas orientado a aplicaciones de línea de negocios a gran escala.

Servicios de Notificación

Los Servicios de Notificación ("Notification Services") permiten construir aplicaciones de notificación mejoradas, capaces de expedir información personalizada en el momento en que se genera, como puede ser alertas de cotizaciones de bolsa, nuevas suscripciones, alertas de envío de paquetes, o cambios en las tarifas de billetes de avión, a cualquier dispositivo y a millones de suscriptores.

Servicios Web

En SQL Server 2005 , los desarrolladores pueden crear servicios Web en la capa de base de datos, convirtiendo a SQL Server en un servidor HTTP. Esta capacidad supone un nuevo modelo de acceso a los datos para aplicaciones basadas en Web Services.

51 Soporte para Xquery

SQL Server 2005 incluye funcionalidades Xquery de altas prestaciones, que permiten la manipulación de objetos XML en la capa de datos, así como un nuevo juego de herramientas de creación de Xquery.

Mejoras en la Búsqueda de Texto Completo

SQL Server 2005 incluirá soporte para aplicaciones de texto completo ampliadas. Las funcionalidades de catálogo se han mejorado para proporcionar una mayor flexibilidad sobre el conjunto de datos que se catalogan. El rendimiento de las funciones de consulta y la escalabilidad han mejorado sensiblemente. Una serie de nuevas herramientas de gestión permiten un mayor control de la implementación de texto completo.

Mejoras en Seguridad

SQL Server 2005 incorpora un nuevo modelo de seguridad que separa a los usuarios de los objetos, proporciona un acceso muy granular y un mejor control de los accesos a los datos. Además, todas las tablas del sistema se implementan ahora como Vistas, lo que redunda en un mayor control sobre los objetos de sistema de la Base de Datos.

52 Exif

Desde que se invento la fotografía, la información visual ha tomado una importancia sin precedente en el mundo de la información, todos los medios de información ya sea en sus ediciones impresa o en la web usan fotografías para darle más fuerza a la noticia, como lo menciona un dicho popular, una imagen dice más que mil palabras.

En la actualidad para obtener las fotografías se utilizan cámaras digitales, estos dispositivos entregan a los fotógrafos archivos digitales en formato

.JPG. Las cámaras digitales agregan a las fotos mucho mas información de la que se aprecia a simple vista, ha esta información se le conoce como Exif.

Exif es una abreviación de “Exchangeable Image File Format”. En pocas palabras, es una estándar de información sobre el formato de imagen o de sonido, para el caso del Grupo Reforma nos centraremos en el de la imagen.

El Exif se encuentra dentro del mismo archivo, contiene toda la información acerca de la imagen: su estructura, tamaño, fecha de creación, modelo de la cámara que toma la imagen entre muchos más datos. Toda esta información permite que distintos software puedan leer e interpretar esta información

53 para la manipulación de la imagen. Para obtener más información acerca del estándar Exif puede consultar su sitio web en: www.exif.org11.

Dentro del Grupo Reforma el uso del Exif tiene una gran importancia, el Exif lo usan sistemas para manipular las imágenes, por dar un ejemplo, en el Exif existe un atributo llamado: “Date Taken” este atributo indica la Fecha y Hora en que se toma la fotografía, el uso que se le da a este atributo es para ordenar las fotografías en los sistemas ya que la secuencia en la que se toma la foto es muy importante para ponerla en contexto dentro de la noticia.

Model Indica el nombre del modelo del equipo con el que se

tomo la foto.

Date and Time Indica la fecha y hora en que se creó la foto. x-Resolution Indica la cantidad de pixeles por Resolution Unit a lo

ancho de la foto. y-Resolution Indica la cantidad de pixeles por Resolution Unit a lo

alto de la foto.

11 http://es.wikipedia.org/wiki/Exif

54 Resolution Unit Indica la unidad para medir x-Resolution y y-

Resolution. La resolución esta dada en pixeles por

pulgada y se usa la misma para ambas direcciones.

Color Space Se utiliza para definir el espacio de color en función

de las condiciones de color del PC.

Exif Version Indica la versión del Exif que se esta usando.

Flash Indica si se uso flash al tomar la foto.

Tabla 1. Campos más significativos del Exif

Otro uso que se le da al Exif es para saber con qué parámetros los fotógrafos están tomando las fotos, por citar un ejemplo, se podría saber si un fotógrafo uso flash al tomar la foto, esto es muy importante ya que permite al área de calidad sugerir a los fotógrafos ajustes que permitan tener tomas de mayor calidad.

Para leer el Exif existen una gran variedad de programas, los editores profesionales de fotografía como por ejemplo PhotoShop son un ejemplo, sin embargo existen mucho más programas que permiten ver información del

Exif. Dentro del Grupo Reforma se han creado librerías en diferentes

55 lenguajes de programación, por citar algunos C# y Java, que permitirán leer el Exif y hacer uso de esta información dentro de los sistemas.

A continuación de muestra un fragmento de código de cómo leer el Exif de una foto usando el lenguaje C# corriendo dentro del .Net Framework 4.0.

Ilustración 13. Fragmento de código en C# para leer el Exif.

56 Capitulo 3. Sistema Alimentador de Fotos

Dentro del Grupo Reforma el uso de fotografías para la elaboración de las diferentes publicaciones tanto impresas como electrónicas es algo muy cotidiano. Las fotografías que actualmente se utilizan para elaborar dichas publicaciones tienen su origen de dos maneras, las obtenidas por fotógrafos del Grupo Reforma y las fotos obtenidas a través de Agencias de Noticias.

El Sistema Alimentador de Fotos consiste en un conjunto de sistemas y procesos que tiene como finalidad la creación de un catalogo de fotos a partir de las fuentes de fotos antes mencionadas. Para que este proceso de alimentación se lleve a cabo, se emplean diferentes tipos de aplicaciones como: Intranets, Extranet y Servicios de Windows, estos permiten a los

Fotógrafos clasificar su material e ingresarlo al Catalogo de Fotos.

Todo este material fotográfico es clasificado y organizado de tal manera que permite a los editores encontrar de manera rápida las fotos que utilizaran para el diseño de las secciones que componen los diferentes productos del

Grupo.

57 Catalogo de Fotos del Día

El catálogo es una lista de todas las fotos tomadas por los fotógrafos, esta relación es almacenada en una base de datos y servidores de archivos, para que posteriormente puedan ser empleadas para la elaboración de diferentes publicaciones que produce el Grupo Reforma. Como ya se ha mencionado en el Capitulo 1 el Grupo Reforma está constituido por tres plazas donde se crean los diferentes productos del Grupo: Monterrey, D.F. y Guadalajara.

Cada una de estas plazas contienen su propio catalogo de fotos, a su vez cada una de ellas tiene un Staff de Fotógrafos encargados de cubrir eventos de relevancia noticiosa en su zona y así generar la información que alimentara el catalogo de Fotos.

El catalogo de fotos contiene información que permite la eficiente organización de las mismas, esta información hará que las búsquedas del material fotográfico se mucho más rápida, así también toda esta información servirá para después de un tiempo determinado alimentar el Archivo

Histórico de Fotos del Grupo Reforma.

Dentro los datos que se almacenan en dicho catalogo para clasificar las fotos

58 tenemos los siguientes:

Publicación: Conjunto de Secciones para formar un periódico, como por ejemplo Reforma o El Norte.

Sección: Describe un conjunto de noticias de un mismo tipo, como por ejemplo las noticias de deportes se agrupan en la sección Cancha, o las noticias de Espectáculos se ubican dentro de la sección Gente. Se podría decir que una sección es un conjunto de eventos del mismo tipo.

Evento: Describe el suceso que el fotógrafo cubre cuando toma las fotografías, para ejemplificar podemos citar los siguientes eventos “Juego de

Futbol Monterrey vs Tigres” o también “Cuarto Informe de Gobierno”.

Para ver cómo se usan estos datos veamos el siguiente ejemplo: supongamos que un fotógrafo cubre un juego de futbol entre las selecciones de México y

Ecuador, este juego tendrá lugar en el Estadio Azteca. Cada foto que se tome se clasificaría de la siguiente forma: Publicación: Reforma, Sección: Cancha y

Evento: México vs Ecuador.

59 El catalogo además contiene mucha más información relevante. A esta información se le conoce como identificación, toda esta información describe los sucesos capturados en una foto. De acuerdo a los requerimientos del departamento de Información estos serían los datos requeridos para una correcta identificación.

Personajes: Es “el” o “los protagonistas” de la acción en la fotografía, esta campo se llena con el nombre de “la” o “las” personas fotografiadas con su cargo o actividad. También pueden ser objetos, animales o cosas.

Descripción: Es una descripción de lo que sucede en la fotografía, puede contener información de otros campos, así como información adicional que permita agruparla y dar contexto sobre lo que sucede en la imagen.

Palabras Clave: Palabras relevantes en la imagen que no se mencionan en los otros campos y que pueden ser de utilidad para recuperar la imagen en el futuro.

60 Locación: Lugar donde ocurre la acción o sede del Evento. Pueden ser direcciones parciales o completas, nombre del lugar, instalaciones de una institución, calles, parques, etc.

Ubicación Geográfica: Sitio geográfico donde se toma la fotografía, su estructura básica es: Municipio, Estado, País.

Condición de Luz: Esta información no es un dato que describa lo que sucedió cuando se tomo la foto, más bien define una característica de color de la foto, es decir podemos definir si la foto esta obscura, clara, o normal.

Esta información se usa para retocar las fotos una vez que son solicitadas para su publicación en los diferentes productos del grupo.

A continuación se muestra un ejemplo de cómo quedaría la identificación de una foto siguiendo estas reglas:

61 Personajes: Hugo Sánchez entrenador de la

Selección Mexicana de Futbol.

Descripción: Hugo Sánchez enojado arroja su

saco durante el partido México vs Haití.

Palabras Clave: Saco, Futbol.

Locación: Estadio Azteca.

Ubicación Geográfica: Distrito Federal, México.

Tabla 2. Ejemplo de Identificación.

Además de almacenar toda esta información en base de datos y servidor de archivos, se genera un índice de fotos que permite realizar búsquedas Full

Text, es decir, desde el modulo de búsqueda dentro de la aplicación

FotoEditor, se puede solicitar una foto o un grupo de ellas especificando una o más palabras que describa la foto a buscar.

62 Proceso de Alimentación de Fotos

Este proceso consiste en un conjunto de pasos que los Fotógrafos realizan para ingresar las fotos tomadas al catalogo. Dentro del proceso de Inyección se hace uso de varios sistemas que tiene como finalidad brindar herramientas que faciliten dicho proceso, más adelante se describirán a detalle como estos sistemas intervienen en cada uno de los pasos del proceso de alimentación

El proceso de inyección comienza cuando el fotógrafo va a cubrir un evento asignando por el jefe de Fotógrafos o Editor a cargo. Una vez que el fotógrafo ha tomado todo el material fotográfico que requiere para cubrir el evento se traslada a las oficinas del periódico o a una sucursal del Grupo para ingresar su material fotográfico al Catalogo de Fotos, para realizar este procedimiento harán uso de la intranet llamada: FotoEditor Suite.

Existen casos donde fotógrafos (también llamados corresponsales) son enviados a cubrir eventos en otras partes del mundo, como por ejemplo, recientemente el Grupo Reforma envió a un grupo de fotógrafos para hacer la cobertura del Mundial de Futbol 2010 en Sudáfrica. En estos caso los fotógrafos hacen uso de una extranet llamada CORE, por medio de esta

63 aplicación los fotógrafos harán llegar el material fotográfico a las instalaciones del Grupo.

Para ingresar el material al sistema, lo primero que debe hacer el fotógrafo es colocar la memoria de la cámara fotográfica en un equipo de computo (en el caso de los corresponsales es necesario que el equipo de computo tenga acceso a internet) con una lectora de memorias adecuada a la que contenga su cámara o bien conectar directamente su cámara al equipo de computo.

Una vez conseguido esto, el fotógrafo debe seleccionar el material a ingresar al catalogo, clasificarlo e identificarlo. Terminado el proceso de identificación se procede a enviar las fotos para que posteriormente, servicios de inyección de fotos sean los que se encarguen de generar el catalogo de fotos.

Toda la información de las fotos ingresada al catalogo son procesadas por el

Servicio Indizador, este servicio es el que se encarga de generar el índice de fotos que permitirá a los Editores a realizar búsquedas sobre el catalogo.

Al siguiente día de ser ingresadas las fotos al catalogo, el departamento de

Información revisa que la identificación asignada a las fotos este correcta, de no ser así el personal del departamento de información indica a los fotógrafos

64 cual fue el problema de manera puntal con cada foto. El fotógrafo tiene cinco días para corregir los problemas de identificación. Antes de que se cumpla el plazo de corrección, al cuarto día de haber inyectado las fotos se envía un mail al fotógrafo indicándole que tiene fotos con problemas de identificación próximas a vencerse.

Si el problema se corrigió la foto pasara al Archivo Fotográfico del Grupo, si no es así las fotos mal identificadas serán enviadas a los Editores que son los jefes de los fotógrafos y estos tendrán un periodo de tres días más para corregir la información de identificación. Si la información se corrige las fotos pasaran al Archivo Fotográfico, de no ser así las fotos se eliminara de acuerdo a los días de vida que tenga configurada la sección a la cual se ingreso la foto

FotoEditor Suite

El FotoEditor Suite es una intranet que proporciona a los Fotógrafos las herramientas necesarias para seleccionar, identificar e inyectar cada una de las fotografías que toman durante un evento y así poderlas ingresar al catalogo de fotos.

65 Esta intranet fue diseñada y creada con el fin de que pueda funcionar en varios sistemas operativos, como por ejemplo:

 Windows XP y Vista

 Mac Os Tiger y Leopard

El FotoEditor Suite tiene como característica principal, el acceso al sistema de archivos del equipo de cómputo desde donde el cliente accesa a esta intranet y así poder llegar al material fotográfico. Para poder hacer esto, la intranet hace uso de una de las tecnologías más populares en el mundo del desarrollo: Java, específicamente hace uso de los Applets.

En Java, un Applet (Subprograma) es un programa que puede alojarse en un documento HTML; es decir en una página Web. Cuando un Navegador carga una página Web que contiene un Applet, éste se descarga del sitio Web y comienza a ejecutarse. Esta característica del lenguaje permite crear programas que cualquier usuario puede ejecutar con tan solo visitar una página Web que contenga un Applet.

El FotoEditor Suite consta de los siguientes cuatro módulos, cada uno de ellos ayudan a los Fotógrafos en el proceso de inyección.

66  Modulo de Descarga.

 Modulo de Inyección.

 Modulo de Identificación.

 Modulo de Corrección de Identificación.

Acceso a la Intranet

Dentro de la intranet no existe un pantalla de acceso que valide al usuario, de hecho en la mayoría de la aplicaciones del Grupo Reforma las pantallas de validación de usuario no existen ya que se hace uso de los mecanismos de

Autenticación que brindan los Sistemas Operativos como es el caso de la

Seguridad Integrada.

El usuario para acceder a la intranet tiene que haber iniciado una sesión en su equipo local dentro de algunos de los dominios de Windows del Grupo

Reforma. Una vez que se accedió al dominio se está en la posición de poder acceder al Sistema. Solo basta con escribir la dirección en la barra de direcciones del Navegador Web para acceder a ella

(http://servidorweb/FotoEditorSuite).

67 Dentro del Grupo se tiene definido un estándar en el uso de navegadores

Web para el acceso a las intranets. Para usuarios que usan equipos PC con

Windows como sistema operativo deberá usar Internet Explorer 8, los usuarios que acceden a las intranets desde equipos MAC deberán de usar

Safari como navegador Web.

La única solicitud que se le hace al usuario al acceder a la intranet es la de permitir al Applet, que compone la intranet, tener acceso al sistema de archivos del equipo de cómputo. Esta solicitud se presenta la primera vez que el usuario tiene acceso a ella y puede habilitar una opción para que esta solicitud no sea presentada a menos que exista una nueva versión del Applet.

Ilustración 14. Solicitud de acceso por parte del Applet al sistema de archivos.

68 Modulo de Descarga

Este modulo tiene como propósito dar a los fotógrafos el espacio para hacer un selección del material fotográfico que desean inyectar al Catalogo de

Fotos.

No todas las fotos que son tomadas durante un evento son ingresadas al catalogo. Los motivos por los que una foto no sea tomada en cuenta se pude deber a diversos factores, por citar algunos tenemos los siguientes ejemplos:

 Existen fotos similares.

 La calidad de la foto es deficiente.

 La foto no cumple con los criterios del Staff de Fotografía, etc.

El modulo de descarga corresponde al primer paso del proceso de inyección, a continuación se muestra una imagen de este modulo dentro de la intranet del FotoEditor Suite.

69

Ilustración 15. Modulo de descarga utilizando su explorador de archivos.

Dentro de este modulo se pueden encontrar varias herramientas que ayudaran a los fotógrafos a localizar sus imágenes dentro del equipo de computo desde donde acceden a la intranet, esta herramienta es un explorador de archivos muy similar al que se tiene en los Sistemas

Operativos Windows y Mac.

70 Cuando se selecciona un directorio, unidad de CD-ROM o una memoria USB en el explorador de archivos, las imágenes contenidas en ese recurso son mostradas en el visor de imágenes que está a la derecha del explorador. Este

Visor de imágenes muestra un Thumbnail de la imagen y las ordena de acuerdo a la fecha y hora en que la foto fue tomada. Esta fecha y hora es obtenida del Exif de la foto.

Además de las herramientas como el explorador de archivos que ayuda a los fotógrafos a encontrar las fotos en su equipo de computo, también se cuenta con otras herramientas que ayudan a visualizar mejor las fotos y así poder hacer una mejor selección del material que posteriormente se identificara e inyectara.

71 Herramientas

Permite seleccionar todas las fotos mostradas en el visor de

imágenes.

Muestra la foto en un tamaño más grande dentro de una ventana.

Muestra una ventana con información del Exif de la fotografía.

Permite rotar una foto a la derecha.

Permite rotar una foto a la Izquierda.

Permite hacer un acercamiento de todas las fotos desplegadas en el

visor de imágenes.

Tabla 3. Herramientas del Modulo Descarga.

Una vez que los fotógrafos hacen la selección del material a descargar deben presionar el botón con el nombre: Descargar, este botón lanzara una instrucción al FotoEditor Suite para que haga una copia de las fotos seleccionadas al directorio de aplicación en el sistema de archivos del equipo local del cliente.

72 Modulo de Inyección

El modulo de inyección permite al usuario identificar el material fotográfico para ingresarlo ya clasificado al catalogo de Fotos. Dentro de este modulo el

Fotógrafo agrega toda la información requerida para una correcta identificación, dentro de esta información tenemos por ejemplo los siguientes datos que ya antes se habían comentado en una sección anterior: Personajes,

Descripción, Locación, Publicación, Sección, Evento, etc.

Este modulo corresponde a la segunda etapa en el proceso de Inyección de

Fotos. Todas las fotos desplegadas en este modulo, corresponden a las que previamente se seleccionaron en el modulo de descarga. Las fotos al igual que en el modulo de descarga se visualizan en el orden en que fueron tomadas por el fotógrafo, el valor que se usa para realizar este ordenamiento corresponde al campo: “Date Taken” del Exif de cada foto.

Es en este proceso donde el FotoEditor Suite tiene contacto con los servicios que son los encargados de ingresar las fotos al catalogo. Para llevar esto acabo, el Applet del FotoEditor Suite agrega información en los metadatos de

73 la imagen. Esta información va en formato XML y se escribe en el campo:

“Comment” del Exif en cada foto.

Ilustración 16. Modulo Inyectar de la Intranet FotoEditor Suite.

La manera en que los fotógrafos usan este modulo radica básicamente en primero localizar el folder donde están las imágenes que se van a inyectar, como se puede observar en la ilustración 16, en la parte superior del panel derecho, aparecen dos controles de tipo combo, el primero corresponde a la cuenta del usuario que ha descargado las fotos, el segundo corresponde al

74 folder donde se descargaron las fotos. Los fotógrafos seleccionan en el primer combo su cuenta de red y en el segundo combo el nombre del folder origen de las fotos.

Una vez que se ha seleccionado el usuario y folder correcto, las imágenes aparecerán en el visor de imágenes que esta al centro de la aplicación. Ahí ya los fotógrafos podrán empezar a identificar el material fotográfico usando el panel de identificación que está a la derecha, ahí tendrán que identificar foto por foto, y una vez que terminaron el proceso, procederán a asignarle una

Publicación, Sección y Evento donde se organizaran las fotos en el catalogo.

Para terminar el proceso de inyección el Fotógrafo tiene que presionar el botón inyectar, esta acción lo que hace es agregarle todo la información de identificación a la foto en sus metadatos, para posteriormente mover todas estas a un Servidor de archivos donde serán procesadas por los servicio de inyección.

75

Ilustración 17. Identificación de Foto vista desde la aplicación Exifer.

En este modulo se cuenta con ayudas que permiten a los Fotógrafos tener un proceso de identificación más eficiente, dentro de estas ayudas tenemos las siguientes:

 Corrector ortográfico

 Autocompletado y Contador de Palabras

 Identificación Múltiple de Fotos.

Corrector Ortográfico

Esta herramienta funciona de manera muy similar al que tiene el procesador de Textos Word. Cada vez que el usuario quita el foco de una caja de texto

76 donde se captura información de identificación, se lanza el corrector ortográfico, si el servicio detecta algún problema de ortografía, se muestra una ventana para indicar el error y desplegar las palabras sugeridas para corregir dicho problema, tal como se puede ver en la siguiente figura:

Ilustración 18. Modulo Inyectar haciendo uso del corrector ortográfico.

El corrector ortográfico hace uso de un Servicio Web llamado: WSOrtografico, este Servicio Web es un estándar para todas las aplicaciones del Grupo

Reforma donde se haga uso de captura de Texto por parte de los usuarios.

Así que todas las palabras aceptadas como validas será así para todo el

Grupo.

77 Autocompletado

Este proceso ayuda a los fotógrafos a tener información previamente capturada de las locaciones y Ubicaciones Geográficas más comunes, por citar un ejemplo, cada 15 días hay juegos de futbol en el Estadio Azteca, por lo cual no es necesario que el usuario capture esta información cada vez que cubre un evento de este tipo, esto ayuda a reducir el tiempo de identificación y los errores en los nombres de las Locaciones y Ciudades.

Contador de Palabras

El contador de palabras consiste en indicarle al fotógrafo cuantos caracteres tiene disponibles para ingresar en cada dato de la identificación. En la parte superior de cada caja de texto se pude observar con letras en color gris la cantidad de caracteres tecleados y disponibles en ese campo, tal como se puede ver en la ilustración 18.

Identificación Múltiple de Fotos.

Muchas de las fotos que capturan los Fotógrafos tienen la misma identificación. Para que el usuario no capturen esta misma información foto por foto, la intranet le permite al usuario seleccionar varias fotos y copiar la misma información de identificación en todas las fotos, esta característica

78 ayuda a los fotógrafos a reducir los tiempos de identificación, ya que existen eventos con más de 200 fotos e identificarlas es un proceso tardado y tedioso.

Filtros

Cuando un Fotógrafo tiene eventos de muchas fotos, por decir más 20 fotos, mas aun eventos de 200 fotos, se complica saber cuáles fotos ya están identificadas y cuáles no, es por ello que la aplicación proporciona filtros donde el usuario puede ver que fotos ya ha completado su proceso de identificación, en la parte inferior de la intranet vienen unos botones de opción donde el usuario pude seleccionar que fotos quiere ver, tal como se puede ver en la ilustración 18.

Herramientas

Dentro del modulo de Inyección se tienen herramienta de uso similar al modulo de descarga, pero para este modulo existen herramientas específicas para este modulo:

79 Permite indicar que una foto fue sugerida de para su uso.

Indica que la foto no debe ser enviada al Archivo Histórico.

Elimina la imagen del modulo de Inyección.

Tabla 4. Herramientas del Modulo Inyección.

Modulo de ID Final

El Modulo de ID Final o también conocido como Modulo de Identificación

Final, permite a los fotógrafos, ver las fotos que se encuentran en el catalogo de fotos. Para que las fotos lleguen a este punto tienen que haber sido agregadas al catalogo por medio de los Servicios de Inyección de fotos.

Una de las funciones que tiene este modulo para los fotógrafos es ver que sus fotografías recién inyectadas ya se encuentran en el catalogo. Pero la funcionalidad más importante por la cual se creó este modulo, es permitir a los fotógrafos modificar la identificación de cada fotografía.

80

Ilustración 19. Modulo de ID Final.

Un fotógrafo tiene 5 días para modificar la identificación dentro de este modulo ya que después de este periodo de tiempo, las fotos pasan a un proceso de auditoría. Las fotos en auditoria pueden seguir viéndose en este modulo con la salvedad de que ya no es posible modificar la información de su identificación, para poder hacer esto, es necesario hacerlo en un modulo especial llamado: “Corrección ID”, que veremos más adelante.

81 Como podemos ver en la ilustración 19, este modulo cuenta con una estructura muy parecida al modulo de Inyección, la idea de que sea muy similar radica en el sentido de hacer que el aprendizaje para usar la aplicación sea más rápido.

Para que un fotógrafo pueda cambiar la identificación de una o más fotos lo primero que tiene que hacer es encontrar las fotos le interesan, para localizar dichas fotos se debe especificar la fecha del evento, Publicación, Sección,

Evento y Nombre del fotógrafo que inyecto las fotos. Cuando esta información ha sido completada todas las fotografías que cumplen el criterio de búsqueda aparecerán en el visor de imágenes tal como se observa en la ilustracion19.

Lo siguiente que el fotógrafo hace para modificar la identificación de una foto es igual a lo visto en el modulo de inyección, cada vez que se selecciona una o varias fotos, en la parte izquierda del modulo aparecerá la identificación asociada a las fotos seleccionadas, en el caso de seleccionar varias fotos, la identificación que se colocara en el apartado de identificación será la primera que se seleccióno, tomando esta información como base para la identificación de todas las demás fotos seleccionadas.

82 Modulo de Corrección ID

El modulo de Corrección ID, es la parte destinada para realizar las correcciones sobre los errores encontrados por un Auditor dentro de la identificación de las fotografías. Cuando una foto es agregada al catalogo, los fotógrafos tienen un periodo de 5 días para corregir la información que ellos consideren pertinente en lo que se refiere a la identificación dentro del modulo “ID Final”. Después de este periodo los Auditores revisan la identificación de las fotografías y señalan puntualmente cual es el problema que ellos observan con la identificación. Cuando existe un problema con la identificación, es en este modulo donde los fotógrafos corrigen la identificación.

En la ilustración 20 se pude observar como en el evento “GOBIERNO/Alistan festejos Naucalpan”, se le informa al fotógrafo que existen dos fotos con problemas de identificación. Aunque el evento tiene más de dos fotos, el modulo de Corrección ID solo muestra las fotos con problemas de identificación. Además solamente se le da la opción de modificar los datos que el Auditor considero con problemas.

83

Ilustración 20. Modulo de Corrección ID.

Dentro de la información que el Auditor puede indicar como error en la identificación están los siguientes puntos:

 Ortografía

 Falta de Personajes

 Personajes Equivocados

 Actividad o cargo.

84  Información insuficiente o Errónea.

 Lugar Erróneo

 No describe la acción.

Como se ve en la ilustración anterior, el esquema del modulo es similar a los anteriores vistos, esto no supone una dificultad mayor para los fotógrafos en aprender su uso.

Los problemas de identificación se pueden corregir dentro de la caja de texto habilitada en cada fotografía, o bien, en panel de identificación que se encuentra a la derecha del modulo. Aquí también se aplican las opciones de identificación cuando se seleccionan más de una foto, es decir, si seleccionamos dos o más fotos, en el panel derecho de identificación se toma como base la información de la primera foto seleccionada.

Modulo Auditor

Este modulo es donde un Auditor hace la revisión de identificación de todos los eventos que son agregados por los fotógrafos del Grupo Reforma, la

85 revisión se hace foto por foto y se especifica los errores en los campos de identificación que le Auditor considere correspondiente. Si la identificación de la foto esta correcta, estas se marcan listas para enviarse al archivo histórico de fotos. De haber alguna foto con algún problema en la identificación, este se indicara y las fotos con errores estarán disponibles para su corrección en el modulo: “Corrección ID”. Este es el único modulo dentro de la intranet que no está disponible para los fotógrafos.

Ilustración 21. Modulo Auditor.

86 Servicios de Inyección de Fotos del Día

Como se vio en el tema anterior: “FotoEditor Suite”, se dio una explicación de la aplicación que se usa para seleccionar, identificar, clasificar y corregir identificación de las fotos. Pero hasta ese punto las fotos no se encuentran en el catalogo. Para que esto ocurra todas las fotos que son inyectadas por medio del FotoEditor Suite, son enviadas a un path propio del fotógrafo dentro de un servidor de archivos por plaza, donde los servicios de inyección harán las operaciones pertinentes para que las fotos sean agregadas al catalogo.

Los Servicios de Inyección constan de dos servicios de Windows que colaboran para ingresar las fotos al catalogo, estos servicios son: Servicio

Repartidor y Servicio Alimentador.

Estos dos servicios son instalados en cada una de las plazas donde existe un catalogo de fotos. Es decir en las plazas: DF, Monterrey y Guadalajara.

A continuación se describe de manera breve cada uno de estos servicios.

87 Servicio Alimentador

Los Servicios de Inyección de Fotos son una aplicación de tipo Servicio de

Windows. El objetivo de este servicio es la creación del catalogo de fotos. La creación del catalogo consiste básicamente en alimentar una Base de Datos en SQL Server 2005 con toda la información relacionada a la foto que se identifico desde la intranet FotoEditor Suite.

Este servicio tiene la característica de poder estar instalado y funcionando en una misma plaza más de una vez. Este hecho requiere que exista un mecanismo que distribuya el trabajo que va a realizar cada una de las instancias instaladas en cada plaza del Servicio Alimentador, esto con el fin de que no compitan por las mismas fotografías y cause problemas de concurrencia. El proceso que se encarga de hacer esta distribución de trabajo se llama: Servicio Repartidor.

Para que el servicio Alimentador pueda saber que fotos tiene que ingresar al catalogo, este revisa una lista donde el Servicio Repartidor le asigna el directorio correspondiente a un Fotógrafo donde este envió sus fotografías a través de la Intranet FotoEditor Suite. Cuando el servicio encuentra una

88 tarea en la lista, este lanza un thread de inyección que es el encargado de subir las fotos al catalogo.

Todas las fotos que se inyectan contienen su identificación en un campo llamado: "Comment" que es parte del Exif. El Servicio Alimentador de Fotos lee este campo y obtiene la información que le indica como debe clasificar la foto en el catalogo. El formato en el cual se guarda la identificación es XML, un ejemplo de identificación seria el siguiente:

0 78 El Norte 1456 Gente 0 Concierto 3489 Oscar Aguilar Dillman 0 fundidora Monterrey, NL Tatiana familia fiesta 8/22/2005 1:05:34 PM

89

Ilustración 22. Consola para administrar el Servicio Alimentador.

Dentro de los requerimientos que tiene que cubrir el Servicio Alimentador de

Fotos tenemos los siguientes:

 Genera una imagen miniatura y la almacena en un servidor de

archivos, a esta imagen se le conoce como Thumbnail y se utiliza en

aplicaciones de búsqueda para mostrar de manera rápida una foto,

dentro de las aplicaciones que hacen uso de esta imagen tenemos la

intranet FotoEditor.

 Genera una imagen prevista y es guardada en un servidor de archivos,

esta imagen es un poco más grande que la imagen Thumbnail, las

medidas de esta imagen son: 448x672 pixeles. Esta imagen se usa

90 dentro de la intranet FotoEditor para que un editor dibuje un crop en

caso de ser necesario cuando solicita la imagen para su publicación.

 Mover y renombrar la imagen original al Servidor de archivos de

acuerdo al folio que se le asigno en el catalogo de Fotos.

 Almacenar la información del Exif de la foto en el catalogo.

 Almacenar la Identificación de la foto al catalogo así como relacionar

esta con las imágenes generadas por el servicio.

 Notificar funcionamiento al servicio Repartidor.

En ocasiones se presentan ciertos tipos de problemas al momento de inyectar fotos, cuando alguno de los siguientes problemas se presenta, las fotos que no pueden ser inyectadas se mandar a un path de error y se reporta el error a través de la detención del servicio.

 Cuando el fotógrafo no tiene privilegios de inyección de Fotos.

 Cuando la foto tiene una resolución menor a los 72 dpi.

 Cuando la foto no excede las medidas de 448x672 pixeles.

 El formato de la foto a inyectarse no es .jpg.

91 Existen otras cuestiones que el servicio tiene que cubrir como requerimientos de estándares de monitoreo de aplicaciones de tipo Servicio de Windows.

 Generar un log en formato .txt toda la información suficiente de las

operaciones que el servicio realiza.

 Manejo de la cantidad de errores en las que el servicio debe

detenerse.

 Notificar funcionamiento del servicio a través de un archivo

heartbeat.

Servicio Repartidor

El Servicio Repartidor es una aplicación de tipo Servicio de Windows. Este servicio se encarga de distribuir de forma uniforme la carga de trabajo entre las diferentes instancias instaladas del Servicio Alimentador en una misma plaza. Es decir reparte a los fotógrafos que inyectan fotos entre instancias del

Servicio Alimentador para que ingrese sus fotos al catalogo.

92 Otra de las funciones que el servicio realiza, es el monitoreo de los Servicios

Alimentador para ver si están funcionando. Esta funcionalidad es muy importante ya que si por algún motivo un Servicio Alimentador no está funcionando, es necesario detectarlo para no asignarle más fotos o bien, en caso de que ya tenga fotos asignadas, el servicio Repartidor debe quitarle las fotos y asignárselas a otro Servicio Alimentador.

Ilustración 23. Consola para administrar el Servicio Repartidor.

Este servicio se encuentra revisando los path de fotógrafo a donde llegan las fotos en el servidor de archivos, para ver si existen fotos que inyectar por parte de un fotógrafo. Si se encuentra una o más fotos, el servicio Repartidor asigna a un Servicio Alimentador las fotos que haya encontrado. La asignación consiste básicamente en agregar en una lista que comparten todos los Alimentadores, un registro que contiene la información del path

93 donde se encuentran las fotos a inyectar y a que Alimentador se le asigno procesar dicho path.

Dentro de los requerimientos que tiene que cubrir el Servicio de Repartidor tenemos los siguientes:

 Distribuir la carga de trabajo entre diferentes Servicios Alimentador.

 Revisar que todas las instancias del Servicio Alimentador este

funcionando.

Existen otras cuestiones que el servicio tiene que cubrir como requerimientos de estándares de monitoreo de aplicaciones de tipo Servicio de Windows.

 Generar un log en formato texto con toda la información suficiente de

las operaciones que el servicio realiza.

 Manejo de la cantidad de errores en las que el servicio debe detenerse.

 Notificar funcionamiento del servicio a través de un archivo heartbeat.

94 Servicio de Inyección de Fotos de Agencias

Hasta el momento se ha visto que todas las fotos ingresadas al catalogo son obtenidas por los fotógrafos. Pero es imposible tener fotógrafos en cada rincón del mundo cubriendo eventos. Es por ello que el Grupo Reforma hace uso de las agencias de noticias para conseguir material fotográfico de sucesos importante donde el Grupo no tiene presencia de Fotógrafos.

Ilustración 24. Consola para administrar el Servicio Fotos Agencias.

95 Agencias de Noticias

Una Agencias de Noticias es una organización que recoge noticias de sus corresponsales en distintos lugares del mundo y las transmiten inmediatamente a la central, donde, después de tratar la información, la envían, lo más rápido posible, a sus clientes (radios, diarios, revistas o televisoras), conocidos en el argot periodístico como abonados. Éstos pagan en función de los servicios recibidos, que pueden ser de muy distinta índole

(una conferencia de prensa, una foto o imagen determinada), aunque habitualmente se paga mensualmente en forma de abono por los servicios pactados: información nacional, internacional, servicio gráfico.

El Grupo Reforma es uno de esos abonados o clientes de las agencias, dentro de las agencias de noticias más importantes que se tiene como suministro de fotos en el Grupo Reforma están:

Associated Press (AP)

Associated Press es una agencia de noticias de Estados Unidos fundada en

1848. Es una cooperativa empresarial. La información que se genera en AP se distribuye entre más de mil millones de personas.

96 Reuters

Reuters es una agencia británica fundada en 1851 por el alemán Julius

Reuter, que decidió dedicarse a vender noticias a los periódicos.

Originalmente se trataba de informaciones económicas de Europa, aunque después también pasó a ocuparse de la información generalista. Destaca por haber introducido el teletipo como medio para difundir sus informaciones.

Actualmente, sus 2.300 periodistas y fotógrafos envían despachos de prensa en varios idiomas, desde las 220 oficinas que Reuters tiene repartidas por todo el mundo. Esta agencia de noticias públicas desde 1984, está especializada en información económica y financiera.

Agence France-Presse (AFP)

Agence France-Presse o AFP (en su origen, agencia Havas) es una agencia francesa fundada en París en 1835. Considerada como la más antigua de las agencias de información y con sede en Francia, fue creada por Charles-

Auguste Havas. A los pocos años de su creación, fue lo suficientemente importante como para que el gobierno francés le autorizara a utilizar en exclusiva la transmisión de servicios por telégrafo. Tuvo un gran éxito con las informaciones financieras de la bolsa de Londres transmitidas por palomas mensajeras. Más tarde, se consagró internacionalmente con las guerras del

Segundo Imperio (Crimea, 1854 e Italia, 1859) y se consolidó entre 1865-

97 1879 al fusionarse con la Societé Generale des Annonces y combinar la explotación de ambos servicios por los periódicos de provincias.

Notimex

Notimex es una agencia mexicana de noticias fundada en 1968 por el gobierno de México para responder a las necesidades de información de ese momento. Con cobertura en todo México y América Latina, es la agencia más importante de la región y la segunda en importancia mundial en idioma español.

La forma en que llegan las fotos a las instalaciones del Grupo Reforma es muy diferente a las fotos que son enviadas por los fotógrafos del Grupo

Reforma a través de la intranet FotoEditor Suite. Estas fotos le llegan a cada plaza del grupo vía FTP, las fotos son depositadas en un folder específico por agencia dentro de un servidor de archivos. Las fotos que llegan, no contienen una identificación como la definida para el FotoEditor Suite, de hecho la identificación de las fotos va embebida dentro de los metadatos de la misma foto llamado IPTC.

98 Servicio Fotos Agencias

El Servicio de Inyección de Fotos de Agencias es una aplicación de tipo

Servicio de Windows que tiene como finalidad ingresar al catalogo las fotos que son enviadas por las Agencias de Noticias.

Todas las fotos que se suben a través de este aplicación serán visibles desde la aplicación FotoEditor, dentro de la aplicación FotoEditor las fotos pueden ser buscadas, notificadas y posteriormente publicadas en alguna de las ediciones del

Grupo Reforma.

El Servicio Fotos Agencias para procesar las fotos, está permanentemente escuchando los folders de entrada de cada una de las agencias de noticias, cuando se encuentra una foto el servicio agrega esta a la cola de fotos pendientes de inyectar. Estas fotos son sacadas de la cola por threads de inyección, que son lo que se encargan realmente de subir las fotos

El proceso de inyección se encarga de inyectar las fotos al catalogo. El proceso consiste básicamente en los siguientes pasos:

99 1. Se recupera el folio de la siguiente foto a inyectar.

2. Se genera el Thumbnail de la foto a inyectar.

3. Se genera la prevista de la foto a inyectar.

4. Mueve y renombra la imagen original al Servidor de archivos de

acuerdo al folio que se le asigno en el catalogo de Fotos.

5. Almacena la Identificación de la foto en el catalogo, así como relaciona

esta con las imágenes generadas por el servicio.

6. Se recuperan los datos IPTC de la foto y se actualizan en la base de datos.

Existen otras cuestiones que el servicio tiene que cubrir como requerimientos de estándares de monitoreo de aplicaciones de tipo Servicio de Windows.

 Generar un log en formato .txt con toda la información suficiente de las

operaciones que el servicio realiza.

 Manejo de la cantidad de errores en las que el servicio debe detenerse.

 Notificar funcionamiento del servicio a través de un archivo heartbeat.

 Monitoreo de los thread internos.

100 Datos Técnicos del Sistema Alimentador de Fotos

Intranet

Para la creación de la intranet se emplearon las siguientes Herramientas de

Desarrollo de Software.

 Visual Studio 2005

 .NET Framework 2.0

 ASP .NET

 C#

 NetBeans 6.0

 Java SDK versión 1.5

Servicios de Windows

Para los Servicios de Inyección de fotos se emplearon las siguientes

Herramientas de Software:

 Visual Studio 2005

 .NET Framework 2.0

 C#

101 Como manejador de Base de Datos se utilizo:

 Microsoft SQL Server 2005

Como Servidor Web se utilizo:

 Microsoft Internet Information Server (IIS)

102 Resultados

El sistema alimentador de fotos, como ya lo hemos mencionado, fue creado con la finalidad de generar una catalogo de fotos que permita la elaboración de las publicaciones que produce el Grupo Reforma. Actualmente este catalogo de fotos sirve como fuente de información de varios sistemas que a su vez despliegan información relevante de carácter noticioso. Dentro de las aplicaciones que produce el Grupo Reforma que hace uso de este catalogo tenemos las siguientes:

 Los sistemas de Diseño para la elaboración de los periódicos.

 Sitios Web del Grupo: www.elnorte.com, www.reforma.com, etc.

 Aplicaciones Móviles en dispositivos IPhone, IPod y IPad, etc.

 Agencia de Noticias Reforma.

Para poder alimentar este catalogo es necesario que los sistemas tengan una alta disponibilidad. Esto requiere un sistema que permita a muchos fotógrafos ingresar su material fotográfico casi al mismo tiempo. Actualmente el Sistema Alimentador de Fotos atiende la siguiente cantidad de usuarios por plaza:

103 Plaza Cantidad de Usuarios Atendidos

México 370 Usuarios

Monterrey 290 Usuarios

Guadalajara 140 Usuarios

Tabla 5. Usuarios por plaza que inyectan fotos.

Otro de los beneficios que se obtuvieron al implementar este sistema, fue la disminución en el tiempo que toma a un fotógrafo inyectar su material fotográfico, así como el aumento en la cantidad de fotos que se ingresan al catalogo. Antes de que existiera este sistema un fotógrafo tenia que hacer cola para usar la única maquina que le permitía revelar y digitalizar su material, este proceso podía tomar horas antes de ingresar al sistema su material fotográfico, además de que la cantidad de fotos que se ingresaban era poca dada la lentitud del sistema. Es por ello que cabe resaltar los tiempos promedio resultantes de este sistema que se describen en la siguiente tabla y que ha beneficiado en el aumento de producción de información.

104 Plaza Fotos del día Fotos de Agencia Tiempo de

agregadas al agregadas al inyección por

catalogo catalogo foto.

México 5000 Fotos diarias. 5000 diarias 23 Segundos

Monterrey 4500 Fotos diarias. 5000 diarias 20 Segundos

Guadalajara 2000 Fotos diarias. 5000 diarias 20 Segundos

Tabla 6. Cantidad y tiempos de Inyección de fotos por plaza.

Todo este aumento en la cantidad de fotos que se pueden ingresar al catalogo, así como la disminución en tiempo, conlleva a que el usuario final que son los consumidores de los productos de Grupo Reforma, tengan a su disposición las mejores imágenes que daran una mejor sensación de las noticias que leen.

105 Capitulo 4. Sistema Notificador de Alertas a

Dispositivos IPhone

Cada día la tecnología avanza mas y esto provoca nuevas oportunidades de negocio y de crecimiento. Con la llegada de nuevos dispositivos móviles, como por ejemplo IPhone, IPod y mas recientemente la aparición de la Tablet IPad, esto abrió un nuevo mercado de negocio para el Grupo Reforma, la cual consiste en hacer llegar a sus lectores, las noticias mas actuales que suceden en el país y el mundo a través de los dispositivos móviles de la marca Apple.

El Sistema de Envío de Alertas a Dispositivos IPhone consiste en un conjunto de Servicios Web y Windows que tiene como finalidad el envío de noticias relevantes para los usuarios. Estos mensajes pueden contener cualquier tipo de información, como por ejemplo: Eventos de un partido de Futbol, Noticias

Relacionadas con algún Deporte, o noticias de interés General.

El Sistema Notificador de Alertas para su funcionamiento hace uso del

Servicio APNS (Apple Push Notification Services). El Servicio APNS fue creado

106 por la empresa Apple para dispositivos IPhone, IPod Touch y IPad, y tiene como finalidad hacer llegar mensajes a diferentes aplicaciones instaladas en los dispositivos móviles antes mencionados.

El Sistema de Envío de Alertas a Dispositivos IPhone entro en funcionamiento el día 11 de Junio de 2010, aprovechando que ese día se celebraba el partido que daba inicio al campeonato Mundial de Futbol:

“Sudáfrica 2010” y mas aun que el partido lo jugaban las Selecciones de

Sudáfrica y México, todo esto resulto en reto importante de asumir.

Dispositivos de la Marca Apple

Actualmente la compañía Apple cuenta con tres dispositivos que soportan el envió de alertas a través del Servicio APNS (Apple Push Notification Services).

Estos dispositivos son los siguientes:

107 IPhone:

Básicamente se podría decir que es un teléfono móvil, pero sus capacidades van mas allá de eso. El IPhone es un teléfono inteligente con la capacidades muy parecidas a las de una computadora personal. Dentro de las capacidades que podemos encontrar dentro de este dispositivo están las siguientes:

 Llamadas Telefónicas.

 Instalación de Aplicaciones.

 Pantalla Multitactil.

 Conexión a Internet.

 Multitarea.

 Navegador Web.

 Teclado Virtual.

 Reproducción, Grabación de Música y Video.

IPod Touch:

 Este dispositivo es un reproductor multimedia, de características muy

similares a las que tiene el dispositivo IPhone. Se podría decir que la

única función que los hace diferentes, es que el IPod Touch no tiene la

capacidad de realizar llamadas telefónicas.

108 Ilustración 25. Comparativa de los diferentes dispositivos de Apple

IPad:

Este dispositivo es un aparato electrónico de tipo Tablet. El IPad tiene

funciones muy similares a los dos dispositivos antes mencionados, aunque la

pantalla es mas grande (9.7 pulgadas) y su hardware mas potente. Dentro de

109 las carencias que este dispositivo tiene es la capacidad de realizar llamadas telefónicas.

Para obtener mas información acerca de estos dispositivos puede visitar la pagina de internet de la compañía Apple: http://www.apple.com/

APNS (Apple Push Notification Service)

Apple Push Notification Service (APN, para abreviar) es la pieza clave de la funcionalidad para el envió de notificaciones. Se trata de un servicio robusto y altamente eficiente para el envió de información a dispositivos IPhone, IPAD y IPod Touch. Cada dispositivo establece una conexión IP Segura y permanente con el servicio y recibe notificaciones en esta conexión. Si una notificación llega cuando la aplicación no se está ejecutando, el dispositivo avisa al usuario que la aplicación a recibido algún tipo de información.

Los encargados de generar las notificaciones son los proveedores, estos proveedores se conectan a través de un canal persistente y seguro con el servicio APN, una vez que se ha establecido la comunicación, el proveedor envía las notificaciones a los dispositivos clientes a través del canal que se ha establecido con APN.

110

Una notificación es un mensaje corto que consta de dos partes: el Token de dispositivo y Payload. El Token de dispositivo es análogo a un número de teléfono, ya que contiene información que permite a APN localizar el dispositivo en el que está instalada la aplicación cliente. El Payload es una lista de propiedades definidas en formato JSON que especifica cómo el usuario de una aplicación en un dispositivo deberá de ser notificado.

Las notificaciones que un proveedor envía a una aplicación cliente son mensajes para indicarle que tiene algún tipo de información nueva disponible. Lo que distingue a las notificaciones es que el proveedor inicia la comunicación, no espera a que el cliente pregunte si hay algo nuevo. La ventaja es la rapidez con la que la información llega al cliente (y por tanto al usuario) en cuanto está disponible en el APN.

El ejemplo más clásico de este tipo de notificaciones es el correo electrónico.

Un usuario tiene una aplicación de correo electrónico ejecutándose en su dispositivo. Alguien le envía un correo, que queda almacenado en el servidor.

A partir de ahí pueden ocurrir dos cosas:

111  El cliente de correo electrónico está configurado para consultar al

servidor, con una frecuencia predeterminada para ver si hay nuevos

correos. Si la frecuencia es de una vez cada 3 minutos el usuario

puede tardar ese tiempo en enterarse de que ha recibido un correo

nuevo.

 El cliente (y el servidor) soportan notificaciones push. En este caso el

servidor envía un mensaje al cliente para avisarle de que ha llegado un

nuevo correo, y el cliente a su vez se lo notifica de alguna forma al

usuario para que lo lea si le interesa.

En el caso de las aplicaciones de mensajería instantánea la necesidad de la inmediatez es aún más manifiesta: para que la conversación sea fluida necesitamos que los mensajes nos lleguen en cuanto son enviados, e incluso queremos saber cuándo nuestro interlocutor está escribiendo algo.

112

Ilustración 26. Ejemplo de notificación de alerta.

El flujo de notificación de datos a los dispositivos va en un solo sentido. El proveedor que envía las notificaciones genera un paquete que incluye el

Token del dispositivo para una aplicación cliente y el Payload. El proveedor envía la notificación a la APN que este a su vez envía la notificación al dispositivo.

113

Ilustración 27. Esquema de envió de notificaciones.

Arquitectura de Seguridad

Para permitir la comunicación entre un proveedor y un dispositivo cliente,

APNS debe exponer puntos de entrada. Pero para garantizar la seguridad debe regular la entrada a estos puntos. Es por ello que APN requiere de dos niveles de confianza tanto para los proveedores como para los dispositivos.

Estos son conocidos como Conexión Segura y Token Seguro respectivamente.

Para que un proveedor pueda establecer una conexión segura con APN, este debe establecer una conexión usando el protocolo TLS. El proceso de conexión comienza cuando el proveedor inicia una conexión TLS al servidor de APN (Servidor: gateway.push.apple.com Puerto: 2195), el proveedor obtiene el certificado del Servidor y lo valida. A continuación el proveedor enviar su certificado que el Servicio APN valida. Una vez que se completa este procedimiento, se establece una conexión TLS segura. De este modo el

Servicio APN se asegura que el proveedor es valido.

114

Ilustración 28. Esquema de seguridad en una conexión con el Servidor APN.

El Payload de Notificación

El Payload contiene los datos de como será la alerta que llega al cliente de una aplicación en su dispositivo. El tamaño máximo permitido para un

Payload es de 256 bytes; APNS denegá el envió de notificaciones que excedan este limite.

Por cada notificación que se envía al cliente, el proveedor debe formar un objeto en formato JSON. Este objeto debe contener un diccionario

115 identificado por el valor “APS”. El diccionario APS contiene una o mas propiedades que especifican las siguientes acciones.

 El texto del mensaje que será mostrado en la alerta al usuario.

 Un numero simbólico que será mostrado en el icono de la aplicación.

 Un sonido para reproducir cuando llegue una alerta.

Llave Tipo de Descripcion

Valor alert String ó Si se especifica esta propiedad, en el dispositivo se

diccionario muestra una alerta estándar. Puede especificar un

valor string como valor de la llave o un diccionario. Si

se especifica un string, este se convierte en el texto del

mensaje de la alerta con dos botones: “Cerrar” y “Ver”.

Si el usuario pulsa “Ver” la aplicación se inicia. badge número Indica un número que se muestra en la esquina

superior derecha del icono de la aplicación. Si este

valor es omitido, el valor que se esté mostrando en el

icono de la aplicación será removido.

116 sound string Representa el nombre de un archivo de tipo sonido que

esta incluido dentro de la aplicación. El sonido es

reproducido cuando la alerta llega al dispositivo

cliente. Si el archivo no existe o no se especifica, el

sonido default de una alerta es reproducido.

Tabla 7. Valores del diccionario APS.

Para obtener mas información hacerca del funcionamiento del Servicio APN consulte el siguiente sitio de internet: http://developer.apple.com/library/ios/documentation/NetworkingInternet/

Conceptual/RemoteNotificationsPG/Introduction/Introduction.html

Aplicación Cancha

La Aplicación Cancha es una sistema hecho para dispositivos IPhone, IPod

Touch y IPad que tiene como objetivo ofrecer a los lectores del Grupo

Reforma información al instante, relevante y detallada sobre el apasionante mundo del futbol local, nacional y mundial, así como también información de los diferentes deportes que interesan a los lectores del Grupo.

117 Dentro de la aplicación Cancha podemos encontrar una gran cantidad de funcionalidades dentro de las que destacan:

 Noticias al minuto en texto, video y foto galerías

 Estadísticas detalladas por equipo, jugadores, etc., del futbol mexicano

 Noticias personalizadas de tu equipo favorito.

 Cobertura Minuto a Minuto de los partidos.

 Calendario de juegos,

 Información privilegiada de nuestros columnistas.

 Programación de TV deportiva, Etc.

Ilustración 29. Pantalla de inicio de la aplicación Cancha.

118 Una de la funciones mas destacadas dentro de la aplicación es el envió de alertas. La aplicación Cancha fue la pionera en el Grupo en incluir el envió de alertas para notificar el seguimiento de los encuentros deportivos que ocurren en tiempo real.

Dentro la aplicación hay una apartado para configurar las alertas de los equipos del futbol mexicano, en esta sección lo que se realiza es una configuración por equipo. Cada vez que se configura una alerta para un equipo, el cliente recibirá notificaciones cada vez que este participe en un encuentro de futbol.

Ilustración 30. Pantalla de selección de equipo para su configuración.

119 Una vez que se ha establecido configurar una alerta de equipo, aparecerá dentro de la aplicación Cancha una pantalla donde se especificara que tipo de alertas desea el cliente recibir. Dentro de las alertas que un cliente puede recibir tenemos las siguientes:

Ilustración 31. Pantalla de configuración de alertas de un equipo en particular.

La tabla que se muestra a continuación contiene una descripción detallada de cada uno de los tipos de alertas que se pueden recibir dentro de la aplicación Cancha.

120 Alerta Descripcion

Noticias Esta alerta ocurre cuando existe una noticia referente al

equipo, este tipo de alerta es la única que no depende de

que el equipo este jugando un partido.

Horas antes Esta alerta ocurre cuando faltan 3,2 ó 1 hora para que el

juego donde participa el equipo comience.

Arranque de Esta alerta se envía cuando el partido inicia.

Partido

Final de Esta alerta se envía cuando el partido llega a su fin. En

Partido esta alerta se envía información de como quedo el

marcador final, así como los anotadores del juego.

Gol Anotado Esta alerta se recibe cada vez que un equipo de los que

participan en el juego anota un gol. En este tipo de alerta

se recibe el nombre del jugador y equipo que anoto.

121 Amonestación Cada vez que un jugador de cualquier equipo recibe una

amonestación se lanza este tipo de alerta. Dentro de la

información que lleva esta alerta se encuentra el nombre

del jugador amonestado así como también el minuto de

juego cuando sucedió la amonestación.

Expulsión Cuando un jugador recibe una tarjeta roja se lanza este

tipo de alerta. Dentro de la información que lleva la alerta

se incluye el nombre del jugador expulsado así como el

minuto de juego cuando ocurrió la expulsión.

Cambio de Este tipo de alerta se genera cuando un equipo realiza un

Jugador cambio de jugador. Dentro de la información que se recibe

en la alerta, esta incluida los nombres de los jugadores

involucrados en el cambio, el nombre del equipo de los

jugadores y el minuto del partido en el que ocurre el

cambio.

Tabla 8. Descripción de las alertas para juegos del Futbol Mexicano.

122

Ilustración 32. Notificación de Alerta cuando se anota un Gol.

También existe otra opción de configuración, esta consiste en recibir notificaciones de un partido en particular. El tipo de configuración que se puede hacer en esta parte es la misma que la que se tiene en la de configuración de alertas por equipo (la explicación de las alertas es la misma que esta en la tabla 4.2), salvo que aquí la única opción que no se puede configurar es la de “Recibir alertas de Noticias”. En la siguiente ilustración podemos ver la pantalla de configuración por partido:

123

Ilustración 33. Pantalla menú donde se selecciona un partido a configurar.

Además de poder recibir alertas de los juegos de futbol mexicano, la aplicación Cancha permite recibir alertas de las ligas deportivas mas importante del mundo, como por ejemplo: NFL, Liga Premier, Seria A

Italiana, Liga Española, Champions, Grandes Ligas, NBA, etc.

124

Ilustración 34. Pantalla menú donde se selecciona un equipo de la liga NBA.

Estas alertas funcionan de la misma manera que las anteriores, pero están restringido a solo recibir tres tipos de alertas:

125

Ilustración 35. Pantalla de configuración de alertas de un equipo de la NBA.

Servicios del Sistema

Hasta el momento solo se a mencionado que son las alertas, como se pueden configurar y que tipo de Alertas se pueden recibir. El punto siguiente consiste en ver la infraestructura creada detrás de la aplicación Cancha para que las envió de alertas funcione.

126 Para ello se crearon dos Web Services, uno de ellos es el encargado de administrar la información de configuración que un cliente hace sobre su dispositivo, para así recibir alertas dentro de la aplicación Cancha. El otro

Web Service es el encargado de recibir todas las notificaciones de eventos que suceden en un partido o también las noticias que suceden en torno a un equipo del torneo mexicano de futbol, para que a partir de ahí se obtengan los dispositivos que necesitan recibir dicha información.

Por ultimo se creo un Servicio de Windows que es el encargado de enviar las alertas al Servidor de Apple, para que este a su vez haga llegar las alertas a los dispositivos IPhone, IPod Touch o IPad.

Web Service WSGeneradorAlertas

En el Grupo Reforma desde hace varios años se viene dando un servicio a los lectores del grupo a través de sus sitios web Reforma.com, El Norte.com y

Mural.com. El Servicio consiste básicamente en darles un seguimiento minuto a minuto de lo que sucede en los encuentros de Futbol Mexicano.

Para cumplir con este propósito en ese entonces se creo el sistema llamando: “Minuto a Minuto” que usarían los Editores de Deportes para

127 capturar los eventos ocurridos en un partido de futbol para después presentar esa información en los sitios web antes mencionados.

Teniendo ya esta plataforma, fue que se deseo explotarla para el envió de alertas a la aplicación Cancha, que esta en los dispositivos IPhone, IPod

Touch y IPad. Para poder comunicar estos dos sistemas y así poder generar la información que se enviara en forma de alerta a los usuarios de la aplicación Cancha, se creo el Web Service WSGeneradorAlertas. Este Web

Service fue diseñado con el propósito de fungir como puente entre el Sistema

Minuto a Minuto y el Sistema de Envió de Alertas.

Ilustración 36. Flujo de comunicación entre la Aplicación Minuto a Minuto y el Servicio Web

WSGeneradorAlertas.

Dentro de las funciones que se crearon para satisfacer las necesidades de comunicación de los sistemas Minuto a Minuto y Envío de Alertas tenemos los siguientes:

128 Agrega Partido:

Alimenta un catalogo donde se registran todos los partidos que llevaran cobertura para recibir alertas del seguimiento de los partidos.

Agrega Comentario Partido:

Notifica al sistema de alertas que ocurrió un evento dentro de un juego de futbol en particular, que debe ser notificados a los usuarios que lo solicitaron.

Agrega Nota Cobertura:

Notifica al sistema de alertas que se genero una noticia sobre un equipo de futbol mexicano que debe ser notificada a los usuarios que lo solicitaron.

Web Service WSIPhone

Este es un web service diseñado para agregar y configurar dispositivos

IPhone, IPod Touch y IPad, para que estos puedan recibir alertas de juegos del futbol mexicano, noticias de equipos mexicanos y otros deportes de las ligas mas importantes del mundo.

129

Ilustración 37. Flujo de comunicación de un IPhone con el Servicio Web WSIPhone.

Dentro de las funciones que se crearon para satisfacer las necesidades de configuración de la Aplicación Cancha tenemos las siguientes:

Configura Alerta de Cobertura

Permite establecer si un dispositivo recibirá o no una alerta al momento de existir alguna noticia de una cobertura sobre un equipo del futbol Mexicano.

Configuración de Alertas por Equipo

Permite establecer si un dispositivo recibirá o no las alertas que se generen dentro de un juego de futbol del torneo de futbol mexicano, así como que tipo de alertas quiere recibir: Gol, Inicio de Juego, Fin de Juego, Cambio de

Jugadores, etc.

130 Configuración de Alertas por Partido

Permite establecer si un dispositivo recibirá o no las alertas que se generen para un Partido en especifico, así como que tipo de alertas quiere recibir: Gol,

Inicio de Juego, Fin de Juego, Cambio de Jugadores, etc.

Configuración de Dispositivos

Permite registrar y configurar el dispositivo en el sistemas de alertas para así poder recibir alertas.

Restauración de Dispositivos

Permite limpiar toda la configuración del dispositivo en el sistema de alertas.

Servicio Notificador

El Servicio Notificador (Notificador de Alertas IPhone) es una aplicación de tipo Servicio de Windows. El Objetivo de este servicio es el envío de alertas a los dispositivos IPhone, IPod Touch y IPad. Para poder realizar el envío de alertas, este servicio hace uso del Servicio APNS (Apple Push Notification

Service).

131 Este Servicio tiene la particularidad de poder estar en funcionamiento varias instancias del mismo. El objetivo de esto es que en caso de haber mucha demanda de notificaciones de alertas, se pueda instalar un nuevo servicio para reducir los tiempos de envío de alertas y así poder dar las noticas a los clientes lo mas rápido posible.

Ilustración 38. Flujo del servicio Notificador.

El proceso de envío de alertas a los dispositivos consiste básicamente en los siguientes pasos:

 Se obtiene el evento del juego a enviar o la noticia del equipo

 Se obtienen los dispositivos que solicitaron dicha información.

 Se crean los paquetes de envío para ser enviados al servicio APNS.

 Se realiza la conexión al Servicio APN.

 Se envían los paquetes de alertas al Servicio APN.

 Se cierra la conexión al Servicio APN.

132 Existen otras cuestiones que el servicio tiene que cubrir, estos requerimientos son estándares definidos por los Centros de Computo del

Grupo Reforma que consisten básicamente en:

 Generar un log en formato .txt con toda la información necesaria para

dar seguimiento a las operaciones que realiza.

 Manejo en la cantidad de errores que el servicio debe tolerar antes de

detenerse

 Notificar el funcionamiento del servicio a través de un archivo

heartbeat.

133 Datos Técnicos del Servicio de Alertas

Web Services

Para la creación de los Web Services se emplearon las siguientes

Herramientas de Desarrollo de Software.

 Visual Studio 2005

 .NET Framework 2.0

 C#

Servicio de Windows

Para el Servicio Notificador (Notificador de Alertas IPhone) se emplearon las siguientes Herramientas de Desarrollo de Software.

 Visual Studio 2005

 .NET Framework 2.0

 C#

134 Como manejador de Base de Datos se utilizo:

 Microsoft SQL Server 2008

Como Servidor Web se utilizo:

 Microsoft Internet Information Server (IIS)

135 Resultados

Actualmente la Aplicación Cancha para dispositivos IPhone, IPod Touch y

IPad da el servicio de alertas a un poco mas 20,000 dispositivos. Todos estos usuarios de la Aplicación están habidos de recibir la información en sus dispositivos en tiempo real. Es por ello que se creo el Sistema de Envío de

Alertas IPhone, para dar a los usuarios de esta aplicación en forma de alertas, los suceso que suceden dentro de los encuentros deportivos mas importantes en el ámbito local y mundial.

En promedio dentro de cada jornada del Futbol Mexicano, que comprenden 9 partidos semanales, se llegan a enviar en promedio un total de 120,000 alertas. Tal cantidad de alertas requiere que el sistema que envía las alertas se los mas rápido posible para que las noticias lleguen a los usuarios casi al mismo tiempo en que suceden dentro de los encuentros de futbol. Es por ello que cuando se diseño el servicio que envía las alertas, se selecciono la plataforma .NET para su desarrollo, ya que esta plataforma permite la creaciones de aplicaciones de tipo servicio de Windows. Este tipo de aplicaciones no requieren casi ningún tipo de interacción con un operador, además el lenguaje permite el manejo de Threads que ayudan al envió de manera simultanea de múltiples alertas. Todo este permitió tener en

136 promedio un envío de alerta a un dispositivo en particular alrededor de los

0.005 Segundos.

Para ver un ejemplo mas claro, tomemos los partidos que inauguraron el

Mundial de Futbol “Sudáfrica 2010”, los resultados que se obtuvieron fueron los siguientes:

Partido Sudáfrica vs México

 Eventos registrados en el juego: 13

 Cantidad de Alertas enviadas: 23126

 Promedio de Envió de Alertas por Evento: 10 Segundos

Partido Uruguay vs Francia

 Eventos registrados en el juego: 16

 Cantidad de Alertas enviadas: 10060

 Promedio de Envió de Alertas por Evento: 5 Segundos

De acuerdo a estos resultados podríamos decir que una persona que desee seguir los encuentros deportivos, podrá confiar en la aplicación Cacha para recibir las notificaciones casi en tempo real de lo que sucede dentro de un juego en particular.

137 Conclusiones

La forma en que las personas consumen información a cambiado mucho en los últimos 15 años, en aquel entonces si una persona quería estar informada de las noticias que suceden en el mundo, tenia que pasar mucho tiempo frente a un aparato de televisión o bien un radio. Esto provocaba que las personas perdieran un tiempo valioso. Si lo que querían es tener movilidad y seguir estando informados, podrían adquirir un periódico con la salvedad de que la información que obtenían no era en tiempo real.

Con la llegada del internet las personas empezaron a obtener información de una manera mucho mas fácil, día a día se crean sitios de internet que proveen información de todo tipo como los sitios web del Grupo Reforma

(www.elnorte.com, www.reforma.com, www.cancha.com y www.mural.com) y lo mejor de todo es que la información fluye casi en tiempo real. Pero el problema sigue estando ahí, tiene que seguir sentado horas frente a una computadora para estar informado.

Con la llegada de los nuevos dispositivos móviles como por ejemplo el IPhone, se revoluciona la manera de estar informado. Estos dispositivos le dan a las

138 personas el poder de consultar cualquier tipo información desde cualquier lugar siempre que se tenga acceso a una red que les permita estar conectados a internet

En el Grupo Reforma hemos desarrollado una gran variedad de aplicaciones que han permitido llevar a cabo la tarea de brindarle a las personas la posibilidad de estar informados ya sea desde su computadora, dispositivos móviles o bien desde el tradicional periódico. Con estas aplicaciones los usuarios podrán decidir cual es la mejor manera de obtener la mejor y más variada información noticiosa.

Lo mas importante de esto, es que los usuarios de los productos del Grupo

Reforma, son los mas beneficiados de todo esta revolución tecnológica. El

Grupo Reforma seguirá apostando a la tecnología tanto para darle a los lectores mejores aplicaciones que brinden información, así como también implementar sistemas que permitan reducir los costos de producción dentro del grupo.

De todo lo anterior expuesto se observa que es factible llevar a cabo algunas mejoras que se podrían implementar para reducir los tiempos de respuesta,

139 así como extender la funcionalidad de los sistemas antes descritos. Dentro de las acciones que podemos tomar tenemos las siguientes:

Para el Sistema Alimentador de Fotos tenemos:

 Permitir a Fotógrafos el envió de material fotográfico desde dispositivos

móviles que tengan una conexión a internet.

 Hacer uso de servidores de alto desempeño para procesar la gran

cantidad de imágenes que generan los fotógrafos y así reducir el tiempo

de inyección de fotos.

 Unificar en una sola herramienta el modulo de inyección de fotos y la

búsqueda de las mismas para su posterior uso en los productos del

grupo.

 Generar Servicios de Monitoreo para revisar cuellos de botella que

podría estar causando lentitud en los sistemas.

Para el Sistema Notificador de Alertas a Dispositivos IPhone se podrían tomar las siguientes acciones de mejora:

 Llevar un control de que dispositivos ya no tienen instalada la

aplicación Cancha que en su momento recibía alertas, con el fin de no

generar carga inútil que ralentice el envío de las alertas.

140  Crear un Sistema de Reportes que permita ver como se están

comportando los servicios que envían las alertas y así poder tomar

decisiones antes de que presente un problema grave de atender.

 Aunque actualmente el sistema hace uso de SQL Server 2008 como

servidor de base de datos, este no se hace uso de las mejoras que el

manejador de base de datos nos ofrece para lograr un mejor

rendimiento del sistema, es por ello que seria conveniente revisar que

características nuevas podrían servir para explotar al máximo nuestro

servidor.

141 Bibliografía

Microsoft C#. Curso de Autor: Ceballos, Francisco Javier Programación Editorial Alfa Omega Primera Edición, 2002

Java como programar Autor: Deitel Deitel Editorial: Pearson Prentice Hill Quinta Edición, 2004

Java2 Manual de Autor: Froufe, Agustín Usuario y tutorial Editorial: Alfaomega Segunda Edición, 2000

MSDN Library Autor: Microsoft Web: http://msdn.microsoft.com/es- es/library/ms123401.aspx

Microsoft SQL Server Autor: Microsoft Web: http://technet.microsoft.com/es- es/library/bb418470(SQL.10).aspx

.NET Framework 2.0 Autor: Northrup, Tony Application Development Editorial: Microsoft Press Foundation

142