Post on 17-Aug-2021
UNIVERSIDAD POLITÉCNICA DE SINALOA
PROGRAMA ACADÉMICO DE
INGENIERÍA EN INFORMÁTICA
Tesina
“Web Services en ERP Joyería CLG”
Para obtener la acreditación de las estadías
Profesionales y contar con los créditos para el grado
De Ingeniero en Informática.
Autor:
Vazquez Muñoz Jesús Fernando.
Asesor:
M.C Roberto Antonio Martínez Thompson
Asesor OR:
Ing. Daniel Omar Cuellar Álvarez
Mazatlán, Sinaloa 29 de septiembre del 2018.
Mazatlán, Sinaloa a 3 de septiembre del 2018
LIC. EDUARDO CRESPO CAMPA.
DIRECTOR DE VINCULACIÓN, DIFUSIÓN Y EXT. UNIVERSITARIA.
UNIVERSIDAD POLITÉCNICA DE SINALOA.
PRESENTE
Por este medio, hago de su conocimiento que el alumno(a) el C. Jesús Fernando
Vazquez Muñoz, con número de matrícula 2015030283, de la carrera de
Ingeniería en Informática, ha sido acepado para realizar su estadía práctica, en
esta empresa, durante el período que comprende del 3 de septiembre del 2018 al
7 de diciembre del 2018, para cubrir un total de 600 horas.
Dicho alumno realizará actividades dentro del área, programación, bajo la
supervisión del Ing. Daniel Omar Cuellar Álvarez, Gerente General de Alba
Soluciones.
Sin otro particular, le envío un cordial saludo.
Atte.
_______________________
Ing. Daniel Omar Cuellar Álvarez
Mazatlán, Sinaloa a 7 de diciembre del 2018
LIC. EDUARDO CRESPO CAMPA.
DIRECTOR DE VINCULACIÓN, DIFUSIÓN Y EXT. UNIVERSITARIA.
UNIVERSIDAD POLITÉCNICA DE SINALOA.
PRESENTE
Por este medio, hago de su conocimiento que el alumno(a) el C. Jesús Fernando
Vazquez Muñoz, con número de matrícula 2015030283, de la carrera de Ingeniería
en Informática, ha cumplido con 600 horas correspondientes a estadía final, en
esta empresa, durante el período que comprende del 3 de septiembre del 2018 al
7 de diciembre del 2018.
Dicho alumno realizó actividades dentro del área, Programación, bajo la
supervisión del Ing. Daniel Omar Cuellar Álvarez, Gerente General de Alba
Soluciones.
Sin otro particular, le envío un cordial saludo.
Atte.
_______________________
Ing. Daniel Omar Cuellar Álvarez
AGRADECIMIENTOS
Agradezco a mi padre Fernando Vazquez Luna y a mi madre Sandra
Elizabeth Muñoz por el apoyo moral que me brindaban día a día, tanto así como en
lo económico; por preocuparse por que tuviera todo lo necesario para poder realizar
mis trabajos de manera cómoda y de mejor calidad posible, al igual en proyectos
en la Universidad Politécnica de Sinaloa. También una gratitud a miembros de mi
familia que me apoyaron en mi carrera, dando apoyos y brindando con su ayuda en
esos momentos que lo necesitaba durante mi carrera.
Agradezco a mis compañeros de clases que me apoyaron, guiaron,
aconsejaron en esos momentos que lo necesitaba. Al igual un agradecimiento
especial para mi equipo de trabajo dentro de la universidad que me apoyaron tanto
moralmente como en equipo en todos los proyectos y trabajos de nuestra carrera.
A mi asesor de tesina M.C Roberto Antonio Martínez Thompson que me
compartió la información necesaria y me guio en el desarrollo como también en el
contenido y estructura de esta tesina, para que cumpliera con todo los puntos
necesarios para acreditar y mantener una calidad buena en mi tesina universitaria.
A la Universidad Politécnica de Sinaloa que me brindo muchas oportunidades
para desarrollarme profesionalmente en mi carrera de ingeniería en informática; a
mi director de carrera el Dr. Rodolfo Ostos por la atención, preocupación,
amabilidad, honestidad y por todos esos consejos que brindo no solamente a mi si
no a cada alumno de mis compañeros de mi generación. Sin olvidar a todos los
maestro que influenciaron en mi carrera en brindarme todos los conocimientos,
apoyos, consejos y experiencias personales que me ofrecieron día a día en la
universidad.
Por último y menos importante agradezco a la organización ALBA Soluciones
que me abrió las puertas de su empresa para poder realizar mis estadías
universitarias y por la confianza que me entrego al involucrarme en varios de sus
proyectos como también por la atención que me dedico en esos momentos donde
no comprendía sobre tema y ellos me guiaron, por la toma de decisiones que logre
al estar allí y por todo lo que aprendí estando allí, toda esa experiencia conseguida
en ALBA Soluciones.
ÍNDICE TEMÁTICO
ÍNDICE DE IMÁGENES ...................................................................................... 1
ÍNDICE DE FOTOGRAFÍAS ............................................................................... 2
ÍNDICE DE TABLAS .......................................................................................... 2
RESUMEN .......................................................................................................... 3
ABSTRACT ........................................................................................................ 4
INTRODUCCIÓN ................................................................................................ 5
CAPÍTULO-I ......................................................................................................... 6
ANTECEDENTES Y PLANTEAMIENTO DEL PROBLEMA .............................. 6
1.1 Antecedentes ............................................................................................... 7
1.1.1 Localización .......................................................................................... 8
1.1.2 Objetivos de la institución ................................................................... 9
1.1.3 Organigrama ......................................................................................... 9
1.1.4 Misión .................................................................................................. 10
1.1.5 Visión ................................................................................................... 10
1.2 Planteamiento del problema ................................................................. 11
1.2.1 Propuesta de la investigación ........................................................... 11
1.2.2 Objetivos de la investigación ................................................................ 12
1.2.3 Preguntas de la investigación ........................................................... 14
1.2.4 Hipótesis ............................................................................................. 14
1.2.5 Limitaciones y supuestos .................................................................. 14
1.2.5 Relevancia ........................................................................................... 15
CAPÍTULO II ........................................................................................................ 16
2.1 Marco conceptual. ..................................................................................... 17
2.1.1 ¿Qué son los web service? .............................................................. 17
2.1.1 ¿Para qué sirven los Web Services? ............................................... 19
2.1.2 Protocolos de los Web Services. ...................................................... 20
2.1.2.1 Componentes de los Web Services. .............................................. 22
2.1.2.2 Arquitectura de los Web Services. ................................................. 23
2.1.2.3 Como funciona un Web Service. .................................................... 24
2.1.2.3 Que es XML. ..................................................................................... 24
2.1.3 Angular ................................................................................................ 25
2.1.6 MongoDB ............................................................................................. 28
2.1.7 Visual Studios ..................................................................................... 30
2.1.8 Inspección de elementos del navegador Google Chrome .............. 31
2.2 El estado del arte ...................................................................................... 32
CAPÍTULO-III ..................................................................................................... 34
3.1 – Diseño .................................................................................................... 35
3.2 – Desarrollo ............................................................................................... 40
3.2.1 – Herramientas de desarrollo ............................................................ 41
3.2.3 – Diseño de interfaces ........................................................................ 45
3.2.4 – Primeros pasos del desarrollo de los métodos web services ..... 48
CONCLUSIONES ............................................................................................. 54
BIBLIOGRAFÍA ................................................................................................ 56
GLOSARIO ....................................................................................................... 58
1
ÍNDICE DE IMÁGENES
Imagen 2.1: mapa de estandarización con web services……………………… 30
Imagen 2.2: estructura de los componentes de un Web Service…….……… 31
Imagen 3.1: Ciclo de desarrollo ágil ……………………………………………… 46
Imagen 3.2: ciclo principal de Scrum……………………………………..……… 46
Imagen 3.3: fases de la metodología XP…………………………………………. 47
Imagen 3.7: conceptualización de la metodología SMART……..……………. 48
Imagen 3.8: isologotipo de Angular……………………………………………….. 50
Imagen 3.9: Isotipo de Frameworks PrimeNG…………………………………… 51
Imagen 3.10: Isologitipo de Angular………………………………………………. 51
Imagen 3.11: Isotipo de mongoDB………………………………………………… 52
Imagen 3.12: Isotipo de Visual Studio con C#……………………...…………… 53
Imagen 3.13: logo del navegador Google Chrome ……………..……………… 54
imagen 3.14- Diseño de la pantalla grupo componente….……………………. 55
Imagen 3.15: Diseño de la pantalla pureza………………..….………………….. 55
Imagen 3.16: Diseño de la pantalla usuario……………….…………………….. 56
Imagen 3.17: Diseño de la pantalla Almacén……………………………………. 56
Imagen 3.18: Diseño de la pantalla artículos……..…………………………….. 56
Imagen 3.19: creación de web service en consulta…….……………………... 57
Imagen 3.20: conexión de Web Service a la BD……..…………………………. 58
Imagen 3.21: Base de datos no relaciona…………..………………………….... 58
Imagen 3.22: Sintaxis de programación………………………………………… 59
2
Imagen 3.23: Petición del web service………………………………………….. 59
ÍNDICE DE FOTOGRAFÍAS
Fotografía 1.1- Fachada del edificio principal..................................................8
Fotografía 1.2- Ubicación ALBA soluciones desde Google Maps………..….9
ÍNDICE DE TABLAS
Tabla 1.1- Estructura organizacional de ALBA Soluciones……………..…….9
Tabla 3.1: Encuesta por la calidad del sistema………………………….…….. 49
Grafica 3.2: Resultado de un sistema de información Web Services……... 50
Grafica 3.3: Estación de tiempo con Web Services y sin Web Services…. 51
3
RESUMEN
El presente documento ha sido realizado por el estudiante Jesús Fernando
Vazquez Muñoz con la finalidad de concluir con sus estudios de ingeniería en la
Universidad Politécnica de Sinaloa, el tema abordado es del tema “Web Services
en ERP Joyería CLG”, en el cual se habla sobre temas de los web services, tales
como su importancia en los sistemas de información, las ventajas que tienen en
todos los dispositivos, las ventajas en el área informática actual y en las distintas
áreas donde se puede utilizar este tipo de tecnología.
Al igual que se habla sobre el proyecto desarrollado que es un sistema de
información de planeamiento de recursos empresariales (ERP), el cual está
dedicado al Grupo Cielito Lindo (CLG). Con la finalidad de que el grupo de cielito
lindo lleve su punto de venta, inventarios y sucursales de joyerías unificadas en un
mismo sistema general.
Se habla sobre la importancia que se tiene al utilizar la tecnología de los web
services como el núcleo del sistema de información, para la importancia de los
dispositivos que se puede adaptar utilizando los mismos métodos generales al igual
que la misma base de datos y las mismas peticiones hacia el web services.
Web Services en ERP Joyería CLG.
4
ABSTRACT
The present document has been made for the student Jesus Fernando
Vázquez Muñoz with the purpose of concluding with his studies of engineering in
the Polytechnic University of Sinaloa, the topic of "Web services in ERP Jewelry
CLG", in which the themes of Web services, stories as their importance in
information systems, the advantages we have in all devices, the advantages in the
current IT area and the different areas where this type of technology can be used.
As we talk about the project, we have developed an information system for business
resource planning (ERP), which is dedicated to the Cielito Lindo Group (GLC). With
the purpose that the Grupo Cielito Lindo carry out a point of sale, inventories and
branches of unified jewelries in the same general system.
There is talk about the importance of the use of web services technology as the core
of the information system, for the importance of the devices that can be used in the
general media, as well as the same database and databases. Same requests for
web services.
Web Services at ERP Joyería CLG.
5
INTRODUCCIÓN
En la actualidad los sistemas de información son clave para los negocios,
organizaciones, empresas, día con día evolucionan desde su manera de trabajo
hasta las funciones que realiza cada uno de ellos. Los sistema de información como
de planeamiento de recursos empresariales (ERP) facilitan los recursos digitales de
una organización y actualmente la gran mayoría de las empresas utilizan un sistema
de información el cual optimiza todo su sistema.
En los sistemas de información de Planeamiento de Recursos Empresariales
(ERP) al utilizar web services como base, simplifica y unifica a todo en el sistema
de información sobresaliendo el uso de todas sus funciones realizadas desde su
web service hacia todo el sistema, al igual que el acceso a una sola base de datos
para cualquier tipo de dispositivo, tal como en otros sistemas de información sin
web services no se logra hacer la unificación de la misma base de datos. El alto
rendimiento y la calidad que brinda un web service, optimaliza aún más el
funcionamiento sobre los catálogos en cual contendrá todo el sistema de
información. Una sobresaliente de un web service, es el uso dinámico que se le
puede realizar en sus funciones generales, que todo el cuerpo de informática utiliza
los mismo métodos de programación evitando y reduciendo el margen de error, al
igual de la dependencia de un catálogo a otro ya que cada miembro del cuerpo de
informática tendrá la capacidad de poder realizar cualquier tipo de catálogo
utilizando los mismos parámetros.
Los web services, son construidos de manera personal o con ayuda de
Frameworks, que ayudan al soporte dentro del área de programación, esto
framework pueden ser tales como (node.js, NET framework, Java WS, Zend
Framework, Apache Axis, entre punto).
6
CAPÍTULO I
ANTECEDENTES Y PLANTEAMIENTO DEL PROBLEMA
7
1.1 Antecedentes
La empresa ALBA Soluciones es una empresa fundada en el año 2017, por
un grupo de 3 amigos de nombre “Daniel Omar Cuellar, José Cruz Paredes,
Eduardo Guerra Bogadillas, tras conocerse durante años y ser del área de
informática decidieron juntar y crear una empresa donde surgió ALBA Soluciones.
ALBA Soluciones al principio no tenían un lugar físico, en el cual podían
juntarse, al igual ya que ellos tenían otros trabajos cada uno, eso no les impidió para
poder trabajar en sus propios proyectos y su nueva empresa. En su tiempo uno de
los obstáculos más difíciles era el tiempo, ya como ellos tenían responsabilidades
en sus otros trabajos, el tiempo de reuniones era muy corto o en ocasiones llego
hacer en horarios muy tarde eso no evito poder trabajar arduamente. Otro de los
factores importantes era el nombre para la empresa, algunos nombres que
proponían no eran buenos o ya existían, hasta que en un momento en una junta de
negocios un cliente pregunto por su nombre empresarial al cual uno de manera
rápida e insegura contesto, ALBA Soluciones, el cual el cliente maravillado contesto
“Una palabra con un excelente significa, un nuevo amanecer” desde ese momento,
ellos desde entonces se estableció a la empresa como ALBA Soluciones.
En ALBA Soluciones se acordó cuáles serían los roles de cada miembro en la
empresa, quedando como Daniel Cuellar como en área de análisis de información y a
José Paredes y Eduardo Bonilla como programadores, entre ellos el cual ante los clientes
se presentaran como otro rol, para la imagen de la empresa, solo que al darse cuenta
que les faltaba alguien que vendiera las ideas fue que llamaron a un amigo de ellos para
integrarse al equipo de trabajo, fue así de que se integró a Iván Peña como el encargo
de marketing y ventas.
8
1.1.1 Localización
ALBA soluciones se encuentra ubicada en Av. Del Delfín #82128, Colonia
Infonavit playas, en Mazatlán Sinaloa México. .
Fotografía 1.1- Fachada del edificio principal
9
Fotografía 1.2- Ubicación ALBA soluciones desde Google
Maps
1.1.2 Objetivos de la institución
ALBA Soluciones tiene como objetivo cubrir con la demanda de los clientes,
creando sistemas de información de todo tipo, dando la mejor calidad posible y la mejor
funcionalidad, dando una optimización de trabajo más adecuada para cada cliente,
además de cubrir todas las necesidades del cliente a través del uso de tecnologías.
1.1.3 Organigrama
ALBA Soluciones se encuentra organizada como lo indica el directorio que se
encuentra a continuación.
10
Directorio de ALBA Soluciones
Tabla 1.1- Estructura organizacional de ALBA Soluciones
1.1.4 Misión
Integradores de soluciones tecnológicas enfocadas a las expectativas de
nuestros clientes, con los que buscamos una sociedad de negocios a largo y que
genere beneficios mutuos.
1.1.5 Visión
Ser una de las mejores empresas consolidadas de soluciones tecnológicas
reconocidas en el mercado informático.
Gerenete GeneralDaniel Omar Cuellar Alvarez
Gerente Comercial
Jose Cruz Paredes Magaña
Gerente Programacion
Eduardo Guerra Bobadilla
Gerente de Ventas
Ivan Peña
11
1.2 Planteamiento del problema
Con el crecimiento del mercado por internet y plataformas de E-Commerce
actuales ALBA Soluciones decidió desarrollar la creación de un sistema de
información genérico, para negocio de comidas, al igual que una aplicación móvil
para ofrecerla a distintos clientes para la distribución de productos y servicios en
una aplicación móvil, distribuida a los sistemas móviles más populares en la
actualidad.
Actualmente se trabaja sobre un sistema de información para el Grupo Cielito
Lindo (CLG) en cual su objetivo principal es optimizar su servicio de ventas e
inventarios, como también su sistema de cobro a cambio de moneda, la principal
prioridad es darle una importancia al inventario ya que el dueño no tiene en una
cifra exacta cual fue la producción del día ni las perdidas, con eso se crea el ERP
para dicha empresa, con el cual el sistema de información tendrá la capacidad de
arrojar todos esos resultados y cubrir demandas y necesidades del cliente.
1.2.1 Propuesta de la investigación
Por las razones antes mencionadas y para adaptarse a las necesidades
emergentes que van apareciendo y actuales como consecuencias del trabajo al
realizar es mantener el mínimo error en el sistema, para dar un sistema de alta
calidad con una funcionalidad de la mejor preferencia al cliente al igual de una
amigabilidad máxima para una mejor experiencia hacia el usuario.
Éste sistema de información unificara todos los departamentos de la joyería,
como son los departamento de ventas, los departamentos de producción, el
departamento de recursos humanos, así como también tendrá la capacidad de
concentrar toda la información en una base de datos en el cual el web service, podrá
12
compartir a cualquier dispositivo conectado a él, todos los datos pedidos por el
dispositivo sin necesidad de otros métodos para la compatibilidad entre los
dispositivos.
De este modo también habrá un mejor control de las operaciones en cada
uno de los departamentos ya mencionados ya que, al estar concentrada toda la
información en una sola base de datos no se podrá filtrar información de otro lado
al igual que no habrá falla en la obtención de la misma.
Otro de los beneficios de la implementación sistema de información ERP es
el control de información y la rápida obtención de información gracias al web service,
para la obtención de un resultado de una buena calidad en respuestas.
1.2.2 Objetivos de la investigación
Con el crecimiento y avances de nuevas tecnologías en la informática en los
últimos años es notable que las empresas día a día se actualizan para las mejoras
de sus sistemas de información, dando así la ventajas tener un buen sistema de
información adaptable a la organizaron.
Los sistemas de información utilizando web services fortalecen un sistema
de información y reducen su margen de error al tener todo unificación en un mismo
servicio, para así cualquier otra actualización nomas se empresa la actualización y
se refleja en todos.
Por lo anteriormente expuesto en ALBA Soluciones se ha decidido mediante
un análisis previo el desarrollo de un sistema de información ERP genérico para
cubrir las necesidades de una organización de ventas.
Con este sistema de información se prenderte que el cliente pueda adaptar
para trabajar de manera más amigable, cómoda y de mejor calidad posible dentro
de su organización y de esa manera poder seguir creciendo como empresa teniendo
13
diferentes tipos de información genéricos, al igual de crecer la cartera de clientes
tanto nivel, estatal, nacional e internacional.
1.2.2.1 Objetivo general
Desarrollar un sistema de información de Planeamiento de Recursos
Empresariales de alta calidad, cubriendo las demandas y necesidades de los
clientes al igual dando los resultados, generar una aplicación genérica para cubrir
las necesidades generales de empresas con giro empresarial comercial.
1.2.2.2 Objetivos particulares
Los siguientes son los puntos se refieren a las tareas específicas que se
habrán de realizar para cumplir el objetivo general de la investigación.
• Recabar información de los sistemas de información para giros comerciales
más utilizados en la actualidad.
• Realizar entrevistas a empresas comerciales para conocer las necesidades
de cada una y así poder unificarlas en un solo sistema, para cubrir las
necesidades de cualquier tipo de cliente.
• Recibir retroalimentación de los usuarios finales para la mejora futura del
sistema.
• Continuar siempre con actualizaciones y mejoras del sistema.
• Dar como base el sistema de información ERP del Grupo Cielito Lindo,
tomando y así basándose en ese plan de negocios.
14
1.2.3 Preguntas de la investigación
Se han formulado las siguientes preguntas de investigación.
• ¿En qué medida la implementación del sistema de información beneficia al
cliente actual?
• ¿En qué medida la implementación del sistema de información beneficiara
al futuro cliente?
• ¿Cómo es la respuesta por parte del cliente actual, al cambiar de un sistema
a otro sistema totalmente nuevo?
• ¿Qué tan factible será la venta de un software genérico para los giros
empresariales comerciales?
1.2.4 Hipótesis
Con la creación del sistema de información para el Grupo Cielito Lindo,
puede crearse una base para un sistema genérico para ese giro empresarial que es
de ventas, optimizando cada departamento dentro de la organizaciones e
incrementar el número de clientes en ALBA Soluciones.
1.2.5 Limitaciones y supuestos
ALBA Soluciones se encuentra constantemente con cambios de nuevos
proyectos al solo contar con 4 miembros base es una limitante de gran impacto ya
que entre solo ellos sacan adelante los trabajos, una de las mayores amanezcas al
ser cuatro personas es que en algunas ocasiones es demasiados proyectos y el
15
tiempo es poco, dando así, jornadas de trabajos largas. En el proyecto para el
Grupo Cielito Lindo una limitante es el tiempo, ya que el cliente quiere un sistema
grande en un tiempo no considerado, haciendo que el equipo de trabajo tenga
largas jornadas de trabajo al igual que requiera de nuevos integrantes para el
desarrollo dentro de este proyecto.
El presupuesto son cantidades estándares establecidas por ALBA Soluciones
mes tras mes dependiendo la cantidad de trabajo en ese mes al igual que la cantidad
de recursos que se necesitan en sus pruebas.
1.2.5 Relevancia
La creación y realización de este proyecto es esencial y una oportunidad
magnífica para ALBA Soluciones porque cumplirá con las necesidades con el
cliente actual y así tener una base solidad dependiendo los resultados con el cliente
de poder generalizar el sistema a un sistema de información genérico el cual valla
dirigido a múltiples organizaciones. Así podrá beneficiar a las partes que contengan
el sistema de información que se podrá utilizar.
16
CAPÍTULO II
ESTADO DEL ARTE
17
2.1 Marco conceptual.
En esta sección se podrá observar sobre la investigación aplicada durante la
tesina, en donde la información será solamente de artículos científicos, poster
científicos, libros publicados, todo esto para que la información sea de la mejor
calidad y más que nada sea legitima, por aquellos autores que la interpretaron.
Además que se mostrara la final del documento una sección donde estén la
bibliografías y artículos citados utilizados en esta tesina.
2.1.1 ¿Qué son los web service?
Un web service es un conjunto de protocolos y estándares que sirven para
intercambiar datos entre aplicaciones. Distintas aplicaciones de software
desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre
cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en
redes de ordenadores como servidores Publio o privados, o incluso desde el mismo
internet. [1]
El término Web Services describe una forma estandarizada de integrar
aplicaciones WEB mediante el uso de XML, SOAP, WSDL y UDDI sobre los
protocolos de la Internet. XML es usado para describir los datos, SOAP se ocupa
para la transferencia de los datos, WSDL se emplea para describir los servicios
disponibles y UDDI se ocupa para conocer cuáles son los servicios disponibles. Uno
de los usos principales es permitir la comunicación entre las empresas y entre las
empresas y sus clientes. Los Web Services permiten a las organizaciones
intercambiar datos sin necesidad de conocer los detalles de sus respectivos
Sistemas de Información.
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).
18
En vez de ello, los Web Services 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 Web
Services la interfaz para usuarios, por ejemplo mediante una página Web o un
programa ejecutable, tal de entregarles a los usuarios una funcionalidad específica
que provee un determinado Web Service.
Los Web Services 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
Windows puede conversar con aplicaciones Unix. Por otra parte los Web Services
no necesitan usar browsers (Explorer) ni el lenguaje de especificación HTML.
El modelo de computación distribuida de los Web Services permite la
comunicación de aplicación a aplicación. Por ejemplo, la aplicación que procesa las
órdenes de compra se puede comunicar con el sistema de inventarios, tal que este
último le puede informar a la aplicación de compras cuales ítems deben comprarse
por estar bajo su nivel mínimo. Dado el nivel integración que proveen para las
aplicaciones, Los Web Services han crecido en popularidad y han comenzado a
mejorar los procesos de negocios. De hecho, algunos postulan que los Web
Services están generando la próxima evolución de la Web.
Se pretendía ofrecer una alternativa a los procesos de desarrollo de software
tradicionales, caracterizados por ser rígidos y dirigidos por la documentación que
se genera en cada una de las actividades desarrolladas. [2]
19
2.1.1 ¿Para qué sirven los Web Services?
De una manera más clara se podría decir que un web service es una función que
diferentes servicios o equipos utilizan; es decir, solo se envían parámetros al
servidor (lugar donde está alojado el web service) y éste responderá la petición.
Entre algunas que se manejan de utilizar servicios webs en las aplicaciones
destacan las siguientes:
Aportan interoperabilidad entre aplicaciones de software
independientemente de sus propiedades o de las plataformas sobre las que
se instalen.
Los servicios Web fomentan los 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, los servicios Web 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. [2,3]
2.1.1.1 Que es un servicio.
Un servicio es un programa con el cual se puede interactuar vía cambios de
mensaje bien definidos. Los servicios deben ser diseñados para cumplir con
disponibilidad y estabilidad. Uno de los grandes beneficios de SOA es la agilidad.
Una organización con procesos de negocios, implementados sobre una
infraestructura vagamente conectada, es más abierta al cambio que una
20
organización forzada con aplicaciones monolíticas que requieren semanas para
implementar un cambio mínimo. [4]
2.1.2 Protocolos de los Web Services.
Los web services estandarizados funcionan con los siguientes componentes:
SOAP - Simple Object Access Protocol.- es un protocolo escrito en XML para
el intercambio de información entre aplicaciones. Es un formato para enviar
mensajes, diseñado especialmente para servir de comunicación en Internet,
pudiendo extender los HTTP headers. Es una forma de definir qué
información se envía y cómo mediante XML. Básicamente es un protocolo
para acceder a un Web Service.
WSDL - Web Services Description Language.- es un lenguaje basado en
XML para describir los servicios web y cómo acceder a ellos. Es el formato
estándar para describir un web service, y fue diseñado por Microsoft e IBM.
WSDL es una parte integral del estándar UDDI, y es el lenguaje que éste
utiliza.
UDDI - Universal Description, Discovery and Integration.- es un estándar
XML para describir, publicar y encontrar servicios web. Es un directorio
donde las compañías pueden registrar y buscar servicios web. Es un
directorio de interfaces de servicios web descritos en WSDL que se
comunican mediante SOAP.
RPC - Remote Procedure Calls.- presentan una interfaz de llamada a
procedimientos y funciones distribuidas, lo cual es familiar a muchos
desarrolladores. Típicamente, la unidad básica de este tipo de servicios es
la operación WSDL (WSDL es un descriptor del Servicio Web, es decir, el
homólogo del IDL para COM).
REST - Representation State Transfer.- intenta emular al protocolo HTTP o
protocolos similares mediante la estándar (por ejemplo GET, PUT). Por
21
tanto, este estilo se centra más en interactuar con recursos con estado, que
con mensajes y operaciones. Restricción de establecer la interfaz a un
conjunto conocido de operaciones.
SOA – Service Oriented Architecture.- pueden también ser implementados
siguiendo los conceptos de la arquitectura SOA, donde la unidad básica de
comunicación es el mensaje, más que la operación. Esto es típicamente
referenciado como servicios orientados a mensajes.
Los Servicios Web basados en SOA son soportados por la mayor parte de
desarrolladores de software y analistas. Al contrario que los Servicios Web
basados en RPC, este estilo es débilmente acoplado, lo cual es preferible ya
que se centra en el “contrato” proporcionado por el documento WSDL, más
que en los detalles de implementación subyacentes. [3,4]
Imagen 2.1: mapa de estandarización con web services.
22
2.1.2.1 Componentes de los Web Services.
Web Service. Es el software o componente que realiza las operaciones. Si está
escrito en Java, estas operaciones se realizarán en lenguaje Java. Los clientes
invocarán estas operaciones enviando mensajes SOAP.
SOAP Engine. El Web Service no sabe interpretar SOAP requests y crear SOAP
responses. Para hacer esto hace falta un SOAP engine, un software que se
encarga del manejo de estos mensajes. Apache Axis es un ejemplo.
Application Server. Para funcionar como un servidor que puede recibir requests
desde diferentes clientes, el SOAP engine normalmente funciona dentro de un
application server. Este es otro software que proporciona un espacio libre para
aplicaciones que han de ser accedidas por múltiples clientes. El SOAP engine
funciona como una aplicación dentro del application server. Ejemplos son Apache
Tomcat server, Java Servlet y JSP container.
HTTP Server. Algunos application servers incluyen funcionalidades HTTP, por lo
que se pueden tener Web Services funcionando instalando simplemente un SOAP
engine y un application server. Sin embargo cuando un application server carece
de funcionalidad HTTP es necesario también un HTTP server, más comúnmente
llamado Web Server. Es un software que sabe cómo manejar mensajes HTTP. Los
dos más populares en la actualidad son Apache HTTP Server y Nginx. [3,4]
23
Imagen 2.2: estructura de los componentes de un Web Service.
2.1.2.2 Arquitectura de los Web Services.
Service Discovery. Responsable de centralizar servicios web en un directorio
común de registro y proveer una funcionalidad sencilla para publicar y
buscar. UDDI se encarga del Service Discovery.
Service Description. Uno de los aspectos más característicos de los web
services es que se auto describen. Esto significa que una vez que se ha
localizado un Web Service nos proporcionará información sobre que
operaciones soporta y cómo activarlo. Esto se realiza a través del Web
Services Description Language (WSDL).
Service Invocation. Invocar a un Web Service implica pasar mensajes entre
el cliente y el servidor. SOAP (Simple Object Access Protocol) especifica
cómo deberíamos formatear los mensajes request para el servidor, y cómo
el servidor debería formatear sus mensajes de respuesta.
24
Transport. Todos estos mensajes han de ser transmitidos de alguna forma
entre el servidor y el cliente. El protocolo elegido para ello es HTTP
(HyperText Transfer Protocol). Se pueden utilizar otros protocolos pero
HTTP es actualmente el más usado. [3,4]
2.1.2.3 Como funciona un Web Service.
El Service Provider genera el WSDL describiendo el Web Service y registra
el WSDL en el directorio UDDI o Service Registry.
El Service Requestor o la aplicación del cliente requiere un Web Service y
se pone en contacto con el UDDI para localizar el Web Service.
El cliente, basándose en la descripción descrita por el WSDL, envía un
request para un servicio particular al Web Service Listener, que se encarga
de recibir y enviar los mensajes en formato SOAP. [3,4]
El Web Service analiza el mensaje SOAP del request e invoca una operación
particular en la aplicación para procesar el request. El resultado se escribe
de nuevo en SOAP en forma de respuesta y se envía al cliente.
El cliente analiza el mensaje de respuesta SOAP y lo interpreta o genera un
error si ha habido alguno. [3,4]
2.1.2.3 Que es XML.
XML, es un lenguaje ampliamente utilizado en programación web, que optimiza los
documentos utilizando las normativas de la W3C. Gracias a esta normativa, los
desarrolladores pueden crear sus propias etiquetas, lo que facilita el proceso de
programación orientada a web y a Internet, así como también la interpretación,
transmisión y organización de datos. [5]
25
2.1.3 Angular
Angular es un Frameworks que se emplea para todo tipo de creaciones y ediciones
de aplicaciones y software que se realiza destinado a aplicaciones web y a JavaScript. A
lo largo de los años, este Frameworks ha ido evolucionando y creciendo hasta
posicionarse de la mejor manera posible y contar con una mayor utilidad para el mercado
y para los desarrolladores profesionales. La nueva versión de Angular se llama AngularJS
y logra mucho más, a la vez que mejora lo ya existente. Permite crear aplicaciones y
desarrollar proyectos tanto para ordenadores y para sistemas operativos de escritorio
como para móvil, Tablet y otro tipo de dispositivos, lo que le da una utilidad mayor y la
hace más recomendable, aconsejable y altamente funcional para los desarrolladores.
Entre los profesionales y entre el público interesado en el desarrollo web y el
desarrollo de aplicaciones, Angular es una muy buena opción a valorar, por todo lo que
supone y todo lo que aporta a un experto de la materia a la hora de realizar una creación
de software empleando esta plataforma y este Framework.
Angular combina las diferentes plantillas declarativas y otras tareas como la
inyección de dependencias y herramientas, para aplicar todos los usos y todas sus
características de extremo a extremo a la hora de ser aplicadas en una creación o un
proyecto y en el desarrollo Front End. Sin embargo, no es el único framework del
mercado, por lo que se enfrenta a un gran número de opciones y competidores que con
los que debe estar a la altura y presentar ventajas destacables, si quiere que opten por
ella y no por otros. A continuación veremos algunas de esas ventajas y las características
que hacen de Angular o AngularJS la herramienta de programación tan útil y
recomendable que es hoy en día para el mercado profesional y para los diferentes
usuarios de su plataforma. [6]
26
2.1.3.1 Características de Angular en programación.
Entre todas sus características y todos los elementos que conlleva este
framework podemos empezar comentando la gran utilidad y la gran evolución que ha
tenido a lo largo de los años. Sin embargo, lo más importante es el uso que se le puede
dar a nivel práctico, y no tanto su historia o su pasado para con la compañía y los
expertos que la desarrollaron a lo largo de diferentes versiones, implementando
novedades y nuevos usos o características. Hoy en día puede emplearse para crear
aplicaciones mediante el uso y el empleo de los estándares web más modernos y
avanzados. Y es que, como plataforma de desarrollo y como medio para la creación y
el desarrollo, incluye las siguientes características que procedemos a comentar.
En primer lugar, permite ajustar y editar los gestos móviles que podemos realizar
con la aplicación o con la web, es decir, el método de utilización por parte de los
usuarios y por parte de todo aquel que use una app o un elemento digital de software
creado con Angular. También permite editar e incluir animaciones, lo que es un punto
positivo para evitar limitar las creaciones a algo sólido y estático. Comentamos también
el filtrado y la vinculación de los datos que queramos incluir, el enrutamiento y la
internacionalización de esta plataforma para el mercado a nivel global. Los
componentes de la interfaz de usuario también son una característica y la gran
seguridad que demuestra y que aporta a los profesionales que hacen uso de ella y que
confían en su sistema y su plataforma.
2.1.3.1 ¿Qué es un Framework?
El concepto framework se emplea unos muchos ámbitos del desarrollo de
sistemas software, no solo en el ámbito de aplicaciones Web. Podemos encontrar
Frameworks para el desarrollo de aplicaciones médicas, de visión por computador,
27
para el desarrollo de juegos, y para cualquier ámbito que pueda ocurrírsenos. En
general, con el término framework, nos estamos refiriendo a una estructura software
compuesta de componentes personalizables e intercambiables para el desarrollo
de una aplicación. En otras palabras, un framework se puede considerar como una
aplicación genérica incompleta y configurable a la que podemos añadirle las últimas
piezas para construir una aplicación concreta. Los objetivos principales que
persigue un framework son: acelerar el proceso de desarrollo, reutilizar código ya
existente y promover buenas prácticas de desarrollo como el uso de patrones. Un
framework Web, por tanto, podemos definirlo como un conjunto de componentes
(por ejemplo clases en java y descriptores y archivos de configuración en XML) que
componen un diseño reutilizable que facilita y agiliza el desarrollo de sistemas Web.
[8]
2.1.4 Prime NG
PrimeNG es una colección de componentes de interfaz de usuario ricos para
Angular. Todos los widgets son de código abierto y de uso gratuito bajo la licencia
MIT. PrimeNG es desarrollado por PrimeTek Informatics, un proveedor con años
de experiencia en el desarrollo de soluciones UI de código abierto. [9]
2.1.5 GitHub
Los repositorios Git. Esta clase de repositorios son una copia local del código
generado con una característica muy importante, y es que podemos hacer varias
versiones para poder recular si nos hemos equivocado y nuestra aplicación ya no
funciona, o para trabajar en funcionalidades nuevas sin necesidad de modificar la
versión funcional y así no romper el proyecto. Esta es la premisa más básica de los
repositorios de código, pero seguimos sin solucionar el tema de que se mantiene
28
en local. Si nuestra máquina se estropea y deja de funcionar, corrompiendo el disco
duro, no podemos recuperar todo el trabajo realizado. Es por ello que nacen
servicios como GitHub, BitBucked u otros similares que pretenden llenar ese vacío.
[10]
2.1.6 MongoDB
Es una base de datos orientada a documentos. Esto quiere decir que en lugar de
guardar los datos en registros, guarda los datos en documentos. Estos documentos son
almacenados en BSON, que es una representación binaria de JSON.
Una de las diferencias más importantes con respecto a las bases de datos
relacionales, es que no es necesario seguir un esquema. Los documentos de una misma
colección concepto similar a una tabla de una base de datos relacional, pueden tener
esquemas diferentes. [11]
2.1.6.1 Características de MongoDB
Es una base de datos no relacional, es decir, no utiliza SQL. El nombre viene del término
inglés “humongous” (colosal) y puede ser definida como una base de datos documental
sin esquema, escalable y de alto rendimiento. Algunos especialistas la han catalogado
como la “MySQL de las bases de datos NoSQL”, al ver que es una base de datos
rapidísima, sencilla en la funcionalidad ofrecida y que, como hizo MySQL hace años, se
está ganando la atención de mucha gente. [12]
2.1.6.2 JSON
JSON es un formato ligero basado en de texto, con definición de lenguaje
completamente independiente, cuya sintaxis está basada en un subconjunto de
funcionalidades y palabras reservadas del lenguaje de script Web: JavaScript.
29
Debido a su sencillez es fácil generar y procesar un documento con este formato
[13]
2.1.6.2 Estructura de JSON.
JSON está construido por dos estructuras:
Una colección de pares de nombre/valor. En varios lenguajes esto es conocidos
como un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un
arreglo asociativo.
Una lista ordenada de valores. En la mayoría de los lenguajes, esto se implementa
como arreglos, vectores, listas o secuencias. [13]
2.1.6.4 Base de dato NoSQL.
Se habla sobre amplia clase de sistemas de gestión de datos (mecanismos
para el almacenamiento y recuperación de datos) que difieren, en aspectos
importantes, del modelo clásico de relaciones entre entidades (o tablas) existente
en los sistemas de gestión bases de datos relacionales, siendo el más destacado
el que no usan SQL como lenguaje principal de consulta. [13]
2.1.6.5 Objetos en angular y MongoDB.
Un objeto es un ejemplar concreto de una clase, como por ejemplo el curso de
metodología de la programación es un curso concreto dentro de todos los tipos de cursos
que pueden existir. Un objeto pertenece a una clase, por lo tanto dispondrá de los
30
atributos (datos) y operaciones (métodos) de la clase a la que pertenece. Un objeto
responde al comportamiento definido por las operaciones de la clase a la que pertenece.
Un objeto se puede ver como una "cápsula" de datos y algoritmos que trabajan
sobre esos datos. Un objeto no puede acceder directamente a sus datos (atributos). Los
atributos son sólo accesibles desde la implementación de los métodos de una clase. Un
objeto no puede "manipular" sus propios datos, para ello están los métodos de la clase
de dicho objeto: el comportamiento (métodos) de un objeto puede variar el valor (estado)
de sus datos (atributos). [14]
2.1.7 Visual Studios
Se trata de un IDE Integrated Development Environment (Entorno de desarrollo
integrado) de Microsoft. En esta nueva etapa que está comenzando la empresa, nos está
ofreciendo las diferentes herramientas de forma gratuita y liberando parte de bien
preciado código. La versión Community viene a sustituir las antiguas versiones Express
del Visual Studio. Aglutina todas las tecnologías y las ofrece en un único paquete.
Además de todo esto, ha añadido funcionalidades que en las versiones Express no tenía,
equiparándola a la versión Professional.
Visual Studio nos ofrece herramientas como diseñadores, editores, depuradores,
nos permite programar en diferentes lenguajes de programación como C++, Python,
HTML5, JavaScript, C#, VisualBasic y F#. También nos permite desarrollar utilizando los
framework de desarrollo web ASP.NET y Node.js y por último nos permite desarrollar
aplicaciones para las plataformas móviles Windows Phone, IOS y Android. [15]
31
2.1.7.1 Lenguaje de programación C#
C# es el nuevo lenguaje de propósito general orientado a objetos creado por
Microsoft para su nueva plataforma .NET.
Microsoft.NET es el conjunto de nuevas tecnologías en las que Microsoft ha
estado trabajando estos últimos años con el objetivo de mejorar tanto su sistema
operativo como su modelo de componentes (COM) para obtener una plataforma
con la que sea sencillo el desarrollo de software en forma de servicios web.
Los servicios web son un novedoso tipo de componentes software que se
caracterizan a la hora de trabajar por su total independencia respecto a su ubicación
física real, la plataforma sobre la que corre, el lenguaje de programación con el que
hayan sido desarrollados o el modelo de componentes utilizado para ello.
Pero la plataforma .NET no son sólo los servicios web, sino que también
ofrece numerosos servicios a las aplicaciones que para ella se escriban, como son
un recolección de basura, independencia de la plataforma, total integración entre
lenguajes (por ejemplo, es posible escribir una clase en C# que derive de otra
escrita en Visual Basic.NET que a su vez derive de otra escrita en Cobol)
C# combina los mejores elementos de múltiples lenguajes de amplia difusión
como C++, Java, Visual Basic o Delphi. De hecho, su creador Anders Heljsberg fue
también el creador de muchos otros lenguajes. [15]
2.1.8 Inspección de elementos del navegador Google Chrome
Una herramienta que posee algunos de los navegadores web, tales como Google
Chrome y Firefox, los cuales es una herramienta para los desarrolladores de web, el cual
le permite realizar múltiples tareas, como la depuración de los procesos en una página
web, al igual del compartimiento que emite cada acción o método empleado. En
32
inspeccionar elemento se puede albergar diferentes módulos como la cache que sirve de
memoria dinámica en un sitio web, al igual que almacena los módulos de las bases de
datos internar en dichos sitios, posee la almacenamiento y gestión de los cookies en la
página web. Uno de los apartados más esencial para los programadores es el área de
elementos, ya que en esta área el desarrollo podrá observar sobre el Front End de la
página donde puede interactuar propiedades sin afectar el código real. Existen más áreas
el cual puede trabajar el inspeccionar elementos, aunque no tan importantes como las ya
mencionadas. [15]
2.2 El estado del arte
Para la elaboración de este trabajo de investigación se han realizado múltiples
publicaciones citadas, emblemáticas y relativas sobre al tema abordado del sistema de
información con Web Services. A continuación se presenta la investigación y/o conclusión
redactada personalmente sobre la información que se propuso anteriormente.
Durante todo el capítulo el desarrollar un sistema de información con Web
Services, es algo complejo, ya que no solo es el uso de una tecnología, para crear un
sistema como este es la unificación de varias tecnologías que trabajan entre sí para la
comunicación y el manejo de áreas diferentes entre unas y otras para lleva a cabo una
mejor interpretación entre la comunicación entre los métodos y los softwares como
plataformas y framework utilizados para dicho sistema.
Se puede aclarar que el uso de cada uno de las tecnologías propuestas
anteriormente esta calidad para dar una calidad alta en cualquier tipo de sistema de
información, además pretenden dar un impacto de lo más alto para la adaptabilidad y
comodidad de un equipo de trabajo.
33
Es importante en Ing. en informática estar actualizado en las tendencias de
tecnologías como son los framework, los cuales te harán un proyecto más como y de
mejor infraestructura, al igual que te ayudara en la disminución del trabajo aplicado.
Es de suma importancia el tener un análisis de requerimiento ante todo, ya que
con la base del análisis puedes considerar todas aquellas tecnologías que puedes
emplear en tu sistema de información.
El uso de nuevas tecnologías es un reto en un proyecto, sim embargo cuando
desarrollas el conocimiento de dicha tecnología y la explotas, en el resultado del proyecto
se puede tener resultado inesperados dado a eso se tendrán mejores objetivos y mejores
resultados en el campo de trabajo.
La investigación aplicado en esta tesina, es de suma importancia el hacer una
investigación cautelosa, ya que al tener una investigación aplicada la condición de la
tesina será buena, sin olvidar que tener información de carácter ayuda al conocimiento,
es decir el obtener información sobre citas, artículos, reportes, poster científicos ayudan
en la calidad de cualquier documento.
Por otra parte es considerable el comprender lo que el autor de cada cita propuesta
anteriormente es fundamental para el lector, para que así disfrute y comprenda sobre
todo esta tesina. Es básico el leer de principio al fin este capítulo, además de no
comprender de todo, consultar la sección bibliográfica al final de este documento.
El documento muestra, por otro lado, los beneficios que se tienen al hacer un
sistema de información usando como base Web Services, se muestra los beneficios que
se obtienen al realizar este tipo de tecnología. Al así el uso de cada tecnología propuesta
anteriormente, tal como es las base de datos no relaciones como la llamada MongoDB
que su método de trabajo es a través de objetos, que es una base esencial en la
informática.
34
CAPÍTULO III
DISEÑO Y DESARROLLO
35
3.1 – Diseño
En la estadía en la empresa ALBA Soluciones mi encargado fue el Ing. José
Cruz Paredes Magaña y el Lic. Eduardo Guerra Bogadilla los cuales me
compartieron accesorias, conocimientos y experiencias en el proyecto que
participe, y el cual me propusieron en la participación de un sistema de información
ERP usando Web Services. Todos los procesos de trabajo se describirán a
continuación.
Para el proyecto los ingenieros a cargo, al considerar el tiempo y los recursos
asignados y una análisis previo sobre todo el proyecto, incluyendo etapas del
proyectos, entregables de proyecto, tiempo y asignaciones de módulos, llegaron a
una conclusión general de trabajar con diferentes metodologías para dicho proyecto
las cuales llevan de nombre: metodología, Scrum, metodología XP, metodología
SMART. Con base a la fundamentación de estas metodologías mencionadas
llevándolas a cabo como están marcadas así como siguiendo su fundamentación
de cada una, aumenta la posibilidad de éxito en el proyecto y ayuda con los tiempos
de cada módulo del sistema.
A continuación se presenta cada una de las metodologías aplicadas en este
proyecto:
Metodología Scrum: es un método para trabajar en equipo a partir de
iteraciones o Sprints. Así pues, Scrum es una metodología ágil, por lo que
su objetivo será controlar y planificar proyectos con un gran volumen de
cambios de última hora, en donde la incertidumbre sea elevada.
Se suele planificar por semanas. Al final de cada Sprint o iteración, se va
revisando el trabajo validado de la anterior semana. En función de esto,
se priorizan y planifican las actividades en las que invertiremos nuestros
recursos en el siguiente Sprint.
La metodología Scrum se centra en ajustar sus resultados y responder a
las exigencias reales y exactas del cliente. De ahí, que se vaya revisando
36
cada entregable, ya que los requerimientos van variando a corto plazo. El
tiempo mínimo para un Sprint es de una semana y el máximo es de cuatro
semanas.
Entre las principales características de la metodología Scrum, desataca
que es un desarrollo incremental en lugar de la clásica planificación del
desarrollo completo de un producto o servicio. Sus equipos de trabajo se
caracterizan por ser auto-organizados. Y se centra en el producto final,
en la calidad del mismo.
Para entender el ciclo de desarrollo de Scrum es necesario conocer las 5
fases que definen el ciclo de desarrollo ágil:
1. Concepto.- Se define de forma general las características del
producto y se asina el equipo que se encargara de su desarrollo.
2. Especulación.- en esta fase se hacen disposiciones con la
información obtenida y se establecen los límites que marcaran el
desarrollo los productos, tales como costos y agendas. Se
construirá el producto a partir de las ideas principales se
comprueban las partes realizadas y su impacto en el entorno.
3. Exploración.- se incrementa el producto en él se añaden las
funcionalidades de la fase de especulación.
4. Revisión.- el quipo revisa todo lo que se ha construido y se
contrasta con el objetivo deseado.
5. Cierre.- se entregara en la fecha acordada una revisión del
producto deseado. Al tratarse de una versión, el cierre no indica
que se ha finalizado el proyecto, sino que seguirá habiendo
cambios, denominados “mantenimientos”, que hará que el
producto final se acerque al producto final deseado [17].
37
Imagen 3.1: Ciclo de desarrollo ágil.
Imagen 3.2: ciclo principal de Scrum.
Metodología XP: La metodología XP define cuatro variables para
cualquier proyecto de software: costo, tiempo, calidad y alcance. Además,
se especifica que, de estas cuatro variables, sólo tres de ellas podrán ser
fijadas arbitrariamente por actores externos al grupo de desarrolladores
(clientes y jefes de proyecto). El valor de la variable restante podrá ser
establecido por el equipo de desarrollo, en función de los valores de las
otras tres. Este mecanismo indica que, por ejemplo, si el cliente establece
el alcance y la calidad, y el jefe de proyecto el precio, el grupo de
desarrollo tendrá libertad para determinar el tiempo que durará el
proyecto. Este modelo es analizado por Kent Beck, en donde propone las
ventajas de un contrato con alcances opcionales. El ciclo de vida de un
38
proyecto XP incluye, al igual que las otras metodologías, entender lo que
el cliente necesita, estimar el esfuerzo, crear la solución y entregar el
producto final al cliente. Sin embargo, XP propone un ciclo de vida
dinámico, donde se admite expresamente que, en muchos casos, los
clientes no son capaces de especificar sus requerimientos al comienzo
de un proyecto.
La metodología XP tiene un conjunto importante de reglas y prácticas. En
forma genérica, se pueden agrupar en:
1. Reglas y prácticas para la Planificación.
2. Reglas y prácticas para el Diseño.
3. Reglas y prácticas para el Desarrollo.
4. Reglas y prácticas para las Pruebas [18]
Imagen 3.3: fases de la metodología XP.
Metodología SMART: hace referencia a un acrónimo en inglés que es
muy utilizado por diversas industrias debido a su gran eficiencia y
objetividad, además resulta ser un recurso muy práctico y que
ciertamente, puede ser una salvación para los directores de cualquier
área.
39
Aunque este concepto no hace precisamente referencia a un objeto
inteligente, estoy completamente segura de que sí lo es porque más allá
de ser simplemente una definición o un método, se convierte en una gran
herramienta para todas las empresas, sin importar la industria.
Muchas veces la definición de los objetivos puede ser el proceso más
difícil de lograr al querer comenzar un proyecto o una nueva estrategia.
Seguramente, todos, en más de una ocasión, nos hemos visto con la
mente en blanco durante este momento.
Por esta razón es que si deseas ponerte a trabajar cuanto antes y
además, darle a tu equipo una excelente guía para conseguir objetivos
muy específicos, debes comenzar por hacer un excelente planteamiento
de los mismos.
Por tanto, tus metas deben ser:
o Específicas: Lo primero que debes hacer es tener claro qué es lo
que quieres. Suena sencillo, pero muchas veces no lo es tanto. Por
eso el método insiste en que, cuanto más específicas sean las
metas, más fácil te será alcanzarlas.
o Medibles: Siguiendo en esta misma línea, es importante que
diseñes un objetivo cuya realización sea medible. Por ejemplo:
"conseguiré trabajo en 6 meses". De esta forma puedes realizar un
monitoreo constante mes a mes de tu progreso.
o Alcanzables: Una característica fundamental que debe tener tu
objetivo es que tiene que ser alcanzable, es decir, tienes que poder
delinear acciones específicas para alcanzarlo: adquirir nuevas
habilidades, dedicarle tiempo de tu semana, pedir ayuda, etc.
o Relevantes: La motivación es fundamental en cualquier ámbito de
la vida. Si no sientes una real motivación por alcanzar tus metas,
lo más probable es que se terminen convirtiendo en proyectos
truncos. Por más insignificante que parezca para el mundo
exterior, para ti tiene que ser relevante e impulsarte a adoptar la
actitud adecuada para conseguirla.
40
o Temporales: Las metas deben tener un principio y un fin. Los
proyectos sin fecha de caducidad siempre quedan en el olvido.
Esto es lo que diferencia a las metas tangibles de los sueños
imposibles. [19][20]
Imagen 3.7: conceptualización de la metodología SMART
3.2 – Desarrollo
Durante el desarrollo de este proyecto de la Joyería, en su inicio de planifico
un requerimiento de análisis de todo el sistema operativo, haciendo consultas con
los trabajadores, realizando diagrama UML, aplicando las metodologías
anteriormente. El encargado de realizar dicho análisis fue el Ing. Daniel Omar
Cuellar Álvarez que tras al terminar se hizo una junta con todos los miembros
implicados donde explica todos los requisitos y peticiones especiales del cliente,
todo detalladamente explicado.
Primeramente tras ver el análisis de requerimiento se empezaban a ver las
necesidades sobre los catálogos del proyecto al igual de lar fortalezas de cada
integrante, en donde primero se repartió la parte del Back End en donde se repartió
a Ing. José Cruz Paredes Magaña como el encargado, practicante Jesús Fernando
Vazquez Muñoz, practicante Rosario Antonio Plata Martínez como en la parte del
Back End se repartió al Ing. Eduardo Guerra Bogadilla como encargado, Gerardo
41
Hernández como programador, Ing. José Paredes Cruz programador, practicante
Jesús Fernando Vazquez Muñoz, practicante Rosario Antonio Plata Martínez, en la
creación de la base de datos no relacionada fue creación del Ing. José Cruz
Paredes Mañana también en la elaboración del web services de todo el sistema fue
la elaboración del Ing. José Cruz Paredes Magaña, invención de Ing. Eduardo
Guerra y unas atribuciones de los practicantes: Jesús Fernando Vazquez Muñoz y
Rosario Antonio Plata Martínez y por último y menos importante en el área de
pruebas se utilizara el navegador Google Chrome donde todos harán pruebas
unitarias en cada catálogo.
3.2.1 – Herramientas de desarrollo
Como se mencionó anteriormente, al tener asignado a los miembros en cada
estación de trabajo y tener seccionando los tiempo para cada estación se planeó y
se llegó a la conclusión al igual que se determinó el uso de las herramientas de
trabajo que se utilizaría en cada una de estas áreas, analizando cada opción que
actualmente en el área de informática se podía obtener, las herramientas utilizadas
para el proyecto de la joyería fueron las siguientes:
Para el área del Front-End, se utilizara la plataforma angular y el
Frameworks de Prime NG.
Imagen 3.8: isologotipo de Angular
42
Imagen 3.9: Isotipo de Frameworks PrimeNG
Con la plataforma de angular se podrá realizar la codificación del Front-
End y gracias con la ayuda del Frameworks del PrimeNG se podrá realizar
la gran mayoría de las animaciones, componentes, botones, grillas y la
gran mayoría de los componentes que se tendrá el sistema de la joyería.
Para el área del Back-End, se utiliza la plataforma de angular y algunos
plugin de la misma plataforma la cual ayudaran de compiladores y de
snippets durante la programación del sistema
Imagen 3.10: Isologitipo de Angular
Gracias a la plataforma de angular y la unificación de sus plugin tales
como: snippets angular 6, Angular Language Service para la sintaxis del
web service, Angular2-inline para la tabulación correcta, HTML CSS
Support para la sintaxis de etiquetas en CSS, JSHint para la ayudar de
extensiones y Terminal para la depuración del sistema, el conjunto de
43
todos los plugins junto con la plataforma de angular realiza una labor
excelente para la experiencia durante la programación del proyecto.
En el área de la base de datos se utilizó una base de datos no relacionada
para una mayor calidad en el proyecto en cuando datos:
Imagen 3.11: Isotipo de mongoDB
Se llegó a la conclusión de utilizar una base de datos no relacionada para la
optimización de llamada de datos al igual a la rapidez de la funcione a través
de consulta de información y su principal características es la tendencia de
alta respuesta a través de una consulta realizada por el usuario. Aunque
mongo DB no sea utilizada o no sea muy popular es una herramienta rigorosa
y de gran potencial siempre y cuando se utilice de formar correcta.
En el caso del área del web service se optó por la plataforma de Visual
Studio para la gran comunicación entre todos los sistemas operativos, al
igual por la demanda que recibe y por la garantía de lograr resultados de
peticiones buenas. Al igual que el lenguaje de programación elegido para
la plataforma de Visual Studio fue el lenguaje “C#” por las herramientas y
fácil uso de este mismo.
44
Imagen 3.12: Isotipo de Visual Studio con C#
Gracias a la tecnología que se puede lograr con la plataforma de Visual
Studios es posible disminuir el trabajo gracias a las garantías que te
ofrece, al igual que Visual Studios es las mejor opciones para la creación
de Web Services para la obtención en peticiones hacia otra plataforma
igual o diferente a esta. Cabe mencionar que la creación de web services
en Visual Studio se puede lograr y compartir gracias a la plataforma de
GitHub el cual permite compartir el proyecto con más de 1 personas para
que así todos trabajen en el mismo proyecto y de igual manera se pueda
sincronizar en tiempo real para que el trabajo se genere una replicación
de maestro a maestro hacia todas las terminales compartidas.
Para el caso de área de pruebas se optó por la herramienta más cómodas
y única entre todas y que actualmente solo posee el mercado, es la
plataforma del navegador Google Chrome
.
45
Imagen 3.13: logo del navegador Google Chrome.
Gracias a la nobleza que ofrece el navegador Google Chrome es el único
navegador que actualmente tiene una herramienta para desarrolladores el cual se
conoce como inspección de páginas, gracias dicho navegador al momento de
probar cada catalogo o modulo del proyecto se puede observar todos los procesos
por cual puede pasar el proyecto durante la depuración del mismo.
3.2.3 – Diseño de interfaces
En este contenido se mostrara más detallado la interfaz gráfica y el funcionamiento
que se realizó por el equipo de trabajo y principalmente los módulos realizados por mí,
los cuales son utilizados actualmente por usuarios del grupo CLG. Las interfaces graficas
deben de cumplir ciertos parámetros como, estéticamente correcta, uso adecuado de
colores, fácil manejo ante el usuario como altos estándares de diseño moderno.
Las siguientes interfaces graficas son algunos de los módulos que se
encuentran en el sistema ya funcionando de manera correcta, al igual que todas
pasaron por un periodo de pruebas y en constantes actualizaciones para mejorías
de las mismas.
46
Imagen 3.14- Diseño de la pantalla grupo componente.
En esta pantalla se puede ingresar el tipo de componente en el cual la pieza de la
joyería tendría su categoría.
Imagen 3.15: Diseño de la pantalla pureza.
En esta pantalla se puede agregar el valor en pureza del metal de la joya. Además
marca al grupo el cual pertenece dicha pieza.
47
Imagen 3.16: Diseño de la pantalla usuario.
En esta pantalla se logra crear a los usuarios, los cuales pueden meterse al
sistema, este sistema cuenta con diferentes tipos de usuario el cual se define en la misma
pantalla.
Imagen 3.17: Diseño de la pantalla Almacén.
En esta pantalla se puede definir el almacén donde estarán las piezas en caso de
ser requeridas por un usuario para disposición de la venta.
Imagen 3.18: Diseño de la pantalla artículos.
48
En esta pantalla el usuario puede realizar un artículo, describiendo cada uno de
sus atributos para el manejo de todo el sistema.
3.2.4 – Primeros pasos del desarrollo de los métodos web services
Para la creación de los métodos de Web Services, se tomó el requerimiento de
análisis previo, para conocer la manera de trabajo en CLG, partiendo de allí se inició
con la implementación de los Web Services en la plataforma de VS utilizando el
lenguaje de C#, canalizando la información se dio el primer método de Web Service,
haciendo una consulta general sobre un módulo. Al principio el método de búsqueda
fue de manera genera, después con el tiempo se logró realizar una mejoría haciendo un
Web Service dinámico, significando que el método mejorara en su rendimiento en un
40% hacia la producción.
Imagen 3.19: creación de web service en consulta.
3.2.5 – Web Services con conexión a bases de datos.
Una de los mayores retos fue la creación de la base de datos y que esta
extendiera un servicio el cual pudiera ser compartido a cualquier tipo de dispositivo
que contara con un gesto de base de datos de MongoDB, para así poder utilizar la
base de datos. El reto se originó al momento de crear el servicio web y hacer la
conexión de la base datos ya que este tipo de BD es propenso a sistema operativos
49
LINUX, causaba conflicto, la solución a esto fueron la creaciones de drivers que
trabajaran en paralelo hacia el web Services y el gesto de base de datos.
Imagen 3.20: conexión de Web Service a la BD.
Imagen 3.21: Base de datos no relaciona.
3.2.5.1 Programación de módulos.
Al ser un sistema de información se puede decir que lo principal es la
programación, en este caso al utilizar los métodos del Web Services se ahorró, se
automatizo, se mejorar el sistema, se redujo la programación esto porque al crear el Web
Services, se generalizaban todas las funciones generales o dinámicas de todos el
sistemas tales como son el método de dar de alta, el método de dar de baja, el método
de hacer una consulta ya sea individual o general y el método de modificar una datos
especifico.
50
La programación en los módulos fue siempre con la misma lógica, cada miembro
del equipo de trabajo utilizo los mismo métodos creados desde el Web Services, dando
así la estandarización en la programación, haciendo que todos utilizaran las mismas
técnicas llevando a cabo que nadie dependiera de nadie, cabe mencionar que cuando no
se utilizaba los métodos del web services, la programación era larga y complicada para
algunos integrantes del equipo ya que la lógica de la programación era diferente a todas.
Imagen 3.22: Sintaxis de programación.
Imagen 3.23: Petición del web service.
51
RESULTADOS Y DISCUSIÓN
En este punto se hablara sobre los resultados que se obtuvieron durante el
desarrollo del proyecto, ya que cada tiempo se determinaba una junta donde se
presentaba los avances a un grupo de usuarios para que hicieran la aprobación.
Además en este contenido se podrán visualizar algunas graficas donde demuestren
resultados que se obtuvieron y posibles resultado que se creen lograr obtener.
Los resultado sobre este proyecto actualmente han sido de buen ver, es decir
los resultado por parte de los usuarios han sido calificados de una manera positiva,
aunque también hay algunos usuarios donde su respuesta fue negativa al comentar
que los procesos eran algo agresivos y enredosos.
Tabla 3.1: Encuesta por la calidad del sistema.
Como otro resultado obtenido fue la producción al hacer el sistema de
información por medio de Web Services o hacerlo sin estos por lo que resulto lo
siguiente:
0
5
10
15
Encuesta de calidad 1/Noviembre/2018
52
Tabla 3.2: Resultado de un sistema de información Web Services.
La tabla de arriba los resultados obtenido se realizaron al hacer un método con o
sin Web Services lo cual resulto de la forma anterior (Véase la gráfica x:) donde destaco
en las mayorías de las fases la implicación de los Web Services. En donde el número 10
en la gráfica se dirige a lo “Excelente” y el 0 implica el camino hacia lo “Menos calidad”
Tabla 3.3: Estación de tiempo con Web Services y sin Web Services.
0
2
4
6
8
10
12
Comparación de metodos.
Con Web Services Sin Web Services
0
100
200
300
Estimación de tiempo.
Con Web Services Sin Web Services
53
En la gráfica anterior se realiza un gráfico con la estimación en dias donde se
puede realizar el sistema de información con Web Services y sin Web Services, es una
comparación basada en resultados reales en los casos de la comunicaciones como
también de las llamadas y una estimación en programación, aquí podemos ver que al
principio al usar Web Services puede ser un poco más complejo y llevar más tiempo, pero
una vez que se utiliza de la forma correcta al momento de la programación y en el estado
de pruebas ahorra demasiado trabajo y dias de jornadas.
54
CONCLUSIONES
Tras acabar con mis estadías en la empresa de ALBA Soluciones se logró
hacer un avance de buen impacto en el proyecto del Grupo Cielito Lindo (CLG)
donde la participación mía fue de buena fe, gran aprendizaje y considero
personalmente de buena ayuda en todo el proyecto.
El sistema de información con el uso de web services aún se encuentra en
desarrollo y pruebas, se planea acabar en una fecha de Agosto del 2019. Durante
el otro tiempo se estará estableciendo los demás catálogos o módulos del sistema,
además que se planea la contratación de personas para el área de outsourcing
para pruebas de usuarios comunes. Al igual que algunos avances se le han
presentado algunos usuarios de la empresa y al gerente general del grupo, dando
una respuesta positiva al igual también de cambios y sugerencias de modo de
trabajo de ellos. Todas estas respuestas dadas es por el fácil funcionamiento que
realiza el sistema además de la parte amigable que representa el sistema de
información siendo muy intuitivo en manera de trabajo.
En conclusión, creación, junto con la implementación de un sistema de
información con Web Services logra potencialmente el trabajo gracias a la función
que realiza los web services, estandarizando todo el área de programación y junto
con la base de datos no relacional se puede optimizar aún más las peticiones y
consultas de información por parte de los usuarios.
En cuanto el equipo de trabajo fue excelente desde el principio se sintió el
compañerismos entre todos, además de la confianza que me dieron al solo ser una
practicante de la empresa, con el equipo de trabajo tuve obligaciones las cuales
tenía que cumplir de rigor las tareas que me hacían asignadas. Además que el
compañerismo de los integrantes del equipo de trabajo fue demasiado agradable
porque te compartían su conocimientos además de que cuando no tenía el
conocimiento sobre algo ellos de manera tranquila y organizada te explicaban los
procedimientos que se tenían que llevar a cabo para realizar la tarea.
55
Además durante el proyecto al trabajar con metodologías es más cómodo y
practico trabajar bajo un estándar de trabajo, ya que te ayuda en basarte en
términos de trabajo, creando una organización de trabajo más ideal para un
proyecto, además de la combinación de estructura que se tiene para cada integrante
que participa en los proyectos. Sin olvidar que el combinar varias metodologías sirve
aún más para aplicar varios métodos de trabajo en uno solo, tomando lo mejor de
cada uno y empleándolo en el proyecto donde se trabaja.
El trabajar con web services comprendí que es un método muy útil de en un
sistema de información ya que al tener este paradigma de trabajo ayuda mucho en
el momento de programar ya que estandariza todos los métodos que se puedan
utilizar, ya que cualquier miembro del proyecto puede hacer la función de otro
integrante utilizando el mismo método llamado, así cualquier integrante utiliza la
misma estandarización para reducción el error, además ayuda en la reducción de
código ya que se podrá utilizar y reutilizar un método en cada módulo que
corresponda, al igual que se puede adaptar a múltiples catálogos. Aunque el realizar
un web service puede ser algo nuevo y también puede ser algo complicado de
momento, pero al tener la información, la técnica y la lógica con la experiencia es
algo rutinario el realizar un servicio web. Una de las razones importante al utilizar la
tecnología de Web Services es utilizar la misma base de datos para cualquier
dispositivo e usuario, esto quiere decir que si el sistema quiere adaptarse a un
dispositivo se toma la misma base de datos de forman normal y se manda a llamar
sin tener que depender de ningún otro puente.
Concluyo que es importante tener una buena participación en el equipo de trabajo tener
participación, cumplir con las responsabilidades, aportar ideas, ofrecer ayuda a quien lo
necesite, tener una buena aptitud el hacer esto implica tener una función dentro del
equipo de trabajo.
56
BIBLIOGRAFÍA
[1] Curbera, F. Goland, Y., Klein, J., Leymann, F., Roller, D., Thatte, S., and
Weerawarana, S. 2003. Business Process Execution Language for Web Services.
[2] Rao, J. 2004. Semantic Web service composition via logic-based program
synthesis. PhD thesis. Department of Computer and Information Science,
Norwegian University of Science and Technology.
[3] Lifeng Ai , Maolin Tang , Colin Fidge, Partitioning composite web services for
decentralized execution using a genetic algorithm, Future Generation Computer
Systems, v.27 n.2, p.157-172, February, 2011
[4] Cerami E. (2002). Web Services Essencials. Estados Unidos: O. Reilly. ISBN: 0-
596-00224-6.
[5] Nogales Flores, J. Tomás; Martín Galán, Bonifacio; Arellano Pardo, Mª del
Carmen. “Informática, Derecho y Documentación. Experiencias y posibilidades de
aplicación de los lenguajes de marcado de texto (SGML, HTML y XML) a los
documentos jurídicos”. En: Encuentro sobre Informática y Derecho. (16º. Madrid.
2002). Madrid: Instituto de Informática Jurídica, Universidad Pontificia de Comillas,
2003, pp. 355-382.
[6] Vega Lichacz, David, Desarrollo de la capa de presentación de una plataforma
de gestión de formas de pago y cálculo de condiciones en la gestión de créditos al
consumo utilizando Angular 2, Junio 2017
[7] Tacilla Ludeña, Julio Luis, Implemetation programmer with Angular Universidad
Privada Antenor Orrego – UPAO, Junio 2016
[8] Javier J. Gutiérrez, ¿Qué es un framework web?, Universidad del Norte, Febrero
del 2008
[9] Angular IU Development with PrimeNG, July 2017, By Packt Publishing Ltd.
Libery Place
57
[10] CSCW '12 Proceedings of the ACM 2012 conference on Computer Supported
Cooperative Work
[11] Chodorow, K. (2010), Escaling MongoDB. O’Reilly Media. O’Reilly &
Associates, Inc.
[12] DB-engines-trend. 2015. DB-engines. DB-engines ranking - Trend of MongoDB
Popularity. [En línea] 2015. [Citado el: 06 de abril de 2015.] http://db-
engines.com/en/ranking_trend/system/MongoDB.
[13] [22] JSON, O'Reilly, T: "What is web 2.0: design patterns and business models
for the next generation of software", Disponible: http://www.oreillynet.com/go/web2,
2005.
[14] Joyanes Aguilar, Luis, Programación orientada a objetos. Madrid, McGraw-Hill
Interamericana, c1996, xxvii, 658 p.: 24 cm. Edición; 1ª, ed
[15] Kostadin Damevski, David C. Shepherd; Johannes Schneider, Lori Pollock;
Department of Computer Science, Virginia Commonwealth University, Richmond,
2016
[16] Charles Reis, Carlos Pizano, Communications of the ACM - A Blind Person's
Interaction with Technology, Volume 52 Issue 8, August 2009
[17] Manuel Trigas Gallego, Ana Cristina Domingo Troncho, “Gestores de proyectos
con metodología Scrum” Instituto de México
[18] Optional Scope Contracts Kent Beck, Dave Cleal, 1999. Extreme Programming.
[19] Jovani Alberto Jiménez Builes, Demetrio Arturo Ovalle Carranza, John Fredy
Ochoa Gómez. Escuela de Ingeniería de Sistemas, Facultad de Minas, Universidad
Nacional de Colombia. Aceptado Octubre 23 de 2007.
[20] Ávila Baray, H.L (2006) Introducción a la metodología de la investigación.
58
GLOSARIO
ERP.- significa planificación de recursos empresariales. Se refiere a los paquetes
de sistemas y software que utilizan las organizaciones para administrar las
actividades diarias del negocio.
CLG.- Grupo Cielito Lindo.
DB.-. Base de Datos es un “almacén” que nos permite guardar grandes cantidades
de información de forma organizada para que luego podamos encontrar y utilizar
fácilmente
WS.-. Escribe una forma estandarizada de integrar aplicaciones web.
XP.- Extreme Programming es una metodología de desarrollo que pertenece a las
conocidas como metodologías ágiles, cuyo objetivo es el desarrollo y gestión de
proyectos con eficacia, flexibilidad y control.
VS.- Visual Studio es un conjunto de herramientas y otras tecnologías de desarrollo
de software basado en componentes para crear aplicaciones eficaces y de alto
rendimiento, permitiendo a los desarrolladores crear sitios y aplicaciones web.
SQL.- (Structured Query Language) es un lenguaje estándar e interactivo de acceso
a bases de datos relacionales que permite especificar diversos tipos de operaciones
en ellas.
SOA. - Simple Object Protocol.
REST. - Representation State Transfer.
WSDL. - Web Services Description Language.
SOAP. - Simple Object Access Protocol.
UDDI. - Universal Description Discovery and Integration.
59
RPC. - Remote Procedure Calls.
XML. - Extensible Markup Language.
JSON. – acrónimo de JavaScript Object Notation