Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS “DESARROLLO DE SERVICIO WEB Y APLICACIÓN MÓVIL PARA COMUNICAR TEMAS DE INTERÉS A LA COMUNIDAD ESTUDIANTIL” T E S I S QUE PARA OBTENER EL TÍTULO DE I N G E N I E R O EN I N F O R M Á T I C A P R E S E N T A ELIT JOSUÉ AZCÁRATE GLORIA CIUDAD DE MÉXICO 2016 ÍNDICE Resumen .............................................................................................................................................. i Introducción .......................................................................................................................................... ii Capítulo I Marco metodológico ........................................................................................................ 1 1.1. Planteamiento del problema......................................................................................................... 1 1.2. Objetivos....................................................................................................................................... 2 1.2.1. Objetivo general ................................................................................................................... 2 1.2.2. Objetivos específicos ........................................................................................................... 2 1.3. Justificación .................................................................................................................................. 2 1.4. Propuesta de solución .................................................................................................................. 3 1.5.. Tipos de investigación ................................................................................................................. 4 1.6. Técnicas de investigación a emplear ........................................................................................... 4 Capítulo II Marco teórico .................................................................................................................. 5 2.1. Comunicación ............................................................................................................................... 5 2.1.1. Elementos que intervienen en la comunicación................................................................... 5 2.1.2. El proceso de comunicación ................................................................................................ 6 2.1.3. Errores en la comunicación .................................................................................................. 7 2.1.4. Comunicación masiva .......................................................................................................... 8 2.1.5. Funciones de los medios de comunicación ......................................................................... 9 2.2. Redes sociales ........................................................................................................................... 10 2.2.1. Redes sociales en la actualidad......................................................................................... 10 2.3. Interfaz ........................................................................................................................................ 12 2.3.1. Diseño de interfaces .......................................................................................................... 12 2.3.2. Experiencia de usuario ....................................................................................................... 12 2.3.3. Diseño de interacción ......................................................................................................... 12 2.4. Lenguajes para programación web ............................................................................................ 13 2.4.1. HTML .................................................................................................................................. 13 2.4.2. PHP .................................................................................................................................... 14 2.4.3. CSS .................................................................................................................................... 15 2.4.4. JavaScript ........................................................................................................................... 16 2.5. Bases de datos ........................................................................................................................... 16 2.5.1. El modelo relacional ........................................................................................................... 16 2.5.2. Sistemas manejadores de bases de datos ........................................................................ 17 2.5.3. Lenguaje SQL .................................................................................................................... 18 2.5.4. MySQL ............................................................................................................................... 19 2.6. Aplicaciones web ........................................................................................................................ 19 2.7. Servicios web ............................................................................................................................. 21 2.7.1. Arquitectura orientada a servicios ...................................................................................... 23 2.7.2. SOAP web service ............................................................................................................. 24 2.7.3. REST web service .............................................................................................................. 27 2.8. Comparación de tecnologías...................................................................................................... 29 2.8.1. Servidores Web .................................................................................................................. 29 2.8.2. Lenguaje Web .................................................................................................................... 30 2.8.3. Base de datos .................................................................................................................... 31 2.8.4. Smartphones ...................................................................................................................... 32 2.8.5. Fabricantes y sistemas operativos ..................................................................................... 36 2.8.6. Servicios, aplicaciones o programas similares .................................................................. 37 2.9. Metodología RAD ....................................................................................................................... 38 2.9.1. Fases del RAD ................................................................................................................... 39 2.9.2. Características de la metodología RAD ............................................................................. 41 2.9.3. Usos de RAD...................................................................................................................... 42 2.10. Lenguaje unificado de modelado ............................................................................................. 44 Capítulo III. Análisis y diseño del sistema propuesto ................................................................. 46 3.1. Modelado de gestión .................................................................................................................. 47 3.1.1. ¿Qué información conduce el proceso de gestión?...........................................................47 3.1.2. ¿Qué información se genera? ............................................................................................ 47 3.1.3. ¿Quién la genera? ............................................................................................................. 48 3.1.4. ¿A dónde va la información? ............................................................................................. 49 3.1.5. ¿Quién la procesó? ............................................................................................................ 50 3.2. Modelado de datos ..................................................................................................................... 51 3.3. Arquitectura ................................................................................................................................ 54 3.4. Modelado de procesos ............................................................................................................... 55 3.4.1. Modelado de sitio web ....................................................................................................... 55 3.4.2. Modelado de servicio web .................................................................................................. 62 3.4.3. Modelado de la aplicación móvil ........................................................................................ 65 3.5. Diseño ........................................................................................................................................ 71 3.5.1. Propuesta de diseño para sitio web ................................................................................... 71 3.5.2. Propuesta de diseño para la aplicación móvil .................................................................... 75 Capítulo IV. Desarrollo .................................................................................................................... 76 4.1. Generación de aplicaciones ....................................................................................................... 76 4.1.1. Base de datos .................................................................................................................... 77 4.1.2. Portal web .......................................................................................................................... 79 4.1.3. Web service ........................................................................................................................ 83 4.1.4. Aplicación móvil.................................................................................................................. 86 Capítulo V. Implementación y pruebas del sistema .................................................................... 89 5.1. Implementación .......................................................................................................................... 89 5.1.1. Web .................................................................................................................................... 89 5.1.2. Aplicación móvil.................................................................................................................. 91 5.2. Pruebas de entrega .................................................................................................................... 91 Conclusiones ..................................................................................................................................... 98 Bibliografía ......................................................................................................................................... 99 Anexos ............................................................................................................................................. 100 Índice descriptivo Capítulo I Marco metodológico Este capítulo describe el problema a tratar, así como se propone una solución al problema ocupando el desarrollo de un sistema con tecnologías que son ocupadas a nivel global. A su vez, se comparan soluciones similares que podrían dar cierta solución a la problemática, sin embargo, por sus características, no justifican totalmente su adquisición. Capítulo II Marco teórico Esta sección reseña la teoría que va a fundamentar el proyecto con base al planteamiento del problema. Abordará temas principales como la teoría de la comunicación, redes sociales, aplicaciones web, servicios web y sus características, lenguajes de programación web y bases de datos. Capítulo III Análisis y diseño del sistema propuesto Este apartado explica las actividades, procesos o tareas que debe de cumplir y realizar el sistema con la tecnología que se propone. Se adjuntan diagramas ilustrando las entidades, actividades y procesos. Capítulo IV Desarrollo En el capítulo se detallan, librerías, clases, métodos o funciones que se incluirán para el desarrollo del proyecto. Se agregan interfaces basadas en los diseños propuestos. Capítulo IV Implementación y pruebas del sistema Se demuestra la etapa final del sistema, así como su funcionalidad y diferentes pruebas mostrando el correcto funcionamiento del servicio. i Resumen El objetivo del proyecto es desarrollar un servicio web que permita difundir avisos, mensajes o temas de interés de manera masiva a la comunidad estudiantil que forma parte de la Unidad Profesional Interdisciplinaria de Ingeniería y Ciencias Sociales y Administrativas de manera unificada, segura e independiente del lenguaje de programación y del sistema operativo en el que se implemente esta solución. Se plantea entonces atacar un planteamiento de problema desarrollando un sistema de gestión de avisos disponible para todos los alumnos. La propuesta es que esté disponible como un “web service”, es decir, una aplicación web estandarizada que permite realizar operaciones sobre los datos, utilizando una conexión de Internet y un cliente móvil. El sistema de gestión de avisos podrá ser utilizado por cualquier aplicación que lo requiera. Contará con una base de datos que llevará el registro de avisos y los clasificará por área y estado. Los diferentes beneficios que se obtendrán en un ámbito tecnológico son: independencia de aplicación, plataforma y sistema operativo; consolidación y seguridad de datos, actualizaciones y mejoras que automáticamente se reflejan en los sistemas conectados. En un entorno social, el alumno podrá estar enterado de temas y avisos que emitan distintas áreas escolares como son gestión escolar, eventos deportivos, culturales y avisos de carácter general a toda la comunidad. Los siguientes capítulos detallarán el análisis, desarrollo e implementación de la solución propuesta ocupando un servicio de hosting básico. Se incluye también las referencias de las diferentes herramientas ocupadas que permitieron un rápido desarrollo, tecnologías libres que son ocupadas hoy en día en cualquier parte del mundo. Esta tesis constituye el conjunto de conocimientos que ha adquirido el autor de la presente durante el periodo de enseñanza en la carrera de Ingeniería en Informática, así como de otras fuentes y de su experiencia laboral. Esperando querido lector, sea de tu agrado. ii Introducción Hace unas décadas, en los primeros computadores corría un solo programa a la vez, pero en la medida que en un mismo computador podían correr varios programas al mismo tiempo, surgió la necesidad de contar con mecanismo de comunicación entre ellos. Este mecanismo ha evolucionado debido que los computadores conforman redes, por tanto, esta comunicación debe poder efectuarse entre un programa “X”, que corre en el computador “Alfa” y otro programa “Y”, que corre en el computador “Beta”. Para que esta comunicación funcione, primero debe existir un medio de comunicación entre el computador Alfa y el computador Beta; esto hoy está resuelto con la Internet. Y segundo,el programa X debe saber conversar con el programa Y. Para que esto ocurra el programador a cargo de X debe conocer de Y; a su vez el programador a cargo de Y debe conocer de X, por lo menos en los que se refiere al intercambio de datos. Esto hace que si no hay acuerdo entre el programador de X y el programador de Y, no hay comunicación posible. La magia de los web services radica en que el programador de X puede crear un servicio para transferir datos sin necesidad de conocer al programador Y, ni a los programas que éste tiene a cargo. De modo que quien quiera recibir los datos solo necesita usar el web service y punto. De este modo, pueden existir transferencias de datos entre distintas aplicaciones o programas que funcionan en varios computadores (con distintos sistemas operativos) pertenecientes a diferentes empresas o instituciones; proporcionando al fin, mecanismos de comunicación estándar entre diferentes aplicaciones que interactúan entre sí para presentar información dinámica al usuario. Estos servicios permiten a distintas aplicaciones, de diferentes fuentes, comunicarse entre ellos, sin la necesidad de escribir programas costosos. Al ser implementados e invocados de manera local o pública, funcionan como grandes herramientas para crear instancias, procesos o consultas disponibles a toda hora en condiciones ideales de operación. Actualmente, es posible encontrar distintos servicios de carácter público, enfocados a temas científicos (meteorología, astronomía, etc.), utilizados como herramientas matemáticas, de consulta turística o personal. 1 Capítulo I Marco metodológico 1.1 Planteamiento del problema En la actualidad el uso de la tecnología es indispensable tanto en la vida laboral como social. Una de las razones es que ayuda a simplificar procesos que en el pasado eran complejos y largos. La capacidad de casi todo el mundo de crear un sitio web y comenzar a publicar o transmitir contenido ha llevado a cambios radicales en los medios. Las empresas y los individuos pueden publicar cualquier cosa desde texto o imágenes a video utilizando tecnología digital de alta velocidad y banda ancha. Luego pueden difundirlos directamente en computadoras o aparatos móviles alrededor del mundo. La Unidad Profesional Interdisciplinaria de Ingeniería y Ciencias Sociales y Administrativas cuenta y hace uso de medios y redes sociales actuales como lo son Facebook o Twitter en especial. Si bien no existe un medio centralizado para informar al alumno, algunos departamentos de la unidad profesional han optado por crear una cuenta aparte en las mencionadas redes sociales para informar únicamente sus objetivos. A la vez, algunos alumnos han optado por crear sus propios sitios o cuentas a fin de mantener informada a la comunidad con temas, eventos o hechos de interés, ya sea en el momento o proyectados a un futuro. Ciertos avisos no llegan a toda la comunidad estudiantil, ya sea por los métodos tradicionales que ocupa la unidad para informar o por los múltiples medios sociales actuales que se emplean y que el estudiante no está apegado a estos. Es así, que veo la oportunidad de proponer un servicio independiente de aplicación, plataforma y sistema operativo que permita la creación, almacenamiento temporal, gestión, envió y recepción de avisos y eventos de manera oficial que involucren a la comunidad estudiantil de la UPIICSA, lo que da origen al presente proyecto de titulación. 2 1.2 Objetivos 1.2.1 Objetivo general Proponer y desarrollar un servicio web, página de gestión y aplicación móvil (plataforma Android) que permitan la creación, gestión, envío y recepción correspondiente de mensajes, avisos o temas de interés a los estudiantes de la unidad profesional. 1.2.2 Objetivos específicos Investigar, analizar las tecnologías actuales para el desarrollo de aplicaciones móviles y servicios web. Establecer y analizar los requerimientos necesarios para el desarrollo del servicio web. Instalar, configurar y operar diversas herramientas a utilizar para el desarrollo del web service. Analizar, diseñar y desarrollar los componentes y procesos que permitan la operación del servicio. Implementar un prototipo, de manera que permita el envío y recepción de información entre un sitio web y una aplicación móvil. Generar la documentación necesaria para describir el funcionamiento del servicio web. 1.3 Justificación Anteriormente, en este documento, se trató el problema de mantener a la comunidad estudiantil informada acerca de eventos, avisos o circunstancias que le conciernen respecto a la unidad profesional. Básicamente se habla de información repartida en distintos medios, medios a los cuales la comunidad no está al tanto en cada uno, o incluso por distintas barreras en el proceso de 3 comunicación, como lo pueden ser el tiempo, espacios, horarios de clase y actividades, los avisos no llegan al alumno. Se plantea entonces, atacar este problema desarrollando un prototipo de sistema web (sitio de gestión y servicio web), demostrando en este caso la operación del servicio con un cliente móvil. 1.4 Propuesta de solución La propuesta describe este sistema como un web service, es decir, una aplicación web estandarizada que permite realizar operaciones sobre los datos. Los diferentes beneficios que se obtendrán son: independencia de aplicación, plataforma, y sistema operativo. Una centralización de información, ofreciendo abarcar la comunicación de más de un departamento de la unidad con la comunidad; actualizaciones y mejoras que automáticamente se reflejen en los sistemas conectados. La independencia de plataforma otorgara libertad para desarrollar en cualquier lenguaje y sistema operativo, asegurando la compatibilidad del servicio con la mayor parte de terminales móviles de la actualidad. Ocupando la misma red a Internet de la unidad profesional y alguna instancia de servidor (físico o virtual), es posible desarrollar e implementar este servicio que permita a los alumnos estar enterados de los distintos hechos que los departamentos o academias necesiten informar. Esto también permitiría reducir el uso de papel o cartulinas que las academias, departamentos o alumnos ocupen para dar a informar algún hecho. Actualmente el uso de teléfonos inteligentes se ha convertido en una tendencia, es por eso que se propone desarrollar una aplicación móvil para utilizar este servicio, ya que resulta más práctico ocupar un smartphone para abrir un sitio web (siempre y cuando el sitio este optimizado para vistas móviles) y buscar información en cualquier momento (o lugar teniendo una conexión a Internet) que ocupando un ordenador personal. 4 1.5 Tipos de investigación Para el proyecto comenzaré con una investigación de tipo exploratorio, ya que no obstante que el tema que abordo ya ha sido estudiado, le daré un enfoque diferente para después entrar a un estudio de tipo descriptivo en donde se muestra el sistema desarrollado con respuestas tangibles que son consecuencia de un análisis. 1.6 Técnicas de investigación a emplear Para la recolección de información durante el desarrollo del proyecto me basaré en técnicas documentales o hemerográficas, ya sea en libros, páginas web, artículos, revistas, etc. Cabe mencionar que el proyecto se basa en tecnologías informáticas y es preferible apoyarse en lo que ya está hecho y comprobado. 5 Capítulo II Marco teórico El presente trabajo analiza el diseño, desarrollo e implementación de un servicio web como una forma de comunicación en favor de la comunidad estudiantil de la UPIICSA, proponiendo una estructura flexible y sencilla, útil tanto para estudiantes como personal administrativo. En ese sentido, es preciso aclarar algunos conceptos. 2.1 Comunicación En primer término, para el abordaje del servicio web,se valdrá de la teoría de la comunicación. El acto de comunicar es un proceso complejo en el que dos o más personas se relacionan y a través de un intercambio de mensajes con códigos similares, tratan de comprenderse e influirse de forma que sus objetivos sean aceptados en la forma prevista, utilizando un canal que actúa de soporte en la transmisión de la información. La comunicación constituye una característica como una necesidad de las personas y de las sociedades, con el objetivo de poder intercambiarse información y relacionarse entre sí. 2.1.1 Elementos que intervienen en la comunicación Aunque la comunicación es un proceso complejo, para efectos didácticos podemos descomponerlo en los diferentes elementos que lo integran. El mensaje. Formado por las diferentes ideas o informaciones, que se trasmiten mediante códigos, claves, imágenes, etc., cuyo significado interpretará el receptor. El emisor y el receptor. El emisor es el sujeto que comunica en primer lugar o toma la iniciativa de ese acto de comunicación, mientras que el receptor es el que recibe el mensaje. El código. Es el conjunto de claves, imágenes, lenguaje, etc., que sirven para transmitir el mensaje. Debe de ser compartido por emisor y receptor. 6 El canal. Es el medio a través del cual se emite el mensaje. Habitualmente se utiliza el oral- auditivo y el gráfico-visual complementándose. El contexto. Se refiere a la situación concreta donde se desarrolla la comunicación. De él dependerá, en gran parte, la forma de ejercer los roles por parte de emisor y receptor. Los ruidos. Son todas las alteraciones de origen físico que se producen durante la trasmisión del mensaje. Los filtros. Son las barreras mentales que surgen de los valores, experiencias, conocimientos, expectativas, prejuicios, entre otros, del emisor y receptor. La retroalimentación. Es la información que devuelve el receptor al emisor sobre su propia comunicación, tanto en lo que se refiere a su contenido como a la interpretación del mismo o sus consecuencias en el comportamiento de los interlocutores. 2.1.2 El proceso de comunicación El proceso de comunicación supone la intervención activa y dinámica de todos los elementos descritos anteriormente, creando una secuencia organizada en la que todos intervienen en mayor o menor grado, en uno o varios momentos de esa secuencia. Este proceso se desarrolla en un contexto concreto y con un código específico, utilizando al menos un canal determinado, con la intervención de emisor y receptor, de forma que el primero trasmite un mensaje al segundo. En primer lugar, el emisor debe tener unos objetivos definidos con claridad y a partir de ellos codificar las ideas, sentimientos o pensamientos que quiera transmitir; adaptándolos al código que se haya previsto utilizar, habitualmente el lenguaje, para poder trasmitir el mensaje. En el momento de codificar el mensaje ya se han activado los filtros, o incluso antes, cuando el emisor se plantea los objetivos de la comunicación. Para la transmisión se emplea el canal que se considere más adecuado, utilizando un código común con el receptor, para facilitar la comunicación. 7 A partir de la retroalimentación que el receptor devuelve al emisor, se comprobará si está utilizando el código adecuado. Una vez que se transmite el mensaje van a entrar en escena los ruidos, dificultando que el mensaje llegue al receptor en las mejores condiciones. La recepción supone la llegada del mensaje al receptor. En esta acción, las dificultades pueden venir provocadas por los ruidos. Tras recibirlo, el receptor decodifica el mensaje y lo interpreta a través de un proceso interno, sobre la base de sus experiencias y conocimientos. En este momento entran en acción sus filtros, así como posibles problemas en relación al conocimiento y el uso adecuado del código. Cuando se recibe el mensaje se pone en marcha lo que denominamos “intención”, que se refiere a la pregunta que se hace el receptor sobre el significado real del mensaje, a partir de la utilización de todos los elementos y componentes que hemos visto que intervienen en este proceso de comunicación. Esta intención sería el equivalente a los objetivos del emisor. En este momento, el mensaje original o el objetivo que pretendía el emisor, estará distorsionado o al menos reducido y sesgado, respecto al recibido por el receptor. El último paso del proceso es la utilización del feedback o la retroalimentación, con lo que el receptor se asegura que el contenido del mensaje que le llega es el que el emisor pretendía transmitir. 2.1.3 Errores en la comunicación Al margen de otros problemas que se puedan producir durante el proceso de comunicación, se pueden cometer dos tipos de errores: el error de conocimiento y el de transmisión. El primero se refiere a los déficits o faltas en la formación del emisor, por una preparación inadecuada, incompleta o simplemente por no estar al tanto de los acontecimientos cotidianos. No es un error muy grave, pues no se achaca al emisor una intención de engaño hacia el receptor. Cuando se comete el error o sesgo de transmisión, el receptor atribuye al emisor un ánimo 8 engañoso. Este error se considera más grave que el anterior, pues su presencia contribuye a una catalogación negativa del emisor, con la que el comunicador pierde su credibilidad. Si en el primer caso el error hacía referencia a “lo que se dice”, es decir, al contenido de la información, en este segundo el error se centra en el “cómo se dice”, es decir, la forma en que se presenta la información. El error de transmisión se relaciona con la “intención” de la que hablábamos previamente, es decir, con la imagen que estamos transmitiendo a nuestros interlocutores. Esta se forma con las conductas del emisor, conductas que se concretan en tres tipos: verbales, no verbales y paraverbales. Estos tres tipos constituyen los componentes conductuales de la comunicación y sus diferentes combinaciones generan las impresiones que causamos en los demás. 2.1.4 Comunicación masiva Se considera comunicación masiva, a la transmisión de señales mediante un código común al emisor y receptor, mediada por un dispositivo tecnológico, como la televisión, los diarios, Internet, las radios, etc. Las características de estos medios contribuyen a la elaboración y la entrega de los mensajes, cumpliendo lo siguiente: Estas formas de comunicación social son “medios”, por lo tanto, existen emisores y receptores que pueden ser individuales y colectivos. Son abiertos, esto significa que cualquier persona puede acceder a ellos. Se relacionan con distintas disciplinas, lo que involucra el empleo de distintos lenguajes, además de especificaciones técnicas. Los contenidos están destinados a un público heterogéneo y a una gama de receptores, como así también a un público más reducido que maneja ciertos códigos e información necesaria para decodificar el mensaje. 9 En esta modalidad, el emisor no tiene un contacto directo con los receptores (puesto a que los desconoce) y la audiencia es heterogénea, a la vez, el receptor pierde su carácter de receptor “individual” pasando a llamarse “receptor colectivo”. 2.1.5 Funciones de los medios de comunicación Los medios de comunicación influyen sobre la sociedad de manera considerable, ayudando a satisfacer las necesidades de la población. Las funciones de estos medios son: Informar. Recogen y entregan información de manera veraz y oportuna sobre los diversos acontecimientos mundiales y de distintos temas de interés. Esta información busca ser lo más objetiva posible. Educar. Transmiten la cultura de las distintas comunidades; su pasado, presente y proyecciones futuras. Los avances tecnológicos han posibilitado la transmisión de programas educativos de manera másatractiva para la comunidad. Entretener. La sociedad demanda de los medios la entretención y el esparcimiento. Así estos contribuyen a llenar espacios de tiempo para descansar y divertirse. Esta es una de las funciones más desarrollada por los programas televisivos, aunque también está presente en otros medios de comunicación. Formar opinión. Los distintos mensajes entregados por los medios de comunicación, contienen la ideología de quienes elaboran la información promoviendo la opinión entre los receptores. Los medios sociales ordenan e interpretan la información facilitando la comprensión de ésta entre los receptores. Socializar. Formar consenso, que la población esté de acuerdo en diversos aspectos y compartir información común que integre y nos una. Publicidad y propaganda. Esta función es propia de las sociedades modernas, debido a la trascendencia económica que ella tiene, así persiguen la finalidad de ofertar y conseguir consumidores para los distintos productos que se ofrecen. De esta manera la publicidad y propaganda financian los distintos tipos de programas presentados por los medios. Así también, persuaden para adoptar actitudes, conductas u otros. 10 2.2 Redes sociales La evolución del Internet ha creado nuevos hábitos de vida y las redes sociales son la nueva modalidad de interacción en la sociedad actual. Siendo capaces de generar canales de expresión, espacios de debate y sistemas para el intercambio de información, música, videos, etc. En el cual se cumple el “proceso de comunicación” ya que cualquiera puede convertirse en un emisor y crear sus propios contenidos. También se han convertido en promisorios de negocios para empresas, artistas, marcas y profesionales independientes. Las redes sociales son estructuras sociales formadas por personas que se agrupan por intereses comunes que permiten la comunicación entre las partes. O de otra forma: son sitios web donde las personas se sociabilizan en el mundo virtual. Estas plataformas sociales se han convertido en las protagonistas de los medios de comunicación tradicionales, llegando a mezclarse de forma heterogénea y siendo lo suficientemente firmes para colarse en las mentes de la mayoría de la población. Algunos de los principales beneficios de usar las redes sociales se podrían resumir en: Diluyen fronteras geográficas y sirven para conectar gente sin importar la distancia. Perfectas para establecer conexiones con el mundo profesional. Tener información actualizada acerca de temas de interés, además permiten acudir a eventos, participar en actos y conferencias. La comunicación puede ser en tiempo real. Pueden generar movimientos masivos de solidaridad ante una situación de crisis. 2.2.1 Redes sociales en la actualidad Cada poco tiempo tenemos noticias de una nueva red social que viene para quedarse, pero en realidad son pocas las que al final continúan y son referentes en el mundo de Internet. 11 Actualmente existen muchas redes sociales, algunas especializadas u orientadas a un mercado concreto. Entre los principales sitios podemos destacar varios con diferentes particularidades: Facebook. Es la red social por excelencia, ha tenido un éxito notable y sigue vigente al día de hoy. Está basada en un sistema bidireccional donde los contactos deben invitarse y aceptarse mutuamente para poder conectarse socialmente en dicha red, lo cual implica que para que alguien este interactuando con nosotros o nosotros con ellos, debemos ser aceptados. Twitter. Es la red social de las noticias, de las personas activas y su frenético ritmo de publicaciones. Es una red donde “el momento” es lo más importante. Está basada en un sistema unidireccional donde cada cual sigue a quien quiere y permite el seguimiento de los hashtags que han permitido movimientos y revoluciones. Google Plus. Es la red social a la que le sigue esperando una revolución que permita un crecimiento en uso comparable a los otros productos del gigante Google. Cualquiera que disponga una cuenta de Gmail dispone a la vez de una cuenta en Google Plus. Pinterest. Una de las últimas redes sociales que parece que han llegado para quedarse. Basada en un sistema de tableros donde puedes “pinear” imágenes con sus comentarios. Se ha convertido en un canal para tiendas online y empresas o particulares que desean ganar relevancia por sus imágenes. Instagram. Nacida de una aplicación para terminales móviles, se ha convertido en la forma más sencilla de hacer fotos y colgarlas con retoques profesionales. Estas redes sociales son solo un ejemplo, existen innumerables que pueden ser de interés personal o profesional cada una teniendo un objetivo, un camino y una finalidad al momento de adentrarse. En resumidas cuentas, las redes sociales constituyen uno de los fenómenos más llamativos de una nueva filosofía de comunicación, donde intervienen millones de personas diariamente. Tener presencia en todas suele ser una pérdida de tiempo y es preferible centrarse en lo que realmente es rentable o lo que permita afrontar el buen hacer. 12 2.3 Interfaz Cuando se utiliza algún programa informático, suele haber algo entre el usuario y el programa. Ese algo, que es a la vez un límite y un espacio común entre ambas partes, se le llama interfaz. Si bien, lo servicios web reciben, procesan y devuelven cadenas de datos, para este manejo de solicitudes es necesario contar con una “interfaz” que muestre una representación de esta información para que el usuario pueda familiarizarse con el uso ya sea de un sitio o una aplicación. 2.3.1 Diseño de interfaces El diseño de interfaces o UI (User Interface) hace foco en el artefacto, o dicho de otra manera, en lo que está dentro de la pantalla. Como lo son la selección y distribución de los elementos de la interfaz (ej. textos y campos del formulario), consistencia del diseño (con la plataforma, con otras pantallas), etc. 2.3.2 Experiencia de usuario La experiencia de usuario o UX (User Experience) hace foco en el usuario y en la experiencia que se quiere lograr. Se refiere a lo que experimenta el usuario antes, durante y después de interactuar con el artefacto. Sin incorporar al usuario, no se puede hacer UX. Por eso, resulta fundamental en el diseño de la experiencia, comprender en primer lugar a los usuarios, sus verdaderas motivaciones y necesidades; considerar desde ese lugar qué interfaz, qué contenidos y qué interacciones lograrán el resultado buscado y finalmente, validar con usuarios los resultados que produce la interfaz propuesta. 2.3.3 Diseño de interacción El diseño de interacción o IxD (Interaction Desing) trata de definir las formas de operar la interfaz (por ejemplo, si el ingreso de información o selección se produce mediante teclado, mouse, touch, o una combinación de ellos), los flujos de operación y las respuestas del sistema. En definitiva, pone el foco en el contacto entre el usuario y el artefacto. 13 Figura 1. Interacción entre UI, UX e IxD. 2.4 Lenguajes para programación web Un lenguaje de programación es un idioma diseñado para expresar comandos que interpreta una máquina. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, expresar algoritmos con precisión, o como medio de comunicación humana. Está formado de un conjunto de símbolos, reglas sintácticas y semánticas que definen su estructura, el significado de sus elementos y expresiones. Con el comienzo de Internet y la programación web, se desfasaron los diseños gráficos tradicionales, con lo que se empezaron a diseñar interfaces concretas para este medio, buscando ficheros pequeños para facilitar la carga de los mismos. 2.4.1 HTML Es un lenguaje estático para el desarrollo de sitios web (HyperTextMarkup Language, en español Lenguaje de Marcas Hipertextuales). Es el lenguaje de marcas predominante para la elaboración de páginas web, es usado para describir la estructura y el contenido en forma de texto, así como para complementar el texto con objetos tales como imágenes. HTML se escribe en forma de etiquetas. HTML puede incluir un script, el cual puede afectar el comportamiento de navegadores web y otros procesadores de HTML. 14 HTML utiliza etiquetas o marcas, que consisten en breves instrucciones de comienzo y final, mediante las cuales se determinan la forma en la que debe aparecer en su navegador el texto, así como también las imágenes y los demás elementos en la pantalla del ordenador. Actualmente se cuenta con una quinta versión de este lenguaje, HTML5, como su nombre lo indica es la quinta revisión del estándar HTML y permite soportar lo último en multimedia, agrega elementos como video, audio y canvas, como así también integración para gráficos vectoriales (SVG) y MathML para fórmulas matemáticas. HTML5 es un candidato potencial para ser usado en aplicaciones multiplataforma móviles, incluso muchas de las características de este lenguaje fueron pensadas para ser ejecutadas en dispositivos de bajo consumo como tablets y teléfonos inteligentes. 2.4.2 PHP PHP (Hypertext Pre-processor) es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. No necesita ser compilado para ejecutarse. Para su funcionamiento se necesita tener instalado Apache o IIS con las librerías de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas características específicas. Los archivos cuentan con la extensión “*.php”. Soporta en cierta medida la orientación a objetos, clases y herencia. Es un lenguaje multiplataforma: Linux, Windows, entre otros. Tiene la capacidad de conexión con la mayoría de los manejadores de base de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras. Es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Su diseño está orientado a facilitar la creación de páginas Web, dando la posibilidad de crear aplicaciones con una interfaz gráfica para el usuario. 15 Figura 2. Interacción de PHP en un servidor web. Cuando el cliente hace una petición al servidor para que le envíe una página web, el servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado que generará el contenido de manera dinámica. El resultado es enviado por el intérprete al servidor, quien a su vez se lo envía al cliente. Mediante extensiones es también posible la generación de archivos PDF, Flash, así como imágenes en diferentes formatos. Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite. Tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos, tales como UNIX (como Linux o Mac OS X) o Windows y puede interactuar con los servidores web más populares ya que existe en versión CGI, módulo para Apache e ISAPI. Es libre, por lo que se presenta como una alternativa de fácil acceso. 2.4.3 CSS Las hojas de estilo en cascada (Cascading Style Sheets) o CSS, son un lenguaje usado para definir la presentación de un documento estructurado escrito en HTML y/o XML( por extensión en XHTML). La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un documento de su presentación. La información de estilo puede ser adjuntada tanto como un documento separado o en el mismo documento HTML. 16 2.4.4 JavaScript Este es un lenguaje interpretado que no requiere compilación. JavaScript es un lenguaje de scripting basado en objetos, utilizado para acceder a objetos en aplicaciones; principalmente se utiliza integrado en un navegador web permitiendo el desarrollo de interfaces de usuario mejoradas y páginas web dinámicas. El uso más común de JavaScript es escribir funciones embebidas o incluidas en páginas HTML y que interactúan con el Document Object Model (DOM o Modelo de Objetos del Documento) de la página. Javascript puede incluirse en cualquier documento y es compatible con HTML en el navegador del cliente, ya sea PHP, Active Server Pages, ASP, JSP y SVG. 2.5 Bases de datos Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. Estas funcionan como una fuente central de datos significativos, los cuales son compartidos por numerosos usuarios de diversas aplicaciones. La organización de estas debe tener una lógica coherente, conservando siempre su integridad y seguridad al margen de las interacciones de ambos lados. En una base de datos las entidades y atributos del mundo real, se convierten en registros y campos. Las entidades pueden ser objetos materiales, personas, incluso conceptos e ideas abstractas. Cada una de estas entidades posee atributos y mantiene relaciones con otras. 2.5.1 El modelo relacional Una base de datos relacional es una colección de datos relacionados mediante tablas lógicas, siendo una tabla un conjunto de filas y columnas. El modelo relacional se basa en conceptos básico sencillos (dominio, relación, atributo). La implementación de la base de datos se facilita mediante un lenguaje declarativo (no procedimental) sencillo, basado en la lógica de conjuntos. Los sistemas de gestión de bases de datos relacionales administran de forma independiente el nivel lógico (objetos o entidades) y el nivel físico (archivos). 17 El éxito del modelo procede fundamentalmente de esta característica. Con estos sistemas, el usuario sólo gestiona el nivel lógico, lo que proporciona una gran simplicidad a la gestión de datos, incluso en el caso de usuarios con pocos conocimientos informáticos. 2.5.2 Sistemas manejadores de bases de datos Existen programas denominados sistemas gestores de bases de datos (en inglés, Data Base Management System), son un tipo software muy específico (dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan) que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las funciones principales de un DBMS son: Crear y organizar la base de datos. Establecer y mantener las trayectorias de acceso a la base de datos, de tal forma que se pueda acceder a los datos rápidamente. Manejar los datos de acuerdo a las peticiones de los usuarios. Registrar el uso de las bases de datos. Interacción con el manejador de archivos. Esto a través de las sentencias en DML (lenguaje de manipulación de datos) al comando del sistema de archivos. Así el manejador de base de datos es el responsable del verdadero almacenamiento de los datos. Respaldo y recuperación. Consiste en contar con mecanismos implantados que permitan la recuperación fácilmente de los datos en caso de ocurrir fallas en el sistema de base de datos. Control de concurrencia. Consiste en controlar la interacción entre los usuarios concurrentes para no afectar la inconsistencia de los datos. Seguridad e integridad. Consiste en contar con mecanismos que permitan el control de la consistencia de los datos evitando que estos se vean perjudicados por cambios no autorizados o previstos. 18 2.5.3 Lenguaje SQL SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo (de alto nivel) de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales. Permite realizar tareasde administración de datos básicas (agregar, eliminar y modificar), realizar consultas complejas diseñadas para transformar los datos sin procesar en información útil. Realiza funciones básicas con un mínimo esfuerzo del usuario, su estructura y sintaxis de comandos es muy fácil de aprender. Todas las funciones SQL encajan en dos categorías: Es un lenguaje de definición de datos, es decir, que incluye comandos para crear, editar o eliminar las estructuras de tabla de base de datos, así como también para definir derechos de acceso a la base de datos. Es un lenguaje de manipulación de datos, es decir, que incluye comandos para insertar, actualizar, eliminar y recuperar datos dentro de las tablas de base de datos. Además de comandos, el lenguaje SQL está compuesto por cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. Sin embargo, SQL no se puede utilizar para implementar toda la lógica de negocios y la funcionalidad que el usuario final necesita en nuestras aplicaciones. Esto nos lleva a PL/SQL. PL/SQL significa Procedural Language/Structured Query Language (una extensión de programación estructurada sobre SQL). PL/SQL ofrece un conjunto de instrucciones clásicos de la programación estructurada (instrucción condicional IF, loops o iteraciones, asignaciones), organizado dentro de bloques (lo que se explica más adelante), que complementan y amplían el alcance de SQL. Sin duda que es posible crear aplicaciones sobre SQL sin usar PL/SQL, sin embargo, utilizar PL/SQL para realizar operaciones específicas de bases de datos, particularmente la ejecución de sentencias SQL, ofrece varias ventajas, incluyendo una estrecha integración con SQL, un mejor rendimiento a través del tráfico de red reducido, y la portabilidad. Por lo tanto, el código del front- end de muchas aplicaciones ejecuta tanto sentencias SQL como bloques PL/SQL, para maximizar el rendimiento al tiempo que mejora la capacidad de mantenimiento de las aplicaciones. 19 2.5.4 MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario desarrollado como software libre y gestionado por distintos lenguajes de programación. Permite la creación de cualquier sistema de registro de usuarios y funcionalidades avanzadas de un proyecto web. Utiliza un sistema de administración relacional de bases de datos, archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo lo que permite flexibilidad y velocidad. Las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas. Existen varias APIs que permiten acceder a las bases de datos MySQL, incluyendo C, C++, C#, Pascal, Delphi(via dbExpress), Eiffel, Smalltalk, Java(con una implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby, Gambas, REALbasic(Mac y Linux), (x)Harbour (Eagle1), FreeBASIC, Tcl, entre otras. También existe un interfaz ODBC, llamada MyODBC que permite a cualquier lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL. 2.6 Aplicaciones web Son aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es un software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador. Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los web mails, wikis, web blogs, tiendas en línea y la propia Wikipedia que son ejemplos bien conocidos de aplicaciones web. Es importante mencionar que una página web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo. 20 Ventajas Ahorra tiempo. Se pueden realizar tareas sencillas sin necesidad de descargar ni instalar ningún programa. Se evitan problemas de compatibilidad. Basta tener un navegador actualizado para poder utilizarlas. No ocupan espacio en nuestro disco duro o almacenamiento principal. Actualizaciones inmediatas. Como el software lo gestiona el propio desarrollador, cuando nos conectamos estamos usando siempre la última versión que haya lanzado. Bajo consumo de recursos. Dado que toda (o gran parte) de la aplicación no se encuentra en nuestro ordenador, muchas de las tareas que realiza el software no consumen recursos nuestros porque se realizan desde otro ordenador. Multiplataforma. Se pueden usar desde cualquier sistema operativo porque sólo es necesario tener un navegador. Portables. Es independiente del ordenador donde se utilice (un computador de sobremesa, un portátil, etc.) porque se accede a través de una página web (sólo es necesario disponer de acceso a Internet). La reciente tendencia al acceso a las aplicaciones web a través de teléfonos móviles requiere sin embargo un diseño específico de los ficheros CSS para no dificultar el acceso de estos usuarios. La disponibilidad suele ser alta porque el servicio se ofrece desde múltiples localizaciones para asegurar la continuidad del mismo. Colaboración. Gracias a que el acceso al servicio se realiza desde una única ubicación es sencillo el acceso y compartición de datos por parte de varios usuarios, por ejemplo, en aplicaciones online de calendarios u oficina. Los navegadores ofrecen cada vez más y mejores funcionalidades para crear aplicaciones web. 21 Inconvenientes Habitualmente ofrecen menos funcionalidades que las aplicaciones de escritorio. Esto se debe a que las funcionalidades que se pueden realizar desde un navegador son más limitadas que las que se pueden realizar desde el sistema operativo. La disponibilidad depende de un tercero, el proveedor de la conexión a Internet o el que provee el enlace entre el servidor de la aplicación y el cliente. Así que la disponibilidad del servicio está supeditada al proveedor. La aplicación web desaparece si así lo requiere el desarrollador o si el mismo se extingue. Las aplicaciones tradicionales, en general, pueden seguir usándose en esos casos. El usuario, en general, no tiene libertad de elegir la versión de la aplicación web que quiere usar. Un usuario podría preferir usar una versión más antigua, hasta que la nueva sea probada. El servidor debe tener las prestaciones necesarias para ejecutar la aplicación de manera fluida, no sólo para un usuario sino para todos los que la utilicen de forma concurrente. La necesidad de seguridad en los procedimientos usados para compartir o manejar información en la Internet se vuelve más importante. Por lo que es necesario contar con mecanismos o procedimientos que permitan mantener la integridad y privacidad de la información. El espacio de almacenamiento puede ser limitado, por lo que hay que considerar o estimar el tamaño de datos que alojara la aplicación en el servidor. 2.7 Servicios web Los “web services” (servicios web o servicio de aplicaciones) son servicios (generalmente una combinación entre datos y programación, en ocasiones incluyendo recursos humanos) que están disponibles desde un servidor web para los usuarios u otros programas conectados a la web. Estos servicios van desde la gestión de almacenamiento, gestión de relacionescon clientes (CRM) hasta los servicios limitados como una cotización o consulta de valores de algún producto. La 22 rápida creación y disponibilidad de estos servicios ha sido una de las principales tendencias de la web. El uso que se aborda en este documento es la posibilidad de explotar una situación comunicacional emitida por un emisor oficial haciéndose llegar a todo receptor que cuente con una aplicación que funja como receptor de mensajes, sin necesidad de conocer los detalles de sus respectivos sistemas de información. Los usuarios pueden acceder a estos servicios a través de la comunicación punto a punto. Algunos servicios pueden comunicarse con otros web services e intercambiar, procesar y devolver consultas de información generalmente habilitados por una clase de software conocida como middleware. Como preocupaciones del uso o implementación de estos servicios, se incluyen las demandas sobre el ancho de banda, así como la disponibilidad de red y el rendimiento del servidor, ya que este tendrá que responder tantas solicitudes como a número de usuarios o clientes que accedan a la información. Estos servicios pueden ser clasificados en dos tipos: SOAP: acrónimo de “Protocolo Simple de Acceso a Objetos”. Describen una forma estandarizada de integrar aplicaciones web mediante el uso de XML, SOAP, WSDL y UUDI sobre los protocolos de la Internet. XML es usado para describir los datos, SOAP se ocupa para la transferencia de datos, WSDL se emplea para describir los servicios disponibles y UUDI se ocupa para conocer cuáles son los servicios disponibles. REST: acrónimo de “Transferencia de Representación de Estado”. Esto significa que el estado necesario para manejar una petición está contenido dentro de la propia solicitud, ya sea como parte de la URI, parámetros de query-strings, cuerpo o cabeceras. De ahí el nombre, el estado lo mantiene el cliente y por lo tanto es el cliente quien debe pasar el estado en cada llamada. A diferencia de los modelos cliente/servidor, tales como un servidor de páginas web, los web services no proveen al usuario una interfaz gráfica (GUI), en vez de ello, estos servicios comparten la lógica del negocio, los datos y los procesos, por medio de una interfaz de programas a través de la red. Es decir, conectan programas, por tanto son programas que no interactúan directamente con los usuarios. Los desarrolladores pueden por consiguiente agregar a los servicios web la 23 interfaz para usuarios, por ejemplo, mediante una página web o un programa ejecutable con fin de entregarles a los usuarios una funcionalidad específica que provee un determinado servicio web. Además, permiten a distintas aplicaciones, de diferentes orígenes, comunicarse entre ellos sin necesidad de escribir programas costosos, esto porque la comunicación se hace con XML. Los web services no están ligados a ningún sistema operativo o lenguaje de programación. Por ejemplo, un programa escrito en Java puede conversar con otro escrito en Pearl; aplicaciones de Windows pueden conversar con aplicaciones Unix. Por otra parte los servicios web no necesitan usar browsers (navegadores o exploradores de Internet) ni el lenguaje de especificación HTML. 2.7.1 Arquitectura orientada a servicios La arquitectura orientada a servicios, (en inglés Service Oriented Archiecture), es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio. Esta estructura separa las funciones en unidades distintas o servicios. Estos son publicados a través de la red de manera que los usuarios puedan combinarlos y reciclarlos en la producción de aplicaciones. Utilizar un servicio, es generalmente más barato y efectivo que hacer el trabajo por uno mismo. Los siguientes puntos, definen las reglas para el desarrollo, mantenimiento y uso de la arquitectura orientada a servicios: Reutilizable, granularidad, modularidad, integrable, separación en componentes e interoperabilidad. Apego a estándares comunes y específicos a la industria. Identificación y categorización de servicios, entrega y monitoreo Lo siguientes principios se enfocan en temas específicos que alteran el comportamiento de un sistema y su diseño: 24 Encapsulación. Cada servicio oculta sus propios métodos y datos de manera que solo este mismo puede procesar mediante las operaciones definidas por la lógica. Acoplamiento mínimo. Los servicios mantienen una relación que minimice las dependencias y requiere solo que los servicios conozcan la existencia mutua. Contrato. Los servicios se apegan a un acuerdo de comunicaciones definido por documentos descriptivos de uno o más negocios. Abstracción. Más allá de lo descrito en el contrato de servicio, la lógica se esconde del resto del mundo. Re-usabilidad. La lógica se divide en servicios con la intención de promover y facilitar el re- uso. Capacidad de composición. Colecciones de servicios pueden ser coordinados y ensamblados para formar servicios compuestos. Autonomía. Los servicios tienen control sobre la lógica que encapsulan. Optimización. Si todo lo demás es igual, un servicio de mayor calidad es preferible a uno de menor calidad. Relevancia. La funcionalidad se presenta en una granularidad reconocida por el usuario como servicio de valor. 2.7.2 SOAP web service Los servicios SOAP están construidos con varias tecnologías que trabajan conjuntamente con los estándares que están emergiendo para asegurar la seguridad y operatividad, de modo de hacer realidad que el uso combinado de varios web services, independiente de la o las empresas que los proveen, este garantizado. A continuación se describen brevemente los estándares que ocupan los servicios basados en SOAP: 25 XML. Abreviación de Extensible Markup Language. El XML es una especificación desarrollada por W3C. Permite a los desarrolladores crear sus propios tags, que les permiten habilitar definiciones, transmiciones, validaciones e interpretación de los datos entre aplicaciones y entre organizaciones. SOAP. Abreviación de Simple Object Access Protocol. Es un protocolo de mensajería construido en XML que se usa para codificar información de los requerimientos de los servicios web y para responder los mensajes antes de enviarlos por la red. Los mensajes SOAP son independientes de los sistemas operativos y pueden ser transportados por los protocolos que funcionan en la Internet, como son SMTP, MIME y HTTP. WSDL. Abreviación de Web Services Description Language. Es un lenguaje especificado en XML que se ocupa para definir los web services como colecciones de punto de comunicación capaces de intercambiar mensajes. El WSDL es parte integral de UDDI y parte del registro global de XML, en otras palabras es un estándar de uso público (no se requiere pagar licencias para usarlo). UDDI. Abreviación de Universal Description, Discovery and Integration. Es un directorio distribuido que opera en la web. Permite a las empresas publicar sus servicios web para que otras empresas conozcan y utilicen los web services que publican. Opera de manera análoga a las páginas amarillas. Los servicios web SOAP, utilizan mensajes XML para intercomunicarse que siguen el estándar SOAP , un lenguaje XML que define la arquitectura y formato de los mensajes. Dichos sistemas normalmente contienen una descripción legible por la máquina de la descripción de las operaciones ofrecidas por el servicio, escrita en WSDL , que es un lenguaje basado en XML para definir las interfaces sintácticamente. El diseño de un servicio basado en SOAP debe establecer un contrato formal para describir la interfaz que ofrece el servicio Web. WSDL puede utilizarse para describir los detalles del contrato, que pueden incluir mensajes, operaciones, bindings,y la localización del servicio Web. 26 Entre las ventajas o beneficios del uso o implementación de estos servicios web destacan: Fomentan estándares y protocolos basados en texto que hacen más fácil acceder a su contenido y entender su funcionamiento. Al apoyarse en HTTP, pueden aprovecharse de los sistemas de seguridad firewall sin necesidad de cambiar las reglas de filtrado. Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados. Permiten la interoperabilidad entre plataformas de distintos fabricantes por medio de protocolos estándar y abiertos, por tanto se garantiza la plena interoperabilidad entre aplicaciones. UUDI Encontrar WSDL Describir SOAP Invocar XML, XML Schema Datos HTTP, SMTP, TCP Transporte Ofrece un directorio de servicios en Internet. Ofrece un modo de definir los servicios. Permite invocar métodos de los servicios. Permite a los consumidores de servicios enviar y recibir mensajes a y de los servicios. Son protocolos abiertos de Internet. Dan soporte a las capas superiores. Figura 3. Estructura de SOAP web service. 27 2.7.3 REST web service Este tipo de servicio está basado en el concepto de “recurso”. Un recurso es cualquier cosa que contenga una URI. Este recurso puede tener cero o más representaciones, usualmente se dice que este no existe si no hay ninguna representación disponible para el recurso. Los servicios web de tipo REST requieren poco soporte de infraestructura aparte de las tecnologías HTTP y XML, populares en lenguajes y plataformas de programación. Estos servicios son simples y efectivos dado que HTTP es la interface más ampliamente disponible y es suficiente buena para la mayoría de las aplicaciones. Un servicio REST debe de cumplir con los siguientes requisitos: Se limitan a los métodos HTTP como son: GET (para obtener un recurso), DELETE (para eliminar un recurso), POST (para crear un recurso en el servidor) y PUT (para cambiar el estado de un recurso o actualizarlo). La mayoría de los mensajes están en XML, confinados por un esquema escrito con un lenguaje de esquema. Los mensajes pueden ser codificados en formato URL. Los servicios y proveedores de REST deben de ser recursos, mientras que un cliente puede ser un recurso. Un concepto importante en REST es la existencia de recursos (elementos de información), que pueden ser accedidos utilizando un identificador global (un Identificador Uniforme de Recurso). Para manipular estos recursos, los componentes de la red (clientes y servidores) se comunican a través de una interfaz estándar (HTTP) e intercambian representaciones de estos recursos. La petición puede ser transmitida por cualquier número de conectores (por ejemplo clientes, servidores, cachés, túneles, etc.) pero cada uno lo hace sin "ver más allá" de su propia petición lo que se conoce como stateless (sin estado). 28 Cabe destacar que REST no es un estándar, ya que es tan solo un estilo de arquitectura. Los objetivos de este estilo de arquitectura se listan a continuación: Escalabilidad de la interacción con los componentes. Una prueba de ellos es la variedad de clientes que pueden acceder a través de la web: estaciones de trabajo, sistemas industriales, dispositivos móviles, etc. Generalidad de interfaces. Gracias al protocolo HTTP, cualquier cliente puede interactuar con cualquier servidor HTTP sin ninguna configuración especial. Puesta en funcionamiento independiente. Este hecho es una realidad que debe tratarse cuando se trabaja en Internet. Los clientes y servidores pueden ser puestos en funcionamiento durante años. Por tanto, los servidores antiguos deben ser capaces de entenderse con clientes actuales y viceversa. Compatibilidad con componentes intermedios. Los más populares intermediaros son varios tipos de proxys , firewalls y gateways, GET POST PUT DELETE Lenguaje de programación. (JAVA, PHP, ASP) XML Figura 4. Composición de un REST web service. 29 2.8 Comparación de tecnologías 2.8.1 Servidores Web Según el artículo “September 2015 Web Server Survey” en el sitio de la empresa NetCraft (compañía de servicios de Internet, ofrecen análisis de cuota de mercado de servidores y alojamiento web, incluyendo la detección del tipo de servidor web y de sistema operativo) en la encuesta de agosto 2015 recibieron respuestas de 874,408,576 sitios y 5,391,301 computadoras orientadas a la web. Este año nuevamente, Apache ha liderado el mercado de los servidores y sitios web, situación que ha llevado a que no solo se compita entre servidores web, sino también entre lenguajes de programación; ya que ahora no se hacen páginas web, se escriben aplicaciones web por lo que es casi imposible separar un lenguaje de programación del servicio web que lo provee. (http://news.netcraft.com/archives/2015/09/16/september-2015-web-server-survey.html). Figura 5. Mercado de servidores hasta Agosto 2015. 30 2.8.2 Lenguaje Web Si bien Apache ha reducido su cuota de participación a nivel global, esta no ha sido tomada por Microsoft sino por otros servidores como Nginx y otros fuertemente ligados al lenguaje PHP e incluso a otros lenguajes, por lo tanto, la participación de PHP en el Internet es de al menos un 60% y la de C# de un máximo de 30%, el resto será para Ruby, Python, etc. Figura 6. Servidores según la respuesta de sitios web. Entre mi elección de lenguaje, resulta a mi preferencia PHP para el desarrollo tanto del sitio (en conjunto con el estándar HTML) como del servicio. Hoy en día no existe alguna solución web que no se haya escrito para PHP, graficas de diferente tipo: barras, pasteles, líneas, etc., conectores de bases de datos, renderizadores de archivos para el formato que se requiera, cifradores RSA y otros, manejo de sockets en IPV4 e IPV6 todo eso y más está a unas cuentas líneas de código. Agregando la ventaja que PHP es un lenguaje multiplataforma, complemente orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una base de datos. Como desventaja que encuentro en PHP, es la capacidad de depurar una aplicación web con un IDE como Visual Studio y por supuesto el IDE en sí mismo. 31 2.8.3 Base de datos No solo el lenguaje de programación está ligado al tipo de servidor, actualmente los servidores con Apache han optado por ofrecer algún servicio de base de datos, como lo son MySQL o PostgreSQL. PostgreSQL tiene prácticamente todo lo que tienen los gestores comerciales, haciendo de él una muy buena alternativa GPL. La velocidad de respuesta que ofrece este gestor con bases de datos relativamente pequeñas puede parecer un poco deficiente, aunque esta misma velocidad la mantiene al gestionar bases de datos realmente grandes, cosa que resulta notable. Figura 7. Comparación de distintos gestores de bases de datos Hoy en día, muchos proyectos se ejecutarían tan bien en un sistema de base de datos como en el otro. Además, ambas opciones de código abierto ofrecen una dura competencia a sus alternativas de código cerrado y más costoso. 32 MySQL se ha enfocado tradicionalmente en aplicaciones web de lectura, usualmente escritas en PHP, donde la principal preocupación es la optimización de consultas sencillas, siendo este el más popular y al estar familiarizado resulta en el momento, mi mejor opción en conjunto con Apache y PHP. 2.8.4 Smartphones Smartphone es un término comercial para denominar a un teléfono móvil que ofrece más funciones que un teléfono móvil común. La característica más importante (una de ellas) de todos los teléfonos inteligentes es que cuentan con algún sistema operativo y permiten la instalación de programaspara incrementar sus posibilidades, como el procesamiento de datos y la conectividad. Estas aplicaciones pueden ser desarrolladas por el fabricante del dispositivo, por el operador o por un tercero. Entre los principales sistemas operativos para smartphone y que los fabricantes han optado por instalar en sus dispositivos se encuentran Android de Google, iOS de Apple y Windows Phone de Microsoft. La evolución de estos teléfonos inteligentes, tanto en funcionalidad como en precio, han permitido estar cada día más cerca de la población. En México, la Asociación Mexicana de Internet hizo la presentación de la actualización para 2015 del “Estudio de hábitos de los usuarios de Internet en México” durante la celebración del día mundial de Internet (17de mayo). Este estudio consiste en un análisis estadístico que busca identificar las características de los usuarios de la red en el país, conocer la demanda del mercado que requieren los servicios de Internet, saber las actividades que los mexicanos realizan en la red, y generar información para que las empresas puedan identificar sus mercados. Uno de los objetivos de esta 11ª edición del estudio es evaluar el peso y la evolución de las conexiones móviles en el universo de usuarios mexicanos. En el análisis del tipo de dispositivo utilizado para las comunicaciones digitales, si bien la laptop sigue siendo predominante, el segmento de los smartphones creció de 49% a 58%, desplazando a la computadora de escritorio a un tercer lugar (54%). 33 Figura 8. Los tres primeros dispositivos de acceso a Internet según la encuesta. En cuanto a los lugares en donde los usuarios se conectan, la gran mayoría lo hace desde el hogar (84%) al igual que el año pasado, seguido por el sitio de trabajo (42%). Destaca que la escuela detuvo su tendencia de reducción de ediciones anteriores, y ahora superó las cifras del año pasado con un 36%, (34% de 2014). Figura 9. Lugares habituales de conexión. 34 Para complementar esta hipótesis, se hizo un acercamiento específico a las características del empleo de los teléfonos inteligentes, mismo que revela un mayor uso de los móviles conectados a Internet: Para el 82% de los usuarios su smartphone es de suma importancia, contra sólo un 17% que le atribuye poca importancia. El 87% de los usuarios de un smartphone navega por Internet, el 79% hace búsquedas de información y el 77% recibe y envía correos electrónicos. En proporciones cercanas al 50%, revisan archivos, leen noticias y descargan material multimedia (música, fotos, videos). El 82% de los internautas ha descargado e instalado apps en su teléfono celular inteligente. Figura 10. Principales usos del smartphone. 35 Otra serie de datos con características singulares, se observa en las actividades que realizan los usuarios durante su conexión. Por primera vez en la historia, las redes sociales toman la vanguardia con un 85% de los internautas (en 2014 el uso principal era el correo electrónico), seguido por las búsquedas de Información (78%) y hasta el tercer lugar, el correo electrónico con un 73%. Al detallar en las actividades laborales, vemos que las diversas formas de empleo están mejor balanceadas: predomina el correo electrónico (65%), seguido por las búsquedas de información (62%), el envío y recepción de documentos (55%) y la comunicación por mensajería instantánea (30%). El 18 por ciento de los usuarios se conecta para administrar redes sociales empresariales. Figura 11. Principales actividades online. De manera muy distinta se muestra el uso de Internet para actividades de ocio y entretenimiento. El 83% de los usuarios se conecta a sus redes sociales y en rangos cercanos al 50%, el uso de Internet es para enviar correos, descargar materiales multimedia (música, fotos, videos), conversaciones mediante mensajería instantánea y visitar sitios de noticias. 36 2.8.5 Fabricantes y sistemas operativos Actualmente 92.8% de las visitas móviles a Internet en México provienen de los sistemas operativos iOS y Android, lo cual quiere decir que el 7.2% restante se lo pelean BlackBerry, Windows Phone y algunos más antiguos como Symbian. En general, Android, abarca poco más del 80% del mercado, mientras que el 10% se recae en iOS. Figura 12. Fabricantes de smartphones y sistemas operativos en el mercado mexicano. Android crece más y más rápido que ninguno de sus competidores. Esto puede parecer una obviedad (a fin de cuentas, Android cubre mucho más espectro de dispositivos que la competencia), pero es un factor importante, al empezar necesitas visibilidad, ¿y dónde mejor para que te vean que donde hay mucha más gente? Ocupando estos datos dispongo a desarrollar una aplicación móvil para la plataforma Android, dado que es el que sistema operativo con mayor presencia, independiente del fabricante del dispositivo, siendo esta la que realice las peticiones al servicio web y muestre la información de interés al alumno. 37 2.8.6 Servicios, aplicaciones o programas similares Producto Descripción Sitio Web Aplicación Móvil School control 1 Es una plataforma que ofrece a colegios y padres darle seguimiento al estudiante, en sus calificaciones, circulares, eventos, estadísticas, pagos y reportes entre otros. Si Android, iOS SesWeb 2 Es una plataforma de servicios web que permite a los alumnos, padres de familia, maestros y directivos de su plantel interactuar, comunicarse e informarse de una manera fácil y oportuna, logrando una convivencia virtual entre su comunidad escolar. Si No SIEL 3 Es un sistema escolar que facilita la comunicación entre los integrantes de la comunidad educativa mediante la publicación en línea de calificaciones, avisos, calendario escolar, tareas, guías de estudio, información general y medica con fotografías, control de colegiaturas y becas, etc. Si No PIZARRA ESCOLAR 4 Es una aplicación móvil para escuelas que facilita la gestión de sus estudiantes como son: los grupos, horarios, exámenes, calificaciones, avisos a los estudiantes, avisos para los padres de familia, control de pagos, avisos personalizados de falta de pagos, entre otros. Si Android Figura 13.Tabla comparativa de soluciones similares en el mercado. 1 http://www.schoolcontrol.com 2 http://www.exito.mx/sw.htm 3 http://www.informacionescolar.com/ 4 http://kaisa.com.mx/pizarraescolar.html 38 Existen en el mercado y en la actualidad productos enfocados al sector escolar, que prometen gestionar las actividades y procesos que involucran a estudiantes, padres de familia, maestros, personal administrativo y directivos, permitiéndoles revisar horarios, calificaciones, crear calendarios de eventos, mandar recordatorios o avisos, realizar pagos entre otros. La gran mayoría son sistemas “completos” que involucran todas las actividades y no pueden ser adquiridos por medio de módulos que se ajusten a las necesidades. A la vez, estos sistemas son más útiles a padres de familia que requieren supervisar el desempeño de sus hijos en sus escuelas, por lo que, a pesar de ser un sistema para cualquier nivel académico, tienen un mayor uso en niveles de preescolar, primaria y secundaria, niveles donde los padres de familia tienen la tutoría o responsabilidad de sus hijos. De los productos mencionados, “Pizarra Escolar” es el producto más cercano a la propuesta de solución descrita. El producto base es una interface web, suficiente para gestionar a los estudiantes y avisos a padres de familia. Al ser una plataforma web esta se encuentra disponible a teléfonos inteligentes por medio del navegador web integrado. Si es requerida, se proporciona la aplicación para la plataforma Android, prometiendo un fácil acceso. A diferencia de la propuesta mencionada
Compartir