UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES
“UNIANDES”
FACULTAD DE SISTEMAS MERCANTILES
CARRERA DE SISTEMAS
PROYECTO DE EXAMEN COMPLEXIVO PREVIO A LA OBTENCIÓN
DEL TÍTULO DE INGENIERO EN SISTEMAS E INFORMÁTICA
TEMA: APLICACIÓN WEB PARA LA EMISIÓN DE COMPROBANTES
ELECTRÓNICOS DE LOS CLIENTES DE LA EMPRESA INPRISE DE
LA CIUDAD DE IBARRA.
AUTOR: TEC. JURADO PUPIALES JOSÉ MIGUEL
ASESOR: ING. MARTÍNEZ CARLOS, MGS.
AMBATO – ECUADOR
CERTIFICACIÓN DEL ASESOR
En calidad de asesor del presente trabajo de investigación, certifico que la tesis cuyo tema es “Aplicación web para la emisión de comprobantes electrónicos de los clientes de la empresa INPRISE de la ciudad de Ibarra”, elaborado por Jurado Pupiales José Miguel, cumple con los requisitos metodológicos y científicos que la Universidad Regional Autónoma de Los Andes “UNIANDES” exige, por lo tanto autorizo su presentación para los trámites pertinentes.
Atentamente,
DECLARACIÓN DE AUTORÍA DEL TRABAJO DE TESIS
Ante las autoridades de la Universidad Regional Autónoma de los Andes –UNIANDES- declaro que el contenido del presente proyecto cuyo tema es: “APLICACIÓN WEB PARA LA EMISIÓN DE COMPROBANTES ELECTRÓNICOS DE LOS CLIENTES DE LA EMPRESA INPRISE DE LA CIUDAD DE IBARRA”, presentado como requisito previo a la obtención del título de INGENIERO EN SISTEMAS E INFORMÁTICA es original, de mi autoría y total responsabilidad. Además autorizo a la Universidad Regional Autónoma de Los Andes –UNIANDES- para que pueda emplear el presente trabajo como apoyo para futuras investigaciones relacionadas con el tema planteado.
Atentamente,
DEDICATORIA
AGRADECIMIENTO
Agradezco de todo corazón a todas las personas que me ayudaron en el transcurso del proceso de formación de mi carrera en especial a las Autoridades, Docentes, Administrativos y todos quienes conforman la Universidad Regional Autónoma de Los Andes –UNIANDES- Extensión Ibarra.
Además quiero agradecer a mis padres y hermanos quienes me apoyaron a cumplir una de mis metas más anheladas.
ÍNDICE GENERAL CERTIFICACIÓN DEL ASESOR
DECLARACIÓN DE AUTORÍA DEDICATORIA
AGRADECIMIENTO RESUMEN EJECUTIVO ABSTRACT
CAPÍTULO I ... 1
1. INTRODUCCIÓN ... 1
1.1. Antecedentes de la investigación ... 1
1.2. Planteamiento del problema ... 2
1.3. Formulación del problema ... 3
1.4. Delimitación del problema ... 3
1.5. Objeto de investigación y campo de acción ... 3
1.5.1. Objeto de investigación ... 3
1.5.2. Campo de acción ... 3
1.6. Identificación de la línea de investigación... 3
1.7. Objetivos ... 3
1.7.1. Objetivo General ... 3
1.7.2. Objetivos Específicos ... 3
1.8. Idea a Defender ... 4
1.9. Justificación de la necesidad, actualidad e importancia del tema. ... 4
1.10. Metodología investigativa a emplear ... 5
CAPÍTULO II ... 11
2. MARCO TEÓRICO ... 11
2.1. Origen de los procesos de emisión de comprobantes electrónicos ... 11
2.2. Análisis de las distintas posiciones teóricas sobre el objeto de investigación ... 12
2.3. Valoración crítica de los conceptos principales... 13
2.3.1. Procesos de facturación electrónica ... 13
2.3.2. Herramientas de desarrollo ... 20
2.3.3. Servidores web ... 25
2.3.5. Lenguajes de Programación ... 32
2.4. Análisis crítico ... 39
2.5. Conclusiones parciales del capítulo ... 39
CAPÍTULO III ... 40
3. MARCO PROPOSITIVO ... 40
3.1. Título ... 40
3.2. Objetivo ... 40
3.3. Desarrollo de la Propuesta ... 40
3.4. Modelo de Cascada ... 41
3.4.1. Análisis ... 41
3.4.1.1. Problemática Actual ... 41
3.4.1.2. Descripción de los cambios deseados ... 42
3.4.1.3. Beneficiarios del proyecto ... 43
3.4.1.4. Requisitos de hardware ... 44
3.4.1.5. Requisitos de Software ... 44
3.4.1.6. Requerimientos por parte de la Administración Tributaria ... 45
3.4.2. Diseño ... 46
3.4.2.1. Arquitectura de la aplicación ... 46
3.4.2.2. Diagrama de Contexto ... 46
3.4.2.3. Diagrama de Nivel 0 ... 47
3.4.2.4. Diagrama de Nivel 1 – Registro de Cliente ... 48
3.4.2.5. Registro de Productos ... 49
3.4.2.6. Registro de Factura ... 50
3.4.2.7. Crea una empresa ... 51
3.4.2.8. Envió de XML al Web Service SRI ... 52
3.4.2.9. Diseño de la base de datos. ... 53
3.4.2.10. Diagrama conceptual de la base de datos ... 54
3.4.2.11. Diagrama lógico de la base de datos. ... 55
3.4.2.12. Funcionabilidad de las tablas ... 56
3.4.2.13. Diseño de la Pantalla Principal ... 57
3.4.2.14. Diseño de Entradas y Salidas ... 58
3.4.3. Codificación ... 64
3.4.3.2. Función que me permite firmar un documento electrónico ... 66
3.4.3.3. Función que me permite enviar documentos electrónicos al Web Service SRI para su validación y envió de e-mail a los clientes de las empresas ... 71
3.4.3.4. Función que me permite mostrar los comprobantes emitidos en la aplicación web ... 77
3.4.3.5. Función que me permite exportar archivos en formato CSV ... 78
3.4.4. Implementación (esquema de la Aplicación web) ... 79
3.4.4.1. Trabajando con la aplicación ... 79
3.4.5. Pruebas de Funcionalidad ... 83
3.4.5.1. Pruebas con datos reales ... 83
3.4.5.2. Prueba con datos erróneos ... 83
3.4.5.3. Pruebas de velocidad en navegadores ... 85
3.4.5.4. Pruebas de Hardware y Software ... 86
3.4.5.5. Pruebas de seguridad lógica ... 86
3.4.6. Mantenimiento ... 87
CONCLUSIONES ... 88
RECOMENDACIONES ... 89 BIBLIOGRAFÍA
ÍNDICE DE TABLAS
Tabla 1 Entidades de Certificación de firmas electrónicas ... 19
Tabla 2 XML vs HMTL ... 21
Tabla 3 Beneficiarios de la aplicación web ... 44
Tabla 4 Características y costos de hardware utilizado ... 44
Tabla 5 Características sobre el Software a utilizar. ... 45
Tabla 6 Función de la Tablas de la Base de Datos ... 56
Tabla 7 Pruebas de Hardware y Software propietario ... 86
Tabla 8 Pruebas de Hardware y Software libre ... 86
ÍNDICE DE FIGURAS
Figura 1 XML y otros lenguajes de marcas ... 21
Figura 2 Aplicaciones de XML ... 22
Figura 3 Componentes de un sistema PostgreSQL ... 30
Figura 4 Proceso de sus dos elementos ... 38
Figura 5 Ciclo de Vida del Software - Modelo Cascada ... 41
Figura 6 Esquema de la aplicación web para INPRISE ... 46
Figura 7 Diagrama de contexto de la Aplicación Web ... 46
Figura 8 Diagrama de nivel 0 de la Aplicación Web ... 47
Figura 9 Diagrama de nivel 1 de la Aplicación web – Registro de Clientes ... 48
Figura 10 Diagrama Nivel 1 de la Aplicación web - Registro de Productos ... 49
Figura 11 Diagrama Nivel 1 de la Aplicación Web - Registro de Facturas ... 50
Figura 12 Diagrama Nivel 1 de la Aplicación Web - Creación de una empresa ... 51
Figura 13 Diagrama Nivel 1 de la Aplicación Web - Envió de XML al Web Service SRI 52 Figura 14 Diseño de la base de datos ... 53
Figura 15 Base de datos conceptual de la Aplicación Web ... 54
Figura 16 Diagrama lógico de la base de datos de la Aplicación Web... 55
Figura 17 Pantalla Principal de la Aplicación Web ... 57
Figura 18 Mapa de Sitio ... 57
Figura 19 Pantalla Principal del Administrador ... 58
Figura 20 Formularios para registrar y poder realizar una factura nueva, agregar un producto, agregar un cliente e agregar una categoría. ... 59
Figura 21 Formulario para crear una nueva empresa. ... 60
Figura 22 Formulario para ingresar un archivo CSV de la empresa... 60
Figura 23 Formulario para realizar una factura ... 61
Figura 24 Formulario en el que se visualiza los comprobantes electrónicos emitidos ... 61
Figura 25 Envió del correo electrónico al cliente de la empresa ... 62
Figura 26 Visualización del documento RIDE emitido ... 62
Figura 27 Visualización del documento XML emitido ... 63
Figura 28 Visualización de reportes en Excel y CSV ... 63
Figura 29 Diseño entrada de la Aplicación Web ... 79
Figura 31 Ingreso a la pantalla donde deberá ingresar el usuario y contraseña ... 80
Figura 32 Ingreso a la pantalla principal cuando esta logueado ... 80
Figura 33 Documentos emitidos por la Aplicación: RIDE y XML al usuario ... 81
Figura 34 Correo emitido a los usuarios de las empresas con los documentos electrónicos ... 82
Figura 35 Reportes en CSV ó EXCEL ... 82
Figura 36 Pruebas con datos reales ... 83
Figura 37 Prueba con datos erróneos ... 84
Figura 38 Error emitido por el Web Service del SRI... 84
RESUMEN EJECUTIVO
Hoy en día el Servicio de Rentas Internas SRI es la entidad que administra los asuntos tributarios en el Ecuador, por lo que con la Resolución No. NAC-DGERCGC12-00105 fechado el 9 de marzo del 2012, en el cual resuelve que se promueva la emisión de comprobantes electrónicos en los sujetos pasivos, es por ello que las empresas deberán cumplir con los requerimientos emitidos en dicho organismo. Las empresas clientes de INPRISE preocupadas al no contar en sus sistemas actuales con una aplicación que les permita emitir dichos documentos electrónicos, han visto la necesidad de solicitar a la empresa INPRISE la implementación de una aplicación web que ayude a cumplir con la resolución, ya que dicha empresa se encarga de solucionar los problemas tecnológicos que poseen sus clientes.
A través de un estudio enfocado en una entrevista al Gerente – Propietario de la Empresa INPRISE se determinó los principales requerimientos que tienen los clientes de INPRISE tales como: dificultades, seguridades al momento de implementar la aplicación web, beneficios que tendrían los clientes cuando se implemente dicha aplicación. Dentro de la metodología empleada está la cuali-cuantitativa y cualitativa con su método analítico-sintético inmerso en los tipos de investigación bibliográfica y de campo, para el desarrollo de lo propuesto se utilizó el método de cascada enmarcándose en la línea de investigación “Desarrollo de software y programación de sistemas”.
ABSTRACT
Nowadays the Internal Revenue Service (IRS) is an institution which manages the tax administration in Ecuador, so with solution Number NAC-DGERCGC12-00105 dated on March 9th, 2012 it is established issuing electronic invoice on taxpayers, then all companies must comply with the requirements issued by this institution. So that the companies that are clients of “INPRISE” Company worried because their current systems do not have an application which lets to issue those electronic documents, consequently they have seen the need to demand from the INPRISE Company the implementation of a web application that lets them to comply with that resolution, so this company is responsible to solve its clients’ technological problems.
By a study focused on an interview to the Owner Manager from the Company “INPRISE”, the principal customers’ requirements were determined, they were: difficulties, assurances when implementing a web application, benefits that the customers could get when the web application can be implemented. The methodology used to develop this paperwork is the quali-quantitative and qualitative with the methods analytic-synthetic related to the bibliographic and field research, for the development of the proposal the cascade method was applied framed in the research line of “Software development and Systems Programming”.
CAPÍTULO I 1. INTRODUCCIÓN
1.1. Antecedentes de la investigación
En el Ecuador la institución que administra los asuntos tributarios es el Servicio de Rentas Internas (SRI), el mismo que fue creado el 02 de diciembre de 1997 basándose en los principios de justicia y equidad, como respuesta a la alta evasión tributaria, alimentada por la ausencia casi total de cultura tributaria. Desde su creación se ha destacado por ser una institución independiente en la definición de políticas y estrategias de gestión que han permitido que se maneje con equilibrio, transparencia y firmeza en la toma de decisiones, aplicando de manera transparente tanto sus políticas como la legislación tributaria. (SRI, 2015)
El SRI mediante Decreto Ejecutivo Nº 3055, publicado en el Registro Oficial Nº 679, del 08 octubre del 2002, expidió el Reglamento de Comprobantes de Venta y Retención; que tiene como finalidad regular la emisión de los comprobantes de venta y retenciones que regula las actividades económicas y comerciales con fines de declaración de impuestos en el Ecuador.
Desde esta fecha en adelante el SRI ha regulado el proceso de facturación incorporando nuevas normativas, resoluciones, mecanismos de emisión, que permiten que las actividades comerciales tanto de empresas como de personas naturales se cumplan, cumpliendo la normativa legal vigente.
El objetivo de la emisión de los comprobantes electrónicos es el de reemplazar el papel y aportar con el cuidado del medio ambiente, pero al mismo tiempo se garantiza la seguridad de la información de cada uno de los contribuyentes.
Es por ello que INPRISE siendo una empresa global de comercio y servicios de soluciones tecnológicas, ya que fue creada con la finalidad de contribuir a entidades que necesitan automatizar procesos; usando software libre y estándares abiertos, y así poder lograr que todas las soluciones sean accesibles a nuestros futuros clientes.
La compañía se mantiene en una posición de liderazgo en Gestión y Desarrollo de Proyectos Tecnológicos, por lo que ha visto la necesidad de desarrollar una aplicación web para la emisión de comprobantes electrónicos de sus clientes, facilitando el ahorro en el gasto de papelería física y tintas de impresión, existe menor probabilidad de falsificación de documentos, mayor seguridad en el resguardo de los documentos, reducción de tiempos de envío de comprobantes, procesos administrativos más rápidos y eficientes y para finalizar mencionar que la emisión de los comprobantes electrónicos tienen la misma validez que los documentos físicos.
1.2. Planteamiento del problema
En la Provincia de Imbabura, en la Ciudad de Ibarra la empresa INPRISE tiene su base de operaciones que consiste básicamente en proveer de soluciones tecnológicas empresariales a sus clientes que les permita mejorar y automatizar sus procesos, en la cual se han encontrado las siguientes situaciones:
Las empresas tienen dificultades con sus clientes al momento de entregar los comprobantes electrónicos ocasionando pérdidas económicas, de tiempo y recursos.
Se tiene la dificultad de integrar en una sola aplicación los procesos de las empresas y sus negocios, lo que implicaría inversión alta en nuevos sistemas y aplicaciones para sus dueños.
1.3. Formulación del problema
¿Cómo mejorar los procesos de emisión de comprobantes electrónicos en los clientes de la empresa INPRISE de la Ciudad de Ibarra?
1.4. Delimitación del problema
Esta investigación se realizará en los clientes de la empresa INPRISE de la ciudad de Ibarra, por medio de la implementación de una aplicación web para mejorar los procesos de emisión de comprobantes electrónicos.
1.5. Objeto de investigación y campo de acción 1.5.1. Objeto de investigación
Procesos Informáticos
1.5.2. Campo de acción Aplicaciones Web
1.6. Identificación de la línea de investigación Desarrollo de software y programación de sistemas
1.7. Objetivos
1.7.1. Objetivo General
Implementar una aplicación web para mejorar los procesos de emisión de comprobantes electrónicos de los clientes de la empresa INPRISE de la ciudad de Ibarra.
1.7.2. Objetivos Específicos
Fundamentar teóricamente los procesos de emisión de comprobantes electrónicos y aplicación web.
Diagnosticar los procesos de facturación que aplican las empresas clientes de INPRISE.
1.8. Idea a Defender
Con la implementación de la aplicación web se mejorará los procesos de emisión de comprobantes electrónicos de los clientes de la empresa INPRISE de la ciudad de Ibarra.
1.9. Justificación de la necesidad, actualidad e importancia del tema.
La implementación de una aplicación web como soporte a los procesos en las empresas clientes de INPRISE, es una necesidad para poder cumplir con los requerimientos emitidos por parte de la Administración tributaria (SRI), y así realizar la emisión de los comprobantes electrónicos a cada uno de los usuarios de las empresas, como se enuncia en la resolución emitida por dicha entidad tributaria.
El presente proyecto está enfocado a solucionar la problemática de los clientes de INPRISE, implementando una aplicación web para mejorar y dar cumplimento con los procesos de emisión de comprobantes electrónicos, buscando siempre calidad en el servicio hacia sus usuarios. Además se puede mencionar entre otros beneficios de la implementación de ésta aplicación web los siguientes:
Permitirá a las empresas ahorro de recursos, disminución de uso del papel y contribución al medio ambiente.
Los clientes de las empresas podrán beneficiarse al recibir sus facturas electrónicamente en sus cuentas de correo electrónico.
Reducción de los tiempos de envío de comprobantes electrónicos por parte de las empresas hacia sus clientes.
Por disposiciones legales y reglamentarias los comprobantes electrónicos tienen la misma validez que los comprobantes físicos.
Proporciona mayor seguridad de la información que generan los procesos de negocio de las empresas.
Reduce drásticamente la posibilidad de falsificaciones de documentos. Incentiva a la ejecución de procesos más eficientes dentro de las empresas.
Adicionalmente cabe mencionar que la aplicación web estará desarrollada en un lenguaje de programación python con framework django y su gestor de base de datos postgresql, las cuales son herramientas tecnológicas novedosas.
1.10. Metodología investigativa a emplear
La metodología investigativa que se empleó en el desarrollo del presente pre-proyecto se describe a continuación:
Métodos: Se aplicaron los siguientes métodos:
Analítico sintético: este método se aplicó para la elaboración del marco teórico, ya que toda la información recopilada en libros e internet fue analizada y sintetizada previamente antes de ser parte del fundamento teórico.
Cuali-cuantitativo: Es un método establecido para estudiar científicamente una muestra reducida de objetos de investigación, el mismo que permitió averiguar las cualidades o características generales de los procesos parte del problema, a través de las técnicas de observación y visitas a las empresas.
Cualitativo: De la problemática posteriormente son ratificadas mediante la cuantificación de la investigación de campo llevada a cabo generalmente en base a la entrevista.
Entre los tipos de investigación que se utilizaron están:
Bibliográfica: Se recopiló información de libros, revistas e internet, respecto de los temas que forman parte del marco teórico. A través de ésta investigación se obtuvo el conocimiento sobre los diferentes procesos abordados en el proyecto que aplican las empresas en la emisión de comprobantes electrónicos.
De campo: Esta investigación se la aplicó en la empresa INPRISE, mediante la cual se obtuvo información de los diferentes procesos de las empresas clientes que es donde se encuentra la situación problemática.
Entrevista: Se la aplicó al Gerente de la empresa INPRISE para determinar las necesidades de sus clientes sobre los requerimientos emitidos por la administración tributaria y así solucionar el problema desde el punto de vista directo.
Instrumentos de la Investigación: Los instrumentos que se utilizaron para esta investigación son:
1. Guía de entrevista
2. Investigación Bibliográfica y linkográfica
Además en el presente pre-proyecto investigativo se procedió a realizar una aplicación web que permita emitir comprobantes electrónicos para cada uno de los clientes de la empresa INPRISE. La aplicación se la desarrolló enmarcada dentro de los requerimientos legales y reglamentarios regulados por la Administración Tributaria de nuestro país.
El desarrollo de este proceso estuvo alineado al cumplimiento de las siguientes actividades: En primera instancia se desarrolló la interfaz de comunicación y enlace hacia las aplicaciones que tienen los clientes en sus negocios o empresas a fin de recopilar la información necesaria para el proceso de emisión de comprobantes electrónicos.
Luego se diseñó el módulo de emisión de comprobantes electrónicos como facturas, notas de crédito, notas de débito, comprobantes de retención, guías de remisión.
Se desarrolló las interfaces para la comunicación con el web services del Servicio de Rentas Internas para obtener la autorización de los comprobantes electrónicos.
Se desarrolló un módulo de facturación para las empresas que no dispongan de un sistema de facturación normal.
Se incorporó los requerimientos tecnológicos y legales como firma electrónica, internet, web services entre otros.
Se desarrolló el módulo para enviar los comprobantes electrónicos mediante correo electrónico a los usuarios de la aplicación.
Se implementó la página web empresarial en la que las empresas clientes podrán ingresar a un ambiente de administración de sus comprobantes electrónicos.
Se implementó el módulo de administración de usuarios por parte de la empresa INPRISE.
Entrevista dirigida al Gerente-Propietario de la empresa INPRISE.
La presente entrevista tiene como objetivo recolectar información acerca de los procesos y servicios que brinda la empresa INPRISE a sus clientes.
Nombre: Luis Antonio Burbano Robles
Cargo: Gerente-Propietario de la empresa INPRISE
1. Cuáles son las actividades a las que se dedica INPRISE?
INPRISE es una empresa que se dedica a crear, automatizar procesos y solucionar problemas tecnológicos usando software libre y estándares abiertos, logrando así que todas las soluciones sean accesibles a nuestros clientes
2. Qué área de cobertura de servicios tiene INPRISE?
INPRISE brinda servicio a nivel nacional ofreciendo asistencia de calidad a cada uno de sus clientes.
3. Cuál es la gama de servicios que la empresa ofrece a sus clientes?
INPRISE es una empresa que ofrece servicios es diseño y desarrollo web, desarrollo de sistemas, dispositivos móviles, computación en la nube y sistemas de geoposicionamiento.
4. Tiene la empresa INPRISE solicitudes de soluciones de facturación electrónica?
Los clientes de INPRISE sí han solicitado que se implemente este tipo de soluciones ya que es un requisito emitido por parte de la administración tributaria.
5. Cómo ve usted los temas relacionados con las disposiciones por parte del SRI para
que las empresas (ciertos sectores) emitan sus comprobantes electrónicamente?
6. Cuáles considera usted que son los beneficios para la empresas, disponer de una
solución de facturación electrónica?
Con este tipo de proyecto las empresas ayudarán a la contribución del medio ambiente, el ahorro de papel, seguridad en la información, mejorará el tiempo de respuestas rápidas y los procesos de cada una de las empresas.
7. Considera usted que los costos de implementación de facturación electrónica son altos
para las empresas y negocios?
Sí, porque las empresas tendrían que cambiar los sistemas contables con los que trabajan.
8. A su criterio qué dificultades enfrentan las empresas para implementar la facturación
electrónica?
El principal inconveniente son los recursos económicos ya que las empresas tendrían que adquirir un nuevo sistema contable en donde contenga un módulo de facturación electrónica, además otro inconveniente es que las empresas no cuentan con personal técnico y/o capacitado.
9. Considera usted que por parte del SRI existe la suficiente guía y ayuda hacia las
empresas para implementar facturación electrónica?
Sí, porque en la página oficial del SRI existen fichas y manuales sobre este nuevo proceso al que tienen que acogerse los sujetos pasivos.
10.Qué aspectos de seguridad deben tomarse en cuenta para implementar facturación electrónica?
11.En qué forma los clientes de INPRISE solicitan la implementación de la facturación electrónica?
Los clientes de INPRISE solicitan la implementación mediante reuniones de trabajo, por correo electrónico y vía telefónica.
Análisis de Entrevista
Después de realizar la entrevista al Gerente-Propietario de la empresa INRPISE se obtuvo como resultado una información detallada de los principales requerimientos que tienen los clientes de INPRISE tales como: El Gerente indicó que las dificultades que existen en las empresas para implementar un nuevo sistema contable en donde contenga un módulo de facturación electrónica, son principalmente los recursos económicos para adquirirlo; por otro lado las empresas no cuentan con personal técnico y/o capacitado, además manifestó que la empresa INPRISE sí tiene solicitudes por parte de sus clientes en cuanto a la implementación de este tipo de soluciones de emisión de comprobantes electrónicos, ya que es un requerimiento emitido por parte de la administración tributaria SRI; y finalmente el Gerente-Propietario señaló que se debe tomar algunos aspectos de seguridad al momento de implementar una aplicación web en las empresas como por ejemplo tener un protocolo seguro, es decir salga por HTTPS, utilizando certificación digital. A nivel de implementación se debe tomar en cuenta las seguridades de base de datos con encriptaciones de los campos a nivel de claves, cifrado de información. Así mismo cada usuario deberá manejar su firma electrónica para que pueda realizar el proceso de emisión de comprobantes electrónicos así como también a nivel de aplicación los usuarios deberán tener un módulo de autenticación de usuarios, de esta manera se ha determinado que la solución a todos estos inconvenientes es el de desarrollar una aplicación web para la emisión de comprobantes electrónicos de los clientes de INPRISE de la ciudad de Ibarra. 1.11. Resumen de la Estructura del Proyecto
continuación se planteó el objetivo general y los específicos que se derivan para dar cumplimiento a la investigación, luego del análisis se logró establecer la idea a defender; mediante la justificación se definió la relevancia, importancia y conveniencia sobre el trabajo investigativo, además se empleó una metodología de acuerdo al proyecto a realizarse, finalmente se explicó el aporte teórico y la significación práctica con la que se finaliza la primera parte. En la segunda parte se utilizó una estructura teórica que permitió tener un conocimiento evidente del objeto de estudio, para concluir la tercera y última parte del trabajo investigativo se realizó el desarrollo de la propuesta dando así solución al problema investigativo.
1.12. Aporte Teórico y significativo práctica
Como aporte teórico es la investigación enfocada a los procesos de emisión de comprobantes electrónicos y aplicación web mediante el uso de herramientas tecnológicas para su entorno.
El presente trabajo investigativo tiene una significación práctica relevante en los clientes de la empresa INPRISE de la ciudad de Ibarra, ya que tendrán disponible el módulo de facturación electrónica con lo que podrán dar cumplimiento a las disposiciones emitidas por la Administración Tributaria SRI.
CAPÍTULO II 2. MARCO TEÓRICO
2.1. Origen de los procesos de emisión de comprobantes electrónicos
La contabilidad es quizás una de las actividades por no decir la más importante dentro del campo de los negocios y empresas, dada su naturaleza de informar acerca del incremento de la riqueza, la productividad y el posicionamiento de las empresas en los ambientes competitivos.
La importancia de los sistemas de información contable radica en la utilidad que tienen estos tanto para la toma de decisiones de los socios de las empresas como para aquellos usuarios externos de la información.
Por lo anterior uno de los retos de la contabilidad en el mundo de hoy aparte de seguir apoyándose en la contabilidad normal que en sí misma plantea la validez de la información contable, debe encontrar y aplicar nuevos elementos que le permitan de una manera integral reflejar todo lo que ocurre en la empresa evidenciándolo en los estados financieros y en los respectivos informes. Un efecto que produce estos nuevos cambios en la presentación de la información es que hace que sobresalga en medio de otras empresas.
Los sistemas de información han desempeñado un lugar importante en el mercado como elemento de control y organización, sin embargo no debe delimitarse solo a esa función, dado que se encuentra en la necesidad de buscar el poder explicativo de los sistemas de Información en el comportamiento de los usuarios de la información empresarial, así no solo se busca un manejo técnico en la empresa sino que se tomen todos los componentes de la empresa tanto tangibles como intangibles que se permitan competir en un entorno que cada vez es más fuerte y más agresivo.
y cumplir con la información que satisfaga los clientes, proveedores y accionistas, como la agilidad y validez de los datos que se procesan. (Pérez Samiento, 2015)
En el Ecuador la institución que administra los asuntos tributarios es el Servicio de Rentas Internas, SRI, el mismo que fue creado el 02 de diciembre de 1997 basándose en los principios de justicia y equidad, como respuesta a la alta evasión tributaria, alimentada por la ausencia casi total de cultura tributaria. Desde su creación se ha destacado por ser una institución independiente en la definición de políticas y estrategias de gestión que han permitido que se maneje con equilibrio, transparencia y firmeza en la toma de decisiones, aplicando de manera transparente tanto sus políticas como la legislación tributaria. (SRI, 2015)
La administración tributaria (SRI), con el afán de facilitar los procesos, ha permitido e incentivado a incorporar herramientas tecnológicas en las empresas y negocios que faciliten el cumplimiento de las obligaciones tributarias en el Ecuador, por tal motivo según la Resolución No. NAC-DGERCGC12-00105 con fecha 9 de marzo del 2012, se promueve la emisión de comprobantes electrónicos en el que RESUELVE: EXPEDIR LAS NORMAS PARA EL NUEVO ESQUEMA DE EMISIÓN DE
COMPROBANTES DE VENTA, RETENCIÓN Y DOCUMENTOS
COMPLEMENTARIOS MEDIANTE MENSAJE DE DATOS (COMPROBANTES ELECTRÓNICOS), mencionando que se debe cumplir con los requisitos legales y reglamentarios de dicha entidad hacia los sujetos pasivos. Es por ello que surge la necesidad en las empresas de contar con aplicaciones o sistemas que les permitan administrar de forma adecuada la información que genera sus procesos en concordancia con la normativa vigente.
2.2. Análisis de las distintas posiciones teóricas sobre el objeto de investigación Según, Pérez (2013), expresa una sencilla definición de proceso, y que responde al significado:
Secuencia [ordenada] de actividades [repetitivas] cuyo producto tiene valor intrínseco para su usuario o cliente.
toda información creada, generada, procesada, enviada, recibida, comunicada o archivada por medios electrónicos y que puede ser intercambiada por cualquier medio.
Según la Resolución No. NAC-DGERCGC12-00105, fechado el 09 de marzo del 2012, en su artículo 2, menciona: “Los sujetos pasivos de tributos, podrán emitir como ‘mensajes de datos’ conforme la definición de la ‘Ley de Comercio Electrónico, Firmas Electrónicas y Mensajes de Datos’, los siguientes comprobantes de venta, retención y documentos complementarios:
a) Facturas;
b) Comprobantes de Retención; c) Guías de Remisión;
d) Notas de Crédito; e) Notas de Débito;”
Con la relación a las distintas posiciones teóricas, se puede definir que los procesos son pasos a seguir para llegar a obtener un resultado, los comprobantes electrónicos a emitirse son facturas, comprobantes de retención, guías de remisión, notas de crédito y notas de débito; para el desarrollo de la aplicación se utilizará nuevas tecnologías que permiten mejorar los procesos de emisión de comprobantes electrónicos en los clientes de la empresa INPRISE de la ciudad de Ibarra.
2.3. Valoración crítica de los conceptos principales 2.3.1. Procesos de facturación electrónica
2.3.1.1. Aplicación web
b) Características de Aplicación Web
El beneficiario puede obtener facilidad de acceso a las aplicación web mediante cualquier navegador web ya sea mozilla, chrome, entre otros.
El beneficiario puede acceder a la aplicación web sin importar donde se encuentre, pero, al mismo tiempo debe tener acceso a internet.
Existe una sola aplicación instalada en el servidor, pero pueden existir miles de clientes que acceden al mismo tiempo a dicha aplicación; por lo tanto se puede actualizar y mantener una única aplicación y todos sus clientes verán los resultados inmediatamente.
c) Ciclo de vida de una aplicación web
Una aplicación web está formada por componentes web, ficheros de recursos estáticos como las imágenes, clases y librerías de utilidades. El contenedor proporciona algunos servicios de soporte que mejoran las capacidades de los componentes web y los hacen más sencillos de desarrollar. Sin embargo, puesto que una aplicación web debe tener en cuenta estos servicios, el proceso de creación y ejecución de una aplicación web es distinto del de una aplicación Java tradicional. Podríamos decir que este proceso se divide en las siguientes seis etapas:
Codificación del componente web.
Codificación del descriptor de despliegue de la aplicación.
Complicación de los componentes web de la aplicación y las clases de apoyo referenciadas por aquéllos.
Opcionalmente, empaquetamiento de la aplicación en una unidad desplegable. Despliegue de la aplicación en un contenedor web.
Acceso a la URL que referencia a la aplicación desarrollada. (Roldán Martínez, Valderas Aranda, & Óscar, 2010, pág. 28)
d) Módulos web
Además de los componentes web y los recursos web, un módulo web puede contener otros ficheros:
Clases de utilidades en el lado del servidor, generalmente, en forma de Java Beans.
Clases en el lado del cliente como applets y clases de utilidades. (Roldán Martínez, Valderas Aranda, & Óscar, 2010, pág. 28)
2.3.1.2. Facturación electrónica
a) Definición.- Según (Moro Vallina & Rodés Bach, 2014, pág. 62) Una factura electrónica es el equivalente virtual de una factura en papel, un documento electrónico que cumplen los mismos requisitos funcionales que esta. La facturación electrónica consiste en la transmisión de un fichero o archivo entre el ordenador del emisor y del receptor, firmado digitalmente para garantizar su identidad.
b) Ventajas de la facturación electrónica. Ahorro de costes
Mejora de la eficiencia
Integración con las aplicaciones de gestión internas de la empresa. Obtención de la información en tiempo real.
Reducción de tiempo de gestión. Agilidad en la toma de decisiones.
Disminución de costes de los documentos en papel. Control de acciones erróneas.
Uso eficaz de los recursos financieros. (Moro Vallina & Rodés Bach, 2014, pág. 62)
2.3.1.3. Comprobantes electrónicos
Es el envío mediante "mensajes de datos", de comprobantes de venta, retención y documentos complementarios, los cuales contienen una firma electrónica del contribuyente emisor, se envían en tiempo real y tienen validez tributaria. (Servicio de Rentas Internas, 2015)
‘mensajes de datos’ conforme la definición de la ‘Ley de Comercio Electrónico, Firmas Electrónicas y Mensajes de Datos’, los siguientes comprobantes de venta, retención y documentos complementarios:
f) Facturas;
g) Comprobantes de Retención; h) Guías de Remisión;
i) Notas de Crédito; j) Notas de Débito;” 2.3.1.4. Firmas electrónicas
a) Definición.- Son los datos en forma electrónica consignados en un mensaje de datos, adjuntados y lógicamente asociados al mismo, y que puedan ser utilizados para identificar al titular de firma en relación con el mensaje de datos, e indicar que el titular de la firma aprueba y reconoce la información contenida en el mensaje de datos. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 4)
b) Efectos de la firma electrónica.- La firma electrónica tendrá igual validez y se le reconocerán los mismos efectos jurídicos que a una firma manuscrita en la relación con los datos consignados en documentos escritos y será admitida como prueba en juicio. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 4)
c) Requisitos de la firma electrónica.- Para su validez, la firma electrónica reunirá los siguientes requisitos, sin perjuicio de los que puedan establecerse por acuerdo entre las partes:
Ser individual y estar vinculada exclusivamente a su titular;
Que permita verificar inequívocamente la auditoría e identidad del signatario, mediante dispositivos técnicos de comprobación establecidos por esta Ley y sus reglamentos;
Que al momento de creación de la firma electrónica, los datos con los que se creare se hallen bajo control exclusivo del signatario; y,
Que la firma sea controlada por la persona a quien pertenece. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 5)
d) La firma electrónica en un mensaje de datos.- Cuando se fijare la firma electrónica en un mensaje de datos, aquélla deberá enviarse en un mismo acto como parte integrante del mensaje de datos o lógicamente asociada a éste. Se presumirá legalmente que el mensaje de datos firmado electrónicamente conlleva la voluntad del emisor, quien se someterá al cumplimiento de las obligaciones contenidas en dicho mensaje de datos, de acuerdo a lo determinado en la Ley. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 5)
e) Obligaciones del titular de la firma electrónica.- El titular de la firma electrónica deberá:
Cumplir con la obligaciones derivadas del uso de la firma electrónica;
Actuar con la debida diligencia y tomar las medidas de seguridad necesarias, para mantener la firma electrónica bajo su estricto control y evitar toda utilización no autorizada;
Notificar por cualquier medio a las personas vinculadas, cuando exista el riesgo de que su firma sea controlada por terceros no autorizados y utilizada indebidamente;
Verificar la exactitud de sus declaraciones;
Responder por las obligaciones derivadas del uso no autorizado de su firma, cuando no hubiere obrado con la debida diligencia para impedir su utilización, salvo que el destinatario conociere de la inseguridad de la firma electrónica o no hubiere actuado con la debida diligencia;
Las demás señaladas en la ley y sus reglamentos. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 5)
f) Duración de la firma electrónica.- Las firmas electrónicas tendrán duración indefinida. Podrán ser revocadas, anuladas o suspendidas de conformidad con lo que el Reglamento a esta Ley señale. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 5)
g) Certificado de firma electrónica.- Es el mensaje de datos que certifica la vinculación de una firma electrónica con una persona determinada, a través de un proceso de comprobación que confirma su identidad. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 6)
h) Uso del certificado de firma electrónica.- El certificado de firma electrónica se empleará para certificar la identidad del titular de una firma electrónica y para otros usos, de acuerdo a esta Ley y su Reglamento. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 6)
i) Requisitos de los certificados de firma electrónica.- El certificado de firma electrónica para ser considerado válido contendrá los siguientes requisitos:
Identificación de la entidad de certificación de información; Domicilio legal de la entidad de certificación de información;
Los datos del titular del certificado que permitan su ubicación e identificación;
El método de verificación de la firma del titular del certificado; Las fechas de emisión y expiración del certificado;
El número único de serie que identifica el certificado;
La firma electrónica de la entidad de certificación de información; Las limitaciones o restricciones para los usos del certificados; e,
j) Duración del certificado de firma electrónica.- Salvo acuerdo contractual, el plazo de validez de los certificados de firma electrónica será el establecimiento en el Reglamento a esta Ley. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 6)
Se enuncia a continuación las entidades certificadoras en el país para la adquisición de los certificados digitales de la firma electrónica:
Banco Central del Ecuador Consejo de la Judicatura Security Data
ANF
Tabla 1 Entidades de Certificación de firmas electrónicas Elaborado por: El Autor
Cabe mencionar que dos entidades son instituciones públicas y las restantes son empresas privadas.
2.3.1.5. Procesos
a) Definición.- Una sencilla definición de proceso, y que responde al significado que a esta palabra hemos dado en este texto, es:
Secuencia [ordenada] de actividades [repetitivas] cuyo producto tiene valor intrínseco para su usuario o cliente. (Pérez Fernández de Velasco, 2013, pág. 49) 2.3.1.6. Correo Electrónico
a) Definición.- El correo electrónico (también conocido como e-mail, email o mail) funciona de manera similar al correo tradicional, pero ofrece mayores prestaciones.
Para intercambiar mensajes por medio de este sistema, se necesita contar con una dirección de correo electrónico y tener acceso a un equipo (computadora, teléfono móvil u otro dispositivo) con conexión internet.
Y desde el equipo con conectividad a internet hay dos maneras de usar el e-mail. Una de ellas es a través de los sistemas Web mail como Gmail (www.gmail.com), Yahoo! (www.yahoo.com) y Hotmail (www.hotmail.com), a los cuales se accede por medio de un navegador Web.
La otra alternativa es usar un software específico (Microsoft Outlook o Mozilla Thunderbird, entre otros) que se debe tener instalado en el dispositivo electrónico (por ejemplo, computadora o teléfono móvil) con conexión a Internet. (Veloso, 2011, pág. 91)
2.3.1.7. Base legal
Ley Régimen Tributario Interno
Ley de Comercio Electrónico, Firmas y Mensajes de Datos publicando en el Suplemento del Registro Oficial No. 735 de 31 de diciembre de 2002.
Decreto No. 181 publicado en el Registro Oficial No. 553 de 11 de octubre del 2011, en el cual norma la numeración de identificadores de campo y campos mínimos de los tipos de certificados.
Reglamento para la Aplicación de la Ley de Régimen Tributario Interno.
Reglamento de Comprobantes de Venta, Retención y Documentos Complementarios.
Resolución No. NAC-DGERCGC12-00105 de 09 de marzo de 2012, publicada en Registro Oficial No. 666 de 21 de marzo de 2012.
Resolución NAC-DGERCGC14-00790, publicada en el Registro Oficial 346 de 2 de octubre de 2014.
Resolución NAC-DGERCGC14-00787, publicada en el Registro Oficial 346 de 2 de octubre de 2014.
Resolución NAC-DGERCGC15-00000284, publicada en el Registro Oficial 473 de 6 de abril de 2015.
2.3.2. Herramientas de desarrollo 2.3.2.1. XML
diseñado para construir estructuras de datos descriptivas. SGML pese a ser muy potente, es demasiado complejo para la mayoría de las aplicaciones. Por ellos se intentó definir una versión más simplificada y mucho más flexible: XML. La relación entre ambos lenguajes está representada en la Figura 1. (Roldán Martínez, Valderas Aranda, & Óscar, 2010, pág. 255)
Figura 1 XML y otros lenguajes de marcas Elaborado por: El autor
Al igual que HTML, XML utiliza etiquetas, sin embargo, en lugar de especificar cómo debe presentarse la información contenida entre las marcas, se limitan a indicar qué significan. Por ejemplo, <autor> David Roldán </autor>.
Tratamiento de la información
Se encarga de estructurar la información de forma lógica.
Se centra en la forma de presentar la información Procesamiento de
la información
Sencillo, ya que toda la información se encuentra ya estructurada según una lógica específica.
Muy complejo, debido a información se encuentra mezclada con etiquetas que definen el estilo de presentación.
Tabla 2 XML vs HMTL Elaborado por: El autor
En definitiva, XML, junto con todas sus tecnologías relacionadas, abre un nuevo abanico de posibilidades a la hora de desarrollar aplicaciones. Una de las grandes ventajas de XML es su orientación al intercambio de información, al ser independiente de la aplicación que lo utilice.
La figura 2 muestra cómo la información contenida en un único documento XML es visualizada en dispositivos diferentes. Esta facilidad de intercambio de información ha convertido a XML en el punto alrededor del cual giran la mayoría de las aplicaciones B2B (Business to Business). (Roldán Martínez, Valderas Aranda, & Óscar, 2010, pág. 256)
HTML
XML
SGML
Figura 2 Aplicaciones de XML Elaborado por: EL autor
b) Modelos de Procesamiento XML
En general, el modelo de procesamiento de documentos XML en Java se divide en tres fases:
Procesamiento de la entrada XML
Análisis y validación del documento fuente.
Reconocimiento y búsqueda de información basándose en su etiquetado en el documento fuente.
Extracción de la información localizada. Manejo de la lógica de negocio
Procesamiento de la salida XML:
Construcción de un modelo de documento.
Aplicación de hojas de estilo XSLT o serialización directamente a XML. (Roldán Martínez, Valderas Aranda, & Óscar, 2010, pág. 265)
2.3.2.2. JavaScript
JavaScript es actualmente una tecnología vital en lo que al desarrollo de aplicaciones modernas para la Web se refiere. Todos los navegadores se han estado esforzando en dar un mejor soporte y rendimiento para JavaScript, adicionalmente otros grupos han creado extensiones muy interesantes para esta tecnología.
Todos los desarrolladores Web hoy en día estarán de acuerdo con las anteriores afirmaciones, pero lo que hace a JavaScript aún más importante es que está acompañando en su evaluación a HTML5, lo que hace de la Web ya no sólo un asunto de alojar páginas
para después mostrarlas, sino la convierte en una verdadera plataforma de desarrollo para aplicaciones. (Herrera Ríos, 2012, pág. 163)
2.3.2.3. CSS
Las hojas de estilo en cascada (Cascading Style Sheets) ofrecen propiedades para ampliar el lenguaje HTML en la presentación visual de las páginas Web. El lenguaje CSS, definido por primera vez en el año 1996, es el más conocido y utilizado para definir las propiedades de formato de los diferentes elementos HTML. Este lenguaje permite vincular los ducmentos HTML con “Plantillas de documento” (Hojas de estilo o StyleSheets), que, además de contener la información topográfica de los elementos visuales de la página, permiten separar completamente la estructura de contenidos de su representación y presentación actuales, no sólo en el monitor sino en cualquier pantalla imaginable (móvil, PDA, etc), tecnología de soporte (lectores de pantalla, líneas en braille) o en el papel impreso. El propio lenguaje (X)HTML se ha visto reforzado para la construcción de las estructuras lógicas de la página. (Schulz, 2009, pág. 4)
2.3.2.4. jQuery 2.0
jQuery es uno de los complementos más esenciales para el desarrollo web, usado en millones de sitios en toda la web, ya que nos facilita mucho el desarrollo de aplicaciones enriquecidas del lado del cliente, en Javascript, compatibles con todos los navegadores.
Para los que se inician, conviene aclarar que jQuery no es un lenguaje, sino una serie de funciones y métodos de Javascript. Por tanto, Javascript es el lenguaje y jQuery es una librería que podemos usar opcionalmente si queremos facilitar nuestra vida cuando programamos en Javascript. A veces nos podemos referir a jQuery como framework o incluso como un API de funciones, útiles en la mayoría de proyectos web.
funcionalidades que además se extiende por medio de miles de plugins que ofrece la comunidad para implementar cualquier tipo de comportamiento. (Alvarez, 2012)
2.3.2.5. HTML5
HTML es parte esencial de la Web y ha logrado cambiar y madurar al ritmo de Internet en general, en las primeras concepciones del HTML fue simplemente una manera útil de usar etiquetas (tags) para determinar cómo una página debería ser desplegada, pero se han ido añadiendo varias características. Hoy Internet sigue siendo acerca de documentos, pero más que nunca, también de aplicaciones, sobre todo si se toma en cuenta que antes sólo las computadoras de escritorio eran las únicas que desplegaban contenido de la Web, pero ahora también los dispositivos móviles lo pueden hacer, por lo que todo parece indicar que es el momento de un nuevo estándar, y HTML5 es ese estándar. (Herrera Ríos, 2012, pág. 3)
a) Ventajas
Posee una gran cantidad de funcionalidades que los desarrolladores sólo lograban con el uso de algún plug-in de terceros como Applets de Java o Flash embebidos en el código.
Las mejoras en el manejo de multimedia son ampliamente superiores; imágenes, video, audio y fuentes de texto son mucho más manipulables. En muchos casos, estas mejoras se pueden tomar como una respuesta directa a Flash.
HTML5 nos proporcionará una manera de hacer un código más limpio, más fácil de leer y escribir.
b) Desventaja
2.3.3. Servidores web 2.3.3.1. NGINX
NGINX (pronunciado como “engine X”) es un servidor web HTTP de código abierto que también incluye servicios de correo electrónico con acceso al Internet Message Protocol (IMAP) y al servidor Post Office Protocol (POP). Además, NGINX está listo para ser utilizado como un proxy inverso. En este modo, NGINX se utiliza para equilibrar la carga entre los servidores back-end, o para proporcionar almacenamiento en caché para un servidor back-end lento.
Empresas como la compañía de TV online Hulu utilizan NGINX por su estabilidad y configuración simple. Otros usuarios, como Facebook y WordPress.com, lo utilizan porque la arquitectura asíncrona del servidor web deja una pequeña huella de memoria y bajo consumo de recursos, haciéndolo ideal para el manejo de múltiples y cambiantes activas páginas Web.
Esa es una tarea difícil. De acuerdo al director de NGINX, el arquitecto Igor Sysoev, es así como NGINX puede soportar cientos de millones de usuarios de Facebook.
El programa está disponible para su uso y es de código abierto. De acuerdo con Sysoev, el modelo de negocio de la compañía se basa en dos licencias. “La versión con software libre [Software Libre y Código Abierto] más funcional y actualizada”, y una. “extensiones comerciales para ser reconocidos en base a esta versión y que valga la pena su compra para las empresas que necesitan funciones avanzadas que normalmente no están disponibles en ningún otro producto open-source similar. (DesdeLinux, 2013)
a) Características
Servidor de archivos estáticos, índices y autoindexado. Proxy inverso con opciones de caché.
Balanceo de carga. Tolerancia a fallos.
Soporte de HTTP sobre SSL.
Soporte para FastCGI con opciones de caché.
Streaming de archivos FLV y MP4.8 Soporte para autenticación.
Compatible con IPv6
Soporte para protocolo SPDY Compresión gzip.
Habilitado para soportar más de 10.000 conexiones simultáneas. (Wikipedia, 2015)
2.3.4. Base de datos
Una Base de Datos es una colección de información perteneciente a un mismo contexto (o
problema), que está almacenada de forma organizada en ficheros.
Una base de datos está organizada mediante tablas, que almacenan información concerniente a algún objeto o suceso. Estas tablas se relacionan formando vínculos o relaciones entre ellas, que ayudan a mantener la información de los diversos objetos de forma ordenada y coherente (sin contradicciones). Cada una de estas tablas es una estructura que se parece a las hojas de cálculo, pues está dispuesta mediante filas y columnas. De este modo, cada fila almacena un registro con tantos campos como columnas tenga la tabla. (López Montalbán, Castellano Pérez, & Orpino Rivas, 2013, págs. 6 - 7)
2.3.4.1. Conceptos
Uno de los grandes problemas al que se enfrentan los informáticos cuando comienzan su aprendizaje, es el gran número de términos desconocidos que debe asimilar, incluyendo el enorme número de sinónimos y siglas que se utilizan para nombrar la misma cosa. A continuación se definen los siguientes conceptos:
Dato: El dato es un trozo de información concreta sobre algún concepto o suceso. Por ejemplo, 1996 es un número que representa un año de nacimiento de una persona. Los datos se caracterizan por pertenecer a un tipo.
numéricos se pueden combinar para obtener tipos de datos más elaborados. Por ejemplo, el tipo de dato Fecha contiene tres datos numéricos, representado el día, el mes y el año de esta fecha.
Campo: Un campo es un identificador para toda una familia de datos. Cada campo pertenece a un tipo de datos. Por ejemplo, el campo “Fecha Nacimiento” representa las fechas de nacimiento de las personas que hay en la tabla. Este campo pertenece al tipo de dato Fecha. Al campo también se le llama columna.
Registro: Es una recolección de datos referentes a un mismo concepto o suceso. Por ejemplo, los datos de una persona pueden ser un NIF, año de nacimiento, su nombre, su dirección, etc. A los registros también se les llama tuplas o filas.
Campo Clave: Es un campo especial que identifica de forma única a cada registro. Así, el NIF es único para cada persona, por tanto es campo clave.
Tabla: Es un conjunto de registros bajo un mismo nombre que representa el conjunto de todos ellos. Por ejemplo, todos los clientes de una base de datos se almacenan en una tabla cuyo nombre es Clientes.
Consulta: Es una instrucción para hacer peticiones a una base de datos. Puede ser una búsqueda simple de un registro específico o una solicitud para seleccionar todos los registros que satisfagan un conjunto de criterios. Aunque en castellano, consulta tiene un significado de extracción de información, en inglés query, una consulta es una petición, por tanto, además de las consultas de búsqueda de información, que devuelven los campos y registros solicitados, hay consultas (peticiones) de eliminación o inserción de registros, de actualización de registros, cuya ejecución altera los valores de los mismos.
Índice: Es una estructura que almacena los campos clave de una tabla, organizándolos para hacer más fácil encontrar y ordenar los registros de esa tabla. El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el elemento que se desea indexar y su posición en la base de datos. Para buscar un elemento que esté indexado, solo hay que buscar en el índice de dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice.
los dispositivos de almacenamiento del ordenador, aunque sí se almacena su definición.
Informe: Es un listado ordenado de los campos y registros seleccionados en un formato fácil de leer. Generalmente se usan como peticiones expresas de un tipo de información por parte de un usuario. Por ejemplo, un informe de las facturas impagadas del mes de enero ordenado por nombre de clientes.
Guiones: o scripts. Son un conjunto de instrucciones, que ejecutadas de forma ordenada, realizan operaciones avanzadas de mantenimiento de los datos almacenados en la base de datos.
Procedimientos: Son un tipo especial de script que está almacenado en la base de datos y que forma parte de su esquema. (López Montalbán, Castellano Pérez, & Orpino Rivas, 2013, págs. 7-8-9)
2.3.4.2. Estructura de una base de datos
Una base de datos almacena los datos a través de un esquema. El esquema es la definición de la estructura donde se almacenan los datos, contiene todo lo necesario para organizar la información mediante tablas, registros (filas) y campos (columnas). También contiene otros objetos necesarios para el tratamiento de los datos (procemientos, vistas, índices, etc.). Al esquema también se le suele llamar metainformación, es decir, información sobre la información o metadatos.
Los gestores de bases de datos modernos Oracle, MySQL, PostgreSQL y DB2, entre otros almacenan el esquema de la base de datos en tablas, de tal manera que el propio esquema de la base de datos se puede tratar como si fueran datos comunes de la base de datos. Ver figura 3. (López Montalbán, Castellano Pérez, & Orpino Rivas, 2013, págs. 9-10)
2.3.4.3. Uso de las bases de datos
Las bases de datos son ubícuas, están en cualquier tipo de sistemas informático, a continuación se exponen solo algunos ejemplos de sus usos más frecuentes:
Bases de datos Administrativas: Cualquier empresa necesita registrar y relacionar sus clientes, pedidos, facturas, productos, etc.
Bases de datos motores de búsquedas: Por ejemplo Google o Altavista, tienen una base de datos gigantesta donde almacenan información sobre todos los documentos de Internet. Posteriormente millones de usuarios buscan en la base de datos de estos motores.
Científicas: Recolección de datos climáticos y medioambientales, químicos, genómicos, geológicos…
Configuraciones: Almacenan datos de configuración de un sistema informático, como por ejemplo, el registro de Windows.
Bibliotecas: Almacenan información bibliográfica, por ejemplo, la famosa tienda virtual amazon o la biblioteca de un instituto.
Censos: Guardan información demográfica de pueblos, ciudades y países.
Virus: Los antivirus guardan información sobre todos los potenciales software maliciosos.
Otros muchos usos: Militares, videojuegos, deportes, etc. (López Montalbán, Castellano Pérez, & Orpino Rivas, 2013, pág. 10)
2.3.4.4. PostgreSQL
PostgreSQL es un sistema de gestión de bases de datos objeto-relacional, distribuido bajo licencia BSD y con su código fuente disponible libremente. Es el sistema de gestión de bases de datos de código abierto más potente del mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales.
PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectará el resto y el sistema continuará funcionando.
Figura 3 Componentes de un sistema PostgreSQL Fuente: (PosgrestSQL-es, 2013)
Aplicación cliente: Esta es la aplicación cliente que utiliza PostgreSQL como administrador de bases de datos. La conexión puede ocurrir vía TCP/IP ó sockets locales. Demonio postmaster: Este es el proceso principal de PostgreSQL. Es el encargado de escuchar por un puerto/socket por conexiones entrantes de clientes. También es el encargado de crear los procesos hijos que se encargaran de autentificar estas peticiones, gestionar las consultas y mandar los resultados a las aplicaciones clientes
Ficheros de configuración: Los 3 ficheros principales de configuración utilizados por PostgreSQL, postgresql.conf, pg_hba.conf y pg_ident.conf
Procesos hijos postgres: Procesos hijos que se encargan de autentificar a los clientes, de gestionar las consultas y mandar los resultados a las aplicaciones clientes
PostgreSQL share buffer cache: Memoria compartida usada por POstgreSQL para almacenar datos en caché.
Write-Ahead Log (WAL): Componente del sistema encargado de asegurar la integridad de los datos (recuperación de tipo REDO)
Kernel disk buffer cache: Caché de disco del sistema operativo
a) Características Generales
Es una base de datos 100% ACID - Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español.
Integridad referencial Tablespaces
Nested transactions (savepoints)
Replicación asincrónica/sincrónica / Streaming replication - Hot Standby Two-phase commit
PITR - point in time recovery
Copias de seguridad en caliente (Online/hot backups) Unicode
Juegos de caracteres internacionales Regionalización por columna
Multi-Version Concurrency Control (MVCC) Multiples métodos de autentificación
Acceso encriptado vía SSL - Secure Sockets Layer Actualización in-situ integrada (pg_upgrade) SE-postgres
Completa documentación
Licencia BSD - Berkeley Software Distribution
Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit. (PosgrestSQL-es, 2013)
Programación / Desarrollo
Bloques anónimos de código de procedimientos (sentencias DO).
Numerosos tipos de datos y posibilidad de definir nuevos tipos. Además de los tipos estándares en cualquier base de datos, tenemos disponibles, entre otros, tipos geométricos, de direcciones de red, de cadenas binarias, UUID, XML, matrices, etc.
Soporta el almacenamiento de objetos binarios grandes (gráficos, videos, sonido, ...)
APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, PHP, Lisp, Scheme, Qt y muchos otros. (PosgrestSQL-es, 2013)
2.3.5. Lenguajes de Programación 2.3.5.1. Phyton
a) Definición de Python
Python es un lenguaje de programación creado por Guido Van Rossum a principios de los años 90 cuyo nombre está inspirado en el grupo de cómicos ingleses “Monty Python”. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que favorece un código legible.
Se trata de un lenguaje interpretado o de script, con tipado dinámico, fuertemente tipado, multiplataforma y orientado a objetos.
b) Lenguaje interpretado o de script
Un lenguaje interpretado o de script es aquel que se ejecuta utilizando un programa intermedio llamado intérprete, en lugar de compilar el código a lenguaje máquina que pueda comprender y ejecutar directamente una computadora (lenguajes compilados).
La ventaja de los lenguajes compilados es que su ejecución es más rápida. Sin embargo los lenguajes interpretados son más flexibles y más portables.
máquina intermedio llamado bytecode la primera vez que se ejecuta, generando archivos .pyc o .pyo (bytecode optimizado), que son los que se ejecutarán en sucesivas ocasiones.
c) Tipado dinámico
La característica de tipado dinámico se refiere a que no es necesario declarar el tipo de dato que va a contener una determinada variable, sino que su tipo se determinará en tiempo de ejecución según el tipo del valor al que se asigne, y el tipo de esta variable puede cambiar si se le asigna un valor de otro tipo.
d) Fuertemente tipado
No se permite tratar a una variable como si fuera de un tipo distinto al que tiene, es necesario convertir de forma explícita dicha variable al nuevo tipo previamente. Por ejemplo, si tenemos una variable que contiene un texto (variable de tipo cadena o string) no podremos tratarla como un número (sumar la cadena “9” y el número 8). En otros lenguajes el tipo de la variable cambiaría para adaptarse al comporta-miento esperado, aunque esto es más propenso a errores.
e) Multiplataforma
El intérprete de Python está disponible en multitud de plataformas (UNIX, Solaris, Linux, DOS, Windows, OS/2, Mac OS, etc.) por lo que si no utilizamos librerías específicas de cada plataforma nuestro programa podrá correr en todos estos sistemas sin grandes cambios.
f) Orientado a objetos
La orientación a objetos es un paradigma de programación en el que los conceptos del mundo real relevantes para nuestro problema se trasladan a clases y objetos en nuestro programa. La ejecución del programa consiste en una serie de interacciones entre los objetos.