Documentos de Académico
Documentos de Profesional
Documentos de Cultura
21 a 40)
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Temario de oposiciones al Cuerpo Superior Técnico de tecnologías de la
información de la administración de la Generalitat Valenciana
Varios autores
Editado por el Colegio Oficial de Ingeniería Informática de la Comunitat
Valenciana (COIICV)
CIF: V-97046189
Av. del Oeste 48, 3º O. 46001 Valencia
963622994 – secretaria@coiicv.org
www.coiicv.org
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Contenido Volumen 2
Tema 21. Computación móvil. Cloud computing. Almacenamiento en la nube. Procesamiento en la
nube. Nubes privadas, públicas e híbridas. Seguimiento y control de calidad de productos y
servicios de computación móvil. IaaS, PaaS, SaaS.
Tema 26. Concepto, evolución y tendencias de los sistemas operativos. Los sistemas UNIX y
LINUX. Los sistemas Microsoft Windows. Los sistemas Android.
Tema 27. Gestión de entornos basados en servidores con sistema Microsoft. Gestión dominios.
Active directory. Protocolos.
Tema 28. Los sistemas de gestión de bases de datos SGBD. El modelo de referencia de ANSI. El
modelo relacional. El lenguaje SQL. Bases de datos no relacionales. Bases de datos no
estructuradas. NoSQL.
Tema 29. Tecnologías para el desarrollo de aplicaciones: Microsoft.NET, JAVA, PHP. Frameworks
de desarrollo.
Tema 31. Software de código abierto. Software libre. Conceptos base. Aplicaciones y usos.
Normativa sobre propiedad intelectual. Tipos de licenciamiento de aplicaciones informáticas.
Tema 32. Sistemas CRM (Customer Relationship Management) y ERP (Enterprise Resource
Planning). Beneficios y usos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Contenido Volumen 2
Tema 34. Los sistemas de información geográfica. Conceptos y funcionalidad básicos. El proyecto
gvSIG. Incorporación de la componente geográfica en los sistemas de información.
Tema 36. Gestión de los datos corporativos. Almacén de datos (data-warehouse). Arquitectura
OLAP. Minería de datos. Arquitecturas y técnicas de procesamiento masivo de datos (big data).
Tema 37. Diseño y desarrollo de portales web. Lenguajes y herramientas para la utilización de
redes globales. HTML y XML.
Tema 38. Comercio electrónico. Pasarelas de pago. Factura electrónica. Servicios ge-Factura y
FACE.
Tema 40. Infraestructura de clave pública (PKI): definición y elementos de una PKI. Prestación de
servicios de certificación públicos y privados. Autoridades de certificación. El DNI electrónico.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 21. Computación móvil. Cloud computing.
Almacenamiento en la nube. Procesamiento en la
nube. Nubes privadas, públicas e híbridas.
Seguimiento y control de calidad de productos y
servicios de computación móvil. IaaS, PaaS, SaaS
Sin embargo no son todo ventajas también presenta inconvenientes como la falta de
privacidad y riesgo de vulnerabilidad de la información.
Se disponen cuatro modelos de desarrollo del Cloud computing en base a los distintos
tipos de nube en función de su privacidad: Las nubes públicas, privadas, Híbridas y de
comunidad. Cada una presenta sus ventajas e inconvenientes en función del cliente
de la nube y los servicios proporcionados.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Miguel Sánchez Vallés
1. Computación Móvil
Sin embargo y para centrarnos más en el origen de lo que hoy conocemos como cloud computing,
vamos a detenernos sólo en las definiciones de dos paradigmas de computación bastante usados
o estudiados, como son la computación en clúster y en grid.
Greg Pfister (gurú en clusters) define un clúster como un tipo de sistema paralelo que consiste en
la interconexión de equipos individuales para actuar como uno solo. Considera que un equipo
individual es aquel que es independiente y puede funcionar por sí mismo, es lo que se conoce
como un nodo. Por lo tanto, un clúster es una configuración de un grupo de nodos, que aparecen
en la red como una sola máquina y actúan como tal. Puede ser administrado como un solo sistema
y además está diseñado para tolerar fallos en los componentes, de manera que si uno falla, el
usuario no se percate de ello. Además, existen varios tipos de clúster; puede ser que todos los
equipos sean similares en cuanto a hardware y software, por lo que estaremos hablando de clúster
homogéneo; si difieren en rendimiento pero tienen similitudes, se trata de un clúster semi-
homogéneo y en cambio, si tanto el hardware como el software son diferentes, se conoce como
clúster heterogéneo. Este último tipo es el más sencillo y económico.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Computación móvil. Cloud computing
Podemos considerar un grid como una especialización de un clúster, los centros de investigación y
las universidades que disponían de estos sistemas clúster, comenzaron a ofrecer los servicios de
cálculo y almacenamiento a terceros, a través de protocolos estándar, dando lugar a la que hoy en
día se denomina computación grid. Por lo tanto, la computación grid, o también conocida como
computación distribuida, consiste en un gran número de equipos organizados en clústeres y
conectados mediante una red de comunicaciones. Está orientada al procesamiento en paralelo y al
almacenamiento de grandes cantidades de información. Permite compartir una amplia variedad de
recursos que están distribuidos geográficamente.
A pesar de que este tipo de computación ofrece muchas ventajas, tales como la potencia,
escalabilidad, integración de sistemas heterogéneos, etc…, solo tuvieron éxito dentro del ámbito
académico y de investigación. Esto fue debido a la complejidad para utilizar la infraestructura y los
problemas de portabilidad entre grids.
El siguiente paso tras los clústeres y la computación en grid, fue la virtualización. Esta nueva
tecnología consiste en la creación virtual de algún recurso, que puede ser un sistema operativo, un
servidor, un dispositivo de almacenamiento, recursos de red, etc. Esto tiene muchas ventajas,
debido a que es posible replicar un entorno sin necesidad de instalar y configurar todo el software
que requieren las aplicaciones. La virtualización simula una plataforma de hardware autónoma y
ejecuta el software como si este estuviera instalado.
Esta nueva tecnología permite distribuir la carga de trabajo de una manera mucho más sencilla que
en la computación grid. Y también permite, como la anterior, la integración de entornos
heterogéneos. Así es como surge el nuevo paradigma de computación, el cloud computing. Las
plataformas de cloud computing tienen características de ambas tecnologías, los clústeres y los
grids, pero añade sus propias ventajas.
2. Cloud Computing
El término cloud computing hace referencia a un nuevo paradigma, a una concepción tecnológica y
a un modelo de negocio que reúne entre otras ideas tan diversas como el almacenamiento de
información, las comunicaciones entre ordenadores, la provisión de servicios o las metodologías de
desarrollo de aplicaciones, todo ello bajo el mismo concepto: todo ocurre en la nube. La nube es el
conjunto de servicios e infraestructuras accesibles por internet.
La computación en la nube es una tecnología nueva que busca tener todos nuestros archivos e
información, computadoras con capacidad de proceso, sistemas de comunicaciones así como la
mayoría de nuestros recursos hardware en Data Centers accesibles a través de Internet, sin
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Miguel Sánchez Vallés
El cloud computing explica las nuevas posibilidades de forma de negocio, ofreciendo servicios a
través de Internet, conocidos como e-business (negocios por Internet).
Una de las principales características del Cloud Computing es que no hay necesidad de conocer la
infraestructura detrás de esta, pasa a ser "una nube" donde las aplicaciones y servicios pueden
fácilmente crecer (escalar), funcionar rápido y casi nunca fallan, sin conocer los detalles del
funcionamiento de esta "nube".
Este tipo de servicio se paga según alguna métrica de consumo, no por el equipo usado en sí, sino
por ejemplo en el consumo de electricidad o por uso de CPU/hora como en el caso de Amazon
EC2.
• Pago por uso: una de las características principales de las soluciones cloud es el modelo
de facturación basado en el consumo. El cliente paga por los servicios
contratados/Consumidos.
• Multiusuario: Capacidad que otorga el cloud que permite a varios usuarios compartir los
medios y recursos informáticos, permitiendo la optimización de su uso.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Computación móvil. Cloud computing
• Acceso a redes de banda ancha de acuerdo con el NIST (National Institute of Standard
and Technology) , debe ser posible acceder a la red en la nube desde cualquier lugar y por
medio de cualquier dispositivo (por ejemplo, teléfono inteligente, laptop, dispositivos
móviles, Tablets).
• Agrupación de recursos: los recursos informáticos del proveedor se agrupan para prestar
servicios a diversos clientes utilizando un modelo de múltiples usuarios, con diferentes
recursos físicos y virtuales asignados y reasignados de manera dinámica según la
demanda. Existe un sentido de independencia geográfica. Generalmente, el cliente no
tiene control o conocimiento de la ubicación exacta de los recursos proporcionados. Sin
embargo, puede ser capaz de especificar una ubicación en un nivel de abstracción mayor
(por ejemplo, país, región o centro de datos). Los ejemplos de recursos incluyen
almacenamiento, procesamiento, memoria, ancho de banda de la red y máquinas virtuales.
Las ventajas o beneficios del Cloud Computing se clasifican según el marco en económicos,
tecnológicos u organizativos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Miguel Sánchez Vallés
Flexibilidad: Reacción más rápida ante los cambios en las condiciones del mercado, incorporando
servicios adicionales cuando sea necesario por parte del proveedor de Cloud.
Los beneficios económicos son especialmente importantes para las empresas que no disponen de
suficientes recursos facilitándoles ser competitivas al proporcionarles la oportunidad de adoptar
nuevos desarrollos de Tecnologías de la Información (TIC) con costes razonables al adoptar el
modelo de pago por consumo y disminuir los costes de mantenimiento.
Proporciona Elasticidad que permite hacer frente a aumentos y disminuciones de las cargas de
los sistemas de información provocados por variaciones en la actividad de áreas funcionales y
procesos de negocio, con el menor coste posible.
Mayor respeto por el medio ambiente, dado que al centralizar los servicios se produce un menor
consumo de energía (partida importante de los costes de la infraestructura de TI) y una reducción
en el impacto medioambiental.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Computación móvil. Cloud computing
El Cloud Computing ofrece también una oportunidad de cambio: plantearse hacer las cosas de
forma distinta, identificando costes ocultos e inercias organizativas y provocado por el creciente
número de aplicaciones web disponibles que son un acicate para el planteamiento de nuevos
procesos o el rediseño de los ya existentes.
La adopción del Cloud Computing se enfrenta a una serie de obstáculos y resistencias que las
empresas, de una forma más o menos objetiva, tienen. Existe una preocupación sobre el cómo
adoptar este modelo, puede afectar a la disponibilidad de los servicios TI y también a su impacto
sobre la seguridad de la información. De forma similar al planteamiento seguido para los
beneficios, las desventajas pueden clasificarse en aspectos tecnológicos y aspectos organizativos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Miguel Sánchez Vallés
• Falta de privacidad. Ante la ausencia de una suficiente cobertura legal (o incluso con
ella). Los datos de una organización podrían ser comercializados y adquiridos por terceros;
incluso por empresas de la competencia, logrando información ventajosa sobre productos o
cuentas de clientes. No obstante, Hay que preguntarse en qué se diferencian los datos
alojados en la nube de los que maneja una entidad financiera o la información asociada a
una operación en línea realizada mediante una tarjeta de crédito. En estos casos, los datos
“viajan” y no es objetivo pensar que están más seguros en un servidor propio que en el de
un reputado proveedor externo.
• Se considera que la inercia al cambio puede ser también un obstáculo que impida la
adopción de la perspectiva Cloud, especialmente en empresas maduras y con sistemas de
información consolidados y que pueden estar funcionando de forma satisfactoria.
• Dependencia del estado de las comunicaciones del estado del servicio. Por falta de
calidad de las comunicaciones, interrupciones. Dado que si Internet no está disponible el
usuario no tendrá acceso al programa. Podría producirse interrupción en el servicio por
razones achacables al propio proveedor, como no disponer de una capacidad suficiente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Computación móvil. Cloud computing
tenida en cuenta es la falta de una comprensión de las implicaciones reales de utilizar este tipo de
servicio.
En resumen, quizá las empresas estarán más dispuestas a adoptar de forma amplia el Cloud
Computing cuando pueda asegurarse el cumplimiento de normativas relativas a la seguridad
(protección de datos) a través de toda la empresa, la integración de la información crítica para el
negocio y los procesos empresariales o la gestión completa del ciclo de vida de la aplicación, con
independencia del mecanismo de descarga. A todo esto hay que unir unas garantías de calidad de
servicio, alta fiabilidad, seguridad y alta disponibilidad.
Una de las clasificaciones que se puede realizar de los distintos tipos de nube se hace atendiendo
a la privacidad. De esta manera, encontramos cuatro modelos de desarrollo para el cloud
computing: nube pública, privada, híbrida y comunitaria.
Una nube se dice que es una nube pública cuando los servicios ofrecidos por esta se encuentran
en entornos públicos no propietarios. Esta modalidad es adecuada para acceder a herramientas de
colaboración, ofimáticas o de almacenamiento.
Características:
• Todas las garantías de privacidad, seguridad y disponibilidad, así como las penalizaciones
por incumplimiento, deben estar expresadas en el contrato de servicio.
• Proporciona ahorros en costes y gran flexibilidad para hacer frente a los picos de demanda
por Internet a cambio de menores niveles de seguridad de los datos de los que hace uso.
Como ventajas, las nubes públicas ofrecen una alta capacidad de procesamiento y
almacenamiento de forma externa, evitando inversiones en equipos y mantenimiento de forma
local en la empresa. Los procesos de gestión, seguridad de datos y actualización del software y
hardware se realizan por parte del proveedor y de forma transparente al uso diario por parte del
cliente. Cualquier tipo de incidencia o desastre local no afecta a la infraestructura o datos
almacenados en la nube pública. El escalado y flexibilidad de las infraestructuras se realizan en el
proveedor a unos costes muy bajos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Miguel Sánchez Vallés
Las nubes privadas son aquellas en que tanto los servicios como los datos son propiedad de una
organización. Las infraestructuras pueden encontrarse en las instalaciones de la organización,
dificultando su mantenimiento si se hace a través de un proveedor. Los servicios y/o las
infraestructuras pueden ser gestionados por la propia organización o bien por un tercero. Las
nubes privadas proporcionan una mayor seguridad y privacidad de los datos. La mayoría de
organizaciones que proporcionan servicios en la nube suelen tener una nube privada.
Las ventajas de las nubes privadas es la localización dentro de la propia empresa. Tanto los datos
como la infraestructura están integrados con las de la propia empresa, lo que implica una gestión
localizada y personalizada y fácil integración de los servicios y datos de la nube en sistemas
propietarios de la empresa.
Como desventajas la empresa debe realizar una inversión inicial en montar la infraestructura
hardware, sistemas de seguridad, backup, ancho de banda. Más gastos de personal y de
mantenimiento de todas las infraestructuras hardware y software. Las escalabilidad de la nube
privada puede verse mermada por los altos costes de inversión. La seguridad puede verse
comprometida por la propia vulnerabilidad de un centro de datos interno, no especializado.
Las nubes híbridas resultan de la combinación de dos o más nubes de diferentes tipos. Por
ejemplo, cuando una empresa tiene servicios dispuestos en su red privada pero también utiliza una
nube pública.
Las nubes híbridas combinan los servicios locales con los ofrecidos externamente por una nube
pública. Las empresas puede dividir sus servicios para mantener unos en modo local y privado
dentro de la empresa y aprovechar otros servicios que la nube pública le ofrece y que pueden ser
aprovechados donde se necesiten. La nube híbrida es un paso intermedio para pasar o crear
nuevos servicios en la nube pública.
Por ejemplo es muy común que muchas empresas utilicen servicios de almacenamiento en la nube
pública para almacenar ciertos datos que considere que necesita tener de forma accesible
externamente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Computación móvil. Cloud computing
Las ventajas de la nube híbrida es que la inversión inicial es más moderada y permite realizar un
aumento progresivo de la utilización de los servicios de la nube pública según necesidades. Para
empresas con aumento de necesidades puntuales estas nubes son las que les permiten obtener
servicios bajo demanda combinándolos con la nube privada.
Una entidad que opte por esta solución puede beneficiarse de las ventajas que el resto de tipos
nubes tenían por separado. Por ejemplo, se dispone de una gran flexibilidad a la hora de adquirir
servicios, pero además es posible tener control sobre ellos.
Las nubes de comunidad son aquellas nubes donde los servicios se comparten en una
comunidad cerrada de entidades que tienen los mismos objetivos, de manera que colaboran entre
ellas. En este caso la nube es gestionada y administrada por una o más entidades de la
comunidad.
Características:
• Ofrecen una infraestructura compartida por varias organizaciones. Muy adecuadas para
Administraciones públicas ya que pueden compartir multitud de servicios.
Igual que existe diferentes tipos de nubes podemos establecer diferentes tipos de servicio dentro
del cloud computing de acuerdo al grado de uso de los componentes Software/Hardware y del tipo
de gestión de esto ya sea propia o realizada por terceros. Las necesidades que el cliente/usuario
tenga del cloud marcarán el uso que se haga de este.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Miguel Sánchez Vallés
Todos aquellos servicios en la nube, en los que el usuario o corporación accede directamente a
través de un “thin client”, como puede ser un navegador web, sin conocimiento de la infraestructura
subyacente a niveles de capas de negocio, capas de servidor. Toda la parte técnica queda en
manos del Partner que la ha desplegado, asumiendo este toda la complejidad de su instalación, su
mantenimiento y además de soportar también la seguridad de la información.
Se trata de la opción más sencilla de contratar, ya que no requiere conocimientos técnicos, pero en
muchas empresas y organismos públicos se recela de esta alternativa ya que implica
necesariamente perder el control de todo el ciclo de vida de la información, con lo que puede que
los requisitos y protocolos de seguridad y privacidad del SaaS no se ajusten a determinados datos
de especial sensibilidad para las empresas. Por ello, hoy por hoy, el SaaS suele usarse
principalmente para servicios de correo electrónico, plataformas colaborativas y también en
algunas aplicaciones de negocio como el CRM (Customer Relationship Management).
Un nivel por debajo del Saas nos encontramos con el Platform as a Service. Es un modelo de
servicio en el que la corporación puede desplegar aplicaciones o desarrollos propios o ajenos sin
tener que realizar un desembolso por los recursos hardware de proceso y de almacenamiento que
requieren dichos despliegues ya que estos corren a cargo del proveedor de servicios que tengan
contratado. De este modo, los desarrolladores pueden construir sus aplicaciones a su gusto, con
sus requisitos específicos de funcionamiento y seguridad, pero desligándose por completo de la
instalación y configuración del hardware que las sostiene.
El proveedor de servicios proporciona en este caso una plataforma virtual que engloba los recursos
de infraestructura, sistemas operativos, middleware y runtimes.
Ejemplos: MS Windows Azure, Google App Engine, Amazon Web Services (AWS)
Se desacopla las cargas de trabajo del hardware físico y su consolidación sobre servidores. En
otras palabras, se construye una solución que comprenda los “Fabrics” (tejidos, estructuras) de red
y almacenamiento y el conjunto de elementos de cómputo incluidos en los servidores, con su capa
de virtualización por encima, para ofrecerla a clientes internos y/o externos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Computación móvil. Cloud computing
En ocasiones se refieren a IaaS como HaaS (Hardware as a Service). Como ejemplos de este tipo
de servicios podemos mencionar GoGrid y Amazon EC2 (Elastic Compute Cloud).
5. Almacenamiento en la Nube
El almacenamiento en la nube o “cloud storage” es una forma sencilla, escalable, accesible y más
o menos segura de almacenar y/o compartir información a través de internet.
El almacenamiento es uno de los modelos de servicio más utilizados, tanto por las organizaciones
como por particulares, dentro de los modelos de servicios que se proporcionan a través el cloud
computing a través de internet.
Se puede definir el almacenamiento en la nube como “el modelo de servicio en el cual los datos
generados por un sistema de cómputo se almacenan, se administran, y se respaldan de forma
remota, típicamente en servidores que están en la nube y que son administrados por un proveedor
del servicio. Estos datos se ponen a disposición de los usuarios a través de una red, como lo es
Internet haciendo uso de una variedad de protocolos como pueden ser REST, SOAP, WSDL,
UDDI, SNMP, CIFS, SSL, TLS, AES y HTTP, HTTPS, FTP.
Dependiendo del tipo de nube en el que se realice, se definen tipos de servicio de almacenamiento
en la nube.
Características:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Miguel Sánchez Vallés
Privado. Almacenamiento en la nube privada. Es utilizado para cubrir las necesidades de una
organización.
Características:
• Autoservicio
• Escalabilidad
Híbrido. Los sistemas de almacenamiento en nubes híbridas ofrecen, como su nombre sugiere,
una combinación de almacenamiento en nubes públicas y privadas.
Características:
• El usuario del servicio puede personalizar las funciones y las aplicaciones que se adaptan
mejor a sus necesidades, así como los recursos que se utilizan.
Un ejemplo típico de este tipo de servicio es que se configure de tal forma que los datos más
importantes se almacenen en un sistema de almacenamiento en la nube privada, mientras que los
datos menos importantes se pueden almacenar en una nube pública con acceso disponible por
una gran cantidad de personas a distancia.
Referencias bibliográficas
(2) Peter Mell and Timothy Grance. The NIST definition of cloud computing.Special Publication 800-
145, 2011.
(4) Above the Clouds: A Berkeley View of Cloud Computing, UCB/EECS-2009-28. Technical report,
2009.
(5) Ian Marriot. Gartners 30 Leading Locations for Oshore Services. Gartner, 2009.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Computación móvil. Cloud computing
(6) Forecast: Public Cloud Services, Worldwide and Regions, Industry Sectors,2010-2015.
Technical report, 2011.
(11) Trabajo de Fin de Grado Computación en la nube. Oportunidades, retos y caso de estudio.
Sara Báez García
(12) Bonet, S., González, F., Oltra, R., Conchado, A., Guzmán, A., Cebrián, C. 2012. Análisis de la
oferta y la demanda de los servicios Cloud
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Miguel Sánchez Vallés
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 22. Virtualización de sistemas. Servidores
de datos y de aplicaciones. Sistemas de
almacenamiento
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Gómez García
1. Qué es la virtualización
El termino virtualización fue acuñado por primera vez en los años 1960 por IBM, con la creación
del mainframe IBM/S360, la primera máquina diseñada específicamente para ser virtualizada. Este
concepto surge de la necesidad de reducir costos, para lo cual se ofrece servicio a varios
departamentos de la empresa en sistemas aislados, dentro de un único computador físico. Como
novedad, esta máquina permitía correr múltiples sistemas operativos, en un único computador. La
capacidad de virtualización que marcó un estándar que fue continuado por las series sucesoras,
como la S370 y siguientes.
La abstracción entre los recursos de la máquina física y el sistema operativo de la máquina virtual,
es llevada a cabo por un software denominado hipervisor (Hypervisor en inglés) o VMM (virtual
machine monitor). La principal característica de este software su estabilidad y robustez, aislando
cada uno de los sistemas operativos instalados en las diferentes máquinas virtuales, de forma de
los fallos en cada uno de ellos no afecten al resto.
Durante los años 1960 y 1970, fueron unos sistemas muy populares, decayendo su popularidad
hasta casi desaparecer durante los años 1980.
A finales de los años 1990, surge de nuevo la necesidad de consolidar servidores y simplificar las
tareas de administración de los mismos, al tiempo que empieza a aparecer el término virtualización
fuera del ámbito de los servidores, con la llegada de uno de los primeros hipervisores compatibles
con la arquitectura x86, desarrollado por VMWare lo que permite crear máquinas virtuales en PCs.
Además, se traslada este concepto a otros subsistemas, tales como el sistema operativo, las
aplicaciones o el almacenamiento.
La virtualización es una técnica que consiste en, la abstracción mediante software de un recurso
físico, en un recurso virtual. Es aplicable a servidores, sistemas operativos, escritorios,
aplicaciones y redes, entre otros.
• Independencia: Los recursos virtuales son totalmente independientes entre sí, además de
con los recursos físicos. Por ejemplo, en el ámbito de los servidores, un error en la propia
máquina virtual o sus aplicaciones, no afecta al resto de máquinas que corre el Hipervisor,
que siguen funcionando con total normalidad.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Virtualización de sistemas
• Alta disponibilidad: En un sistema virtualizado con varios hosts físicos, ante un error en uno
de ellos, las máquinas virtuales que éste ejecuta pasan a ser ejecutadas por los otros
servidores, de forma que no se produce pérdida de servicio.
Además, la capacidad de creación de recursos virtuales, viene limitada por los recursos hardware
del servidor físico. Por ejemplo, si necesitamos crear 4 máquinas virtuales con 8 GB de memoria
RAM, necesitaremos un servidor físico que al menos tenga 32 GB (8GBx4), a lo cual hemos de
añadir como requerimiento la parte de memoria que usa el propio Hipervisor. Lo mismo ocurre con
el almacenamiento.
2. Tipos de virtualización
Es posible definir diferentes tipos de virtualización en función del recurso a virtualizar, siendo los
siguientes los más usados actualmente:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Gómez García
• Virtualización de escritorio.
• Virtualización de aplicaciones.
Hipervisor
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Virtualización de sistemas
Aunque es posible virtualizar mediante el uso de los discos locales del servidor físico, en entornos
virtualizados con gran demanda es habitual que los datastores se guarden en sistemas de
almacenamiento externo con la finalidad de aumentar su capacidad. Para ello, es habitual el uso
de redes de almacenamiento de datos SAN, conectados a los servidores por redes de fibra óptica
dedicada, de forma que el rendimiento de acceso a los datos es similar al acceso a los discos
locales.
2.1.2. Paravirtualización
Para ello, VMWare provee una herramienta denominada vSphere Client, una herramienta gráfica
para administrar y monitorizar el entorno virtualizado bajo ESX. En las últimas versiones, también
está disponible una versión web de esta herramienta denominada vSphere Web Client. La
herramienta sólo está disponible para ser ejecutada en sistemas operativos Windows.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Gómez García
sistemas operativos con el kernel adaptado, principalmente sistemas de código abierto como Linux,
FreeBSD o NetBSD.
Más tarde, tanto Intel como AMD contribuyeron a dotar Xen de apoyo para sus tecnologías Intel-VT
y AMD-v, de forma que pasó a ofrecer soporte para virtualización completa. Tras ello, era posible
instalar cualquier sistema operativo sin modificar, incluidas diferentes ediciones de Windows.
En el año 2007, Xen fue comprado por la empresa Citrix, que actualmente ofrece a los usuarios su
versión de Xen empresarial, así como una de uso libre, con determinadas restricciones de uso.
Para la administración de las máquinas virtuales, se usa el software XenCenter, desarrollado por
Citrix, que permite administrar de forma visual el servidor virtualizado. El interfaz de administración
Citrix XenCenter únicamente está disponible para ser ejecutado en sistemas operativos Windows.
No obstante, existen otras herramientas gráficas para administración de entornos virtualizados con
Xen Server desarrolladas en código abierto y que permiten ser instaladas en sistemas operativos
Linux. Un ejemplo sería OpenXenManager.
2.1.3.3. Hyper-V
Hyper-V es una herramienta de Microsoft para virtualización bajo sistemas Windows. Fue lanzada
en 2008 como parte del sistema operativo Windows Server 2008. También está disponible en las
ediciones Pro y Entreprise de Windows 8 y Windows 10. Además, existe un paquete Hiper-V
Server, para su adquisición individual que contiene únicamente el Hipervisor de Microsoft.
Es habitual hablar de operaciones en caliente de máquinas virtuales. El término “en caliente”, hace
referencia a poder realizar operaciones sobre las máquinas virtuales sin necesidad de apagar las
mismas, con el resultado de que el servicio no se verá interrumpido. Estas operaciones resultan
especialmente útiles cuando la organización dispone de un pool de servidores virtualizado.
Básicamente, se trata de varios equipos físicos, cada uno de ellos con su hipervisor instalado, que
son capaces de repartir la carga entre ellos. Para ello, es habitual que los datastores estén
almacenados en una red de almacenamiento SAN, de forma que son accesibles por los distintos
servidores del pool.
Una de las operaciones habituales, es la migración de máquinas virtuales entre servidores físicos.
Esta operación puede ser necesaria por varios motivos: problemas hardware en el servidor que
corre las máquinas, necesidad de reemplazo del servidor por uno nuevo, o bien, reparto de las
máquinas en diferentes servidores físicos por necesidades de carga o del servicio. La mayor parte
de sistemas nos permite realizar estos cambios sin interrumpir el servicio que prestan.
Otra de las virtudes de la virtualización es distribuir las cargas de trabajo entre los servidores en
tiempo real. La distribución de carga en sistemas virtualizados permite, en tiempo real, encender o
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Virtualización de sistemas
apagar máquinas virtuales en función de la demanda actual de carga. De esta forma, podemos
tener un entorno bastante conservador en cuanto a recursos, pero que ante un pico de carga
pueda dar respuesta.
La virtualización de sistemas operativos es una solución que permite ejecutar un sistema operativo
dentro de otro sistema operativo, como si se tratase de un programa más. Nos referimos a este
software como hipervisor de tipo 2. La diferencia con el hipervisor del apartado anterior
(comúnmente referenciado como tipo 1), reside que en no necesita un sistema operativo para ser
ejecutado. Para ello, el hipervisor toma parte de los recursos al sistema operativo anfitrión para
permitir ejecutar el sistema operativo invitado. De forma similar a la virtualización de servidores, la
virtualización de sistema operativo se compone por un fichero de configuración con los parámetros
de la máquina, y un fichero para el disco duro o datastore. El resultado, es una ventana de
aplicación en el sistema operativo anfitrión, en cuyo interior aparece el sistema operativo invitado.
S.O. S.O.
Invitado 1 Invitado 2
Hipervisor tipo 2
Resulta especialmente útil en equipos de usuario para compartir diferentes sistemas operativos, ya
sea por la necesidad de disponer de diferentes entornos Windows y Linux, o incluso, virtualizar
alguna edición más antigua de Windows para poder usar determinado software no compatible con
ediciones más modernas del sistema operativo.
También suele ser usado para testear nuevo software de forma sencilla, sin tener que disponer de
un equipo hardware dedicado. El test de un nuevo sistema operativo en fase beta, requiere poco
más que un par de minutos para la creación de la máquina virtual, y el tiempo de instalación.
Incluso, es habitual que los propios fabricantes del software habiliten una serie de imágenes
virtuales con el sistema operativo, con no es necesario instalarlo. En estos casos basta con
descargar la imagen e importarla en el hipervisor.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Gómez García
Las principales empresas de virtualización disponen de software para la virtualización del sistema
operativo, siendo los siguientes los más usados:
• Oracle VirtualBox.
• VMWare Server.
• Parallels.
• Microsoft VirtualPC.
La virtualización de escritorios o VDI es una solución que permite independizar el escritorio que
utiliza el usuario (o el sistema operativo en su totalidad) del hardware que usa para su acceso. El
escritorio se ejecuta remotamente en un servidor, y el disco local que utiliza también se encuentra
ubicado en el servidor remoto. La experiencia que uso que obtiene el usuario, es la de tener el
sistema operativo instalado en su propio equipo. Para su acceso, debe existir conexión de red
entre el hardware que utiliza el usuario y el servidor remoto.
Con esta tecnología, el usuario tiene acceso a su escritorio independientemente del hardware
usado, y su ubicación, siempre que exista conexión de red entre el dispositivo y el servidor.
Incluso, se independiza del tipo de hardware usado, ya que es posible usar un PC tradicional, así
como un portátil o un dispositivo móvil. También existe independencia entre el tipo de escritorio
virtualizado, y el sistema operativo del equipo cliente. Es posible acceder a un escritorio Windows
usando cualquier sistema operativo.
A nivel de negocio, este modelo aporta mucha flexibilidad, tanto para los usuarios, como para los
administradores, además de ahorro en hardware importante, como se verá más adelante.
Por una parte, se independiza el puesto de trabajo del usuario que lo vaya a usar. Un ejemplo
sencillo sería un mismo puesto de trabajo, que se utiliza por dos usuarios, a media jornada. Por la
mañana, el primer usuario accede con el hardware del puesto a su escritorio personalizado, con
sus datos y aplicaciones. Al terminar la jornada, cierra su sesión, y el usuario de la tarde, utiliza el
mismo hardware para acceder a su sesión de usuario, que puede ser totalmente diferente. Esta
misma ventaja la tenemos presente en caso de necesitar realizar rotaciones de ubicación en la
oficina por diferentes motivos.
En el apartado hardware, como ya se habrá deducido, los requisitos son menos estrictos ya que la
mayor parte del trabajo de procesamiento se realiza directamente en el servidor. Como resultado,
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Virtualización de sistemas
se alarga el ciclo de vida útil del hardware. Además, es posible recurrir al uso de clientes ligeros
reduciendo los costes de adquisición. Por otro lado, las averías no suponen largos procesos de
reinstalación del equipo, con lo que se reducen los tiempos. Basta con reemplazar el hardware
afectado, y el usuario tiene su puesto disponible tal y como estaba antes de la avería.
Si subimos un nivel más, llegamos al nivel de aplicación. A estas alturas del capítulo, poco más se
puede añadir del concepto de virtualización, simplemente, enfocarlo en el nivel de aplicación.
Básicamente, consiste en tener un servidor en el que tenemos instaladas unas aplicaciones, y éste
ofrece la posibilidad de que sean ejecutadas de forma virtual desde otros sistemas.
Su principal objetivo es independizar las aplicaciones del entorno donde se ejecutan, de forma que
se eliminan los problemas de incompatibilidad de librerías, o con otras aplicaciones e incluso el
propio sistema operativo. Para ello, el software de virtualización crea un entorno de ejecución, con
los componentes necesarios para cada instancia de aplicación, que es presentado en el cliente.
Aunque la aplicación se procesa en un servidor remoto, el usuario tiene disponible los recursos
locales, como carpetas e impresoras, para su interacción con la aplicación.
• Citrix XenApp.
• Microsoft App-V.
• VMWare Horizon.
La definición es muy similar a lo visto en el apartado de servidores, pero en este caso, el único
recurso a virtualizar es el almacenamiento. Es decir, consiste en definir unidades lógicas de
almacenamiento (almacenamiento virtual) abstrayendo las unidades lógicas que lo forman. En
general, suele ser usado para crear grandes unidades de almacenamiento a partir de la unión de
unidades físicas más pequeñas, que aparecerán como una sola unidad lógica de mayor tamaño.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Gómez García
También puede ser usado para dividir una unidad grande en varias más pequeñas, pero no suele
ser lo habitual. Existen otros mecanismos para este fin.
Para su implementación, se suele usar una SAN (red de área de almacenamiento), aunque
también puede ser implementado mediante dispositivos NAS en entornos con requisitos menos
estrictos en cuanto a rendimiento y menor presupuesto.
El uso de esta red es exclusivo para acceso a datos desde los servidores con acceso a la SAN.
Para ello, los servidores tienen una interfaz de red dedicada a acceso a la SAN, además de la
conexión habitual a la LAN de la empresa. Los protocolos más habituales para el acceso son FC o
iSCSI. El primero de ellos aporta una mayor velocidad de acceso a datos, mientras que el segundo
tiene una implementación más económica.
• Ampliación casi ilimitada. Basta con añadir más dispositivos de almacenamiento a la red
para aumentar su capacidad.
La principal diferencia entre ambos sistemas reside en la forma de acceder a los datos. El acceso
a dispositivos NAS se realiza mediante la red local (LAN), mediante peticiones TCP/IP a través de
protocolos como CIFS o NFS. Sin embargo, el acceso a dispositivos SAN se realizan directamente
por el sistema operativo con protocolos de bajo nivel, de forma similar a los accesos a discos
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Virtualización de sistemas
locales al equipo. Para ello, hacen uso de una red dedicada de alta velocidad, fibra óptica
principalmente.
El acrónimo RAID proviene del inglés Redundant Array of Independent Disks y hace referencia a
un sistema de almacenamiento que utiliza múltiples unidades de almacenamiento, entre las que se
distribuyen o replican los datos, en función de la configuración realizada. Un RAID muestra todas
las unidades físicas como una sola unidad lógica. Esta configuración se suele realizar mediante
hardware, siempre que el chip de la placa base lo soporte o se disponga de una controladora raid
adecuada. En su defecto, la mayoría de sistemas operativos, permiten realizar configuraciones
RAID software, pero en este caso, su rendimiento suele ser menor. Se recomienda el uso de
unidades de igual tamaño, ya que en caso contrario, en las unidades de menor tamaño, sólo se
utiliza el equivalente a la unidad de menor tamaño.
Entre las principales ventajas del uso de configuraciones RAID, aunque depende su grado en
función de la configuración realizada, son las siguientes:
• Mayor rendimiento.
Los niveles RAID estándar son: RAID 0, RAID 1 y RAID 5. No obstante, existen otras variantes de
configuraciones RAID.
2.5.1.1. RAID 0
RAID 0 o volumen dividido, es una configuración de dos o más discos, en la que se distribuyen los
ficheros sin realizar redundancia de datos. Su principal ventaja es el rendimiento de acceso a los
datos, ya que puede realizar simultáneamente operaciones de lectura/escritura sobre diferentes
ficheros en las diferentes unidades. Cada fichero, se encuentra almacenado en una única unidad y
no existe redundancia sobre él. Por ello, no ofrece tolerancia a fallos, ya que un fallo en una de las
unidades provoca pérdida de los datos almacenados en la misma.
RAID 0
A1 A2
A3 A4
A5 A6
A7 A8
Disco 1 Disco 2
Figura 3: Configuración RAID 0
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Gómez García
Como ejemplo, si se realiza un RAID 0 sobre dos unidades, cada una de ellas con una capacidad
de 1 TB, el resultado obtenido es una unidad lógica de 2TB, sin tolerancia a fallos que podrá
alcanzar tasas de lectura/escritura del doble de las unidades que lo forman.
2.5.1.2. RAID 1
La configuración RAID 1, o en espejo, crea una copia de los datos en dos o más discos (tantas
unidades como formen el RAID). Cada uno de los discos que forman el RAID 1, es una copia
exacta del resto. En términos de almacenamiento, la capacidad de un RAID 1 es equivalente a la
capacidad del menor de los discos que lo forman. En cuanto a rendimiento, éste aumenta en las
operaciones de lectura, ya que permite realizar distintas operaciones de lectura en cada una de las
unidades. Sin embargo, las operaciones de escritura, se han de realizar simultáneamente en todas
las unidades, por lo que su rendimiento se mantiene respecto a las unidades que lo forman.
Su principal ventaja, es la tolerancia a fallos, puesto que ante un error en alguna de las unidades
los datos continúan disponibles en el resto. Para recuperar el sistema, basta con reemplazar la
unidad dañada. También ofrece facilidades de administración, ya que es posible marcar alguna de
las unidades como inactiva, para extraerla y realizar copias de seguridad u otras tareas sobre la
misma.
Su principal inconveniente es el coste por megabyte que se multiplica por el número de unidades
que formen el RAID1.
RAID 1
A1 A1
A2 A2
A3 A3
A4 A4
Disco 1 Disco 2
Figura 4: Configuración RAID 1
2.5.1.3. RAID 5
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Virtualización de sistemas
Dos de los bloques contienen la información original, y el tercer bloque contiene la información de
paridad. Los datos de paridad del RAID se encuentran distribuidos en las 3 unidades.
Entre sus principales ventajas, su aprovechamiento del almacenamiento es más óptimo que en un
RAID 1. Además, la tasa de escritura es más rápida en RAID 5 que en RAID 1. Sin embargo, un
RAID 1 ofrece una mejor tasa de lectura.
En lo referente a tolerancia a fallos, es posible recuperar el sistema si existe fallo en alguna de las
unidades, puesto que siempre se dispondrá en las otras dos, bien de dos bloques de información
original, o bien de un bloque de información más otro de paridad.
Para conseguirlo, se dividen los datos en bloques de dos en dos. Al escribirlo grabaremos tres
bloques dos con la información original y otro con una que se obtiene al combinarlos. Esta
información se graba alternativamente en los discos. En caso de que caiga uno siempre puedes
recuperar la información ya que cualquier disco es función de los otros dos.
RAID 5
A1 A2 Ap
Bp A1 B2
C1 Cp C3
D1 D2 Dp
Disco 1 Disco 2 Disco 3
Figura 5: Configuración RAID 5
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Gómez García
Referencias bibliográficas
(1) Romo Gutiérrez, Jaime (2011). Consolidación de Servidores por medio de la Virtualización.
EAE Editorial Academia Española.
(3) Chaganti, Prabhakar (2007). Xen Virtualization: A Practical Handbook. Ed. Packt Publishing.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 23. Tratamiento de información multimedia
Tanto en el caso del sonido como en el de la imagen, se versa también sobre algunas
de las más modernas APIs para reconocimiento del habla o visión artificial, trabajo que
generalmente se aborda con herramientas de inteligencia artificial, como las redes
neuronales tan en boga actualmente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
1. Introducción
Escribía Zenón de Elea (490 - 430 a. C.) en su Paradoja de Aquiles y la tortuga que, tras darle a
ésta una ventaja inicial en una carrera, Aquiles nunca conseguía alcanzarla, pese a ser la tortuga
bastante lenta y él extremadamente veloz. Según Zenón, cuando Aquiles iniciaba su marcha, la
tortuga gracias a la ventaja que el guerrero le daba, ya había recorrido una cierta distancia. En el
momento en que Aquiles llegaba a la posición ocupada anteriormente por la tortuga, ésta ya había
recorrido otro tramo, situándose por delante del corredor, y así Aquiles nunca conseguiría alcanzar
a la tortuga, pese a ser mucho más rápido que ella.
Otra paradoja relatada por Zenón en sus “demostraciones de la imposibilidad del movimiento”,
según las palabras usadas por José Ferrater Mora al hablar de las paradojas de Zenón en su
definición de “absurdo” (1964, p: 39), es la conocida como Paradoja de la dicotomía. Ésta reza que
si alguien se dirige a un árbol nunca llegará a él, pues cuando haya recorrido la mitad de la
distancia, le quedará la otra mitad, de la cual primero recorrerá la mitad, quedándole la otra
mitad… y así, recorriendo tramos cada vez más pequeños, nunca llegará a su destino.
Obviamente el mundo no funciona así y hoy en día se asume que el problema con las paradojas de
Zenón es de planteamiento. Centrándonos en la Paradoja de la dicotomía, por ser la más sencilla
de analizar, se puede afirmar sin duda que hoy en día existen herramientas matemáticas para
resolverla. En época de Zenón no se conocía el Cálculo Infinitesimal y no se aceptaba, por tanto,
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
que la suma de infinitos términos pudiese tener un resultado definido finito, cosa que daría solución
a la paradoja de forma obvia, pues recorrer mitades sucesivas sí llevaría a recorrer finalmente la
distancia completa. La forma de calcularlo sería con una serie geométrica como la siguiente, que
hoy en día se asume que converge a un valor finito:
Otra de las soluciones comúnmente aceptadas para las paradojas de Zenón se da haciendo uso
de la Matemática Discreta, suponiendo un universo discreto, o sea dividiendo en este caso el
espacio y el tiempo en pequeños pedazos iguales entre sí, cuantizándolos. Así, volviendo a la
Paradoja de la dicotomía, se puede afirmar que finalmente se llegará al árbol, pues al final sólo
quedará por recorrer el último intervalo de la discretización que se ha hecho de esa distancia, cosa
que se conseguirá en el último ciclo de movimiento, pues no habrá división más pequeña posible
que recorrer.
Esta introducción sirve para ver que, aun partiendo de un universo y unas señales continuas, como
por ejemplo el sonido, se deberá empezar por cuantizarlas para poderles dar de forma sencilla y
efectiva un tratamiento informatizado.
Como curiosidad, cabe señalar que aún hoy en día hay debate en cuanto a la discusión “continuo”
frente a “discreto”, aunque en términos bastante más complejos y difíciles de comprender. Por
ejemplo, ha habido experimentos como los de Craig Hogan, profesor de la Universidad de Chicago
y director del Fermilab Center for Particle Astrophysics, intentando demostrar que el universo
conocido es un holograma, teoría que Hogan relaciona con la idea de que la cantidad de
información en el universo observable pueda ser finita, y el espacio-tiempo una suerte de “realidad
discreta”. De ser así, a la práctica el universo podría suponerse discreto y no continuo, al menos a
muy pequeña escala.
3.1. Digitalización
El tratamiento informático de la voz y el sonido obligará, como se ha visto, a cuantizar las señales
que se capturan y, lógicamente esto deberá estar precedido de un proceso de digitalización.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
Hay que destacar que cuantizar y digitalizar no son estrictamente lo mismo. Al digitalizar
convertiremos la señal analógica a su equivalente digital, introduciendo un error que como máximo
deberá ser igual a la sensibilidad mínima del aparato digitalizador. En cambio, a la hora de
cuantizar, dependiendo de la calidad con la que se haga, o sea a la cantidad de cuantos en los que
se divida el espectro, se volverá a introducir un error al acercar el valor digitalizado de la señal al
cuanto más cercano.
Esta pérdida de calidad o distorsión será inevitable, pues de nuevo según la Teoría de la
Computación el problema deberá consumir una cantidad de memoria finita y, para ello, la
cuantización realizada deberá tener una cantidad finita de valores posibles. Puesto que la señal
analógica real previsiblemente no encajará en esos cuantos que artificialmente se han decidido, se
introducirán unos errores en la señal, que serán como máximo tan grandes como la mitad de la
cuantización, pues se ajusta el valor de la señal real a su cuanto más cercano por arriba o por
abajo.
Como se verá posteriormente, el oído humano está limitado y, según autores, se considera que
llega a una frecuencia auditiva máxima de entre 16 y 20 kilohercios. Así, por seguridad se toma el
valor de 20.050 hercios como frecuencia máxima a digitalizar y, aplicando el teorema de Nyquist-
Shannon, se llega a los 44100 hercios usados habitualmente en las grabaciones de uso cotidiano.
Esto no quiere decir que la reconstrucción de la señal vaya a ser perfecta o que no vaya a haber
ruidos o distorsiones, ya que el teorema habla en todo momento de muestreo de la señal y no, aún,
de cuantización.
El enfoque dado hasta ahora al tratamiento informatizado al sonido ha sido el del dominio del
tiempo. Esta forma de tratar el sonido es la más obvia, pues consideramos una señal de sonido
como un valor de volumen en cada valor de tiempo, de la forma que lo veríamos en un indicador
unidimensional de volumen, llamados comúnmente vúmetros.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
La otra representación habitual del sonido en el dominio del tiempo es aquella que muestra su
volumen en cada cuanto de tiempo, pero manteniendo en la representación gráfica los valores
anteriores, de forma que gráficamente se va construyendo la onda del sonido. Esta es la llamada
representación de la forma de onda (waveform en inglés):
Un ejemplo sencillamente visible sería el siguiente, en el que vemos cómo representar una señal
seno periódica simple. A la izquierda se muestra en el dominio del tiempo, pues los ejes horizontal
y vertical son tiempo y amplitud respectivamente, y a la derecha en el dominio de la frecuencia,
pues los ejes horizontal y vertical son frecuencia y amplitud respectivamente:
Además, se sabe por análisis de Fourier que toda señal será simple o compuesta y que las señales
compuestas estarán formadas a su vez por una combinación de ondas simples con distintas
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
amplitudes, frecuencias y fases. Por tanto, cualquier señal real podrá ser descompuesta, tratada, y
también representada gráficamente, mediante su gráfico amplitud-frecuencia.
La lógica detrás del MP3 y otros formatos radicará en descomponer la señal acústica compleja en
las señales simples que la componen, obviando aquellas señales de menor amplitud o las
frecuencias fuera del rango audible por el ser humano para conseguir comprimir los archivos,
reduciendo la cantidad de información que se guarda. Esto, para sonido de origen “real” como la
voz o la mayoría de los instrumentos musicales tendrá buenos resultados, pues efectivamente los
sonidos reales estarán formados por composición de ondas más simples, pues son vibraciones de
elementos sonoros como las cuerdas vocales, cuerdas de guitarras, percusión de objetos, etc. En
cambio, para señales más complejas, cuya descomposición en señales simples no sea sencilla,
como ruidos y otras señales de gran componente aleatoria, los formatos basados en transformadas
como MP3 y similares, introducirán distorsiones al no poder modelizar fielmente la señal de
entrada mediante composición de señales más simples. Este proceso de conversión de la señal
del dominio del tiempo al de la frecuencia se consigue mediante el uso de transformadas como la
de Fourier o la MDCT (Transformada de Coseno Discreto Modificada), que es la usada
actualmente en la mayoría de los formatos de compresión de audio, como el MP3, AAC o el
OGG/Vorbis.
Para ejemplificar metodología, y en concreto operación sobre señales de audio, se trabajará con
formato WAV y codificación LPCM (Modulación Linear por Impulsos Codificados, Linear Pulse
Code Modulation por sus siglas en inglés), por tratarse de un formato sin compresión, de estructura
sencilla y soportado prácticamente por todo tipo de software y reproductores de sonido.
El formato de archivo tradicionalmente más habitual era el WAV (Waveform audio file format),
variante de RIFF (Resource Interchange File Format) desarrollado por Microsoft e IBM. De hecho,
en el inicio de un archivo WAV, en su cabecera, el primer dato que encontraremos es la cadena de
texto “RIFF” codificada en ASCII. Posteriormente vendrá indicado el tamaño del fichero (la cantidad
total de muestras que contiene), el formato (cadena “fmt” seguida de los códigos que indiquen el
tipo de codificación), el número de canales, la frecuencia de muestreo, la tasa de bits, información
de alineación de bloque y el tamaño de muestra. Posteriormente vendrá la sección de datos, que
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
también viene precedida por una pequeña cabecera, con las muestras de sonido una tras otra.
Este formato justamente es el mismo en el que se codifican los CD-Audio y es por ello que la
grabación de archivos WAV a formato CD (y viceversa) siempre ha sido inmediata.
Cabe destacar del formato WAV que, puesto que el tamaño del fichero se indica en la cabecera, y
que este campo que indica el número de muestras del fichero tiene una longitud fija de 32 bits, el
tamaño máximo de un archivo WAV será por tanto de 4 gigabytes. A la tasa de 1411,2 kbps de un
fichero WAV en calidad CD este fichero máximo será capaz de albergar poco más de seis horas y
media de sonido. En puntos posteriores se hablará de la tasa de bits y se explicará cómo se ha
calculado la tasa de 1411,2 kilobits por segundo para un archivo WAV estéreo de tamaño de
muestra de 16 bits.
Formato
Códecs Características
contenedor
Es el códec más usado en formato OGG.
Puede ser usado en un amplio rango de frecuencias de muestreo y
para muy diversos fines (desde baja calidad como telefonía, a alta
calidad en sonido profesional).
Usa técnicas de psicoacústica para conseguir compresión
eliminando señales menos audibles por el oído humano, al igual que
OGG Vorbis el MP3. De hecho, OGG surge como alternativa de códec libre
después de que el Fraunhofer Institute, desarrollador del MP3,
reclamase a diversos pequeños proyectos que pagasen una licencia
o dejasen de usar MPEG Audio Layer III.
La técnica que usa para la compresión es la MDCT (Transformada
de Coseno Discreta Modificada).
Soporta hasta 255 canales de audio.
Es un códec de compresión sin pérdida, como su nombre indica
(Free Lossless Audio Codec), que consigue una reducción de
tamaño del 50-60% respecto del WAV-PCM. Es mejor que aplicar
compresión ZIP a un archivo WAV-PCM pues en lugar de aplicar
compresión en bruto sobre los datos analiza el sonido: compendia
FLAC
los silencios, calcula diferencias entre señales, integra la señal de
diversos canales, etc.
Hasta 8 canales de audio.
También puede presentarse con su propio formato de archivo
contenedor.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
Formato
Códecs Características
contenedor
Es un códec de compresión con pérdida.
Se puede usar a muy diversas tasas de bits, pero su punto fuerte es
un algoritmo de cálculo con muy baja latencia, o sea que se aplica a
tramos de sonido muy cortos, por lo que es aplicable a usos que
requieran un tiempo de respuesta muy rápido: telefonía y voz sobre
Opus
ip, streaming, videoconferencia, etc. Su latencia típica ronda los
25ms, aunque a bajas tasas de bits puede llegar a los 5ms, mientras
que OGG o MP3 se sitúan en el rango de los 100ms.
Fue desarrollado por la misma fundación (Xiph.Org) que Vorbis y el
propio OGG.
El MP3 es un formato de compresión con pérdidas basado en la
MDCT (Transformada de Coseno Discreta Modificada), aunque
MPEG-1
antes de la MDCT aplica un filtro llamado PQF (Polyphase
Audio
Quadrature Filter) que divide la señal acústica en 32 bandas a las
Layer III
cuales se les aplica la MDCT.
MPEG-2
Las distintas versiones de códecs MP3 básicamente determinan las
MP3 Audio
tasas de bits y frecuencias de muestreo disponibles. El de uso más
Layer III
habitual es el MPEG-1 Audio Layer III permite su uso a 64, 128, 192,
MPEG-2.5
256 y 320kbps, entre otras tasas de bits.
Audio
MPEG-1 Audio Layer III, el comúnmente usado, sólo soporta 2
Layer III
canales y, aunque MPEG-2 Audio Layer III hasta 5.1, no es usado
frecuentemente.
Hace uso de MDCT (Transformada de Coseno Discreta Modificada)
pura, aunque hace mejor uso de la ventana de datos a los que aplica
la MDCT y mejora también la aplicación de técnicas de
psicoacústica, eliminando señales difícilmente audibles mediante un
banco de filtros predefinido.
AAC AAC Permite hasta 48 canales de audio, más una cierta cantidad de
canales adicionales de subgraves y de datos.
Más frecuencias de muestreo que el MP3, desde 8 hasta 96KHz.
A igualdad de frecuencia de muestreo consigue mayor calidad de
sonido que MP3.
Es el usado en Youtube, iTunes, etc.
3.3.1. Canales
En general el sonido digitalizado siempre había sido mono o estéreo, esto es, podía tener uno o
dos canales. En las primeras grabaciones hechas con micrófono únicamente tenía sentido la
existencia de un canal, pues el micrófono tomaba sólo un juego de muestras. Posteriormente, para
explotar la capacidad estereofónica del oído humano se planteó la grabación con dos micrófonos y
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
también, por tanto, la reproducción mediante dos altavoces, situados cada uno a un lado del
oyente. Esto dio pie a la creación de los formatos de sonido estéreo.
También por herencia de este proceso siguen existiendo dos formas de almacenar sonido
estereofónico: estéreo dividido (split) o estéreo entrelazado (interleaved).
En el estéreo entrelazado, en cambio, las muestras de ambos canales formarán parte del mismo
fichero, alternándose las muestras de cada canal.
Actualmente es bien sabido que el sonido ha pasado también a ser multicanal. Un ejemplo lo
tenemos en los equipos de reproducción de Cine en Casa (Home Cinema), que hacen uso de las
posibilidades multicanal de los formatos DVD, Blu-ray y similares.
Por ejemplo, una sala de cine con sonido 2.1 hará referencia a que, tanto el formato de archivo que
almacena el sonido, como el códec que lo trata, como la disposición de altavoces de la sala
soportarán una configuración estéreo (dos canales laterales, izquierdo y derecho) y un canal
adicional para frecuencias graves (de ahí el .1).
Una configuración 5.1 por su parte hace referencia a la existencia de dos canales estéreo
principales, izquierdo y derecho, un canal central, dos canales estéreo traseros, izquierdo y
derecho, más un canal adicional de graves.
La diferencia entre una configuración 2.1 (dos canales estéreo más un canal de graves) y una
configuración de estéreo 3.0 (dos canales laterales más uno central) se explicará en el punto
referente a optimización y psicoacústica.
El tamaño de muestra será la agrupación mínima de sonido que se almacenará y tratará de forma
conjunta.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
Los tamaños de muestra en formato WAV más habitualmente usados son de 8 o de 16 bits en
ambientes de uso doméstico. En el primer caso el tamaño de muestra es de un byte y en el
segundo es de dos bytes, que en la arquitectura Intel se almacenan como Little-endian, o sea, con
el byte menos significativo primero. En el caso de tratamiento profesional de sonido los tamaños de
muestra habituales son 16, 24 o 32 bits, y su funcionamiento es análogo y fácilmente deducible.
Así sería la estructura de un archivo WAV mono con tamaño de muestra de 16 bits:
Byte menos Byte más Byte menos Byte más Byte menos Byte más
Cabeceras …
significativo significativo significativo significativo significativo significativo
Byte menos Byte más Byte menos Byte más Byte menos Byte más
Cabeceras …
significativo significativo significativo significativo significativo significativo
Como curiosidad, cabe destacar que la codificación PCM en formato WAV de 8 bits usa valores
unsigned (sin signo) con lo que efectivamente los valores van de 0 a 255, pero el PCM de 16 bits
usa valores signed (con signo) y por tanto van del -32768 al +32767. Aunque a la práctica esto no
minora el rango sonoro, sí que es necesario tenerlo en cuenta en caso de querer procesar archivos
WAV-PCM.
Volviendo al ejemplo anterior, en calidad CD, esto es con una frecuencia de muestreo de 44,100
kilohercios y un tamaño de muestra de 16 bits en estéreo, un fichero WAV consumirá bits a una
tasa de 44100 hercios * 16 bits por muestra * 2 canales = 1411,2 kbps (kilobits por segundo).
Como es lógico, a mayor número de canales, mayor tamaño de muestra o mayor frecuencia de
muestreo, la tasa de bits consumida por ese sonido será mayor.
En el punto siguiente veremos cómo las técnicas de compresión y optimización actuales consiguen
no sólo bajar la tasa de bits para una calidad igual o similar, sino también que la tasa de bits sea
variable y no fija.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
Aunque la compresión y la psicoacústica tienen mucha relación entre sí en el campo del sonido, no
toda la compresión usa técnicas de psicoacústica. Se puede aplicar compresión clásica sobre el
sonido, como algoritmos ZIP y similares, aunque no suele dar buenos resultados debido al tipo de
dato que el sonido representa. El paso siguiente es mejorar la compresión mediante técnicas de
análisis de las señales, compresión por diferencias, compendio de repeticiones, etc. como se hace
con el códec FLAC. No obstante, la verdadera potencia en cuanto a compresión se consigue
trabajando en el campo de la frecuencia, mediante transformadas, y aplicando técnicas de
psicoacústica.
Así, es posible que un archivo WAV-PCM que consuma 1411,2 kbps tenga una calidad de sonido
difícilmente distinguible, incluso para oídos entrenados, que el mismo sonido codificado como
archivo MP3 a 320kbps.
Además de todo esto, existe la posibilidad de codificar a una tasa de bits variable, optimizando la
cantidad de bits que necesite el sonido en cada momento y llegando a bajarla sustancialmente
cuando, por ejemplo, la grabación contenga silencio y se pueda representar esa información con
mucha menor cantidad de bits.
El sonido 2.1 está pensado para colocar un tercer canal de subgraves, que da más cuerpo y
realismo al sonido. La lógica detrás de esto reside en que la música contemporánea suele colocar
centradas en el panorama estéreo las frecuencias más graves para conseguir la mayor potencia
sonora de ese grave al sonar igual por ambos canales izquierdo y derecho. Así, en lugar de
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
incorporar una caja de graves importante en cada altavoz izquierdo y derecho, se puede “aislar el
factor común” y conseguir ese sonido con una sola caja central. Además, el sonido 2.1 también
evita que en algunos casos las frecuencias más graves queden canceladas y sean casi inaudibles
en algunas posiciones de una sala por llegar las señales de ambos altavoces con la fase
completamente invertida. Al ocurrir esto las señales se restan, o sea que compensan su presión
sonora, dejando así al oyente sin percibir esas frecuencias.
El sonido estéreo 3.0, en cambio, sigue una lógica completamente distinta, por venir a resolver un
problema distinto, y está más enfocado al uso en reproducción de vídeo, como por ejemplo en
cines. El problema de un cine con sonido en estéreo básico izquierda-derecha radica en dónde se
sienta el espectador. Así, un espectador sentado en el centro de la sala tendrá una percepción
perfecta al estar a igual distancia de los altavoces izquierdo y derecho, mientras que un espectador
sentado en un lateral pierde la perspectiva sonora. Los sonidos de la película centrados, que
suenan por igual en ambos canales izquierdo-derecho, al espectador sentado a la derecha de la
sala le parecerá que provienen del altavoz del lado derecho, pues es el que tiene más cerca,
dándole la extraña sensación de que el “centro” de la película suena por la “derecha”. La
colocación del altavoz central del estéreo 3.0 soluciona en parte este efecto, pues los sonidos
centrados suenan sobre todo por el altavoz central, dándole mucho mejor perspectiva al
espectador que está sentado en un lateral, sin variar la correcta perspectiva de un espectador
centrado.
La misma lógica de los sistemas 3.0 se aplica al 4.0, con izquierda-derecha frontales e izquierda-
derecha traseros, y al 5.0 que añade el canal central a la configuración anterior. En todos los
casos, además, se puede aislar el canal de subgraves obteniendo sistemas 3.1, 4.1, 5.1, etc.
Además, el uso de canales traseros, o incluso superiores hasta llegar a configuraciones como 7.1,
tiene su explicación en la mejora de la sensación envolvente del sonido, permitiendo que pueda
haber sonidos que realmente suenen detrás o arriba del espectador.
La síntesis de voz es una disciplina con una larga historia a sus espaldas, pues en la década de
los sesenta ya se consiguió la síntesis informatizada de voz y en los setenta había incluso
productos comerciales que incluían síntesis de voz, como la calculadora Speech+ para invidentes
fabricada en 1976 en los Estados Unidos por la compañía Telesensory Systems Inc.
Las tecnologías para la síntesis de voz se suelen categorizar en relación a la técnica mediante la
cual realizan la tarea, y podemos distinguir principalmente cuatro:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
• La síntesis por formantes. Su idea es modelizar una fuente de aire o sonido, imitando
generalmente a las cuerdas vocales del aparato fonador humano, y aplicar posteriormente
filtros que, imitando a las cavidades que se generan y varían con el habla, modifican el
sonido que emite la fuente mediante la resonancia. Son bastante usados, aunque su
calidad no es excesivamente alta. Implementar un nuevo idioma no es excesivamente
gravoso.
• La síntesis articulatoria. Va un paso más allá de la síntesis por formantes y modeliza toda
la fonación humana: la vibración de las cuerdas vocales (sonidos sonoros), la espiración de
aire (sonidos sordos) y las piezas articuladas (labios, lengua, etc.) que modifican el sonido
generado. Aunque su procesamiento es costoso, ofrece un gran control sobre los
parámetros prosódicos (duración, tono y energía) y, además, el cambio de idioma es
relativamente sencillo.
• Realizar un análisis lingüístico para analizar los tipos de palabras del mensaje
• Realizar un análisis prosódico para detallar las duraciones, tonos y energía de cada
sección de sonido que se va a generar
• Sintetizar el habla mediante la técnica correspondiente, para generar una salida en formato
audible
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
Cuando se estudia historia de la computación se revisan las características básicas que definen a
cada una de las generaciones de computadores:
Es interesante ver cómo las primeras generaciones se centran en mejorar los ordenadores en
cuanto a tecnología y arquitectura físicas. No obstante, en la quinta generación, Japón y Estados
Unidos empiezan a desarrollar programas específicos en la línea de mejorar la capacidad de
proceso de los ordenadores mediante software, pensando en que sea el computador quien se
acerque al lenguaje natural y no el usuario quien se acerque al lenguaje máquina. Así florecen
ciertas ramas de la computación como la inteligencia artificial. Todo ello dará pie a usos avanzados
como el reconocimiento del habla o el reconocimiento de imagen que se trata posteriormente en
este mismo tema.
En el caso del reconocimiento del habla, no será sencillo conseguir un sistema plenamente
deductivo, pues sería muy complejo establecer unas reglas universales de partida para interpretar
a cualquier tipo de hablante en cualquier situación, debido a la gran variabilidad de fuentes
(idiomas/dialectos, acento, dicción, tono, entonación, etc.) y situaciones (ruido,
reverberaciones/ecos, etc.). Así que los sistemas de reconocimiento del habla serán, o bien
puramente inductivos, o bien una conjunción de reglas iniciales, para el razonamiento deductivo,
alimentadas de muestras reales para el procesado inductivo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
Además, desde que grandes empresas como Google (Alphabet Inc.) o IBM (International Business
Machines Corporation) están ofreciendo el uso mediante API de estas herramientas, su potencial
está ya llegando al gran público mediante su conexión con aplicaciones de uso cotidiano. Por
ejemplo, se puede consultar en internet un proyecto llamado Speech to Text dentro del ecosistema
Watson Developer Cloud de IBM.
El proyecto Speech to Text de IBM ofrece una propuesta de transcripción del texto que ha oído y,
además, una serie de alternativas de palabras en todas aquellas que puedan requerir de
desambiguación. Por tanto vemos que el sistema no es perfecto, pues el reconocimiento del habla
requiere no sólo de la captación y conversión del sonido en texto, sino que también requiere del
análisis de la temática y el contexto de la oración. Estos sistemas dan, ya en la actualidad, muy
buenos resultados cuando los resultados son susceptibles de desambiguación de forma sencilla,
bien sea porqué la cantidad de palabras a reconocer es relativamente baja o porqué el contexto, y
por tanto el léxico, está bastante acotado. Esto marca el tipo de situaciones en que son usados
actualmente este tipo de sistemas: que el usuario diga números, que el usuario diga la causa de un
fallo de entre una serie de causas posibles, que el usuario diga su teléfono o dirección, etc.
Como otros ejemplos de cada vez mayor difusión se podrían citar los asistentes por voz, cuyo uso
están potenciando las grandes marcas, como Siri (de Apple Computer Inc.), OK Google (de
Alphabet Inc.) o Cortana (de Microsoft Corporation). La finalidad de estas herramientas es, como
se planteó con la quinta generación de computadores, acercar el computador al humano haciendo
que el computador sea quien aprenda el lenguaje humano y no al contrario.
4. Tratamiento de imagen
4.1. Digitalización
Al igual que ocurre con el sonido, el tratamiento informatizado de imagen digital obligará a
digitalizar las señales de origen. Esto, además de ser la forma de trabajo habitual para la
informatización de datos, es la forma de cumplir con la Teoría de la Computación para hacer
abordable, o sea decidible, el problema y, de esta forma, intentar resolverlo.
La digitalización en imagen, bien sea mediante un escáner, una cámara fotográfica o cualquiera
otro tipo de dispositivo de captación, se basa en dividir la realidad en puntos, pequeños elementos
de imagen independientes llamados píxeles, y de los cuales se almacena su información de color,
intensidad, luminosidad e, incluso, de otros datos o matices relativos a la imagen original.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
Lógicamente esta digitalización, igual que se explicaba con el sonido, introducirá distorsiones
respecto del contenido original ya que, al digitalizar, se perderá detalle, y por tanto calidad, de la
imagen original. La imagen anterior, en una digitalización con mayor número de píxeles, podría
haber quedado así:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
De esta forma observamos cómo, la digitalización introduce errores, al no ser capaz de representar
fielmente la imagen original, en este caso los detalles a la derecha de cada una de las líneas
horizontales de la letra F, arriba y debajo.
4.2. Color
La saturación está relacionada con la viveza del color, un color más saturado es más
vivo y uno menos saturado es más apagado.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
La luminosidad está relacionada con la cantidad de luz que el color refleja. A mayor
luminosidad se da un color más tendente al blanco y a menor luminosidad, un color
tendente al negro.
Es la forma en que funcionan las pantallas actuales, por composición de los tres
distintos tonos de luz, llamados colores primarios.
Cabe destacar que RGB es una composición teórica y que ni la vista humana es capaz
de ver todos los colores ni, por supuesto, los monitores son capaces de representarlos
todos. Así, se crearon algunos modos de color que son subconjuntos del RGB
absoluto, como son sRGB (standard RGB IEC61966-2.1) o el AdobeRGB (Adobe RGB
1998), que básicamente restringen los posibles colores que se permiten.
• CMYK (Cyan, Magenta, Yellow, Black), esto es cian, magenta, amarillo y negro.
Teóricamente las tintas cian, magenta y amarilla (CMY) sumadas ya deberían dar
como resultado una imagen en tono negro, aunque no siempre es así. Para conseguir
tonos negros más realistas, y para evitar saturar el papel con la suma de tres tintas, se
añade también la tinta negra. Esto da como resultado el uso de cuatro tintas, en lugar
de tres. Por esta razón, en el gremio de la impresión, se suele llamar a este modelo
cuatricromía.
Creado en el 1993 por diversos fabricantes de las industrias electrónicas, del software
y el diseño o las artes gráficas.
Definen unos perfiles, llamados perfiles ICC, para cada dispositivo que debe tratar,
representar, visionar, imprimir… color. De esta forma, y mediante los llamados PCS
(Profile Connection Space) planteaban, teóricamente, conseguir la representación
fidedigna de color entre distintos dispositivos y, como consecuencia, la convertibilidad
entre distintas representaciones de color como RGB, CMYK…
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
Así, a mayor profundidad de color, más cantidad de tonos distintos se podrán representar, más fiel
será la representación que se haga de la imagen original y, finalmente, mayor calidad se percibirá.
De forma análoga a cómo se hace con el sonido, que se puede procesar en el dominio del tiempo y
la frecuencia, la imagen puede ser procesada en el dominio del espacio y, también, de la
frecuencia. El procesamiento en el dominio del espacio se parece bastante a lo visto anteriormente
en este mismo tema, tratando la imagen como una matriz de puntos individuales, independientes, a
los que podemos aplicar operaciones. Este tipo de operación se llama ‘operación punto a punto’ o
‘procesamiento de punto’. Por el contrario, si se considera la imagen como una representación, una
captación, de una realidad continua resulta interesante considerar métodos de tratamiento de
señales que ayuden a modelizar la realidad mediante herramientas matemáticas. En el caso de la
imagen se hace generalmente uso de la Transformada de Fourier en su versión Discreta (DFT), y a
los datos resultantes, generalmente se les aplican ciertos filtros para eliminar las distorsiones que
la propia DFT pueda crear, al introducir en la imagen procesada harmónicos que no existían en la
imagen original.
La mayoría de efectos clásicos de retoque de imagen por su sencillez son, por tanto, operaciones
punto a punto, como la corrección de color, saturación, brillo, inversión de color,
reducción/ampliación de rango dinámico, etc. así como la mayoría de operaciones de composición
de imagen en capas.
El procesado digital de imagen descansa sobre esta filosofía básica para intentar adaptar la
imagen al uso que se le desea dar. El filtrado se basa en la idea de conseguir eliminar aquellos
detalles de la imagen que empeoran el tratamiento que se le puede dar o, de forma análoga,
potenciar aquellos detalles considerados importantes o característicos de dicha imagen. Este
proceso se concretará, por una parte, en suavizar imágenes, proceso más que adecuado sobre
todo por la dureza que impone la digitalización al pixelar la imagen, por otra parte, en eliminar las
llamadas distorsiones o ruidos, pues la digitalización y otros procesos también pueden incorporar a
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
Si para simplificar se toma una imagen muy sencilla, como podría ser una imagen de una única fila
de píxeles, con esta disposición:
En esta imagen, el color pasa gradualmente de un tono gris medio a blanco, para después
gradualmente, pasando de nuevo por el gris, ir al negro y volver finalmente al gris de inicio.
Si se intentase representar esta transición de tonos mediante un gráfico en el que el eje horizontal
fuese la posición en la imagen y el eje vertical el tono de gris, se obtendría un gráfico similar al
siguiente, en el que la mayor amplitud positiva de la onda representaría el blanco y la menor
amplitud el negro, siendo el punto intermedio el gris:
Llegados a este punto es sencillo, sobre todo una vez visto este proceso en el sonido, establecer la
correspondencia de esta representación con una señal seno y comprender que se podrá
almacenar la información de la imagen inicial como una señal simple de frecuencia F, amplitud A y
con un offset o desplazamiento inicial tal que convierta su máximo en el blanco de la imagen y su
mínimo en el negro. También como se vio con el sonido cabe recordar que, según Fourier, toda
señal compleja podrá ser descompuesta por una suma de señales simples de distinta frecuencia,
amplitud y fase.
Con esta filosofía y base matemática se trata la imagen para conseguir representarla como una
composición de ondas simples mediante la aplicación de la Transformada Discreta de Fourier (DFT
en sus siglas en inglés) bidimensional.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
o de disimular el pixelado presente en una imagen digital. Un filtro paso alto conseguiría el efecto
contrario, remarcar los cambios de intensidad bruscos en una imagen, algo que podría servir para
intentar remarcar los bordes de los elementos naturalmente presentes en una imagen y aumentar
su nitidez. Estos filtros comentados, que trabajan en el dominio de la frecuencia, no son los únicos
filtros posibles. También es posible implementar filtros en el dominio del espacio, cuya operación
se realiza directamente sobre los píxeles. Un ejemplo sencillo de comprender es un filtro promedio
que coloque en cada píxel el valor promedio de sus vecinos iniciales. De esta forma se conseguiría
difuminar la imagen, dando lugar a un efecto similar a la niebla o a ver a través de un cristal
empañado.
4.4. Formatos
En el caso de la imagen, al igual que ocurre con el sonido, se dispone de diversos formatos de
archivo que además recogen distintas formas de compresión. Los más habitualmente usados son
los siguientes:
Formato Características
Es un estándar de facto que soporta gestión de color RGB, CMYK, YCBCR o
mediante su propia paleta de colores, entre otras configuraciones. Tiene una
profundidad de bits bitonal de 1 bit, en escala de grises de 4 u 8 y hasta 64 bits
TIFF
en color, aunque a la práctica la mayor parte de aplicaciones sólo llegan a los 24
bits en color. Soporta compresión con pérdidas JPEG y también compresión sin
pérdidas ITU-T.6, LZW y otras.
Se trata también de un estándar de facto, que permite gestión de color mediante
su propia paleta con una selección de hasta 256 colores. Tiene una profundidad
de bits bitonal, en escala de grises o color de entre 1 y 8 bits, dando lugar con
GIF 8
los ocho bits máximos a esos 2 = 256 colores máximos posibles. Únicamente
permite la compresión LZW y se trata, por tanto, de un formato con compresión
sin pérdidas.
Es un estándar ISO (10918-1/2) que permite únicamente la gestión de color
YCBCR. Su profundidad de color en escala de grises es de 8 bits y, en color, de
JPEG
24 bits. Existe especificación JPEG sin pérdidas, aunque no suele ser soportada
y la única configuración posible es propia la compresión con pérdidas JPEG.
Es un estándar ISO (15948) nacido con la intención de reemplazar a GIF en el
uso en web. Los modos de gestión de color que permite son sRGB, su propia
paleta de color o ICC. Su profundidad de bits va de 1 a 48 bits en varios modos.
PNG
Un primer modo de 8 bits en color, escala de grises de 16 bits y finalmente en
color hasta 48 bits. Trabaja con compresión sin pérdida Deflate, surgida de
LZ77.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
Formato Características
WebP Está llamado a ser un estándar, nacido a partir del formato de vídeo VP8 y que
se extiende debido a la apertura del mismo, con licencia BSD, por parte de
Google después de la adquisición de la compañía On2 Technologies, su
desarrolladora original. El modo de color recomendado por Google es ICC y se
asume sRGB en caso contrario. Su profundidad de color es de sólo 8 bits, pues
es un formato pensado para la web y tiene como uno de sus objetivos básicos el
generar archivos de bajo peso. Puede funcionar en compresión con y sin
pérdida, con métodos desarrollados por el equipo de VP8 y el de WebP
respectivamente. Google además ha publicado VP9, trabaja en VP10 y AV1 y,
entre otras cosas, se ha hablado de dotar a WebP, en su siguiente versión, de
mayor profundidad de color, aunque evolucionar WebP no parece ser una
prioridad para la compañía.
Se cita este formato simplemente como ejemplo de lo abierto que actualmente
está el desarrollo de formatos de compresión de imagen y vídeo. FLIF es un
FLIF formato de compresión sin pérdidas, abierto con licencia LGPL3, que afirma
conseguir mejor compresión que sus equivalentes (sin pérdidas) WebP, PNG,
JPEG, etc.
Es un formato estándar desarrollado por el W3C, vectorial, y por tanto escalable,
y de ahí viene su nombre en inglés, Scalar Vector Graphics. Está basado en el
lenguaje de marcas XML y establece una metodología de almacenamiento de
SVG
imagen en dos dimensiones con soporte limitado para la animación e incluso la
interacción con el usuario. El color se establece en RGB de la misma forma que
en CSS, por ejemplo #2A224F o bien rgb(212, 22, 63).
El formato RAW, o datos en crudo, es un almacenamiento de imagen casi sin
procesar salidas de equipamiento de toma de imágenes como cámaras de
fotografía. También se les llama, por tanto, negativos digitales. Al salir
RAW directamente de los sensores de la cámara, no se puede establecer un perfil de
color compartido para todo archivo RAW, ni tampoco de profundidad de color,
sino que más bien dependerá de cada máquina que tome las imágenes.
Por supuesto que estos formatos no son los únicos, como se ha comentado, los hay muchos y muy
variados y hoy en día hay gran trabajo de desarrollo, centrado entre otras cosas en el trabajo de la
comunidad, con el desarrollo de formatos abiertos y de las propias compañías, en una suerte de
batalla legal-empresarial por intentar imponer sus propios formatos y no depender de los formatos
de la competencia, en un juego donde entran en danza las posibles regalías que debería pagar
una empresa que usase estándares cerrados de otra compañía. Es por ello que compañías como
Google o Apple se han interesado en los últimos años por los formatos de sonido, imagen y vídeo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
4.5. Vídeo
El vídeo, como imagen en movimiento, puede ser tratado de muy distintas formas. En sus inicios
se planteó de la forma más obvia, como una serie de imágenes almacenadas y proyectadas de
forma consecutiva. La digitalización del vídeo, por tanto, se planteaba como la digitalización de
imágenes independientes y de esa forma surgieron los primeros formatos de vídeo digital.
El problema surgía, lógicamente, al tener que almacenar la ingente cantidad de información que
suponen todos los fotogramas de un vídeo en calidad suficiente y sin compresión alguna.
En este punto cabe recordar que el vídeo hoy en día está disponible habitualmente en tasas de 25
ó 29,97 FPS (Frames Per Second o Fotogramas Por Segundo), aunque los monitores llegan a
tasas de refresco de imagen mayores (típicamente 50 ó 60 Hercios y actualmente los 90 ó 100 Hz
ya son valores habituales en monitores o en cascos de realidad virtual como Oculus Rift o HTC
Vive).
Además, los formatos o ratios de aspecto más habituales en tratamiento de vídeo son los
siguientes:
• 640x480: VGA
• 720x480: NTSC
• 720x576: PAL
• 800x600: SVGA
• 1024x768: XGA
• 1280x1024: SXGA
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
Dado que el almacenamiento de tanta información de vídeo era un problema y que ya existían
métodos de compresión para imágenes, el siguiente paso era evidente.
Al igual que en sonido, en vídeo se dispondrá de un formato contenedor de archivo, por ejemplo
AVI, MKV, OGG, MOV o WebM, y de diversos códecs para la compresión del vídeo, como DIVX,
XVID, x264, Theora, VP9. Además, se hará uso también de los códecs de compresión de audio
para la compresión del sonido del vídeo, si es que éste lo tiene. Si un vídeo no usa códec se estará
almacenando en formato RAW (en crudo, sin ningún tipo de compresión), lo que puede llegar a
generar archivos de un tamaño muy importante.
Precisamente para evitar obtener archivos de vídeo de gran tamaño, se aplican distintos tipos de
compresión mediante códecs. Por un lado, la compresión intra-frame se basa en tratar, y
comprimir, un frame como imagen aislada mientras que, por otro, la compresión inter-frame, trata
de lograr compresión relacionando cada fotograma con sus fotogramas anteriores y/o posteriores.
Tal como se explicó en la compresión de vídeo, los mecanismos de compresión mediante
transformadas se basarán en descomponer la señal compleja que genera la realidad en las
señales simples que la componen, para así almacenar únicamente los datos relativos a esas
señales en el dominio de la frecuencia. Esto se podrá conseguir tanto en las dimensiones de un
fotograma estático (imagen de la izquierda) como entrelazando los fotogramas consecutivos de un
vídeo.
Figura 8: Representación del análisis para compresión en imagen (izquierda, un solo fotograma) y
en vídeo (derecha, más de un fotograma)
Puesto que ya se dispone de herramientas, como JPEG, para conseguirlo con una imagen, la
implementación para vídeo es inmediata.
Así, los códecs más simples únicamente realizan compresión intra-frame y los más complejos
trabajan la compresión inter-frame, no sólo para calcular los frames siguientes, sino también los
anteriores.
Existen tres tipos de frames: I-frames, P-frames y B-frames. Los I-frames (Intra-Coded Images) son
las imágenes auto-contenidas, como una imagen JPEG normal. Los P-frames (Predicted Image)
son imágenes cuya información se calcula a partir del frame anterior. Los B-frames (Bi-predicted
Image) son imágenes cuya información se calcula a partir del frame anterior y el siguiente. Como
ya se vio, la realidad no causa imágenes con información de alta frecuencia en el dominio de la
frecuencia, pues serían muy abstractas, y esto ayuda a comprimir mediante transformadas. De
igual forma, un fotograma y su fotograma siguiente serán semejantes (sino iguales) pues la
realidad no puede causar, salvo en contadas ocasiones, un constante cambio brusco de imagen de
un fotograma al siguiente. Esto también ayudará a conseguir un notable ahorro de información
mediante compresión inter-frame.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tratamiento de información multimedia
Los formatos contenedores más habituales, y sus códecs son los siguientes:
• MPEG-1: usa VCD para vídeo y MP1, MP2 o MP3 para audio. Llamado habitualmente
“calidad CD”.
• MPEG-2: usa SVCD para vídeo y MP3 o AAC para audio. Llamado habitualmente “calidad
DVD”.
• MP4: usa sobretodo algún códec que cumpla la especificación H.264 (como por ejemplo el
códec libre x264) y AAC para audio.
• AVI: desarrollado por Microsoft, es uno de los históricamente más extendidos. Acepta gran
cantidad de códecs (DV, Cinepak, Intel Video 5, etc.), aunque los más usados son DivX y
XviD debido a su buen nivel de compresión en el momento de su popularización. Cuando
DivX se cerró (no se permitió su uso libre), XviD surgió como alternativa libre, de
tecnología muy similar y mejor rendimiento y ocupó su lugar.
• RM: formato Real Media, de Real Networks usa códecs propios tanto para vídeo como
para audio.
• MKV: el formato Matroska es totalmente abierto, usa generalmente el códec x264 y como
códec de audio suele usar Vorbis, por ser también abierto.
• OGG: formato libre que usa Theora para vídeo y Vorbis u Opus para audio. Como en cierta
época se extendió su uso para audio sin vídeo (como alternativa libre al MP3), se tiende a
llamar OGG al archivo que únicamente contiene audio y OGM al OGG con vídeo Theora.
• MOV: formato desarrollado por Apple. Actualmente es equivalente a MP4, usando una
implementación de h.264 cerrada y audio AAC.
• 3GP: usa implementaciones de h.263 y h.264 para el vídeo y generalmente ha sido usado
en dispositivos móviles buscando una gran compresión y tamaños de fichero muy
reducidos.
• WebM: inicialmente desarrollado por On2 Technologies y liberado por Google. Usaba el
códec VP8 para vídeo y Vorbis para audio, y actualmente usa VP9 para vídeo y Opus para
audio.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Joan Ferre i Ferre
programación de aplicaciones de libre uso para reconocimiento de imagen, que se puede encontrar
aquí: https://cloud.google.com/vision/
Las redes neuronales aprenderán, como también hace el ser humano, a partir del ejemplo y así la
capacidad de empresas como Google para disponer de una base de datos, en constante
crecimiento, con millones de imágenes será una pieza fundamental para evolucionar sus sistemas
de inteligencia artificial, entre otros usos, para entrenarlos con la mente puesta en el
reconocimiento de imagen. En este sentido una vez que Google dispone de los datos para entrenar
sus redes neuronales, abrir una API para que el gran público desarrollador trabaje y desarrolle sus
aplicaciones les facilitará el siguiente paso de la evolución del sistema: la decisión, la capacidad de
tratar los datos que extraiga la red neuronal para interpretar la realidad de forma efectiva, mediante
la informática.
Referencias bibliográficas
(1) Ferrater Mora, José (1965). Diccionario de filosofía, quinta edición. Ed. Sudamericana Buenos
Aires.
(2) Soliman, S. & Srinath (1999). Señales y sistemas continuos y discretos. Ed. Prentice Hall.
(3) Información del Center for Computer Research in Music and Acoustics, de la Universidad de
Stanford (EE.UU.) https://ccrma.stanford.edu
(4) Material del profesor Joaquim Llisterri del Grup de Fonètica del Departament de Filologia
Espanyola de la Facultat de Filosofia i Lletres de la Universitat Autònoma de Barcelona:
http://liceu.uab.es/~joaquim
(5) Material del profesor Agustín Gravano del Departamento de Computación de la Universidad de
Buenos Aires (Argentina), perteneciente al grupo de Procesamiento del Habla y del
Laboratorio de Inteligencia Artificial Aplicada: http://habla.dc.uba.ar/gravano
(8) Material del Instituto de Formación y Recursos en Red para el Profesorado del Ministerio de
Educación, Política Social y Deporte sobre Diseño de Materiales Multimedia:
http://www.ite.educacion.es/formacion/materiales/107/cd/video/video0102.html
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 24. Arquitecturas de sistemas de
información. El procesamiento cooperativo y la
arquitectura cliente-servidor
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Botana Gómez
Un Sistema de Información (en adelante puede verse como S.I.) es un conjunto de procedimientos,
manuales y automatizados, y de funciones dirigidas a la recogida, elaboración, evaluación,
almacenamiento, recuperación, condensación y distribución de informaciones dentro de una
organización, orientado a promover el flujo de las mismas desde el punto en el que se generan
hasta el destinatario final de las mismas".
Un S.I. completo para una organización es un instrumento enormemente complejo que está
constituido por un gran número de partes, o subsistemas, que interaccionan unos con otros en
grado diferente y cuya estructuración tiene simultáneamente una dimensión vertical y horizontal.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitecturas de sistemas de información
En su estructura horizontal, y dentro de cada uno de los niveles anteriores, las funciones se
subdividen en aplicaciones o procedimientos (subsistemas). Por ejemplo, el nivel operativo de una
empresa de fabricación incluiría subsistemas de pedidos, control de inventario, etc.
Estos subsistemas pueden estar directamente conectados unos con otros aportando un alto grado
de integración o por el contrario pueden estar concebidos bajo un enfoque separado o autónomo
que contempla cada aplicación o procedimiento de manera separada e independiente de los
restantes procedimientos de la organización. En cualquier caso, el grado de integración entre
subsistemas es una cuestión principal en el diseño de un S.I.
Un sistema integrado M.I.S. (Management Information System) es aquel que tiene un alto grado de
coordinación, con entradas y salidas rígidamente establecidas, teniendo en cuenta los efectos de
un subsistema sobre los otros y en el que los recursos son ampliamente compartidos.
• Posibilidad de abordar las decisiones desde la perspectiva del sistema conjunto en vez de
sobre una base subóptima que utilice solamente información y objetivos locales.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Botana Gómez
• Entrada de datos.
Los datos entran al S.I. en forma de transacciones que describen sucesos del mundo real.
Los principales aspectos a considerar en relación con la entrada de datos son:
• Almacenamiento de datos.
• Cálculo.
Mediante el cálculo el S.I. transforma los datos brutos en información utilizable por el
propio sistema o en forma ajena al mismo.
• Presentación de la información.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitecturas de sistemas de información
capacidad del usuario para percibir y actuar sobre los hechos reflejados por la información.
Uno de los aspectos más críticos en el diseño de un S.I. es la construcción del interfaz de
modo que el sistema proporcione la manera más eficaz de presentar los resultados a los
usuarios.
• Comunicaciones.
Los sistemas de información actuales se diferencian muy notablemente de los del pasado
en su creciente apoyo a las comunicaciones. Los avances experimentados en los sistemas
de información están estrechamente relacionados con los avances realizados en el mundo
de las telecomunicaciones.
Así hemos asistido a sistemas que dependían muy poco o nada de las telecomunicaciones
y donde los datos eran comunicados mediante transporte físico de medios de
almacenamiento. Más tarde pasamos al uso extendido de terminales de entrada de tareas
a distancia que no incorporaban ninguna capacidad de procesamiento. Ahora asistimos a la
implantación de sistemas informáticos distribuidos en los que los ordenadores de la
organización están conectados por medio de una red de telecomunicaciones, compartiendo
recursos y con capacidades de cálculo autónomo para servir a las necesidades
especializadas de sus usuarios.
Los datos entran al S.I. en forma de transacciones que describen sucesos del mundo real. Los
principales aspectos a considerar en relación con la entrada de datos son:
El S.I. debe mantener ficheros de datos destinados a suministrar la información para el tratamiento
de transacciones y para la toma de decisiones. Los principales aspectos a considerar son:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Botana Gómez
1.3.3. Cálculo
Mediante el cálculo el S.I. transforma los datos brutos en información utilizable por el propio
sistema o en forma ajena al mismo.
1.3.5. Comunicaciones
Los sistemas de información actuales se diferencian muy notablemente de los del pasado en su
creciente apoyo a las comunicaciones. Los avances experimentados en los sistemas de
información están estrechamente relacionados con los avances realizados en el mundo de las
telecomunicaciones.
Así hemos asistido a sistemas que dependían muy poco o nada de las telecomunicaciones y donde
los datos eran comunicados mediante transporte físico de medios de almacenamiento. Más tarde
pasamos al uso extendido de terminales de entrada de tareas a distancia que no incorporaban
ninguna capacidad de procesamiento. Ahora asistimos a la implantación de sistemas informáticos
distribuidos en los que los ordenadores de la organización están conectados por medio de una red
de telecomunicaciones, compartiendo recursos y con capacidades de cálculo autónomo para servir
a las necesidades especializadas de sus usuarios.
El modelo centralizado es el que sido ampliamente utilizado en los Sistemas de Información de las
grandes organizaciones en décadas anteriores, mediante un Host que ejecutaba el 100% de la
lógica del sistema, residiendo únicamente en el terminal de usuario las funciones de presentación.
A este tipo de aplicaciones, que concentran todas las lógicas funcionales del software
(presentación, negocio y acceso a datos) en un mismo componente se les denomina aplicaciones
monolíticas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitecturas de sistemas de información
Otro de los problemas de este modelo en su la poca capacidad de integración con otros sistemas
de información. Son prácticamente islas en los que la única posibilidad de intercambio de
información se hace por medio de procesos diferidos no on-line.
Otro defecto de estos sistemas son los relativos a la disponibilidad de los mismos, derivada
principalmente de la tolerancia a fallos que proporcionan ya que, a pesar de que los sistemas
mainframe son de los más robustos que se conocen, cuándo se produce un error en el sistema, el
sistema en su totalidad falla, haciendo que la disponibilidad en estos casos no sea la deseada.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Botana Gómez
2. El procesamiento cooperativo
El procesamiento cooperativo es aquel en que dos o más elementos lógicos diferentes interactúan
entre sí en la realización de una tarea común.
El modelo convencional utiliza el host para ejecutar el 100% de la lógica asociada a un programa,
residiendo únicamente en el terminal de usuario las funciones de presentación. Las ventajas del
procesamiento cooperativos frente al modelo convencional, se derivan de la utilización eficiente de
los equipos microordenadores y la consiguiente descarga de tareas del ordenador central.
Existen diferentes modelos para el desarrollo de aplicaciones que reparten procesos y datos en
distintos ordenadores. A continuación se describen los más característicos.
• Durante la noche, se transfieren los datos consolidados durante la jornada al host, donde
se aplican a la base de datos corporativa mediante procesos batch.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitecturas de sistemas de información
• Al acabar los procesos batch del host, se distribuyendo los datos necesarios a los equipos
locales como soporte de funcionamiento en la jornada siguiente.
En estos sistemas es habitual que el desarrollo se realice de forma centralizada, lo que implica
también la distribución periódica de las nuevas versiones de software para la actualización de
aplicativos.
Son aquellas en que sus datos se distribuyen por los diferentes equipos del sistema con criterios
de eficacia, acercamiento al usuario que en mayor grado los utiliza, gobernado por el propio gestor
de la base de datos de modo que la residencia de los distintos elementos es transparente al
diseñador del desarrollo de aplicaciones y al usuario final.
El procesamiento cooperativo es aquel en que dos o más elementos lógicos diferentes interactúan
entre sí para la realización de una tarea común. Surgió para intentar dar respuesta a los problemas
y debilidades del modelo centralizado, aunque este modelo tiene sus propios problemas derivados
por su propia naturaleza distribuida.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Botana Gómez
un servicio único a los usuarios a partir del uso de un conjunto de computadoras totalmente
independientes.
Los sistemas distribuidos pretenden alcanzar un estilo arquitectónico que habilite tres cualidades:
La arquitectura cliente - servidor (en adelante puede verse como cliente/servidor o C/S) permite
estructurar sistemas distribuidos con componentes desacoplados que interactúan por medio de
invocaciones remotas a servicios.
3.1. Definiciones
• Cualquier combinación de sistemas que pueden colaborar entre sí para dar a los usuarios
toda la información que ellos necesiten sin que tengan que saber dónde está ubicada.
• IBM define al modelo cliente/servidor: "Es la tecnología que proporciona al usuario final el
acceso transparente a las aplicaciones, datos, servicios de cómputo o cualquier otro
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitecturas de sistemas de información
Desde el punto de vista funcional, se puede definir la computación cliente/servidor como una
arquitectura distribuida que permite a los usuarios finales obtener acceso a la información de forma
transparente aún en entornos multiplataforma. Se trata pues, de la arquitectura más extendida en
la realización de sistemas distribuidos.
• Servicio: unidad básica de diseño. El servidor los proporciona y el cliente los utiliza.
• Recursos compartidos: Muchos clientes utilizan los mismos servidores y, a través de ellos,
comparten tanto recursos lógicos como físicos.
• Transparencia de localización física de los servidores y clientes: El cliente no tiene por qué
saber dónde se encuentra situado el recurso que desea utilizar.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Botana Gómez
En la arquitectura en 3 niveles (figura 2), existe un nivel intermedio. Esto significa que la
arquitectura generalmente está compartida por:
• Un cliente, es decir, el equipo que solicita los recursos, equipado con una interfaz de
usuario (generalmente un navegador Web) para la presentación.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitecturas de sistemas de información
• El servidor de datos, que proporciona al servidor de aplicaciones los datos que requiere.
"Los elementos principales de la arquitectura cliente servidor son justamente el elemento llamado
cliente y el otro elemento llamado servidor". Por ejemplo dentro de un ambiente multimedia, el
elemento cliente seria el dispositivo que puede observar el vídeo, cuadros y texto, o reproduce el
audio distribuido por el elemento servidor.
Por otro lado el cliente también puede ser una computadora personal o una televisión inteligente
que posea la capacidad de entender datos digitales. Dentro de este caso el elemento servidor es el
depositario del vídeo digital, audio, fotografías digitales y texto y los distribuye bajo demanda de
ser una máquina que cuenta con la capacidad de almacenar los datos y ejecutar todo el software
que brinda éstos al cliente.
3.3.1. Cliente
Un cliente es todo proceso que reclama servicios de otro. Una definición un poco más elaborada
podría ser la siguiente: cliente es el proceso que permite al usuario formular los requerimientos y
pasarlos al servidor. Se lo conoce con el término front-end.
Éste normalmente maneja todas las funciones relacionadas con la manipulación y despliegue de
datos, por lo que están desarrollados sobre plataformas que permiten construir interfaces gráficas
de usuario (GUI), además de acceder a los servicios distribuidos en cualquier parte de la red. Las
funciones que lleva a cabo el proceso cliente se resumen en los siguientes puntos:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Botana Gómez
• Formatear resultados.
• Cliente basado en aplicación de usuario. Si los datos son de baja interacción y están
fuertemente relacionados con la actividad de los usuarios de esos clientes.
• Cliente basado en lógica de negocio. Toma datos suministrados por el usuario y/o la base
de datos y efectúa los cálculos necesarios según los requerimientos del usuario.
3.3.2. Servidor
Puede darse el caso que un servidor actúe a su vez como cliente de otro servidor. Existen
numerosos tipos de servidores, cada uno de los cuales da lugar a un tipo de arquitectura
cliente/servidor diferente.
El término "servidor" se suele utilizar también para designar el hardware, de gran potencia,
capacidad y prestaciones, utilizado para albergar servicios que atienden a un gran número de
usuarios concurrentes. Desde el punto de vista de la arquitectura cliente/servidor y del
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitecturas de sistemas de información
3.3.3. Middleware
El middleware es un módulo intermedio que actúa como conductor entre sistemas permitiendo a
cualquier usuario de sistemas de información comunicarse con varias fuentes de información que
se encuentran conectadas por una red. En el caso que nos concierne, es el intermediario entre el
cliente y el servidor y se ejecuta en ambas partes.
• Protocolo de transporte.
• Proporciona mayor control del negocio al poder contar con información procedente de
distintas plataformas sobre el mismo soporte.
Dentro de los inconvenientes más importantes destacan la mayor carga de máquina necesaria
para que puedan funcionar.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Botana Gómez
relación está establecida en función del intercambio de mensajes que es el único elemento de
acoplamiento entre ambos.
De estas líneas se deducen los tres elementos fundamentales sobre los cuales se desarrollan e
implantan los sistemas cliente/servidor: el proceso cliente que es quien inicia el diálogo, el proceso
servidor que pasivamente espera a que lleguen peticiones de servicio y el middleware que
corresponde a la interfaz que provee la conectividad entre el cliente y el servidor para poder
intercambiar mensajes.
Para entender en forma más ordenada y clara los conceptos y elementos involucrados en esta
tecnología se puede aplicar una descomposición o arquitectura de niveles. Esta descomposición
principalmente consiste en separar los elementos estructurales de esta tecnología en función de
aspectos más funcionales de la misma:
• Nivel de comunicación: Agrupa a todos los elementos que hacen posible la comunicación
entre los componentes cliente y servidor.
• Nivel de base de datos: Agrupa a todas las actividades asociadas al acceso de los datos.
Este modelo de descomposición en niveles, como se verá más adelante, permite introducir más
claramente la discusión del desarrollo de aplicaciones en arquitecturas de hardware y software en
planos.
Referencias bibliográficas
(1) Pressman, Roger S. (1999). Ingeniería del software, un enfoque práctico. Ed Mc Graw Hill.
(3) Rodríguez, José Manuel; Daureo, María José. (2003). Sistemas de información: Aspectos
técnicos y legales. Universidad de Almería.
(4) Martos, Fernando; Desongles, Juan; Garzón, Mª Luisa; (2006). Técnicos de Soporte
Informático. Ed MAD.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 25. Arquitectura SOA
Desde mediados de los años 2000, se ha mantenido un debate muy intenso sobre cuál
debería ser el modelo de referencia de una arquitectura orientada a servicios. En la
norma, podemos encontrar influencia de todos los actores que han participado en la
definición y expansión del paradigma SOA. Como referencias para enriquecer los
conocimientos sobre SOA del estudiante, destacaremos el trabajo de Thomas Erl
(4)(5) y otros autores (6)(7), las numerosas publicaciones en abierto sobre el tema de
importantes compañías tecnológicas (8)(9)(10)(11) y por supuesto, también son de
gran relevancia los trabajos de investigación internacionales (12).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sara Blanc Clavero
favor del crecimiento de los procesos empresariales alineados con los objetivos de
negocio.
Para ello, y como iremos viendo en el capítulo, un servicio debe poder ser descrito de una forma
convencional, entendible por otros. Además, un servicio también debe ser descubrible, ya que si se
mantiene oculto no puede ser utilizado. En resumen, los principios básicos son:
• Un servicio debe ser auto-contenido y tener control sobre su propia lógica, minimizando las
interdependencias entre servicios.
• La lógica de un servicio es transparente fuera del servicio. Significa que existe un nivel de
abstracción que sólo requiere conocimiento sobre la descripción del servicio (tipo caja
negra).
• Por tanto, los servicios no mantienen, o apenas mantiene, información específica sobre su
estado.
• Cuando un servicio envía un mensaje con información (datos), pierde el control sobre el
mismo. Así que los mensajes también son componentes o unidades dentro del proceso de
comunicación SOA.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitectura SOA
Si estos son los principios básicos, las primeras preguntas que nos hacemos son ¿cómo se debe
planificar los servicios? o ¿cómo entendemos la relación entre servicios? En general, el diseño de
una arquitectura orientada a servicios nos debería llevar a reflexionar y analizar aspectos como:
• Identificar los procesos de negocio y las tareas que implican. Esas tareas se sostienen
sobre servicios compuestos sustentados por otros servicios más simples (flecha A Figura
1).
• Entender y crear las adaptaciones necesarias entre los sistemas empresariales y los
servicios de más bajo nivel (flecha B Figura1).
• Planificar servicios compuestos que den solución a los procesos empresariales y que se
sostengan sobre servicios más simples que describan atómicamente las capacidades de
los sistemas empresariales (conjunción de flechas “middle-out” Figura 1).
Tarea
Procesos de
negocio
A
Servicio
Composición orientado al
de servicios negocio
Acceso a proveedor
externo al dominio
Servicios
atómicos Adaptadores
B
Sistemas
empresariales
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sara Blanc Clavero
Los roles básicos que explican la relación entre servicios son el de proveedor de servicios y el
consumidor de servicios. En la Figura 2 vemos estos dos roles: proveedor y consumidor. En la
parte más baja de la arquitectura SOA, el proveedor del servicio, y la parte más alta de la
estructura, el consumidor. Estos consumidores de servicios presentan un abanico muy amplio de
posibilidades, desde aplicaciones de visualización de datos, de análisis gráfico, de seguimiento,
estadísticas, o herramientas complejas como Business Intelligence (BI). Entre ambos se definen
las capas intermedias de servicios y servicios compuestos. Cuanto más abajo en la Figura 1 se
encuentra un servicio, más desligado deberá estar de los procesos de negocio de las capas
superiores y más relacionado con los sistemas empresariales, por ejemplo, implementando
adaptadores o conectores entre el sistema empresarial y el bus empresarial. Mientras que a
medida que subimos en la estructura más desligados estarán de los sistemas empresariales y
centrados en los procesos de negocio. Si el servicio es útil a varios de estos procesos es un
proceso que facilita la composición y estaremos más cerca del paradigma SOA que si
implementamos servicios específicos para cada proceso, lo que irá en contra de las ventajas de
una arquitectura flexible y que potencia la oportunidad y la expansión.
Consumidor
de servicios
Servicio
Un servicio puede no requerir de inputs provenientes de otros servicios, mientras que los servicios
compuestos son consumidores de otros servicios que se ofertan como proveedores (Figura 3).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitectura SOA
Servicio
Consumidor
Servicio Servicio
Proveedor 1 Proveedor 2
Figura 3. Los servicios como consumidores y proveedores para otros servicios compuestos
Para que esta estructura de composición funcione, la arquitectura SOA define unos principios
básicos que la sostienen. En general, los principios son los siguientes:
• Descripción. Todo servicio debe poder ser descrito de una forma útil para poder publicarse
convenientemente y así establecer contratos.
• Reutilizable tanto por su interfaz como por la descripción del servicio que debe posibilitar la
multiplicidad de contratos.
• Gestionable. Significa que los servicios deben ser diseñados como soluciones dinámicas,
que permitan su control, configuración, y mejora dentro de las reglas establecidas por el
gobierno.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sara Blanc Clavero
Servicio
Consumidor
Servicio
Servicio
Proveedor
Proveedor
del contrato
El consumidor de un servicio es, por su parte, quien debe descubrir el servicio o servicios que le
interesan e invocarlos para iniciar el intercambio de mensajes cara a establecer el contrato. Hay
tres principios sobre la relación proveedor-consumidor en la arquitectura SOA:
• Independencia de dominios. Tanto proveedor como consumidor pueden ser parte del
mismo sistema o de diferentes sistemas. El principio de interoperabilidad previene la falta
de entendimiento en caso de la deslocalización de los servicios.
• Independencia de plataformas de desarrollo. Cada servicio actúa como una caja negra de
cara al resto de servicios siendo transparente al consumidor la plataforma, lenguaje y otros
componentes relacionados con la implementación que sustenten el servicio.
Entonces ¿cuál es la diferencia entre servicios SOA y servicios Web? (14) Si bien los protocolos y
estándares existentes para servicios web se pueden aplicar y se ha aplicado en numerosas
ocasiones al desarrollo de servicios SOA por sus facilidades en la publicación e invocación de
servicios así como en la interoperabilidad entre plataformas, no todos los servicios web se han
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitectura SOA
diseñado atendiendo a todos los principios SOA. No existe una reciprocidad directa, pero sí
comparten muchos principios fundamentales.
Servicio
Consumidor
Registro (petición)
Registro de Servicio
servicios Proveedor
Registro (respuesta)
Por tanto, ¿qué componentes tendrá un servicio? Para ser compatible con la arquitectura SOA un
servicio se compone de tres partes fundamentales que son: su lógica, su descripción y su
interfaz.
2) Por otra parte, la descripción de un servicio podría y debería ser única: una descripción identifica
a un único servicio. Esta característica está vinculada a los principios de reutilización y de lógica
agnóstica. Quiere decir, que la lógica define el propósito del servicio, despojándose de cualquier
referencia a tecnologías o “detalles técnicos”. Cuanto mayor sea el nivel de abstracción en la lógica
del servicio más potenciaremos dos ventajas. Primera, será posible modificar la componente
tecnológica del servicio (protocolos, lenguajes, etc.) sin modificar su descripción. Segunda, mayor
provecho se le podrá dar a este servicio ya que con la misma descripción será útil para una
multiplicidad de consumidores potenciales.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sara Blanc Clavero
3) En cuanto a la interfaz, está claro que en algún sitio debe residir la convergencia entre
protocolos. Es recomendable que esta convergencia ocurra en una capa de integración,
transversal a toda la arquitectura, aunque está claro que siempre existirá una vinculación entre las
interfaces de los servicios y los principios de integridad.
Por encima de los servicios, ya sean simples o compuestos, y de sus relaciones se definen las
tareas. Una tarea es una acción atómica realizada normalmente a instancias de un actor humano.
La composición de tareas implementa procesos de negocio, a veces simples como una
secuenciación de tareas, a veces complejos con bifurcaciones condicionales. En el estándar ISO
18384 se diferencian tres estilos de composición de tareas: orquestación, coreografía y
colaboración.
• La coreografía no orquesta flujos de tareas sino establece relaciones entre tareas mediante
patrones de intercambio de datos. Por ejemplo, a modo de diagrama de relaciones, los
datos generados por una tarea pueden identificarse de un tipo determinado establecido
como tipo de entrada de otras tareas relacionadas pero sin que esto suponga
necesariamente una secuencialización entre la tarea generadora y la receptora. Al igual
que antes, la coreografía también es gestionada por un elemento externo al proceso.
En la Figura 6 vemos que hay 5 capas que se sostienen de forma vertical, mientras que las otras 4
son transversales a toda la arquitectura.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitectura SOA
Información
Integración
Gobierno
Capa de los procesos de negocio
QoS
Capa de servicios
Capa de componentes
Capa de operatividad
Capa 1 o de operatividad. Esta capa incluye los sistemas operacionales que existan o puedan
existir ya en el entorno TI empresarial. Incluye sistemas empresariales, sistemas transaccionales,
bases de datos, sistemas industriales, sistemas de sensorización, etc.
Capa 3 de servicios. Esta capa puede verse como un conjunto de sub-capas, tal como se
representa en la Figura 1. Los servicios pueden subir en complejidad en función del tratamiento y
procesamiento de la información. Por ejemplo, los servicios más bajos en esta capa pueden
explotar las funcionalidades derivadas de la capa 2 de manera atómica, mientras que en servicios
superiores se procesa la información agregando, cruzando o combinando datos de servicios del
entorno empresarial y externos.
Capa 5 del consumidor. Algunos autores la identifican como de visualización, aunque el estándar
es más amplio y generaliza a cualquier aplicación especializada sobre los procesos de negocio. El
objetivo de esta capa es normalizar el método de acceso a los datos procesados con el fin de
poder generar rápidamente los front-end de visualización, interacción y explotación de resultados.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sara Blanc Clavero
Capa 7 de QoS. Esta capa proporciona las facilidades necesarias para sostener los requisitos no
funcionales de la arquitectura conocidos también por requisitos de calidad. Si ponemos algunos
ejemplos de estos requisitos podemos nombrar la seguridad, fiabilidad, robustez, estabilidad,
usabilidad, testabilidad, mantenimiento, documentación, escalabilidad, etc.
A modo de referencia, el estándar propone una relación entre competencias y requisitos que
definen las capas que hemos descrito y bloques de implementación que las soportan (Figura 7).
Adoptar SOA debe ser estratégico y no un capricho. La adopción de SOA viene motivada unas
necesidades organizativas claramente identificadas. Por tanto, el alcance de la solución SOA que
se plantee se podrá definir en base a los requisitos identificados en respuesta a esas necesidades.
La capacidad empresarial y tecnológica de la organización restringen o limitan la adopción de
soluciones. Soluciones que describen las capacidades esperadas de la arquitectura a implantar.
Siguiendo con la figura, estas capacidades se modelan en elementos concretos sobre las capas de
la Figura 6: los bloques a construir por capa. Los bloques de implementación son los distintos
módulos que soportan las expectativas definidas en cada capa así como las interfaces de conexión
entre capas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitectura SOA
Definición de
Asumir
Consolidadas sobre
Necesidades (requisitos) Capacidades de la arquitectura
Diseño de
Implementación de
Bloques a construir por capa Capas de la arquitectura
El ciclo de vida SOA de un servicio tiene varias etapas que se asemejan al waterflow de las fases
del desarrollo de software, por ejemplo, podrían ser: definición, modelado, implementación,
verificación del servicio, ensamblaje con el sistema, validación sobre el sistema y mantenimiento.
Sin embargo, el ciclo de vida no se define con una temporalidad finita, sino como un ciclo vivo y
enlazado con el ciclo de mejora continua del sistema empresarial.
Extendiendo este modelo reducido del ciclo de vida, el SOA School (15) propone 10 etapas
concretas gestionadas por el gobierno de SOA. Las etapas son:
• Análisis de inventario. Cuál es el alcance de nuestro inventario actual, cuáles son las
prioridades y cómo evitamos desde el inicio la duplicidad, redundancia o ambigüedad de
servicios para ahorrar tiempo y costes en las siguientes etapas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sara Blanc Clavero
El objetivo de un servicio SOA es el de dar una solución efectiva a una necesidad dentro del
ecosistema. Cualquier tecnología o infraestructura creada para soportar este servicio es parte del
ecosistema SOA.
Los actores SOA son aquellos que interactúan internamente con el sistema y participan en la
identificación de necesidades y nuevos requisitos, desde usuarios y TI hasta gobierno. Pero
además de los actores, cualquier “stakeholder” o interesado toma parte en la identificación de
necesidades y soluciones a través de su implicación como proveedor, contratista, mediador, socio,
cliente, etc. y por tanto, es parte también de la estructura social SOA. El diseño del ecosistema
potencia las relaciones entre clientes y proveedores, mejora la productividad de los empleados y
soporta eficientemente la toma de decisiones.
La visión del ecosistema SOA se puede centrar en una única organización empresarial o en una
malla con más de una organización o una pluralidad de individuos. Por ejemplo, imaginemos
cualquier asociación, empresa, corporación empresarial o agencia gubernamental. Cualquiera de
estas estructuras (u otros muchos ejemplos) interactúan con otras estructuras a través de
acuerdos, contratos, negociados o reglas de mercado para obtener un beneficio mutuo. Bajo la
misma perspectiva, un ecosistema SOA incluye esta diversidad de dominios que interactúan a
través de agentes software a cambio de un beneficio mutuo.
Por ejemplo, como expone Microsoft en una de sus publicaciones al respecto de SOA (11),
imaginemos una empresa cuya gestión de pedidos involucra a los departamentos de ventas,
almacén y logística. Vayamos más lejos y supongamos también que tanto el almacenaje como el
transporte de los pedidos están externalizados. Tenemos tres dominios internos implicados (los
departamentos) y tres dominios empresariales. Sumemos también que en la cadena de transporte
desde que un cliente realiza un pedido hasta que el producto llega a su destino contiene un alto
número de pasos manuales. El resultado final de este puzle puede estar muy lejos de las
expectativas más pesimistas en cuanto a eficiencia. En un escenario como este, construir un
ecosistema basado en la aceptación de contratos y la generación de servicios facilitará el flujo
automatizado de la información, sin retrasos, pérdidas o réplicas debidas al factor humano. Todas
las partes ganan ya que redunda en un beneficio mutuo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitectura SOA
Descripción
Contrato
Mensajes Ciclo de vida
de la implantación del servicio
3. Tecnologías de referencia
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sara Blanc Clavero
Podemos mencionar multitud de lenguajes que nos van a permitir crear nuestros servicios. Por
ejemplo, y entre muchos, JAX-WS es un conjunto de APIs que permite crear y utilizar servicios
web. Es compatible con SOAP (Simple Object Access Protocol), protocolo a nivel de mensajería
que veremos a continuación. También .Net soporta diferentes protocolos de comunicación pero
necesita combinarse con otros paquetes que permita interconectar servicios desarrollados en
diferentes plataformas. Por ejemplo, se utiliza WCF, compatible con los estándares WS- y SOAP.
Protocolos de Servicios Web (WS-*): son un conjunto de protocolos que se podrían integrar en
varias de las capas SOA. Este conjunto de protocolos y estándares tienen una alineación muy
clara con SOA ya que sirven para intercambiar datos en Internet entre aplicaciones
independientemente (o transparente) al lenguaje de programación o plataforma sobre la que se
ejecuten. Podemos encontrar más información en W3C (16) y en OASIS (17). Por ejemplo, es uso
de contrato ya está establecido facilitando la descripción y descubrimiento del servicio. La intención
de registro de servicios de SOA se alinea con UDDI (Universal Description, Discovery and
Integration), con WS-Discovery y el formato WSDL (Web Services Description Language). WSDL
se combina con XML y a menudo con SOAP en la gestión de mensajería. No confundamos SOA
con SOAP. SOA es el término de referencia de la arquitectura mientras que SOAP es un protocolo
concreto de mensajería.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Arquitectura SOA
Probablemente hay muchos más protocolos que se pueden integrar en una arquitectura SOA, pero
aquí lo dejamos como un ejercicio de investigación y “descubrimiento” para el alumno.
Referencias bibliográficas
(1) Information technology -- Reference Architecture for Service Oriented Architecture (SOA RA) --
Part 1: Terminology and concepts for SOA.
(2) Information technology -- Reference Architecture for Service Oriented Architecture (SOA RA) --
Part 2: Reference Architecture for SOA Solutions.
(3) Information technology -- Reference Architecture for Service Oriented Architecture (SOA RA) --
Part 3: Service Oriented Architecture ontology.
(4) Service-Oriented Architecture: Concepts, Technology, and Design, Erl, T., (2014) 13ª edición.
Ed Prentice Hall professional technical reference.
(5) SOA Principles of Service Design, Erl, T., (2007) 1ª edición. Ed Prentice Hall.
(7) SOA Approach to Integration: XML, Web Services, ESB, and BPEL in real-world SOA projects,
Juric, M.B., Loganathan, R., Sarang, P., Jennings, F., (2007). Ed Packt Publishing
Birmingham-Mumbai.
(9) Service-oriented modeling and architecture. How to identify, specify and realize services for
your SOA, Arsanjani, A., (2004) IBM (ibm.com/redbooks).
(10) www.oracle.com/SOA
(11) La arquitectura Orientada a Servicios (SOA) de Microsoft aplicado al mundo real (2006)
Whilepapers Ed Microsoft.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sara Blanc Clavero
(12) Technologies for SOA-based Distributed Large Scale Process Monitoring and Central
Systems, Jammes, F., Bony, B., Nappey, P., Colombo, A.W., Delsing, J., Eliasson, J.,
Kyvsakov, R., Karnovskos, S., Stluka, P. Tilly, M., (2012) IECON 38th Annual Conference
on IEEE Industrial Electronics Society Ed. IEEExplore pp. 5799-5804.
(13) Cloud Computing and SOA, Raines, G., (2009). Service-Oriented Architecture (SOA) Series,
Ed Systems Engineering at MITRE.
(14) 100 SOA Questions Asked and Answered, Holley, K., Arsanjani, A., (2001). Ed PEARSON,
custom edition for IBM.
(15) www.soaschool.com
(18) Application Platform for SOA and BPM. Reiem, T., (2007). Enterprise Technology Strategist,
SOA and BPM. Microsoft Corporation (EMEA).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 26. Concepto, evolución y tendencias de los
sistemas operativos. Los sistemas UNIX y LINUX.
Los sistemas Microsoft Windows. Los sistemas
Android
Los sistemas operativos son una parte esencial de cualquier sistema informático. Este
campo está cambiando muy rápidamente ya que las computadoras se encuentran en
multitud de contextos, aunque los conceptos fundamentales siguen siendo bastante
claros.
Este capítulo intenta definir el concepto de sistema operativo y su alcance, así como la
situación de los sistemas operativos hoy en día.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
1.1. Concepto
Sin embargo, no existe ninguna definición universalmente aceptada sobre qué forma parte de un
sistema operativo, ya que se puede encontrar una gran variedad de sistemas operativos en los
cuales varían enormemente sus características.
Teniendo esto en cuenta, otra definición común, es que un sistema operativo es aquel programa
que se ejecuta continuamente en la computadora, usualmente llamado kernel, siendo todo lo
demás programas del sistema y de aplicación.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Por el otro lado, el sistema operativo -el cual ya forma parte del software- se comunica con las
aplicaciones del sistema y con las del usuario, todo ello en modo usuario, con un conjunto de
instrucciones más limitado y que no comprometan al sistema operativo. Sin embargo, algunas
aplicaciones del sistema pueden tener privilegios para ejecutar algunas instrucciones del modo
kernel, como podría ser una aplicación para cambiar la contraseña del usuario. Es una operación
crítica y que requiere cierta protección, por lo tanto, está acción la llevará a cabo con una llamada
en modo kernel.
Esta distinción entre modo kernel o supervisor y modo usuario no es algo tajante ya que depende
del sistema operativo de dónde ponga la frontera. De hecho, suelen incluir muchas veces un shell
(consola con la que el usuario interactúa en modo texto) o GUI (Graphical User Interface: iconos,
ventanas, etc.), los cuales se ejecutan en modo usuario, al igual que las aplicaciones que el
usuario lanza desde ellos.
Desde los primeros sistemas operativos, han ido evolucionando y apareciendo distintos tipos de
sistemas operativos, según el propósito para el cual estuvieran destinados. A continuación, se
describen algunos de los principales tipos, aunque algunos sistemas operativos pueden pertenecer
a más de un tipo si se pueden desenvolver en varios escenarios con características distintas.
• Sistemas operativos de mainframe. Las computadoras mainframe son aquellas del tamaño
de una sala entera que aún se encuentran en los principales centros de datos corporativos.
Están profundamente orientados hacia el procesamiento de muchas tareas a la vez, las
cuales requieren muchas operaciones de E/S.
Servicio de impresión.
Servicios de ficheros.
Servicio web.
Etc.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
Hoy en día, al ser muy común el uso de chips multinúcleo, la mayoría de sistemas
operativos ya lidia con estas características, aunque sea a menor escala que los sistemas
especializados.
• Sistemas operativos de nodos de sensores. Cada nodo de esta red es una pequeña
computadora que se comunica de forma inalámbrica con una estación base. Tienen
diversos usos como proteger perímetros de edificios, resguardar fronteras, detectar
incendios o realizar mediciones ambientales (temperatura, humedad, etc.). Deben ser
sistemas robustos para tolerar fallos en los nodos individuales y ser sencillo y simple dada
la poca RAM disponible y la importancia de la duración de las baterías de los nodos.
Ejemplos: TinyOS.
• Sistemas operativos en tiempo real. Estos sistemas se caracterizan por tener el tiempo
como parámetro clave. Se pueden clasificar en dos tipos.
En tiempo real duro. La acción debe ocurrir sin excepción en cierto momento o rango.
Se suelen encontrar en procesos industriales, aeronáutica o milicia.
En tiempo real suave. Se acepta que muy ocasionalmente se pueda fallar a un tiempo
determinado. Los sistemas multimedia están en esta categoría.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Como se ha visto, existe una gran variedad de sistemas operativos. Sin embargo, tienen muchas
características comunes como se va a ver a continuación.
Los sistemas operativos modernos están controlados mediante interrupciones. Si no hay ningún
proceso que ejecutar, ningún dispositivo de E/S al que dar servicio y ningún usuario al que
responder, el sistema operativo debe permanecer esperando a que algo ocurra. Esto reafirma la
definición anteriormente dada de que un sistema operativo es aquel programa que se ejecuta
continuamente en la computadora.
Los sucesos casi siempre se indican mediante la ocurrencia de una interrupción o una excepción.
Una excepción es una interrupción generada por software debida a un error o a una solicitud
específica de un programa de usuario de que se realice un servicio del sistema operativo. Es
necesario asegurar que un error que se produzca en un programa de usuario sólo genere
problemas en el programa que se esté ejecutando.
Para gestionar esto y poder distinguir entre la ejecución del código del sistema operativo y el
código definido por el usuario, el hardware suele proporcionar como mínimo dos modos de
ejecución:
• Modo kernel, también llamado modo de supervisor, modo del sistema o modo privilegiado
(bit de modo = 0).
A esta manera de ejecutar código se le llama modo dual de operación. El sistema operativo
arranca en modo kernel y los programas de usuario se ejecutan en modo usuario. Si un programa
de usuario solicita un servicio del sistema operativo, se pasa a modo kernel para satisfacer la
solicitud. Una vez finalizado el servicio, volverá a modo usuario. De este modo, las instrucciones
que pueden causar daño (instrucciones privilegiadas) sólo se ejecutan en modo kernel, lo que
añade protección.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
Las llamadas al sistema proporcionan el medio para que un programa de usuario pida al sistema
operativo que realice tareas reservadas. Por otro lado, el uso del temporizador asegura que el
sistema operativo tenga el control sobre la CPU. Su duración suele ser variable y cada vez que el
reloj avanza el temporizador se decrementa. Cuando alcanza el valor 0, éste lanza una
interrupción. De esta manera se protege de que ningún programa de usuario se quede en un bucle
infinito o bien, nunca devuelva el control al sistema operativo.
Un proceso es una unidad de trabajo en un sistema. Cada sistema consta de una colección de
procesos, siendo algunos del sistema operativo y el resto procesos de usuario. Un programa en
ejecución es un proceso. También es posible proporcionar llamadas al sistema que permitan a los
procesos crear subprocesos o hebras que se ejecuten de manera concurrente. Cada hebra tiene
un contador de programa que especifica la siguiente instrucción a ejecutar. Un proceso necesita
ciertos recursos como son tiempo de CPU, memoria, archivos y dispositivos de E/S.
32 64
Si el sistema operativo es de 32 o 64 bit, tendrá un espacio de direcciones de 2 o 2 bytes
respectivamente. Este espacio de direcciones está desacoplado de la memoria física de la
computadora, pudiendo ser mayor o menor que esta. En caso de ser mayor, se utiliza la llamada
memoria virtual, que consiste en mover parte de las direcciones de memoria al disco.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
• Controlar qué partes de la memoria están actualmente en uso y por parte de quién.
También debe gestionar el almacenamiento en caché. Esta técnica consiste en mantener una
copia de forma temporal de la información que se esté utilizando en un sistema de almacenamiento
más rápido. Con esto se crea una estructura jerárquica, de forma que lo que los mismos datos
pueden aparecer en los distintos niveles de la memoria. Así, un dato que este en uso, estará a la
vez en el disco, en la memoria principal, en la caché y en el registro hardware.
Algunas actividades de las cuales el sistema operativo es el responsable son las siguientes.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
Por otro lado, es responsabilidad de los mecanismos de seguridad, defender el sistema frente a
ataques internos y externos. Estos ataques pueden ser virus y gusanos, ataques de denegación de
servicio, robos de identidad. La prevención de algunos ataques se considera una función del
sistema operativo en algunos sistemas, mientras que en otros se relega a algún software adicional.
Los sistemas operativos, entre otras cosas, se pueden clasificar según el diseño de su estructura.
Un sistema operativo no tiene por qué pertenecer inequívocamente a uno de estos grupos, también
puede tener características de varios grupos.
• Sistemas monolíticos. En este diseño, todo el sistema operativo se ejecuta como un solo
programa en modo kernel. Se escribe como una colección de procedimientos, enlazados
entre sí en un solo programa binario ejecutable extenso. Por lo tanto, estos procedimientos
se pueden llamar entre sí sin restricción y suele producir un sistema poco manejable y
difícil de comprender.
Además del núcleo que se carga al arrancar la computadora, suelen soportar extensiones
como lo son los drivers de los dispositivos de E/S, los cuales se cargan por demanda.
• Sistemas de capas. Son sistemas operativos organizados como una jerarquía de capas,
cada una construida sobre la que tiene debajo. Así, los diseñadores pueden elegir dónde
dibujar la línea entre el kernel y el usuario. Un ejemplo de esta estructura fue el sistema
THE, construido por E. W. Dijkstra.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Capa Función
5 El operador
4 Programas de usuario
3 Administración de la entrada/salida
2 Comunicación operador-proceso
1 Administración de memoria y tambor
0 Asignación del procesador y multiprogramación
La evolución de los sistemas operativos siempre ha ido ligada a los avances tecnológicos en la
arquitectura del computador, los sistemas de comunicaciones y a los sistemas de almacenamiento
de la información. Con el paso de los años, los sistemas operativos se han tenido que ir adaptando
a estos cambios aumentando sus responsabilidades y mejorando las que ya tenía.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
Tabla II: Nuevas funciones de los sistemas operativos de lo largo del tiempo
El siguiente gráfico muestra los porcentajes de utilización de los distintos sistemas operativos
desde el año 2008 hasta la actualidad.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Se observa que la posición de los sistemas operativos de Microsoft (Windows) son los claros
dominantes. Sin embargo, hay una tendencia a la baja en su cuota de mercado debido al auge de
las plataformas móviles (teléfonos, tabletas) donde Microsoft no domina el mercado.
Atendiendo a las cifras, Windows XP -lanzado en 2001- fue el sistema operativo más utilizado
hasta mediados de 2012, cuando fue superado por Windows 7. Hoy en día camina hacia la
irrelevancia, más aún desde que el 8 de abril de 2014, Microsoft anunció el fin del soporte.
Sin embargo, su sucesor Windows Vista fue un fracaso comercial y nunca llegó a superar el 20%
de mercado. Con el que tuvo mucho más éxito fue con Windows 7, superando a Windows XP a
mediados de 2012 y llegando a obtener una cuota de casi el 50% tras el fin del soporte a Windows
XP.
Tras este llegó Windows 8 con un gran fracaso respecto a las expectativas.
Para terminar con los sistemas operativos de Microsoft, en julio de 2015 se lanzó Windows 10. Su
arranque fue fulgurante, en gran parte debido a la decisión de proporcionar la actualización gratuita
a todos los equipos que estén funcionando con Windows 7 o Windows 8. Tras esta actualización
masiva, el crecimiento se ha desacelerado.
El mayor crecimiento que se está produciendo hoy en día y que se prevé que seguirá en auge, es
el segmento de los sistemas operativos móviles (Android, iOS, etc.). Su uso es reciente, desde la
introducción de los llamados smartphones y las tabletas, pero está teniendo una tendencia a seguir
creciendo, aunque todavía se encuentran lejos del conjunto de sistemas operativos Windows.
Respecto a los sistemas operativos Mac de escritorio, han aumentado ligeramente su cuota de
mercado, pero siguen manteniéndose muy por debajo de Windows.
Y por último aparece un uso residual del 1% de sistemas operativos libres de escritorio (Linux,
BSD, etc.).
Con la proliferación de los llamados teléfonos inteligentes o smartphone y de las tabletas, han
emergido con fuerza los sistemas operativos destinados a estos dispositivos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
Tabla III: Momento en el que los smartphones superan a los móviles convencionales
País Mes
Reino Unido Mayo 2010
España Septiembre 2010
Alemania Enero 2011
Francia Febrero 2011
Italia, Canadá Junio 2011
Estados Unidos Julio 2011
A continuación, se presenta una tabla comparativa de los principales sistemas operativos móviles
con algunas de sus características.
Windows
Apple iOS 8 Android 6.0 Blackberry 10 Firefox OS 2.2
Phone 8
Open Handset Mozilla
Compañía Apple Microsoft Blackberry
Alliance Foundation
Núcleo del SO Mac OS X Linux Windows NT QNX Linux
Licencia de
Propietaria Libre y abierto Propietaria Propietaria Libre y abierto
software
Año de
2007 2008 2010 1999 2013
lanzamiento
Webkit /
Motor web Webkit Trident Webkit Webkit
Chromium
ARM, MIPS,
CPU soportada ARM ARM ARM ARM, x86
x86
Soporte 64 bits Sí Sí No No No
Lenguaje de Objective-C, C#, Visual HTML5,
Java, C++ C, C++, Java
programación Swift, C++ Basic, C++ Javascript
Multiusuario No Sí No No No
El siguiente en discordia es Windows Phone, que se mantiene por debajo del 1%. Con el paso del
tiempo, han ido convirtiéndose en irrelevantes otros sistemas operativos como BlackBerry y
Symbian OS.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Figura 5: Cuota de mercado de los sistemas operativos móviles en todo el mundo (Fuente: Gartner
Group).
Unix y Linux tienen una historia larga e interesante. Empezó como un proyecto del investigador
Ken Thompson hasta llegar a convertirse en una industria que involucra a universidades, empresas
multinacionales y gobiernos.
2.1. UNIX
La primera versión de UNIX fue desarrollada en 1969 por Ken Thompson del grupo de
investigación de los Bell Laboratories. Pronto se unió a él Dennis Ritchie, quien había trabajado en
el proyecto MULTICS, del cual se tomaron muchas características. En la tercera versión se
reescribió la mayor parte del sistema operativo en el lenguaje C, sustituyendo a ensamblador. Al
mismo tiempo se trasladó a sistemas más potentes y con soporte hardware para la
multiprogramación. Al tener más código en C era más fácilmente portable entre máquinas con
distinta arquitectura.
En 1974, Ritchie y Thompson publicaron un famoso artículo sobre UNIX, el cual estimuló a muchas
universidades para que pidieran a Bell Labs. una copia de UNIX, la cual era licenciada a estas por
una modesta cuota. La PDP-11 era la computadora preferida de la mayoría de los departamentos
de ciencias computacionales, pero sus sistemas operativos eran pésimos, por lo que UNIX llenó
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
este vacío con rapidez. Además, incluía el código fuente completo, por lo que se podía hacer
modificaciones sobre él.
En 1978, se distribuyó la versión 7, con 18800 líneas de código en C y 2100 en ensamblador. Tras
esto, el UNIX Support Group (USG) asumió el control de UNIX dentro de AT&T, la organización
matriz de Bell Laboratories ya que UNIX se estaba convirtiendo en un producto destacado y
necesitaba más atención que la que se le estaba prestando. La primera versión de USG fue
System III, en 1982, la cual incorporaba características de la versión 7 así como de varios sistemas
UNIX desarrollados por distintos grupos.
En 1983 se liberó System V. Justo después, el USG se reestructuró como el UNIX System
Development Laboratory (USDL). Dado el pequeño tamaño, la modularidad y el aseado diseño, se
iniciaron muchos trabajos basados en UNIX en multitud de organizaciones, siendo el más
influyente el de la University of California at Berkeley. En 1978, produjeron 3BSD UNIX, el cual
añadía memoria virtual, paginación por demanda y reemplazo de páginas entre otras cosas.
En la versión 4.2BSD UNIX, apoyándose en los protocolos de Internet de DARPA (TCP/IP), ya era
posible comunicarse entre instalaciones de red diversas, incluidas redes de área local y de área
extensa. Además, Berkeley adaptó muchas características de los sistemas operativos
contemporáneos para mejorar UNIX. Entre ellas una nueva interfaz con el usuario (C Shell), un
nuevo editor de textos (ex / vi) y muchos programas de sistemas nuevos.
En 1986 se liberó 4.3BSD. La última versión de Berkeley, la 4.4BSD, se terminó en junio de 1993.
Esta versión incluye soporte X.25 para trabajo con redes y cumplimiento del estándar POSIX.
El conjunto actual de sistemas operativos UNIX no está limitado a los producidos por Bell
Laboratories y Berkeley, sino que se han ido creando multitud de sistemas operativos UNIX y de
tipo UNIX. Por ejemplo, Microsoft reescribió UNIX para la familia 8088 y lo llamó XENIX, así como
su sistema operativo llamado Windows NT acusa una marcada influencia de UNIX.
UNIX se diseñó como un sistema de tiempo compartido. La interfaz estándar con el usuario es
sencilla y puede ser sustituida por otra si se desea. El sistema de archivos es un árbol con
múltiples niveles que permite crear subdirectorios. Cada archivo de datos de usuario es tan solo
una secuencia de bytes. Los archivos de disco y los dispositivos E/S se tratan de la manera más
similar posible.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
La mayor parte de los algoritmos utilizados se escogieron primando la sencillez sobre la rapidez o
la sofisticación, con la intención de que otras personas pudieran construir un sistema más complejo
en caso de necesitarlo. No se estableció un diseño detallado antes de implementar UNIX, lo que le
dio una flexibilidad que ha sido clave en su desarrollo.
El sistema UNIX fue diseñado por programadores para programadores, por ello, siempre ha sido
interactivo y las funciones para desarrollar programas siempre han tenido prioridad. Está escrito
principalmente en C, simplificando mucho trasladar UNIX de unas máquinas a otras. Desde el
principio han estado todas las fuentes disponibles en línea, facilitando el descubrimiento de
deficiencias y su corrección. Esto ha fomentado la abundancia de variantes de UNIX que existen,
pero también cada vez que había un avance en la industria -trabajo con redes, ventanas, etc.-,
UNIX podía absorberlo sin dejar de ser UNIX.
La mayor parte de los programas se escriben en C y las llamadas al sistema se presentan como
funciones en C, por lo que los detalles de estas sólo las conoce el compilador, ahorrando en la
mayoría de ocasiones al programador el bajar a este nivel.
2.2. LINUX
Al igual que BSD, Linux es otro sistema operativo de tipo UNIX. Como Linux se diseñó para
ejecutar el mayor número posible de aplicaciones UNIX estándar, tiene mucho en común con las
implementaciones existentes de UNIX.
En sus inicios, el desarrollo de Linux giraba alrededor del núcleo del sistema operativo: el ejecutivo
privilegiado que administra todos los recursos del sistema e interactúa directamente con el
hardware. Éste núcleo es totalmente original, desarrollado desde cero por la comunidad Linux.
El primer núcleo Linux fue liberado el 14 de mayo de 1991, etiquetada como la versión 0.01. Esta
versión no trabajaba con redes, sólo se ejecutaba en procesadores compatibles con el 80386 de
Intel y contaba con un soporte de drivers de dispositivos muy limitado. El único sistema de archivos
que se reconocía era el de Minix, ya que los primeros núcleos de Linux se desarrollaron de forma
cruzada con Minix.
El 14 de marzo de 1994 apareció la versión 1.0 de Linux. La novedad más importante fue el trabajo
con redes: incluía soporte de los protocolos de redes TCP/IP, así como una interfaz de sockets o
drivers de dispositivos para IP. También incluía un sistema de archivos nuevo muy mejorado y
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
reconocía controladores SCSI para acceso a disco de alto desempeño. El soporte de hardware
había crecido para incluir dispositivos de disco flexible, CD-ROM o tarjetas de sonidos. A nivel de
gestión de procesos, se incluyó un sistema de memoria compartida, semáforos y colas. Se
proporcionó un soporte sencillo para módulos del núcleo que se podían cargar y descargar
dinámicamente.
Como el desarrollo de nuevas versiones coincidía con la corrección de errores del núcleo actual,
se adoptó el siguiente patrón para la numeración de versiones: los núcleos con número de versión
menor impar (1.1, 1.3, 1.5, etc.) serán núcleos de desarrollo, mientras que los pares serán núcleos
estables, es decir, de producción.
En marzo de 1995 se liberó el núcleo 1.2, centrado en ampliar el soporte de hardware, así como
soporte a otros procesadores como Sparc, Alpha o MIPS.
La versión 2.0 de Linux, se liberó en junio de 1996, con dos nuevas capacidades importantes:
soporte de múltiples arquitecturas como al sistema Alpha de 64 bits y el soporte a arquitecturas
multiprocesador. Por otra parte, se mejoró sustancialmente la gestión de memoria para contar con
un caché unificado para datos del sistema de archivos independiente del uso de cachés con
dispositivos por bloques. Con esto mejoró el desempeño del sistema de archivos y de la memoria
virtual.
Otras mejoras de esta versión fue la mejora del desempeño de TCP/IP, la capacidad de montar
volúmenes de redes SMB o el soporte de hilos internos del núcleo o la carga automática de
módulos por demanda.
El 22 de julio de 2011 se lanzó la versión 3.0 del núcleo. El salto en la numeración fue más bien un
cambio estético -debería haber sido la versión 2.6.40 de haber continuado la serie- que un cambio
importante en las características. Aun así, entre las novedades más importantes se encuentran la
defragmentación automática, el soporte para XEN o el arranque por red.
La versión 4.0 de Linux vio la luz el 12 de abril de 2015. A parte de las típicas mejoras en cuanto a
un aumento de dispositivos compatibles y en la mejora de los drivers ya implementados y
corrección de errores, la principal novedad es la posibilidad de actualizar el kernel de Linux sin
necesidad de reiniciar el equipo.
Además del núcleo de Linux, el cual es el corazón del proyecto, otros componentes constituyen el
sistema operativo Linux completo. A diferencia del núcleo, una buena parte del software de soporte
que constituye el sistema Linux no es exclusivo de Linux, sino común a varios sistemas operativos
tipo UNIX. Utiliza muchas herramientas del sistema operativo BSD de Barkeley, el X Window
System de MIT y otras del proyecto GNU de la Free Software Foundation.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
• Bibliotecas del sistema. Definen un conjunto estándar de funciones mediante las que las
aplicaciones pueden interactuar con el kernel. Estas funciones implementan buena parte
de la funcionalidad del sistema operativo que no necesita los privilegios completos del
código del kernel. También pueden proporcionar versiones más complejas de las llamadas
al sistema básicas.
• Utilidades del sistema. Son programas que realizan tareas individuales y especializadas de
gestión. Aquí también se incluyen los demonios que son procesos ejecutados de manera
permanente, así como todos los programas necesarios para iniciar el sistema. Existen
utilidades para tareas cotidianas como puede ser listar el contenido de un directorio hasta
otras más complejas, como utilidades para procesamiento de textos.
El kernel tiene la capacidad de cargar y descargar secciones arbitrarias del código del kernel bajo
demanda. Estos módulos cargables se ejecutan en modo kernel privilegiado, así que disponen de
acceso completo a todas las capacidades hardware de la máquina donde se ejecutan. Como
cualquier persona puede modificar el kernel de Linux, de esta manera se ahorra el tener que
recompilar y rearrancar todo el núcleo, teniéndolo que hacer sólo para el módulo que esté
modificando.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
la memoria del kernel, también debe asegurarse de que todas las referencias que el
módulo realice a los puntos de entrada se actualicen para apuntar a las ubicaciones
correctas dentro del espacio de direcciones del kernel.
• Módulo de registros de controladores. Permite a los módulos informar al resto del kernel de
que hay un nuevo controlador. El kernel mantiene una serie de tablas dinámicas de todos
los controladores conocidos y proporciona un conjunto de rutinas para añadir o eliminar
controladores de estas tablas, las cuales incluyen controladores de dispositivos, sistemas
de archivo, protocolos de red y de formato binario.
Un proceso es el contexto básico en el que se da servicio a todas las actividades dentro del
sistema operativo. El principio básico consiste en separar dos operaciones: la creación de un
proceso (fork) y la ejecución de un nuevo programa (exec). Linux no distingue entre procesos e
hilos, sino que generalmente utiliza el término tarea.
• Entorno del proceso. Se hereda del proceso padre y está compuesto por dos vectores:
Vector de entorno. Es una lista de parejas nombre=valor que asocia una serie de
variables de entorno con nombre con sus correspondientes valores.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
• Contexto del proceso. Se trata del estado del programa en ejecución en un momento
determinado, por lo que está variando constantemente. Incluye las siguientes partes:
Contexto del sistema de archivos. Se aplica a las peticiones para abrir nuevos
archivos.
Tabla de rutina de tratamiento de señales. Define las rutinas que hay que invocar
cuando lleguen determinadas señales.
Linux mantiene una lista de todas las tareas ejecutables en una estructura de datos denominada
cola de ejecución (runqueue), asignando a las tareas de mayor prioridad unos tiempos de
ejecución más largos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
ZONE_DMA. Son los primeros 16 MB de la memoria, que son los únicos a los que
pueden acceder algunos dispositivos ISA (Industry Standard Architecture).
Para asignar memoria del kernel, Linux también emplea asignación de franjas. Una franja
se utiliza para asignar memoria para las estructuras de datos del kernel (descriptores de
procesos, objetos de archivos, semáforos, etc.) y está compuesta de una o más páginas
físicamente contiguas. Una franja tiene tres posibles estados: llena, vacía o parcial. Ante
una solicitud de un objeto libre, el asignador intentará ubicarlo en una franja parcial. Si no
hay ninguna, se ubicará en una franja vacía y de no haber, se creará una nueva franja.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Vista física. Está almacenada en las tablas de páginas hardware del proceso, las
entradas de la cual determinan la ubicación exacta de cada página de memoria virtual.
La política de descarga de páginas de Linux utiliza una versión modificada del algoritmo
estándar del reloj o de segunda oportunidad. Se utiliza un reloj con múltiples pasadas y en
cada pasada ajusta la edad de cada página usada, de manera que las menos usadas
tendrán valores más bajos. De esta manera, las páginas menos usadas son candidatas a
ser descargadas basándose en una política LFU (Least Frequently Used).
Los archivos pueden ser cualquier cosa capaz de procesar la entrada o salida de un flujo de datos.
Por tanto, los controladores de dispositivos o las conexiones de red también pueden parecer
ficheros a ojos del usuario. El kernel de Linux gestiona todos estos tipos de archivos ocultando los
detalles de implementación por debajo de una capa de software, el VFS (Virtual File System).
El VFS está diseñado bajo los principios de la orientación a objetos. Hay definidos cuatro tipos de
objetos:
• Inodo. Representa un archivo individual. Es una estructura de datos que contiene punteros
a los bloques de disco donde están los propios contenidos del archivo. También contiene
información estándar acerca del archivo, como su propietario, su tamaño o el instante de
su última modificación. Cuando no está siendo utilizado, puede continuar en la caché del
VFS para mejorar la velocidad.
• Archivo. Representa un archivo abierto, definiendo un punto de acceso a los datos del
mismo. Por tanto, controla en qué lugar del archivo está leyendo o escribiendo actualmente
el proceso, con el fin de controlar las operaciones de E/S de archivo secuenciales.
Normalmente pertenecen a un único proceso. El tratamiento de los directorios es
ligeramente diferente a los archivos, ya que no requieren que el usuario abra los
correspondientes archivos a diferencia de lo que ocurre con la lectura o escritura de datos.
Para cada uno de estos cuatro tipos de objetos, VPS define un conjunto de operaciones, entre las
que se encuentran algunas como abrir, leer, escribir o mapear. Utilizando estas operaciones, VFS
no necesita conocer de antemano el tipo de objeto con el que está tratando.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
El sistema de archivos es heredado del desarrollo de Minix y tiene bastante en común con BDS
Fast File System (FFS). Cuando el sistema de archivos empleado en Minix se quedó obsoleto, se
desarrolló uno nuevo llamado Extended File System (extfs). Tras un rediseño, evolucionó a Second
Extended File System (ext2), en el cual se mejoró el rendimiento y la escalabilidad. Tras este, llegó
Third Extended File System (ext3) con más mejoras.
Los directorios son almacenados en el disco como archivos normales, aunque su contenido se
interpreta de distinta forma. Cada bloque en un directorio consiste en una lista enlazada de
entradas. El tamaño por defecto de un bloque en ext3 varía en función del tamaño total, pero
soporta bloques de 1, 2, 4 y 8 KB.
Cuando se localiza un archivo, primero ext3 debe seleccionar el grupo de bloque para ese fichero.
Para bloques de datos, se intenta situar el archivo en el grupo de bloque donde se encuentra el
inodo. Para los inodos, se intentan situar en el grupo de bloque donde reside el directorio padre.
Esta política está diseñada tanto para mantener la información relacionada en el mismo bloque de
grupo, como para reducir la fragmentación intentando mantener las localizaciones contiguas
físicamente.
Tras ext3, se desarrolló ext4. Este sistema de archivos, basado en el anterior y por lo tanto
compatible, añade nuevas características como el direccionamiento de 48 bits, posibilidad de
asignación de varios bloques en una sola llamada, fragmentación online o la ampliación de los
inodos con nuevos campos y atributos.
2.2.2.5. Seguridad
Autenticación
El objetivo principal es asegurarse de que nadie pueda acceder al sistema sin demostrar primero
que tiene los correspondientes derechos de entrada.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Control de acceso
Linux realiza el control de acceso asignando a los objetos una máscara de protección que
especifica los modos de acceso (lectura, escritura o ejecución) que hay que conceder a los
procesos que tengan acceso de propietario, de grupo o resto del mundo. La única excepción es el
uid root privilegiado, el cual automáticamente tiene acceso a todos los objetos del sistema. Esta
máscara de protección tiene la siguiente estructura:
Trwxrwxrwx
Permiso Identifica
- Archivo
d Directorio
b Archivo de bloques especiales (Archivos especiales de dispositivo)
c Archivo de caracteres especiales (Dispositivo tty, impresora…)
l Archivo de vinculo o enlace (soft/symbolic link)
p Archivo especial de cauce (pipe o tubería)
El resto de letras se agrupan en conjuntos de 3, siendo el primero los permisos del usuario (uid), el
siguiente los permisos del grupo (gid) y el último los permisos del resto de usuarios (others). El
significado de cada letra es el siguiente:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
Permiso Identifica
- Sin permiso
r Permiso de lectura
w Permiso de escritura
x Permiso de ejecución
• Es un archivo (-).
El núcleo de Linux se distribuye bajo la licencia GPL (General Public License) de GNU, cuyos
términos estableció la Free Software Foundation. Linux no es software de dominio público: los
derechos del código siguen siendo propiedad de sus diversos autores. Sin embargo, Linux es un
software gratuito en el sentido de que la gente puede copiarlo, modificarlo, usarlo y regalar sus
propias copias sin restricción alguna.
El software liberado bajo la licencia GPL no puede redistribuirse como producto exclusivamente
binario, sino que se debe al menos, dar la oportunidad de obtener el código fuente (aunque sea
pagando una cuota razonable).
A medida que Linux ha ido madurando, diversos grupos han ido proporcionando un conjunto
estándar precompilado de paquetes fáciles de instalar, lo que facilita enormemente la instalación
de un sistema Linux. Estas colecciones o distribuciones incluyen mucho más que el sistema Linux
básico, incorporando paquetes listos para instalarse de muchas de las herramientas UNIX
comunes, como navegadores, servidores, procesadores de texto e incluso juegos. Muchas de
estas distribuciones suelen estar enfocadas a satisfacer las necesidades de un grupo específico de
usuarios, al ya incluir herramientas destinadas para ellos.
• Red Hat. Distribución comercial de Linux que ofrece una estabilidad y flexibilidad punteras,
lo que hace que sea una de las más recomendadas para empresas y servidores.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
• Debian. Muy estable y 100% libre. Destaca su sistema de gestión de paquetes APT. Es
una de las distribuciones más importantes de GNU/Linux y más veteranas de las que aún
sigue en pie, ya que vio la luz en 1993.
• openSUSE. Está disponible con los entornos de escritorio KDE y Gnome, y cuenta con la
robusta herramienta de instalación y configuración Yast y el configurador gráfico SaX.
• Fedora. Distribución gratuita mantenida por la empresa Red Hat. Utiliza el sistema de
paquetería RPM (Red Hat Package Manager). Destaca por su seguridad gracias al sistema
SELinux (Security-Enhaced Linux).
• CentOS. Nació como un derivado gratuito de Red Hat en 2004, destinada al uso comercial.
• Arch Linux. Se trata de una distribución modular en la cual se empieza de cero, por lo que
no es recomendada para principiantes debido a su complejidad, pero a su vez lo hace un
sistema muy flexible. Utiliza Pacman, su propio gestor de paquetes.
• Ubuntu. Una de las distribuciones más utilizadas gracias a su facilidad de uso, ya que
cuenta con una interfaz muy intuitiva. Además, es compatible con la mayoría de hardware.
Está basada en Debian y ha sido creada por Canonical en 2004. Tiene detrás una
comunidad muy amplia, por lo que está en constante desarrollo y crecimiento.
• Mint. Está basada en Ubuntu y es de las más recomendadas para principiantes. Su entorno
de escritorio, Cinnamon, guarda muchas similitudes con Windows y es una bifurcación de
Gnome Shell.
El sistema operativo Microsoft Windows es un sistema operativo multitarea, cuyos objetivos clave
son la seguridad, fiabilidad, facilidad de uso, compatibilidad con aplicaciones Windows y POSIX,
altas prestaciones, ampliabilidad, portabilidad y el soporte internacional. Está destinado a equipos
de escritorio de consumidores y negocios, y a servidores empresariales.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
A principios de la década de 1980, IBM estaba desarrollando una computadora personal basada en
el microprocesador 8088. Entonces IBM pidió una licencia del lenguaje de programación BASIC a
Microsoft, quien le sugirió que se pusiera en contacto con Digital Research para obtener una
licencia de su sistema operativo CP/M. Sin embargo, el presidente de Digital Research no pudo
reunirse con IBM, lo que hizo que volvieran con Microsoft. Poco después, Microsoft compró un clon
de CP/M a una empresa local, Seattle Computer Products, la portó a la IBM PC y le otorgó una
licencia a IBM. Este sistema operativo pasó a llamarse MS-DOS 1.0 (Disk Operating System) y se
incluyó en la primera IBM PC en 1981.
MS-DOS era un sistema operativo de línea de comandos, 16 bits, modo real y solo un usuario.
Durante esa década, MS-DOS fue evolucionando con la versión 2.0 (con soporte para la PC/XT, en
1983) y la versión 3.0 (con soporte para la PC/AX, en 1984).
Microsoft decidió proveer a MS-DOS con una interfaz gráfica de usuario, a la que denominó
Windows. Estuvo inspirando en los sistemas de investigación del Stanford Research Institute,
Xerox PARC y las computadoras Lisa y Macintosh de Apple. Las dos primeras versiones de
Windows (1985 y 1987) no tuvieron demasiado éxito.
En 1990, Microsoft liberó Windows 3.0 para Intel 386 y vendió más de un millón de copias en seis
meses. Sin embargo, Windows 3.0 no era un verdadero sistema operativo, sino un entorno gráfico
por encima de MS-DOS, el cual aún tenía el control de la máquina y del sistema de archivos.
En agosto de 1995 se liberó Windows 95, con muchas características de un sistema operativo
completo, como memoria virtual, administración de procesos y multiprogramación. Además,
introdujo las interfaces de programación de 32 bits. Le siguió Windows 98 (1998) y Windows Me
(2000), donde MS-DOS seguía ejecutando código ensamblador de 16 bits, lo que ocasionaba
problemas de estabilidad.
Paralelamente a todo esto, a mediados de 1980, IBM y Microsoft cooperaron en el desarrollo del
sistema operativo OS/2. En 1988, Microsoft decidió comenzar de nuevo y desarrollar un sistema
operativo portable, que se adaptara mejor a las nuevas tecnologías y a los nuevos componentes,
basado en una nueva tecnología (NT), que soportara la interfaz de programación de aplicaciones
(API) tanto de OS/2 como de POSIX.
La primera versión de Windows NT fue la 3.1, liberada en 1993. Se llamó 3.1 para corresponderse
con Windows 3.1 para el consumidor. También podría ejecutar programas Win32, pero mediante el
uso de la biblioteca de compatibilidad Win32s. No tuvo mucho éxito debido a la mayor complejidad,
mayores requerimientos e incompatibilidades con drivers de dispositivos y las aplicaciones, lo que
hizo que muchos usuarios se siguieran decantando por Windows basado en MS-DOS.
La primera actualización importante llegó con Windows NT 4.0, en 1996. Este sistema tenía la
potencia, seguridad y confiabilidad de NT, pero también tenía la misma interfaz de usuario que el
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
entonces muy popular Windows 95. Esto lo convirtió en un participante sólido en el mercado de las
computadoras de escritorio de alto rendimiento y en servidores.
Windows 2000 representó una evolución considerable para NT, incluyendo la tecnología plug-and-
play, servicios de directorio de red, administración de energía mejorada y una GUI mejorada.
Debido al éxito de este sistema operativo, Microsoft presionó con la liberación de Windows XP en
2001 para dejar de utilizar sistemas operativos basados en MS-DOS.
Windows XP fue un éxito, instalándose en cientos de millones de PCs, con su nueva interfaz
gráfica mucho más amigable. El sistema era demasiado complejo para producir versiones de
cliente y de servidor al mismo tiempo, por lo que dos años más tarde se liberó Windows Server
2003, que completaba el sistema operativo Windows XP con características para servidores.
En 2006, se liberó Windows Vista con otro diseño de interfaz gráfica y nuevas características de
seguridad. Le siguió su versión para servidores, Windows Server 2008. Los planes iniciales eran
tan ambiciosos que, dos años después de empezar su desarrollo, Vista se tuvo que reiniciar con un
menor alcance. Se tuvieron que posponer características como los planes de basarse en gran
parte en el lenguaje C# .NET con seguridad de tipos y recolección de basura, así como el sistema
de almacenamiento unificado WinFS.
En 2012 se lanzó Windows 8, el cual fue pensado para poderse usar también en los nuevos
dispositivos (smartphones, tabletas). Por esta razón se optó por eliminar el menú inicio clásico.
Este cambio de interfaz, unido al buen funcionamiento de Windows 7, propició un recibimiento muy
flojo. Microsoft terminó lanzando Windows 8.1, una actualización grande, haciendo el sistema muy
estable y rápido, aunque no pudo remontar con el mal arranque de Windows 8.
En julio de 2015, Microsoft liberó Windows 10. Regresó el botón inicio, se dotó de un sistema de
tareas completamente renovado y se lanzó una tienda de aplicaciones, similar a la que ya tenían
Apple o Android.
El modo de kernel en Windows está estructurado en el HAL, en los niveles del kernel y del
ejecutivo de NTOS (New Technology Operating System), y en un gran número de drivers de
dispositivos que implementan todo, desde los servicios de dispositivos hasta los sistemas de
archivos, las redes y los gráficos. EL HAL (Hardware Abstraction Level) es la capa que oculta
ciertas diferencias en el hardware de los demás componentes, exportando una interfaz virtual del
hardware usada por el resto de capas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
El nivel del kernel está implementado en C, usando ensamblador sólo cuando es absolutamente
necesario. Tiene cuatro responsabilidades principales:
• Planificación de hilos de ejecución. Cada proceso tiene uno o más hilos, y cada hilo tiene
su propio estado, prioridad, afinidad de procesador y uso de la CPU. Los seis posibles
estados son: preparada, lista, en ejecución, en espera, en transición y terminada.
Eventos. Usados para registrar un evento ocurrido y para sincronizarlo con alguna
acción.
Mutantes. Suministra exclusión mutua del modo usuario y el modo kernel, asociado al
concepto de propiedad.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Hilo. Es la entidad que es planificada por el kernel. Está asociada al objeto proceso, el
cual encapsula su propio espacio virtual de direcciones.
Temporizador. Lleva el control del tiempo y envía un timeout cuando una operación
tarda demasiado y necesita ser interrumpida.
• Conmutar entre el modo usuario y el modo kernel. Cada hilo realmente puede dividirse en
dos: hilo de modo usuario e hilo de modo kernel. Cuando un hilo de usuario requiere un
cambio a modo kernel, el kernel se encarga de ello, devolviendo luego la ejecución al
modo usuario.
El sistema ejecutivo (executive) proporciona un conjunto de servicios utilizado por todos los
subsistemas de entorno. Estos servicios se pueden agrupar de la siguiente manera:
• Gestor de Objetos. Para gestionar las entidades de modo kernel, Windows utiliza un
conjunto genérico de interfaces que son manipuladas por los programas de modo usuario,
llamadas objetos. El sistema ejecutivo permite proporcionar un nombre interno a cada
objeto, los cuales se manipulan mediante un conjunto de funciones virtuales como create(),
open(), close() o delete() entre otras. El gestor de objetos es la única entidad que genera
descriptores de objetos. Un descriptor es un identificador unívoco para un proceso y que
confiere a este la capacidad de acceder y manipular un recurso del sistema.
Cada objeto está protegido mediante una lista de control de acceso que contiene los ID de
seguridad y los derechos de acceso concedidos. Generalmente, el creador del objeto
determina la lista de control de acceso al mismo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
En los procesadores IA32, cada proceso tiene un espacio virtual de direcciones de 4GB,
siendo los dos primeros fundamentalmente idénticos en todos los procesos ya que son
utilizados en modo kernel para acceder al código y a las estructuras de datos del sistema y
los dos últimos específicos de cada proceso, tanto en modo kernel como en modo usuario.
Una página física puede encontrarse en uno de los siete posibles estados: válida, libre,
borrada, modificada, reserva, corrupta o en transición.
Windows usa una política de reemplazo LRU (Least Recently Used) para las páginas de los
procesos, donde se reemplazan las que estadísticamente tienen menos probabilidad de ser
usadas nuevamente.
• Gestor de procesos. Proporciona servicios para crear, borrar y utilizar procesos, hilos y
trabajos. No tiene ningún conocimiento de las relaciones padre-hijo ni de las jerarquías de
los procesos. No está implicado en la planificación, ya que de esto se encarga el
planificador del kernel, pero sí que configura las prioridades y afinidades de los procesos.
Los propios procesos pueden agruparse en objetos trabajo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
• Gestor de caché. Coopera estrechamente con el gestor de memoria virtual con el fin de
proporcionar servicios de caché para todos los componentes que están bajo el control del
gestor de E/S. El almacenamiento en caché en Windows está basado en archivos. Está
dividida en bloques de 256 KB, cada uno de los cuales puede almacenar una vista de un
archivo. Para cada archivo abierto, el gestor de caché mantiene una matriz índice VACB
independiente que describe el almacenamiento en caché para el archivo completo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
conjunto de valores de distintos tipos: cadena UNICODE, cadena ANSI, entero o datos
binarios sin tipo.
Cuando se produce una actualización importante del sistema, como instalación de drivers o
actualizaciones del sistema, Windows crea un punto de recuperación del sistema antes de
hacer dichos cambios. Para incrementar la estabilidad del registro, Windows añade un
mecanismo de transacciones llamado KTM (Kernel Transaction Manager), el cual puede
ser usado para prevenir actualizaciones parciales del registro.
Proceso del sistema, contiene todos los hilos internos del kernel y nunca se ejecuta en
modo usuario.
Proceso en modo usuario, llamado SMSS (Session Manager SubSystem), el cual lleva
a cabo la inicialización del sistema, incluyendo los ficheros de paginación, carga de
drivers y la gestión de usuarios de Windows.
El sistema nativo de archivos en Windows es NTFS y se usa en todos los discos locales. Algunos
dispositivos externos (lápiz USB, disco externo, tarjeta de memoria, etc.) pueden seguir usando
FAT32, pero una de sus desventajas es que no es capaz de restringir el acceso a los archivos por
parte de los usuarios autorizados. En cambio, NTFS utiliza ACLs (Access Control List) para
controlar el acceso a archivos individuales y soporta encriptación mediante BitLocker.
La entidad fundamental de NTFS es el volumen y está basado en una partición lógica de disco. No
trata con los sectores individuales del disco, sino que utiliza clústeres como unidades de
asignación de disco, el tamaño de los cuales es siempre una potencia de 2 y se selecciona al
formatear el disco. NTFS utiliza LCNs (Logical Cluster Numbers) como direcciones de disco,
numerando los clústeres desde el principio hasta el final del disco.
Un archivo en NTFS no es un simple flujo de bytes como en UNIX, sino que es un objeto
estructurado en atributos tipados. Todos los archivos en NTFS se describen mediante uno o más
registros dentro de una matriz almacenada en un archivo especial denominado MFT (Master File
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Table). Cada archivo tiene un ID unívoco denominado referencia de archivo, el cual es un valor de
64 bits.
El espacio de nombres de NTFS está organizado como una jerarquía de directorios. Cada
directorio utiliza una estructura de datos denominada árbol B+ para almacenar un índice de los
nombres de archivo contenidos en ese directorio. Este árbol elimina el coste de reorganizar el
árbol.
Además del archivo MFT, se crea otro archivo con una copia de las 16 primeras entradas de la
tabla del mismo, que se utilizará para recuperar la MFT si ésta resulta dañada. Los siguientes
archivos que se crean también son de propósito especial e incluyen el archivo de registro, el
archivo de volumen, la tabla de definición de atributos, el directorio raíz, el archivo de mapa de bits,
el archivo de arranque y el archivo de clústeres erróneos.
El sistema operativo Android está diseñado para teléfonos móviles y, más recientemente, para
tabletas. Está basado en el kernel de Linux, pero combina código abierto (AOSP, Android Open
Source Project) con aplicaciones de terceros con código cerrado.
Google implementó Android para dar soporte a una amplia variedad de servicios propios en la
nube (Gmail, sincronización de calendario y contactos, mensajería nube-dispositivo, etc.). Google
Play es la tienda online de Google para las aplicaciones de Android.
Las distintas versiones se suelen identificar comercialmente con nombres de postres, por orden
alfabético. Las dos primeras versiones no obtuvieron este identificativo, pero desde la tercera
versión (1.5), se comenzó por la letra C con Cupcake.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
Android Inc. era una empresa fundada para desarrollar el software de teléfonos con más
funcionalidades que los que había por aquel entonces, lo que pasarían a llamarse teléfonos
inteligentes o smartphones. Se lanzaron varios prototipos para demostrar las ideas que tenían.
En julio de 2005, Google adquirió Android y lo provisionó de los recursos necesarios para continuar
el desarrollo como un producto completo. A principios de 2006, se decidió focalizar la plataforma
en Java, que hasta el momento también incluía otros lenguajes como C++ o JavaScript.
La primera versión del sistema operativo fue lanzada en noviembre de 2007. Sólo consistía en un
emulador hardware ejecutando el sistema Android con sus aplicaciones del núcleo, documentación
de la API y un entorno de desarrollo. A partir de aquí, se fue mejorando el sistema hasta que en
agosto de 2008 se alcanzó una versión estable y se integró en el T-Mobile G1 lo que sería Android
1.0.
En abril de 2009 vio la luz la versión 1.5 (Cup cake). Se incorporó el teclado en pantalla con
predicción de texto y los widgets de escritorio. Se añadió el soporte para Bluetooth estéreo.
En septiembre de 2009 salió la versión 1.6 (Donut), facilitando la adaptación de una aplicación a
las distintas densidades de las pantallas. Se añadió la capacidad para comandos por gestos
(gestures), la síntesis de voz y la búsqueda avanzada en todo el dispositivo.
Al mes siguiente, salió la versión 2.0 (Eclair), la cual tenía como principales novedades un sistema
centralizado de manejo de cuentas, soporte para HTML5, mayor velocidad de hardware y soporte
para pantallas multitáctil. En enero de 2010, se lanzó la versión 2.1, con la cual compartió su
nombre comercial al llevar pocas novedades, como el reconocimiento de voz.
La versión 2.2 (Froyo), lanzada en mayo de 2010, supuso una gran mejora en la velocidad de
ejecución de código debido a una nueva versión del compilador JIT de la máquina Dalvik. Se
mejoró el navegador web con soporte para Adobe Flash 10.1 y JavaScript V8. Se introdujo la
posibilidad de compartir la conexión a Internet con otros dispositivos (tethering) y el soporte a las
notificaciones push.
En diciembre de 2010 apareció la versión 2.3 (Gingerbread), con soporte para varias cámaras,
NFC, soporte para giroscopio y barómetro, mejoras en la máquina virtual Dalvik con un nuevo
recolector de basura y se cambió el sistema de archivos de YAFFS a ext4.
Para mejorar la experiencia con tabletas, en febrero de 2011 se lanzó versión 3.0, con un rediseño
de la interfaz, introduciendo la posibilidad de sustituir los botones físicos por botones en la pantalla.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Ese mismo año aparecieron las versiones 3.1 y 3.2, con mejoras menores, por lo que a todas las
versiones 3.x se les llamó Honeycomb.
La siguiente versión fue la 4.0 (Ice Cream Sandwich), lanzada en octubre de 2011, que
básicamente aunaba las características de las versiones anteriores (2.x para móviles y 3.x para
tabletas), en una sola versión compatible con cualquier dispositivo.
La versión 4.1 (Jelly Bean) fue lanzada en julio de 2012, la cual hizo hincapié en mejorar la fluidez
de la interfaz de usuario. También apareció por primera vez el asistente Google Now.
En octubre de 2013, se liberó la versión 4.4 (KitKat), donde se recortaron componentes para hacer
funcionar Android también en dispositivos con un hardware más limitado. Se introdujo la máquina
virtual ART, destinada a sustituir Dalvik, mejorando notablemente los tiempos de ejecución.
En noviembre de 2014, llegó la versión 5.0 (Lollipop), con la sustitución definitiva de ART por
Dalvik y la extensión de Android a otras plataformas (Android Wear -relojes-, Android TV -
televisores- y Android Auto -vehículos-).
Android 6.0 (Mashmallow) fue la siguiente versión, en octubre de 2015. La principal novedad fue la
introducción del administrador de permisos, de forma que el usuario puede gestionar cada permiso
de forma individual en cada aplicación.
• Permitir a todas las aplicaciones de terceros competir entre sí, así como con las propias
aplicaciones de Google. Android debe permanecer neutral en esta competencia.
• Dar soporte a las interacciones típicas de los usuarios con el dispositivo móvil, las cuales
se suelen caracterizar por gastar cortos espacios de tiempo en varias aplicaciones.
• Gestionar los procesos del usuario, simplificando la experiencia (p.e. el usuario no debe
preocuparse de cerrar las aplicaciones) y gestionando eficientemente la memoria.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
• Crear un sistema operativo completo de propósito general, no limitarse a ser una versión
reducida de los sistemas operativos de escritorio, lo que también facilitará el crecimiento
del mismo.
Internamente, Android está formado por cuatro capas: núcleo de Linux, Runtime de Android, las
librerías nativas y el entorno de aplicación.
• El núcleo de Linux. Android está construido sobre el núcleo Linux estándar, con algunas
extensiones. Proporciona servicios como la seguridad, el manejo de la memoria, el
multiproceso, la pila de protocolos y el soporte de drivers para dispositivos. Es la única
capa dependiente del hardware, ya que actúa como capa de abstracción entre el hardware
y el resto de la pila.
El primer proceso de usuario es init, el cual es la raíz de todos los demás. El proceso init
inicia una serie de demonios a bajo nivel, como es el gestor de archivos o el acceso al
hardware. Uno de estos procesos es zygote, el cual es el proceso raíz de todos los
procesos a alto-nivel programados con Java.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
• Runtime de Android. Está basado en el concepto de máquina virtual utilizado en Java. Pero
Google decidió crear una máquina virtual nueva (Dalvik) que se adaptara mejor a las
limitaciones de los dispositivos móviles (poca memoria, procesador limitado). Los ficheros
ejecutables en Dalvik llevan la extensión .dex y cada aplicación se ejecuta en su propio
proceso Linux, con su propia instancia de la máquina virtual. A partir de la versión Android
5.0 se reemplazó Dalvik por ART, la cual consigue reducir el tiempo de ejecución de código
hasta en un 33%.
System C library: una derivación de la librería BSD de C estándar (libc), adaptada para
dispositivos embebidos basados en Linux.
Librerías 3D: implementación basada en OpenGL ES 1.0 API. Las librerías utilizan el
acelerador hardware 3D si está disponible, o el software altamente optimizado de
proyección 3D.
SQLite: potente y ligero motor de bases de datos relacionales disponible para todas las
aplicaciones.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
las restricciones de seguridad). Este mismo mecanismo permite a los usuarios reemplazar
componentes.
Una de las mayores fortalezas del entorno de aplicación de Android es que se aprovecha el
lenguaje de programación Java. El SDK de Android no acaba de ofrecer para su estándar
todo lo disponible del entorno de ejecución Java (JRE), pero es compatible con una
fracción muy significativa de este
Por último, por encima de estas capas se encuentra la capa de las aplicaciones, las cuales se
lanzan sobre la máquina virtual Dalvik/ART para garantizar la seguridad del sistema.
Referencias bibliográficas
th
(1) Abraham Silberschatz, Peter Baer Galvin, Greg Gagne (2013). Operating System Concepts, 7
Edition. Ed Wiley.
th
(2) Andrew Tanenbaum, Herbert Bos (2015). Modern Operating System, 4 Edition. Ed Pearson.
(3) Jesús Tomás Gironés (2015). El gran libro de Android, 5ª Edición. Ed Marcombo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Concepto, evolución y tendencias de los sistemas operativos
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Vicente Sancho Guijarro
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 27. Gestión de entornos basados en
servidores con sistema Microsoft. Gestión
dominios. Active Directory. Protocolos
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
1. Dominios y directorios
La base sobre la que se construye una red de ordenadores Microsoft en una organización es
Windows Server. Sobre un servidor o un conjunto de servidores con este sistema operativo se
despliegan y construyen todas las funcionalidades y herramientas para administrar tanto recursos
físicos (puesto cliente, servidores, impresoras…) como humanos (usuarios, grupos y roles).
Para facilitar la administración y gestión de los ordenadores y servidores que forman parte de la
organización nace el concepto de dominio, que no es más que el dotar a uno o varios equipos de la
red de herramientas para realizar la gestión administrativa y de seguridad de forma centralizada. Si
bien ésta es la definición más genérica, Microsoft le otorga más propiedades, las cuales veremos
cuando tratemos los componentes de Active Directory.
Un directorio es una estructura jerárquica que almacena y organiza la información sobre objetos
existentes en la red de la organización, tanto usuarios como equipos, permitiendo:
• A los usuarios: tener un único punto de entrada a la red de la empresa, de forma que
pueda tener disponible en cualquier puesto físico todos los recursos que necesite.
El directorio se apoya en un repositorio: una base de datos que contiene los objetos administrados,
optimizada para operaciones de lectura, cualidad que le permite búsquedas de grandes volúmenes
de información así como con capacidades de exploración.
Hay muchas implementaciones de directorio, la mayoría basadas en el protocolo X500, el cual por
el tiempo sería reemplazado por LDAP (más ligero). La versión de directorio de Microsoft es Active
Directory Domain Services, aunque es más conocido por cómo se conocía con anterioridad a
Windows Server 2008, Active Directory (de ahora en adelante, AD). Así pues, en Active Directory
tenemos todas las características vistas de un directorio añadiendo otras funcionalidades, como la
distribución masiva de aplicaciones y actualizaciones de sistema a los ordenadores que se desee,
entre muchas otras.
2. Active Directory
Para empezar a construir un dominio para AD se debe instalar la funcionalidad de Directorio Activo
en una o varias máquinas Windows Server 2000 o posterior, pues es la primera versión desde la
que está disponible AD. El equipo (o equipos) en los que se realice la instalación se convertirá en
el Controlador de Dominio, el encargado de realizar las tareas de directorio vistas anteriormente. El
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
resto de los equipos de la red se convertirán en los clientes que podrán consultar la información
almacenada en el controlador.
• Potente motor de búsqueda de los objetos administrados por el dominio gracias al catálogo
global.
• Uso de políticas (GPO’s, Group Policy Object). Facilitan la gestión de permisos de usuarios
y grupos sobre recursos.
Para el diseño del dominio de Active Directory se debe partir de la estructura organizativa de la
empresa, así como del conocimiento de las características físicas y lógicas de la red, con el fin de
diseñar las dos estructuras que diferencia: las lógicas y las físicas. El separar ambas estructuras
permite que la gestión y consulta de los objetos definidos sea independiente de los componentes
elegidos para implementar la infraestructura que da soporte al dominio.
El diseño de las estructuras físicas tiene que ir encaminado a dimensionar los componentes que la
integran para soportar el tráfico de red generado por el uso del dominio: inicios y finales de sesión
y replicaciones entre servidores son operaciones que requerirán de ancho de banda. Además,
puede darse el caso que la organización cuente con oficinas o departamentos alejados
físicamente, por lo que se deben ajustar los nodos que se ponen a disposición.
A continuación, se detallan los elementos que configuran la estructura física: sitios y controladores
de dominio.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
2.1.1. Sitios
Los sitios (sites) representan la estructura física de la red. Están formados por los equipos
conectados entre sí por enlaces de alta velocidad, generalmente constituido por una o varias
subredes. Con la creación de los sitios se consiguen las siguientes ventajas:
• Los usuarios tienen un controlador cercano que permite una comunicación rápida,
principalmente para las tareas de autenticación.
• Partición de dominio: Es la partición que contiene la información de todos los objetos del
dominio y que se sincroniza con el resto de los controladores del mismo dominio.
• Partición del esquema: Contiene las definiciones de las clases definidas para los objetos
que se pueden crear en el dominio. En un bosque sólo habrá un controlador que tendrá
permisos para modificar las definiciones. Se replicará al resto de los controladores, pues
deben ser conocedores, pero sólo en modo lectura.
La estructura lógica de AD se encarga de proporcionar distintos elementos jerárquicos con los que
poder plasmar las características de la organización de forma totalmente independiente de la
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
2.2.1. Dominio
Un dominio necesita de uno o más controladores de dominio. Aunque originariamente no era así,
cualquier controlador puede efectuar cambios y replicarlos en el resto de los controladores. Se
podría decir que los dominios son unidades de replicación.
• Organización de objetos. AD permite organizar los objetos que gestiona mediante las
divisiones y subdivisiones que se creen oportunas (OU’s, Organizational Unit). Además, se
podrán aplicar políticas sobre objetos, grupos o OU’s que se considere necesarios de
forma totalmente independiente.
2.2.2. Árbol
Un árbol es un grupo de dominios que dependen de un mismo dominio raíz y que están
organizados formando una determinada jerarquía. Compartirán el sufijo del DNS que los identifica.
El primer de los dominios creados actuará como dominio raíz, mientras que los dominios que se le
vayan añadiendo para formar el árbol se convertirán en los dominios secundarios. Es una
estructura que puede ser válida para diferenciar distintos departamentos dentro de una misma
organización, independientemente de su localización.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
Entre los dominios integrantes del árbol habrá una relación de confianza, la cual permitirá que un
usuario creado en un dominio sea reconocido en el momento que intente acceder a cualquier otro
dominio del árbol. Aun así, los dominios mantendrán su independencia administrativa, de forma
que los administradores de un dominio no pasan a ser administradores de los otros dominios del
árbol. Por último, las políticas no serán replicadas automáticamente.
2.2.3. Bosque
Un bosque es un grupo de uno o más dominios AD que comparten una estructura lógica, esquema
de directorio (tanto las clases de los objetos que se pueden definir como sus atributos),
configuración de directorio (sitios y replicaciones) y un catálogo global (se analizará un poco más
adelante).
El uso de varios dominios en un sólo bosque es válido para organizaciones en las que si bien
queremos mantener una estructura homogénea en la definición de los dominios y árboles, se
desea mantener cierta independencia en la administración de los recursos de cada dominio y
aislarlos del resto.
Una Unidad Organizativa (OU) es un contenedor, una carpeta que puede contener a otros objetos
de AD. Es el símil de carpeta (o antiguamente, directorio) en un sistema de ficheros. Por lo tanto,
puede almacenar objetos que representen a equipos, impresoras, usuarios, grupos de usuarios,
otras OU’s…
Los motivos que pueden aconsejar crear OU’s son los siguientes:
• Jerarquía administrativa. Permite agrupar en una única unidad todos aquellos objetos
que se considere que tienen una fuerte relación. La jerarquía de OU’s anidadas (unas
dentro de otras) que se cree es independiente de un dominio a otro dentro del mismo árbol.
Esta flexibilidad posibilita que se pueda intentar adaptar la estructura de OU’s con el
modelo administrativo de la organización.
• Políticas de grupo. Las políticas de grupo son un conjunto de reglas que determinan las
capacidades que tendrán los equipos y usuarios que están contenidos en la OU. Dichas
reglas pueden establecer por ejemplo, qué aplicaciones están disponibles para un grupo
de usuarios, dónde se guardan los documentos, o bloquear las modificaciones en el
escritorio local.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
Existe un conjunto de contenedores especiales que son creados por defecto en la instalación de
AD y no se pueden eliminar. No les son aplicables políticas de grupo y representan a distintos tipos
de objetos. Son los siguientes:
• Users: Lugar por defecto para las nuevas cuentas de usuarios y grupos creadas.
• Domain Controllers OU: Contenedor por defecto para las cuentas de equipos de los
controladores de dominio.
Si bien estos son los contenedores donde se crean por defecto los distintos objetos explicados, se
puede modificar el contenedor destino establecido por defecto.
Debe existir como mínimo un servidor de catálogo global en cada dominio, pudiendo añadir
posteriormente a cualquier otro controlador como servidor de catálogo global.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
3. Estándares
3.1. DHCP
La convivencia de varios servidores DHCP en el mismo dominio puede provocar conflictos en caso
de que intenten gestionar los mismos rangos de direcciones. AD intenta evitar que se produzca
esta situación de dos formas distintas, según el servidor DHCP que está intentando entrar
pertenezca al dominio o no:
• En caso de que no sea miembro del dominio, el servidor enviará un mensaje solicitando
información del nodo raíz en el que se encuentra configurado el servicio de DHCP. Los
servidores DHCP autorizados responderán con un mensaje indicando cuál es el nodo raíz
autorizado. A continuación, el servidor que ha iniciado el diálogo consulta en el nodo en el
que se le ha respondido por la lista de servidores autorizados, actuando de la misma forma
que se ha visto en el punto anterior.
3.2. DNS
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
Active Directory utiliza DNS para identificar a su controlador de dominio y aprovecha el diseño del
espacio de nombres de DNS en el diseño de los nombres de dominio.
Así pues, AD usará DNS para la resolución de los nombres en su dominio. En el momento en el
que se realice un inicio de sesión, el equipo deberá localizar un controlador de dominio. Para ello,
efectuará una búsqueda DNS para obtener la dirección de dicho controlador.
Por lo tanto, el nombre de objeto que representa a un ordenador en Active Directory se encuentra
en un espacio de nombres diferente que el registro de recurso que representa al mismo equipo en
DNS.
3.3. LDAP
El protocolo LDAP es el núcleo de Active Directory, siendo el único protocolo de conexión que
soporta. Se ha convertido en la vía principal que usan el resto de sistemas para integrarse con AD.
Debido a esta circunstancia, se considera en Microsoft que es tanto un protocolo como una API.
LDAP (Lightweight Directory Access Protocol) es un protocolo del nivel de aplicación que facilita el
acceso a un servicio de directorio distribuido en un entorno de red, entendiendo como directorio un
conjunto de objetos con atributos organizados de forma jerárquica.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
LDAP puede utilizar tanto TCP como UDP, usando por defecto el puerto 389. Se establecen una
serie de operaciones con las que el cliente puede solicitar operaciones al servidores, tales como
crear, borrar, actualizar o consultar.
El formato más extendido para representar la información almacenada en LDAP es LDIF (LDAP
Data Interchange Format), aunque la información que trata el protocolo es binaria.
3.3.1. Estructura
Cada entrada del directorio contiene un conjunto de atributos, los cuáles pueden contar con más
de un valor. Los atributos que pueden presentar un registro se encuentran definidos en un
esquema.
• Por su Distinguished name (DN), el cual lo identificará según en qué parte del árbol se
encuentre.
• De forma opcional, por un UUID, que lo identificará de forma unívoca en todo el árbol. En
el caso de AD, tal como veremos, se trata del GUID.
El DN está compuesto por 2 o 3 partes. La parte derecha está formada por la raíz del objeto,
mientras que la izquierda corresponde a la hoja en la que se encuentra el registro. Dichas partes
son, de derecha a izquierda:
• DC: Domain Component. Especifica en que dominio se encuentra el objeto que queremos
representar. Un ejemplo podría ser “dc=airius, dc=com”, se trataría del nombre DNS de la
compañía en la que trabaja un usuario.
• OU: Organization Unit. Esta parte es opcional. Correspondería a los distintos niveles
jerárquicos en los que se quiere dividir la organización. Si no se quisiese realizar ninguna
clasificación se omitiría. Como ejemplo podríamos suponer que el objeto que buscamos se
encuentra en el segundo nivel de la jerarquía de la organización: “ou=Contabilidad,
ou=Departamentos”.
• CN: Common Name. Literalmente, el nombre común, el nombre del objeto que estamos
definiendo. En AD es válido para cualquier objeto y los contenedores creados por defecto
por AD. El resto de OU’s que se creen y se incluyan en en DN deberán constar como OU’s.
Siguiendo el ejemplo, la organización podría contar con el usuario “cn=Foo Foo”.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
3.3.2. Origen
LDAP tiene su origen en el estándar X500, que es un conjunto de protocolos promovido por la ITU.
X500 es un directorio que contiene información de forma jerárquica y categorizada, incluyendo
nombres, directorios y números telefónicos. Requiere de la pila de protocolos OSI.
Con la intención de ofrecer una alternativa más ligera surgió LDAP, el cual trabaja sobre TCP/IP.
Se ideó como protocolo para el acceso a los servicios de X500, pero por el paso del tiempo acabó
definiendo también la parte servidora. El éxito de la implantación de las redes TCP/IP sobre las
redes OSI provocaron que se extendiera el uso de LDAP sobre X500. Actualmente los protocolos
X500 pueden ser configurados para trabajar en redes TCP/IP.
3.4. Kerberos
Los tres participantes en una comunicación mediante Kerberos son el cliente, el servidor y el KDC,
Key Distribution Center.
3.4.1. Funcionamiento
Para que el cliente pueda obtener el servicio que requiere del servidor del dominio, previamente ha
de realizar una negociación que consta de 3 fases:
El cliente envía al AS la petición de servicio del usuario junto con el nombre de usuario.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
El cliente guarda en la memoria local el TGT, pues se usará cada vez que se necesite
solicitar un servicio a cualquier servidor del dominio.
• Negociación con el TGS. Una vez obtenido el TGT por parte del cliente:
El cliente se comunica con el TGS en el momento que necesita realizar una petición a
un servidor, proporcionando el TGT.
El TGS autenticará el TGT del usuario y, si todo está correcto, enviará dos nuevos
mensajes: un nuevo ticket (que incluye el ID de cliente, la dirección de red del cliente,
el período de validez y una clave de sesión) y otro con sólo la clave de sesión, la cual
será válida sólo para el cliente y el servidor del servicio que se está solicitando.
El ticket estará cifrado con la clave secreta del servidor, de forma que sólo se pueda
desencriptar por aquél.
• Negociación con el servidor. Una vez el cliente recibe los 2 nuevos mensajes:
El cliente ya puede iniciar la comunicación con el servidor. Para ello envía 2 nuevos
mensajes: uno con el ticket que le acaba de proporcionar el TGS, y otro con una marca
de tiempo firmado con la clave del segundo mensaje del TGS.
Del ticket de servicio obtiene también la clave con la que desencriptar el segundo
mensaje. A la marca de tiempo que obtiene, le suma una unidad y lo firma con la clave
cliente/servidor.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
• Notificaciones. Nueva forma de autenticar en AD. Los KDC pueden generar tickets a partir
de vales de servicio proporcionado por un origen de confianza.
• FAST. Se trata de un canal protegido que se crea entre el cliente Kerberos y el KDC.
3.4.3. NTLM
Con anterioridad al uso de Kerberos (desde Windows Server 2000) se utilizaba el protocolo de
autenticación NTLM (NT Lan Manager), en el que el servidor se debía conectar cada vez a un
controlador de dominio para autenticar al cliente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
Actualmente NTLM se sigue utilizando por motivos de compatibilidad de máquinas con sistemas
operativos anteriores a Windows 2000. Si todas las máquinas del dominio son iguales o posteriores
a Windows 2000/XP, el protocolo de autenticación habilitado por defecto es Kerberos.
3.4.4. Ventajas
• Inicio de sesión único (Single Sign on). Una vez iniciada la sesión se van gestionando los
permisos para el acceso a los distintos servicios, no hace falta autenticarse a cada
necesidad de servicio.
4. Niveles funcionales
Como todo software, los sistemas operativos de Microsoft (y entre ellos los Windows Server)
evolucionan con el tiempo, corrigiendo errores y añadiendo nuevas funcionalidades. En un sistema
en red en el que múltiples equipos deben comunicarse entre si este punto cobra vital importancia,
pues para poder disfrutar de una nueva funcionalidad los equipos implicados deben estar
evolucionados en el mismo grado, o en su defecto, establecer unos mínimos sobre los que
establecer la comunicación o la prestación de un servicio.
Los niveles funcionales de Active Directory son una forma de determinar qué características están
disponibles en un dominio o bosque. Se basan en las características nuevas que ofrece cada
versión de Windows Server a partir del 2000. Los controladores de dominio tienen que estar como
mínimo en el nivel funcional que se ha determinado para el dominio o bosque.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
La evolución de un nivel funcional no tiene fácil vuelta atrás, en el momento que se evoluciona el
presente nivel funcional, no se puede restablecer, a excepción de casos muy concretos y
específicos.
En la Figura 1 se representa cada nivel funcional que versiones de Windows Server soporta como
controladores de dominio. Por ejemplo, si se está en un funcionamiento de Windows Server 2003,
la única versión que no será soportada en un controlador de dominio será Windows Server 2000.
Anidación de grupos.
• Windows Server 2003: Todas las vistas en el modo funcional anterior más las siguientes:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
• Windows Server 2008: Todas las explicadas en el modo funcional anterior, añadiendo:
• Windows Server 2008 R2: Todas las explicadas en el nivel anterior, más la siguiente:
Los usuarios protegidos del dominio no podrán usar NTLM para autenticarse.
El TGT pasa a tener un valor predeterminado de 4 horas (en vez de las 10 vistas
anteriormente).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
Las características más importantes de los distintos niveles funcionales son las siguientes:
Con el fin de habilitar la autorización basada en roles, se crean dos plantillas de tipos
de grupo para instanciar, llamadas grupos básicos de aplicación y grupos de consulta
LDAP.
• Windows Server 2008: Todas las características del nivel funcional anterior. No se añaden
nuevas.
• Windows Server 2012: Todas las características del nivel funcional anterior. No se añaden
nuevas.
• Windows Server 2012: Todas las características del nivel funcional anterior. No se añaden
nuevas.
5. Relaciones de confianza
Una confianza es una relación entre dominios que permite que los usuarios de un dominio tengan
permisos de acceso en otro dominio.
Todas las relaciones que se establecen entre dominios de bosques a partir de Windows Server
2000 son bidireccionales y transitivas. Bidireccionales porque una vez establecida la relación entre
dos dominios, los usuarios de uno tienen acceso al otro. Transitivas porque si el dominio A
establece una relación con el dominio B, y éste a su vez establece una nueva relación con el
dominio C, los usuarios del dominio A pueden acceder al dominio C y viceversa, puesto que A y C
confían en B.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
La autenticación del cliente de un dominio sobre un servicio proporcionado por un servidor del
dominio en el que se confía es gestionada por Kerberos.
Para poder establecer la relación de confianza se deberá contar con permisos de administrador en
ambas entidades. Se generará una contraseña de confianza segura que se deberá proporcionar a
los dos dominios que forman la relación.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
Desde Windows Server 2000, en el momento que se añada un nuevo dominio a un bosque se crea
automáticamente una relación de confianza bidireccional y transitiva con el nodo padre del
dominio.
En la Figura 2 se muestra un ejemplo de qué implica la relación entre los dominios de un bosque.
Según se han ido añadiendo dominios hijos a los dominios padre de cada árbol (A y 1) se han
establecido confianzas transitivas entre ellos. En el momento que se establece la relación de
confianza entre los bosques (relación entre el Dominio A y el Dominio 1), automáticamente
cualquier usuario validado en un dominio del bosque puede acceder a los recursos proporcionados
por cualquier otro dominio. En la figura se hace hincapié en que, por ejemplo, los dominios 2 y C
que previamente no tenían relación, ahora si la tienen.
• Confianza directa: Se establece entre dos dominios de un mismo bosque, con el fin de
reducir el tiempo de inicio de sesión, pues las consultas de validación se realizarán
directamente sin tener que navegar por el árbol. En la Figura 2, sería el caso en el que se
quisiera acelerar el acceso entre los dominios B y C.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
Dominio A Dominio 1
Dominio D
Figura 2. Ejemplo de confianza transitiva entre dominios
Se establecen de forma explícita. Sólo es válida para los dos dominios que la conforman, por lo
que no es extensible al resto de dominios del bosque. Son unidireccionales, si se quiere configurar
una relación bidireccional se deben crear dos relaciones unidireccionales, una en cada sentido.
Son las únicas posibilidades existentes si se quiere establecer una relación de confianza entre:
6. Objetos
Todas las características y funcionalidades que ofrece Active Directory tienen la finalidad de
facilitar la gestión de los distintos objetos que representan a las distintas entidades que conforman
la organización (usuarios, equipos, impresoras…). Mediante las distintas estructuras que se han
visto anteriormente, se pueden organizar los objetos de forma jerárquica, de forma que represente
lo mejor posible a la estructura de la organización que se está administrando. Esta administración
se realiza interactuando con el Directorio Activo.
Los objetos más relevantes que se pueden crear y administrar en AD son los que siguen.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
6.1. Usuarios
Las cuentas de usuario de AD pueden representar tanto a personas físicas como a cuentas de
servicio necesarias para alguna aplicación que necesite un usuario de dominio.
A las cuentas de usuario se les asigna un identificador de seguridad (SID) compuesto por un prefijo
común a todas las cuentas del dominio, y un sufijo que es un identificador único en el dominio, de
forma que la unión de las partes proporciona un identificador único para el objeto. En el momento
en que un objeto se traslada de dominio, cambia su SID por pertenecer a otro dominio.
Además del SID los objetos también reciben otro identificador, el GUID. Es un identificador de 128
bits que identifica universalmente al objeto. Este identificador no cambia nunca, va asociado
siempre al objeto.
• Autorizar o denegar el acceso a recursos del dominio según se haya establecido mediante
los permisos asignados al recurso.
Además de las cuentas que se puedan crear en un dominio, el centro de gestión de AD incorpora 3
cuentas por defecto:
• Administrador: Es la primera cuenta que se crea en el dominio. Es la que tiene control total
del dominio. Sólo se debería usar para tareas administrativas.
• Invitado: Es una cuenta que por defecto está deshabilitada y que sólo permite iniciar sesión
en el dominio. Se le pueden asignar permisos al igual que a cualquier otra cuenta.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
• Informaciones de restricción. Se puede restringir equipos y horarios en los que poder iniciar
sesión.
6.2. Grupos
Los grupos se pueden clasificar por su ámbito y tipo. Veamos por qué se caracterizan:
6.2.1. Ámbito
El ámbito indica el alcance del grupo dentro del bosque o árbol. Existen tres ámbitos:
Pueden incluir otros grupos (de cualquiera de los 3 ámbitos que se están tratando) y
cuentas de dominio.
A sus miembros sólo se les puede asignar permisos dentro del dominio.
• Grupos globales:
Pueden incluir usuarios del mismo dominio y grupos globales del mismo dominio.
A sus miembros se les pueden asignar permisos en cualquier dominio del bosque.
• Grupos universales:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
Pueden incluir otros grupos (de cualquiera de los 3 ámbitos que se están tratando) del
bosque y cuentas de dominio del bosque.
A sus miembros se les pueden asignar permisos en cualquier dominio del bosque o
árbol de dominios.
En cuanto a las características de los grupos, se pueden crear dos tipos de grupos: de distribución
y de seguridad.
Los grupos de distribución se usan exclusivamente para el envío de correos mediante aplicaciones
de correo electrónico. No disponen de seguridad habilitada.
Los grupos de seguridad son los empleados para administrar a los usuarios. Con ellos se pueden
asignar permisos a los recursos para determinar quién puede tener acceso a un recurso y de que
forma (lectura, escritura…), y derechos para determinar que pueden hacer los integrantes del
grupo en el ámbito de un árbol o bosque.
Por defecto, los Windows Server a partir de 2003 incluyen una serie de identidades especiales a
los que se les hace referencia como grupos, aunque propiamente no sean tales. Aunque
representan a un conjunto de usuarios, no se puede editar sus características. Son los siguientes:
• Inicio de sesión anónimo. Grupo de usuarios y servicios que hace uso de un equipo y sus
recursos sin usar un nombre de cuenta. Por defecto, no se incluyen en el grupo Todos.
• Red. Todo aquél que usa un recurso de red a través de la red (no de forma local en la
máquina que lo comparte) en ese momento.
• Interactivo. Conjunto de usuarios que han iniciado sesión en un equipo y utilizan los
recursos de forma local, no a través de la red.
Además de las identidades especiales AD crea por defecto dos clases de grupos en sendos
contenedores (agrupaciones lógicas de objetos): Builtin y Users. Mientras que los primeros tienen
un ámbito más local y tienen características semejantes a los tipos de usuario que se podrían
encontrar en un equipo local, los segundos tienen una perspectiva más amplia, gestionan permisos
a nivel de Directorio.
• Administradores. Grupo de usuarios con control total sobre los controladores de dominio.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
• Usuarios. Los integrantes de este grupo pueden realizar las tareas más comunes como
ejecutar aplicaciones, usar impresoras, etc. Las cuentas que se crean en el dominio
formarán parte de este grupo.
• Administradores del dominio. Sus miembros tienen control total sobre el dominio. El
usuario Administrador es miembro por defecto de este grupo.
• Usuarios del dominio. Contiene a todos los usuarios de dominio. Al crear una cuenta
forma parte de este grupo de forma predeterminada.
6.2.3. Equipos
Al igual como AD administra usuarios creando y administrando los objetos que los representan,
también existen las cuentas de equipos. Puede tener cuenta de equipo cualquier ordenador a partir
de Windows XP para puestos cliente, y a partir de Windows NT y 2000 para servidores.
• Nombre de equipo. También conocido como RDN. Nombre que lo distingue dentro de su
ámbito.
• Nombre anterior a Windows 2000. Por temas de compatibilidad hacia atrás, debe tener
un nombre de longitud inferior a 15 bytes.
• Sufijo DNS. Nombre completo del dominio al que se quiere unir el equipo.
• Nombre de host DNS. Concatenación del nombre de equipo y sufijo de DNS intercalando
un punto entre ambos, como ejemplo equipo1.dominio.es.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
• Nombre principal de servicio (SPN). Valor que se genera a partir del nombre DNS del
host y que se usa en el proceso de autenticación entre el cliente y el servidor que provee
un servicio solicitado.
Tal y como se ha visto en la estructura lógica de AD, las OU’s facilitarán la organización de los
objetos que se acaban de analizar en este punto.
7. Políticas de grupo
Las políticas de grupo son un conjunto de reglas que establecen, de forma centralizada, el entorno
de trabajo, tanto configuraciones de los equipos como de los usuarios que inician sesión. Se
aplican configuraciones de registro, políticas de seguridad, ejecución de scripts, mapeo de
unidades de red…
Estas reglas se definen en los objetos de políticas de grupo (GPO’s), las cuales luego se vinculan
a sitios, dominios y OU’s. Los objetos que se encuentren dentro de cada uno de estos
contenedores aplicarán las GPO’s.
7.1. Administración
En el momento de la creación del dominio se establecen dos contenedores, uno que representa al
propio dominio y un segundo de nombre Domain Controllers, los cuales ya tienen asociados
sendas GPO’s, la primera llamada Default Domain Policy y la segunda Default Domain Controllers
Policy.
La política Default Domain Policy es la que contiene la configuración que se aplica a todas las
cuentas por defecto del dominio, incluye las políticas de password, la de bloqueos de cuenta y las
relacionadas con Kerberos. Estas políticas se aplican a todos los usuarios y equipos del dominio.
Por su parte, las Default Domain Controllers Policy contienen directivas que se aplican a los
controladores de dominio.
Aunque una GPO defina políticas para equipos y usuarios, cada tipo de objeto sólo aplicará
aquellas que le sean propias.
En la edición de una GPO se mostrará un árbol con los distintos apartados configurables. La
primera división que se realiza, como se acaba de comentar, es:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
• Configuraciones de usuarios.
• Configuraciones de equipos.
• Preferencias. Son opciones de preferencia que pueden cambiar el valor de casi la totalidad
de opciones del Registro. A su vez, define dos grupos:
La principal diferencia entre ambas radica en que las preferencias son permanentes mientras no se
vuelvan a cambiar, mientras que las directivas se aplican cada inicio de sesión mientras estén
activas, refrescándose según el tiempo establecido y prevaleciendo sobre cualquier otra
configuración local del equipo.
Cualquier modificación de una GPO no tiene una aplicación inmediata sobre los objetos a los que
debería afectar, pues primero se deben replicar entre los controladores de dominio a los que afecta
la modificación. Además, los puestos clientes tienen configurado un tiempo de refresco de 90
minutos (más un tiempo aleatorio de máximo 30 minutos). Los controladores de dominio preguntan
sobre modificaciones en las GPO’s cada 5 minutos. Este tiempo de refresco es configurable,
aunque no es recomendable disminuirlo por efectos en el tráfico de red y trabajo para los DC.
Por defecto, una GPO se aplica desde el nivel en el que se define hacia los objetos de los
contenedores que incluye. Es decir, si se generase una GPO para un sitio, su dominio lo heredaría,
de ahí a las OU de primer nivel y a partir de ahí a tantas OU’s como haya en subniveles, hasta
llegar a los objetos, equipos y usuarios. A cada nivel el contenedor aplicaría las GPO’s del nivel del
que hereda, más las que le sean propias. En resumen, las GPO’s son hereditarias y acumulativas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de entornos Microsoft. Active Directory
En el caso que sea el contenedor al que se le apliquen más de una GPO y alguna de ellas se
contradigan, se deberá establecer mediante el gestor de GPO’s en qué orden se deben aplicar, de
más prioritaria a menos prioritaria.
• Enforced (forzado). Rompe la herencia hacia los contenedores de más bajo nivel. Aquel
contenedor que tenga habilitada la propiedad evitará que un contenedor de más bajo nivel
que tenga una GPO que la contradiga sobrescriba la que éste contenedor tiene definido.
AL igual que todos los objetos de AD, las GPO’s también tienen listas de control para determinar
qué usuarios pueden realizar qué operaciones sobre las GPO’s. Por defecto, sólo los grupos de
administradores de dominio y de administradores de la organización pueden crear y vincular
GPO’s, pero existe la posibilidad de delegar estas tareas.
• Crear GPO’s
Referencias bibliográficas
(1) https://technet.microsoft.com
(2) https://social.technet.microsoft.com
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Guillem Arnau Beneito
(3) https://msdn.microsoft.com
(4) https://administracionsistemasoperativos201415.wordpress.com
(5) https://es.wikipedia.org
(6) http://somebooks.es
(7) Ferrer, F. y Terrasa, A. (2012). Administración avanzada de Windows Server 2008 R2.
Valencia: Universidad Politécnica de Valencia
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 28. Los sistemas de gestión de bases de
datos SGBD. El modelo de referencia ANSI. El
modelo relacional. El lenguaje SQL. Bases de
datos no relacionales. Bases de datos no
estructuradas. NoSQL
Una base de datos (1) es como un armario electrónico que contiene una serie de
archivos computerizados. El sistema de gestión de bases de datos permite a los
usuarios agregar, recuperar, modificar y eliminar archivos a la base de datos, así como
agregar, recuperar, modificar y eliminar datos en los archivos existentes.
Los sistemas de gestión de bases de datos son una pieza fundamental en los
sistemas de información y han ido evolucionando con éstos. Desde los ficheros planos
o indexados hasta las bases de datos NoSQL, pasando inevitablemente por las bases
de datos relacionales y el lenguaje de consulta SQL, ampliamente extendidos en los
sistemas de gestión y con un predominio, casi monopolio, del mercado de las bases
de datos durante décadas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
Los sistemas de gestión de bases de datos forman parte de los sistemas de información, de igual
forma que el hardware, los usuarios o los administradores del sistema. Cualquier organización
necesita de un sistema de información para tratar toda la información que requiere para su
funcionamiento. Los primeros sistemas de información automatizados ya almacenaban y trataban
la información mediante sistemas de ficheros que controlaba directamente el sistema operativo,
pero estos sistemas tenían inconvenientes, entre los que destacaban:
• Seguridad. Los ficheros podían ser accedidos por cualquier usuario e incluso eliminados
como un fichero más del sistema operativo.
• Dependencia de los programas respecto a los datos. Las aplicaciones tenían sus propios
ficheros de datos.
Para resolver los problemas de los sistemas anteriores nace el concepto de base de datos, que
pretende unificar la información del sistema de información estructurado, sin redundancias y
manteniendo las distintas vistas de los usuarios. Una base de datos es una colección de datos
estructurados según un modelo que refleja las relaciones y restricciones de los mismos en la vida
real.
A su vez, los sistemas de gestión de bases de datos (SGBD) son herramientas software que:
• Permiten a las aplicaciones interactuar con las bases de datos (consultas, modificaciones,
borrados).
• Permiten a los administradores definir la estructura de los datos y las distintas vistas de
que éstos tienen las aplicaciones.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
El nivel externo es el más cercano a los usuarios, habrá muchas vistas externas según los usuarios
y sus necesidades de información. El nivel conceptual es una representación abstracta, y sólo
habrá una.
Veamos un ejemplo de las tres vistas de una base de datos que almacena información de clientes
y productos de una empresa de producción.
Esquema conceptual:
Clientes: Número de cliente (numérico), nombre del cliente (carácter), compras año en curso
(numérico).
Productos: Código de producto (carácter), nombre del producto (carácter), precio de coste del
producto (numérico), precio de venta del producto (numérico), instrucciones de producción
(carácter, texto libre), componentes (carácter, texto libre).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
Esquema interno:
Clientes:
NUMERO_CLI integer
Productos:
INS_PRODUCCION TEXT
Clientes:
NUMERO_CLI integer
Productos:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
Productos:
INS_PRODUCCION TEXT
Productos:
En este momento es interesante introducir dos conceptos, el DDL (Data Definition Language o
lenguaje de definición de datos) y el DML (Data Manipulation Language o lenguaje de
manipulación de datos). Utilizaremos tanto un lenguaje de definición o como de manipulación de
datos distinto según el nivel en el que estemos trabajando. Los lenguajes serán más o menos
formales según el nivel.
Puede hablarse, por ejemplo, de un DDL conceptual como un lenguaje de definición de datos a
nivel conceptual. Dicho lenguaje no puede tener en consideración aspectos de representación
física de los datos o de técnicas de acceso, ya que estos aspectos pertenecen al nivel físico.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
• Administrar la base de datos. Los sistemas ponen a disposición del DBA (administrador de
la base de datos, DataBase Administrator) una serie de utilidades para llevar a cabo las
tareas de administración de la base de datos (herramientas para mantener la seguridad de
los datos, herramientas de recuperación, etc.).
• Permitir describir los distintos esquemas de la base de datos, los aspectos importantes de
los datos y sus relaciones.
• Mantener la independencia entre los diferentes niveles, por ejemplo de los datos frente a
su representación física.
• Permitir establecer la correspondencia entre los esquemas y los datos en cada esquema.
• Aislar los esquemas entre sí de forma que las modificaciones en uno no afecten a los
demás (independencia de datos).
• Lenguajes de definición del esquema lógico, interno y externo (en la práctica no existen
herramientas de definición del esquema conceptual independiente del SGBD, por lo que se
añade un esquema lógico dependiente del SGBD intermedio entre el esquema conceptual
y el interno).
• Utilidades, entre las que destacan las generadoras de copias de seguridad, reconstrucción
de bases de datos dañadas, obtención de estadísticas, etc.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
3. El modelo relacional
Utilizamos los modelos de datos para representar una abstracción de la parte del mundo real que
queremos plasmar en el sistema de información. Con ellos debemos representar las propiedades
estáticas (objetos, relaciones y restricciones) como las dinámicas (operaciones sobre los objetos,
transacciones, restricción en la evolución de los objetos y sus relaciones).
Entre los distintos modelos que se han utilizado, podemos destacar los modelos jerárquicos
(estructurados en árbol), en red (CODASYL), relacionales, orientados a objetos, etc.
El modelo relacional fue presentado por E. Codd en 1970 y aún hoy sigue vigente, es el modelo de
datos de más éxito entre los SGBD y en el que se basan muchos de los grandes sistemas
comerciales (Oracle, SQL Server, Informix, DB2, MySQL, PostgreSQL, etc.). De manera informal
en un sistema relacional los datos son percibidos por el usuario como tablas y los operadores de
recuperación de esos datos generan nuevas tablas a partir de las anteriores. Al mismo tiempo,
Codd también propuso tres lenguajes de definición y manipulación de datos basados en el Álgebra
de conjuntos y en el Cálculo de Predicados de Primer Orden.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
Una de las principales ventajas y razones del éxito del modelo es su lenguaje de consulta, el SQL
(Structured Query Language) que será estudiado con mayor profundidad en los siguientes
apartados.
La estructura de datos relación es la estructura fundamental del modelo, como su nombre indica.
Relación es el término matemático para la tabla. Representa tanto los objetos como las relaciones
entre ellos. Viene definida por un conjunto de nombres de atributos, cada uno de los cuales tiene
asociado un dominio. Una o más relaciones forman el esquema de una base de datos relacional.
La forma más cómoda de representar las relaciones es mediante tablas. Veamos unos ejemplos:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
Una forma habitual de representar la vida real mediante el modelo relacional es utilizar diagramas
Entidad-Relación, que se estudiarán en detalle en el Tema 44. Como adelanto, la relación Clientes
del ejemplo se representaría como una entidad con sus atributos.
Figura 3: Entidad-Relación
El modelo relacional permite representar la vida real, como se ha comentado anteriormente, pero
con lo estudiado hasta ahora, permitiría la existencia de ocurrencias no válidas en la vida real. En
el ejemplo anterior podría existir una tupla con el código repetido o sin nombre en el cliente. Las
restricciones son las herramientas que nos permiten definir qué cosas queremos que nuestro
modelo no permita.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
Restricción de valor no nulo. Se aplica sobre un atributo, dicho atributo no puede tener valor nulo
para ninguna tupla de la relación.
Restricciones de unicidad.
• Clave candidata. Conjunto de uno o más atributos que identifican de forma única la tupla y
no existe un subconjunto de esos atributos que también identifiquen de forma única la
tupla. Dicho de otra forma, no se puede repetir otra tupla con los mismos valores en el
conjunto de atributos que forman la clave candidata.
• Clave primaria y alternativa. Si existe más de una clave candidata en una entidad, una u
solo una de ellas es la clave primaria. El resto de denominan claves candidatas. La clave
primaria servirá para referenciar las tuplas de la relación.
• Clave ajena. La clave ajena es el mecanismo del modelo relacional para establecer las
relaciones entre entidades. Dada una entidad R {(A1,D1),(A2,D2),(A3,D3),…,(An,Dn)} y S
{(B1,E1),(B2,E2),(B3,E3),…,(Bn,En)} y sea CPS la clave primaria de S, la clave ajena de R
que referencia a S :
• Una biyección f:CARS → CPS tal que cualquier elemento Ai de CARS se cumple que Ai y
el atributo de CPS asociado f(Ai) tienen el mismo dominio.
Se cumple que para toda tupla de R existe una tupla de S tal que los atributos Ai de la tupla en R
son iguales en la tupla en S o la tupla en R tiene valor nulo en esos atributos.
Dicho de otra manera, la clave ajena es uno o más atributos de una relación R cuyo valor es nulo o
coincide con la clave primaria de otra relación S.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
Los operadores son los lenguajes relacionales, lenguajes de especificación mediante los cuales se
expresa lo que se quiere obtener de la base de datos, o las operaciones que se quieren realizar,
sin especificar cómo tiene que ser obtenida dicha información.
Existen dos notaciones para expresar las operaciones sobre las relaciones, notación algebraica o
álgebra relacional y notación lógica o cálculo relacional (de tuplas y de dominios). En total tres
lenguajes equivalentes entre sí con un objetivo fundamental, la expresión de consultas a la base
de datos.
• Unión (U). R U S será la unión de todas las tuplas que están en R y todas las tuplas que
están en S. Las relaciones tiene que ser compatibles, es decir, tienen el mismo esquema
relacional. El resultado también será compatible.
• Producto cartesiano (x). R x S será la combinación de todas las tuplas de R con cada una
de las tuplas de S. Los atributos del producto cartesiano serán los atributos de R más los
atributos de S.
• Selección (donde). S donde condicion selecciona las tuplas de S que cumplen la condición
condicion. Los atributos de la selección son los mismos de S.
• Proyección ([]). La relación resultante contiene las mismas tuplas que la original, pero
únicamente los atributos indicados en el operador.
• División (÷). R ÷ S son las tuplas R que están combinadas con todas las tuplas de S. La
relación resultante son los atributos no comunes de R.
Los cuatro primeros son operadores conjuntistas, similares a los utilizados en la teoría de
conjuntos. Los cuatro últimos son propiamente relacionales. El resultado de cualquier operación
relacional es otra relación, lo que permite el anidamiento de operaciones.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
Clientes [nombre]
Clientes x Productos
Clientes ∞ Facturas
Se observa que el operador concatenación lleva implícita la condición que debe cumplirse, en este
caso que el código de cliente de la relación Facturas corresponda al código de cliente de la
relación Clientes. En lenguaje SQL, la condición se debe indicar explícitamente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
relacional de tuplas tienen su equivalente en el álgebra relacional, y viceversa. Unos ejemplos del
cálculo relacional de tuplas servirán de ilustración:
X: Cliente
Cliente(X) ∧ X.telefono=’666666666’
X: Cliente
Y: Factura
X:dom_nombre Y:dom_telefono
∃ X(Cliente(codigo:X,telefono:Y) ∧ Y=’666666666’)
4. El lenguaje SQL
El lenguaje SQL es el estándar para trabajar con bases de datos relacionales. Fue desarrollado por
IBM en los años 70, pero su versión más estándar y utilizada fue SQL/92, aceptada y asumida por
muchos fabricantes con muy pocas modificaciones. Incluye operaciones de definición de datos
(DDL) y de manipulación (DML). Aunque no es un lenguaje que cumpla todos los requisitos del
modelo relacional, su amplia difusión hace que su conocimiento y dominio sea necesario para
cualquier profesional que maneje como parte de su trabajo bases de datos relacionales.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
Es importante destacar que SQL es un estándar, pero no tiene por qué estar completamente
implementado en todos los gestores, de igual forma que algunos gestores incorporan instrucciones
a su SQL que no forman parte de estándar. El manejo de cadenas o de tipos de datos de fecha y
hora puede cambiar de unos gestores a otros, e incluso de unas versiones a otras dentro del
mismo sistema, por lo que es necesario conocer el sistema destino a la hora de escribir sentencias
SQL.
Para la definición de datos, la sentencia más importante el CREATE TABLE, el siguiente ejemplo
crearía las tablas clientes y productos del ejemplo anterior en lenguaje SQL/92, crearía las
restricciones de integridad de clave primaria de las tablas y la restricción de clave ajena de la tabla
de productos a la de tipos de producto.
(numero_cli numeric(5),
(cod_tipo char(15),
(cod_pro char(15),
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
ins_produccion char(100),
tipo_producto char(15),
Para la manipulación de datos, las sentencias más comunes son SELECT (consultar a la base de
datos), INSERT (instrucciones de inserción de uno o varios registros en una tabla), UPDATE
(modificación de algún registro de una tabla) y DELETE (borrado de algún registro de una tabla).
Dentro de éstas podemos utilizar operaciones para proyectar, restringir y juntar. Por ejemplo la
siguiente sentencia une las tablas productos y tipo_producto, restringiendo los productos con un
precio de coste mayor a 100 y proyectando alguna de sus columnas:
Para insertar un registro en una tabla de la base de datos, utilizamos el operador INSERT. En el
siguiente ejemplo insertamos en la tabla de productos un registro con código ‘A001’, nombre 'Hora
de desarrollo' y precio de venta 30. No se han indicado valores para el resto de columnas de la
tabla, lo que las dejará a NULO o a sus valores por defecto si los tuvieran. En caso de que alguna
de esas columnas tuviera una restricción de no nulo, la sentencia daría un error de ejecución al
incumplir las restricciones definidas:
Para modificar uno o varios registros de una tabla utilizamos el operador UPDATE. En el siguiente
ejemplo se incrementará el precio de todos los productos que cumplan una condición. Dicha
condición está implementada a su vez como una consulta a otra tabla de la base de datos. Estos
anidamientos nos permitirán construir sentencias SQL tan complejas como sea necesario.
WHERE tipo_producto in (
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
Para eliminar registros de una tabla utilizamos el operador DELETE. El siguiente ejemplo borrará
todos los registros de la tabla de tipos de producto:
La instrucción anterior dará error de ejecución si alguno de los tipos de producto ha sido
referenciado en la tabla de productos, ya que su eliminación rompería la integridad de la base de
datos definida por restricción de clave ajena de productos a tipos de producto (foreign key
(tipo_producto) references tipo_producto en la sentencia de creación de la tabla de productos).
Para eliminar uno o algunos de los registros de una tabla, podemos incluir una condición de la
siguiente manera:
WHERE tipo_producto='A002'
O utilizando una sentencia SELECT dentro de la condición, se pueden eliminar los tipos de
producto que no han sido referenciados en ningún registro de la tabla de productos:
SELECT tipo_producto
FROM productos)
4.2. Vistas
Las vistas son consultas a la base de datos que se utilizan frecuentemente. No son tablas,
únicamente consultas sobre tablas, pero en el caso de dispongan de los permisos pertinentes,
pueden ser utilizadas tanto para consultar como para insertar o borrar.
Una vez creada una vista, ésta puede ser utilizada en los mismos contextos que una tabla.
Podemos crear una vista con información de los productos desde el punto de vista de producción
con la siguiente sentencia:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
from productos
from productos
where tipo_producto='A001'
where productos.tipo_producto=tipo_producto.cod_tipo
Las vistas son un mecanismo que puede ayudar a mantener la independencia lógica, ya que añadir
un nuevo atributo en una tabla no afectaría a las vistas que actúan sobre ella. También permite
mostrar distinta información a distintos usuarios y pueden ser un mecanismo de ayuda a mantener
la seguridad de los datos, ocultando algunos atributos o incluso algunos registros.
Los triggers o disparadores son procesos que se ejecutan automáticamente después de hacer una
operación en la base de datos. Por ejemplo:
ON productos
AFTER INSERT
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
Cada vez que se inserte un registro en la tabla de productos, el sistema llamará al procedimiento
almacenado pr_ins_productos pasándole el código del producto recién creado. El procedimiento
podría hacer algún tipo de comprobación o insertar un registro en una tabla de auditoría donde se
incluyera información del momento en el que se ha creado el producto, por ejemplo.
Definiendo un disparador en el borrado de una tabla, podríamos hacer que se guardaran los datos
del registro a borrar en otra tabla de registros eliminados, de forma que pudieran ser recuperados
en caso de necesidad.
BEGIN
END
ON clientes
AFTER DELETE
Aunque el modelo relacional sigue siendo un modelo válido para muchos de los sistemas de
información actuales tales como el tratamiento de datos alfanuméricos o los sistemas de gestión
empresarial, por poner algún ejemplo, la evolución de los sistemas de información ha hecho que en
algunos casos el modelo no sea válido. Así se han ido desarrollando nuevos modelos de bases de
datos y sus respectivos sistemas de gestión. En los siguientes apartados se estudiarán algunos de
ellos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
Durante muchos años los modelos relacionales han predominado como sistemas de bases de
datos necesarios para los sistemas de información tradicionales de gestión de las empresas y los
negocios. Pero estos modelos no son los más adecuados cuando los sistemas necesitan
almacenar y tratar documentos, imágenes, vídeos, etc. (multimedia) o con la aparición los sistemas
de fabricación asistidos por ordenador (CAD/CAM), las bases de datos gráficas, los sistemas de
información geográfica, etc. Las nuevas aplicaciones necesitan estructuras más complejas para
almacenar los datos, transacciones más grandes, tipos de datos para almacenar imágenes,
grandes bloques de texto, etc. También operaciones que manejen esos datos. Una primera
solución planteada para ese problema fueron las bases de datos orientadas a objetos.
En el modelo de datos de las bases de datos orientadas a objetos cada elemento es un objeto con
identidad única, propiedades y comportamiento. Conceptos de la orientación a objetos llevados a
las bases de datos. Las tuplas del mundo relacional se sustituyen por objetos.
La identidad única no equivale a la clave primaria, sino que es un identificador generado por el
sistema, no modificable y oculto al usuario. El valor del objeto se expresa mediante sus
propiedades, que se almacenan en una estructura de datos que puede ser tan compleja como sea
necesario. Las operaciones que manipulen los valores también tendrán que ser proporcionados por
el sistema.
Se definen constructores para los tipos de objetos utilizando constructores básicos (enteros,
cadenas, etc.) y pueden ser anidados creando estructuras más complejas.
También se definen referencias entre objetos cuando un atributo se define como referencia a otro
tipo de objeto. La integridad referencial de los sistemas relacionales es aquí más fácil de
implementar.
Los objetos tienen un estado que se corresponde con el valor que tiene asignado el objeto en un
momento dado. Las operaciones sobre un objeto tienen que estar previamente implementadas, así
como la comunicación entre objetos, asegurando de esta manera el encapsulamiento.
Distinguimos la signatura (parte pública de la operación) del método (procedimiento implementado
en algún lenguaje de programación y oculto al usuario). Así pues la única forma de acceder a un
atributo de un objeto es desarrollar una operación que lo consulte y devuelva como salida su valor.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
Las bases de datos orientadas a objetos permiten a nivel de diseño métodos de abstracción
similares a las relacionales, además de otros métodos específicos, como agregación, asociación,
generalización y especialización, herencia, polimorfismo. También se han propuesto lenguajes de
consulta similares a SQL como el OQL (Object Query Language).
Algunos de los sistemas de gestión de bases de datos orientadas a objetos son O2 y ObjectStore.
Acerca el modelo conceptual al modelo lógico No existe una implementación estándar. Cada
fabricante lo ha implementado a su manera
Mejora en las capacidades de consulta a la
base de datos
Los sistemas de gestión de bases de datos relacionales han ido adaptándose a las nuevas
necesidades de los sistemas de información añadiendo las características propias de la orientación
a objetos, al mismo tiempo que han aparecido nuevos sistemas con estas características ya
implementadas, dando lugar a los sistemas de gestión de bases de datos objeto-relacionales.
Estos sistemas, a diferencia de los orientados a objetos recién estudiados, cumplen con los dos
modelos, tanto el relacional como el orientado a objetos.
Este enfoque permite a los usuarios utilizar la orientación a objetos, definir sus propios tipos de
datos, asociar métodos y constructores, aunque internamente los datos sigan siendo almacenados
en tablas.
SQL:1999 propone un modelo de objetos que enriquece el modelo relacional con la posibilidad de
definir tipos de datos estructurados con interfaz de métodos y asignar (o no) un tipo a una tabla.
Una tabla sin tipo asociado es una tabla relacional tradicional, una tabla con tipo es una tabla
cuyas filas son instancias del tipo de datos correspondiente.
Así pues la principal diferencia entre los sistemas de gestión de bases de datos orientadas a
objetos y los objeto-relacionales es que los primeros se desarrollan según el paradigma de la
orientación a objetos y los segundos son sistemas relacionales que han evolucionado hasta
sistemas que soportan las dos tecnologías, la relacional y la orientación a objetos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
Podemos asumir que las ventajas e inconvenientes de los sistemas objeto-relacionales son
similares a las de los sistemas orientados a objetos, con la diferencia de que los objeto-
relacionales son compatibles con los relacionales. Un sistema puede mantener sus bases de datos
relacionales, al ser éstas un subconjunto de las que puede mantener un sistema objeto-relacional.
Además, admiten el lenguaje SQL, aunque con alguna diferencia.
Las bases de datos NoSQL (Not Only SQL, no solo SQL) aparecen también para resolver la
gestión de los datos donde las bases de datos tradicionales (relacionales) no alcanzan. Cuando los
sistemas a implementar necesitan de una gran flexibilidad en los datos, los sistemas relacionales,
con su estructura bien definida, no son la mejor opción. Tampoco cuando las bases de datos tienen
altos niveles de distribución, requisitos muy estrictos de rendimiento en consulta o grandes
volúmenes de datos.
Aplicaciones como Facebook, Instagram, FourSquare, Twitter, etc. son las pioneras en el uso de
estas bases de datos. Que cualquier usuario pueda incluir información en sus bases de datos
provocó que el volumen creciera exponencialmente, haciendo desaconsejable el uso de sistemas
tradicionales.
También es útil este tipo de bases de datos en entornos de desarrollo ágil, con frecuentes
modificaciones en el modelo de datos. Situaciones en las que el modelo relacional puede hacer
que las iteraciones no sean tan ágiles como se espera.
Según el modelo de datos, las bases de datos NoSQL pueden dividirse en:
Clave-valor
Los elementos se identifican por una clave única y almacenan el resto de información en un campo
BLOB o similar, haciendo la recuperación de información muy rápida. Algunos ejemplos son
Cassandra (Facebook, Twitter) o BigTable (Google).
Documentales
También utilizan una clave única para cada elemento, pero almacenan la información en una
estructura tipo JSON o XML, lo que le permite una estructura dinámica. Permite búsquedas más
complejas que el Clave-valor. Una estructura que en el mundo relacional podría consistir en varias
tablas y columnas relacionadas por claves ajenas, aquí se almacena como un único registro o
documento. Dos documentos de la mista “tabla” pueden o no tener la misma estructura. MongoDB
(FourSquare, Ebay) o Firebase Realtime Database (adquirida por Google) utilizan esta estructura.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
En grafo
La información se representa como nodos de un grafo y las relaciones son las aristas del grafo.
Necesita de una estructura fija para proporcionar un buen rendimiento. Algunos ejemplos son
Neo4j (Infojobs) o Infogrid.
Orientadas a objetos
Aunque se estudiaron en el apartado anterior, son un ejemplo de bases de datos no solo SQL.
• Tiene una buena escalabilidad horizontal. Añadir más servidores mejorará el rendimiento
del sistema de forma óptima.
• No hay cuellos de botella en la gestión de las peticiones, por los pocos recursos que
requieren.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas de gestión de bases de datos
Referencias bibliográficas
(1) Date, C.J. (2001). Introducción a los sistemas de bases de datos. Prentice Hall / Addison
Wesley Iberoamericana
(2) Pressman, Roger S. (1999). Ingeniería del software, un enfoque práctico. Ed Mc Graw Hill.
(3) ANSI/X3/SPARC Study Group on Data Base Management Systems: (1975), Interim Report.
FDT, ACM SIGMOD bulletin. Volume 7, No. 2.
(4) Mota, L., Celma, M., Casamayor, J.C., (1994) Bases de datos relacionales: Teoría y diseño.
Universidad Politécnica de Valencia
(6) de Miguel, A., Piattini, M. (1993) Concepción y diseño de bases de datos. RA-MA
(7) http://aws.amazon.com
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
José Ramón Lozano Mínguez
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 29. Tecnologías para el desarrollo de
aplicaciones. Microsoft.NET, JAVA, PHP.
Frameworks de desarrollo
Java, PHP y MS.NET son, por su utilización tan extendida, los lenguajes de
programación más importantes hoy por hoy. Con ellos se escribe el 30% de todo el
código generado en el mundo y el 99% si nos referimos exclusivamente a los
lenguajes web “del lado del servidor” (datos referentes a septiembre de 2.016
obtenidos de tiobe.com y w3techs.com).
Java fue desarrollado desde 1.991 por un equipo de Sun Microsystems liderado por
James Gosling. La primera versión de Java fue publicada en enero de 1.996. En 2.007
Sun Microsystems empezó a distribuir Java bajo los términos de la licencia GNU-GPL
(http://www.gnu.org/licenses/gpl.html). En 2.009 Sun Microsystems fue adquirida por
Oracle y desde entonces se ha mantenido una posición ambigua respecto a la licencia
de distribución de Java. En 2.010 James Gosling abandonó Oracle
PHP fue desarrollado en 1.994 por Rasmus Lerdof como un conjunto de herramientas
para un proyecto personal. En 1.997 Zeev Suraski y Andi Gutsman retomaron el
desarrollo y en 1.998 publicaron PHP 3. En 1.999 fundan la empresa Zend
Technologies que desde entonces es la encargada de desarrollar el lenguaje y lo
distribuye bajo la licencia PHP License (http://www.php.net/license/3_01.txt).
Micorsoft comenzó el desarrollo de .NET (punto NET) en la segunda mitad de los 90’s
y la primera versión estable se lanzó en febrero de 2.002. El lanzamiento de .NET
puede considerarse como la alternativa de Microsoft para el mercado del desarrollo
web, y en cierta medida una respuesta a Java.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
1. MS.NET
1.1. Introducción
• Common Language Runtime (CLR): es el motor que controla las aplicaciones en ejecución.
Los principales servicios que provee Microsoft .NET a las aplicaciones son:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
Todos los compiladores incluidos en la plataforma .NET generan código intermedio CIL, este es el
único lenguaje que “entiende” la CLR.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
El módulo encargado de generar el código nativo que se va a ejecutar a partir del código CIL se
llama compilador JIT (Just-In-Time), y está integrado en la CLR. JIT va compilando dinámicamente
el código CIL a medida que va a ser ejecutado.
Todos los compiladores de la plataforma .NET unifican los tipos de datos de cada uno de los
lenguajes al Sistema de Tipos Común (CTS) que puede ser considerado como un sistema de tipos
de datos independiente del lenguaje de programación. De esta manera, los datos del código
intermedio CIL, son los únicos que admite la CLR.
Los tipos de datos por referencia siempre se gestionan con direcciones de memoria, tanto para la
asignación como para la comparación.
La plataforma .NET incorpora una librería de clases (Framework Class Library) formada por cientos
de clases que facilitan la interacción del programador con los servicios ofrecidos por la CLR.
Esta librería está escrita en CIL, lo que permite que sea usada por cualquier lenguaje de la
plataforma .NET (C#, VB.NET,…).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
Todas las clases que incluye la FCL están organizadas en espacios de nombre (similares a los
packages de Java) cuya raíz es System. Los espacios de nombres mas usados son:
• System.Data: Incluye las clases para el acceso a Base de Datos mediante la arquitectura
ADO.NET.
Es la herramienta de .NET para crear aplicaciones avanzadas de escritorio. Se utiliza para diseñar
y programar los formularios (WinForms o ventanas) con los que el usuario interactuará con la
aplicación.
Las clases que se utilizan descienden directamente de las Windows Foundation Classes (WFC) y
su espacio de nombres es System.Windows.Forms.
1.5. ASP.NET
Es el modelo de desarrollo para web que introduce .NET, puede decirse que es la extensión del
lenguaje ASP para la plataforma .NET, incluyendo los servicios de la CLR y la FCL. El código de
las aplicaciones puede escribirse en cualquier lenguaje que soporte la Common Language
Runtime.
Una de las características principales de ASP.NET es que permite trabajar con elementos HTML
en la propia página, por lo que la diferenciación de código a ejecutar en el servidor o en el cliente
se difumina, ya que todo está incluido en el mismo código. Incluye diseño de controles específicos
para programar aplicaciones que se ejecutan sobre dispositivos móviles.
En cuanto a la capa de presentación, ASP.NET permite controlar la apariencia general de los sitios
web a través de la definición de temas y máscaras que pueden aplicarse tanto a las páginas como
los controles.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
ASP.NET permite almacenar el estado de la página de manera que, entre cada una de las
llamadas desde el cliente, se pueda compartir información. Puede guardar y administrar
información específica de la aplicación, de la sesión, de la página y del usuario.
<%
%>
<head runat="server">
<title>Hola Mundo</title>
</head>
<body>
<div>
</div>
</form>
</body>
</html>
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
1.6. C# (C Sharp)
La sintaxis de C# es muy similar a la de los lenguajes C, C++ y Java pero con características
propias como tipos de datos que admiten el valor NULL, enumeraciones, delegados y acceso
directo a memoria (que no incluye Java). También admite la definición de métodos genéricos
(funciones donde tanto los parámetros de entrada como el tipo devuelto admiten cualquier tipo de
dato).
Además de estas características, C# facilita las consultas integradas en una gran variedad de
orígenes de datos mediante Language-Integrated Query (LINQ). Se pueden escribir consultas
sobre bases de datos SQL Server, documentos XML, conjuntos de datos ADO.NET y cualquier
colección de objetos que admite la interfaz IEnumerable.
using System;
Console.WriteLine("Hola mundo");
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
2. Java
(1)
Java es, según el índice Tiobe (http://www.tiobe.com/tiobe-index), el lenguaje más usado ,
suponiendo el 18,24% del total de líneas de código escritas. Java ha mantenido esta posición
privilegiada desde 2.001, siendo superado por C en contadas ocasiones.
Java fue desarrollado desde 1.991 por un equipo de Sun Microsystems, liderado por James
Gosling, en un proyecto denominado Green Project. Originalmente el lenguaje se denominó Oak
(roble), pero por un problema de patentes pasó a llamarse Java.
Los objetivos iniciales eran implementar un lenguaje con una estructura y sintaxis similar a C++
que pudiera ejecutarse en cualquier tipo de máquina, pero en el verano de 1.994 el equipo
reorientó la plataforma hacia la web. Con esta nueva línea de trabajo, crearon el navegador
HotJava, que fue presentado junto a la primera versión de Java en mayo de 1.995 durante la
conferencia SunWorld.
En enero de 1.996 se publicó la primera versión de Java y desde entonces Java ha experimentado
numerosos cambios, así como la inclusión de gran cantidad de clases y paquetes que se incluyen
en la instalación estándar.
Java comparte muchas de sus características con C++: lenguaje fuertemente tipado, orientado a
objetos, sintaxis similar,… La diferencia fundamental entre ellos es el tratamiento de la memoria,
ya que Java no permite la asignación dinámica de la misma y el uso de punteros.
En Java todo son clases (objetos), siendo obligatorio el uso del paradigma de la Programación a
Objetos. Un programa en Java estará formado por uno o varios ficheros que a su vez contienen
una o más clases. Una de estas clases debe contener un método main que contendrá el código
principal del programa. La declaración de dicho método será:
Como vamos a escribir nuestro primer programa en Java, el clásico “Hola mundo!”:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
class Hola {
System.out.println("Hola mundo!");
2.2.1. Comentarios
Como en cualquier lenguaje de programación, los comentarios en Java son de gran valor, ya que
se deben utilizar para hacer más comprensible el código y que este sea mantenible por personas
que no fueron los programadores originales.
• Referencias a objetos.
Entendemos por tipos de datos primitivos aquellos que se pueden definir sin el uso de la POO. En
Java son: byte, short, int, long, float, double, char y boolean.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
En Java la longitud de los tipos primitivos no depende de la plataforma hardware ni del sistema
operativo. Por contra, no se realizan comprobaciones de rango; esto quiere decir que a una
variable de tipo byte con valor 127 se le suma 1, pasa a valer -128 sin que se produzca error.
Las referencias almacenan un puntero a una zona de memoria que almacena a un tipo de dato
más complejo como son los arrays y los objetos.
Para cada tipo de dato primitivo existe una clase equivalente que tienen métodos que facilitan el
trabajo con variables cómo conversores de tipos.
En Java las variables se declaran de la misma forma que en C++, identificador (nombre de la
variable) y tipo de dato al que corresponde. Las variables también pueden ser inicializadas durante
la declaración.
int x;
int x = 0;
Los identificadores pueden estar formados por letras, números y símbolos con las siguientes
restricciones:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
• No pueden ser una palabra reservada del lenguaje ni los símbolos de los operadores.
La visibilidad o ámbito de una variable es la parte del programa donde dicha variable puede ser
usada. En Java podemos distinguir los siguientes ámbitos:
• Atributos: son las características de una clase y su ámbito está limitado al objeto pero
pueden definirse de manera que su comportamiento respecto al ámbito se vea modificado
(ver punto 3.3.5.2).
• Parámetros: son las variables que se pasan a un método. Se declaran en la cabecera del
método. La visibilidad es el método en el que están definidas.
2.2.3. Operadores
Los operadores en Java son muy similares a los de C++. Pueden clasificarse en los siguientes
tipos:
x = 34;
• Aritméticos: realizan las operaciones habituales de suma (+), resta (-), multiplicación (*),
división (/) y resto de la división (%).
y = x * 4;
x *= 4; // x = x * 4;
y = -x; // y = x * (-1);
b = x instanceof String;
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
x = 1; y = 2; z = (x>y) ? 10 : 20; // z = 20
x++; // x = x + 1;
• Relacionales: Se utilizan para realizar comparaciones entre valores de las variables. Mayor
que (>), mayor o igual que (>=), menor que (<), menor o igual que (<=), igual (==) y distinto
(!=).
if ( x >= 10 ) y = 20;
x = 12; y = x >> 2; // y = 3;
Al igual que los aritméticos se pueden usar junto con el operador de asignación.
x = 12; x >>= 2; // x = 3;
La siguiente tabla muestra la precedencia de las operaciones en Java (de mayor a menor):
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
Postfijos [] . ()
Unarios ++ -- - ~ !
Creación o conversión new (tipo) expr
Multiplicación y división */%
Suma y resta +-
Desplazamiento de bits << >> >>>
Relacionales < > <= >=
Igualdad y desigualdad == !=
AND a nivel de bits &
XOR a nivel de bits ^
OR a nivel de bits |
AND lógico &&
OR lógico ||
Condicional ? ?:
Asignación = += -= /= %= ^= &= |= >>= <<= >>>=
Las sentencias en Java deben terminar con un punto y coma (;) y se permite tener varias
sentencias en la misma línea. En este aspecto es igual que en C++.
Las sentencias de control se utilizan para modificar el flujo lineal de los programas. Se pueden
clasificar en dos tipos: bifurcaciones y bucle.
2.2.4.1. Bifurcaciones
Permiten ejecutar (o no ejecutar) un conjunto de sentencias en función del valor de una expresión
lógica o relacional.
if ( expresión ) {
sentencias_A;
else {
sentencias_B;
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
// Anidamiento
if ( expresión_1) {
if ( expresión_2 ) {
...
// Concatenación
if ( expresión_1 ) {
...
else if ( expresión_2 ) {
...
else {
...
• switch: Es una variante de la bifurcación if ... else if ... else cuando se utiliza
la misma expresión y se compara con distintos valores.
switch ( expresión ) {
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
default: sentencias_D;
Cada sentencia case debe corresponderse con un valor concreto, no se puede comparar
con rangos ni expresiones relacionales.
Si la expresión no coincide con ningún valor y existe la sentencia default, se ejecutan las
instrucciones correspondientes (en este ejemplo sentencias_D), si no existe, no se
ejecuta ninguna instrucción.
La sentencia break hace que se salga del bloque switch. Si no existe para alguna de las
sentencias case la ejecución continúa con las sentencias del siguiente bloque case.
2.2.4.2. Bucles
• while: Las sentencias del bloque se ejecutan mientras la expresión se evalúe a verdadero.
while ( expresión ) {
sentencias;
• for: En un bucle for, se indica el número de iteraciones que las sentencias deben
ejecutarse.
sentencias;
• do … while: se asegura que las sentencias del bucle se ejecutan al menos una vez.
do {
sentencias;
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
} while ( expresión );
En los bucles también se puede utilizar la sentencia break para salir de ellos. También se puede
utilizar la sentencia continue para interrumpir la ejecución de una iteración, volver a evaluar la
expresión y si corresponde, ejecutar las sentencias.
En Java todo son objetos, por eso es fundamental tener bien asentados los conceptos básicos de
Programación Orientada a Objetos. Por ello vamos a hacer un pequeño repaso a los principales
conceptos y características de la POO.
• Clases y objetos: una clase es un tipo de dato que encapsula tanto las propiedades
(atributos) como los métodos (acciones) que se pueden actuar sobre esas propiedades. Un
objeto es una instancia concreta de ese tipo de dato, es una variable.
• Encapsulación: es la propiedad que tienen los objetos para ocultar sus atributos y/o
métodos. En general, los atributos sólo deberían ser accesibles a través de los métodos.
• Herencia: una clase puede ser definida a partir de otra, de manera que “herede” todos (o
algunos) de sus atributos y métodos. La nueva clase, a su vez, puede definir nuevos
atributos y métodos, y/o redefinir los heredados.
• Polimorfismo: con esta característica se permite que dentro de una jerarquía de clases, un
mismo método se comporte de distinta manera para cada una de las clases.
Una clase es la definición de un tipo de dato donde se agrupan tanto los atributos (variables) que lo
definen como los métodos (funciones) que actúan sobre dichos atributos.
class NombreDeClase {
...
Un objeto es una instancia concreta de una clase, una variable del tipo de dato “clase”.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
NombreDeClase nombreDeObjeto;
interface NombreDeInterface {
...
Las variables miembro de una clase son los atributos o características de dicha clase. Cada objeto
de una clase tiene una copia propia de todas las variables miembro. Las variables miembro pueden
ser de tipos primitivos o a su vez pueden ser objetos de otras clases.
Las variables miembro pueden declararse con los modificadores public, private, protected y
package para indicar su nivel de acceso. En la siguiente tabla se especifican los tipos de acceso.
public Se puede acceder al miembro de la clase desde cualquier parte del programa.
private Sólo es accesible desde la propia clase.
protected Se puede acceder desde la propia clase y las clases que heredan de ella.
package Se puede acceder desde las clases incluidas en el mismo paquete.
class Persona {
...
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
Las clases pueden tener variables propias de clase que son globales a todos los objetos de esa
clase. Se definen con el modificador static y se suelen utilizar para definir constantes globales
para la clase (deben tener también el modificador final para que no se pueda cambiar su valor) o
variables que tengan sentido a nivel de clase (por ejemplo un contador de objetos de dicha clase).
class Persona {
...
2.2.5.3. Métodos
Los métodos son funciones definidas dentro de la clase y que actúan sobre las variables miembro.
Se aplican siempre sobre el objeto que invoca a la función mediante el operador punto (.). Este
objeto es un argumento implícito y se accede a sus variable miembro directamente o con el
operador this.
class Persona {
return true;
else
return false;
if ( p1.esMayorDeEdad() )
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
System.out.println(“Puede votar.”);
else
Java permite que las subclases redefinan los métodos heredados, es decir, que el método tendrá
el mismo nombre y parámetros que el de la superclase pero distinta funcionalidad.
Del mismo modo que C++, también se permite la sobrecarga de métodos, esto es, métodos que
tiene el mismo nombre pero distintos parámetros de entrada y distinta funcionalidad.
Los métodos pueden declararse con los modificadores public, private y protected para
indicar su nivel de acceso. La visibilidad de estos modificadores en la misma que para las variables
miembro (ver Tabla IV).
• abstract: este modificador implica que el método sólo tiene definida su declaración, no
su implementación. Las clases que hereden estos métodos están obligadas a
implementarlos. Cuando una clase define este tipo de métodos, la clase también debe
definirse como abstract.
Unos métodos de especial importancia en la definición de clases son los constructores. Estos
métodos son los que se ejecutan automáticamente cada vez que se crea un objeto de la clase
(cada vez que se invoca a new). Realizan la reserva de memoria y la inicialización de variables. Su
nombre es el mismo que el de la clase y no tiene valores de retorno. No pueden ser llamados por
otros métodos, sólo por otros constructores o por método static. Si no se define un constructor
explícitamente, el compilador “crea” un constructor genérico que inicializa las variables miembro.
2.2.5.4. Paquetes
Un paquete (package) es una agrupación de clases que normalmente tienen una relación
funcional, p. e. se puede definir un paquete geometría que contengas clases como Círculo,
Triángulo, Cuadrado, etc.
Para incluir una clase en un paquete, la sentencia del fichero donde se define la clase debe ser
package seguida del nombre del paquete.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
package es.ciencias.matematicas.geometria;
El nombre de los paquetes suelen ser en minúsculas y contener varios segmentos unidos por
puntos. Estos segmentos están relacionados con la jerarquía de los paquetes y contienen todas las
clases relacionadas en el mismo directorio.
CLASSPATH\es\ciencias\matematicas\geometria\Circulo.class
En el momento de invocar a una clase, se debería utilizar el nombre completo del paquete unido al
de la clase.
es.ciencias.matematicas.geometria.Circulo
Para evitar la dificultad de usara estos nombre “largos” se pueden importar todas las clases de un
paquete y utilizarlas con su nombre corto.
import es.ciencias.matematicas.geometria.*;
2.2.5.5. Herencia
Esta es una de las características principales de la POO ya que permite una fácil reutilización de
código.
Con la herencia se puede construir una clase (subclase) a partir de otra clase existente
(superclase) de manera que se heredan todos los atributos y métodos (excepto las definidas con el
modificador private). Los métodos que se heredan pueden ser redefinidos (excepto los definidos
con el atributo final) de manera que se altere su funcionalidad para adaptarla a la nueva clase y
también se permite que los métodos de la superclase puedan ser llamados desde la subclase
mediante la sentencia super. Puede decirse que una subclase amplia la funcionalidad de la
superclase.
...
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
Java permite varios niveles de herencia, pero no permite la herencia múltiple (una subclase hereda
de varias superclases). Para suplir esta carencia Java implementa las Interfaces que veremos a
continuación.
2.2.5.6. Interfaces
interface Dibujable {
class Circulo {
protected double x, y, r;
...
...
...
Las interfaces sólo admiten los modificadores public y package. Los métodos definidos en la
interface son siempre public y abstract (este de manera implícita).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
Son los dos paquetes principales que incluye la API de Java. El primero contiene clases
imprescindibles para Java y es importado por defecto. El segundo contiene clases diversas pero
también muy útiles a la hora de programar.
• java.lang: contiene las clases equivalente a los tipos primitivos de datos y las clases
String, StringBuffer, System y Math, entre otras. También incluye las interfaces
Cloneable, Comparable e Iterable.
2.2.6. Excepciones
Java incorpora en el propio lenguaje mecanismo para el tratamiento de errores. Una excepción
puede definirse como una anomalía o un funcionamiento no esperado durante la ejecución de un
programa (división por cero, fichero no existe, tamaño del array excedido, etc.).
Las excepciones nos permiten gestionar estos errores y recuperarnos en caso de un error no grave
(p. e. volver a pedir el fichero en caso de que no exista) o finalizar el programa de forma ordenada
en caso de un error fatal (p. e. división por cero).
• Bloque try: en este bloque se incluyen todas las sentencias susceptibles de producir el
error que se quiere tratar. Si este error se produce, la secuencia de ejecución del programa
salta al bloque catch.
• Bloque catch: aquí se define que hacer cuando se ha producido un error en el bloque
anterior. Se pueden incluir tantos bloques catch como sean necesarios, uno para cada
tipo de error que se quiera tratar.
Si en este bloque no se desea tratar el error y se quiere que sea tratado por el método
llamador, se debe “relanzar” la excepción con la sentencia throw. Para poder relanzar
excepciones, estas se deben incluir en la definición del método:
int numero = 0;
try {
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
catch ( NumberFormatException ex ) {
throw ex;
• Bloque finally: este bloque es opcional pero si se incluye, sus sentencias se ejecutan
siempre independientemente de si ha habido error o no, y del tipo del error.
try {
finally {
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
La forma que tiene Java para manejar los flujos de entrada y salida de datos a los programas es
mediante los streams (flujos de datos). Podemos definir un stream como una conexión entre el
programa y la fuente de datos.
P. e. cuando se quiere escribir en un fichero se hace a través de un stream, se utiliza este canal
tanto para leer como para escribir. Este mecanismo se utiliza de manera similar sea cual sea la
fuente de datos: ficheros, sockets, pantalla, teclado,…
Las clases que se utlizan para la entrada de datos están contenidas en el paquete java.io. Estas
clases pueden dividirse en clases para la lectura de datos y clases para la salida de datos, y dentro
de estas, clases que trabajan con bytes y clases que trabajan con caracteres.
La nomenclatura de las clases del paquete java.io está sistematizada, de manera que permite
deducir la función de la clase a partir de su nombre.
La E/S de datos estándar por teclado y pantalla se realiza mediante la clase System que pertence
al paquete java.lang. Esta clase tiene tres objetos principales para manejar la E/S:
• System.in: Objeto de la clase InputStream para recibir datos del dispositivo por
defecto (teclado). Se utiliza el método read().
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
Se puede modificar el dispositivo de entrada y salida por defecto con los métodos setIn(),
setOut() y setErr().
P. e. un editor de textos es un proceso, y cada uno de los documentos que estamos editando sería
un hilo de ejecución.
Figura 4: Un programa con un hilo (A) y un programa con dos hilos (B)
En Java existen dos formas de crear hilos. La primera consiste en crear una clase que herede de la
clase Thread y redefina el método run().
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
super ( str );
objetoThread.start();
La segunda consiste en la definición de una clase que derive de la Interfaz Runnable y que
implemente el método run(); a continuación se crea un objeto de esta clase (objetoRunnable)
y otro objeto de la clase Thread (objetoThread) pasándole al constructor el objetoRunnable.
String nombreThread;
// Constructor
nombreThread = str;
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
objetoThread.start();
El entorno de desarrollo Java (JDK) proporciona una sería de herramientas para facilitar la
creación de aplicaciones. Las herramientas básicas son:
• javac: compila los ficheros fuente (.java) que se le pasan como parámetro. Genera tantos
ficheros en bytecodes (.class) como clases tenga el fichero fuente.
• java: interprete de los ficheros de bytecodes (.class). Ejecuta los ficheros que se le
pasan como parámetro.
• javah: genera ficheros cabeceras en formato C para comunicar aplicaciones en Java con
aplicaciones programadas en C.
• Minimizar el riesgo de aparición de errores al utilizar unas rutinas que han sido
ampliamente probadas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
2.3.1. Spring
Spring fue desarrollado inicialmente por Rod Johnson quien lo liberó en 2.002 junto a la publicación
de su libro Expert One-on-One J2EE Design and Development. Actualmente es desarrollado por
SpringSource.
3. PHP
3.1. Introducción
(2)
PHP (Hipertext Preprocessor) es un lenguaje interpretado de propósito general. Su sintaxis es
similar a C, Java y Perl.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
3.2. Historia
PHP fue creado por Rasmus Lerdorf en 1994 como un conjunto de herramientas para sustituir a los
scripts de Perl que utilizaba Rasmus para su página web personal. En 1995 se lanzó la primera
versión de PHP para el público en general (PHP v2).
En 1997 Zeev Suraski y Andi Gutmans, reescribieron la mayor parte del núcleo de PHP y lanzaron,
junto con Rasmus, la versión 3.
Zeev y Andi fundaron Zend Technologies y continuaron con la mejora del núcleo de PHP para en el
año 2000 lanzar la versión 4.
En 2004 se publica la versión 5 de PHP que ya incluye soporte completo para la programación
orientada a objetos. También se incluyeron características importantes como una capa de
abstracción para el acceso a base de datos (PDO - PHP Data Objects), tratamiento de
excepciones y mejoras en el tratamiento de XML. Esta versión supuso un punto de ruptura con la
versión 4, ya que prácticamente los programas desarrollados con PHP 4 eran incompatibles con la
nueva versión PHP 5. En 2008 se dejó de dar soporte a la versión PHP 4.
El desarrollo de PHP continuó y en 2009 se lanzó la versión 5.3 con importantes características
como los espacios de nombres y funciones anónimas. En 2012 se publicó PHP 5.4, en 2013 la
versión 5.5 y en 2014 PHP 5.6.
El uso principal de PHP es de programación web. Es un lenguaje del lado del servidor (es el
servidor web el que ejecuta el interprete) que puede ser embebido en las páginas HTML de una
web.
Un ejemplo sencillo. El fichero index.php contiene el siguiente código PHP embebido en código
HTML.
<!DOCTYPE html>
<html lang="es">
<head>
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
</head>
<body>
<?php
?>
</body>
</html>
El cliente solicita al servidor a través de Internet la página index.php. El servidor detecta que
esta página debe ser preprocesada antes de enviarla e invoca al intérprete de PHP para que la
procese y genere la página index.html que se devuelve al cliente.
<!DOCTYPE html>
<html lang="es">
<head>
</head>
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
<body>
Hola mundo!
</body>
</html>
Como se puede apreciar en el ejemplo anterior, el código PHP embebido en páginas HTML está
escrito entre los delimitadores <?php y ?>. Estos delimitadores son los más comunes, pero existen
otros:
Los comentarios en PHP son similares a los de C++ o Java. Comentarios de una sola línea (// o
#) y comentarios de más de una línea (/* ... */).
3.3.2. Variables
En PHP no es necesario declarar una variable antes de usarla, se creará simplemente la primera
vez que se asignemos un valor. El nombre de las variables (identificadores) deben cumplir las
siguientes reglas:
Respecto a los tipos de datos, PHP es un lenguaje débilmente tipado, es decir, no controla los
tipos de datos de las variables que se declaran. El tipo de dato de una variable dependerá en cada
momento del valor que tenga asignado.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
Los tipos de datos admitidos en PHP son: entero, flotante o doble, cadena, booleano, array o
conjunto de datos y objeto.
Una particularidad de PHP es que se permite el uso del tipo “variable”. Esto lo veremos mejor con
un ejemplo:
$nombre_variable = ‘num_productos’;
3.3.3. Operadores
Los operadores en PHP son muy similares a los de otros lenguajes de programación. Pueden
clasificarse en los siguientes tipos:
$x = 34;
• Aritméticos: realizan las operaciones habituales de suma (+), resta (-), multiplicación (*),
división (/), resto de la división (%) y exponente (**)
$y = $x * 4;
$x *= 4; // $x = $x * 4;
$y = -$x; // $y = $x * (-1);
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
$b = $x instanceof String;
$x++; // $x = $x + 1;
• Relacionales: Se utilizan para realizar comparaciones entre valores de las variables. Mayor
que (>), mayor o igual que (>=), menor que (<), menor o igual que (<=), igual (==) y distinto
(!=).
En PHP existen dos operadores especiales, de identidad, que además de comparar el valor
verifican que el tipo de dato sea el mismo en los dos elementos.
if ( $x >= 10 ) $y = 20;
• Lógicos: AND (&& o and), OR (|| o or), negación (!) y OR-exclusiva (xor).
$x = 12; $y = $x >> 2; // $y = 3;
Al igual que los aritméticos se pueden usar junto con el operador de asignación.
La siguiente tabla muestra la precedencia de las operaciones en PHP (de mayor a menor). Cuando
dos operadores tienen la misma precedencia, su asociatividad decide como se agrupan. Los
operadores de igual precedencia que no son asociativos no pueden usarse unos junto a otros.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
(3)
Tabla VI: Precedencia de operadores
Asociatividad Operadores
no asociativo clone new
izquierda [
derecha **
derecha ++ -- ~ (int) (float) (string) (array) (object) (bool) @
no asociativo instanceof
derecha !
izquierda */%
izquierda +-.
izquierda << >>
no asociativo < <= > >=
no asociativo == != === !== <> <=>
izquierda &
izquierda ^
izquierda |
izquierda &&
izquierda ||
derecha ??
izquierda ?:
derecha = += -= *= **= /= .= %= &= |= ^= <<= >>=
izquierda and
izquierda xor
izquierda or
Las sentencias en PHP deben terminar con un punto y coma (;) y se permite tener varias
sentencias en la misma línea. En este aspecto es igual que en C++ o Java.
Al igual que en otros lenguajes de programación, las sentencias de control permiten modificar el
flujo lineal de los programas. Se clasifican en dos tipos: bifurcaciones y bucles.
3.3.4.1. Bifurcaciones
En función del valor de una expresión lógica o relacional se ejecuta un flujo de sentencias u otro.
if ( expresión ) {
sentencias_A;
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
else {
sentencias_B;
// Anidamiento
if ( expresión_1) {
if ( expresión_2 ) {
...
// Concatenación
if ( expresión_1 ) {
...
elseif ( expresión_2 ) {
...
else {
...
Cuando el código PHP se ejecuta embebido en una página HTML, existe una sintaxis
alternativa:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
<?php
if( condicion ) :
?>
<?php
endif;
?>
• switch: Es una variante de la bifurcación if ... else if ... else cuando se utiliza
la misma expresión y se compara con distintos valores.
switch ( expresión ) {
default: sentencias_D;
Cada sentencia case debe corresponderse con un valor concreto, no se puede comparar
con rangos ni expresiones relacionales.
Si la expresión no coincide con ningún valor y existe la sentencia default, se ejecutan las
instrucciones correspondientes (en este ejemplo sentencias_D), si no existe, no se
ejecuta ninguna instrucción.
La sentencia break hace que se salga del bloque switch. Si no existe para alguna de las
sentencias case la ejecución continúa con las sentencias del siguiente bloque case.
3.3.4.2. Bucles
• while: Las sentencias del bloque se ejecutan mientras la expresión se evalúe a verdadero.
while ( expresión ) {
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
sentencias;
Cuando el código PHP se ejecuta embebido en una página HTML, existe una sintaxis
alternativa:
• do … while: se asegura que las sentencias del bucle se ejecutan al menos una vez.
do {
sentencias;
} while ( expresión );
• for: En un bucle for, se indica el número de iteraciones que las sentencias deben
ejecutarse.
sentencias;
Cuando el código PHP se ejecuta embebido en una página HTML, existe una sintaxis
alternativa:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
• foreach: Es una implementación especial de los bucles for que nos permite iterar de forma
sencilla sobre los elementos de un array.
sentencias;
Existe una sintaxis alternativa que nos permite recuperar tanto el valor del elemento del
array como el índice.
sentencias;
En los bucles también se puede utilizar la sentencia break para salir de ellos. También se puede
utilizar la sentencia continue para interrumpir la ejecución de una iteración, volver a evaluar la
expresión y si corresponde, ejecutar las sentencias.
3.3.5. Arrays
Los arrays son tipos de datos que permiten, bajo un mismo nombre de identificador, almacenar un
conjunto de valores. Al igual que el resto de variables, en PHP no es necesario declarar un array
antes de empezar a utilizarlo, tampoco es necesario reservar memoria para el mismo.
(4)
Una característica particular de PHP es que existen dos formas de indexar los arrays:
• Indexación numérica: se accede a los elementos del array por medio de un índice
numérico. El índice empieza en el valor 0.
• Indexación asociativa: la clave para acceder a los elementos del array es una cadena
alfanumérica.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
);
Para recorrer los elemento de un array podemos utilizar las sentencias for y foreach (este es el
único que se puede aplicar a los arrays asociativos).
Una de las funcionalidades que nos proporciona PHP es que incorpora una variada selección de
funciones de ordenación de arrays:
Operador Función
$a + $b Unión de los arrays $a y $b
$a == $b Devuelve true si $a y $b tienen los mismos elementos
$a === $b Devuelve true si $a y $b tienen los mismos elementos y
en el mismo orden
$a != $b ó Devuelve true si $a y $b no tienen los mismos elementos
a <> $b
$a !== $b Devuelve true si $a y $b tienen los mismos elementos o
no están en el mismo orden
Como en otros lenguajes como C, las funciones en PHP encapsulan una porción de código que
puede ser ejecutado desde cualquier parte del programa donde se invoque la función.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
Para definir una función se escribe la sentencia function seguida del nombre de la función y la lista
de parámetros entre paréntesis y el código entre llaves. Hay que señalar que PHP no distingue
entre mayúsculas y minúsculas cuando se trata del nombre de funciones. Tampoco se permite
sobrecargar el nombre de una función ni que estos empiecen por un número.
Para invocar a una función, simplemente hay que escribir su nombre seguido de los parámetros
entre paréntesis.
return ( $a + $b );
PHP permite que se definan funciones con un número variable de parámetros, los obligatorios
siempre se definen los primeros y los optativos tienen un valor predeterminado.
Los parámetros se pueden pasar por valor o por referencia. Si se pasan por valor, se hace una
copia del parámetro de tal manera que si se modifica su valor dentro de la función no se ve
alterado el valor original que tuviera antes de llamarla. Si pasamos los parámetros por referencia,
en realidad se está pasando un puntero a la variable, de tal manera que si se modifica el valor
dentro de la función también se modifica el valor original.
// Por valor
$a = 1;
incrementa ($a);
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
echo $a; // 1
// Por referencia
$a = 1;
incrementa ($a);
echo $a; // 2
Es posible reutilizar código de un script desarrollado en un fichero en otro diferente. PHP incorpora
sentencias similares a #include de C++:
Desde PHP 5 se incluye soporte completo para la programación orientada a objetos. Al igual que
en otros lenguajes que soportan la POO, PHP implementa las características principales de la
POO:
• Encapsulación: los atributos y/o métodos de los objetos pueden estar ocultos
(encapsulados) y no ser accesibles desde el exterior del objeto.
• Herencia: una clase puede ser definida a partir de otra, de manera que “herede” todos (o
algunos) de sus atributos y métodos.
Al igual que en otros lenguajes, en PHP una clase es la definición de un tipo de dato donde se
agrupan tanto los atributos (propiedades) que lo definen como los métodos (comportamiento).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
<?php
class NombreDeClase {
...
?>
Un objeto es una instancia concreta de una clase, una variable del tipo de dato “clase”.
<?php
interface NombreDeInterface {
...
?>
3.3.7.2. Atributos
Los atributos son las propiedades de las clases, sus variables miembro. Cada objeto de la clase
tiene su propia copia de todos los atributos.
Al igual que en otros lenguajes, los atributos pueden definirse con los modificadores public,
private y protected para restringir su nivel de acceso. En la siguiente tabla se especifican los
tipos de acceso.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
<?php
class Persona {
public $nombre;
protected $edad;
private $sexo;
...
?>
Las clases pueden tener variables propias de clase que son globales a todos los objetos de esa
clase, se definen con el modificador static (por ejemplo un contador de objetos de dicha clase).
También se pueden definir constantes globales para la clase con el modificador const. El acceso
a estas variable y constantes se realiza con el operador dos puntos-dos puntos (::).
<?php
class Persona {
static $totalPersonas;
public $nombre;
protected $edad;
private $sexo;
...
?>
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
3.3.7.3. Métodos
Los métodos son funciones que definen el comportamiento de los objetos de una clase, actúan
sobre los atributos. Se aplican siempre sobre el objeto que invoca a la función mediante el
operador flecha (->). El propio objeto es un argumento implícito y se accede a sus atributos y
métodos mediante la variable $this.
<?php
class Persona {
protected $nombre;
protected $edad;
function esMayorDeEdad() {
if ( $this->edad >= 18 )
return true;
else
return false;
if ( $p1->esMayorDeEdad() )
else
?>
PHP, permite que las subclases redefinan los métodos heredados, es decir, que el método tendrá
el mismo nombre y parámetros que el de la superclase pero distinta funcionalidad. Esta
funcionalidad puede evitarse con el modificador final, esto impide que la subclase redefina un
método.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
Al igual que otros lenguajes, también se permite la sobrecarga de métodos, pero en PHP esto es
algo mas complicado que en otros lenguajes. Se implementa mediante el método “mágico”
__call(). Este método se ejecuta automáticamente cuando se invoca a un método que no existe
o no es accesible, como parámetro recibe el nombre del método invocado y un vector con los
parámetros con lo que se ha llamado a ese método. Mediante este método mágico, se puede
implementar la sobrecarga de métodos:
<?php
class Calculadora {
protected $resultado;
switch ($fName) {
case ‘suma’:
if (count($fArgs)===1) {
$this->resultado = $fArgs[0];
else {
$this->resultado = 0;
foreach($fArgs as $arg) {
$this->resultado += $arg;
return $this->resultado;
break;
default:
break;
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
$c = new Calculadora();
echo $c->suma(4); // 4
echo $c->suma(4,3); // 7
echo $c->suma(4,3,5); // 12
?>
Los métodos “mágicos” son aquellos que son llamados automáticamente por PHP ante
determinadas situaciones. En las clases, los métodos mágicos que se pueden implementar son:
3.3.7.4. Herencia
Esta es una de las características principales de la POO ya que permite la reutilización de código.
Para ello unas clases pueden ser extensiones de otras. La clase extendida (derivada o subclase)
conserva todos los atributos y métodos de la clase base (superclase). Las subclases pueden
añadir nuevos atributos y métodos, pero no es posible disminuir una clase, es decir, eliminar la
definición de cualquier atributo o método de la superclase.
Al igual que Java, en PHP se permite implementar varios niveles de herencia (jerarquía), pero no
permite la herencia múltiple.
3.3.7.5. Interfaces
Al igual que en otros lenguajes, una interface es un conjunto de declaraciones de métodos sin
su implementación, y, en su caso, también la definición de constantes. Todas las clases que
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
hereden una determinada interface están obligadas a implementar los métodos definidos en la
misma. Una clase puede implementar (heredar) varias interfaces.
3.3.8. Excepciones
Como ya hemos visto en este texto, una excepción puede definirse como un funcionamiento no
esperado durante la ejecución de un programa que nos permite recuperarnos en caso de un error
no grave (p. e. volver a pedir el fichero en caso de que no exista) o finalizar el programa de forma
ordenada en caso de un error fatal (p. e. división por cero).
La gestión de los errores mediante excepciones fue una de las principales novedades que se
introdujo en PHP 5.
Al igual que otros lenguajes que implementan el manejo de errores con excepciones, PHP
incorpora la clase Exception y los bloques try, catch y finally (sólo a partir de PHP 5.5).
3.4.1. Codeigniter
• Patrones: implementa el patrón MVC pero no de manera estricta ya que permite que las
aplicaciones funcionen únicamente con el controlador y la vista.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
• URL amigables: proporciona una serie de librerías para permitir "urls amigables".
• Gestión de sesiones: reemplaza las sesiones nativas de PHP para proporcionar nuevas
funcionalidades
3.4.2. Symfony
Symfony está desarrollado por SensioLabs y programado íntegramente en PHP 5.3. Implementa el
modelo MVC y soporta la mayoría de gestores de bases de datos (Oracle, MySQL, PostgreSQL y
SQL Server). Su primera versión se lanzó en 2.007
Características:
• Independiente del gestor de BBDD: Incorpora una capa de abstracción de acceso a base
de datos que permite cambiar con facilidad de SGBD en cualquier fase del proyecto.
• Patrones: implementa un patrón propio de MVC con las variantes del uso de una capa de
abstracción a base de datos, el controlador frontal y las acciones. También implementa las
características de la POO como los espacios de nombres (por lo que es obligatorio el uso
de PHP 5.3).
• Línea de comandos: incluye herramientas por línea de comandos que facilitan generación
de código, lo cual contribuye a ahorrar tiempo de trabajo.
• Plantillas: incorpora el uso de plantillas a la capa Vista para facilitar el trabajo a los
diseñadores.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tecnologías para el desarrollo de aplicaciones. MS.NET, JAVA y PHP
3.4.3. Laravel
Principales características:
• Seguridad: incorpora filtros para XSS y otras medidas de seguridad. También incluye
seguridad openSSL y cifrado AES-256-CBC.
Referencias
En septiembre de 2.016
(3) Se puede definir como indexación la forma de acceder a cada uno de los valores del array.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Campos Serna
Referencias bibliográficas
MS.NET
Evjen, B., Hollis, B., Lhotka, R. y otros. (2004). Professional VB.NET 2003. Wrox Press.
Java
Morelli, R., Walde, R. (2012). Java, Java, Java Object-Oriented Problem Solving. Trinity College.
Richardson, W., Avondolio, D., Schrager, S., Mitchell, M. y Scanlon, J. (2007). Professional Java.
Wrox Press.
PHP
Boronczyk, T., Naramore, E., Gerner, J. y otros. (2009). Desarrollo web con PHP 6, Apache y
MySQL. Anaya Multimedia.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 30. Herramientas de generación de código
gvNIX y gvHIDRA
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
gvHidra son las iniciales de Generalitat Valenciana: Herramienta Integral de Desarrollo Rápido de
Aplicaciones.
Si hay que dar una explicación rápida de qué es este proyecto, podemos decir que se trata de un
entorno de trabajo (framework) para el desarrollo de aplicaciones de gestión en entornos web con
PHP siguiendo una guía de estilo (una guía para unificar los criterios de aspecto y usabilidad en el
proceso de desarrollo de aplicaciones).
Evidentemente, esto no responde de forma plena a la pregunta que da título a este punto. Por ello,
vamos a explicar las motivaciones que llevaron a su creación y las características más importantes
que cubre.
• Patrones de interfaz.
Una de las tareas más costosas es en la definición de la interfaz con el usuario. Para facilitar el
trabajo, se han definido una serie de patrones de básicos. Estos patrones definen la forma de
representación de la información (formato tabular, registro,…) y la forma con la que
interacciona el usuario con dicha información. Esto nos lleva a que con la selección de un
patrón obtenemos el diseño global de la ventana.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
• Componentes complejos.
La experiencia acumulada nos dice que todas las aplicaciones necesitan de una serie de
componentes “complejos”. Ventanas de selección (en PowerBuilder listas de valores), listas
enlazadas, acciones de interfaz (en WEB tec. AJAX), mensajes de información,… El framework
genera estos componentes simplificando su utilización en las aplicaciones.
Al igual que con los componentes, hemos advertido que cierta problemática se repite en todas
las aplicaciones que desarrollamos. Por esa razón, la hemos generalizado y resuelto en el
framework, siendo incorporada a las aplicaciones de forma transparente. Algunos ejemplos
son:
CRUD: el framework genera las sentencias SQL necesarias para Crear, Leer,
Actualizar y Borrar un registro.
A través del proyecto PEAR::MDB2, el framework permite trabajar con diversos SGBD.
Además, incorpora un capa de intermedia propia del framework que nos permite
independizarnos de las diferentes interpretaciones del SQL que hace cada gestor (definición de
límites, transacciones,…).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
• Listados e informes.
Uno de los mayores retos que hemos encontrado en el ámbito del proyecto fue generar
informes de forma tan versátil como los datawindows de PowerBuilder. Gracias al proyecto
jasperreports lo hemos conseguido. Apoyados por herramientas como el iReport, conseguimos
listados e informes muy completos y en diferentes formatos.
• Arquitectura MVC.
• Control de la vista.
• Custom y temas.
• Testing.
Incorpora la herramienta PHPUnit para que se puedan realizar testeos sobre el código
generado. También se incorporan consejos y reglas para poder realizar test automáticos con
Selenium.
Como buen proyecto opensource, el proyecto siguen en constante evolución incorporando nuevas
funcionalidades que nos permitan, ante todo, ser más productivos.
1.2. Arquitectura
En este capítulo vamos a ver algunos conceptos teóricos que son necesarios para entender cómo
funciona este framework.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
1. Core: es la capa propia de los ficheros del framework. Está ubicada en el directorio igep y
contiene ficheros de configuración propios del proyecto.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
Resumiendo, debemos tener en cuenta que hay varios niveles dentro de la arquitectura de una
aplicación gvHIDRA y que en aras de la reutilización, conviene definir un custom propio de la
organización en la que nos encontramos.
1.2.2. Configuración
• carga estática: esta fase carga los parámetros que estén ubicados en el fichero de
configuración gvHidraConfig.inc.xml . Tenemos un fichero de este tipo en cada una de las
capas, se cargarán en este orden:
• carga dinámica: esta fase, se realiza una vez acabada la anterior, con lo que machacará
las configuraciones que se hayan realizado. Puede ser muy útil para fijar configuraciones
de forma dinámica (dependiendo del entorno de trabajo), pero es peligroso, ya que puede
ser difícil depurar un error. Los ficheros por capa se ejecutarán en el siguiente orden:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
• Contenedor (2).
Donde se ubicará el formulario con los datos y campos con los que trabajaremos.
En esta zona irán apareciendo pestañas con las que podremos cambiar el modo de trabajo
(búsqueda, listado, registro,...).
La forma de trabajar con las ventanas gvHidra se ha clasificado por modos de trabajo. Definiendo
modo de trabajo como la forma de representación de la información con la que vamos a trabajar.
Estos modos de trabajo se verán reflejados tanto en la zona Contenedor (2) del panel como en la
de Contenedor de pestañas (4), la pestaña nos indicará el modo activo.
Los modos que tenemos son tres que se corresponden con las pestañas:
1. Búsqueda o filtro.
2. Tabular o listado.
3. Registro o edición.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
Con esto nos referimos al flujo de trabajo. En este caso partimos de una búsqueda y el resultado
se muestra en una tabla o ficha, donde los datos ya son accesibles y se podrá operar sobre ellos.
En este caso es una combinación de los dos anteriores. Se parte de un panel de búsqueda. El
resultado de dicha búsqueda se mostrará en un panel tabular, con la peculiaridad de que en este
caso solamente se podrá efectuar el borrado de las tuplas que se seleccionen. Para inserción o
modificación se pasa a un panel modo ficha.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
Acciones y operaciones son dos conceptos fundamentales que hay que conocer para desarrollar
con el framework.
Una acción es el proceso que se inicia tras la solicitud de un usuario (un estímulo de la IU). Las
acciones están divididas en dos grupos:
Las operaciones son métodos internos del framework que serán llamados para cumplir lo que cada
acción requiere. Algunas de estas operaciones son públicas por lo tanto el programador podrá
invocarlas desde las acciones particulares. El programador podrá modificar el comportamiento de
por defecto de la operación sobreescribiendo con una serie de métodos abstractos (virtuales).
La siguiente imagen ilustra cómo se produce la comunicación entre las diferentes capas desde que
un estímulo es recibido en la interfaz hasta que se resuelve. Podemos ver claramente la diferencia
esencial entre acciones y operaciones.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
Vamos a explicar un poco más en profundidad cada una de las acciones genéricas. Explicando
tanto el objetivo global de la acción, los posibles retornos que produce, las operaciones que los
componen y los métodos virtuales de cada una de estas operaciones.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
• -1: Ha habido un problema, el framework lanza un error si es problema interno de él, en cambio,
si es un problema particular de la aplicación, se ha de capturar el error y lanzar un mensaje propio
(instrucción: $this->showMessage('xxx');) No se recargará la ventana. En este caso el
actionForward se corresponde con la acción gvHidraError.
• actionForward: Acción de retorno programada por el desarrollador para saltarse la ejecución de
por defecto, provoca una recarga de la ventana. Común a todas las acciones genéricas salvo a la
de Recargar, esta acción no contempla una acción de retorno particular
1. Iniciar ventana.
• initWindow: Genera todas las listas definidas para el panel y las carga en el objeto
v_datosPreinsertar. Almacena el valor del módulo actual por si es la primera vez que se
entra en una pantalla de dicho módulo. Su comportamiento se puede sobrecargar con el
método virtual preIniciarVentana.
2. Buscar.
Realiza la consulta del panel basándose en los datos que hay en el panel filtro.
• buildQuery: Método privado que recoge los datos del panel filtro y los añade al WHERE de
la consulta del panel. Su comportamiento se puede sobrecargar con en el método virtual
preBuscar.
preBuscar: Método que permite realizar cualquier acción antes de que se realice la
consulta.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
3. Editar.
Esta acción genérica se ejecuta cuando estamos trabajando con tres modos. Como su propio
nombre indica realiza la consulta de edición a partir de los datos seleccionados en el panel
tabular.
• buildQueryEdit: Método privado que recoge los datos del panel tabular con los que formará
la WHERE de la consulta que nos devolverá los datos que se podrán editar. Su
comportamiento se puede sobrecargar con el método virtual preEditar.
preEditar: Método que permite realizar cualquier acción antes de que se realice la consulta
de edición.
• refreshEdit: Método público que se encarga de realizar la consulta que se ha generado con
el método anterior, así obtener los datos actualizados. Es importante saber, también, que
este método puede ser llamado en cualquier momento para refrescar los datos de un
panel, por ejemplo, después de una acción particular. Su comportamiento se puede
sobrecargar con el método virtual postEditar.
En el caso de que no se haya seleccionado ninguna tupla para editar, aparecerá un mensaje
por defecto informándonos de la situación. Para poder sobrecargar este comportamiento existe
un actionForward con la acción gvHidraNoData con el que podremos hacerlo.
4. Recargar.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
preRecargar: Método que permite realizar cualquier acción antes de efectuar la consulta
del detalle.
Hay que recordar que los métodos virtuales de esta acción no tienen como retorno un
actionForward programado por el desarrollador.
5. Modificar.
Esta acción genérica se ejecuta desde el modo de trabajo edición, cuando, tras haber editado
unas tuplas, se pulsa el botón guardar.
• updateSelected: Método privado que recoge los datos de pantalla y actualiza en la BD los
datos modificados. Su comportamiento se puede sobrecargar con el método virtual
preModificar.
preModificar: Método que permite realizar cualquier acción antes de que se lleve a cabo la
modificación.
• refreshEdit: Método público que se encarga de actualizar los datos visualizados en el modo
de trabajo edición. Su comportamiento se puede sobrecargar con el método virtual
postModificar.
postModificar: Método que permite utilizar los datos modificados en otras operaciones.
La acción modificar por defecto deja el foco en el modo edición, este comportamiento se puede
cambiar. El cambio se realiza en el fichero mappings.php, en la entrada correspondiente a
modificar, en la acción gvHidraSuccess, cambiar en la url el panel destino (p. ej. panel=listado)
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
6. Borrar
Esta acción genérica se dispara “típicamente” desde el modo de trabajo tabular para eliminar
las tuplas seleccionadas.
• deleteSelected: Recoge las tuplas seleccionadas del panel y las elimina. Esta operación se
puede parametrizar haciendo uso de los métodos virtuales preBorrar y postBorrar.
preBorrar: Método que permite realizar cualquier acción antes de que se lleve a cabo el
borrado.
postBorrar: Método que permite modificar los resultados obtenidos después del borrado.
7. Insertar
Esta acción genérica se dispara desde el modo de trabajo inserción cuando, tras haber
introducido los datos, se pulsa el botón guardar.
• insertData: Recoge los datos de la pantalla y los inserta en la BD. Esta operación se puede
parametrizar haciendo uso de los métodos virtuales preInsertar y postInsertar.
preInsertar: Método que permite realizar cualquier acción antes de que se lleve a cabo la
inserción.
postInsertar: Método que permite utilizar los datos modificados en otras operaciones.
8. Nuevo
Esta acción genérica se invoca para preparar la presentación de datos en pantalla antes de
una inserción.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
preNuevo: Método que permite sobrecargar la acción nuevo antes de ser lanzada. Por
ejemplo, cuando tenemos algún campo que tiene un valor por defecto o es calculado a
partir de los valores de otros campos.
gvHIDRA, aparte de proporcionar un core (igep) en el que se encuentran todas las funcionalidades
extensibles del framework, proporciona una estructura inicial de proyecto. Para empezar cualquier
aplicación con la herramienta, debemos bajar la plantilla inicial de proyecto correspondiente a la
versión con la que vamos a trabajar. Esta plantilla se encuentra en el paquete de la propia versión
en la ubicación plantilla-gvHidra.zip. Antes de descomprimir hay que advertir que los ficheros están
codificados en ISO-8859-1 o ISO-8859-15, por lo que hay que tener precaución con usar algún
editor que respete estas codificaciones.
A esta estructura tenemos que añadirle el core del framework correspondiente (directorio igep) que
también se distribuye con la versión de gvHIDRA.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
Una de las características importantes que tenemos en PHP es la gran cantidad de distintos tipos
de bases de datos soportados. Cada una de ellas requiere de una extensión que define su propia
API para realizar la misma tarea, desde establecer una conexión hasta usar sentencias preparadas
o control de errores. Cambiar las llamadas a la API cuando cambiamos de BD en una aplicación es
costoso pero se puede hacer, aunque en el caso de un framework no es factible porque tiene que
funcionar el mismo código con varias BD.
Lo que se suele hacer es añadir una capa de abstracción que nos permita operar de la misma
manera con todos los tipos de BD (al menos para las operaciones más habituales o las más
estandarizadas). En el caso de gvHIDRA se utiliza la librería MDB2 de PEAR
(http://pear.php.net/package/MDB2/), una de las más usadas para este fin gracias a su amplia
funcionalidad y a la actividad del proyecto. De esta forma podemos usar una BD sin preocuparnos
por el tipo, ya que tenemos una API única.
Sin embargo, a pesar de usar la capa de abstracción, sigue habiendo aspectos que dependen del
tipo de BD: uso de características especiales (secuencias, limit, bloqueos,...), manejo de
transacciones, representación de fechas y números,... Para resolver estos problemas, definimos en
el framework otra capa de abstracción (que se implementa en unas clases que se ven en el
apartado siguiente) y las funciones más importantes que realizan son:
• Definición del formato de fechas y números que se va a usar para comunicarse con el
gestor de BD. Este formato es transparente para el programador, ya que es el framework el
que hace las conversiones necesarias cuando enviamos/recogemos información a/de la
BD. Normalmente nos referiremos a éste como formato de BD.
• Inicialización de la conexión: son operaciones que se hacen cada vez que se hace una
nueva conexión. Por ejemplo se fija la codificación que se va a usar en la comunicación
(actualmente LATIN1 o ISO-8859-1, que es la usada en el framework), o se modifican
parámetros de la conexión para establecer el formato de BD.
• Ajustes por sintaxis: aquí se incluyen una serie de métodos para obtener la sintaxis de
ciertas operaciones que se pueden comportar de forma distinta en cada BD. Por ejemplo la
clausula limit (para paginar resultados de consultas), función para concatenar cadenas, uso
de secuencias,...
• Unificar tratamiento de errores: por ejemplo, cuando hay un registro bloqueado, poderlo
detectar independientemente de la BD.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
1.7. Seguridad
gvHIDRA permite integrar las aplicaciones con diferentes sistemas de autentificación e, incluso,
permite crear uno específico para nuestra aplicación. Internamente utiliza PEAR::Auth
[http://pear.php.net/manual/en/package.authentication.auth.php], por lo que en algunos puntos es
conveniente ver su documentación.
A partir de la versión de gvHidra 4.1 se ha integrado el proyecto PEAR Auth dentro del núcleo por
lo que ya no se necesitará tener instalado en nuestro servidor el paquete Auth. Para comprender el
funcionamiento, conviene distinguir dos partes:
1. Autentificación: validar que el usuario es quien dice ser. El framework proporciona para tal
efecto un formulario para introducir las credenciales y unos métodos para la comprobación
de su validez.
1.7.2. Módulos
Los módulos representan permisos que un usuario tiene en una aplicación determinada. Los
módulos se asignan cuando se lleva a cabo una asociación entre un usuario y una aplicación, y se
cargan en el inicio de la aplicación. Cada módulo tiene un código, una descripción y opcionalmente
puede tener un valor.
Cada usuario puede tener asignado uno o varios módulos, y para cada uno puede modificar su
valor. Algunos usos habituales de módulos son el controlar si un usuario puede acceder a una
opción de menú, o si puede ver/editar un campo determinado de una pantalla, o para guardar
alguna información necesaria para la aplicación (departamento del usuario, año de la
contabilidad,...). También suelen usarse para definir variables globales para todos los usuarios,
aunque en este caso es recomendable asignarlos a roles (ver apartado siguiente).
Ejemplo:
Todos los usuarios que consulten la aplicación PRESUPUESTARIO deben tener el módulo
M_CONSUL_PRESUPUESTARIO, es decir, nadie que no tenga ese módulo asociado podrá
acceder al apartado de listados de la aplicación.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
Sólo técnicos y el jefe de la oficina presupuestaria tendrán acceso a la entrada de menú "control de
crédito". Pues serán aquellos usuarios que tengan el módulo M_MANT_PRESUPUESTARIO, con
el valor TECNICO o el valor JEFE.
Usuarios:
Módulos:
Nombre: M_CONSUL_PRESUPUESTARIO
Nombre: M_MANT_PRESUPUESTARIO
1.7.3. Roles
Los roles representan el papel que el usuario desempeña en una aplicación y a diferencia de los
módulos, cada usuario sólo puede tener uno y no tienen valor. ¿Entonces para qué queremos los
roles si podemos hacer lo mismo usando módulos sin valor? Podemos ver los módulos como los
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
permisos básicos, y los roles como agrupaciones de módulos. Realmente los roles se utilizan para
facilitar la gestión de usuarios.
Si sólo usamos módulos, y por ejemplo tuviéramos 30 módulos, sería muy difícil clasificar a los
usuarios, ya que seguramente cada uno tendría una combinación distinta de módulos. Y cada vez
que hubiera que dar de alta un usuario tendríamos que tener un criterio claro para saber cuáles de
los módulos asignar. Con roles es más simple, ya que es sencillo ver los permisos de cualquier
usuario (viendo el role suele ser suficiente), y para añadir nuevos usuarios normalmente solo
necesitaremos saber su role. Para que esto sea fácil de gestionar, tendríamos que tener algún
mecanismo que nos permitiera asignar módulos a roles, y que los usuarios con un role "heredaran"
estos módulos. Lo más flexible seria tener esta información en tablas aunque también se podría
empezar haciéndolo directamente en PHP. De esta forma, añadir un nuevo usuario de tipo
administrador consistiría simplemente en indicar su role, en vez de tener que asignarle los N
módulos que tienen los administradores.
La solución más flexible seria usar sólo módulos para controlar cualquier característica que pueda
ser configurable por usuario, y asignar los módulos a los roles de forma centralizada (bien en base
de datos o en el inicio de la aplicación). De esta forma el programador solo tendría que tratar con
los módulos, y el analista con los módulos de cada role.
roles:
En este caso las dos soluciones tienen una complejidad similar, aunque las diferencias serán más
evidentes conforme aumenten el número de módulos y usuarios. Si por ejemplo decidiéramos que
ahora todos los técnicos han de tener un nuevo módulo X, sin usar roles tendríamos que añadir
ese módulo a todos los usuarios que tuvieran el módulo M_MANT_PRESUPUESTARIO con valor
PERFIL_TECNICO; usando roles seria simplemente añadir el módulo X al role PERFIL_TECNICO.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
2. gvNIX
gvNIX es un entorno de trabajo Java de código abierto para el desarrollo rápido de aplicaciones
web altamente productivo, flexible y que no compromete la calidad de los proyectos.
gvNIX trabaja sobre la herramienta de desarrollo Spring Roo ampliando sus funcionalidades
básicas con componentes de alto nivel funcional.
gvNIX está disponible dentro del proyecto de Migración a Software de fuentes abiertas gvPONTIS.
gvNIX es un entorno de trabajo Java de código abierto para el desarrollo rápido de aplicaciones
web sobre tecnología Spring. Sus funcionalidades hacen que sea un entorno altamente productivo,
flexible y que no compromete la calidad de los proyectos.
Está compuesto por una serie de herramientas de código abierto distribuidas en forma de "Spring
Roo Add-On Suite" a través de un repositorio OSGi R5. Esto le proporciona un amplio apoyo por
parte de importantes organizaciones como Spring y Pivotal. Añade funcionalidades de alto nivel a
las prestaciones que ya se obtienen con Spring Roo para mejorar la productividad.
Spring Roo es un entorno de trabajo Java que permite el desarrollo de aplicaciones web de forma
rápida y cómoda para el desarrollador. Sus principales características son:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
Los "Roo Add-On Suites" son la mejor manera de empaquetar y distribuir conjuntos de Add-Ons
para que puedan ser instalados en distribuciones de Spring Roo de forma rápida y sencilla.
Están basados en subsistemas de OSGi R5, los cuales permiten instalar un conjunto de
componentes sobre la distribución de Spring Roo sin comprometer su modularidad.
Por todo lo anterior, decimos que gvNIX es un "Spring Roo Add-On Suite" que puede ser instalado
en distribuciones de Spring Roo para ampliar sus funcionalidades básicas.
gvNIX aprovecha las características de Spring Roo y aporta su propia filosofía, ofrecer al
desarrollador componentes de alto valor funcional para aplicaciones corporativas:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
En este capítulo se explicará brevemente como generaremos una aplicación sencilla paso a paso
de forma rápida para que puedas ver y entender cómo se trabaja con la herramienta de desarrollo
gvNIX en un proyecto básico.
Los detalles sobre la generación del código y la explicación de cada uno de los comandos
ejecutados, se detallan en el manual donde podrás consultarlo.
En la guía se podrá aprender cómo crear una aplicación desde cero utilizando la herramienta de
desarrollo gvNIX sobre el IDE STS.
Las principales características de gvNIX tanto en la guía, aquí las enumeramos, son las siguientes:
• Creación de un proyecto.
• Configuración de persistencia.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
• Patrones de Pantalla.
• Componente Lupa.
La aplicación que se va a generar está basada en la aplicación de ejemplo Petclinic de Spring. Los
usuarios de esta aplicación son empleados de una clínica veterinaria, que a lo largo de su jornada
laboral, necesitan gestionar información sobre veterinarios, clientes y sus mascotas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
Para sacar el máximo partido a las funcionalidades de gvNIX y Spring Roo, es recomendable que
las aplicaciones se generen siguiendo la filosofía del diseño guiado por el dominio.
Hay que tener en cuenta que la aplicación que se va a generar no será una aplicación real, ya que
normalmente necesitaría una serie de trabajos adicionales para personalizar la capa web,
implementar lógica de negocio, etc.
Los pasos siguientes los dejamos para una práctica in situ para la creación de un proyecto
mediante el framework y haciendo uso de la guía publicada en Internet.
Este Add-on instala un nuevo sistema de gestión del menú web de la aplicación sobre la que se
está trabajando para facilitar la organización de su estructura de páginas y grupos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
• El modelo de datos del menú no está ubicado en la misma página que lo visualiza como
ocurre en el modelo de menú que se proporciona por defecto. El modelo del menú estará
definido en un archivo XML independiente.
• Soporte para crear elementos jerarquizados con múltiples niveles. Permite añadir, mover y
anidar en varios niveles los elementos del menú.
• Permite añadir, quitar, mover, actualizar, definir permisos, ocultar, definir enlaces, etc. para
cada uno de los elementos del menú desde la consola del framework.
• Si está instalado el sistema de seguridad, se puede establecer que ciertos elementos del
menú no sean visibles si el usuario no está entre los roles permitidos para ello.
• Aunque el sistema de gestión del menú es distinto al que se proporciona por defecto, este
nuevo sistema también gestiona las peticiones de generación de elementos del menú
realizadas por el resto de comandos. Es decir, si se encuentra instalada la nueva gestión
del menú y cualquier otro comando solicita crear o actualizar un elemento del menú, la
solicitud se realizará correctamente utilizando el nuevo sistema de gestión.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
• Para poder utilizar estas funcionalidades hay que ejecutar previamente el comando 'jpa
gvnix setup'.
Uso del componente Java Melody como sistema de monitorización para aplicaciones web.
Este Add-on genera una nueva página desde donde podemos ver lo que consume la generación y
ejecución de vistas, consultas, scripts y demás elementos que se generan y componen nuestra
aplicación web.
Para instalarlo, hay que utilizar el comando monitoring setup, el cual instalará todo lo necesario
para el funcionamiento básico de la monitorización de nuestra aplicación. Se encargará de las
dependencias y de modificar los ficheros de configuración necesarios para el funcionamiento de la
monitorizacion de JSP, SQL, consultas, etc.
Para monitorizar a través de las llamadas de Spring, tendremos que configurar que métodos
deseamos monitorizar. Para ello utilizaremos alguno de los siguientes comandos, siempre después
de haber instalado el add-on: monitoring all, monitoring add class, monitoring add method o
monitoring add package. Al ejecutar estos comandos se añadirán anotaciones que nos permitirán
acceder a las llamadas que se ejecuten a los métodos monitorizados y ver sus interacciones.
Una vez todo configurado y con nuestra aplicación en marcha, bastará pulsar en la entrada de
menú que se ha generado para su acceso. En caso de haberla desactivado, bastará con acceder a
la dirección principal de nuestra aplicación, seguida de "/monitoring".
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
Este add-on permite configurar el proyecto gvNIX con la estructura HTML necesaria para
implementar Bootstrap 3. Además, incluye todos los recursos necesarios para modificar la
apariencia de la aplicación por una por defecto basada en Bootstrap 3.
Para instalarlo, hay que utilizar el comando web mvc bootstrap setup, el cual solo estará disponible
después de instalar el add-on JQuery en nuestro proyecto. Este comando detectará de forma
automática, aquellos addons que ya hayan sido instalados y modificará sus componentes para una
correcta visualización utilizando Bootstrap. Además, los addons que se instalen después de
instalar Bootstrap tendrán apariencia Bootstrap por defecto.
Para actualizar los componentes instalados de Bootstrap basta con ejecutar web mvc bootstrap
update, el cual solo estará disponible después de haber instalado Bootstrap.
Para ver con más detalle el comando que proporciona el add-on, consultar la sección de comandos
del add-on Bootstrap.
Este Add-on reemplaza el widget de lista de las vistas de las entidades para usar el plugin de
jQuery dataTables. Para ello, se usa una adaptación de la librería de tag JSP Dandelion-
DataTables que se integra y adapta a la generación de vistas de Spring Roo.
Las opciones de este add-on no son compatibles con el add-on Web Screen Patterns.
La tabla permite al usuario final ordenar los datos, por una o más columnas, y en el sentido
que el desee. Las columnas disponibles para la ordenación y su sentido son configurables
en la página.
Soporta filtrar los datos mostrados por columna, además de hacer búsquedas de texto
sobre los resultados de los filtros. La configuración de que filtros están disponibles para el
usuario se pueden configurar en la página. Además, estos filtros por columna disponen de
un asistente para realizar búsquedas dependiendo del tipo de dato representado en cada
una de ellas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
Los datos, filtrados o sin filtrar, se paginan sin necesidad de refrescar la página. El tamaño
de la página puede ser seleccionado por el usuario final.
Los datos que alimentan la tabla pueden estar integrados en la página o usar peticiones
AJAX para ir solicitándolos a medida que el usuario los requiera.
Soporta múltiples plugins como ColReorder (permite al usuario reordenar las columnas),
FixedHeader (que mantiene las cabeceras de las columnas visibles cuando se desciende
por páginas largas), etc.
• Visualización de Detalles.
• Actualización en línea.
Modo que permite actualizar los elementos de la tabla desde la misma línea que los está
visualizando. Es posible modificar multiples registro a la vez.
Uso del componente Mapa para representar y posicionar entidades que dispongan de campos de
tipo GEO.
Este Add-on permite representar en vistas de tipo Mapa, aquellas entidades que dispongan de
campos de tipo GEO.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
Permite representar aquellas entidades que dispongan de campos de tipo GEO en vistas
de tipo Mapa. Se podrán mostrar/ocultar aquellos campos GEO que se deseen.
• Filtrado de entidades.
• Selección de entidades.
• Barra de Herramientas.
Este componente dispone de una serie de herramientas que pueden ser añadidas a la vista
de mapa. También se pueden añadir herramientas estándar que el desarrollador puede
personalizar para que realicen las acciones que él desee.
Este add-on permite utilizar componentes de tipo lupa en aplicaciones gvNIX. Gracias a estos
componentes, podemos buscar registros de forma sencilla de campos relacionados sin tener que
visualizar todos los datos en un desplegable.
Para instalarlo, hay que utilizar el comando web mvc loupe setup, el cual solo estará disponible
después de instalar el add-on JQuery en nuestro proyecto.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
Una vez instalados todos los componentes, es necesario generar una serie de métodos para
realizar las búsquedas y la visualización de los resultados. Para que el controlador disponga de
estos métodos, utilizaremos el comando web mvc loupe set sobre el controlador seleccionado.
Ahora que el Controlador ya dispone de los métodos necesarios, ejecutaremos el comando web
mvc loupe field sobre el field de la entidad a la que pertenece el controlador con los métodos
generados. Una vez ejecutado este comando, transformaremos el campo indicado a un campo de
tipo lupa en la capa web de nuestra aplicación.
Para ver con mas detalle el comando que proporciona el add-on consultar la sección de comandos
del add-on Lupa.
Esta utilidad añade a las entidades un sistema de control de concurrencia basado en una
operación de checksum o suma de control sobre todos los campos persistentes que contiene la
entidad.
El control de concurrencia optimista ya es ofrecido por defecto por el núcleo de Spring Roo. Sin
embargo, el sistema que proporciona se basa en la existencia de un campo en cada una de las
tabla de base de datos que se desea controlar. Este campo se suele definir como version
(numérico que identifica la versión del objeto) o lastupdate (fecha de la última actualización). Esto
es un problema para aquellas bases de datos ya existentes y en las que no se puede o no se
quiere alterar su estructura.
El checksum consiste en una operación matemática de los distintos valores que contiene un
registro (instancia) de una entidad. El cálculo tiene en cuenta todas las propiedades de tipo simple
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
de la entidad, es decir, no se incluye en el cálculo propiedad que represente una relación con otro
u otros objetos. El cálculo se realiza en el momento de la carga del registro de la entidad desde la
base de datos y es almacenado en una propiedad no persistente de la misma entidad.
En el momento de actualizar o eliminar un registro de dicha entidad se carga el elemento que está
persistido en la base de datos y se compara el valor de checksum actual con el que se calculó en
el momento de la carga del elemento a actualizar o eliminar. Si no coincide se lanza una Excepción
(javax.persistence.OptimisticLockException) y la operación no se realizará.
Esta operación supone un coste adicional en las tareas de persistencia, pero no es apreciable en
condiciones del uso cotidiano de la aplicación excepto en procesos de actualizaciones masivas de
registros.
Para mostrar un mensaje amigable al usuario se puede utilizar el Add-on Web Dialog que, en el
conjunto de excepciones gestionadas por defecto se incluye esta. Una vez inicializada la gestión
de excepciones es posible personalizar el mensaje usando el comando web mvc dialog exception
set language.
Este add-on permite gestionar las excepciones no controladas en el código de la aplicación y así
mostrar mensajes inteligibles al usuario en una ventana modal (pop-up) y en el idioma actual de la
aplicación sin necesidad de realizar ningún desarrollo en la capa web.
El add-on, al aplicarse sobre un proyecto, por defecto configura ciertas excepciones que serán
visualizadas de forma amigable al usuario en el caso de no ser gestionadas directamente desde la
aplicación. Así mismo, se pueden incluir nuevas excepciones y modificar los textos amigables que
se mostrarán en lugar de la excepción para cada idioma disponible en la aplicación.
Durante su aplicación se instalan algunas cadenas, tanto en ingles como en castellano, para
mostrar mensajes para los errores de conversión de datos numéricos y fechas.
El add-on también permite mostrar mensajes de usuario sin realizar ninguna implementación en la
capa web mediante la invocación de métodos desde el controlador que son los encargados de
mostrar dichos mensajes en la pantalla del usuario.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
El add-on añade soporte para la generación de informes con Jasper Reports y genera informes
totalmente funcionales para una entidad que posteriormente pueden ser personalizados. Los
informes son accesibles desde la interfaz web mediante un formulario que se crea para tal efecto.
El add-on añade por un lado el soporte necesario para trabajar con Jasper Reports y por otro es
capaz de generar informes asociados con una entidad cualquiera de la aplicación.
El archivo de diseño es un documento XML con un formato determinado que se puede editar de
manera sencilla y gráfica mediante una herramienta como iReport.
Permite crear servicios locales, servidores de servicios web y clientes de servicios web de forma
automática.
Permite crear de forma automática servicios locales, servidores de servicios web a partir de un
método del código fuente, crear servidores de servicios web basándose en un archivo de
descripción de servicios WSDL y crear clientes de servicios web a partir de un archivo de
descripción de servicios WSDL.
La creación de servicios, del mismo modo que todas las funcionalidades que proporciona el
framework, se realiza mediante anotaciones. Para simplificar esta tarea se puede hacer uso de los
comandos que ofrece. A medida que se van ejecutando comandos del add-on, se van modificando
anotaciones y métodos de la clase Java de forma que acabará conformando el servicio web que se
desea publicar.
Este add-on permite añadir en el proyecto soporte para nuevas lenguas utilizando para ello una
infraestructura común para la inclusión de nuevos idiomas. Al incluir un nuevo idioma, se añaden
en la aplicación de forma automática los textos traducidos a dicho idioma.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
gvHIDRA y gvNIX
Este add-on pretende simplificar la gestión de distintos valores de configuración por entorno.
Cuando se utiliza Maven como gestor del ciclo de desarrollo del proyecto existe la posibilidad de
utilizar perfiles para definir los distintos entornos de ejecución que tendrá la aplicación (desarrollo,
pruebas, integración, preproducción, producción,…).
El add-on permite registrar ciertos editores de propiedades en Spring MVC para uno o todos los
controladores del proyecto.
Los editores son una pieza más de la arquitectura de Spring MVC. Se encargan de controlar el
modo en que las cadenas enviadas por el navegador cliente, por ejemplo desde un formulario, se
convierten en objetos al llegar al servidor.
Para obtener más información sobre los editores de propiedades ver la sección de conversión de
beans de la documentación de Spring.
El comando web mvc binding stringTrimmer permite registrar un editor especialmente útil. Este
editor elimina los espacios en blanco al principio y al final de las cadenas y además permite
transformar las cadenas vacías en valores nulos.
Para cualquier información de más detalle del framework gvNIX puedes consultarlo en la referencia
bibliográfica al final del temario.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Matías Jiménez Jiménez
Referencias bibliográficas
(2) http://www.gvnix.org/assets/doc/gvnix-2.0.0.M1-reference-docs/
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 31. Software de código abierto. Software
libre. Conceptos base. Aplicaciones y usos.
Normativa sobre propiedad intelectual. Tipos de
licenciamiento de aplicaciones informáticas
La idea del software libre y el código abierto surgió en los años 80 y 90,
consolidándose como un modelo de desarrollo comunitario.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
1. Historia
En los años 70, con la denominada por muchos medios Tercera Revolución Industrial o Revolución
Digital, dando lugar a la Era de la Información, era una práctica natural y común compartir
software, tan natural como era compartir apuntes de clase o recetas de cocina.
Fue en los años 80 cuando proliferó el denominado Software Propietario, el cual, aunque pudieses,
prohibía jurídicamente su modificación o actualización sin el visto bueno de su propietario. Esto
provocó que en 1983, Richard Stallman lanzara el proyecto GNU, motivado anecdóticamente por
un error en la programación del driver de una impresora, cuyo código fuente el propietario se
negaba a revelar, pero que tampoco era capaz de solucionar, al menos en un tiempo razonable. El
principal objetivo del proyecto GNU, consistía en la creación de un sistema operativo completo,
libre de restricciones para el uso, modificación y distribución, ya fuese con mejoras o sin ellas.
En 1985, y motivada por la defensa del Software Libre y en particular del proyecto GNU, Richard
Matthew Stallman, fundó la Free Software Foundation (FSF).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Software de código abierto y propiedad intelectual
La primera definición de Software Libre publicada fue en febrero de 1986, basada en dos
principios:
"The word 'free' in our name does not refer to price; it sometimes refer to freedom. First, the freedom to
copy a program and redistribute it to your neighbors, so that they can use it as well as you. Second, the
freedom to change a program, so that you can control it instead of it controlling you; for this, the source
code must be made available to you".
"La palabra 'libre' en su propio nombre, no se refiere al precio; se refiere a la libertad. Primero, a la
libertad de copiar y redistribuir un programa entre tus vecinos, para que ellos al igual que tu, lo puedan
usar también. Segundo, a la libertad de modificar un programa, y así poder controlarlo en lugar de que
él te controle a tí; para ello, el código fuente debe estar a tu disposición".
En 1989, se publicó la primera versión de la Licencia Pública General de GNU (GNU General
Public License). El principal problema radicaba en que los propietarios o distribuidores de software,
sólo publicaban los archivos binarios, funcionales y ejecutables, pero no los códigos fuente
perceptibles de ser entendidos y modificados por el ser humano. Por ello la GPLv1 estableció la
obligatoriedad de publicar junto con los archivos binarios el código fuente asociado entendible por
humanos.
En 1991 fue liberada la GPLv2, con una definición de la licencia menos restrictiva. La licencia
Pública General Menor (LGPL) fue renombrada en una actualización menor de la versión 2.1 a
principios de 1999.
En 1991 fue liberado el núcleo Linux por Linus Torvalds, no siendo inicialmente una licencia
totalmente de software libre, pero en febrero de 1992, bajo la versión 0.12, Linus Torvalds la
licenció nuevamente bajo los términos de la Licencia Pública General de GNU.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
Esta unión entre Linux y el proyecto GNU, proporcionó a este último la pieza indispensable que
necesitaba, disponer de un sistema operativo casi terminado. La combinación entre ambos resultó
en el primer sistema operativo completo de software libre.
Un aspecto importante a resaltar en la época de los 90 es la vinculación del software libre con
servidores web. El servidor HTTP Apache fue y sigue siendo el software de servidor web más
utilizado. Conocidos como sistemas 'LAMP'; compuesto por un paquete que incluye Linux como
sistema operativo, Apache como proveedor de servicios web, MySQL como sistema de archivo o
base de datos y el lenguaje de programación PHP.
A finales de los 90 empezó a acuñarse el término de Código Abierto (Open Source). Promovido por
el movimiento de Netscape Communications Corporation en el sentido de liberación del código de
su suite más popular de internet Netscape Communicator, y debido al poco atractivo para esta
sobre el activismo social de la FSF, en 1998 se fundó la Open Source Initiative (OSI), con el
objetivo de fomentar el nuevo término de Software de Código Abierto, así como sus principios más
centrados en el potencial comercial de compartir código fuente.
2. Software libre
Como hemos comentado, el concepto de software libre apareció vinculado a la figura de Richard
Stallman, la FSF y en el espíritu del autor del software sobre la elección manifiesta para poder ser
copiado, estudiado, modificado y utilizado libremente con cualquier fin, redistribuido con cambios o
mejoras, por otros autores.
El término en su versión inglesa, free software, crea una ambigüedad entre los significados "libre" y
"gratis", por este motivo suele ser considerado el software libre como software gratuito y no como
software que puede ser modificado sin restricciones de licencia. La libertad expresada en el
término free tiene que ver con la libertad de uso y no con la gratuidad.
Por otra parte es importante también distinguir entre software libre y "software de dominio público",
el cual no requiere licencia y es propiedad de todos por igual, con derechos de explotación para
toda la humanidad, dado que su autor así lo ha decidido mediante donación o porque los derechos
de autor de dicho software han expirado.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Software de código abierto y propiedad intelectual
Libertad Descripción
Libertad de usar o ejecutar el programa como lo desees, con cualquier propósito.
0
(Uso).
Libertad de estudiar el código fuente, cómo funciona el programa y modificarlo,
1
adaptándolo a las propias necesidades del programador. (Estudio).
Libertad de ayudar a tu programa, de distribuir copias exactas de él y distribuirlas bien
2 gratuitamente o con la libertad de vender tu desarrollo. Ambas opciones están
permitidas por la comunidad. (Distribución).
Libertad de mejorar el programa y hacer públicas esas mejoras a los demás, hacer
3 copias de tus versiones modificadas y distribuirlas al resto de la comunidad para que
esta se beneficie. (Mejora).
Las libertades 1 y 3 requieren de acceso al código fuente.
Si no se dan estas cuatro libertades en un software, no se considera un software libre, y por tanto
se considera software privativo, en mayor o menor medida, pero privativo.
La ventaja del software libre es que este se acompaña normalmente del código fuente con el que
fue creado y por lo tanto tienes la capacidad de adaptarlo a tus necesidades, con el conocimiento
apropiado, de forma totalmente legal.
Como veremos más adelante, tanto la OSI como la FSF, disponen en sus webs oficiales de
listados con licencias aprobadas por ellos como licencias de software libre.
Es importante diferenciar entre los términos software libre (free software) y software de código
abierto (open source software), el cuál veremos en detalle más adelante. La principal diferencia
radica en que el software libre tiene en cuenta aspectos más éticos o filosóficos, mientras que el
softare de código abierto se basa únicamente en los aspectos técnicos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
Los formatos libres permiten al software libre mantener sus cuatro libertades, no obstante los
formatos libres pueden ser utilizados por programas libres o programas cerrados, también por
programas gratuitos o programas de pago.
Algunas compañías que no suelen utilizar formatos libres en sus programas, aún así permiten a
sus usuarios instalar software libre en sus sistemas para trabajar con esos formatos.
Algunos ejemplos de formatos libres; HTML, PDF, RTF, TXT, JPEG, PNG, SVG,....
El 3 de Febrero de 1998 en una reunión en Palo Alto se acuña el término open source y durante la
semana siguiente La idea principal se basaba en poder crear modificaciones de un software,
compatibilizarlo con otros sistemas operativos o arquitecturas de hardware, adaptarlo, compartirlo,
comercializarlo,...
Definition define los términos por los cuales se puede usar, modificar o redistribuir el software de
código abierto. Una de las licencias más populares compatibles con la OSD es la GNU General
Public License.
El código abierto no significa simplemente acceso al código fuente. Los términos de distribución de
software de open-source deben cumplir con los siguientes criterios:
1.- Libre redistribución: La licencia no restringirá a ninguna de las partes de vender o regalar el
software como un componente de una distribución de software que contenga programas de varias
fuentes diferentes. La licencia no exigirá ninguna gratificación u otra tasa por dicha venta.
2.- Código fuente: El programa debe incluir código fuente, y debe permitir la distribución en código
fuente, así como en el formulario compilado. Cuando algún tipo de producto no se distribuye con el
código fuente, debe haber un medio bien publicado para obtener el código fuente por un coste de
reproducción razonable, preferiblemente descargándose a través de Internet sin cargo alguno. El
código fuente debe ser la forma preferida en la que un programador debería modificar el programa. No
se permite un código fuente premeditadamente enrevesado. No se permiten formularios intermedios
tales como la salida de un preprocesador o traductor.
3.- Trabajos derivados: La licencia debe permitir modificaciones y trabajos derivados, y debe permitir
su distribución en los mismos términos que la licencia del software original.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Software de código abierto y propiedad intelectual
4.- Integridad de código fuente del autor: La licencia puede restringir la distribución del código
fuente modificado sólo si la licencia permite la distribución de ‘archivos de parche’ en el código fuente
con el propósito de de modificar el programa. La licencia debe permitir explícitamente la distribución
de software construido a partir del código fuente modificado. La licencia puede requerir trabajos
derivados para llevar un nombre diferente o número de versión del software original.
5.- No discriminación contra personas o grupos: La licencia no debe discriminar a ninguna persona
o grupo de personas.
6.- No discriminación por los campos de trabajo: La licencia no debe restringir a nadie el uso del
programa en un campo de trabajo específico. Por ejemplo, puede no restringir el uso del programa en
un negocio, o de ser utilizado para la investigación genética.
7.- Distribución de la licencia: Los derechos vinculados al programa deben aplicarse a todos
aquellos a quienes se redistribuye el programa sin necesidad de que estos ejecuten una licencia
adicional.
8.- La licencia no debe ser específica para un producto: Los derechos vinculados al programa no
deben depender de que el programa sea parte de una distribución de software en particular. Si el
programa se extrae de esa distribución y se utiliza o distribuye dentro de los términos de la licencia del
programa, todas las partes a las que se redistribuye el programa deben tener los mismos derechos
que los otorgados en conjunto con la distribución de software original.
9.- La licencia no debe restringir otro software: La licencia no debe suponer restricciones sobre
otro software que se distribuye junto con el software con licencia. Por ejemplo, la licencia no debe
exigir en que todos los demás programas distribuidos en el mismo medio deben ser de código abierto.
10.- La licencia Debe Ser Tecnología-Neutral: Ninguna disposición de la licencia puede basarse en
una tecnología individual o en un estilo de interfaz.
Entre los años 1998 y 2000, el crecimiento y popularidad de la filosofía de código abierto, la
consolidación de GNU/Linux y la aparición de nuevas empresas con ideales de software de código
abierto, llevó a que empresas como Sun Microsystems o IBM a ofertar productos como StarOffice o
OpenAFS respectivamente.
4.1. Introducción
El avance informático producido en el último tercio del siglo XX supuso que el software adquiriese
una relevancia que no se preveía, habida cuenta que el software inicialmente se comercializaba
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
como un elemento conexo del hardware sin que fuese objeto de una explotación económica
independiente. Desde el momento en que dichos programas tienen sustantividad propia, se pone
de manifiesto la importancia de regular su comercialización autónoma, a través de la vinculación a
una institución que permitiese el reconocimiento jurídico de dicha creación, el aprovechamiento
lucrativo de la obra y el impedimento de la explotación por quien no estuviese autorizado para ello.
Así, tanto en nuestra legislación nacional como en los textos internacionales de los que España
forma parte, se ha optado por considerar este software como una obra de protección a través del
derecho de autor, siempre que cumpla los requisitos que para ello se exigen.
La protección del derecho de autor, sólo tendrá lugar si el software resulta original (creación
intelectual propia de su autor) expresada por cualquier medio o soporte, tangible o intangible,
conocido o por conocer. Respecto a la originalidad de la obra, la Directiva Europea transpuesta,
descarta expresamente que se utilicen criterios cualitativos o relativos al mero valor estético del
software. Por tanto, el software que cumpla dichos requisitos, gozará del amparo y garantías del
derecho de autor, sea cual fuera la funcionalidad del mismo (de aplicación y periférica, o de
aplicación), y quedando bajo dicha protección tanto el código fuente como el objeto, ya que
estaríamos siempre ante el mismo software, pero con un lenguaje o código distinto.
Como los creadores de todas las obras protegidas que se regulan en la Ley de Propiedad
Intelectual, los autores de software, ostentan derechos de explotación y derechos morales sobre
sus creaciones. Si bien el legislador ha querido atender a las características de la obra creada,
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Software de código abierto y propiedad intelectual
para establecer una reglamentación especial dentro del derecho respecto al software, en los
preceptos que la componen, no se establece regulación alguna de los derechos morales, por lo
que, se aplicaran los genéricos recogidos en los artículo 14 LPI, si bien, para su eficacia y el
alcance de su contenido, habrá que estarse a las características propias de dicha creación.
A diferencia de lo aducido respecto de los derechos morales del autor, la LPI sí recoge un marco
regulatorio propio de los derechos patrimoniales o económicos con respecto al software,
precisamente, por la especialidad del objeto de protección. Estos derechos son los siguientes:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
A pesar de las amplias facultades cuasi-monopolísticas que reconoce la Ley a los autores de
software, marca también una serie de supuestos que actúan como límites legales a los derechos
de explotación, y que no necesitarían autorización, que son:
c) La llamada ingeniería inversa: Examen funcional de las ideas y fundamentos del software
para poder comprobar los aspectos precisos a fin de llevar a cabo aquellas tareas.
g) El límite temporal: El plazo de protección, es el de la vida del autor más 70 años después de
su muerte o declaración de fallecimiento. En caso de obra en colaboración, el cómputo de los
70 años, se iniciará con el fallecimiento del último de los autores. Si la titularidad pertenece a
una persona jurídica, la duración será de 70 años desde el 1 de enero del año siguiente al de
su divulgación.
La ley de propiedad intelectual parte como un principio general, de que el autor es siempre una
persona física, pero a su vez, favorece la atribución de la condición de autor de software a las
personas jurídicas. Por tanto, será considerado autor del software la persona o grupo de personas
naturales que lo hayan creado; o, en su caso, la persona jurídica que sea contemplada como titular
de los derechos de autor en los supuestos expresamente previstos por el TRLPI. No olvidando
cada uno de los tipos de obras en función de su autoría, merecen ser traídos a colación dos
supuestos especiales de regulación que, adquieren por ello relevancia y que serían:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Software de código abierto y propiedad intelectual
b) Autoría en el marco una relación laboral: Cuando un trabajador asalariado cree un software
en el ejercicio de las funciones que le han sido confiadas o siguiendo las instrucciones de su
empresario, la titularidad de los derechos de explotación correspondientes al software, así
creado, tanto el código fuente como el código abierto, corresponderán exclusivamente al
empresario, salvo pacto en contrario. Además, se genera una presunción de que autoriza al
empresario la realización de versiones sucesivas del mismo, salvo que esta facultad hubiera
sido descartada con pacto en contra.
La ley de patentes 11/1986 establece que no puede protegerse el software como tal al no tratarse
de una invención de aplicación industrial. Están excluidos de la protección del Derecho de patentes
porque se considera que no son invenciones en el sentido que exige la Ley, ya que una invención
debe constituir la solución a un problema técnico. No obstante, cuando la ejecución del software
produce efectos técnicos, puede formar parte de una invención patentable, de modo que el
software sea un elemento integrado dentro del objeto sobre el que recae la patente, siempre y
cuando, se cumplan los requisitos de patentabilidad de las invenciones, que son:
Entre los diferentes productos creativos generados por la industria TIC, existen una serie de
creaciones caracterizadas especialmente por su configuración estética. Se trata de productos cuya
forma no está diseñada con la finalidad de mejorar la utilidad del producto, sino con la de hacerlo
más atractivo para el mercado. El diseño de las interfaces gráficas o los iconos que se presentan
en los ordenadores, teléfonos móviles o tabletas, pueden protegerse como diseños industriales a
través de su registro en la Oficina que corresponda, siendo la competente a nivel nacional, la
OEPM. Para que la Oficina proceda a registrar el diseño, es necesario que sea nuevo y que posea
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
carácter singular (que la impresión general de un usuario informado difiera de la producida por
cualquier otro diseño).
4.10. Conclusión
Los creadores dentro de la llamada “Industria TIC”, han de conocer los derechos que les asisten,
tanto para su propia protección como para la elaboración jurídicamente segura de software. Para
ello, se aconseja la adopción de una serie de medidas elementales, dirigidas a evitar infracciones
de derechos de terceros, y problemáticas propias, que son:
a) Utilizar herramientas informáticas licenciadas para el uso lucrativo, en caso de que sea éste el
uso que pretenda darse a la creación.
c) Organizar la atribución de derechos de Propiedad Intelectual entre todos los autores que
intervengan en la creación del software.
4.11. Artículos del Real Decreto Legislativo 1/1996, de 12 de abril, por el que
se aprueba el texto refundido de la Ley de Propiedad Intelectual.
El derecho de autor sobre el software se regirá por los preceptos del presente Título y, en lo que
no esté específicamente previsto en el mismo, por las disposiciones que resulten aplicables de la
presente Ley.
1. A los efectos de la presente Ley se entenderá por software toda secuencia de instrucciones o
indicaciones destinadas a ser utilizadas, directa o indirectamente, en un sistema informático
para realizar una función o una tarea o para obtener un resultado determinado, cualquiera que
fuere su forma expresión y fijación.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Software de código abierto y propiedad intelectual
2. El software será protegido únicamente si fuese original, en el sentido de ser una creación
intelectual propia de su autor.
Cuando el software forme parte de una patente o un modelo de utilidad gozarán, sin perjuicio
de lo dispuesto en la presente Ley, de la protección que pudiera corresponderles por aplicación
del régimen jurídico de la propiedad industrial.
4. No estarán protegidos mediante los derechos de autor con arreglo a la presente Ley, las ideas
y principios en los que se basan cualquiera de los elementos del software incluido el que sirve
de fundamento a sus interfaces.
1. Será considerado autor del software la persona o grupo de personas naturales que lo hayan
creado, o la persona jurídica que sea contemplada como titular de los derechos de autor en los
casos expresamente previstos por esta Ley.
2. Cuando se trate de una obra colectiva tendrá la consideración de autor, salvo pacto en
contrario, la persona natural o jurídica que la edite y divulgue bajo su nombre.
3. Los derechos de autor sobre el software que sea resultado unitario de la colaboración entre
varios autores serán propiedad común y corresponderán a todos éstos en la proporción que
determinen.
4. Cuando un trabajador asalariado cree un software, en el ejercicio de las funciones que le han
sido confiadas o siguiendo las instrucciones de su empresario, la titularidad de los derechos de
explotación correspondientes al software así creado, tanto el programa fuente como el
programa objeto, corresponderán, exclusivamente, al empresario, salvo pacto en contrario.
5. La protección se concederá a todas las personas naturales y jurídicas que cumplan los
requisitos establecidos en esta Ley para la protección de los derechos de autor.
1. Cuando el autor sea una persona natural, la duración de los derechos de explotación del
software será, según los distintos supuestos que pueden plantearse, la prevista en el capítulo I
del Título II de este Libro.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
2. Cuando el autor sea una persona jurídica la duración de los derechos a que se refiere el
párrafo anterior será de setenta años, computados desde el 1 de enero del año siguiente al de
la divulgación lícita del software o al de su creación si no se hubiere divulgado.
Sin perjuicio de lo dispuesto en el artículo 100 de esta Ley de los derechos exclusivos de la
explotación de software por parte de quien sea su titular con arreglo al artículo 97, incluirán el
derecho de realizar o de autorizar:
a) La reproducción total o parcial, incluso para uso personal, de software, por cualquier medio y
bajo cualquier forma, ya fuere permanente o transitoria. Cuando la carga, presentación,
ejecución, transmisión o almacenamiento del software necesiten tal reproducción deberá
disponerse de autorización para ello, que otorgará el titular del derecho.
c) Cualquier forma de distribución pública incluido el alquiler del software original o de sus copias.
A tales efectos, cuando se produzca cesión del derecho de uso del software se entenderá salvo
prueba en contrario, que dicha cesión tiene carácter no exclusivo e intransferible, presumiéndose,
asimismo, que lo es para satisfacer únicamente las necesidades del usuario. La primera venta en
la Unión Europea de una copia de software por el titular de los derechos o con su consentimiento,
agotará el derecho de distribución de dicha copia, salvo el derecho de controlar el subsiguiente
alquiler del software o de una copia del mismo.
2. La realización de una copia de seguridad por parte de quien tiene derecho a utilizar el software
no podrá impedirse por contrato en cuanto resulte necesaria para dicha utilización.
3. El usuario legítimo de la copia del software estará facultado para observar, estudiar o verificar
su funcionamiento, sin autorización previa al titular, con el fin de determinar las ideas y
principios implícitos en cualquier elemento del software, siempre que lo haga durante
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Software de código abierto y propiedad intelectual
4. El autor, salvo pacto en contrario, no podrá oponerse a que el cesionario titular de derechos de
explotación realice o autorice la realización de versiones sucesivas del software ni de software
derivado del mismo.
5. No será necesaria la autorización del titular del derecho cuando la reproducción del código y la
traducción de su forma ene l sentido de los párrafos a) y b) del artículo 99 de la presente Ley,
sea indispensable para obtener la información necesaria para la interoperabilidad del software
creado de forma independiente con otros programas, siempre que se cumplan los siguientes
requisitos:
a) Que tales actos sean realizados por el usuario legítimo o por cualquier otra persona
facultada para utilizar una copia del software, o, en su nombre, por parte de una persona
debidamente autorizada.
c) Que dichos actos se limiten a aquellas partes del software original que resulten necesarias
para conseguir la interoperabilidad.
b) Sólo se comunique a terceros cuando sea necesario para la interoperabilidad del software
creado de forma independiente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
Los derechos sobre el software, así como sus sucesivas versiones y el software derivado, podrán
ser objeto de inscripción en el Registro de la Propiedad Intelectual.
A efectos del presente título y sin perjuicio de lo establecido en el artículo 100 tendrán la
consideración de infractores de los derechos de autor quienes sin autorización del titular de los
mismos, realicen los actos previstos en el artículo 99 y en particular:
a) Quienes pongan en circulación una o más copias del software conociendo o pudiendo presumir
su naturaleza ilegítima.
b) Quienes tengan con fines comerciales una o más copias del software, conociendo o pudiendo
presumir su naturaleza ilegítima.
c) Quienes pongan en circulación o tengan con fines comerciales cualquier instrumento cuyo
único uso sea facilitar la supresión o neutralización no autorizadas de cualquier dispositivo
técnico utilizado para proteger el software.
El titular de los derechos reconocidos en el presente Título podrá instar las acciones y
procedimientos que, con carácter general, se disponen en el Título I, Libro III de la presente Ley y
las medidas cautelares procedentes, conforme a lo dispuesto en la Ley de Enjuiciamiento Civil.
Referencias bibliográficas
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Software de código abierto y propiedad intelectual
(2) Pressman, Roger S. (1999). Ingeniería del software, un enfoque práctico. Ed Mc Graw Hill.
(3) Real Decreto Legislativo 1/1996, de 12 de Abril, por el que se aprueba el texto refundido de la
Ley de Propiedad Intelectual, regularizando, aclarando y armonizando las disposiciones
legales vigentes sobre la materia.
(7) Valdecantos Flores, Maitane. Artículo: "Talento TIC: La protección del Programa de
Ordenador". Eurotax Abogados
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 32. Sistemas CRM (Customer Relationship
Management) y ERP (Enterprise Resource
Planning). Beneficios y usos
En este tema se va a definir qué son los sistemas CRM y ERP que se están
implantando cada vez más en el mundo empresarial, gracias sobre todo, al gran
avance de las nuevas tecnologías. Se mostrará su funcionalidad, las partes en que
están divididos, los tipos que existen, cómo implantarlos, y se citarán ejemplos de
aplicaciones tanto de CRM como de ERP, además de las ventajas y beneficios que
obtiene una empresa al utilizarlos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Crespo Roures
La sigla CRM viene del inglés customer relationship management. Este término no sólo se refiere
al software que utilizamos para la gestión y administración de las relaciones de una empresa con
sus clientes. Se puede definir como una serie de estrategias, prácticas y tecnologías enfocadas a
gestionar, administrar y ver las futuras necesidades de los clientes anticipándose a ellas.
En una pequeña empresa se conoce a los clientes por su nombre, se sabe los productos que suele
adquirir o qué servicios utiliza. Se tiene un trato más directo consiguiendo fidelizar al cliente y que
vuelva a comprar los productos ofrecidos, pues al estar más en contacto se puede conocer su
satisfacción. En cambio, esta relación tan estrecha no se puede mantener cuando una empresa
crece. Llegando un momento que ya no se pueden conocer a todos los clientes ni sus
necesidades, perdiendo la ventaja competitiva que tenía la pequeña empresa. Este fue uno de los
motivos de la aparición del CRM, surgió una carencia que podía ser subsanada gracias al avance
de las tecnologías de la información. Hoy en día, se ve reforzado con el uso de las redes sociales
donde se puede recoger gran cantidad de información sobre las opiniones de clientes, que
posteriormente puede ser explotada por sistemas informáticos.
El objetivo del sistema CRM es mejorar las relaciones y servicios de la empresa con sus clientes.
Se podría decir que el CRM vela por la satisfacción del cliente en todo momento, antes, durante y
después de realizar el servicio o venta. Resumiendo nos permitirá incrementar y fidelizar clientes.
Implantar un sistema CRM en una empresa suele suponer un fuerte gasto económico y temporal,
pero una vez está funcionando correctamente, se tendrá una ventaja competitiva frente a la
competencia permitiendo el crecimiento de la empresa.
Los sistemas CRM ofrecen a las empresas la posibilidad de personalizar sus relaciones con cada
uno de sus clientes. Con la creación de una base de datos de clientes, se consigue que cada
empleado conozca las necesidades de cada uno de ellos, independientemente de si ha trabajado
con ellos o no. Es una clara forma de mejorar los servicios de la empresa hacia los clientes
mejorando la relación cliente-empresa.
El software CRM guarda toda la información referente a los clientes en bases de datos. La
estructura del CRM está divida en varios módulos en función del tipo de información que almacena.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas CRM y ER. Beneficios y usos.
• Soporte al cliente.
Herramienta de soporte informático dirigida al departamento comercial para conocer a tiempo real
el estado de la negociación con cliente.
• Segmentación de clientes.
• Gestión de campañas.
• Planificación de ventas.
• Análisis de marketing.
A continuación se va a ver los tres tipos de CRM que existen. Hay que tener en cuenta que están
muy relacionados entre sí, que interactúan entre ellos y algunos componentes incluso están
solapados en los distintos tipos.
El CRM colaborativo es el que más ha cambiado recientemente debido al avance de las nuevas
tecnologías y las nuevas formas de comunicarse con el cliente. Consiste en la comunicación
empresa-cliente: son los diversos medios que puede utilizar el cliente para obtener información,
por ejemplo vía telefónica, web, etc. Es común hoy en día en muchas empresas que los clientes
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Crespo Roures
accedan a través del portal web de la empresa para hacer pedidos, conocer el estado un pedido ya
realizado, realizar consultas, etc.
La mayor parte del CRM operacional se encuentra en el back office de la empresa. Incluye las
siguientes funcionalidades:
El CRM analítico se encarga de analizar los datos almacenados en una base de datos, obtenidos a
partir de los otros componentes del CRM. Se generan informes a partir de datos de clientes. Se
aplican técnicas de business intelligence y minería de datos para obtener nueva información del
comportamiento de los clientes.
• Implantación.
• Formación.
• Puesta en marcha.
• Transición.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas CRM y ER. Beneficios y usos.
• Mantenimiento y seguimiento.
Se puede encontrar una gran variedad de software CRM de múltiples proveedores. A continuación
se van a citar algunos de los más utilizados junto con las empresas que lo utilizan:
• Oracle PeopleSoft: Corona S.A., Cosméticos Avon S.A., Wal-Mart y Toyota. Software
preparado para trabajar con empresas de tamaño mediano y grande. Es muy adaptable,
puede ser utilizado en cualquier tipo de industria en función de sus necesidades. Sus
principales capacidades son gestión de ventas, marketing, soporte y servicio al cliente.
• mySAP CRM: Philips, Heineken, Schenider Electric, Eon, Allianz, Soudal y BMW Group. Es
una de las aplicaciones más utilizadas a nivel mundial. Ofrece un conjunto de herramientas
que ofrecen la solución adecuada para centrar los objetivos en los clientes. Contiene las
siguientes funcionalidades:
Gestión de ventas.
Previsión de ventas.
• Microsoft Dynamics CRM: Hitachi, Real Madrid F.C., Volvo y Barclays Bank. Es la solución
de Microsoft que permite a las empresas realizar la gestión de las relaciones con el cliente.
Se puede utilizar desde cualquier lugar, mejora el proceso de venta y ayuda a realizar
mejores campañas de marketing. Está compuesto por 3 módulos principales: ventas,
marketing y servicio al cliente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Crespo Roures
• CRM Sage: Sage Group, Seelogic Ltd y Catel. Software para pequeñas y medianas
empresas de hasta 500 empleados, soporta hasta 200 empleados concurrentes. Dirigido a
cualquier sector de actividad. Tiene ediciones especiales para los sectores de fabricación,
distribución y servicios. Funcionalidades:
Las aplicaciones citadas anteriormente son software propietario, pero también podemos encontrar
versiones de software libre CRM o programas que constan de versión básica gratuita y otra más
completa de pago. En función de las necesidades de la empresa se seleccionará un programa u
otro. A continuación se citarán algunos ejemplos de software CRM no propietario junto con el
nombre de empresas que los utilizan:
• Sugar CRM: Coca-Cola, Man, Reebok y Loomis. Aplicación para empresas de distinto
tamaño. Dispone varias ediciones una de ellas es libre y el resto utiliza componentes no
libres. Es utilizada en las áreas de gestión comercial, marketing y atención al cliente.
Mejora la gestión con clientes en tres ejes principales de la cadena de valor:
• Suma CRM: RE/MAX, Quality Secure, Webtools y Global Alumni. Software destinado a
pequeñas empresas con las funcionalidades necesarias para que resulte fácil de utilizar y
útil a la vez. A continuación se van a citar sus principales características:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas CRM y ER. Beneficios y usos.
• vTiger: Contus, Elobe, MowGreen y GB Advisors. Se crea a partir de Sugar CRM para
obtener una herramienta similar pero de código abierto. Tiene una Licencia Pública de
Mozilla. A continuación se va a citar sus principales características:
Es una aplicación web basada en estándares abiertos como: MySQL, PHP, Bootstrap,
Html, Javascript.
Cuenta con una gran comunidad de desarrolladores que permiten adaptar el software a
nuestras necesidades.
No sólo cuenta con módulos propios de un CRM sino que además añade módulos de
pedidos, facturas, pagos, productos propios de soluciones ERP.
Para ampliar información sobre cada uno de los CRM tanto propietarios como gratuitos se puede
acceder a su correspondiente página web.
La sigla ERP viene de las palabras en inglés Enterprise Resource Planning que se podría traducir
como planificación de los recursos de la empresa. Este término engloba una serie de procesos de
negocio como son la contabilidad, almacén, producción, distribución, logística, etc. Los sistemas
ERP facilitan el flujo de información desde distintos módulos a gerencia con el fin de ayudar a la
toma de decisiones.
Como se ha comentado un ERP está formado por distintos módulos independientes. No tienen por
qué estar todos implantados en la empresa, pero cuantos más estén más información será capaz
de recoger y explotar. Cada departamento suele tener su módulo optimizado para la recogida y
gestión de su propia información que podrá ser transmitida a otros módulos cuando sea de su
interés. Esta información suele ser modificada en tiempo real lo que permite una toma de
decisiones más rápida y eficiente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Crespo Roures
Algunos sistemas ERP incluyen un módulo CRM que si la empresa lo implanta se podría realizar la
gestión tanto del frontend (CRM) como del backend (ERP).
En función del proveedor de software ERP se dispondrá de más o menos módulos implementados.
En esta sección se comentarán los módulos más comunes que se suelen encontrar en un ERP,
que pueden coincidir con las unidades departamentales de la empresa. Para decantarse por un
ERP u otro la empresa también deberá de valorar cuál se adapta mejor a sus necesidades, y que
módulos necesita. Los módulos que suelen aparecer en todos los ERP son los siguientes:
• Producción.
• Gestión de stocks.
• Recursos humanos.
• Marketing y ventas.
• CRM muchos proveedores de software incluyen un módulo de CRM como un módulo más
del ERP.
• Informes.
Se va a clasificar los ERP de dos formas, por una parte en función de su diseño y por otra en
función de su ubicación.
2.2.1. Diseño
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas CRM y ER. Beneficios y usos.
Es la opción que utilizan la mayoría de empresas, se trata de adaptar un software, realizado por
uno de los fabricantes del sector a las necesidades de la empresa donde se vaya a implantar. En
este caso hay que estudiar de todas las soluciones que hay en el mercado cuál es la que mejor se
adapta a las necesidades de la empresa y qué módulos necesita la empresa para elegir el ERP
idóneo. Una vez elegido el ERP que mejor encaje con sus necesidades habrá que adaptarlo a sus
particularidades.
Es un ERP pensado para realizar las tareas más comunes en cualquier empresa. En él aparecen
los módulos más comunes, que utilizan la mayoría de empresas, por eso suelen ser los más
empleados.
ERP vertical
Es un ERP pensado para un determinado sector. Estará adaptado a las particularidades de dicho
sector. Por ejemplo un ERP dedicado a fábricas del sector cerámico, tendrá características que
sólo se utilizan en este tipo de empresas.
2.2.2. Ubicación
En función de donde están instalados los sistemas ERP se pueden clasificar en:
• ERP locales. Corresponde cuando el sistema está instalado en los propios servidores de la
empresa.
• ERP en la nube o SaaS. La mayoría de empresas están apostando por este tipo de
servicios que presentan una serie de ventajas frente al modelo local. Sus características
principales son las siguientes:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Crespo Roures
Las fases en las que se puede dividir en proceso de implantación son las siguientes:
• Implantación.
• Formación.
• Puesta en marcha.
• Transición.
• Mantenimiento y seguimiento.
• Suelen estar desarrolladas por empresas dedicadas al desarrollo de software que pueden
dedicar grandes cantidades de recursos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas CRM y ER. Beneficios y usos.
• SAP: Samsung Electronics Co., Penteo, Indra, IBM, Fujitsu, Deloitte, HP y Everis.
Este sistema ha sido integrado en miles de organizaciones a nivel mundial ofreciendo
nuevas oportunidades de negocio e internacionalización. Sus principales características
son:
Toda la información se comparte entre los diferentes módulos y áreas del software. De
esta forma todos los usuarios con la correspondiente autorización podrán acceder a
ella.
• Microsoft Dynamics ERP: Carrefour, Revlon, Dell y Sephora. Posee soluciones para
pequeñas y medianas empresas (Microsoft Dynamics NAV), como para grandes
organizaciones internacionales (Microsoft Dynamics AX). Según datos del último evento
Convergence 2014 de Microsoft, 221.500 empresas en todo el mundo utilizan Microsoft
Dynamics en sus diversas ediciones. Sus características principales son las siguientes:
• Oracle ERP también conocido como E-Business Suite: Kellogg’s, Kraft Heinz, Mazda,
Pandora y General Motors. Surge a partir de la adquisición de JD Edwards y PeopleSoft
por Oracle. Su funcionabilidad de contabilidad y finanzas se considera una de las mejores
del mercado. Estas son sus principales ventajas:
Gran desarrollo de la gestión de las bases de datos. Utiliza bases de datos Oracle que
incluye tecnología in-memory: permite acceso más rápido, simplificación de cálculos y
análisis en tiempo real.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Crespo Roures
• Sage X3: Grupo Winterman, Bonnysa, Arania y Coselva. Solución de gestión para
medianas empresas de los sectores fabricación, servicios y distribución. Sus principales
características son las siguientes:
Algunas de las ventajas del software ERP libre son que es más económico, se dispone del código
fuente de la aplicación, se puede distribuir, se dispone de personal cualificado se puede adaptar a
nuestras necesidades sin tener que partir de cero y ante un problema se puede consultar posibles
soluciones realizadas en la comunidad de desarrollo de la aplicación.
• Apache OFBiz: United States Air Force, Snaidero, British Telecom y Citigroup Procurement
System. Producto de código abierto para la automatización de los procesos empresariales.
Ofrece una gran cantidad de funcionalidades entre las que podemos destacar:
Administración de pedidos.
Gestión clientes.
Administración de procesos.
• Compiere: Pharma Nord, OSG, La Poste y ISO. Fue la primera solución ERP de código
abierto del mercado. Desarrollado por Jorg Jank, ex director de desarrollo de Oracle. Su
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas CRM y ER. Beneficios y usos.
desarrollo fue a partir de las necesidades de Goodyear en 1999. Administra los principales
procesos de negocio:
Compras.
Ventas.
Stock.
Facturación.
Finanzas.
Producción.
Contabilidad y finanzas.
Compras y ventas.
Recursos humanos.
Gestión de proyectos.
Gestión de almacenes.
Marketing.
TPV.
CRM.
Fabricación.
Multiplataforma.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Crespo Roures
Se puede obtener más información de cada uno de ellos en su correspondiente página web.
Como ya se ha comentado anteriormente, el CRM se utiliza para mejorar todos los servicios que se
ofrecen al cliente. Es un conjunto de estrategias que nos permitirá entender mejor a nuestro
cliente, conocer sus necesidades, fidelizarlo y atraer a nuevos clientes. Para ello se necesitará
recoger una gran cantidad de información. Este conjunto de estrategias se apoyan fuertemente en
el software, ya que, los datos recogidos del cliente se van a almacenar en bases de datos, que
serán explotadas en el futuro para realizar tareas como pueden ser campañas de marketing, que
traerán nuevas ventas a la empresa.
En cambio el ERP es un conjunto de herramientas utilizadas para la gestión del negocio. Estas
herramientas están divididas en módulos que pueden ser módulo de producción, contabilidad,
stock, ventas, recursos humanos, etc.
Los distintos CRM y ERP pueden variar mucho en función de la empresa proveedora del software,
tipo de programa y empresa que utiliza el sistema. Aunque cabe resaltar que se encontrará
siempre los siguientes aspectos diferenciadores entre los dos términos:
• CRM se usa para tareas de front office como pueden ser campañas de marketing, todo lo
relacionado con el proceso de ventas (por ejemplo informes de ventas, productos más
vendidos), clientes, servicio de atención al cliente.
• ERP está más enfocado a la realización de tareas back office como son gestión y
administración de la actividad empresarial, contabilidad, finanzas, nóminas, recursos
humanos, optimización de tareas, reducción de gastos, estudiar flujos de información
dentro de la empresa, informes gastos y beneficios, mejorar plan de negocio.
• Tanto los sistemas CRM como los ERP almacenan toda la información en bases de datos.
Hoy en día se pueden encontrar sistemas que integran ambas soluciones en uno,
permitiendo contener toda la información en un sólo sistema que podrá mejorar los
resultados obtenidos por los sistemas aisladamente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas CRM y ER. Beneficios y usos.
3. Beneficios y usos
Como ya se ha comentado, el CRM gira alrededor del cliente por tanto todas las ventajas que
obtendremos del uso del CRM estarán relacionas con el cliente. Las principales ventajas del uso
del CRM son las siguientes:
• Datos unificados del cliente: se evitan posibles errores que pueden ocurrir al tener
sistemas diferentes de almacenaje de datos.
Los sistemas ERP permiten la adaptación a las necesidades de cada empresa. Para ello a partir de
una especificación de requisitos, técnicos implantadores se encargan de adaptar el software a las
particularidades correspondientes. Hay que tener en cuenta que el proceso de instalación,
adaptación y uso de este tipo de sistemas suele ser caro económica y temporalmente, pero a largo
plazo los beneficios obtenidos merecen la pena. Éstos son los siguientes:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Crespo Roures
• Los datos son almacenados en un único sistema, permitiendo ser más eficientes frente a
cualquier imprevisto. Se tendrá un mayor control y trazabilidad de todas las transacciones
realizadas y producidas por la actividad empresarial, facilitando la tarea de realizar
estimaciones y previsiones.
Referencias bibliográficas
Brunetta, Hugo (2016). CRM-La guía definitiva: Estrategia de gerenciamiento de la relación con los
clientes. Pluma Digital Ediciones.
Greenberg, Paul (2008). CRM. Gestión de relaciones con los clientes. McGraw-Hill Interamericana
de España S.L.
Baran, Roger J., Galka, Rober J. (2013). CRM: The foundation of Contemporary Marketing
Strategy. Routledge.
Ptak, Carol A., Schragenheim, Eli (2016). ERP: Tools, Techniques, and Applications for Integrating
the Supply Chain.CRC Press.
Valle, A., Puerta, A. (2015) .Curso de Consultoría TIC. Gestión, Software ERP Y CRM.
Createspace.
Muñiz Gonzalez, L. (2007). ERP: Guía práctica para la selección e implantación. Gestión 2000.
http://www.crmespanol.com/crmdefinicion.htm
http://www.informatica-hoy.com.ar/camaras-digitales/Los-softwares-CRM-mas-utilizados.php
http://grupo05ulima.blogspot.com.es/2006/10/crm-analtico-operacional-y.html
http://www.evaluandocrm.com/tipos-de-crm/
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Sistemas CRM y ER. Beneficios y usos.
http://www.dataprix.com/articulo/erp/que-modulos-imprescindibles-debe-incluir-erp
http://www.sistemasdegestion.com/index.php/productos/microsoft-dynamics-erp/modulos-
destacados/
http://smallbusiness.chron.com/types-erp-5161.html
http://www.yourerpsoftware.com/content/28-tipos-de-sistemas-erp
http://www.dataprix.com/articulo/erp/erp-horizontal-o-vertical-que-necesita-tu-empresa
https://www.salesinsideinc.com
https://idatalabs.com
https://xtuple.com/solutions/who-uses-xtuple
https://www.it-exponent.com/caracteristicas-de-sugarcrm/
https://www.sumacrm.com/soporte/cacteristicas-crm
http://blog.hostgreen.com/?p=604
http://formatalent.com/listado-de-empresas-que-utilizan-sap-en-espana/
http://www.muycanal.com/2014/03/03/microsoft-dynamics
https://www.softwaredoit.es/sap-erp-caracteristicas-y-funcionalidades/sap-erp-caracteristicas-y-
funcionalidades.html
https://www.microsoft.com/es-es/dynamics/erp.aspx
https://www.oracle.com/
https://www.ticportal.es/temas/enterprise-resource-planning/proveedores-erp/erp-oracle
http://www.sage.es/
http://bonsaierp.com.au/general/who-is-using-ofbiz.html
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Antonio Crespo Roures
http://noticias.iberestudios.com/openbravo-software-libre-gestion-erp-pymes/?especial=vanguardia
http://www.compiere.com
http://openerpspain.com/
http://abas-erp.com/es/news/4-pasos-para-preparar-una-implantaci%C3%B3n-erp-en-su-negocio
http://www.informatica-hoy.com.ar/software-crm/MySAP-CRM-Una-solucion-integral-de-software-
CRM.php
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 33. E-learning: Conceptos, herramientas,
implantación y normalización
Estudiaremos la evolución de las plataformas que dan soporte a los Entornos Virtuales
de Aprendizaje, las herramientas que contienen y realizaremos una pequeña
comparativa entre algunas de las plataformas más extendidas.
Veremos los servicios complementarios que junto con las plataformas y contenidos
son necesarios para obtener una formación de calidad y generar satisfacción tanto en
el alumnado como en el profesorado
“El éxito de un curso eLearning se puede resumir en una frase corta: lograr que los
participantes intervengan mucho y se diviertan. Y eso lo logra el talento humano, no
las máquinas ni el software. Lo logran los contenidos bien estructurados y el buen
diseño pedagógico, los buenos tutores que animan los foros, los profesores expertos
que saben tener empatía y consiguen que los alumnos se apasionen, sean proactivos
y participen. Al final, lo importante son las personas, movilizar el talento humano”.
Íñigo Babot
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
1. Introducción
Hay un cierto consenso entre autores en considerar al profesor C. Philipps padre de la formación a
distancia puesto que en el siglo XVII utilizó la Gaceta de Boston para insertar un anuncio en el que
ofrecía lecciones escritas de cultura general mediante el envío por correo ordinario (1).
El empleo del correo ordinario para actividades relacionadas con la formación comienza en
paralelo a la comercialización de novelas editadas por entregas. Sucede en el siglo XIX,
comenzando en Francia, Dinamarca, Suecia, Noruega y Reino Unido. El abaratamiento del coste
de impresión y el transporte ferroviario actuaron a favor de esta forma de distribuir conocimiento.
(2).
Tabla I. Evolución del sector de la Formación a Distancia desde sus orígenes hasta principios de la
segunda década del s. XXI. Fuente (2)
Etapa ¿Cuándo? Vectores Tecnológicos Caracterización de las
actividades
Orígenes S.XIX Imprenta, correo urbano e Correo postal, envío de
interurbano estable y materiales y evaluaciones.
transporte por ferrocarril. Actividades formativas no
Máquina de escribir. oficiales.
Despegue de la Segunda Regulaciones Nacionales Correo postal, envío de
Formación a mitad del (oferta pública). materiales y evaluaciones.
Distancia S. XX Actividades formativas con
reconocimiento oficial. Apoyo de
la Admón. Pública a este
formato.
Aparición de la 1980- Ordenador Personal (PC) y Edición de Videodiscos
enseñanza mediados abaratamiento de los medios interactivos, materiales
asistida por los 90 de impresión doméstico. instructivos basados en CD y
ordenador videos adaptados al PC. Altos
costes de estampación y edición.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
Lupion señala en su informe “La Educación Superior a Distancia en América Latina y el Caribe” de
2010, que los incrementos de crecimiento en la matrícula de las actividades a distancia y
semipresenciales es superior al 25% interanual frente a un 3% de las actividades presenciales, (5).
Garrison (6) señala que la información disponible en Internet se multiplica en factores del 200%
diariamente, pero la información no es formación, forma parte del proceso, pero los factores que
participan, además de los propios materiales, son, entre otros:
• La tutorización de un experto.
• La autoevaluación.
• La certificación.
Especialmente con las personas “nativas digitales” que han nacido utilizando estas tecnologías,
Garrison indica que el potencial de crecimiento de esta modalidad de enseñanza es incalculable.
En el Blog “Origin Learning” aparece un post con el título “20 Facts about e-learning” en el que se
indica que para el año 2020 se espera que el mercado de e-learning global sea de 37.8 billones de
dólares (7).
2. Conceptos
De acuerdo con las propuestas de diferentes autores, García y Cabrero (8) definen como
e-learning la formación apoyada en la presentación de contenidos a través de Internet y que utiliza
diferentes herramientas de comunicación sincrónicas y asincrónicas para establecer la interacción
entre docente y discente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Cabero (9) indica que los entornos de formación que permiten interaccionar de forma asíncrona,
deben contemplar una serie de funcionalidades entre las que podemos destacar:
Por su parte, García Aretio (10) especifica las cuatro características que debe tener el e-learning:
A modo de resumen, García Peñalvo (11) define e-learning como la capacitación no presencial
que, a través de plataformas tecnológicas, posibilita y flexibiliza el acceso y el tiempo en el proceso
de enseñanza-aprendizaje, adecuándolos a las habilidades, necesidades y disponibilidades de
cada discente, además de garantizar ambientes de aprendizaje colaborativos mediante el uso de
herramientas de comunicación síncrona y asíncrona, potenciando en suma el proceso de gestión
basado en competencias.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
La realidad es que las posibilidades de emplear las herramientas y técnicas de e-learning también
en la formación presencial han permitido crear tres grandes modelos formativos que resumimos en
el siguiente cuadro:
Podemos considerar que las ventajas que nos proporcione el empleo del e-learning son:
• Disminuye o elimina el grado de presencialidad física del alumno en el aula. Favorece a los
colectivos que no tienen la posibilidad de acceder a la formación presencial.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
• Permite un mayor número de destinatarios. Tanto porque evita las limitaciones de las aulas
presenciales, como porque la promoción puede llegar a usuario de todo el mundo.
• Permite el acceso a un mayor número de fuentes y datos de los ofrecidos por el docente,
en cualquier momento y en cualquier lugar.
Un caso especial de e-learning son los MOOC (masive open on-line courses) por sus siglas
anglosajonas. Se trata de cursos diseñados para grupos con un elevado número de alumnos, en
abierto (gratuitos) y online. Por sus características son cursos asíncronos y con poca o nula
tutorización. Tamar Lewin describió en julio de 2012, en el New York Times (13) el terremoto que
estaba suponiendo la organización de Formación a Distancia ofertada de manera gratuita por parte
de las Universidades Estadounidenses para públicos extensos y masivos.
La primera experiencia piloto privada con un curso de Inteligencia Artificial en Udacity recibió
160.000 inscripciones de 19 países.
• Publicidad. Los datos de los alumnos son cedidos a empresas, obteniendo ingresos por
ello.
• Certificación. Los alumnos que deseen obtener una certificación de la institución deben
realizar un pago por ella. Habitualmente se exige la superación de alguna prueba para
evaluar los conocimientos adquiridos.
Un antecedente a los MOOC son los OpenCourseWare (OCW). Se trata de poner en abierto y
cediendo algunos de los derechos de autor, los materiales que van a ser utilizados por los alumnos
de formación presencial. Esta práctica es puesta en marcha por el MIT en el año 2001 creándose
en el año 2005 el Openware Consortium.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
García Peñalvo (11) y otros autores referencian a Lozano (14), estableciendo las tres partes
esenciales del e-learning: tecnología, contenidos y servicios.
3.1. Tecnología
Por otra parte, estas plataformas pueden incluir todo un conjunto de herramientas capaces de
proporcionar soporte tanto a las actividades formativas como a los procesos de negocio de la
formación.
Tabla III. Herramientas potenciales que pueden estar incluidas en una plataforma para el
e-learning (15).
Tipo Herramienta
Herramientas orientadas • Foros
al aprendizaje • Buscador de foros
• e-portafolio
• Intercambio de archivos
• Soporte de múltiples formatos de archivos, como por
ejemplo HTML, PDF, Word, Excel, Acrobat, entre otros
• Herramientas de comunicación síncrona (chat): para el
intercambio de mensajes entre los participantes
• Herramienta de comunicación asíncrona (correo electrónico,
mensajería)
• Servicios de presentación multimedia (videoconferencia,
vídeo, pizarra electrónica, entre otros)
• Diario (blogs)
• Blogs de asignaturas
• Weblogs individuales de alumnos
• Weblogs grupales de alumnos
• Wikis
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Tipo Herramienta
Herramientas orientadas • Anotaciones personales o favoritos (bookmarks)
a la productividad • Calendario y revisión del progreso
• Ayuda en el uso de la plataforma
• Buscador de cursos
• Mecanismos de sincronización y trabajo fuera de línea
• Control de publicación, páginas caducadas y enlaces rotos
• Noticias del lugar
• Avisos de actualización de páginas, mensajes a foros y
envío automático
• Soporte a la sindicación de contenidos (RSS, News,
PodCast, etc.)
Herramientas para la • Grupos de trabajo
implicación de los • Autovaloraciones
estudiantes • Rincón del estudiante (grupos de estudio)
• Perfil del estudiante
Herramientas de soporte • Autenticación de usuarios
• Asignación de privilegios en función del rol del usuario
• Registro de estudiantes
• Auditoría
Herramientas destinadas • Tests y resultados automatizados
a la publicación de • Administración del curso
cursos y contenidos • Apoyo al creador de cursos
• Herramientas de calificación en línea
• Seguimiento del estudiante
Herramientas para el • Conformidad con la accesibilidad
diseño de planes de • Reutilización y compartición de contenidos
estudio • Plantillas de curso
• Administración del currículum
• Personalización del entorno (look and feel)
• Herramientas para el diseño de la educación
• Conformidad con el diseño de la educación (estándares IMS,
AICC y ADL)
Sistemas/Herramientas • Sistemas integrales de conocimiento
para la gestión del • Los sistemas mediadores de información
conocimiento en el • Librerías digitales o repositorios
ámbito educativo • Sistemas basados en ontologías
• Sistemas basados en folksonomías (en el contraste con
"taxonomía") es una indexación social, la clasificación
colaborativa por medio de etiquetas simples en un espacio
de nombres llano, sin jerarquías ni relaciones de parentesco
predeterminadas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
Recientemente, (16), han realizado una comparativa entre siete entornos LMS open source (A-
View es open source sólo en la India) evaluando la cantidad y calidad de las herramientas que
incluyen.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Tabla VI. Comparación de características de desarrollo de los cursos (16). Elaboración propia.
Plataforma
Características Moodle Dokeos eFront Ilias Sakai Olat A-View
Blended Learning S N S N S S S
Aulas virtuales S N S S N N S
Multilenguaje S S S S S S S
Gestión de cursos S S S S S S S
Gestión de S S S S S S S
contenidos
Evaluaciones del S S N S N S S
curso
Cuestionarios / S S S S S S S
Encuestas
A su propio ritmo S S S S S S S
Capacidades S S S S S S S
multimedia
Gráficos S S S S S S S
Puntuación 100 80 90 90 80 90 100
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
Si bien esta comparativa viene condicionada en parte porque A-View es utilizado por varias
Universidades de la India y los investigadores también lo son, cabe destacar que precisamente son
los países asiáticos los que mayor número de alumnos utilizan la formación a distancia.
Igualmente, en esa comparativa no aparecen otros LMS de gran uso como puedan ser ATutor en el
caso de open source o Blackboard en el caso de plataformas de pago.
3.2. Contenidos
La calidad y estructuración de los mismos son claves para el éxito del e-learning. Antes de la era
Internet, los contenidos a distancia estaban formados por folletos o libros en papel y en ocasiones
discos, cd’s o cintas de audio que el alumno adquiría y estudiaba por su cuenta. Habitualmente
disponía de un número de teléfono al que contactar para tutorías o resolución de dudas y una
dirección de correo a la que remitir los ejercicios y tareas a resolver.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Las entregas pueden hacerse mediante la propia plataforma y el alumno debe ser consciente en
todo momento de su evolución gracias a la planificación de las actividades formativas, el desarrollo
de evaluaciones y los informes de progreso que proporciona la propia plataforma.
Es por ello que cambia el modelo de aprendizaje y los contenidos deben ser adaptados a este
nuevo modelo.
2. Conversacional. La red propicia y fomenta las conversaciones entre los participantes de las
actividades formativas.
10. Híbrido. Se rompen las barreras de las disciplinas tradicionales permitiendo integrar
conocimiento de áreas diferentes (ej.: Bioinformática) dando lugar a la cultura de remezcla
(mashup).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
• De la recepción a la participación.
En una formación tradicional el esfuerzo se dirige hacia la mejora de las sesiones que se imparten,
mientras en el e-learning se debe poner un énfasis mayor en el diseño y la elaboración de
materiales estructurados que el discente pueda trabajar de manera autónoma y que sean aptos
para ser reutilizados.
Es importante recalcar que un curso bien diseñado puede ser ofertado muchas veces a diferentes
receptores utilizando los mismos contenidos. Igualmente, los componentes del curso (Objetos de
Aprendizaje Reutilizables o RLO en inglés), al ser autocontenidos, tienen la capacidad de ser
utilizados en distintos contextos, pudiendo ser incorporados en otros cursos. Por ejemplo, un
módulo de funciones básicas en Excel puedo ser utilizado en programas de contabilidad, recursos
humanos, gestión de aulas, etc.
Una vez definida la estructura del curso, el diseño debe especificar la mejor combinación de
métodos y técnicas para un curso e-learning determinado.
• Métodos de aplicación. Tareas que realizan los alumnos mediante las cuales adquieren los
conocimientos.
A continuación, se resumen los diferentes usos, formatos, ventajas y desventajas de los métodos
pedagógicos. En general, en cada proyecto de formación se emplean varios de estos métodos y
diferentes tipos de formatos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
2. Plantear tareas que exijan un esfuerzo intelectual del alumno: leer, escribir, analizar,
buscar, reflexionar, elaborar, valorar, etc.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
5. Incorporar guías y recursos para que el alumno pueda realizar autónomamente las
actividades (tutoriales y enlaces a documentos y ejemplos).
3.3. Servicios
Lozano (14) establece como servicios “la acción de los tutores, profesores on-line, la
documentación que encontramos en la Biblioteca virtual, y todo un amplio abanico de posibilidades
desde el chat a la conexión on-line, que ayuda a desarrollar los múltiples modelos del e-learning”.
Este apartado engloba elementos variopintos necesarios para obtener un e-learning de calidad.
Profesorado.
Las tutorías realizadas en un máximo de 24 horas, la accesibilidad del profesor mediante chat,
videoconferencia o email, el seguimiento que profesores y tutores realizan a los alumnos evitando
el abandono, la motivación a través de chats, etc, son fundamentales para lograr la implicación del
alumnado y el cumplimiento de los objetivos de la formación.
Administración.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
Comunicación.
Elementos de evaluación.
Cantidad y calidad de las autoevaluaciones, claridad en los métodos de evaluar al alumno desde el
primer día. La aplicación de múltiples criterios (corrección por pares, autoevaluaciones, trabajos,
etc). Información clara de fechas, resultados obtenidos, formas de recuperación, etc. Situación del
avance del alumno visualizable tanto por el alumno como por el docente.
Soporte.
Estos servicios, entre otros, complementan a la plataforma y a los contenidos pudiendo tener un
efecto muy diferenciador entre diversas organizaciones. Observamos que la separación entre
contenidos y servicios se ha difuminado quedando englobados contenidos y servicios en un mismo
paradigma en el momento de realizar el diseño y desarrollo de la formación.
4. Implantación
Hay que tener en cuenta que el aumento de dispositivos móviles junto con cambios en las
metodologías ha provocado un uso intensivo de los recursos de vídeo en los sistemas de
e-learning. Estos recursos deben ser correctamente analizados y vigilados puesto que pueden
crecer de manera exponencial y colapsar el sistema.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
software, contratar con un proveedor que nos oferte directamente la plataforma o disponer
nosotros de nuestra propia infraestructura.
Aparte de la plataforma, hay software de terceros que probablemente tendremos que utilizar. Por
ejemplo, necesitaremos disponer de la posibilidad de realizar sesiones síncronas y/o webcasting.
En el caso de sesiones síncronas, hay dos productos de pago que lideran el mercado: Blackboard
Collaborate y Adobe Connect. Además, tiene una fuerte presencia Cisco WebEx para la realización
de webcasting. Como opción open source, disponemos de OpenMeetings entre otros, que también
permite una fácil integración con Moodle. El mercado está ampliando también las prestaciones de
productos ya existentes como es el caso de youtube, que permite realizar emisiones en streaming
de manera muy sencilla. Igualmente, google hangouts está evolucionando y quizá suponga la
alternativa de google a Connect y WebEx.
Adicionalmente existen diversas plataformas para gestionar y almacenar los vídeos. Además de los
canales en Youtube, Vimeo, etc, existen en el mercado herramientas como Kaltura
(https://es.corp.kaltura.com/) u Opencast Matterhorn (http://www.opencast.org/) que incluyen
potentes visores en los que el alumno tiene grandes posibilidades de configurar la manera en que
recibe la formación a través de los vídeos. Estos productos son capaces de pasar el OCR (“Optical
Character Recognition”) a los vídeos e incluso hacer un reconocimiento de voz permitiendo indexar
los contenidos y realizar metabúsquedas en los vídeos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
Para los Mooc también debe plantearse la posibilidad de utilizar alguno de los consorcios
existentes como alternativa a crear una infraestructura. Podemos destacar como plataformas más
potentes:
Análisis.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Identificar las labores y habilidades que los alumnos deben aprender o mejorar en su desempeño.
Fruto de este trabajo debemos ser capaces de describir el problema, la solución propuesta, el perfil
del alumno y las restricciones existentes a la hora de acceder a los recursos.
Diseño.
En primer lugar, debemos definir el conjunto de objetivos de aprendizaje necesarios para lograr el
objetivo principal del curso.
Debemos establecer el orden (secuencia) en el que los objetivos deben ser alcanzados.
Hay que seleccionar las estrategias pedagógicas que vamos a utilizar en los recursos, en el modo
de entregar los contenidos y en la evaluación.
En este punto quedará definida la estructura organizativa del curso (por ejemplo unidades,
lecciones, módulos, actividades, etc.), los objetivos asociados a cada unidad y los formatos
pedagógicos que se van a utilizar (sesiones síncronas, recursos multimedia, etc.).
Desarrollo.
Aquí es donde se hace la producción del material. Los materiales pueden ser desde pdf
debidamente estructurados, vídeos, definición de tareas, autoevaluaciones, cuestionarios,
contenido interactivo multimedia realizado con herramientas de autor, etc.
Implementación.
Evaluación.
Todo proyecto formativo debe ser evaluado para ver el grado de consecución de los objetivos
perseguidos. Igualmente, el feedback del alumnado supone una facilidad para mejorar el curso
para siguientes ediciones.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
Todo proyecto e-learning requiere de un equipo de personas con capacidades específicas en cada
una de las actividades o fases del proyecto. Dependiendo de factores como el tamaño del
proyecto, las capacidades de las personas que forman parte del equipo y los medios o tecnologías
que son utilizados varios de los roles que a continuación se describen pueden ser combinados en
un único perfil:
• Expertos Temáticos (ET). Aportan el conocimiento y la información. Pueden ser tanto los
encargados de desarrollar los contenidos como los docentes que apoyan las actividades en
el aula.
• Desarrolladores Web y editores multimedia. Son los que organizan los elementos del
curso, crean componentes interactivos y multimedia y adaptan la interfaz de la plataforma
de enseñanza.
• Expertos en apoyo técnico. En cada una de las fases del proyecto existen expertos para la
resolución de problemas.
5. Normalización
Para llevar a cabo el e-learning se hace uso de plataformas y software que posibilitan la interacción
entre profesores y alumnos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
de dispositivos con los que se accede a la formación, desde dispositivos fijos a móviles, ya sean
tabletas, portátiles o smartphones. De ahí la necesidad imperiosa de estandarización.
Dicha estandarización para los cursos y los sistemas que proporcionan esa formación persigue dos
objetivos fundamentales:
• Conseguir que un curso, independientemente del LMS con el que se ha producido, pueda
ser cargado en cualquier otro LMS.
• Posibilitar el registro por el LMS de los resultados de la actividad de todos los usuarios del
curso.
• Durabilidad, de forma que no haya que realizar una inversión para conseguir el objetivo de
reutilización de contenidos.
Según Pedruelo (21), el incremento de plataformas de formación en e-learning contrasta con los
principios básicos de productividad de los mismos. De ahí destaca la necesidad de aparición de
estándares que permitan la eficiencia y calidad en las organizaciones.
La International Organization for Standarization (ISO), define la estandarización como “la actividad
que tiene por objeto establecer, ante problemas reales o potenciales, disposiciones destinadas a
usos comunes y repetidos, con el fin de obtener un nivel de ordenamiento óptimo en un contexto
dado, que puede ser tecnológico, político o económico”.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
• Garantiza la viabilidad futura de su inversión, impidiendo que sea cautivo de una única
tecnología. De modo que en caso de cambiar de LMS la inversión realizada en cursos no
se pierda.
• Aumenta la oferta de cursos disponible en el mercado, reduciendo de este modo los costes
de adquisición y evitando costosos desarrollos a medida en muchos casos.
Las especificaciones del AICC cubren nueve áreas principales, que van desde los Learning
Objects (LO) hasta los Learning Management Systems (LMS). Cuando una compañía
cumple las especificaciones de la AICC, quiere decir que cumple con al menos una de
estas guidelines y recomendaciones (AICC Guidelines and Recommendations, AGRs):
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Para ello definió un tipo de fichero XML para la descripción de los contenidos de los cursos,
de modo que cualquier LMS pueda, leyendo su fichero de configuración
IMSMANIFEST.XML, cargar el curso. A continuación, se describen las principales
iniciativas de este comité:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
h) Accesibilidad (Accesibility).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Los autores (23) se encargaron de observar y recopilar todos los movimientos que se producen
alrededor de la normalización en la comunidad e-learning. En el estudio se obtuvieron doce
categorías diferentes y 101 estándares, normativas o recomendaciones relacionadas con el
e-Learning, elaboradas por 23 organizaciones, dentro de las cuales se encuentran las citadas
previamente.
También cabe destacar que los estándares e-learning se clasifican, en línea con la Secretaría de
Defensa de EE.UU (24). en los siguientes tipos:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
Metadata
Empaquetamiento
Secuencia
Información del alumno
Registros del alumno
Privacidad/Seguridad
Contenido Alumno Competencias
Interoperabilidad
Protocolos
Arquitectura
APIs
Figura 2. Carácter de los estándares e-Learning. Fuente (24). Elaboración propia.
Para ello, se basó en las mejoras proporcionadas por las iniciativas IMS y AICC. De la primera
tomó el sistema de descripción de cursos en XML y de la segunda el mecanismo de intercambio de
información mediante una API, obteniendo un Modelo de Referencia para Objetos de Contenidos
Intercambiables, en inglés Shareable Content Object Reference Model (SCORM).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
Las especificaciones de SCORM están organizadas como “libros” separados. SCORM ha sido
dividido en tres libros que se detallan a continuación:
2. Scorm Content Aggregation Model: contiene una guía para identificar y agregar recursos
dentro de un contenido de aprendizaje estructurado. Este libro describe una nomenclatura
para el contenido de aprendizaje, describe el SCORM Content Packaging
(empaquetamiento de contenidos) y hace referencia al IMS Learning Resource Meta-data
Information Model, el cual está basado en el IEEE LTSC Learning Object Metadata (LOM)
Specification, que fue el resultado de un esfuerzo en conjunto entre el IMS Global Learning
Consortium y la Alliance of Remote Instructional Authoring and Distribution Networks for
Europe (ARIADNE).
3. Scorm Run-Time Environment: incluye una guía para lanzar contenidos y hacerle un
seguimiento en un ambiente basado en Web. Este libro es derivado del CMI001 Guidelines
for Interoperability de la AICC.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
Referencias bibliográficas
(1) Clark, R. C., & Mayer, R. E. (2011). E-learning and the science of instruction : Proven guidelines
for consumers and designers of multimedia learning (3rd edition). Pfeiffer.
(4) UNESCO. (1998). Informe mundial sobre la educación 1998: Los docentes y la enseñanza en
un mundo en mutación. Madrid: UNESCO.
(5) Lupion Torres, P., & Rama, C. (2010). La Educación Superior a Distancia en América Latina y el
Caribe. Unisul.
(6) Garrison, D. R. (2011). E-learning in the 21st century: A framework for research and practice.
Taylor & Francis
(8) García Marcos, C., & Cabero, J. (2016). Evolución y estado actual del e-learning en la
Formación Profesional española. Revista Iboeroamericana de Educación a Distancia.
RIED, 19(2), 167-191.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
E learning: Conceptos, herramientas, implantación y normalización
(9) Cabero, J., & Gisbert, M. (2005). La formación en internet: Guía para el diseño de materiales
didácticos. MAD-Eduforma.
(11) García P., F. (2005). Estado actual de los sistemas e-learning. Teoría de la Educación.
Educación y Cultura en la Sociedad de la Información, 6(2). Recuperado el 21 de 09 de
2016, de
http://campus.usal.es/~teoriaeducacion/rev_numero_06_2/n6_02_art_garcia_penalvo.htm
(12) Area, M., & Adell, J. (2009). e-Learning: Enseñar y Aprender en Espacios Virtuales. En J. De
Pablos, Tecnología educativala formación del profesorado de la era de internet (págs. 393-
424). Málaga: Aljibe.
(13) Lewin, T. (19 de 11 de 2012). College of Future Could Be Come One, Come All. New York
Times. Recuperado el 14 de 10 de 2016, de http://massiveopenonlinecourses-
repository.yolasite.com/resources/12_11-19-12-Tamar%20Lewin-
College%20of%20Future%20Could%20Be%20Come%20One,%20Come%20All-NYT.pdf
(15) Boneu, J. (2007). Plataformas abiertas de e-learning para el soporte de contenidos educativos
abiertos. Contenidos educativos en abierto. Revista de Universidad y Sociedad del
Conocimiento (RUSC), 4(1), 36-47.
(16) Choudhury, H., & Khataniar, G. (2016). Choudhury, H., & Khataniar, G. Features Based
Comparison and Evaluation of E-learning Platform in Academic Environment. IJDACR
ISSN: 2319, 4. Recuperado el 05 de 10 de 2016, de
http://ijdacr.com/uploads/papers/40600-16-100.pdf
(17) Bolivar, J. (1 de 3 de 2011). 10 Rasgos del Aprendizaje 2.0. Recuperado el 2016, de Óptima
Infinito: http://www.optimainfinito.com/2011/03/10-rasgos-del-aprendizaje-20.html
(18) EHLERS, U. (2009). Web 2.0 – e-learning 2.0 – quality 2.0? Quality for new learning cultures.
En A. Inglis, Quality Assurance in Education (págs. 296-314).
(19) Ghirardini, B. (2014). Food and Agriculture Organization of the United Nations (FAO).
(20) Prendes, M. P. (2009). Plataformas de campus virtual de software libre: Análisis comparativo
de la situación actual en las universidades españolas. Informe del Proyecto EA-2008-0257
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Pérez Bou
(21) Pedruelo, M. R. (2004). El estándar SCORM para EaD. Universidad Nacional de Educación a
Distancia, Proyecto Fin de Carrera, Tesina del Máster en Ensenanza y Aprendizaje
Abiertos.
(22) Mansó Guerra, Y., & García Sánchez, A. (2013). PLATAFORMA EDUCATIVA ZERA,
ESTÁNDARES UTILIZADOS PARA LA GESTIÓN Y DISTRIBUCIÓN DE RECURSOS
EDUCATIVOS. XV Congreso Internacional de Informática en la Educación, "INFOREDU
2013".
(23) Hilera, J. R., & Hoya, R. (2010). Estándares de e-learning: Guía de consulta. Universidad de
Alcalá.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 34. Los sistemas de información geográfica.
Conceptos y funcionalidad básicos. El proyecto
gvSIG. Incorporación de la componente
geográfica en los sistemas de información
Por todo ello, el ser humano, desde hace siglos ha confeccionado mapas. Hoy en día
estos procesos mediante los cuales se trata de representar la realidad en un mapa, se
lleva a cabo por medio de los Sistema de Información Geográfica (SIG), con una
tendencia a ampliar y extender su uso para que pueda conocerse y gestionarse mejor
el territorio.
De acuerdo con la definición de The National Center for Geographic Information and
Analysis (NCGIA) un Sistema de Información Geográfica (SIG) es un sistema de
hardware, software y procedimientos elaborados para facilitar la obtención, gestión,
manipulación, análisis, modelado, representación y salida de datos espacialmente
referenciados, para resolver problemas complejos de planificación y gestión
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
En suma, los SIG son sistemas de gestión de bases de datos geográficas, que
permiten el manejo simultáneo de planos digitales y de los datos asociados a los
mismos. Constituyen una ayuda imprescindible para gestionar recursos y actividades
en los que la componente geográfica (el territorio) sea un aspecto crítico. Su utilización
permite el análisis de la localización y las relaciones espaciales entre dichos recursos
y actividades.
Los Sistemas de Información Geográfica (SIG, o GIS para el acrónimo en inglés) se han convertido
en los últimos años en herramientas de trabajo esenciales en el planeamiento urbano y en la
gestión del territorio. Su capacidad para modelizar, almacenar, recuperar, analizar, y representar
amplias extensiones de terreno con enormes volúmenes de datos espaciales, les han situado a la
cabeza de una gran cantidad de aplicaciones.
Los Sistemas de Información Geográfica se utilizan actualmente en ámbitos tan diversos como la
planificación de los usos del suelo, geomarketing, gestión de infraestructuras, planificación del
transporte y de las infraestructuras gestión de servicios, modelado de ecosistemas, valoración y
planificación del paisaje, análisis de impactos visuales, análisis de inmuebles y otros muchos.
Una forma más general y fácil de definir los SIG es la que considera la disposición, en capas, de
sus conjuntos de datos. "Serie de mapas de la misma porción del territorio, donde la localización
de un punto tiene las mismas coordenadas en todos los mapas incluidos en el sistema”. De esta
forma, es posible analizar sus características temáticas y espaciales para obtener un mejor
conocimiento de la zona.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Los Sistemas de Información Geográfica
1.1. Funcionalidad
El uso se los SIG se ha diversificado a la práctica totalidad de las actividades públicas o privadas.
Las funciones más frecuentes son:
• Buscar espacialmente: a partir de los atributos de una tabla, mediante filtros, podemos
obtener un resultado analizable tanto desde la propia tabla, como desde el visor
cartográfico.
• Presentar eficazmente las ideas: realización de planos y mapas temáticos que muestren la
información de un modo intuitivo de forma que facilite su interpretación.
• Tomar decisiones: como consecuencia de varios de los anteriores, pueden ser de gran
ayuda a la dirección de cara a tomar decisiones fundamentadas en base a un análisis
profundo de la situación.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
Las principales cuestiones que puede resolver un Sistema de Información Geográfica, ordenadas
de menor a mayor complejidad, son:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Los Sistemas de Información Geográfica
En cuanto al formato, podemos comenzar analizando las ventajas de utilizar una representación
digital de datos geográficos frente a la versión analógica.
Digital Analógica
Difícil de actualizar, implica rehacer el mapa
Fácil de actualizar
completo
Transferencia sencilla y rápida Transferencia lenta
(p. ej. vía Internet) (p. ej. vía correo)
Espacio de almacenamiento relativamente Requiere espacios de almacenamiento
pequeño (dispositivos digitales) grandes (p.ej.: cartotecas tradicionales)
Fos mapas en papel se estropean con el
Fácil de mantener
tiempo
Análisis difícil e inexacto (p.ej.: medición de
Análisis automático y fácil
áreas y distancias)
Los datos SIG normalmente representan objetos del mundo real (carreteras, usos del suelo,
altitudes). Se pueden almacenar de dos formas: raster y vectorial.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
Los ficheros raster o de imagen, almacenan la información en forma de matriz de celdas (o píxeles)
organizadas en filas y columnas (o una cuadrícula) en la que cada celda contiene un valor que
representa información. Como ejemplo, se puede hablar de las fotografías aéreas o de los Modelos
Digitales del Terreno (MDT). Se suelen utilizar para representar elementos continuos.
Formatos típicos de ficheros raster son: geoTIFF (.tif), Enhanced Compression Wavelet (.ecw),
mrSID (.sid), imagen raster (.img), jpg georreferenciado (.jpg) y ESRI grid.
Los ficheros vectoriales almacenan información geométrica de los elementos gráficos, tales como
son las coordenadas de cada punto que define el elemento. Se suelen utilizar para representar
elementos discretos. Normalmente se representan elementos de tipo punto, línea y polígono.
Veamos a continuación los formatos vectoriales más típicos en el ámbito de los SIG:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Los Sistemas de Información Geográfica
• Bases de datos espaciales: pueden ser de diferentes tipos (PostgreSQL + PostGIS, Oracle
Spatial, mySQL, etc). Aporta mejoras respecto a los shapefiles como son: mejora para el
soporte para usuarios múltiples, consultas complejas ad hoc, y el rendimiento con grandes
conjuntos de datos.
• Formatos CAD: como son DXF, DWG o DGN, normalmente utilizados para importar la
geometría de los elementos, ya que no son los adecuados para almacenar la información
alfanumérica que acompaña a los elementos gráficos.
• Cobertura: formato que tiene su origen en productos de ESRI (como ARC/INFO) contiene
datos espaciales (ubicación) y de atributos (descriptivos) de las entidades geográficas. Las
coberturas utilizan un conjunto de clases de entidades para representar entidades
geográficas. Cada clase de entidad almacena un conjunto de puntos, líneas (arcs),
polígonos o anotaciones (texto). Las coberturas pueden tener una topología, que determina
las relaciones entre las entidades. Se almacenan como directorios dentro de los cuales se
incluye cada clase de entidad como conjunto de archivos.
• GML/XML: GML (Geography Markup Language) es el estándar XML del Open Geospatial
Consortium (OGC, Organismo cuyo fin es la definición de estándares abiertos e
interoperables dentro de los SIG) para representar información de elementos espaciales.
XML (eXtensible Markup Language o lenguaje de marcas extensible) es el formato de
intercambio de los metadatos.
• KML: inicialmente desarrollado para Google Earth, es estándar de la OGC, también es muy
popular y ha hecho que se haya extendido su uso. KML significa Keyhole Markup
Language, y es un lenguaje de marcado basado en XML para representar datos
geográficos en tres dimensiones.
Ventajas Raster:
• La estructura de los datos es sencilla, con una secuencia de pixels en la que cada uno
tiene uno o varios valores de intensidad de una propiedad asociados.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
Inconvenientes Raster:
• La calidad de representación (a no ser que reduzcamos en gran medida el tamaño del pixel
y, por tanto, aumentemos el tamaño del fichero) puede ser peor, ya que tiende a mostrar
“dientes de sierra” o bordes no redondeados. Esto puede ser especialmente problemático
cuando se visualiza la información con un alto nivel de zoom.
Ventajas Vectorial:
• La calidad de representación puede ser mejor para determinado tipo de elementos. Es más
independiente del nivel de zoom que utilicemos en cada momento.
• Las relaciones topológicas entre los elementos las gestiona de forma más eficiente,
especialmente en el caso de networks o redes (ej. cálculo de rutas).
Inconvenientes vectorial:
• Las operaciones de superposición suelen ofrecer peores resultados que en el otro caso.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Los Sistemas de Información Geográfica
Raster:
• Grids o mallas de celdas: almacena valores asociados a cada celda. Se utilizan en forma
de mapas de superficie, representando datos que cambian continuamente en un entorno
(superficie). Ofrecen un método efectivo para almacenar la continuidad en forma de
superficie. Ejemplos de magnitudes que se representan de forma apropiada con este tipo
de elementos, son elevación sobre el nivel del mar, precipitaciones, temperatura, densidad
de población,…
• Modelo Digital del Terreno (MDT) es una estructura numérica de datos que representan la
distribución espacial de una variable cuantitativa y continua. Representa generalmente la
topografía del terreno mediante las alturas en cada punto (píxel) de un territorio.
Vectoriales
• Puntos: hay entidades geográficas que como mejor pueden ser expresadas es por un único
punto de referencia, ya que lo único que nos interesa es su simple ubicación, sin
importarnos la forma del elemento representado. Transmiten la menor cantidad de
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
• Líneas: son elementos gráficos unidimensionales o polilíneas que se usan para representar
rasgos lineales. Importa por dónde pasa, su recorrido pero no su forma en cuanto a huella
que ocupa sobre el territorio. Normalmente incorporan como propiedad intrínseca su
longitud. Ejemplos: líneas de autobús, canalizaciones, ríos, caminos, ejes de calle,
ferrocarriles, líneas topográficas,…
Existen diferentes métodos para obtener datos geográficos, como pueden ser topografía, geodesia,
posicionamiento por satélite, fotogrametría, teledetección, LIDAR (medición mediante un haz láser)
o, escaneo de documentos en papel, entre otros. Cuando la información es levantada directamente
en campo con métodos topográficos y geodésicos, obtenemos una lista de coordenadas (x, y, z)
con la que se puede dibujar el elemento a representar. Mediante una serie de procesos
cartográficos, se pueden obtener planos o mapas topográficos o temáticos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Los Sistemas de Información Geográfica
una serie de fotografías, analógicas o digitales, con la finalidad de obtener imágenes fidedignas del
área de estudio y poder realizar con éstas, cartografía para diferentes fines. Previo a su uso, se
deben realizar una serie de procesos que permitan obtener imágenes que cumplan con una serie
de requisitos, tales como: datum geodésico de referencia, proyección cartográfica, resolución,
escala y exactitud, entre otras. Finalmente, se lleva a cabo la restitución, que bajo un
procedimiento analógico, analítico o digital, a partir de pares estereoscópicos (un par de imágenes
consecutivas) se determinan la posición, dimensión, vista de planta y orientación de los objetos
representados en las fotografías, así como el relieve topográfico del territorio de estudio.
2. El proyecto gvSIG
gvSIG es un proyecto de desarrollo en software libre con licencia GPL (software libre) que surge
como un cliente SIG destinado a satisfacer las necesidades de los usuarios de la Generalitat
Valenciana. Inicialmente se financió con fondos europeos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
Dentro de este proceso adquiere un especial relieve la migración del software de SIG y CAD, ya
que por las características de la Conselleria eran relevantes los usuarios que trabajaban, de una u
otra manera, con información cartográfica.
A esto se suma que dentro del mundo del software libre, en esos momentos, el SIG y el CAD eran
áreas prácticamente desconocidas. Se realizó un estudio de la comunidad del software Libre,
comparando los proyectos relacionados con los Sistemas de Información Geográfica con el
software propietario más extendido en el mercado y teniendo en cuenta las necesidades de una
administración con las características de la Conselleria de Infraestructuras y Transporte.
Para conocer estas necesidades se diseñó una encuesta que recogía la máxima información
posible de los usuarios que en aquel momento trabajaban con información geográfica, así como de
los posibles usuarios potenciales. La encuesta recogía información de todo tipo, desde las tareas y
funciones de cada uno de los encuestados al hardware y software que utilizaba, tanto gráfico como
no gráfico, realizando especial hincapié en las herramientas SIG / CAD utilizadas, en los formatos,
tipos de datos cartográficos, operaciones habituales, frecuencia de actualización, programación a
medida,…
Con toda la información recogida, tanto del estudio de necesidades como de software disponible
en la comunidad del software libre, se concluyó que no se encontraba lo suficientemente avanzado
ningún proyecto que permitiera la migración de software propietario a abierto en los campos de los
Sistemas de Información Geográfica y Diseño Asistido por Ordenador, pero sí que se podía
abordar la tarea de poner en marcha un proyecto de desarrollo encaminado a cubrir las carencias
existentes.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Los Sistemas de Información Geográfica
• De código abierto: el código fuente original con el que fue escrito y posteriores
modificaciones, está disponible.
• Sin licencias: una vez finalizado el desarrollo no hay que pagar nada por cada instalación
que se realice, sin límite de número.
• Interoperable con las soluciones ya implantadas: es capaz de acceder a los datos de otros
programas propietario sin necesidad de cambiarlos de formato.
• Sujeto a estándares: sigue las directrices marcadas por el Open Geospatial Consortium
(OGC) y la Unión Europea.
Desde el año 2010 la gestión y el mantenimiento del catálogo tecnológico gvSIG es llevado a cabo
por la Asociación gvSIG, una asociación que engloba tanto entidades empresariales como no
empresariales (universidades, administraciones públicas, institutos geográficos, institutos
tecnológicos, etc.).
Anualmente se organizan jornadas sobre el proyecto en diferentes localizaciones. Las que más
ediciones han celebrado son las que tienen lugar en Valencia. También se realizan en México,
Perú, Brasil y, con carácter itinerante, en Latinoamérica y Caribe.
Es decir, gvSIG es un software integrador, capaz de trabajar con información de cualquier tipo u
origen, tanto en formato raster como vectorial. Además, permite trabajar con formatos de otros
programas como Autocad, Microstation o ArcView, de acuerdo con los parámetros de la OGC
(Open Geospatial Consortium) que regula los estándares abiertos e interoperables de los Sistemas
de Información Geográfica. Las herramientas que implementa permiten una gran precisión en
edición cartográfica, incluye funciones avanzadas para usos en teledetección, morfometría e
hidrología, y otras funciones básicas como diseño de impresión y soporte de los formatos más
populares, tanto vectoriales como de imágenes.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
Es la versión de escritorio disponible para entornos Windows (32 y 64 bits), varias distribuciones de
Linux y MacOS (únicamente en versión portable). Se trata de un SIG potente, fácil de usar,
interoperable y cuyo uso se ha extendido por numerosos países del mundo. Se puede afirmar que
es el producto estrella del proyecto
gvSIG Desktop es capaz de trabajar con una amplia variedad de formatos, vectoriales y raster,
ficheros, bases de datos y servicios remotos, ofreciendo todo tipo de herramientas para analizar y
gestionar información geográfica. Está diseñado para ser fácilmente extensible, permitiendo una
mejora continua de la aplicación y el desarrollo de soluciones a medida.
La información se estructura y organiza por proyectos. Cada proyecto puede contener una serie de
documentos de diversos tipos:
• Tablas: permiten la gestión de las tablas asociadas a las capas de información u otras sin
vinculación geográfica pero que pueden ser enlazadas con las anteriores.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Los Sistemas de Información Geográfica
gvSIG Mobile es un SIG orientado a dispositivos móviles, ideal para proyectos de captura y
actualización de datos en campo.
Se caracteriza por disponer de una interfaz amigable, siendo capaz de acceder a los formatos más
comunes. Cuenta con un amplio número de herramientas SIG y GPS ideales para trabajar con
información de naturaleza geográfica.
Tiene como objetivo ampliar las plataformas de ejecución de gvSIG Desktop a una gama de
dispositivos móviles, para dar respuesta a las necesidades de un creciente número de usuarios de
soluciones móviles que desean hacer uso de un SIG en diferentes tipos de dispositivos.
La mayor parte de la información que gestiona una organización, ya sea de carácter público o
privado, es susceptible de ser georreferenciada, es decir, se puede ubicar en una posición
geográfica sobre una base cartográfica, ya sea a partir de sus coordenadas, su dirección postal, un
cruce de dos o más vías o la división administrativa a la que pertenece.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
Está demostrado que el cerebro humano procesa de manera mucho más rápida y eficaz las
imágenes que la información alfanumérica. Por eso es mucho más eficaz ver un mapa, en papel o
en una pantalla, que leer un escrito que contenga toda la información cartografiada, o que una
tabla con los valores de las variables que definan el territorio.
4. Conclusiones/Resumen
Los Sistemas de Información Geográfica han extendido en gran medida su ámbito de aplicación Su
utilidad es enorme tanto en la esfera pública como en la privada. Se trata de sistemas que
combinan la información gráfica, en forma de mapas con información alfanumérica en forma de
tablas. Con ello podemos realizar operaciones como búsquedas o análisis espaciales que sin los
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Los Sistemas de Información Geográfica
SIG serían muy complejos de realizar. La información se suele estructurar en capas que
representan diferentes objetos sobre un determinado espacio geográfico.
Un elemento fundamental de los SIG son los datos. Existen diferentes procedimientos de obtención
y se clasifican, a grandes rasgos, en raster y vectoriales. Entre los raster, tenemos las fotografías
aéreas o las grid, mientras que los datos vectoriales suelen representar elementos mediante
puntos, líneas o polígonos.
Finalmente, hay que destacar el hecho de que un porcentaje muy alto de la información que
maneja una organización es susceptible de ser georreferenciada. Con la conversión/adaptación de
datos inicialmente sin componente geográfica para que la incluyan, se amplían las posibilidades en
el tratamiento de la información y se facilita su incorporación a los sistemas de apoyo a la toma de
decisiones
Referencias bibliográficas
(1) Bosque Sendra, J. , García, R. (2000). El uso de los Sistemas de Información Geográfica en la
Planificación territorial. Madrid. Anales de Geografía de la Universidad complutense
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
https://langleruben.wordpress.com/
http://www.esri.com
https://commons.wikimedia.org
https://es.wikipedia.org
http://www.gvsig.com/
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 35. Infraestructuras de datos espaciales.
Definición y componentes. Legislaciones vigentes
(INSPIRE y LISIGE). Arquitectura de una IDE.
Servicios web de una IDE: mapas, catálogo,
objetos geográficos, geoprocesamiento y
observación de sensores. Aplicaciones
geoespaciales
• Introducir los elementos comunes que han de guiar la actuación de las AA.PP.
en materia de interoperabilidad.
• Aportar un lenguaje común para facilitar la interacción de las AA.PP., así como
la comunicación de los requisitos de interoperabilidad a la industria.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
Asimismo, es necesario establecer un marco legal que asegure que los datos
producidos por las instituciones serán compartidos y que promueva su uso entre los
ciudadanos. En este ámbito, aparece la Directiva INSPIRE a nivel europeo y su
transposición al ordenamiento jurídico español, la conocida como LISIGE (Ley sobre
las Infraestructuras y los Servicios de Información Geográfica en España).
Los estándares abiertos son básicos en el entorno de las IDE para garantizar una
correcta comunicación entre clientes y servidores, y su adopción implica una larga
serie de ventajas, aumentando las posibilidades de uso de la IDE y la potencia de los
datos y herramientas que se incluyen en estas. Existen diversas organizaciones que
desarrollan estos estándares, siendo OGC e ISO las más relevantes en el campo de la
información geográfica
1. Definición y componentes
1.1. Definición
Una Infraestructura de Datos Espaciales (IDE) es un sistema informático integrado por un conjunto
de recursos (catálogos, servidores, programas, aplicaciones, páginas web,…) que permite el
acceso y la gestión de conjuntos de datos y servicios geográficos (descritos a través de sus
metadatos), disponibles en Internet, que cumple una serie normas, estándares y especificaciones
que regulan y garantizan la interoperabilidad de la información geográfica.
La puesta en práctica de un proyecto IDE se materializa a través de un Geoportal (sitio web que
contiene, al menos, un cliente que permite la utilización de servicios remotos de información
geográfica) que ofrezca como mínimo las siguientes tres funcionalidades:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
1.2. Componentes
Las IDE están compuestas por una serie de elementos que podemos agrupar en
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
1.2.1. Datos
Antes de la aparición de las IDE, los datos geográficos se encontraban dispersos y fragmentados
en diferentes administraciones, organismos y/o empresas. Esta dispersión provocaba situaciones
problemáticas. Se duplicaban esfuerzos en la captura y mantenimiento de la información
geográfica, ya que se podían solapar las acciones de diferentes actores. Adicionalmente, era
complicado encontrar cartografía apropiada para un determinado fin, ya que había que solicitarla a
distintos organismos, cada uno con sus peculiaridades, y habitualmente la información obtenida no
era coherente.
• Datos de Referencia: son los que forman el Mapa Base o mapa sobre el que se referencian
los datos, tales como la cartografía base, fotografías aéreas, redes de transporte red
hidrológica, el relieve, los límites administrativos, etc.
• Datos Temáticos: son datos que proporcionan información sobre un fenómeno concreto:
usos del suelo, clima, fenómenos naturales, actividades económicas, educación,
vegetación, población, etc.
En relación a los datos, la Directiva INSPIRE establece que se aplicará a los conjuntos de datos
espaciales que cumplan las siguientes condiciones:
• Se refieran a una zona sobre la que un Estado miembro tenga y/o ejerza jurisdicción.
• Obren en poder de alguna de las partes que figuran a continuación, o de una entidad que
actúe en su nombre:
Una autoridad pública, después de ser producidos o recibidos por una autoridad
pública, o sean gestionados o actualizados por dicha autoridad y estén comprendidos
en el ámbito de sus actividades públicas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
1.2.2. Metadatos
Los Metadatos de la información geográfica son datos que describen a los datos que la conforman.
Es decir, los Metadatos de la información geográfica informan a los usuarios sobre las
características de los datos geográficos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
• Descriptivo.
• Administrativo.
• Técnico y estructural.
Con toda esta información incluida en los metadatos, los usuarios pueden conocer en profundidad
los datos y puedan buscar y seleccionar los que más les interesen. Esto permite explotar los datos
de la manera más eficaz posible.
1.2.3. Estándares
La creación y adopción de estándares, entendiendo como tales especificaciones dadas por una
autoridad relativa a una materia, hace posible la interoperabilidad y que los sistemas se entienden.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
usen, los formatos de intercambio, las descripciones de los datos, las especificaciones de
servicios,…
• OGC (Open Geospatial Consortium) que desarrolla la iniciativa más importante relacionada
con la interoperabilidad a nivel de información geográfica.
1.2.4. Servicios
Los servicios IDE ofrecen funcionalidades accesibles vía Internet mediante un navegador u otro
tipo de aplicación geomática.
• Servicio de Mapas en Web o Web Map Service (WMS): permite la visualización de manera
dinámica de cartografía generada a partir de una o varias fuentes como pueden ser un
fichero de datos de un SIG, un mapa digital, una ortofoto o una imagen de satélite. Con
este servicio, los clientes no obtienen propiamente datos originales, sino una imagen digital
que permite la representación de estos mismos datos espaciales en la pantalla de su
ordenador. Se puede consultar cierta información disponible acerca del contenido de la
cartografía que se visualiza.
• El servicio WMTS, o servicio de mapas teselado, igual que el WMS, proporciona una
imagen digital a partir de datos geográficos, pero aumenta considerablemente la velocidad
de respuesta, ya que parte de colecciones de teselas o porciones de imágenes ya
pregeneradas, a unos intervalos de escala definidos.
• Servicio de Características en Web o Web Feature Service (WFS): permite acceder a los
datos en formato vectorial mediante un lenguaje específico denominado GML (Geographic
Markup Language). Se accede al archivo que define la geometría descrita por un conjunto
de coordenadas de un objeto cartográfico.
• Servicio de Catálogo (CSW). Permite buscar y consultar los registros de metadatos de los
conjuntos de datos y de los servicios web de la infraestructura de datos espaciales. Es
decir, da la posibilidad de buscar información de datos, servicios, aplicaciones y en general
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
de todo tipo de recursos. Permite la gestión de los Metadatos para llevar a cabo
búsquedas.
Para soportar los grandes volúmenes de información que se gestionan a través de las IDE, es
necesaria una infraestructura tecnológica que subyace a todo el sistema.
No podemos obviar la gran importancia de Internet en el campo de las IDE, dado que es necesario
que existan redes accesibles para los usuarios y que estas redes soporten el tráfico producido
cuando un usuario realiza una petición a un servidor y este le responde con la información
geográfica solicitada. Es decir, Internet es el medio en el que la IDE se desarrolla es efectiva.
1.2.6. Políticas
Dado que la parte principal del trabajo de captura y mantenimiento de la información geográfica se
lleva a cabo desde el sector público, las políticas que éste determine con respecto a su
mantenimiento, recolección y uso son las que mayor impacto tienen sobre las IDE. Ello no quiere
decir que no afecte al sector privado, ya que es uno de los principales interesados en el uso de la
información proporcionada por una IDE.
1.2.7. Usuarios
Constituye uno de los principales pilares dentro de una IDE, en cuanto a consumidores de la
información geográfica compartida. Es importante conocer quiénes son los usuarios potenciales de
cada una de las IDE y las necesidades que van a tener para poder definir los roles e identificar y
evitar conflictos de interés entre usuarios.
2. Legislación vigente
Cuando hablamos de Infraestructura de Datos Espaciales a nivel de legislación, dos son los
instrumentos fundamentales: La Directiva INSPIRE a nivel europeo y su transposición al marco
legal español, la conocida como LISIGE.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
La Directiva 2007/2/CE fue desarrollada en colaboración con los Estados miembros y países que
se encontraban en proceso de adhesión con el objetivo de hacer disponible la información
geográfica relevante y de calidad, de forma que se permitiera la formulación, implementación,
monitorización y evaluación de las políticas de impacto o de dimensión territorial de la Unión
Europea.
Para asegurar que las IDE de los diferentes Estados miembros de la Unión sean compatibles e
interoperables en un contexto comunitario y transfronterizo, la Directiva exige que se adopten una
serie de Normas de Ejecución específicas para las áreas de metadatos, conjuntos de datos,
servicios de red, servicios de datos espaciales, y servicios de uso compartido y seguimiento e
informes. Este conjunto de normas se consideran Decisiones o Reglamentos de la Comisión y, por
tanto, son de obligado cumplimiento en cada uno de los países miembros de la Unión. La
implementación técnica de estas normas se realiza mediante las Guías Técnicas o Directrices,
consistentes en una serie de documentos técnicos basados en estándares y normas
internacionales.
La LISIGE supone la renovación conceptual de la norma básica sobre cartografía que estaba
vigente en España hasta ese momento. Concretamente, se trataba de la Ley 7/1986, de 24 de
enero, de Ordenación de la Cartografía, que se desarrolló a nivel reglamentario mediante el Real
Decreto 1545/2007, de 23 de noviembre, que regulaba el Sistema Cartográfico Nacional.
La LISIGE se aplica a todos los datos geográficos que cumplan las siguientes condiciones:
• Se refieran a una zona geográfica del territorio nacional, el mar territorial, la zona contigua,
la plataforma continental y la zona económica exclusiva, generada o bajo responsabilidad
de las Administraciones públicas y sobre la que el Estado tenga jurisdicción.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
Los datos geográficos y servicios proporcionados por las distintas Administraciones Públicas u
organismos del sector público integrados en la Infraestructura de Información Geográfica de
España estarán disponibles a través del Geoportal de la Infraestructura de Datos Espaciales de
España (IDEE), cuyo responsable de su mantenimiento es la Dirección General del Instituto
Geográfico Nacional.
Hay algunas otras normas del ordenamiento jurídico español que pueden tener algún punto de
posible interacción con la LISIGE:
Hay que destacar que existe un Informe sobre el alcance de la Directiva INSPIRE y su
incumplimiento. Su contenido incluye:
• Información sobre los mecanismos y procedimiento de los que dispone el Estado español
para repercutir una penalización económica, en caso de ser impuesta a España en un
ámbito gubernamental concreto, a otro nivel de la administración, como puede ser una
comunidad autónoma, una diputación provincial o un municipio.
En cuanto a la Normativa aplicable en la Comunitat Valenciana, hay que destacar una Resolución
de 2010 por la que se dispone la publicación del convenio de colaboración entre la Administración
General del Estado, a través de la Presidencia del Consejo Superior Geográfico, y la Generalitat, a
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
través de la Conselleria de Medio Ambiente, Agua, Urbanismo y Vivienda, por el que la Generalitat
Valenciana se integra en el Sistema Cartográfico Nacional (SCN) y se establecen los contenidos
del Real Decreto 1545/2007 que regula el SCN.
El Instituto Geográfico Nacional, a través del Centro Nacional de Información Geográfica tiene
encomendada la función de la planificación y gestión de la Infraestructura de Información
Geográfica de España, así como la armonización y normalización, en el marco del Sistema
Cartográfico Nacional, de la información geográfica oficial. Igualmente, la planificación y desarrollo
de servicios de valor añadido y de nuevos sistemas y aplicaciones en materia de información
geográfica, especialmente para el aprovechamiento en el ámbito de las Administraciones Públicas.
La IDEE Tiene como objetivo integrar a través de Internet, los datos, metadatos, servicios e
información de tipo geográfico que se producen en España, tanto a nivel estatal, como a nivel
autonómico y local, cumpliendo una serie de condiciones de interoperabilidad (normas, protocolos,
especificaciones) y conforme a sus respectivos marcos legales. Es decir, IDEE es el resultado de
la integración de:
• Todas las IDE establecidas por los productores oficiales de datos a nivel tanto estatal como
autonómico y local.
En cada Comunidad Autónoma y cada organismo de la Administración General del Estado (AGE)
hay un representante, responsable de la implantación de la IDE en su respectivo ámbito.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
La IDECV permite:
• Acceder, de manera fácil, cómoda, eficaz, confiable y a bajo costo, a los datos geográficos
de los asociados a la IDECV.
La creación de una IDE necesita una arquitectura informática que la soporte y que garantice las
comunicaciones entre todos los actores en la información geográfica. Las IDE se basan en el
modelo cliente/servidor (C/S) en la que los componentes hardware y software se comunican a
través de redes, y un usuario, mediante un programa llamado cliente solicita un servicio a otro
programa llamado servidor que normalmente está situado en una máquina remota. El servidor
recibe la solicitud, la procesa y envía la respuesta a la solicitud del usuario. Un servidor es capaz
de atender a múltiples clientes al mismo tiempo y es el responsable de consultar la información y
procesarla de acuerdo a las solicitudes de los clientes.
Para que esto funcione, es necesaria una estandarización y una arquitectura de referencia basada
en servicios de información y cuyos componentes estandarizados e interoperables permiten las
operaciones más habituales solicitadas por los usuarios de la información geográfica. En el caso
que se refiere a este tema, hay una serie de geoservicios que se realizan gracias a diferentes
aplicaciones especializadas. Los geoportales son un ejemplo de servicio que agrupa diferentes
aplicaciones cliente especializadas que permiten acceder a la variedad de geoservicios
implementados en las IDE como son los servidores de mapas, de catálogo, de metadatos y de
nomenclátor. Un cliente puede ser tanto un navegador de Internet que consulta un geoportal, como
un programa de GIS especializado o incluso un dispositivo móvil desde el que se accede a la
información.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
La arquitectura Web se caracteriza por ser una arquitectura cliente-servidor en la que los clientes
(como pueden ser los navegadores Web) realizan peticiones a servicios Web, que procesan las
peticiones de los navegadores (realizadas a través del protocolo HTTP) y devuelven un resultado
(páginas HTML, imágenes, XML, etc.).
XML se utiliza en las tecnologías IDE, en la descripción de los servicios web de OGC y en la
descripción de los conjuntos de datos a través de sus metadatos.
GML está basado en la gramática XML y fue creado con el objetivo de describir objetos
geográficos reales o abstractos para facilitar el intercambio a través de Internet. Permite la
inclusión de información sobre localización y forma del objeto, o datos no espaciales que describen
características del objeto geográfico.
Gracias al trabajo desarrollado por organizaciones como OGC e ISO, ha sido posible la definición
de una arquitectura de referencia, cuando hablamos de las IDE, basada en servicios de
información, independiente de la tecnología con que se implementen.
Cada uno de los geoservicios de una IDE está disponible a través de sus propias reglas de
comunicación. Dichas reglas constituyen el interfaz con el cliente y son el medio mediante el que
se realizan las peticiones al servidor. Las peticiones que realiza el programa cliente utilizan una
sintaxis estandarizada de acuerdo con las especificaciones, y es independiente de cómo lo
resuelva el servidor. Debido a que la comunicación con un geoservicio se realiza mediante una
interfaz estandarizada, un geoservicio puede utilizar otro geoservicio y también un cliente puede
utilizar la respuesta de un geoservicio para otro geoservicio.
La arquitectura más básica para una IDE consiste en un servidor que cumpla con las funciones de
servidor web para ofrecer geoservicios y que al mismo tiempo, tenga acceso a los datos
directamente. También existen otras arquitecturas más complejas que permiten que haya
diferentes servidores de bases de datos para grandes volúmenes de información, servidores web
dedicados, servidores para geoservicios especializados, servidores especializados para la
conexión de Internet, cortafuegos y servidores de seguridad para controlar el acceso a la
información. Por la parte de cliente, podemos agruparlos en 2:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
Un nodo IDE se sustenta sobre una infraestructura tecnológica y un equipamiento adecuado a los
requisitos que tiene que cumplir. La disponibilidad de los servicios, su rendimiento y su usabilidad
van a depender en gran medida de esa estructura, por lo que se hace necesario realizar un
esfuerzo importante para definir adecuadamente cada uno de los componentes.
• Sistemas de almacenamiento.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
La visión IDE es una aproximación a SOA, en la que las interfaces estandarizadas de servicios son
la clave para permitir que los servicios geoespaciales puedan comunicarse entre sí de una manera
interoperable, en respuesta a las necesidades de los usuarios.
• Servicios que permitan el acceso a servicios de datos espaciales: permiten definir los datos
de entrada y de salida o un flujo de trabajo que espera un servicio espacial, o definir una
cadena de servicios que combine múltiples servicios. Asimismo, permite definir la interfaz
de un servicio web que gestione flujos de trabajo o cadenas de servicios.
Entrando en un mayor nivel de detalle, vamos a nalizar cada uno de los siguientes servicios:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
La visualización de mapas e imágenes, se puede considerar la operación más básica que realizan
los SIG. Para visualizar la información geográfica, es necesario soportar los formatos en los que se
puede encontrar almacenada dicha información. Asimismo, se deben gestionar los distintos
sistemas de referencia espacial a los que pueden estar referidos los datos. Se ha de definir
también el modo en que se representa la información (simbología y estilos).
El Servicio de Visualización, también conocido por las siglas WMS produce mapas en la web de
forma dinámica a partir de información geográfica. El WMS genera una imagen digital como una
representación de la información geográfica que esta almacenada en una base de datos, adaptado
para la visualización en una pantalla de ordenador. Por tanto, esta imagen digital no consiste en
los propios datos, sino en una imagen de los mismos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
El servicio de mapas teselado o Web Map Tile Service (WMTS) sirve mapas digitales utilizando
teselas (representación pictórica rectangular de datos geográficos, normalmente parte de un
conjunto de tales elementos, cubriendo una extensión contigua espacialmente) de imágenes
predefinidas. Tiene niveles de escala predefinidos y en cada nivel de escala un número de teselas
o imágenes. Este servicio puede ser más rápido y eficiente que los servicios WMS.
El catálogo mejora el acceso a los datos, permitiendo su localización por temáticas, palabras clave,
localización geográfica, fecha, formato, escala, organización, ranking de más visitados y últimas
novedades. El catálogo es dinámico y está en continuo crecimiento.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
El Catálogo de datos del IDECV contiene en la actualidad más de 500 metadatos, donde se
describen los datos espaciales, se muestran miniaturas y el acceso a visores. Se basa en
GeoNetwork. Forma parte la Infraestructura de Datos Espaciales de España (IDEE) y ofrece
información relativa a la información geográfica (datos y servicios) del ICV y de otros organismos
que aportan información a la IDECV.
Los metadatos generados por el ICV cumplen con el Núcleo Español de Metadatos (NEM). Los
metadatos conformes con la normativa permiten su interoperabilidad, no solo en el territorio
español sino también en el ámbito europeo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
El Servicio de Descarga WFS define las operaciones web para la consulta, acceso y edición los
objetos geográficos (Features en inglés) vectoriales.
Por tanto, el servicio Web Feature Service WFS está relacionado con los datos de tipo vectorial, y
a través de él se sirven directamente las entidades de un dato vectorial con sus geometrías y datos
alfanuméricos asociados. Desde este punto de vista, acceder a un servicio WFS es similar a
acceder a una capa vectorial cualquiera o a una base de datos, ya que el SIG puede recuperar la
información correspondiente (tanto la componente geográfica como la temática de cada entidad) y
operar con ella.
Del mismo modo que hemos visto que dentro del paradigma IDE se pueden servir datos, podemos
analizar que también pueden servirse procesos sobre esos datos. Así pues, existen procesos
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
remotos a los que los clientes pueden acceder. Es necesaria una estandarización en cuanto a la
forma de acceso a estos servicios y la forma en que los clientes realicen las peticiones de
procesos y la transmisión o definición de los datos que han de tomarse para esos procesos.
El estándar Web Processing Service (WPS) de OGC está enfocado a definir este marco. Define
una interfaz estándar que facilita la publicación de procesos y su uso posterior por parte de
clientes. Cuando hablamos de proceso nos referimos a cualquier algoritmo, cálculo o modelo que
opere sobre datos georreferenciados.
SOS devuelve las respuestas de las observaciones siguiendo la codificación Observations &
Measurements (O&M) y en Sensor Model Language (SensorML) para información sobre sensores.
6. Aplicaciones geoespaciales
Hay una gran variedad de aplicaciones geoespaciales, muchas de ellas Open Source y que se
pueden clasificar de muy diversas formas. Van desde aplicaciones SIG de usuario, ejecutables
desde diferentes entornos, hasta herramientas de programación. A continuación se incluye una
lista no exhaustiva de tipos de aplicaciones/herramientas, con una breve descripción de las más
importantes de cada grupo:
• Servidores Web.
• Catálogo de Metadatos.
• Bibliotecas Geoespaciales.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
Los clientes SIG de escritorio siguen siendo considerados como las aplicaciones principales del
sector, y hablar de un SIG implica por lo general hacerlo de una aplicación de escritorio antes que
de otro tipo. Normalmente son soluciones en general completas que cubren la totalidad de
necesidades que se presentan en el desarrollo de proyectos SIG, y por ello constituyen las
herramientas primordiales para llevar dichos proyectos a cabo.
• ArcGIS: es, probablemente, el software SIG comercial más utilizado y extendido del
mundo. Es un producto de ESRI, principal referente del sector. Es un sistema muy
completo que permite recopilar, organizar, administrar, analizar, compartir y distribuir
información geográfica.
• GvSIG: es un software Open Source, con origen en la Generalitat Valenciana. Tiene una
interfaz sencilla, es compatible con los formatos más comunes, tanto vectorial como raster.
En términos de IDE, una de las principales características es la implementación de
servicios OGC: WMS, WFS, WCS, WMTS, Servicio de Catálogo y Servicio de
Nomenclátor.
Incluyen servicios que nos permiten publicar mapas online. Estos sistemas están revolucionando la
sector al permitir que cualquier persona con datos SIG pueda publicar y compartir con todo el
mundo sus mapas web e incluso crear aplicaciones de mapas web interactivas.
• CartoDB: es un software Open Source. Tiene dos partes fundamentales, un editor para
importar datos, crear mapas temáticos y publicarlos, y una plataforma que permite utilizar
varias APIs para construir conjuntos de datos geoespaciales más complejos y poder crear
nuestras propias aplicaciones.
• MapBox: es un software Open Source que permite diseñar y publicar mapas en múltiples
medios de una manera fácil y accesible. Utiliza los datos de callejero de OpenStreetMap.
• My Maps: es una herramienta que permite crear de una manera sencilla mapas sobre la
base de Google Maps para poder compartirlos fácilmente. Se necesita tener una cuenta de
Google.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
Es una aplicación en Internet con la que podemos visualizar y tratar la Información geográfica a
través de unas herramientas básicas de manipulación y navegación. La mayoría son Open Source.
• MapFish: cuenta con licencia BSD. Es un framework muy completo y flexible para construir
aplicaciones Web.
Una Base de Datos Geográfica es un conjunto de datos geográficos organizados de tal manera
que permiten la realización de análisis y la gestión del territorio dentro de aplicaciones de Sistemas
de Información Geográfica (SIG). Además, se utiliza de soporte para la implantación de servicios
geográficos relacionados con las Infraestructuras de Datos Espaciales (IDE). La mayor parte de los
Sistemas Gestores de Bases de Datos Geográficas (SGBDG) son de tipo relacional.
• PostGIS: es una base de datos multiplataforma, con licencia GNU/GPL. Ofrece soporte
espacial a la base de datos objeto-relacional PostgreSQL. Puede ser usada como base de
datos subyacente para SIG y aplicaciones de cartografía web. Es la base de datos espacial
Open Source más ampliamente utilizada.
• MySQL Spatial: es una extensión de MySQL, cuya instalación y manejo es muy sencillo. Es
una base de datos que se encuentra por defecto en la mayoría de servicios de hosting y
suele ser la puerta de entrada de muchos desarrolladores.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
• ArcGis for Server: es la herramienta de ESRI. ArcGIS for Server incluye Portal for ArcGIS,
que facilita la creación y compartición de mapas y aplicaciones en muy poco tiempo. Portal
for ArcGIS también ofrece Web AppBuilder for ArcGIS para que se puedan crear
aplicaciones web intuitivas que se ejecuten en cualquier lugar, en cualquier dispositivo sin
escribir una sola línea de código.
• MapServer: proyecto Open Source que permite crear mapas de contenidos para los
usuarios. Probablemente es el servidor de mapas más usado en el mundo. Destaca su
ligereza y facilidad de despliegue.
• MapGuide: proyecto Open Source, consistente en una plataforma web que proporciona a
los usuarios la posibilidad de publicar mapas y servicios web en internet. Incluye soporte a
la mayoría de los formatos geoespaciales de ficheros, bases de datos y estándares.
• GeoServer: también de tipo Open Source, permite servir mapas y datos de diferentes
formatos para aplicaciones Web, ya sean clientes Web ligeros, o programas SIG de
escritorio. GeoServer es la implementación de referencia de los estándares OGC: WFS,
WCS y WMS.
• GeoNetwork: es una aplicación Open Source, con licencia GNU/GPL, para gestionar
catálogos de recursos georreferenciados. Proporciona funciones avanzadas de edición y
búsqueda de metadatos. Incorpora un visor web de mapas interactivo.
• GDAL: es una biblioteca Open Source. Proporciona herramientas para convertir y procesar
un amplio abanico de formatos de datos geoespaciales, tanto vectoriales como raster. Se
basa en una biblioteca C++ multiplataforma, accesible a través de numerosos lenguajes de
programación. Es la biblioteca de acceso a datos espaciales más usada.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
7. Conclusiones/Resumen
El objetivo principal de las IDE es integrar la información espacial de los diferentes organismos a
través de tecnologías, políticas, acuerdos institucionales, datos y servicios estandarizados que
permitan su acceso, manejo, intercambio y distribución a través de Internet.
Normalmente una IDE se materializa a través de un Geoportal o sitio web que ofrece aplicaciones
de visualización, catálogo y nomenclátor
Las IDE están compuestas por una serie de elementos que podemos agrupar en: geográficos
(Datos y Metadatos), tecnológicos (Estándares, Servicios e Infraestructura de comunicaciones),
políticos (Políticas) y sociales (Usuarios).
Finalmente, hay una gran cantidad de aplicaciones geomáticas de tipos diversos, entre las que
destacan los clientes SIG de escritorio como aplicaciones principales del sector, al tratarse de
soluciones en general completas. La práctica totalidad de estos tipos de aplicaciones están
íntimamente relacionadas con el campo de las IDE.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructuras de Datos Espaciales (IDE)
Referencias bibliográficas
(1) Directiva 2007/2/CE del Parlamento Europeo y del consejo de 14 de marzo de 2007 por la que
se establece una infraestructura de información espacial en la Comunidad Europea
(Inspire)
(2) Ley 14/2010, de 5 de julio, sobre las infraestructuras y los servicios de información geográfica
en España (LISIGE).
(5) Santos Preciado, J. (2002). El tratamiento informático de la información geográfica. Ed. UNED
(7) Varios autores (2016). Temario del curso Infraestructura de Datos Espaciales, del Instituto
Geográfico Nacional.
Enlaces de interés:
http://www.opengeospatial.org/
http://www.ign.es/
http://www.idee.es/
http://inspire.ec.europa.eu/
http://www.icv.gva.es/
http://terrasit.gva.es/val/
http://mappinggis.com/
https://langleruben.wordpress.com/
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Ernesto Faubel Cubells
http://www.esri.com
https://commons.wikimedia.org
https://es.wikipedia.org
http://www.gvsig.com/
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 36. Gestión de los datos corporativos.
Almacén de datos (data-warehouse). Arquitectura
OLAP. Minería de datos. Arquitecturas y técnicas
de procesamiento masivo de datos (big data)
A lo largo del presente capítulo, vamos a describir los componentes que conforman los
sistemas de información, especialmente desde la perspectiva de los niveles de
decisión organizativa de los que forman parte o a los que dan soporte. Cada uno de
estos sistemas proporcionará una tipología diferente de fuentes de información, que
junto con fuentes externas de reciente aparición como las redes sociales, o la internet
de las cosas (IoT, de sus siglas en inglés Internet of Things), conformarán un
repositorio que, debidamente transformado y almacenado en lo que se conoce como
almacenes de datos (data-warehouse), supondrá la materia prima esencial para tareas
como el procesamiento analítico (OLAP) y/o la extracción de patrones (minería de
datos). Finalmente, analizaremos la evolución de la tecnología hasta lo que en la
actualidad se conoce como big data: un nuevo mundo de oportunidades para las
organizaciones donde se coloca el dato como epicentro organizativo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
Desde la década de los 90 que vivimos una era de revolución tecnológica -entendiendo por
tecnología “la totalidad de los medios que las personas emplean para proporcionar bienestar y
subsistencia humana” (Hayes y Wheelright, 1985)- que ha sido promovida, entre otros, por los
siguientes factores:
Previa a esta revolución tecnológica, la información sólo podía estar en un lugar determinado en un
momento dado. Su acceso, distribución y compartición con los encargados de tomar las decisiones
podía llegar a ser muy costosa. Los cambios que propician esta revolución -disminución de precios,
aumento de capacidades, globalización y big data- también implican la necesidad de un cambio
organizativo en la gestión de los datos.
Tomando como referencia la dirección basada en valor (VBM) (Koller, 1994), toda organización
debe maximizar su generación de valor a partir de los recursos que tiene disponibles. Esto se
observa en el caso de una empresa privada que debe maximizar la diferencia entre el beneficio
generado y el coste requerido para ello, así como en el caso de una administración pública, que
con los recursos de los que dispone, debe maximizar por ejemplo la calidad y variedad de los
servicios proporcionados a los ciudadanos. En la actualidad, uno de estos recursos son los datos
disponibles a las organizaciones, datos que provenientes de diversas y variadas fuentes, pueden
convertirse en datos corporativos para la toma de decisiones. Es por ello que estos datos van a
formar parte esencial del ciclo de planificación, control y toma de decisiones por el cual se gobierna
toda organización.
A lo largo del presente capítulo, vamos a describir los componentes que conforman los sistemas de
información, especialmente desde la perspectiva de los niveles de decisión organizativa de los que
forman parte o a los que dan soporte. Cada uno de estos sistemas proporcionará una tipología
diferente de fuentes de información, que junto con fuentes externas de reciente aparición como las
redes sociales, o la internet de las cosas (IoT, de sus siglas en inglés Internet of Things),
conformarán un repositorio que, debidamente transformado y almacenado en lo que se conoce
como almacenes de datos, supondrá la materia prima esencial para tareas como el procesamiento
analítico (OLAP) y/o la extracción de patrones (minería de datos). Finalmente, analizaremos la
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
evolución de la tecnología hasta lo que en la actualidad se conoce como big data: un nuevo mundo
de oportunidades para las organizaciones donde se coloca el dato como epicentro organizativo.
• Hardware, o subsistema físico: Consiste en todos los componentes físicos que conforman
el sistema y que proporcionan las capacidades de entrada y salida (interacción) tanto con
usuarios humanos como con otros sistemas, así como el almacenamiento y procesamiento
de programas y datos. En este subsistema se encuentra la CPU, la memoria RAM, los
discos duros, teclados, ratones, pantallas, tarjetas de red, cableado, etcétera.
• Software, o subsistema lógico: Consiste en los programas y rutinas que utilizan el sistema
físico para el tratamiento de los datos y la interacción con otros sistemas y personas. En
este subsistema se encuentra el sistema operativo, las aplicaciones ofimáticas, sistemas
de gestión, compiladores, herramientas de diseño, de programación, etcétera.
• Operadores humanos: Engloba a todo el personal que gestiona y utiliza los sistemas. Sin
entrar en detalle, se puede dividir en personal técnico encargado de configurar, gestionar y
mantener los sistemas informáticos, y personal operativo encargado, cada uno en su nivel
de decisión, de utilizar los sistemas para sacarles el máximo provecho (generación de
valor).
Los operadores --subsistema humano-- utilizan la información capturada y procesada por los
sistemas para la toma de decisiones en el ámbito organizacional. El proceso de toma de
decisiones está influido por la percepción del riesgo, por lo que los que deben tomar dichas
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
decisiones, por lo general, tratarán de reducir el mismo. El concepto de riesgo viene a su vez
asociado a la falta de certeza en la información disponible a la hora de tomar la decisión, por lo que
se tratará de reducir esta incerteza para así tener una percepción más realista del riesgo a asumir.
La sobrevaloración del riesgo puede producir bloqueo en la toma de decisiones, lo que es en sí
mismo un riesgo, y la infravaloración puede tener aún peores consecuencias. Los sistemas de
información ayudan a reducir la incerteza en los diferentes niveles de toma de decisiones, de modo
que los decisores pueden tener una aproximación más realista al riesgo que deberán asumir.
De manera general, podemos discernir entre tres niveles de toma de decisiones. En cada uno de
ellos se tiene un horizonte temporal y un nivel de riesgo diferente, así como un diferente nivel de
detalle y variedad en las fuentes de información:
• A nivel de alta dirección las decisiones tomadas son estratégicas, lo que involucra una
perspectiva temporal de largo plazo donde la gestión del riesgo toma una consideración
especial por la mayor incertidumbre en lo que sucederá. Los sistemas de información en
este nivel deben proporcionar datos resumidos de diferentes fuentes de información. Por
ejemplo, datos macroeconómicos de actualidad política, económica, tecnológica y social
(Aguilar, 1967) o microeconómicos como información sobre la competencia, sobre los
clientes, los proveedores, los productos sustitutivos y los complementarios (Porter, 1979),
además del funcionamiento de la propia empresa, a modo de dashboards o presentaciones
resumidas que resalten los aspectos clave.
• A nivel operativo las decisiones tomadas son a corto plazo con el objetivo de alinear el día
a día de la organización con los objetivos marcados por el nivel táctico. Los sistemas de
información en este nivel se centran en la recopilación de datos, su procesamiento y
consulta. El nivel de detalle es máximo, permitiendo procesar cualquier unidad informativa
de la compañía (e.g. una venta, un salario, un pago a proveedor, etc.). El riesgo en el nivel
operativo es mínimo.
Los niveles de decisión en la empresa dejan entrever la necesidad de acudir a diferentes fuentes
de información (e.g. estadísticas oficiales, noticias, conversaciones en redes sociales, etc.) que en
ocasiones complementen los datos disponibles y producidos por la propia organización (e.g. datos
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
de los sistemas de producción, gestión y control). Se pueden identificar, entre otras, las siguientes
fuentes de información:
Por regla general, serán bases de datos relacionales que se alimentarán de la operativa con los
sistemas de producción, gestión y control de la organización. Se las conoce también como bases
de datos transaccionales, puesto que su propósito es dar soporte a las transacciones diarias de
la organización. Existe una correspondencia entre los niveles de toma de decisión expuestos
anteriormente, y el objeto de cada una de estas bases de datos. Por ejemplo, en niveles
operativos y tácticos, como sistemas de producción y control, estarían los sistemas de diseño
asistido por ordenador (CAD), sistemas de fabricación integrada por ordenador (CIM) o sistemas
de procesamiento electrónico de datos (EDP), sistemas de planificación de recursos (ERP),
sistemas de automatización de oficinas (OAS) o sistemas de flujo de trabajo o workflow. A nivel
táctico y estratégico se encontrarían los sistemas de información para la gestión (MIS), sistemas
de soporte para la decisión (DSS, GDSS), sistemas de información para ejecutivos (EIS), sistemas
expertos (SE), sistemas de inteligencia de negocio (BI), inteligencia de fuentes abiertas (OSINT) o
sistemas de minería de datos (data mining). Algunos tipos especiales y/o específicos de bases de
datos corporativas pueden ser las bases de datos espaciales, temporales, documentales y
multimedia:
• Las bases de datos espaciales contienen información sobre el entorno espacial de los
objetos. No sólo se corresponden con bases de datos geográficas con información de
ciudades, topografías o similares, sino en un sentido más amplio, permitirían almacenar
todo tipo de información donde la principal característica es la relación espacial entre sus
elementos. Por ejemplo, mapas estelares, cartas de navegación, atlas cerebrales,
imágenes médicas, redes de transporte o redes información.
• Las bases de datos temporales contienen información relacionada a través del tiempo,
desde diferentes momentos puntuales hasta intervalos. Estas bases de datos están
optimizadas para el análisis de series temporales, donde no sólo es importante la
secuencia de ocurrencia de los eventos, sino también su periodicidad y estacionalidad.
Pueden ser útiles para almacenar incidencias de todo tipo, análisis de colas o similares.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
bases de datos con contenidos multimedia están en auge. Uno de los principales retos con
el que tienen que lidiar es el gran tamaño que pueden llegar a alcanzar estos documentos.
Con la proliferación de la Web, especialmente la Web 2.0, donde son los propios usuarios los que
generan y consumen los contenidos, convirtiéndose en lo que se conoce como prosumers, y aún
más con el auge de las redes sociales, la cantidad de contenidos que se producen a partir de
opiniones y preferencias de los usuarios hacen de Internet una fuente datos de incalculable valor.
Son lo que se conoce como fuentes abiertas y de ahí el nombre de OSINT como la generación de
inteligencia a partir de fuentes abiertas (de sus siglas Open Source Intelligence). Y es que, en
estas fuentes, los usuarios, de manera libre, espontánea y sin restricciones --al menos a priori--
emiten sus juicios, sus preferencias y opiniones sobre todo tipo de productos, eventos y/o
personas. Aunque son muchas las fuentes abiertas, podemos considerar los siguientes grupos:
• Blogs: Son sitios web que se actualizan de manera periódica con contenidos publicados
por uno o más autores según su propio criterio y pautas editoriales. Abarcan un amplio
abanico de posibilidades, desde blogs corporativos hasta personales, pasando por medios
de comunicación similares a la prensa. Existen servicios que proporcionan el alojamiento y
el mantenimiento tecnológico de los blogs, como pueden ser Blogger
(https://www.blogger.com) o Wordpress (https://www.wordpress.com), aunque la mayoría
de blogueros “profesionales” optan por conseguir su propio dominio y gestionar su propio
blog, lo que les proporciona mayor libertad y capacidad de personalización.
• Foros: Son sitios web que permiten a los usuarios discutir y compartir información
relevante sobre un determinado tema. Es un sitio de discusión libre e informal, a veces
moderada en cuanto a la posibilidad de publicación o no, pero dejando libertad a los
participantes para expresarse en su propio estilo. Este tipo de sitios ofrece una información
valiosa a determinadas organizaciones por su orientación y especialización temática. Un
ejemplo relevante de foro es StackOverflow (http://stackoverflow.com/) en el ámbito del
desarrollo de software. En la actualidad, el concepto de foro ha evolucionado hacia un mix
foro-blog donde poder compartir y discutir sobre determinados temas. En este sentido,
Reddit (https://www.reddit.com/) es un servicio que ofrece la posibilidad de crear
comunidades de discusión, algo muy utilizado por ejemplo por el partido político Podemos
desde sus orígenes (https://www.reddit.com/r/podemos/).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
usuario. Así mismo, a un usuario le pueden seguir tantos usuarios como estén interesados,
conformando así su red de seguidores (followers). De este modo, la red social que se
conforma es asimétrica, no dirigida, donde de manera independiente se conforma la red de
seguidos y la de seguidores, de manera libre, sin necesidad de consenso entre usuarios.
Twitter proporciona múltiples accesos vía API (Aplication Programming Interface) a sus
motores de búsqueda, erigiéndose como fuente de información de la que obtener una
visión del entorno, y siendo por lo tanto una de las redes preferenciales en OSINT.
• Redes sociales multimedia: Lo que en un principio nace como plataforma para compartir
contenido multimedia --fotografías, vídeos, audios-- pronto se convierte en red social al
incorporar características de las mismas como la posibilidad de seguir a otros usuarios y/o
de comentar sus contenidos. En los últimos años han proliferado multitud de redes de este
tipo como Youtube o Vimeo para vídeo, Ivoox, Sound Hound o Spotify para audio, o Flickr,
Instagram o Pinterest para fotografías. En este tipo de redes, tanto personas como
organizaciones hacen acopio de toda su creatividad para compartir sus creaciones.
Además, existen otras muchas redes que se pueden englobar en una o más de las anteriores
categorías y que por su especificidad pueden resultar de interés para OSINT: Qitter, Tumblr,
Meetup, Academia, Slashdot, Snapchat, Google+, Change.org, WhatsApp, Telegram, Line, QQ,
WeChat, Qzone, Weibo, Tagged, Habbo, Hi5, SoundCloud, Badoo, Netlog-TWOO, DayliMotion,
VK, Match, Slideshare, etc.
Internet de las cosas es un concepto que nace en el MIT (Instituto Tecnológico de Massachusetts)
para referirse a todo un conjunto de dispositivos autónomos capaces de recopilar y transmitir
información a través de internet. Por ejemplo, frigoríficos inteligentes que pueden realizar pedidos
de compra según sus parámetros de stock, gafas de realidad aumentada que se alimentan de
información de internet y la posicionan en el entorno, zapatillas que registran la actividad deportiva
de quién las lleva, dispositivos de monitorización y alerta médica de constantes vitales, televisores
que interactúan con la voz y proporcionan contenidos personalizados, y hasta plantas que tuitean
cuando necesitan agua.
La revolución del internet de las cosas viene de la mano de la mejora en los sistemas de
telecomunicaciones y su mayor penetración territorial, el aumento de las capacidades de proceso a
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
la par que la disminución en el tamaño de los equipos, la proliferación de sensores más sensibles y
pequeños, y las grandes posibilidades de almacenamiento y proceso que proporciona la nube. Con
ello, el internet de las cosas se erige como una de las tecnologías que van a generar más datos en
los próximos tiempos por lo que pueden ser una fuente de información útil y valiosa para tener en
cuenta en el entorno empresarial. Por ejemplo, un hospital que tiene en tiempo real información de
salud de todos sus pacientes, ingresados o no; un grupo televisivo que tiene información en tiempo
real de la audiencia de los programas e incluso la emotividad de su audiencia (si lo cruza con
comentarios en redes sociales, en ocasiones realizados desde el propio televisor, se convierte en
televisión social); ciudades que ajustan sus semáforos al tráfico real que se produce en cada
momento, con una capacidad de predicción añadida sobre la base de un registro histórico de uso;
y un largo etcétera de ejemplos.
El propósito de las bases de datos transaccionales es el de dar soporte diario a las operaciones de
la organización. Estos sistemas dan soporte por lo tanto a los niveles operativos de decisión. Sin
embargo, según el nivel de decisión se va acercando al ámbito estratégico, las necesidades de
información son diferentes; se requieren sistemas que permitan cruzar, agregar y desagregar la
información para llegar a comprenderla y obtener así el conocimiento necesario para la toma de
decisiones. Además, esta toma de decisiones se debe basar en diferentes fuentes de información,
no todas ellas presentes en el sistema transaccional de la empresa, y muy probablemente de difícil
integración en el mismo.
De ahí surge la necesidad de los almacenes de datos que permitan recopilar información de
diferentes fuentes de manera óptima para su consulta, y separada de los sistemas transaccionales
para no afectar a su operativa diaria. Los decisores requieren analizar el pasado para prevenir el
futuro, por lo que trabajarán con vistas de la información existente. Y es aquí donde los almacenes
de datos se hacen imprescindibles. Un esquema típico de almacén de datos como integrador de
diferentes fuentes de datos se muestra en la Figura 1. En ella se puede apreciar como el almacén
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
de datos recopila y almacena datos de diferentes fuentes; desde las propias bases de datos
transaccionales de la organización, hasta información de las redes sociales o recopiladas por
dispositivos inteligentes. Pero además, este almacenamiento se realiza con una orientación clara
hacia el análisis y explotación de los datos que contiene, con lo que su utilidad proyecta la
necesidad de definir su arquitectura.
En la Figura 2 vemos el hecho venta, con los atributos importe y cantidad. Estos atributos
cuantitativos, se pueden agregar y desagregar por las dimensiones tiempo, lugar, producto y/o
comercial, de modo que se pueda responder a preguntas como ¿cuánto ha vendido cada comercial
en cada territorio, distribuido por importe y/o por cantidad?, ¿qué productos son los más vendidos,
distribuidos por territorio y/o por trimestre?, ¿cuáles son los productos preferidos por los clientes de
cada territorio, donde el PIB se encuentre en un determinado rango?, ¿cuáles son los territorios
donde más vende cada comercial, teniendo en cuenta únicamente los territorios no rurales?, o
cualquier combinación de atributos y dimensiones. La representación gráfica de un modelo
multidimensional de tres dimensiones se asemeja a un cubo, por lo que a los modelos
multidimensionales se les suele denominar hipercubos de información.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
Se puede apreciar que el modelo multidimensional define los hechos en forma de estrellas, con el
hecho en el centro y las dimensiones en las puntas de la estrella. Existe conceptualmente dos tipos
de estrella: la estrella simple, cuando las dimensiones sólo permiten un camino de agregación o el
copo de nieve, cuando hay caminos alternativos para agregar y desagregar por una dimensión
(como en el caso del tiempo en el ejemplo mostrado).
2.2. Datamart
El término data lake fue utilizado por primera vez por director técnico de Pentaho James Dixon
para contrastarlo al término datamart común a los almacenes de datos. Es conocida su cita “If you
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
think of a datamart as a store of bottled watter --cleansed and packaged and structured for easy
consumption-- the data lake is a large body of water in a more natural state. The contents of the
data lake strem in from a source to fill the lake, and various users of the lake can come to examine,
dive in, or take samples” (Dixon, 2015). En las palabras de Dixon se aprecia la principal diferencia
entre datamart, que como vimos es un conjunto de hechos estructurados en modo de estrella que
definen mediante sus atributos y dimensiones la realidad de la organización que se desea analizar,
y el data lake, como almacén no estructurado donde pueden cohabitar tanto datos estructurados
como los datamarts, como información en bruto, sin procesar, para poder ser transformada y
utilizada en cualquier momento, o incluso almacenar de nuevo el resultado de dicho proceso en el
mismo data lake. Es decir, un data lake podrá contener datos estructurados como bases de datos
relacionales, semiestructurados como ficheros csv, xml o json, datos desestructurados como
emails, tuits o artículos de prensa, y datos binarios como fotografías, ejecutables o de cualquier
otro tipo, todo ello de manera centralizada y accesible. La Tabla I muestra las diferencias
principales entre almacén de datos (o conjunto de datamarts) y data lake:
Uno de los sistemas más conocidos y utilizados para crear data lakes es el sistema de ficheros
distribuido de Apache Hadoop (HDFS, Hadoop Distributed File Systems), aunque en la actualidad
muchas organizaciones están haciendo uso de repositorios distribuidos como Amazon S3 para la
creación de sus propios data lakes.
Tras el diseño e implementación del almacén de datos llega el momento de rellenarlo con los datos
provenientes de las distintas fuentes. Además, este proceso de relleno se deberá realizar en más
de una ocasión, puesto que el almacén de datos tiene como principal misión proporcionar una
visión histórica a los que toman las decisiones para que puedan realizar sus análisis. Esta visión
histórica dependerá del momento de la decisión, y se deberá actualizar periódicamente para
incorporar los últimos cambios ocurridos en las fuentes de datos: por ejemplo, las últimas ventas
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
realizadas, las últimas conversaciones en la red o las últimas medidas de los sensores. El proceso
de rellenar el almacén de datos se denomina ETL (de sus siglas en inglés Extraction,
Transformation, Load) y se conforma en las tres fases que le dan nombre:
• Transformación: Es el proceso encargado de, a partir de los datos brutos obtenidos de las
diferentes fuentes externas, limpiarlos, ordenarlos y estructurarlos para adecuarlos al
modelo definido en el almacén de datos (datamarts). En esta fase se eliminarán datos
redundantes, se realizará una estandarización de formatos (e.g. fechas, divisas, etc.), se
tratarán los datos nulos --por ejemplo, eliminándolos o sustituyéndolos por comodines--, se
normalizarán los datos inconsistentes entre fuentes, según su veracidad y/o confianza en
la fuente, y se podrán crear los metadatos, índices y claves necesarios para una mejor
organización.
• Carga: Es el proceso por el cual, a partir de los datos limpios y preparados del
almacenamiento intermedio, se crean los diferentes datamarts y se rellenan con la
información adecuada. En esta fase se debe tener en consideración el orden de carga de
los datos, cuáles dependen de cuáles, asegurar la consistencia e integridad de los datos y,
si es necesario, se crearán los índices correspondientes a los hechos y las dimensiones
que se podrán explotar.
El proceso ETL se debe diseñar de manera específica para el almacén de datos y las fuentes de
información definidas. Es la fase más costosa de la creación y explotación de un almacén de datos,
y la más sensible, ya que de su calidad va a depender la calidad del resultado. Aunque existen
herramientas que asisten en el proceso de creación de ETL, es el equipo encargado del almacén
de datos quien deberá definir y desarrollar los respectivos módulos de extracción, transformación y
carga.
3. Arquitectura OLAP
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
• Además, consultas complejas como las descritas van a requerir de un tiempo de proceso
elevado, pues en ocasiones, se va a tener que recorrer todas las filas de una tabla para
efectuar los agregados (totales por comercial y territorio). Esto, que en un sistema
dedicado resultaría costoso, si se realiza contra el propio sistema transaccional puede
ocasionar una merma en su rendimiento o incluso el fallo total del sistema.
OLTP OLAP
OPTIMIZADAS PARA EL REGISTRO OPTIMIZADAS PARA LA
DE DATOS CONSULTA
DATOS AL DETALLE DATOS AGREGADOS
REDUNDANCIA, ESPACIO
NORMALIZACIÓN, REDUCCIÓN DE
EXTRA PARA OPTIMIZAR LA
ESPACIO
RESPUESTA A CONSUTLAS
DATAMARTS: HECHOS Y
TABLAS Y RELACIONES
DIMENSIONES
Es por ello que para efectuar análisis de datos en tiempo real se recomienda la utilización de los
almacenes de datos, tal y como vimos en el apartado anterior. Estos almacenes de datos van a
permitir acceder en modo consulta de una manera eficiente y van a permitir realizar las
operaciones analíticas necesarias para extraer conocimiento.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
Los operadores OLAP van a permitir la explotación avanzada de los almacenes de datos. Los
operadores más importantes son los siguientes:
• Drill: Permite desglosar los datos a partir de una o más dimensiones. Es decir, permiten
entrar a mayor nivel de detalle de los mismos. Por ejemplo, a partir de las ventas de una
empresa, agregadas para verlas por comercial y territorio, permitiría entrar a detalle
territorial bajando de un nivel de agregación superior como es el país, a un nivel de detalle
mayor como es la distribución por ciudad.
• Roll: Permite realizar la operación contraria, es decir, agregar los datos a partir de una o
más dimensiones. Por ejemplo, a partir de las ventas por comercial y territorio, poder
agregar la distribución por ciudades para ver los resultados a nivel de país, un nivel de
agregación superior al anterior.
• Slice & Dice: Permite seleccionar y proyectar datos, concretamente slice permite
seleccionar un subconjunto de los datos, y dice proyectarlo en una nueva vista. Por
ejemplo, dada la distribución por comercial y territorio, permitiría seleccionar un
subconjunto de los comerciales y de los territorios y ver como resultado solo su cruce.
Una de las principales características de los operadores OLAP es que se realizan en tiempo real y
no requieren generar un nuevo informe (una nueva consulta SQL, una nueva hoja Excel, etc.), ya
que tras aplicarlo, automáticamente se recalculan los valores de las celdas y se dispone de la
nueva información. Un aspecto importante relativo al rendimiento tendrá que ver con la
implementación que haga el almacén de datos de la arquitectura OLAP.
Dependiendo del modo en que se implementen físicamente los sistemas de base de datos que dan
soporte al almacén de datos, se distingue entre:
• Sistemas ROLAP (Relational OLAP): el almacén de datos se construye sobre una base de
datos relacional. Su principal ventaja es que se puede aprovechar la infraestructura de
bases de datos relacionales de la organización y sus características, como la utilización de
consultas SQL. Esto permite reducir costes de implantación y formación del personal. Sin
embargo, debido a las propias restricciones de los modelos relacionales, para modelar un
datamart con tecnología ROLAP se hace necesario el uso de tres tipos de tablas: las tablas
copo de nieve, que almacenan los datos de cada una de las dimensiones a cada uno de
los posibles niveles de agregación, las tablas de hechos, que almacenan la información de
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
cada elemento de la vida real que se quiera modelar con claves foráneas a cada una de
las tablas copo de nieve, para poder agregar y desagregar por cada posible dimensión, y
las tablas estrella, que son tablas por cada atributo de los objetos de las tablas de hechos,
con claves foráneas a las tablas de copo de nieve con un atributo por cada nivel de
agregación para dicha dimensión. Como es de suponer, esto aumenta artificialmente el
espacio requerido para modelar el problema. Ejemplos de sistemas ROLAP son
Microstrategy, Informix Metacube y Oracle Discoverer.
4. Minería de datos
En (Clark y Boswell, 2000) se define la minería de datos como el proceso de extraer conocimiento
útil y comprensible, previamente desconocido, desde grandes cantidades de datos almacenados
en distintos formatos. De dicha definición se desprenden algunos hechos a considerar:
• Dicho conocimiento debe ser inteligible y susceptible de generar valor para la toma de
decisiones. Que el conocimiento deba ser inteligible no significa que el modelo de
aprendizaje lo sea; por ejemplo, una red neuronal es opaca en cuanto a su funcionamiento,
pero su resultado puede aportar conocimiento para determinar el riesgo de una operación
bursátil.
• La entrada del proceso es una gran cantidad de datos en diversos formatos, a partir de
los cuales se deberá extraer el conocimiento. Este punto es una de las bases que enlaza a
la minería de datos con el big data.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
La minería de datos tiene relación con diversas disciplinas, confundiéndose en ocasiones con
algunas de ellas. Se puede considerar a la estadística como la madre de la minería de datos, ya
que gran cantidad de terminología, métodos y técnicas provienen de ella: las medidas de
centralidad como la media, la desviación estándar, las distribuciones de frecuencias, los métodos
de validación cruzada o el aprendizaje bayesiano son algunas de ellas. El aprendizaje automático
también tiene una relación estrecha con la minería de datos, ya que proporciona algoritmos que
son capaces de aprender a partir de ejemplos para resolver tareas concretas. La inteligencia
artificial en su concepto más amplio tiene relación con la minería de datos pues le aporta todo lo
relativo al aprendizaje automático, pero también los modelos de representación de los datos
necesarios para que dichos algoritmos puedan aprender. Pero quizás donde existe una relación
más estrecha, tanto que llega a confundir la terminología, es con el proceso de extracción de
conocimiento de bases de datos (KDD de sus siglas en inglés Knowledge Discovery in Databases).
La minería de datos se enmarca en un proceso más amplio denominado KDD. Sin embargo, en la
mayoría de ocasiones que mencionamos la minería de datos como disciplina, estamos haciendo
mención a todo el proceso anterior en su globalidad. Teniendo esto en cuenta y con el objetivo de
normalizar una metodología para aproximar tareas de minería de datos, cinco compañías (SPSS,
Teradata, Daimler AG, NCR Corporation y OHRA) proponen en 1996 el modelo CRISP-DM (CRoss
Industry Standard Process for Data Mining). CRISP-DM consta de seis fases altamente
relacionadas entre sí, donde el conocimiento de cada fase alimenta a la siguiente y realimenta a la
anterior.
• Fase 1 Comprensión del negocio: Esta primera fase es esencial para llevar a cabo un
proceso de minería con éxito. En esta fase se marcan los objetivos a conseguir con el
proyecto, el conocimiento que se desea descubrir y para qué será utilizado. Esta fase
determinará las elecciones a realizar en las siguientes fases.
• Fase 2 Comprensión de los datos: Esta segunda fase está íntimamente ligada a la
anterior. Una buena comprensión del negocio beneficiará la comprensión de los datos
disponibles y los necesarios para cumplir el objetivo, y a su vez, una mejor comprensión de
los datos, permitirá comprender mejor el negocio y afinar en los objetivos esperados por el
proyecto.
• Fase 3 Preparación de los datos: En esta fase se recopilan, integran, preparan, limpian y
transforman los datos para adaptarlos a las necesidades marcadas por la comprensión del
negocio y de los datos.
• Fase 4 Modelado: En esta fase se aplicarán los métodos de minería de datos orientados a
resolver el problema concreto planteado en los objetivos del proyecto. La construcción de
los modelos puede implicar tener que transformar los objetivos de nuevo, por lo que son
dos fases que se encuentran íntimamente ligadas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
• Fase 5 Evaluación: En esta fase se evalúa la calidad de los modelos desde dos
perspectivas: la técnica, donde se evalúa la calidad de los resultados obtenidos, y la del
negocio, donde se evalúa el valor que aporta el conocimiento descubierto. Este nuevo
conocimiento realimenta la fase de comprensión del negocio, por lo que puede hacer que
se replanteen los objetivos del proyecto o incluso que se hagan proyectos alternativos.
Las dos primeras fases del modelo CRISP-DM están muy relacionadas entre sí. Una buena
comprensión del problema desde la perspectiva del negocio ayudará a comprender mejor los
datos, y una buena comprensión de los datos, ayudará a definir mejor el problema desde la
perspectiva del negocio.
En este punto, uno de los principales puntos es determinar a qué tipo de problema hay que
enfrentarse. Que el proyecto de minería sea exitoso dependerá en gran medida de la comprensión
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
que se tenga del negocio y de los datos disponibles o conseguibles. A continuación, se realiza una
revisión de los tipos de problemas más comunes a los que enfrentarse en un proyecto de minería
de datos, para posteriormente entrar en detalle en algunas de las técnicas más conocidas para
abordarlos. Se considera que los problemas de minería de datos se pueden resolver con dos tipos
de tareas:
• Las predictivas, que tratan de predecir nuevos valores a partir del entrenamiento previo
con datos etiquetados; y,
Sea:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
La salida de la clasificación puede llevar asociada una estimación de la probabilidad de que dicha
clasificación sea la correcta (e.g. este cliente es potencialmente de riesgo con 85% de certeza).
Esto es lo que se conoce como clasificación suave, donde además de la función de estimación
de clase, se aprende otra función con la probabilidad de pertenencia a la misma. Es lo que se
conoce como el estimador de probabilidad. Además de la ventaja que aporta el conocer el grado
de certeza de la predicción, este tipo de clasificadores permiten su combinación mediante rankings
de clasificadores.
• Categorización: En este caso, en lugar de aprender una función que asigna cada ejemplo
e una clase en exclusiva, en la categorización se pueden asignar tantas clases como sea
necesario. Un ejemplo típico de esta tarea es la de etiquetado semántico, donde por
ejemplo, a una entrada de un blog se le asignarían tantas etiquetas como temáticas se
detectasen en el mismo. De igual manera que con los clasificadores, en la categorización
se puede aprender un estimador de probabilidad y por lo tanto realizar una categorización
suave.
La regresión puede servir para predecir las ventas del próximo trimestre dependiendo de una serie
de factores actuales, o para identificar la edad que tiene una persona en función de otras
características como el lenguaje que utiliza. Aunque los valores resultantes son numéricos y
pueden estar en un rango continuo, se puede fácilmente convertir un problema de regresión en uno
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
de clasificación simplemente creando rangos que se correspondan con determinadas clases. Así
pues, una regresión para identificar la edad de una persona podría convertirse en una clasificación
si creamos rangos como niños (de 0 a 13 años), adolescentes (de 13 a 18 años), jóvenes (de 18 a
25 años), etcétera.
En el caso de las tareas descriptivas, los ejemplos e € E se presentan sin etiquetar ni ordenar, o lo
hacen de manera parcial. Ejemplos de tareas descriptivas son el agrupamiento, la correlación, las
reglas de asociación y la detección de anomalías.
La principal diferencia con la clasificación es que a priori no se sabe cada elemento a qué conjunto
pertenece, ni siquiera los conjuntos que puede haber. Es el proceso de aprendizaje el que decide
ambas cosas: qué grupos hay (y por lo tanto cuántos) y quién pertenece a cada grupo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
Es importante hacer notar que la correlación únicamente determina la relación entre dos
elementos, nunca la causalidad. Esto significa que son bidireccionales y no orientados, a diferencia
de la causalidad, que implicaría unidireccionalidad y orientación. Esta confusión es uno de los
errores más cometidos en análisis de datos, especialmente en entornos big data donde, por la
sobreabundancia de datos, se pueden encontrar correlaciones entre cualquier par de variables.
• Reglas de asociación: Las reglas de asociación permiten obtener relación entre variables
cuyos atributos son nominales, a diferencia de la correlación que únicamente lo permitía
con atributos nominales. Las reglas de asociación se han aplicado principalmente a
descubrir patrones en bases de datos, y han sido y son una de las principales tareas en
minería de datos. Con ellas se pueden obtener reglas del tipo “si compró este producto hay
tanta probabilidad de comprar este otro”. Existe una regla de asociación muy famosa que
se desprende de un estudio realizado por Wal-Mart que afirmaba que “los clientes que
compran pañales son 5,33 veces más propensos a comprar cerveza (que los que no
compran pañales)”. Este hecho, quizás debido a las largas noches de los padres
primerizos, aportó un conocimiento sustancial a Wal-Mart para reorganizar sus estanterías
y poner ambos productos más cerca, aumentando así sus ventas.
Además de poderse aplicar a atributos nominales, las reglas de asociación tienen otra diferencia
sustancial con la correlación, y es que en este caso sí que puede existir implicación causal. Es
decir, las reglas de asociación pueden ser bidireccionales, o unidireccionales y orientadas. En esta
categoría se suelen incluir las dependencias funcionales, diferenciándose en que éstas consideran
todos los posibles valores. Por ejemplo, sabiendo el nivel de ingresos, el rango de edad, la etnia, el
nivel de estudio y si está casado, se puede determinar el riesgo de morosidad de un cliente.
Esta tarea se suele utilizar para detectar fraudes, fallos o intrusos en sistemas, comportamientos
extraños y/o diferenciados, etcétera. Por ejemplo, fraudes en el uso de tarjetas de crédito porque el
momento, el lugar y/o el importe sean anómalos con respecto a su uso normal, fallos en las redes
de transmisión porque el nivel de ruido, la latencia y/o el orden de llegada de los paquetes sea
diferente a su distribución normal, intento de acceso no autorizado al sistema porque la
combinación de caracteres utilizados en la contraseña, el número de intentos y/o el intervalo entre
intentos difieren de los usos anteriores, o detección de pederastas porque el estilo de escritura, la
frecuencia y/o las palabras utilizadas no se correspondan con el perfil del usuario que dice ser.
Tras la definición del problema a resolver y la identificación de en qué tipo de problema de minería
de datos se encuadra, es el momento de preparar los datos para poder aplicar las técnicas de
modelado correspondiente. La preparación de los datos va a involucrar dos fases bien
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
Para poder aplicar las diferentes técnicas de minería de datos que veremos en el siguiente punto,
se debe representar los objetos sobre los que se quiera efectuar la minería mediante lo que se
conoce como modelo de espacio vectorial. Por ejemplo, si el problema que queremos resolver es
el de predecir si un nuevo cliente tiene riesgo de ser moroso, el objeto sobre el que realizaremos la
minería será el objeto cliente. Este objeto vendrá definido por una serie de características como su
sexo, edad, nivel salarial, nivel educacional, lugar de residencia, puesto en la organización, tamaño
de la organización en la que trabaja, etcétera.
La representación vectorial de un cliente vendrá dada por los valores que tomará cada uno de los
atributos que lo definen. Por ejemplo,
Francisco = {hombre, 39, ?, doctor, valencia}
• Características nominales, con o sin orden, como pueden ser el resto de características del
modelo: sexo, nivel salarial, nivel educacional, lugar de residencia.
Generalmente los datos de los que disponemos para construir el espacio vectorial de los objetos a
minar no suele estar adecuado a los requerimientos del algoritmo que vamos a utilizar, pese a que
en la fase ETL se haya realizado limpieza y normalización de los mismos. Por ejemplo, algunos
algoritmos no trabajan bien, o incluso lo imposibilitan, con valores faltantes y/o nulos (como el
salario en el caso del ejemplo). Otros algoritmos sólo permiten trabajar con atributos numéricos,
mientras que otros no permiten utilizar más que atributos nominales. A continuación enumeramos
algunas de las técnicas que se suelen aplicar para pre-procesar los datos y adecuarlos a los
requerimientos de modelado.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
• Valores faltantes: En ocasiones los algoritmos no trabajan bien con valores faltantes por
lo que se deben convertir a valores aptos para el modelo. Por ejemplo, si de un cliente no
tenemos su nivel salarial, se podría crear una etiqueta más que indique que no se conoce
(NSC) para que el modelo pudiera tratar con dichos valores.
Una vez identificado el tipo de problema al que nos enfrentamos en un proyecto de minería de
datos, debemos decidir con qué algoritmo aproximar su solución. Se puede considerar que hay dos
tipos de aproximación algorítmica al aprendizaje automático: retardada (o perezosa, de lazy
learning) y anticipativa (o ansiosa, de eager learning).
En el caso perezoso, el algoritmo de aprendizaje automático espera hasta disponer del ejemplo
sobre el que aplicar el conocimiento (clasificación, regresión…). Una de sus principales ventajas es
que resuelve los problemas de manera local, según se van produciendo los ejemplos, lo que
permite adaptarse de manera rápida y sencilla a los ejemplos sobre los que tiene que trabajar.
Esto es así porque no requiere de un entrenamiento previo, que puede resultar costoso, y que
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
• Redes neuronales artificiales (RNA): El origen de las RNA fue para intentar emular lo que
sucedía en el cerebro humano. Así pues, se definen las neuronas como funciones simples
de proceso de una señal de entrada hacia una señal de salida. La neurona se activa
cuando la señal de entrada supera un determinado umbral, propagando su valor a la
salida, o no lo hace. El entrenamiento se produce por la técnica de backpropagation que
ajusta los pesos o umbrales de cada neurona a partir de los ejemplos dados. Son métodos
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
opacos, poco explicativos, pero que en la actualidad están produciendo buenos resultados
en gran variedad de tareas en el campo del deep learning.
• Máquinas de vectores soporte (SVM por sus siglas en inglés Support Vector Machines):
Tratan de determinar el hiperplano que separa las muestras entre las diferentes clases, de
forma que el margen entre la distancia entre las muestras más próximas de cualquier clase
y dicho hiperplano se maximice. Las SVM hacen uso de métodos basados en kernels para
operar en espacios de alta dimensionalidad, sin necesidad de calcular todos los puntos de
manera explícita.
4.4.3. Meta-clasificadores
Siguiendo la filosofía de Epicuro, “si más de una hipótesis es consistente con los datos, debemos
mantenerlas todas”, los meta-clasificadores permiten combinar los resultados obtenidos por
diferentes algoritmos de aprendizaje automático, de modo que la salida del meta-clasificador es
una ponderación entre las salidas de los diferentes clasificadores y cuyo objetivo es conseguir
sinergia entre los mismos, es decir, obtener un resultado superior a la utilización individual de
cualquiera de ellos.
• Aprendiendo una función de voto, en lugar de optar por el resultado mayoritario. En este
caso, el votador se podría sustituir por otro clasificador que, en función de las predicciones
realizadas por los clasificadores individuales y la clase real, aprendiera un modelo de
votación. La principal ventaja es que dependiendo de los datos el modelo aprenderá un
votador ponderado mucho más ajustado que el que le podamos fijar mediante pesos. Sin
embargo, su principal desventaja es que estamos acumulando errores de clasificación. Se
puede mejorar aprendiendo no sólo a partir de los resultados de los clasificadores
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
individuales, sino además de todas las características que describen a los datos. Por
ejemplo, aprendiendo como un clasificador más, y además a partir de las salidas de los
anteriores.
4.5. Evaluación
Tras la creación de los modelos se deben evaluar para obtener sus estadísticas de rendimiento. Se
puede entender el rendimiento desde dos perspectivas: la del coste computacional de su aplicación
y desde la capacidad de generalización y producción de conocimiento útil y aprovechable.
Las técnicas de evaluación van a depender de la tipología de problema que se esté resolviendo,
por lo que existirán técnicas de evaluación de modelos de clasificación, clustering, regresión,
reglas de asociación, etcétera. A continuación, se detalla para cada tipología cuales son las
técnicas más utilizadas.
Existen diferentes modelos de partición para conseguir los conjuntos de entrenamiento y pruebas.
No obstante, es imprescindible que cualquiera de estos modelos garantice una total separación de
los datos entre entrenamiento y pruebas para que no se produzca lo que se conoce como
sobreajuste: si existen datos en el conjunto de pruebas que fueron utilizados para entrenar los
modelos, cuando se evalúe con ellos, el modelo podrá dar mejores resultados de los reales por
haber aprendido sobreajustándose a los datos. Destacan tres modos de conseguir estas
particiones: split, cross-validation y bootstrap.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
Entre las diferentes formas en que podemos evaluar un modelo de clasificación, son de especial
interés dos: evaluación por precisión y evaluación por costes.
En la evaluación por precisión se prima que el modelo aumente la cantidad de ejemplos bien
clasificados. Destaca la medida accuracy.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
La medida accuracy (o desde la perspectiva contraria, el error muestral) permite fácilmente ver el
rendimiento de un clasificador, aunque adolece de ciertos problemas. Por ejemplo, en el ámbito
médico podríamos tener un clasificador que ante unos síntomas como mucosidad, fiebre y falta de
apetito siempre diagnosticara gripe. Su accuracy sería muy cercana al 100%, pero ocurriría que un
paciente con meningitis sería diagnosticado con gripe y moriría. Esto es lo que se conoce como un
Falso Positivo, y puede tener un coste muy superior a cualquier otro tipo de error. Así nace la
necesidad de la evaluación por costes.
En la evaluación por costes prima que el modelo efectúe una predicción minimizando el coste
(riesgo) de la misma. Para la evaluación por costes conviene construir una matriz con los posibles
errores que se pueden producir. Es lo que se conoce como matriz de confusión. Supongamos un
clasificador binario que clasifique a un paciente como meningitis sí (caso positivo) o no (caso
negativo). La matriz de confusión quedaría de la siguiente manera:
Predicción
Negativo Positivo
Negativo a b
Clase real
Positivo c d
• a representa los casos que han sido correctamente predichos como casos negativos
(pacientes sin meningitis que se han clasificado como que no padecen meningitis).
• b representa los casos que incorrectamente se han clasificado como positivos (pacientes
sin meningitis clasificados como que padecen la enfermedad).
• c representa los casos que incorrectamente se han clasificado como negativos (pacientes
con meningitis diagnosticados erróneamente como que no padecen meningitis).
• d representa los casos que correctamente se han clasificado como positivos (pacientes con
meningitis que correctamente se han identificado como tales).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
Asociado a cada uno de los valores a, b, c y d tenemos un coste, con lo que deberemos multiplicar
cada uno de los valores anteriores por su coste y quedarnos con aquel clasificador que minimice el
resultado. Es importante notar que nos referimos a coste como función que asigna mayores pesos
a los peores casos, no tiene por qué corresponderse con coste económico. Sin embargo, traducirlo
a coste económico suele simplificar su entendimiento y facilitar la toma de decisiones.
En el caso de que no sea posible disponer de una matriz de costes para aprender los modelos, se
hace uso de la técnica del análisis ROC (Receiver Operating Characteristic). Para ello se calculan
las siguientes ratios a partir de la matriz de confusión:
• True positive (TP) o verdaderos positivos, es la proporción de casos positivos que son
correctamente clasificados.
(1)
• False positive (FP) o falsos positivos, es la proporción de casos negativos que fueron
incorrectamente clasificados como positivos.
(2)
(3)
• False negative (FN) o falsos negativos, es la proporción de casos positivos que fueron
incorrectamente clasificados como negativos.
(4)
Y con ellas se representa una curva que confronte los False positive (FP) frente a los True positive
(TP) en un espacio real de dos dimensiones con valores entre 0 y 1. Un clasificador será mejor
cuanta más área cubra bajo la curva ROC.
• Precision (precisión): Indica la habilidad del clasificador para no asignar como positiva una
muestra que es negativa. En el ejemplo, sería la capacidad del clasificador para no
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
determinar que un paciente tiene meningitis cuando no la tiene. Se define como la relación
entre los verdaderos positivos (TP) frente a la suma de verdaderos positivos (TP) y falsos
positivos (FP).
(5)
• Recall (alcance, recuerdo): Indica la habilidad del clasificador para encontrar todas las
muestras positivas, es decir, la capacidad de clasificar correctamente a todos los pacientes
que tienen meningitis y no descartarlos como que no la tienen. Se define como la relación
entre el número de verdaderos positivos (TP) frente a la suma de verdaderos positivos (TP)
y falsos negativos (FN).
(6)
• F-score: Puesto que evaluar un modelo en base a dos medidas puede resultar complejo,
especialmente a la hora de comparar diferentes sistemas, se define una medida que
combina ambas, por regla general, como la media armónica, aunque se puede decidir
efectuar un ajuste de peso diferente según convenga. Por ejemplo, si se le da más
importancia a no dejar de diagnosticar un caso de meningitis frente a equivocarse y
diagnosticar como meningitis un caso que no lo es, se optaría por incrementar el peso
correspondiente a recall.
(7)
Los modelos de regresión se diferencian de los de clasificación en que, en lugar de asignar una
clase única y nominal, se puede asignar un valor en un intervalo numérico continuo. La evaluación
en este tipo de técnicas trata de encontrar un valor que proporcione la similitud entre el valor
predicho y el valor real, para un conjunto de ejemplos de validación.
• Error cuadrático medio (MSE, Mean Squared Error), que consiste en sumar los errores
cuadráticos entre la salida del modelo y la función real:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
(8)
• Raíz del error cuadrático medio (RMSE, Root Mean Squared Error), que consiste en
realizar la raíz cuadrada de la medida MSE para normalizar a la magnitud real de los
errores (que con MSE efectuamos el cuadrado):
(9)
• Error absoluto medio (MAE, Mean Absolute Error), que trata de limitar el peso de los
errores más extremos:
(10)
• Error cuadrático relativo (RSE, Root Squared Error), que pretende dar el mismo peso a
errores de magnitud 10 en una predicción de 100, que errores de 1 en una predicción de
10.
(11)
(12)
En el caso del clustering no se dispone de etiquetas asociadas a los datos por lo que la evaluación
hará uso del concepto de verosimilitud (likelihood) que implicará maximizar un valor determinado
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
(13)
También se suele utilizar el concepto de entropía, que define la cantidad de información que aporta
el modelo, y su objetivo en dicho caso es maximizarla.
Las reglas de asociación se construyen sobre datos que no tenemos etiquetados. Son modelos
descriptivos por lo que no se pueden aplicar las mismas técnicas que en los modelos predictivos.
En el caso de las reglas, se utilizan principalmente las siguientes dos medidas para evaluarlas:
• Cobertura, o soporte de la regla, que es el número de ejemplos sobre los que la regla se
puede aplicar.
Por ejemplo, en un conjunto de datos con 100.000 ejemplos donde una regla aplica 55.000 veces
su lado izquierdo y 40.000 veces su lado derecho, tendremos una cobertura del 55% (55.000 veces
de las 100.000) y una confianza del 73% (40.000 veces de entre 55.000).
4.6. Difusión
La fase final de la minería de datos es la de difusión y aplicación de los modelos aprendidos para
poder ser utilizados en la toma de decisiones. Hay que prestar atención a una problemática con
determinados modelos que se consideran opacos --como por ejemplo las redes neuronales o las
máquinas de vectores soporte-- que pueden proporcionar buenos modelos pero que son difíciles
de comprender. Así por ejemplo, una red neuronal aplicada a la determinación del riesgo de un
cliente puede dar buenos resultados, pero no va a permitir explicar por qué ese cliente es de
riesgo. Existen alternativamente métodos explicativos como los árboles de decisión o los métodos
bayesianos, que permiten a partir de un resultado, comprender por qué se ha llegado a él,
facilitando así la creación y difusión del conocimiento. Será quizás por ello que una de las primeras
decisiones a tomar confrontará la explicabilidad del modelo frente a su precisión. Una posible
solución al problema es la de combinar ambos modelos de manera que se aproveche la precisión
obtenida por los modelos opacos, y sobre lo aprendido, se use un modelo más explicativo para
comprender mejor el problema.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
Existen multitud de herramientas para la minería de datos, algunas genéricas que permiten definir
el flujo de trabajo y los algoritmos a aplicar, y otras más específicas para realizar tareas concretas.
Debido a su cantidad y proliferación, a continuación hacemos referencia a tres de ellas que
destacan por su potencia y versatilidad, además de ser open source lo que facilita su prueba. Sin
embargo, se recomienda ampliar información sobre otras herramientas como: RapidMiner, SPSS,
dVelox, MicroStrategy, SAS Enterprise Miner, Oracle DataMining, Microsoft SQLServer
Datamining, Teradata Warehouse Miner, AdvancedMiner, Angoss, BayesiaLab, DBMiner, Kepler,
Mathematica for Data Analysis, etcétera.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
Big data es un concepto en auge que se ha extendido más allá del ámbito tecnológico,
asociándose a toda una revolución en el mundo de la comunicación, los negocios y el
entretenimiento. Se entiende por big data un conjunto de datos que por su volumen y complejidad
no pueden ser procesados por métodos tradicionales en computadoras tradicionales. Big data es a
su vez un nuevo paradigma donde se coloca al dato como el epicentro organizativo, para lo cual se
obtienen, mezclan y procesan datos fruto de la revolución digital. Datos existentes y que en la
actualidad se mezclan y funden para obtener nuevos datos (balances y cotizaciones de empresas,
datos de consumo, tasas de empleo, precios, natalidad, PIB o clima), con nuevos datos generados
por el internet de las cosas (sensores y dispositivos inteligentes), los wereables (datos vitales, de
hábito y de comportamiento), los dispositivos móviles o las redes sociales (conversaciones, redes
de amistad, fotografías, vídeos, geolocalización, gustos y opiniones).
Una de las principales confusiones a las que lleva el término es a su asociación únicamente con
grandes volúmenes de datos. Sin embargo, al término big data se le asocian una o más de las que
se conocen como las Vs del big data (cuatro o cinco, dependiendo del autor).
• Velocidad: Se refiere a la velocidad con la que se crean, procesan y/o analizan los datos,
llegando al límite del tiempo real y en base a lo que se conoce como procesamiento en
streaming. Se puede pensar en velocidad al tener que procesar en tiempo real las señales
de múltiples sensores que proporcionen el estado de un paciente, o la recuperación en
tiempo real de redes sociales en un debate presidencial.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
• Veracidad: Se refiere al nivel de fiabilidad asociado a los datos con los que trabajar. Por
ejemplo, los datos recuperados de redes sociales pueden no ser fiables (por ejemplo,
redes de bots para difamar a un personaje público).
• Valor: Se refiere al potencial valor que se puede obtener de los datos, aunque en
ocasiones puede depender más de la adecuación de las técnicas de minería de datos que
se le apliquen.
A continuación, se va a realizar una revisión de las infraestructuras y técnicas de big data más
utilizadas desde las perspectivas del almacenamiento y el procesamiento.
Tradicionalmente se han utilizado las bases de datos relacionales para almacenamiento y consulta
de la información transaccional de las organizaciones (sistemas OLTP). Sin embargo, con el
crecimiento de las necesidades en los entornos big data, las bases de datos presentan ciertas
limitaciones que no las hacen apropiadas para determinadas tareas. Algunas de estas limitaciones
tienen que ver con su estructura fija y las restricciones de integridad. Cuando se ha desarrollado un
producto, se ha diseñado su modelo de datos y se ha tratado de acomodar la información a
modelar dentro de una estructura fija. Pero en big data ocurre que estos modelos de información
evolucionan a lo largo del tiempo, tanto en la necesidad de incorporar nuevas informaciones a los
datos existentes o incluso variar las reglas de validación de los mismos. Esta heterogeneidad en la
información provoca constantes modificaciones en la estructura de la base de datos relacional,
algo que por un lado puede afectar a su normalización, perdiendo así una de sus principales
características, y que por otro lado y quizás más impactante, a su rendimiento, ya que cuando se
intenta añadir, modificar o borrar grandes volúmenes de información, las bases de datos
relacionales no son muy efectivas.
En relación a esto último, otra de las grandes limitaciones de las bases de datos relacionales es su
rendimiento en inserción de datos. Debido precisamente a las comprobaciones necesarias para
asegurar su estructura y sus restricciones, las bases de datos relacionales no están optimizadas
para la inserción masiva de datos (e.g. decenas de miles de inserciones por segundo). Si
recordamos las fuentes de información, encontramos que algunas de ellas generan volúmenes de
datos asombrosos casi de manera constante en el tiempo (e.g. señales de sensores,
conversaciones en redes sociales…). Esto implica efectuar inserciones de grandes volúmenes a
gran velocidad, algo que pronto deteriora el rendimiento de estas bases de datos.
Otro aspecto importante y que limita la capacidad de uso de las bases de datos relacionales en
entornos big data tiene que ver con una limitación en el significado de su propio nombre. Pese a
que las bases de datos relacionales se llaman así por permitir la relación entre datos, a partir de
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
las claves primarias y foráneas que permiten relacionar unas tablas con otras, las bases de datos
relacionales permiten trabajar con relaciones existentes en el mundo real de una manera muy
limitada. Esto es así porque las relaciones que se permiten están muy ligadas a su diseño,
propiciando que ciertas consultas sean sencillas de hacer, pero otras lleguen a ser muy costosas,
a la par que complican el diseño de la base de datos mezclando tablas que modelan el mundo real
(e.g. personas, pedidos, productos), y tablas que modelan las relaciones n a n (e.g. líneas de
pedido relacionando producto con pedido y con persona). Esta meta-información necesaria para el
correcto funcionamiento del modelo añade complejidad computacional al sistema, aún más cuando
se producen relaciones nulas entre elementos (e.g. inner/left/right joins, in selects…). Pero el
mayor problema aparece cuando se desea tratar con relaciones más complejas y para las que no
se ha modelado explícitamente el sistema, como por ejemplo cuando se desea contestar a
preguntas como “¿qué clientes han comprado un producto?”, o cuando entramos en dominios
altamente conectados. Veamos un simple ejemplo, las relaciones de amistad de Twitter, donde la
amistad no es recíproca y considerar a alguien tu amigo no implica que él te considere amigo a ti
(redes seguido/seguidor).
Debido a estos y otros problemas con las bases de datos relacionales, se ha evolucionado a
sistemas que se conocen como bases de datos NoSQL, no por negar el uso de SQL, sino porque
son algo más que SQL (Not Only SQL). Estas bases de datos NoSQL tienen por principal misión
ser capaces de almacenar grandes volúmenes de datos desestructurados en pequeñas unidades
de tiempo. Es decir, priman la inexistencia de reglas y restricciones, permitiendo insertar en
cualquier momento cualquier tipo de información, quizás en una estrategia perezosa que permita
adaptarse al dominio a posteriori, agilizando y primando la inserción masiva de datos frente a su
consulta.
Existe gran variedad de bases de datos NoSQL, aunque por su mayor penetración en entornos big
data (e.g. en empresas como Google, Facebook o Twitter), vamos a considerar los siguientes
cuatro tipos: orientadas a documentos, almacenes clave/valor u organizadas por filas, organizadas
por columnas y basadas en grafos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
• IBM Lotus: siendo su primera versión de 1989, es una de las pioneras y fuente de
inspiración para otras bases de datos orientadas a documentos como las que se describen
a continuación. El modelo de documento es propietario y no necesita esquema. Los
documentos, conocidos como notas, se almacenan en un formato nativo llamado Notes
Storage File (NFS). Se integra en toda una suite de herramientas (Lotus Notes, Lotus
Domino, etc.) y se puede acceder mediante APIs construidas en C, C++ y Java.
• Apache CouchDB: nace entre 2005 y 2008 con el objetivo de ser la base de datos de la
web. Su iniciador trabajó previamente para IBM en el proyecto Lotus Notes, por lo que
tienen ciertas similitudes, como la no necesidad de disponer de un esquema de datos. El
formato de documentos es JSON y se puede acceder a los datos mediante una API
RESTful vía peticiones HTTP. Una característica interesante es que soporta MapReduce.
A diferencia de las bases de datos relacionales, donde se define un esquema para modelar el
dominio de información que se desea almacenar, con restricciones y normalizaciones, en los
almacenes clave/valor no se especifica nada de lo anterior. Simplemente se convierten en
espacios donde almacenar cualquier información y de cualquier tipo, identificados por una clave y
una serie de atributos. Así pues, cualquier objeto que se desee almacenar en un modelo
clave/valor únicamente debe ser identificado por una clave y una serie de atributos que lo definan.
Al no existir estructura previa ni restricciones, por ejemplo, un objeto tipo persona podrá
almacenarse con unos atributos diferentes a otro objeto de tipo persona, y en ambos casos será la
clave seleccionada la que identifique y haga accesible al objeto. Es por ello que se denominan
también almacenes hash distribuidos, ya que como una función hash, a partir de una clave se
obtiene un valor como por ejemplo el conjunto de atributos que definen al objeto. Algunos
almacenes clave/valor son los siguientes:
• Dynamo DB: Nacida para dar soporte a las tiendas Amazon como base de datos escalable
y de alto rendimiento, en la actualidad se ofrece como servicio a los clientes de Amazon
Web Services (AWS). Dynamo es base de otras tecnologías como las siguientes.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
• Riak: Es una base de datos híbrida clave/valor y por columnas basada en Amazon
Dynamo y desarrollada por Basho. Por otro lado, su sistema de tolerancia a fallos funciona
de manera similar a Cassandra. Los datos se almacenan en buckets en parejas
clave/valor, lo que la asemeja al sistema Google Storage. Se proporciona tanto licencia
comercial como open source.
Son bases de datos que se organizan en torno a tablas con familias de columnas predefinidas. Los
datos pues se organizan en torno a columnas en lugar de en torno a filas. Esto propicia ciertas
operaciones como las de agregar datos, tan utilizadas en los almacenes de datos orientados a
OLAP. Ejemplos de bases de datos de este tipo tenemos:
• Google Big Table (Chang et al., 2008): Es una base de datos de uso interno por Google
con el principal objetivo de poder tratar con grandes volúmenes de datos (del orden del
Petabyte) de manera escalable y tolerante a fallos. Se construye sobre el sistema de
ficheros de Google File System (GFS) y soporta gran parte de los proyectos de Google
como Gmail, Youtube, Analytics, Earth o el propio buscador.
• HBASE: Es un clon de Google Big Table pensado para ser integrado con Hadoop y poder
aplicar procesos MapReduce. Una de sus principales diferencias con el resto de bases de
datos orientadas a columnas es que asegura la consistencia de manera completa.
• Cassandra: Es un proyecto open source de Apache para construir una base de datos
distribuida, descentralizada, elástica, escalable, de alta disponibilidad, tolerante a fallos,
personalizable y consistente que se ha diseñado sobre el modelo Amazon Dynamo en
cuanto a consistencia y tolerancia se refiere, pero el modelo de datos se toma de Google
Bigtable (Hewitt, 2011).
Las bases de datos NoSQL anteriores permiten la inserción masiva de datos no estructurados y su
rápida recuperación en base a claves únicas que identifican la información. Sin embargo, este tipo
de bases de datos sigue adoleciendo de problemas para manejar relaciones. Por ejemplo,
partiendo del modelo de compras de una empresa donde tenemos personas que efectúan pedidos
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
y que dichos pedidos incorporan productos, en un modelo de base de datos clave valor tendríamos
las siguientes tres conjuntos de datos: personas, pedidos y productos. Mediante la agregación de
campos de relación a cada uno de esos tres conjuntos podemos indicar cuál es la lista de pedidos
que realiza una persona y cuál es la lista de productos que incorpora cada pedido. La principal
desventaja de este modelo es que se tiene que asegurar por software el mantenimiento de estas
relaciones, añadiendo, modificando o eliminando cualquier nueva circunstancia. Esto, complica el
desarrollo.
Pero el principal problema viene cuando queremos responder a la pregunta que planteábamos con
la base de datos relacional: ¿qué personas han comprado determinado producto? Puesto que este
modelo no dispone de relación, simplemente la hemos emulado mediante los enlaces agregados, y
dichos enlaces no tienen una relación hacia atrás, esta pregunta no podemos contestarla sin
recorrer por software toda la base de datos buscando y memorizando las personas que compraron
dicho producto, o bien añadiendo otro campo agregado hacia atrás que almacene cada producto,
por el pedido en el que ha sido incorporado, por qué persona ha sido comprando, teniendo así en
cada producto una lista de personas que lo compraron. Esto es tremendamente costoso y complejo
de manejar a nivel de software y nos hace plantearnos si no estamos simulando con NoSQL lo que
ya nos proporcionaba el SQL.
En este punto es donde las bases de datos basadas en grafo aportan su valor, ya que almacenan
inherentemente no sólo la información de los elementos del modelo (e.g. personas, pedidos,
productos), sino también la información de las relaciones entre ellos (e.g. amigo de, pide, incluye,
es_pedido, es_incluido), lo que va a permitir no sólo consultar sobre un elemento (base de datos
NoSQL clave/valor), o una relación simple de primer nivel (base de datos relacional), sino también
sobre la propia estructura de la red (operaciones sobre el grafo). Para ello, una base de datos
basada en grafos debe permitir modelar la realidad en función de los siguientes elementos: nodos,
relaciones y propiedades.
• Nodos, que representan entidades del mundo real (e.g. personas, pedidos, productos,
ciudades, computadores, direcciones físicas, etcétera), y que pueden contener
propiedades, generalmente representadas por parejas clave/valor (e.g. una persona tiene
nombre, teléfono y DNI; una computadora tiene una dirección IP y un sistema operativo).
• Relaciones, que conectan a los nodos entre sí y dotan de estructura a la red. Una relación
siempre tendrá un nodo de origen y un nodo destino (e.g. una persona es amiga de otra
persona; una carretera lleva de una dirección a otra), y puede ser dirigido (e.g. que yo te
considere mi amigo no implica lo contrario; una calle de un sentido lleva de una dirección a
otra, pero no al revés) o no dirigido/bidireccional (e.g. si eres hermano de alguien ese
alguien es también tu hermano; dos ordenadores conectados al mismo hub). Las
relaciones también pueden tener propiedades que las especifiquen. Por ejemplo, el peso
de una relación de amistad (muy amigo, amigo, conocido), o el peso de una línea de
transmisión.
Una representación basada en grafos implica que las relaciones forman caminos entre las
entidades, y la consulta al grafo implica consultar dichos caminos. Quién es amigo de quién, quién
ha comprado qué, qué ha sido comprado por quién, cuántos saltos hay de un nodo a otro, son
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
algunos de los ejemplos de consulta que se nos ocurren al visualizar un grafo. Por lo tanto, la
consulta a una base de datos de este tipo se convierte en la búsqueda de caminos entre nodos.
Para ello, se han propuesto lenguajes de consulta como Cypher, que se basa en consultar la base
de datos mediante la búsqueda de concordancia entre patrones (e.g. encuentra algo como esto).
Esto es lo que se conoce la especificación por ejemplo. Se sugiere la realización de los tutoriales
en línea de Neo4J y la bibliografía propuesta, para profundizar en bases de datos basadas en
grafos y su consulta mediante Cypher.
Ejemplos de bases de datos basadas en grafos están FlockDB, OrientDB, AllegroGraph y Neo4J,
entre otras. Destaca sin embargo la última:
• Neo4J es una base de datos de grafos desarrollada en Java por Neo Technology. Dispone
de una versión comercial y de una versión bajo licencia AGPL V3. Es un motor de
persistencia embebido, basado en disco, y es completamente transaccional. Los datos se
almacenan en forma de grafos de manera nativa.
En la introducción a big data se mostraron las diferentes Vs que definen el concepto. Desde la
perspectiva del procesamiento tenemos dos posibles aproximaciones, dependiendo de la V
dominante, y una aproximación híbrida.
Figura 5: Procesamiento batch vs. streaming vs. híbrido. Fuente: Elaboración propia
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
En entornos big data el flujo de procesamiento se divide en tres fases: adquisición de los datos,
almacenamiento y análisis.
• Análisis de datos: Es la última fase del proceso y consiste en aplicar los algoritmos y
técnicas necesarios, algunos de ellos de minería de datos, para obtener los resultados
esperados.
Existen tecnologías y modelos de procesamiento específicos para cada una de estas fases
dependiendo de si se requiere procesamiento batch o en streaming. A continuación hacemos un
repaso de algunas de las tecnologías en boga en cada una de las fases dependiendo del tipo de
procesamiento, así como de los paradigmas que hay tras ellas.
El procesamiento en batch es el que se realiza sobre grandes volúmenes de datos, sin importar en
exceso la latencia, pero asegurando la escalabilidad. Ello va a implicar mover grandes volúmenes
de datos y distribuirlos entre diferentes nodos para procesarlos de manera escalable. Por claridad
de conceptos, presentaremos las tecnologías siguiendo el orden almacenamiento, adquisición y
análisis.
Principalmente son dos las tecnologías utilizadas para almacenamiento de los datos en
procesamiento batch: HDFS y HBase.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
HDFS o Hadoop Distributed File System es el sistema de ficheros proporcionado por Hadoop para
distribuir los datos entre sus nodos de procesamiento. HDFS es una arquitectura master-slave,
donde el maestro gestiona el acceso a la información, así como su estructura en directorios, y los
esclavos contienen los datos. Por ello, al maestro se le conoce como el NameNode y a los
esclavos los DataNodes.
Como vimos en el apartado de almacenamiento, HBase es una base de datos NoSQL distribuida
orientada a columnas. HBase proporciona acceso aleatorio al dato en tiempo real tanto en lectura
como en escritura.
Como se verá en los siguientes apartados, Hadoop y su sistema de ficheros HDFS es uno de los
más utilizados por diferentes tecnologías para almacenar los datos de manera distribuida y
acercarlos a los diferentes nodos de proceso. Así pues, una de las primeras herramientas las
proporciona el propio HDFS a modo de comandos que permiten distribuir desde un nodo local la
información a los nodos remotos.
hadoop dfs -copyFromLocal <ruta-local> <ruta-remota>
Ruta local suele ser un directorio en el sistema local y la ruta remota un directorio en el sistema
HDFS. Pero en ocasiones los datos se encuentran almacenados en bases de datos SQL, y es
Sqoop la tecnología que permite mover dichos datos entre las bases de datos relacionales (tiene
conectores para la mayoría de ellas), y los sistemas de almacenamiento HDFS y HBase. Funciona
a partir de comandos como los siguientes:
import --connect [cadena de conexión a bbdd] --target-dir [ruta hdfs] [opciones]
export --connect [cadena de conexión a bbdd] --target_dir [ruta hdfs] [opciones]
Donde la primera mueve los datos de una base de datos relacional al sistema HDFS y la segunda
mueve los datos de HDFS a la base de datos relacional. En opciones se indican la tabla o tablas
que se desean exportar, así como las credenciales del usuario.
Una de las fuentes de información que más volumen genera y que en ocasiones es preciso
analizar son los logs de los procesos. Para ello, Flume proporciona herramientas para mover datos
de este tipo desde fuentes como Avro, Syslog, NetCat o cualquier fuente personalizada hacia
ficheros, memoria o bases de datos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
• Map: El proceso Map divide los datos en subconjuntos y los envía a cada nodo de proceso
en formato clave-valor <K, V>.
• Reduce: Cada nodo retorna el resultado en formato clave-lista de valores <K, L(V)> y se
combinan produciendo el resultado final.
Un ejemplo clásico para entender MapReduce es el conteo de palabras de un texto, que se adapta
perfectamente a dicho paradigma. En el proceso Map, se enviará a cada nodo una línea del texto,
donde la clave K será el número de línea, y el valor V será la línea de texto <nºlínea, texto>. El
resultado de la tarea será una lista de parejas <palabra, 1> para cada palabra del texto. El
pseudocódigo del proceso Map sería:
Map (clave, valor) {
Para cada palabra w en valor:
retornar (palabra, 1)
}
El proceso Reduce recogerá todas las salidas de los procesos Map como parejas <clave, valor> o
<palabra, 1>, y se encargará de agruparlas en parejas <palabra, ocurrencia> mediante la suma de
unos de cada palabra. En pseudocódigo el proceso Reduce sería:
Reduce (palabra, lista_de_valores) {
Para cada valor v en lista_de_valores:
total += v
Retornar (palabra, total)
}
La potencia de MapReduce está en su filosofía Divide y Vencerás, pero la primera vez que un
programador se enfrenta a él, pese a su sencillez conceptual, le resulta complejo. Es por ello que
se han desarrollado tecnologías que proporcionan capacidades MapReduce pero con una capa de
abstracción por encima. De entre ellas destacan Hive, Pig y Cascading:
• Hive: No sólo es una capa de abstracción de MapReduce sino que además proporciona
todo el sistema de almacén de datos completo junto con la posibilidad de ejecutar
consultas sobre grandes volúmenes de datos. Hive proporciona una versión adaptada de
SQL (HiveSQL) para acceder de manera similar a los datos.
• Pig: Es una plataforma para analizar grandes volúmenes de datos a partir de una
especificación de flujo de datos en lenguaje de alto nivel (Data flow programming
language).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
Aunque quizás el sistema de computación distribuida que está tomando un papel más relevante es
Spark. Spark no es una versión de Hadoop, aunque es compatible con su sistema de ficheros
HDFS y funciona de manera similar, permitiendo el desarrollo de flujos MapReduce escritos en
lenguajes Java, Python o Scala. Además de ser más sencillo que Hadoop, entre otras cosas por
permitir utilizar su propio lenguaje Scala, o lenguajes con los que el desarrollador esté familiarizado
como Python o Java, se argumenta que la ejecución es más rápida que en Hadoop, quizás por
mantener los datos en memoria. Esto sin embargo hace que las necesidades de memoria sean
superiores a su equivalente en Hadoop. Al igual que Hive, Spark proporciona un almacén de datos
y una capa de abstracción denominada SparkQL que permite acceder a los datos utilizando una
variación del lenguaje de consulta SQL.
El procesamiento en streaming no tiene por qué involucrar grandes volúmenes de datos, pero sí
una necesidad de consumirlos en tiempo real.
Los almacenes de datos deben propiciar unos tiempos de respuesta y unas latencias bajas, no
sólo al momento de consultar el dato, sino especialmente al momento de su inserción, puesto que
pueden ser múltiples y desde muchos sitios diferentes. En este sentido, los almacenes de datos
suelen actuar a modo de colas donde diferentes agentes producen datos mientras que otra serie
de agentes los consumen, creando así un flujo continuo de datos. En este sentido destaca la
tecnología Kafka. Kafka es un sistema de colas distribuido que permite el trabajo en el modelo
productor/consumidor. En este modelo, múltiples productores de datos insertan en las colas los
datos que múltiples consumidores recuperarán para efectuar su procesamiento. Un ejemplo se
puede ver en la parte superior de la Figura 6.
En ella se muestran múltiples procesos de recuperación de datos del streaming API de Twitter
(Twitter Stream y Process Local Stream), que almacenan el resultado en disco local y lanzan
trabajos a las colas de proceso (Massive Queue, Real Time Queue y Specific Queue). Múltiples
procesos de análisis (Process Remote Stream) se encargan de recuperar el dato y efectuar su
procesamiento, enviando el resultado a la siguiente etapa (Indexer), y de ahí a la siguiente
(Neo4J). Ejemplo del análisis realizado, extracción de sentimiento, extractor de tópicos, de
topónimos, de nombres propios (NER), construcción de redes y análisis de comunidades,
influencia e intermediación (SNA), identificación de datos demográficos de los usuarios (autor
profiling), y un largo etcétera.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
Otras tecnologías basadas en colas son Kestrel, RabbitMQ o SQS de Amazon AWS.
La adquisición de datos en tiempo real dependerá del servicio o fuente de datos de la cual se
dependa. Así por ejemplo, la mayoría de servicios de red social actuales permiten recuperar
información de su plataforma, aunque sólo algunos lo permiten en streaming. Un ejemplo de este
tipo sería la Streaming API de Twitter, o incluso su Firehose. Para extraer datos en tiempo real se
debe conectar un proceso directamente a dicha API y procesar toda la información que se genera.
En este sentido, se pueden desarrollar pequeñas aplicaciones siguiendo las indicaciones de los
manuales de las propias APIs. Sin embargo, de manera más general, puede interesar la utilización
de tecnologías de adquisición de datos, como pueda ser Flume. Flume es un servicio de
recolección, agregación y transmisión de datos en tiempo real que permite conectarse a un flujo de
datos, transformarlo y almacenarlo, por ejemplo, en un sistema de ficheros HDFS o en una cola
Kafka.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
A la hora de analizar los datos que nos llegan en streaming, puede resultar interesante utilizar
parte de la tecnología utilizada para capturarlos. Este es el caso de Flume, que además de permitir
conectarse con diversas fuentes de datos y recuperar en tiempo real, permite conectar
interceptores a los datos de entrada, a modo de eventos, que lancen la lógica de análisis
implementada.
Algo más avanzado lo proporciona Storm, que es un sistema de procesamiento en tiempo real
escalable y distribuido. Storm permite realizar para el real time lo que Hadoop permite en los
procesos batch. Una de las ventajas de Storm es que permite utilizar cualquier lenguaje de
programación, reduciendo el tiempo de aprendizaje, y además se integra con múltiples tecnologías
de base de datos distribuidas y sistemas de encolado. Storm se organiza mediante una topología
en forma de grafo. Cada nodo contiene la lógica de aplicación. Existen nodos spout que se
conectan a las fuentes de datos streaming y emiten los datos hacia la topología. Los nodos bolts
son las unidades de procesamiento, que leen datos de otros nodos y emiten datos hacia otros
nodos. De este modo se puede construir la topología necesaria para aproximar el problema.
Son diferentes las tecnologías que se han desarrollado sobre Storm con el objetivo de abstraer su
implementación y simplificar su uso. En este sentido destaca Trident, que se basa en pequeños
procesos batch que implementan operaciones de alto nivel como joins, filtros, proyecciones,
agregaciones o diferentes tipos de funciones, y se enlazan para conseguir el flujo de proceso
deseado. Sin embargo, su principal limitación es la necesidad de adaptarse a estas funciones, por
lo que Storm es más potente.
De nuevo Spark destaca por aportar su versión Spark Streaming, para procesamiento en tiempo
real. Su funcionamiento es similar a Spark, con pequeños batch que se concatenan para conseguir
el flujo de procesamiento deseado, y que se almacenan en memoria para mejorar el rendimiento, a
costa de una mayor necesidad de espacio.
Existen otras tecnologías que proporcionan capacidades de análisis en streaming o tiempo real
como son S4 (Simple Scalable Streaming System) utilizado por Yahoo! o Samza, desarrollado por
LinkedIn, que con una perfecta conexión con Kafka --también utilizado por LinkedIn-- permite una
integración completa del proceso con la adquisición de datos vía Flume.
Aunque el procesamiento híbrido está en su infancia, cada vez más las necesidades se dirigen
hacia esta línea. Así, una de las primeras arquitecturas definidas es la conocida como Lambda.
Lambda es una arquitectura genérica para procesamiento distribuido que sea escalable, tolerante a
fallos y con una baja latencia. La siguiente imagen muestra la arquitectura Lambda:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
En ella se aprecia cómo todos los datos que llegan al sistema [1] se envían tanto a la capa batch
[2] como a la capa speed [4]. La capa batch se encarga de almacenar los datos en bruto y de
prepararlos para la visualización, mientras que la capa serving [3] se encarga de generar los
índices para obtener baja latencia en las consultas. La capa speed reduce la latencia dando
acceso únicamente a los datos más recientes. Cuando se produce una consulta por parte del
usuario [5], esta se lanza a ambas capas, consiguiéndose una baja latencia por servir primero los
datos más recientes de la capa speed, y posteriormente los ya procesados e indexados en la capa
serving. Esta arquitectura es utilizada por el motor de búsqueda de Twitter.
Otra capa de abstracción sobre arquitectura Lambda es Sumingbird, utilizada por Twitter, que
permite escribir procesos escritos en Scala en un formato similar a MapReduce, y ejecutarlos sobre
Hadoop para procesos batch, sobre Storm para procesos stream, o sobre ambos de manera
híbrida.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
Tabla VI: Resumen de tecnologías de procesamiento big data. Fuente: Elaboración propia
Referencias
(2) Aguilar, F. (1967). Scanning the business environment. New York, Macmillan.
(4) Arjonilla Domínguez, S. J., & Medina Garrido, J. A. (2002). La gestión de los sistemas de
información en la empresa. Colección Economía y empresa/Pirámide.
(6) Bradley, S.P., Hausman, J.A., Nolan, R.L. (1993). Globalization, technology and competition.
The fusion of computers and telecommunications in the 1990’s. Harvard Business School.
(7) Chang, F., Dean, J., Ghemawat, S., Hsieh, W. C., Wallach, D.A., Burrows, M., Chandra, T.,
Fikes, A., Gruber, R. E. (2008). Bigtable: a distributed storage system for structured data.
ACM Transactions on Computer Systems.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Gestión de los datos corporativos
(8) Clark, P., Boswell, R. (2000). Data mining. Practical machine learning tools and techniques with
java implementations. Morgan Kaufmann Publishers.
(9) Dixon, J. (2015). Pentaho, hadoop and data lakes. James Dixon’s Blog.
(11) Hashem, I. A. T., Yaqoob, I., Anuar, N. B., Mokhtar, S., Gani, A., & Khan, S. U. (2015). The
rise of “big data” on cloud computing: Review and open research issues. Information
Systems.
(12) Hayes, R., Wheelright, S. (1985). Restoring our competitive edge: competing through
manufacturing. John Whiley & Sons.
(15) Inose, H, Pierce, J.H. (1984). Information technology and civilization. W.H. Freeman and
Company.
(16) Jones, O. M., Robinson, A. (2009). Scientific programming and simulation using r. Taylor &
Francis Group.
(19) Leskovec, J., Rajaraman, A., Ullman, J. D. (2014). Mining of massive datasets. Stanford
University Press.
(20) Marmanis, H., Babenko, D. (2009). Algorithms of the intelligent web. Manning Publications.
(21) Mateos, P. (2005) Dirección y objetivos de la empresa actual. Editorial Centro de Estudios
Ramón Areces.
(23) Moore, G. E. (1965). Cramming more components onto integrated circuits. Electronics
Magazine.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Francisco Manuel Rangel Pardo
(24) Owen, S., Anil, R., Dunning, T., Friedman, E. (2013). Mahout in action. Manning Publications
Co.
(25) Porter, M.E. (1979). How competitive forces shape strategy. Harvard Business Review Boston.
(26) Robinson, I., Webber, J., Eifrem, E. (2013). Graph databases. O’Reilly.
(27) Snijders, C.; Matzat, U.; Reips, U.D. (2012). Big data: big gaps of knowledge in the field of
interent. International Journal of Internet Science.
(29) Witten, I. H., Frank, E., Hall, M. A. (2011). Data mining. Practical machine learning tools and
techniques. Morgan Kaufmann Publishers.
Enlaces web:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 37. Diseño y desarrollo de portales web.
Lenguajes y herramientas para la utilización de
redes globales. HTML y XML
Hoy en día, los documentos HTML son los más abundantes del mundo digital. Se
desarrollan todo tipo de aplicaciones web, estáticas aunque casi en su totalidad
dinámicas; y con indefinidas funcionalidades: blog, comercio electrónico, de
descargas, de desarrollo, institucionales, comunidades virtuales, directorios,
informativas, redes sociales, personales, wikis, educativas, juegos, etc.
Los documentos HTML, cuyos orígenes se remontan a principio de los noventa, y que
actualmente se encuentra en su versión HTML5, permiten incorporar contenido similar
a los procesadores de texto actuales, aunque sobre todo, permiten la interactuación
por parte del usuario, mediante enlaces, pudiendo acceder entre documentos, gracias
al hipertexto.
El lenguaje HTML es sin duda el más empleado para implementar aplicaciones web,
pero trabaja de la mano de CSS y JavaScript para explotar al máximo sus
posibilidades. HTML por sí sólo es capaz de organizar la información, mientras las
hojas de estilos CSS aportan el diseño para hacer que los documentos sean mucho
más atractivos. Paralelamente, JavaScript dota a HTML de una serie de
funcionalidades extra para permitir programaciones en el lado del cliente. Y para que
el diseño no llegue a dificultar el acceso a la documento, se han desarrollado
estándares de accesibilidad, que aseguran sobre todo el acceso a la información a
personas con discapacidades de cualquier índole.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
1. Lenguajes de marcas
1.1. Principios
En un documento existen distintos niveles de información, por un lado la información del contenido
del documento y por otro la información del etiquetado, marcado o markup.
La aceptación de SGML fue muy grande y es empleado en una gran cantidad de campos en los
que se requiere documentación a gran escala. Y ello a pesar de que inicialmente los procesadores
de textos, decidieron optar por editores WYSIWYG en lugar de emplear lenguajes de marcado.
Otro de los puntos clave para que tenga la relevancia actual, fue la aparición del HTML utilizando
la sintaxis SGML. La sencillez del lenguaje fue uno de los principales factores junto a las ventajas
que el propio lenguaje ofrece. También existía el problema de la mala estructuración de la
información y la falta de respeto por los estándares por diseñadores y fabricantes de software.
La respuesta a los problemas del HTML vino de la mano del XML (eXtensibleMarkupLanguage),
desarrollado por el World Wide Web Consortium (W3C), meta-lenguaje que permite crear etiquetas
adaptadas a las necesidades, pero el uso de mismo exige cumplir dos condiciones: ser válido y
estar bien formado.
XML no es sólo la base de HTML, sino que además tiene infinitas aplicaciones, algunas de ellas
estandarizadas y otras definidas por cualquier usuario. Para además asegurar la válidez de los
documentos, pueden definirse DTDs (documenttypedefinition), el cual permite definir la estructura y
sintaxis. Por ejemplo, para comprobar la validez de los documentos HTML, existe un validador
online de la W3C: https://validator.w3.org/
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Diseño y desarrollo de portales web
• Para describir contenido y además dar formato, por ejemplo el lenguaje HTML.
Durante 1990 se desarrolló el primer sistema que facilitaba la lectura de información, mediante un
navegador web. Inicialmente fue llamado WorldWideWeb, aunque fue posteriormente rebautizado
como Nexus, para evitar confusiones al compartir nombre con la tipología.
La primera propuesta oficial para convertir HTML en un estándar se realizó en 1993 por parte del
organismo IETF (Internet EngineeringTaskForce).El propio lenguaje HTML seguía desarrollándose
y ese mismo año, se creó HTML+, que al igual que su predecesor, nunca se llegó a estandarizar.
En 1995 la IETF creó grupos de trabajo de HTML, consiguiendo ser publicado HTML 3.0 y
convirtiéndose a su vez en el primer estándar oficial de HTML. Entre las grandes mejoras se
encontraban la posibilidad de incorporar applets de java y textos alrededor de imágenes.
En 1998 se publicó HTML 4.0, suponiendo un gran salto con respecto a sus predecesores, al
incluir una gran cantidad de mejoras como la inclusión de hojas de estilo CSS, scripts, mejoras de
accesibilidad, tablas complejas y mejoras en los formularios.
En el año 2000, de forma paralela, fue reescrito HTML 4.0 para cumplir estrictamente los
estándares de XML, creándose XHTML. Las diferencias son pocas, como por ejemplo la
obligatoriedad de escribir las etiquetas en minúsculas o los elementos de etiqueta única precisan
cierre.
Desde la publicación del HTML 4.01, la actividad de estandarización se detuvo por la W3C al dar
mayor relevancia al desarrollo de XML. Ello provocó que en 2004, las grandes organizaciones
Apple, Mozilla y Opera se asociaran en WHATWG (Web
HypertextApplicationTechnologyWorkingGroup), con el objetivo de desarrollar HTML5.
En 2006, el W3C se interesó en el desarrollo de HTML5, para en 2007 unirse al grupo de trabajo
de WHATWG para unificar el proyecto.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
2. HTML5
El Lenguaje HTML5, no es complejo en sí, pero como como cualquier otro lenguaje hay que
conocer su propia sintaxis. A lo largo del capítulo se va a realizar una introducción a la última
versión de HTML, aunque siempre hay que tener en cuenta la íntima relación que tiene junto a
CSS y Javascript para dotarlo por un lado de estructura y contenido en la pantalla y por otro de
funcionalidades añadidas.
Por otro lado, los documentos HTML, que por cierto son los más abundantes de entre todos los
formatos digitales, están escritos sobre un fichero de texto plano y pueden ejecutarse en cualquier
navegador con tan sólo guardarlo con la extensión .html.
Los documentos se encuentran estrictamente organizados. La primera línea deberá ser siempre:
<!DOCTYPEhtml>
<!DOCTYPEhtml>
<htmllang=”es”>
</html>
Las dos siguientes secciones son el <head> y el <body>. El elemento <head> se emplea para
definir título, descripción, hojas de estilos o ficheros javascript externos, etc. En segundo lugar
aparecerá el <body>, donde se incluirá toda la parte visible de la web.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Diseño y desarrollo de portales web
<!DOCTYPEhtml>
<htmllang="es">
<head>
</head>
<body>
</body>
</html>
Figura 3: Elementos <head> y <body>
Dentro de la cabecera se incorporan distintas etiquetas <meta> para añadir metadatos, como por
ejemplo la codificación, la descripción, las palabras clave, etc. Estas etiquetas, al ser únicas,
pueden emplear o no emplear la barra de cierre.
…
<head>
<meta charset="iso-8859-1">
<metaname=”description” content=”Ejemplo de HTML5”>
<metaname=”keywords” content=”HTML5, CSS3, Javascript”>
</head>
…
La inmensa mayoría de documentos HTML emplean la etiqueta <link>, la cual permite añadir un
enlace a un fichero externo, pudiéndose ser hojas de estilos, código Javascript o iconos.
…
<head>
<title>Este texto es el título del documento</title>
<linkrel=”stylesheet” href=”misestilos.css”>
</head>
…
La estructura del cuerpo es la definida dentro de la etiqueta <body>. Para ayudar a estructurar el
contenido, inicialmente se hacía uso del elemento <table>, a pesar de que las tablas no tienen esta
finalidad. Hasta que empezó a utilizarse elemento <div>, sobre todo tras una mayor integración del
HTML con CSS y Javascript. Esta etiqueta es mucho más genérica, y aunque no ofrece
información directamente sobre de qué clase de división se trata, esta sigue siendo empleada junto
a otras más específicas aparecidas en esta última versión de HTML.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
Actualmente, la mayoría de webs emplean un diseño base similar al que aparece a continuación,
aunque como siempre, pueden optar por otras alternativas.
La etiqueta <header> se emplea para en su interior colocar la cabecera visible de la web, con
elementos como el logo, contacto, etc.
El <nav> es la barra de navegación o menú, aunque haber uno o varios dentro de una misma
página. Para identificar cada una de las secciones del menú, suele emplearse una lista de
opciones, bajo las etiquetas de <ul> para identificar la lista y <li> para los elementos.
…
<nav>
<ul>
<li>inicio</li>
<li>productos</li>
<li>contacto</li>
</ul>
</nav>
…
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Diseño y desarrollo de portales web
Lateralmente a este bloque, suele encontrarse el <aside> o barra lateral, para incorporar datos
relacionados con la información principal, o destacar otros contenidos de importancia.
Por último, en la parte inferior, suele ubicarse el <footer> o pie de página, el cual se emplea para
incorporar información de la web como por ejemplo de contacto o por ejemplo también incorporar
un menú secundario de baja relevancia.
2.3. Texto
Antes de incluir el texto, es necesario identificar las secciones, para determinar la organización de
la información. Para ello se emplean los títulos de sección que son las etiquetas <h1>, <h2>, <h3>,
<h4>, <h5> y <h6>, siendo la primera de ellas la más relevante y la última la menos y pudiendo
usarse cada una de ellas en varias ocasiones.
Entre las distintas secciones, puede incluirse texto dentro de las etiquetas <p>, identificando cada
una de ellas a un párrafo.
<h1>Titular de la página</h1>
<p>Párrafo de introducción...</p>
<p>Párrafo de contenido...</p>
<h2>Otra subsección</h2>
Figura 8: Ejemplo de uso de las etiquetas <p>, <h1> y <h2>, justo a su código.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
2.4. Enlaces
El lenguaje HTML se definió en su día para permitir los vínculos entre documentos, de hecho las
letras “HT” de sus siglas vienen de hipertexto. El elemento en cuestión se denomina anchor en
inglés y enlace web o enlace en castellano.
Los enlaces a páginas dentro de la misma web, pueden ser relativos o absolutos, según pueda
interesar por la estructura del portal web o la programación de la misma. En el caso de emplear las
URLs relativas, es el propio navegador el encargado de hacer la conversión a URL absoluta. La
diferencia entre ambas es la siguiente:
Las URLs absolutas incluyen todas las partes de la ruta: protocolo, servidor y ruta completa.
Las URLs relativas prescinden de parte de la URL para hacerla más breve y parte desde el
directorio actual.
Detalles problemáticos a tener en cuenta en las URLs, es la inclusión en las mismas de espacios o
caracteres especiales como acentos o la letra ñ, siendo más sencillo evitar los nombres de
archivos con estos caracteres o en su defecto es necesario emplear codificaciones alternativas de
esos caracteres, teniendo también en cuenta la codificación del documento HTML.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Diseño y desarrollo de portales web
La etiqueta para los enlaces es <a>, teniendo siempre que incorporar el atributo href para indicar la
URL a la que hace referencia. Se puede enlazar cualquier contenido como pueden ser otras
páginas web, documentos PDF, archivos ZIP, etc.
También se puede emplear para enlazar direcciones de correo electrónico, con la particularidad de
tener que escribir en el la palabra mailto antes de la dirección de e-mail.
También es posible enlazar con un punto concreto de una página, siendo necesario en primer lugar
usar la etiqueta <a> con el atributo name, para indicar el punto de retorno. Y en la etiqueta <a> de
origen se indicara en el atributo href la URL (en caso de ser distinta página), seguida de una # y el
nombre indicado en el punto de retorno.
<a name="inicio"></a>
...
<a href="#inicio">Volver al inicio de la página</a>
En el caso de emplear paginaciones, como si fuera un libro o listado de productos, los atributos
start, prev y next son muy interesantes para identificar los puntos de inicio, anterior y siguiente.
2.5. Listas
HTML permite crear 3 tipos de listas para poder agrupar elementos, los cuales tienen significado
de una forma conjunta. Por ejemplo, el menú de navegación es un lugar idóneo para emplearlas.
• Las listas ordenadas muestran una serie de elementos en los cuales se genera una lista
incremental. La etiqueta que se emplea es <ol> y los elementos también se delimitan con
<li>.
• Las listas de definiciones se emplean para definir términos como si fuera un diccionario,
empleando <dl> para delimitar, y posteriormente <dt> para identificar el término y <dd>
para identificar la definición.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
Una de las ventajas, es la posibilidad de poder anidar unas listas dentro de otras, muy útil tanto en
listas no ordenadas u ordenadas, para poder crear sublistas.
<ul>
<li>Inicio</li>
<li>
<strong>Noticias</strong>
<ul>
<li><a href="#">Recientes</a></li>
<li><strong><a href="#">Más leídas</a></strong></li>
<li><a href="#" >Más valoradas</a></li>
</ul>
</li>
<li>
Artículos
<ol>
<li><strong>XHTML</strong></li>
<li>CSS</li>
<li>JavaScript</li>
</ol>
</li>
<li>
Contacto
<dl>
<dt><em>Email</em></dt>
<dd><strong>nombre@direccion.com</strong></dd>
<dt><em>Teléfono</em></dt>
<dd>900 900 900</dd>
</dl>
</li>
</ul>
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Diseño y desarrollo de portales web
Las webs actuales están llenas de imágenes y son un elemento principal e imprescindible dentro
de ellas para hacer que sean atractivas para el usuario. La etiqueta <img> es la empleada para
incluirlas, teniendo en cuenta que el atributo src, es imprescindible, pues indica la URL de la
imagen a incorporar. Las imágenes pueden a emplear pueden estar en cualquiera de los formatos
más habituales como JPEG, GIF, PNG o BMP, siendo JPEG el más habitual y PNG empleado para
el uso de transparencias.
También pueden incluirse objetos embebidos, como es el caso de applets de Java, vídeos
externos o flash, empleando la etiqueta <object>, e indicando en el atributo data la URL del objeto
y en type el tipo de datos. Pueden anidarse varios object, y en caso de no cargar el primero,
pasará a la segunda opción.
2.7. Tablas
Las tablas en HTML son un elemento muy versátil, el cual permite contener elementos simples,
agrupaciones de filas y de columnas, cabeceras y pies de tabla, subdivisiones, cabeceras múltiples
y otros elementos complejos.
Una tabla se identifica con la etiqueta <table> y tiene como elementos imprescindibles en su
interior la etiqueta <tr> para identificar las filas y <td> para identificar las celdas de una fila, es
decir, las columnas. Y si las celdas precisan de una cabecera, además se emplea la etiqueta <th>
en lugar de emplear la <td>.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
<table>
<tr>
<thscope="col">Nombre producto</th>
<thscope="col">Precio unitario</th>
<thscope="col">Unidades</th>
</tr>
<tr>
<td>Artículo 1</td>
<td>192.02</td>
<td>1</td>
</tr>
<tr>
<td>Artículo 2</td>
<td>2.50</td>
<td>5</td>
</tr>
<tr>
<td>Artículo 3</td>
<td>12.99</td>
<td>1</td>
</tr>
<tr>
<th>TOTAL</th>
<td>-</td>
<td>7</td>
</tr>
</table>
Varias celdas contiguas también pueden agruparse o fusionarse entre sí, para salir de la estructura
regular inicial, en el que todas las tablas tienen el mismo número de filas y columnas. De esta
forma, empleando el atributo colspan, se puede indicar el número de columnas que va a agrupar
esa celda, y de forma paralela, empleando rowspan, se fusionan filas.
<table>
<tr>
<tdcolspan="2">A</td>
</tr>
<tr>
<td>B</td>
<td>C</td>
</tr>
</table>
Conceptualmente, las tablas pueden distribuirse en tres secciones, para agrupar la cabecera, el
contenido y el pie, de una forma análoga a como se hace con las etiquetas <header>, <content> y
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Diseño y desarrollo de portales web
<footer>. Para ello se emplean las etiquetas <thead>, <tbody> y <tfoot>, y deben colocarse
exactamente en este orden, incluyendo dentro de ellas los <tr> de las filas que incorporan.
2.8. Formularios
Los formularios permiten que el usuario de una web interactúe con las aplicaciones web, pasando
desde simples cajas de textos a introducciones de fechas a partir de un calendario y con validación
de la misma gracias a Javascript.
Todo formulario debe estar contenido dentro de su etiqueta <form>, dentro de la cual se incluirán
los botones, cuadros de texto, listas desplegables e incluso otros elementos no específicos como
textos. Además, tienes una serie de atributos propios que son de gran relevancia, siendo los dos
primeros los más habituales:
• action= “url”. Indica la URL que procesa el formulario una vez enviado
• type = "text | password | checkbox | radio | submit | reset | file | hidden | image |
button". Indica el tipo de control.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
Para poder diferenciar los tipos de <input>, se identifican a continuación todos ellos junto a una
breve descripción de los mismos.
• checkbox: casillas de verificación que permite al usuario seleccionar una o varias de las
opciones.
• radio: casilla de verificación similar al checkbox, pero que sólo permite seleccionar una de
todas las opciones.
• button: botón sin funcionalidad preestablecida, que permite realizar tareas programadas
mediante Javascript.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Diseño y desarrollo de portales web
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
2.9. Multimedia
Si deseáramos añadir archivos multimedia a nuestro HTML, como audios y/o videos, utilizaríamos
las siguientes etiquetas: <video>, <audio> y <embed>
• Con la etiqueta <video> especificaríamos el video que queremos incluir en nuestro HTML.
También indicaremos el tamaño del video en nuestro HTML, es decir, la anchura y altura
en la página. Añadiremos el nombre del archivo en el código, indicando el tipo de archivo
que en este caso sería .mp4. Habrían varios formatos aceptados como mp4, WebM, etc.
• Con la etiqueta <audio>, definiremos sonido o música. No haría falta indicar el tamaño
como en <video>. Definimos también el nombre del archivo de audio. Además de eso
indicaremos el tipo del archivo que queremos que se reproduzca en nuestra página, los
formatos aceptados son: mp3/wav.
<audio controls>
<Source src=”audio.mp3” type=”video/mpeg”>
</audio>
<embed src="helloworld.swf">
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Diseño y desarrollo de portales web
Hojas de Estilo en Cascada (Cascading Style Sheets), es un mecanismo que permite describir
cómo se va a mostrar un documento en la pantalla del ordenador, en el móvil o como va a ser
impreso por la impresora. Puede aplicarse a cualquier documento XML, aunque es principalmente
usado para definir las interfaces de los documentos HTML. Su principal ventaja es que un cambio
en la hoja de estilos afectará a todas las páginas vinculadas a la misma.
CSS funciona a base de reglas, realizando declaraciones que se aplican a un documento HTML o
XML. Las Hojas de estilo están compuestas por una o varias reglas y esta a su vez está
compuesta de dos partes: un selector y la declaración.
El selector es el enlace entre el documento y el estilo, especificando los elementos que se van a
ver afectados; mientras la declaración especifica las propiedades que se asignarán al elemento o
elementos englobados en la especificación.
p {
color: red;
text-align: center;
}
• Hoja de estilo externa que estará vinculada a un documento a través del elemento <link>,
el cual debe ir situado en la sección <head>.
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
• Elemento <style>, en el interior del documento al que se le quiere dar estilo, y que
generalmente se situaría en la sección <head>. De esta forma los estilos serán
reconocidos antes de que la página se cargue por completo.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
<head>
<style>
body {
background-color: linen;
}
h1 {
color: maroon;
margin-left: 40px;
}
</style>
</head>
• Estilos directamente sobre aquellos elementos que lo permiten a través del atributo <style>
dentro de <body>. Pero este tipo de definición del estilo pierde las ventajas que ofrecen las
hojas de estilo al mezclarse el contenido con la presentación.
La versión estandarizada por la W3C actual es CSS3, desarrollada de forma paralela a HTML5,
está compuesta de distintos módulos, los cuales llevan desarrollos independientes y permiten
integraciones paulatinas a los navegadores, según los estados de desarrollo en los que se
encuentren.
3.2. JavaScript
JavaScript apareció ante la necesidad de validación de datos en las conexiones de Internet de baja
velocidad de los años 90, sin tener que enviar los datos y esperar la respuesta del servidor. Por lo
tanto JavaScript (JS), es un lenguaje que se ejecuta en el lado del cliente e implementado por el
navegador web, pero que también puede tener aplicaciones externas a la web, como ejecutarse en
un PDF.
Para evitar duplicados entre empresas, Netscape, empresa que implementó ECMAScript, decidió
estandarizarlo de forma que fuera multiplataforma e independiente, bautizándolo como JavaScript.
La organización internacional para la estandarización (ISO) adoptó el estándar ECMA-262 a través
de su comisión IEC, dando lugar al estándar ISO/IEC-16262.
JavaScript tiene una sintaxis similar a C, a pesar que por otro lado también adopta
especificaciones propias de Java, como su sintaxis y estar orientado a objetos. Una de las grandes
ventajas es que todos los navegadores actuales interpretan sin problemas el lenguaje. Su
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Diseño y desarrollo de portales web
A partir de la llegada de Ajax, JavaScript ha vuelto a tener un gran éxito, como lo demuestran la
proliferación de frameworks y librerías que basadas en él, intentan mejorar y facilitar las
prestaciones.
Habitualmente JavaScript se emplea para escribir funciones incrustadas en páginas HTML, que
interactúan con el DocumentObjectModel (DOM) de la página. Entre las tareas principales que
permite se encuentra la carga de contenido externo sin tener que recargar la página, animación de
elementos, contenido interactivo, validación de datos y seguimiento a las tareas realizadas por el
usuario.
<script type="text/javascript">
alert("Un mensaje de prueba");
</script>
De todos modos, lo más habitual es incluir la programación en un fichero totalmente externo, para
tener independencia y reusabilidad desde otros documentos.
El último método posible de hacer uso de JavaScript, es dentro del pripio código HTML, haciendo
referencia al objeto en el que se encuentra.
…
<p onclick="alert('Hola)">Un párrafo de texto.</p>
…
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
una correcta programación en la parte del servidor, aunque los navegadores ya implementan
soluciones parciales a muchos de estos problemas.
Los portales web accesibles son aquellos en los cuales, además de facilitar el acceso a los
contenidos de la misma a usuarios discapacitados, ofrece la misma funcionalidad con dispositivos
especiales, como pueden ser dispositivos sin ratón, sin pantalla, o con pantalla muy pequeña, etc.
Para ello, la W3C, a través del proyecto WAI (Web AccessibilityInitiative), trabaja para facilitar el
asceso a las personas con discapacidad, desarrollando pautas de accesibilidad, mejorando las
herramientas para la evaluación y reparación de accesibilidad Web, llevando a cabo una labor
educativa y de concienciación en relación a la importancia del diseño accesible de páginas Web, y
abriendo nuevos campos en accesibilidad a través de la investigación en esta área.
Para hacer que el contenido web sea accesible, se han desarrollado una serie de Pautas de
Accesibilidad al Contenido en la Web (WCAG), que tienen la finalidad de recudir las barreras de las
personas con discapacidad, mediante 14 pautas que proporcionan soluciones de diseño para evitar
que este puede ocasionar problemas de acceso a la información.
• Prioridad 1: son aquellos puntos que un desarrollador Web tiene que cumplir ya que, de
otra manera, ciertos grupos de usuarios no podrían acceder a la información del sitio Web.
• Prioridad 2: son aquellos puntos que un desarrollador Web debería cumplir ya que, si no
fuese así, sería muy difícil acceder a la información para ciertos grupos de usuarios.
• Prioridad 3: son aquellos puntos que un desarrollador Web debería cumplir ya que, de otra
forma, algunos usuarios experimentarían ciertas dificultades para acceder a la información.
• Nivel de Conformidad "Doble A" (AA): todos los puntos de verificación de prioridad 1 y 2
se satisfacen.
• Nivel de Conformidad "Triple A" (AAA): todos los puntos de verificación de prioridad 1,2
y 3 se satisfacen.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Diseño y desarrollo de portales web
Para poder validar el contenido de una web con respecto a los niveles de conformidad, existen
diversas webs que ayudan a ello, siendo una de ella esta: http://www.tawdis.net/.
A modo introductorio, se van a indicar los requisitos de accesibilidad exigidos para alcanzar el nivel
A:
• Generales: Proporcionar texto alternativo a imágenes y objetos, asegurar en los textos uso
de colores que se puedan distinguir, marcar las variaciones del idioma del texto o de los
elementos textuales, asegurar su lectura sin emplear hojas de estilos, la información
equivalente para los contenidos dinámicos debe adaptarse a los cambios de los contenidos
dinámicos, ningún elemento debe parpadear en la pantalla, el contenido se debe escribir
con un lenguaje sencillo y limpio.
• Mapas de imagen: proporcionar un enlace textual por cada una de las regiones del mapa
de imagen y utilizar mapas de imagen en el cliente, en vez de mapas de imagen de
servidor.
• Contenidos multimedia (audio y vídeo): incluir una descripción textual del contenido
multimedia y para los contenidos basados en vídeo o animaciones, sincronizar las
alternativas textuales con la presentación.
• Si no se pueden cumplir los anteriores requisitos, proporcionar una página alternativa con
la mayor cantidad posible de contenidos y que cumpla con los requisitos anteriores.
Referencias bibliográficas
(2) W3Schools.http://www.w3schools.com/
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Pedro Garrido Águila
(5) Diego, J. (2012). El gran libro de HTML5, CSS3 y Javascript. Barcelona: Marcombo ediciones
técnicas.
(6) Herrera, E (2012). Arrancar con HTML5. Curso de programación. México D.F.: Alfaomega
Grupo Editor.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 38. Comercio electrónico. Pasarelas de
pago. Factura electrónica. Servicios ge-Factura y
FACE
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Jorge Sánchez López
1. Comercio electrónico
1.1. Introducción
El campo del comercio electrónico es tan amplio que comprende aspectos relacionados con el
desarrollo de la Sociedad de la Información, la penetración de las nuevas tecnologías de la
información y comunicaciones en la escuela, el hogar, las empresas y las administraciones, etc.
Pero fundamentalmente respecto a fenómenos que afectan a las empresas: globalización, nuevos
modelos de negocio, relaciones con clientes y proveedores, marketing y publicidad, canales de
distribución, medios de pago, etc.
En este tema, se exponen las ideas generales del comercio electrónico, sus características y
taxonomías. También el entorno normativo en el que se mueve, así como los estándares
tecnológicos. Nos centraremos en la factura electrónica y sus modelos como ejemplo de
interrelación electrónica entre los negocios y las administraciones, y las pasarelas de pago como
medios para cerrar las operaciones comerciales mediante las TIC.
Con la aparición de Internet, pasó a ser "comercio en la red" con la compra de bienes y servicios
vía servidores seguros HTTPS, con tarjetas de compra electrónica y con servicios de pago
electrónico como autorización para tarjeta de crédito.
En el año 2000 el 8 de junio, se publicó Directiva 2000/31/CE del Parlamento Europeo y del
Consejo, relativa a determinados aspectos jurídicos de los servicios de la sociedad de la
información, en particular el comercio electrónico en el mercado interior (Directiva sobre el
comercio electrónico)
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Comercio electrónico. Pasarelas de pago. Factura electrónica. Servicios ge-Factura y FACE
Contratación electrónica: validez y eficacia de los contratos que se celebren por vía
electrónica, aunque no consten en soporte papel.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Jorge Sánchez López
Contempla expresamente sanciones de apercibimiento y multa para las empresas que, estando
obligadas a ello, no ofrezcan a los usuarios la posibilidad de recibir facturas electrónicas o no
permitan el acceso a sus facturas a personas que han dejado de ser clientes.
Se pretende facilitar a los usuarios un medio de interlocución telemática que, mediante el uso de
certificados reconocidos de firma electrónica, les permita realizar, al menos los trámites de:
• Ejercicio de los derechos ARCO que prevé la normativa sobre protección de datos
personales.
1.4. Características
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Comercio electrónico. Pasarelas de pago. Factura electrónica. Servicios ge-Factura y FACE
• Reducción de costes: una tienda virtual disminuye los costes de entrada al mercado y
reduce el esfuerzo de búsqueda de los consumidores al facilitar la comparación de los
precios y productos.
• Distribución inmediata y sin intermediarios: los proveedores suelen tener unos costes
bajos de distribución al eliminarse intermediarios.
• Publicidad: las empresas reciben dinero de los anunciantes por situar formatos
publicitarios en páginas web que reciben más tráfico de usuarios o aquellas cuyas palabras
de búsqueda coinciden con las palabras clave del anuncio. (Por ejemplo, Google Adwords).
• Long Tail: se basa en ofrecer gran cantidad de diferentes productos de nicho en pocas
unidades, huyendo del mercado de masas. Venden menos unidades de más cosas.
(Amazon).
• Modelos híbridos de pago y gratuitos (freemium): el usuario recibe una gran parte de
los contenidos sin necesidad de pagar y solo paga por aquel contenido de mayor valor o
exclusivo. (Dropbox).
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Jorge Sánchez López
1.6. Taxonomías
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Comercio electrónico. Pasarelas de pago. Factura electrónica. Servicios ge-Factura y FACE
• Peer to Peer: plataformas que ponen en contacto a iguales (particulares) para que
intercambien productos y servicios.
La ONU promueve el comercio por su potencial para fomentar el desarrollo económico y erradicar
la pobreza.
EDI: consigue que las empresas intercambien información de forma estructurada. Su aparición es
bastante anterior a Internet.
• Estructura explícita entendible no sólo por la máquina sino también por las personas.
• Es económico de implementar.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Jorge Sánchez López
1.8. Conclusiones
• El comercio electrónico hace sencilla la labor de negocios con los clientes, reduce los
costes y precios, y garantiza una disponibilidad 24x7.
• ROPO y ROBO.
2. Pasarelas de pago
2.1. Introducción
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Comercio electrónico. Pasarelas de pago. Factura electrónica. Servicios ge-Factura y FACE
Se trata de plataformas proporcionadas habitualmente por las entidades bancarias para que se
incorporen en el proceso de pago de la tienda virtual de los comercios.
Procedimiento:
Desde el año 2000, la AEAT permite también a los contribuyentes que poseen certificado digital de
usuario realizar el pago electrónico por Internet en una entidad financiera.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Jorge Sánchez López
• Tras el pago, el contribuyente puede imprimir un recibo justificante del mismo y liberatorio
ante la administración.
• Todos estos sistemas utilizan protocolo de seguridad SSL, tanto en la transmisión de datos
entre cliente y servidor como entre servidores.
Solamente la AEAT puede garantizar la generación de los NRC, ya que custodia las claves
maestras originarias.
La Consellería de Hacienda y AAPP pone a disposición de los usuarios un sistema de ayuda que,
mediante las nuevas tecnologías, facilita el pago de las autoliquidaciones y tasas vía web,
utilizando la pasarela de pagos de la GV.
Este sistema se llama PTG (Pago Telemático Genérico) se realiza a través del portal tributario de
la Consellería.
Por cada petición de cargo en cuenta y tras una serie de validaciones, se gestiona el pago
mediante la pasarela, en la cuenta indicada en la petición. Posteriormente, se generará un
justificante de pago con todos los datos resultantes del cargo en cuenta, incluyendo el NRC.
3. La factura electrónica
3.1. Introducción
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Comercio electrónico. Pasarelas de pago. Factura electrónica. Servicios ge-Factura y FACE
En la factura se encuentran los datos del expedidor y del destinatario, el detalle de los productos y
servicios suministrados, los precios unitarios, los precios totales, los descuentos y los impuestos.
En Europa, la normativa de facturación se regula por la Directiva 77/388/CEE que define, además
impuestos como el IVA cuya traducción al inglés VAT (Value Added Tax) es también de uso
amplio.
Esta Directiva se ha ido modificando a lo largo de los años y su texto refundido se recoge en la
Directiva 2006/112/CE del Consejo, de 28 de noviembre de 2006, relativa al sistema común del
impuesto sobre el valor añadido.
• Pro-forma: documenta una oferta, con indicación de la forma exacta que tendrá la factura
tras el suministro. No tienen valor contable ni como justificante.
• Copia: documenta la operación para el emisor, con los mismos datos que el original. Debe
llevar la indicación de copia para permitir distinguirla del original.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Jorge Sánchez López
Debe llevar la indicación de duplicado para permitir distinguirla del original, especialmente
para el caso de que reaparezca el original.
Una factura electrónica tiene los mismos efectos legales que una factura en papel. Es un
justificante de la entrega de bienes o la prestación de servicios.
Están reguladas por el Real Decreto 1619/2012 por el que se aprueba el Reglamento que regula
las obligaciones de facturación, que comprende:
• Plazos.
• Regímenes especiales.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Comercio electrónico. Pasarelas de pago. Factura electrónica. Servicios ge-Factura y FACE
El proceso de facturación es un proceso importante para cualquier empresa, una relación basada
en documentos en formato papel que para ser generados y procesados precisan del empleo de
grandes cantidades de recursos y para los que las empresas se ven obligadas a realizar muchas
tareas de forma manual. Un buen proceso administrativo de estos documentos tiene como
consecuencia no sólo un buen control de compras y ventas, sino el cumplimiento de las
obligaciones tributarias de cada empresa. Sin embargo, todo ello resulta más complicado en un
proceso basado en papeles y que requiere la intervención manual.
Las denominaciones “factura electrónica”, “factura telemática” y “factura digital” son equivalentes,
si bien la denominación utilizada en la normativa es “remisión electrónica” o “remisión por medios
electrónicos” de factura.
Aclarado esto, podemos definir la Factura Electrónica como el documento tributario generado por
medios informáticos en formato electrónico, que reemplaza al documento físico en papel, pero que
conserva su mismo valor legal con unas condiciones de seguridad no observadas en la factura en
papel.
El nuevo marco legal y tecnológico ofrece la oportunidad a las empresas de disponer de una nueva
vía para gestionar las facturas:
• Conservar los datos de las facturas. No es necesario conservar las facturas emitidas sino
la “matriz” o base de datos que permite generarlas.
Las facturas electrónicas se pueden emitir en diferentes formatos (EDIFACT, XML, PDF, html, doc,
xls, gif, jpeg o txt, entre otros) siempre que se respete el contenido legal exigible a cualquier
factura y que se cumplan ciertos requisitos para la incorporación de la firma electrónica reconocida
(qualified electronic signature, en inglés).
En rigor, el reglamento establece que existen dos formas concretas de intercambiar documentos
electrónicos a las que se les presume un nivel de fiabilidad alto, sin descartar que puedan existir
otras. Estas dos formas garantizan la autenticidad e integridad que son los verdaderos requisitos
que se exigen a los documentos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Jorge Sánchez López
Por un lado, el empleo de una firma electrónica y por otro el uso de sistemas EDI en los que las
entidades por cuya intermediación se intercambian los mensajes aportan esas cualidades a los
documentos intercambiados.
3.2.1. Tipos
Con formato no estructurado: contienen una imagen, se requiere una intervención manual para
ser introducida en los sistemas informáticos. Facturas en papel escaneadas o en formato PDF.
La factura electrónica no debe entenderse como un proceso aislado, sino como un elemento
integrado dentro del conjunto de gestiones financieras y del flujo de compras y ventas de una
entidad.
Tenemos que considerar la factura como la punta del Iceberg que representa el proceso de gestión
de compras y ventas de la empresa, en el que con frecuencia nos encontramos la factura como
uno de los últimos resultados tras el tránsito habitual de presupuesto, solicitudes de compra,
aprobaciones, albaranes, apuntes contables o procesos de gestión de almacén.
Tenemos que considerar la factura como la punta del Iceberg del proceso de gestión.
Una buena gestión electrónica en todos los pasos y documentos previos facilitará en gran medida
la implantación de la factura electrónica y multiplicará exponencialmente los beneficios de la
misma.
Por otro lado, acometer el proyecto de incorporar la Factura Electrónica a la gestión de una
empresa, habitualmente implicará revisar el proceso de emisión y recepción de facturas y afectará
a más áreas de gestión de las que puede parecer obvio.
3.4. Funcionamiento
1. En la emisión, el emisor, con la conformidad del receptor, transmite a éste por medios
telemáticos la Factura Electrónica (que incluye una firma electrónica) y conserva Copia o
Matriz (la Base de Datos). No es necesario conservar los documentos electrónicos
firmados.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Comercio electrónico. Pasarelas de pago. Factura electrónica. Servicios ge-Factura y FACE
De esta forma ya no se exige imprimir la factura para que ésta sea válida, legal y fiscalmente y,
todo el tratamiento (emisión, distribución y conservación) puede realizarse directamente sobre el
fichero electrónico generado por el emisor.
En la emisión, el emisor, con la conformidad del receptor, transmite a éste por medios telemáticos
la factura electrónica (que incluye una firma electrónica) y conserva copia en la matriz (BD). No es
necesario conservar los documentos electrónicos firmados, pero debe garantizar acceso completo
a las facturas: visualización, búsqueda, copia o descarga en línea o impresión.
De esta forma todo el tratamiento puede realizarse sobre el fichero electrónico generado por el
emisor (sin necesidad de imprimir para que sea legal y fiscalmente válida).
La factura electrónica genera grandes beneficios a las empresas que la utilizan, tanto del lado del
emisor como del receptor. Existen muchas razones para adoptar la factura electrónica, que van
desde las puramente económicas hasta los ecológicas.
• Ahorro de costes: tanto del lado del emisor como del receptor. Derivado de la supresión
del papel, el abaratamiento de los medios de comunicación electrónicos (en contraposición
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Jorge Sánchez López
a los medios tradicionales de envío postal), eliminación de los gastos de franqueo, gastos
derivados de la introducción manual de datos, etc.
Integración con ERPs: desde el punto de vista del emisor continúa el proceso que ya
se está realizando electrónicamente. Un simple click desde el ERP y la factura es
emitida y enviada.
Se consigue, en definitiva, una mayor calidad de servicio que repercute a su vez en una mayor
competitividad de la empresa.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Comercio electrónico. Pasarelas de pago. Factura electrónica. Servicios ge-Factura y FACE
• Mediante otros medios que los interesados hayan comunicado a la AEAT con carácter
previo y hayan sido validados por la misma.
3.7. FACe
Es una plataforma implementada por la Administración General del Estado (AGE) que permite a
proveedores la remisión de las facturas a aquellos órganos de la administración que tienen la
posibilidad de recibir facturas electrónicas.
• Un portal web donde pueden presentar sus facturas electrónicas en formato facturae 3.2
o superior.
• Una interfaz de Web Services para el envío automático de las facturas desde sus sistemas
de gestión económica.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Jorge Sánchez López
Y a las AAPP:
• Interfaces de Web Services que permiten la recepción automática de las facturas en sus
sistemas de gestión económica.
3.8. Factura-e
Desde 2007, la AGE tiene un formato oficial de factura electrónica, obligatorio para expedir
facturas a la AGE y sus organismos vinculados. Es un formato basado en XML, descrito mediante
un esquema XSD cuyos elementos principales son:
3.9. Conclusiones
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Comercio electrónico. Pasarelas de pago. Factura electrónica. Servicios ge-Factura y FACE
Referencias bibliográficas
Ley 59/2003, de 19 de diciembre, de firma electrónica. Boletín Oficial del Estado. Páginas de la 1 a
la 29.
Ley 9/2014, de 9 de mayo, General de Telecomunicaciones. Boletín Oficial del Estado. Páginas de
la 1 a la 110.
Real Decreto 1619/2012, de 30 de noviembre, por el que se aprueba el Reglamento por el que se
regulan las obligaciones de facturación. Boletín Oficial del Estado. Páginas de la 1 a la 26.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Jorge Sánchez López
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 39. Servicios de autenticación. Certificados
digitales. Localización de claves públicas.
Servicios de directorio. Marcos de autenticación.
Otras técnicas de autenticación
Como extensión de los certificados digitales analizaremos una de las opciones que
más trascendencia puede haber tenido en el ámbito jurídico-administrativo: la firma
electrónica.
Veremos que los servicios de directorios, sustentados por certificados digitales, son un
tipo concreto de base de datos que nos devuelve información a partir de la
identificación de una entrada (el DN) o bien a partir de búsquedas en el directorio. Nos
centraremos en los servicios de directorios de sistemas operativos de red basados en
LDAP. Concluiremos esta parte describiendo cuáles son las operaciones que los
clientes pueden realizar con un servicio de directorio.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
1. Servicios de autenticación
En lo que a seguridad informática se refiere, la autenticación es una de las tres partes que
componen la triple A (AAA): Authentication (Autenticación), Authorization (Autorización),
Accounting (Auditoria).
• Algo que sólo nosotros sabemos, como por ejemplo una contraseña asociada a un nombre
de usuario. Un ejemplo del uso de contraseña se daría cuando accedemos con nuestro
usuario en el inicio se sesión y nos autenticamos mediante ese nombre de usuario y la
contraseña como credencial. Nos estaríamos identificamos por lo que sabemos.
• Algo que sólo nosotros tenemos, como por ejemplo, tarjetas de testimonio (token). Un
ejemplo de tokens sería acceder a edificio con vigilancia y que nos pidieran que nos
identificáramos con la tarjeta que llevara nuestro nombre, apellidos, departamento donde
trabajamos, etc. Nos estaríamos identificando por lo que tenemos.
• Alguna característica biológica que nos hace únicos frente a otras entidades, como por
ejemplo, cualquiera que la biometría nos permita verificar. Un ejemplo de identificación
biométrica sería el lector de huellas digitales, tan popular en dispositivos móviles. Nos
estaríamos identificando por lo que somos.
Con las contraseñas deberemos aplicar ciertas políticas de seguridad para que resulten confiables:
• No debe estar anotada en ningún soporte físico y/o digital. Deberá ser memorizada.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
• Deberá ser compleja. Es recomendable que incluya caracteres especiales, mayúsculas y/o
números, o que incluya oraciones en vez de palabras, (password vs passphrase).
Existen sistemas de autenticación que combinan uno o varios mecanismos de autenticación, a los
que podemos denominar:
• Fiabilidad: Debe tener una tasa de fallos con tendencia a cero. Es imposible crear un
sistema 100% libre de fallos, pero deberá ser un sistema lo suficientemente robusto para
evitar tener fallos.
• Viabilidad: Deber ser viable su implementación. Si el valor del recurso protegido es inferior
al coste de implementación es un sistema inviable.
• Amigable: Al fin y al cabo, son los usuarios los que utilizarán el sistema.
Se entiende por Identificación Digital (ID) al conjunto de mecanismos y medios que permiten
garantizar la identidad de una persona física o jurídica en entornos digitales, incluyéndose también
aquí a los que propiamente gestionan y administran estos servicios.
La identificación digital se sustenta en algún tipo de información digital que pueda acreditar la
identidad de su titular en un procedimiento normalizado y que, además, en el ámbito
administrativo, también permita la firma electrónica de documentos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
• Las tarjetas inteligentes por contacto: Son del mismo tamaño de una tarjeta de crédito con
un microprocesador y una memoria que se pueden usar con un lector de tarjetas para
acceder a sistemas informáticos.
• DNI-e: Es el documento emitido por la autoridad oficial del Estado y que permite identificar
a la población tanto de manera personal como virtual. Tiene el tamaño de una tarjeta de
crédito y dispone de un chip de seguridad con información almacenada en su interior,
como pueden ser claves privadas y claves públicas de su propietario.
• Sistemas biométricos: Sistemas de reconocimiento por huella dactilar, por voz, por firma,
ocular, etc.
• Certificados Digitales: Certificados emitidos por Autoridades Certificadoras (CA) que avalan
la acreditación de su propietario.
La firma digital es el conjunto de datos en forma electrónica, consignados junto a otros o asociados
con ellos, que pueden ser utilizados como medio de identificación del firmante.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
La firma digital avanzada es la firma electrónica que permite identificar al firmante y detectar
cualquier cambio posterior de los datos firmados, que está vinculada al firmante de manera única y
a los datos a que se refiere y que ha sido creada por medios que el firmante puede utilizar, con un
alto nivel de confianza, bajo su exclusivo control.
El concepto de firma digital surgió en 1976 cuando Diffie y Hellman idearon el criptosistema híbrido
de clave asimétrica o pública.
La función principal de una firma digital es garantizar tanto la identidad del firmante como la
integridad del mensaje. Para ello, el firmante generará mediante una función “hash”, un “resumen”
también llamado “huella digital” del mensaje. Este “resumen” o “huella digital” será cifrado con su
clave privada y el resultado es lo que se denomina firma digital, que será adjuntada al mensaje
original.
La función hash es un algoritmo matemático que permite calcular un valor resumen a partir de los
datos a ser firmados. Este valor es único para esos datos de entrada. Por ejemplo, si tenemos un
texto, el resultado de la función hash es un número que identifica inequívocamente al texto. Éste
número es lo que se conoce como “huella digital”. Si se adjunta este número al texto original, el
receptor del mensaje podrá comprobar la integridad del mensaje recibido ya que el destinatario
podrá generar la misma “huella digital” aplicando la misma función hash al mensaje original. Si la
“huella digital” generada mediante la función hash fuese firmada digitalmente por el emisor, el
destinatario podrá, además, comprobar la autoría del emisor, descifrando la firma digital con la
clave pública del firmante, lo que dará como resultado, de nuevo, la “huella digital” o “resumen” que
podrá ser comparada con la que el destinatario obtuvo por su cuenta.
Por ello, a la firma digital se le confiere la misma validez jurídico-administrativa que a la firma
manuscrita, ya que cumple con los requerimientos de integridad y no repudio.
El último paso consistirá en asociar la clave privada y la clave pública con la identidad de su
propietario, evitando así posibles fraudes de identidad. Llegados a este punto entran en juego los
Certificados Digitales y las Autoridades de Certificación (CA), que son los mecanismos y
organismos encargados de validar la identidad de una persona o entidad. De este modo quedaría
cubierta la autoría y por tanto la autenticación de la información firmada digitalmente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
La firma electrónica y la firma digital son iguales, pero a efectos legales, con la firma electrónica
podemos, entre otras cosas, firmar documentos oficiales en las oficinas virtuales de las
instituciones del Estado.
La Firma Electrónica se vincula a un documento para acreditar la identidad del autor, para señalar
conformidad (o disconformidad) con el contenido, para indicar que se ha leído o, según el tipo de
firma, para garantizar que no se pueda modificar su contenido.
• Integridad: Garantiza que nadie ha modificado el mensaje original. Un sólo bit modificado
dará error en la verificación de la firma.
• No repudio: Garantiza que el mensaje no será repudiado. Ante terceras partes, el mensaje
firmado por el emisor prueba su autoría ya que sólo él mismo conoce de su clave privada.
Los países de la Unión Europea se rigen por la Directiva 1999/93/CE de 13 diciembre, por la que
se establece un marco comunitario para la firma electrónica. Posteriormente, cada país miembro
realiza la transposición de la Directiva dentro de su legislación de la forma que vea más
conveniente.
2. La firma electrónica avanzada permite identificar al firmante y detectar cualquier cambio ulterior
de los datos firmados; está vinculada al firmante de manera única y a los datos a que se refiere,
siendo creada por medios que el firmante puede mantener bajo su exclusivo control. Puede ser
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
Una firma electrónica reconocida es una firma electrónica avanzada basada en un certificado
reconocido y generada mediante un dispositivo seguro de creación de firma. Se equipara por
completo a la firma manuscrita.
Las normas EN 319 122 (CAdES) y EN 319 132 (XAdES) definen los formatos técnicos de la firma
electrónica. La primera se basa en el formato CMS usando sintaxis ASN.1 y la segunda usando
sintaxis y formato XML.
• Firma básica. Incluye el resultado de operación de hash y clave privada, identificando los
algoritmos utilizados y el certificado asociado a la clave privada del firmante.
• Firma fechada. A la firma básica se añade un sello de tiempo calculado a partir del hash
del documento firmado por una TSA (Time Stamping Authority).
• Firma validada o firma completa. Es la firma avanzada ejecutada con un DSCF (dispositivo
seguro de creación de firma) y amparada por un certificado reconocido. A la firma fechada
se añade información sobre la validez del certificado procedente de una consulta de CRL o
de OCSP realizada a la Autoridad de Certificación.
La firma completa libera al receptor de la firma del problema de ubicar al Prestador de Servicios de
Certificación y determinar los procedimientos de validación disponibles.
2. Certificados digitales
En el año 1976 los matemáticos Whitfield Diffie y Martin Hellman idearon el sistema criptográfico
de clave asimétrica, también conocido como Sistema de Clave Pública.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
• Privada: Ésta clave solo la posee el emisor, nunca la transmite y sólo es utilizada por él
tanto para cifrar como para descifrar.
• Si el emisor envía un mensaje que sólo deba leerlo el receptor, aquel cifrará el mensaje
con la clave pública del receptor. El receptor empleará su clave privada que sólo él conoce
para descifrar el mensaje. Se garantiza la confidencialidad del mensaje.
• Si el emisor envía un mensaje cifrado con su clave privada, el receptor necesita la clave
pública del emisor para descifrar el mensaje. De ésta manera el receptor tiene la garantía
de que el emisor es quien dice ser. Se garantiza la integridad, autenticación y el no repudio
del mensaje.
Los certificados electrónicos o digitales están basados en el sistema criptográfico de clave pública.
Esto quiere decir que, un Certificado Digital consta de una pareja de claves criptográficas, una
pública y una privada, creadas con un algoritmo, de forma que aquello que se cifra con una de las
claves sólo se puede descifrar con su clave pareja.
Los certificados digitales pueden identificar y ofrecer garantías de seguridad ante organismos
públicos y privados que acepten certificados digitales, habiendo tenido que ser emitidos por
autoridades certificadoras (AC) como la FNMT. Según normativa española:
El Certificado Digital es el único medio que permite garantizar técnica y legalmente la identidad de
una persona haciendo uso de medios telemáticos. Se trata de un requisito indispensable para que
particulares, empresas e instituciones puedan acceder los unos, y ofrecer los otros, servicios
seguros a través de Internet.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
• Vincula una clave pública a la identidad de una persona física y/o jurídica.
• Es un documento digital que contiene la clave pública junto con los datos del titular, todo
ello firmado electrónicamente por una Autoridad de Certificación (CA).
• La clave pública que se certifica, que se usará directamente para comprobar documentos
firmados.
• El nombre del emisor del certificado. En general, se trata de una Autoridad de Certificación
(CA), un organismo que puede expedir certificados de clave pública. Esta autoridad,
además de ser una entidad de confianza da fe de que la clave pública pertenece a la
identidad especificada en el certificado.
El titular del certificado debe mantener bajo su poder la clave privada, ya que, si ésta es sustraída,
el sustractor podría suplantar la identidad del titular en la red. En caso de que la clave privada
fuese sustraída, el titular debe revocar el certificado digital lo antes posible, de igual modo que se
haría cuando una tarjeta de crédito es sustraída.
El formato de los Certificados Digitales está definido por el estándar internacional UIT-T X.509. De
esta forma, los certificados pueden ser leídos o escritos por aquellas aplicaciones que cumpla con
el mencionado estándar.
• Certificados Digitales del DNI electrónico, emitidos por el Cuerpo Nacional de la Policía.
Los mecanismos de autenticación y firma digital proporcionados por el DNI electrónico son
tratados ampliamente en el tema 40 de este mismo temario.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
• Certificados de Firma de código, emitidos por CERES, sirven para garantizar la identidad
del autor de una aplicación de software en Windows firmando el código ejecutable.
Para garantizar que las claves son auténticas y pertenecen a los emisores se requiere de un
proceso normalizado en el estándar X.509. Éste proceso lo llevan a cabo las agencias
certificadoras, llamada Autoridad de Certificación (CA), empresas que se encargan de verificar y
confirmar que el propietario de una clave es quien dice ser. También son las encargadas de
distribuir las claves públicas de los usuarios certificados.
La Autoridad de Certificación (CA) se encarga de emitir los certificados para los titulares tras
comprobar la identidad de los titulares, en un acto que requiere de la presencia física del titular y
documentos que acrediten la identificación. También puede realizar la emisión del certificado digital
a través de una Autoridad de Registro (SA), garantizando de esta manera que los datos del
certificado sean reales.
Por su parte, y después de verificar la identidad del solicitante, la CA firma con su clave privada el
certificado del solicitante, garantizando así la validez y la autenticidad del certificado.
Todo el proceso de creación de claves sucede en el equipo del solicitante, por lo que la clave
privada siempre se almacenará en el equipo solicitante, lo cual garantiza que nadie más tenga
acceso a ella. Además, es imprescindible que todo el proceso sea llevado a cabo desde el mismo
equipo informático, es decir, todos los archivos relativos al certificado se almacenarán en el disco
duro del equipo desde el que se ha iniciado la tramitación. Por ello, no se puede cambiar de equipo
o de unidades de almacenamiento conteniendo el sistema operativo durante el procedimiento de
creación de claves.
Por otro lado, los certificados poseen fecha de emisión y de caducidad, y deben ser revocados o
renovados. Cuando la fecha de caducidad del certificado sea cercana a su expiración, el usuario
deberá solicitar su renovación. Si hubiese caducado, deberá solicitar uno nuevo.
La revocación del certificado la pueden ejercer tanto el propietario como la CA, ya sea porque los
datos del titular son incorrectos o han cambiado, porque la seguridad ha sido comprometida o bien
porque el certificado ha dejado de tener validez.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
Una PKI (Public Key Infrastructure) es el conjunto de software, hardware, recursos humanos,
políticas de seguridad y mecanismos que permiten la emisión y gestión de certificados digitales.
Las autoridades de certificación disponen de una plataforma (infraestructura de clave pública, PKI)
que permite generar y gestionar claves y certificados.
Una infraestructura de llave pública, por regla general, está formada por tres entidades distintas:
2.3. X.509
X.509 es el estándar desarrollado por la UIT-T para infraestructuras de clave pública (PKI),
especificando los estándares para generar certificados digitales y los algoritmos de hash.
Se define en lenguaje ASN.1 y se codifica mediante DER (Distinguish Encoding Rules) o PEM
(Privacy Enhaced Mail).
No siempre es necesaria una PKI que nos valide la autoridad o integridad de un mensaje. Es
posible que solo queramos enviar un mensaje cifrado y que el destinatario solo deba descifrarlo.
En 1991, Phil Zimmerman desarrolló un programa llamado Pretty Good Privacy (PGP) con la idea
de proteger la información que quería enviar a través de Internet. Para ello se basó en el concepto
de criptografía asimétrica.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
De esta manera, dos usuarios que quieran intercambiar mensajes privados deberán firmar
mutuamente sus claves. Se implementa de esta manera un modelo de confianza descentralizada
en contrapartida con el modelo PKI.
Esa confianza puede surgir por amistad, cercanía con el otro usuario, etc.
Este sistema criptográfico cumple con los requisitos de Autenticidad, Integridad, Confidencialidad y
No repudio.
Existe un proyecto Open Source, basado en el sistema PGP, llamado OpenPGP. La aplicación,
GnuPG (GPG), implementa los mismos mecanismos y servicios que PGP. Al igual que PGP, GPG
cifra los mensajes usando las claves generadas por los usuarios. Los usuarios comparten las
claves entre sí o a través de los servidores de claves públicas.
Para enviar un mensaje seguro a alguien de confianza, se necesita conocer la clave pública del
destinatario, ya sea porque el destinatario la ha proporcionado, o porque se adquiere a través de
un servicio de clave.
Para poder acceder fácilmente a esas claves existen unos servidores dedicados a tal fin. Los
servidores de claves públicas actúan como una agenda para dichas claves, permitiendo que el
software utilice un dato concreto o “huella digital” del propietario de la clave para buscar una clave
completa y descargarla.
Hay muchos servidores de claves públicas PGP. Algunos son privados y otros son públicos, pero
por lo general comparten sus colecciones de claves entre sí. Estos servidores de claves no pueden
verificar si las claves públicas que sus usuarios publican son genuinas o falsas. Cualquiera puede
subir una clave pública a un servidor con un nombre cualquiera. Eso significa que una clave
asociada a un usuario por su nombre o dirección de correo electrónico en un servidor de claves
podría no ser su verdadera clave. Con el fin de comprobar la autenticidad de una clave pública, es
necesario confirmar la identidad del usuario original a través de un método digno de confianza
como el que establece una CA.
El método que mayor confianza nos reportaría consistiría en que el emisor de la clave pública, la
distribuiría en persona a los destinatarios. Sin embargo, éste método no es eficiente. Normalmente,
las claves se deberían distribuir por correo electrónico o algún otro medio de comunicación
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
electrónica, pero igualmente, sólo sería eficiente cuando tengamos unos pocos corresponsales. Si
tuviéramos muchos corresponsales sería un proceso tedioso.
Para solventar el problema de la distribución existen los servidores de claves públicas que
recolectan y distribuyen las claves públicas. Cuando un servidor recibe una clave pública, bien la
añade a la base de datos o bien la fusiona con una copia de la clave ya existente. Cuando alguien
requiere al servidor una clave pública, éste la busca en la base de datos y, si la encuentra, la envía
a quien se la haya solicitado.
PGP/GPG permite utilizar una clave privada propia para autenticar la identidad del propietario de
otra clave. Esto es lo que se conoce por Anillo de Confianza o Red de confianza.
Es un concepto que proporciona una forma de distinguir entre claves auténticas y falsas. Si las
personas de un círculo de confianza firman las claves de la gente que conocen, terceros podrían
usar esas firmas para confirmar que las claves recibidas son genuinas. Al descargar la clave desde
un servidor de claves, éstas suelen incluir firmas de otras personas que afirman que es la correcta.
Sin un servidor de claves, cuando un usuario, llamado Juan, quisiera firmar la clave de otro
usuario, por ejemplo, de Marta, tendría que enviar a Marta su clave pública, de manera que Marta
pueda agregar la clave pública de Juan a su anillo de confianza. Marta devolvería a Juan su clave
pública para que éste pudiera realizar el mismo proceso a la vez que distribuiría la clave de Juan
entre su anillo de confianza. De esta forma, Juan y Marta se validan entre sí mismos y validan al
otro ante sus anillos de confianza. Lo que determina la existencia de un servidor de claves es
facilitar este proceso.
En vez de almacenar el anillo de claves en sus propios equipos, Juan y Marta almacenarán sus
anillos en el servidor. De esta manera si un tercer usuario, Pedro, quien conoce personalmente a
Marta, pero no tiene todavía confianza con Juan, quisiera pertenecer al anillo de confianza de Juan
o quisiera poder enviarle un mensaje cifrado, buscaría en el servidor al usuario Juan. Podría darse
el caso de que un usuario malintencionado estuviera tratando de suplantar la identidad de Juan. En
este caso Pedro debería revisar si el anillo de confianza del usuario malintencionado está unido al
de Marta. Como Marta no ha firmado clave alguna del usuario malintencionado, en el anillo de
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
confianza del usuario malintencionado no aparecerá Marta y Pedro evitará descargarse la clave
pública fraudulenta.
4. Servicios de directorio
Un directorio es una estructura jerárquica que organiza y almacena datos acerca de elementos. Es
un tipo concreto de base de datos.
De forma similar, en un sistema informático en red, la información que está relacionada con los
recursos del sistema tales como servidores, usuarios, BBDD, impresoras, etc., se almacena en un
directorio.
4.1. X.500
Entre los protocolos que definen la norma X.500 podemos encontrar el Protocolo de Acceso al
Directorio (DAP, Directory Access Protocol), el Protocolo de Sistema de Directorio o el Protocolo
de Gestión de Enlaces operativos, entre otros.
Este estándar resultó ser complejo para su uso y costoso de implementar. Además, incorporaba
herramientas que debido a su complejidad, los usuarios de este protocolo terminaban por no usar o
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
usar muy poco. Debido a ello se empezó a desarrollar una versión más ligera del estándar llamada
LDAP (Lightweight Directory Access Protocol).
Dada la excelente aceptación que LDAP tuvo entre la comunidad se terminó convirtiendo en un
estándar de facto. A lo largo de la unidad haremos referencia al estándar LDAP, ya que es el que
se utiliza actualmente.
4.2. LDAP
• LDAP está basado en los protocolos TCP/IP, mientras que DAP está basado en el anterior
modelo OSI. Esto hace que LDAP requiera de menos recursos.
• LDAP elimina opciones que apenas se utilizaban en DAP. Además, LDAP es más intuitivo
y fácil de implementar.
• DAP utiliza estructuras ASN.1 para representar la información, mientras que LDAP lo hace
mediante strings.
4.3. Características de un SD
4.3.1. Dinamismo
Una de las principales características de un SD es que los datos, una vez introducidos, tienden a
ser estáticos.
Esto quiere decir que la información que almacena no se actualiza frecuentemente. Siguiendo el
símil de la guía telefónica, lo normal es que año tras año un abonado mantenga los mismos datos
de número de teléfono, dirección, etc. Si un abonado se cambia de casa o decide cambiar de
número, la compañía recoge la nueva información y la sustituye por la antigua, pero como
propagar los cambios de los abonados cada vez que surgen sería muy costoso, la compañía
telefónica solo edita la guía una vez al año con los cambios que sean oportunos.
En un SD los datos se pueden modificar en tiempo real, aunque no es habitual hacerlo ya que una
vez asignados los nombres, estos no se suelen cambiar. Al igual que sucedería con tu nombre de
pila o con tu número de teléfono.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
4.3.2. Flexibilidad
• Contenido: Los tipos de datos que almacena un SD pueden serlo de cualquier tipo. Esto
permite que la información almacenada pueda ser extendida sin dificultades, por ejemplo,
añadiendo información del usuario relativa a su situación sentimental o agregar una foto a
su perfil.
4.3.3. Seguridad
En un SD el administrador gestionará el acceso a los datos por parte de los usuarios en base a los
criterios de autorización definidos. Esto quiere decir, los usuarios del departamento de informática
de una empresa no podrán tener acceso a la BD que almacena los datos de las nóminas, pero los
usuarios del departamento de contabilidad sí que podrán. En cambio, el departamento de
informática podrá tener acceso a los servidores y a cualquier equipo del sistema, pero el
departamento de contabilidad no.
4.3.4. Personalización
Un SD permite la personalización de los datos que serán mostrados a cada tipo de usuario.
Por ejemplo, un usuario del Departamento de Informática podrá consultar su última nómina, pero
no podrá consultar las nóminas de sus compañeros. En cambio, un usuario del Departamento de
Contabilidad necesitará poder consultar las nóminas de todos sus compañeros.
4.4. Herramientas de un SD
En esta sección hablaremos de los usos más habituales de las herramientas de consulta un SD.
Por un lado, hay herramientas que requieren conectarse con el SD para realizar consultas sobre
recursos y usuarios y, por otro lado, hay aplicaciones que consultan un SD para validar y autorizar
usuarios. También se requiere de herramientas que permitan actualizar la información que alberga
el SD.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
• La herramienta de comparación tiene unos usos muy concretos ya que esta operación
comprueba si una entrada en concreto contiene un valor específico para un atributo dado.
El servidor contestará con True o False según el resultado de la comparación.
Sub: Define la búsqueda para todo el subárbol, desde el parámetro inicial hasta todas
sus ramificaciones.
• Alias deferencing options. Define los alias, que sirven para enlazar las entradas del SD.
• Size limit. Define el número máximo de entradas que se quiere obtener de una búsqueda.
• Attributes-only. Este parámetro indica que la búsqueda muestre los atributos de las
entradas encontradas en vez de sus valores.
• List of attributes to return. Define la lista de atributos que se quiere obtener en una
búsqueda.
• Search filter. Define que filtros queremos aplicar a la búsqueda. Algunos ejemplos serían:
(DN=marcos). Este parámetro filtraría una búsqueda con entradas que contuvieran el
atributo “DN” (nombre distinguido) y el valor “marcos”.
(SN=per*). Este parámetro filtraría una búsqueda con entradas que contuvieran el
atributo “SN” (apellido) y valores que empiecen por “per” como: perez, peris, perea o
perales por ejemplo.
(age>=18). Este parámetro filtraría una búsqueda con entrada de usuarios mayores de
18 años.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
• Add: Esta herramienta añade una entrada nueva al directorio. El primer parámetro será el
DN, que situará la entrada en el árbol del SD, seguido de una lista con los atributos y sus
valores. Además, la lista de atributos debe coincidir con el esquema del SD.
• Delete: Esta herramienta borra una entrada del directorio. El único parámetro que requiere
es el DN de la entrada a eliminar. Si la entrada contiene hijos no se podrá borrar.
• Modify: Esta herramienta realiza cambios modificando, añadiendo y/o borrando valores de
los atributos
• La gestión de la PKI:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
Aunque un SD sea un tipo concreto de Base de Datos (BD), hay varias diferencias a tener en
cuenta entra un SD una BD relacional:
• En una SD las operaciones de lectura de datos son de mayor frecuencia que las
operaciones de escritura.
Un SD tiene gran similitud con un DNS (Domain Name Server) o con un NIS (Network Information
Service), que son servicios que sirven para la resolución de nombres en la red. Ambos:
• Los DNS están orientados a transmisiones UDP, mientras que un SD suele estar orientado
a transmisiones TCP.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
4.7. Funciones de un SD
4.8. Diseño de un SD
El sistema de nombres que usa un SD permite organizar de forma jerárquica los objetos.
En este ejemplo,
tenemos una organización (Pepito SA), donde hay dos Unidades Organizativas llamadas “usuarios”
y “servidores”. Dentro de cada OU alojamos los nombres de las aplicaciones o usuarios que se
conectarán al SD.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
Cada objeto representa una entrada en el directorio. Hay un total de 11 entradas, cada una de
ellas tiene un Distinguished Name (DN). La empresa, por ejemplo, tiene dc=Pepito, dc=SA como
DN.
Para cada entrada habrá una lista de atributos, algunos atributos serán comunes en varias
entradas, en cambio otros serán específicos.
En la siguiente tabla se muestra un ejemplo de una entrada para el usuario “juan” de “contabilidad”.
El nivel más alto dentro del árbol será el DN Base y será lo primero que hay que definir en el DIT.
Se define mediante los DC (Domain Components), en una estructura similar al servicio DNS; de
ahí su similitud.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
4.9. LDIF
LDIF (LDAP Data Interchange Format) es un estándar que define el formato en que se
representarán las entradas del directorio, sirve además para importar y exportar datos
independientemente del servidor LDAP que se esté utilizando.
El formato LDIF es una cadena de texto ASCII para entradas LDAP que consta de dos partes: El
DN, o Nombre Distinguido (Distinguished Name), seguido de los atributos.
No existe un orden preestablecido, pero se aconseja seguir una serie de reglas, como listar el
atributo objectclass en primer lugar para facilitar la lectura de entradas. Así, por ejemplo:
dn:uid=juan,ou=informática,ou=usuarios,o=uc3m,c=es
objectclass:person
objectclass:organizationalPerson
objectclass:account
uid:juan
sn:Valdés Hondarrubia
cn:Juan Valdés Hondarrubia
mail:jvaldeshrubia@pepitosa.com
telephoneNumber:699632125
• En un archivo LDIF donde haya más de una entrada, cada entrada deberá ir separada por
un salto de línea.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
En LDAP los atributos pueden tener valores múltiples y/o repetidos. Un ejemplo de ello es el
atributo “telephoneNumber”, que podemos tener repetido varias veces para albergar los diferentes
números de teléfono de un usuario. También es posible que algunos atributos tengan la
característica de ser únicos y no permitir más valores o múltiples entradas, como por ejemplo el
atributo “uidNumber”, que será único para cada usuario. Es el esquema el que define que valores
podemos escribir y en que atributos podremos escribirlos. Todos los esquemas definen un atributo
obligatorio llamado “objectClass.
1. El cliente establece una conexión con el servidor LDAP. El servidor indica al cliente por el puerto
por el que está comunicándose, por defecto el 389. El servidor autenticará al cliente o bien el
cliente iniciará una sesión anónima con los parámetros por defecto.
• OpenLDAP, proyecto Open Source. Es una aplicación basada en el protocolo LDAP. Tiene
las mismas funcionalidades que Active Directory de Windows. Además, se ha
implementado en otras aplicaciones como: Red Hat Directory Server, Apache Directory
Server o Open DS.
5. Marcos de autenticación
Los marcos de autenticación son el conjunto de protocolos que conforman las tecnologías de
autenticación. Estas tecnologías se encargan de autenticar a los usuarios y de aplicar las políticas
de acceso al sistema o a la red. Estas tecnologías implementan:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
5.1. Kerberos
Es un protocolo de autenticación de redes creado por el MIT. Se basa una arquitectura de cliente y
servidor que proporciona cifrado con autenticación mutua, es decir cliente y servidor verifican la
identidad del otro. Fue desarrollado para garantizar una comunicación segura entre dos equipos a
través de una red insegura. Emplea criptografía de clave simétrica y requiere de una tercera
entidad de confianza. Ocasionalmente puede utilizar criptografía de clave asimétrica en
determinados procesos de autenticación.
El nombre de Kerberos hace referencia al perro guardián de tres cabezas que custodiaba el Hades
en la mitología griega.
Los servicios más habituales de autenticación están basados en el factor del conocimiento, quiere
decir, en contraseñas que sólo el usuario conoce. En esta forma de autenticación, los datos
enviados no viajan encriptados, de modo que un usuario malintencionado que haya interceptado la
comunicación tendrá acceso a la contraseña y, por ende, podrá autenticarse en el servicio
fraudulentamente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
• El cliente genera una clave hash a partir de la contraseña y la usará como la clave secreta
del cliente.
Mensaje A: Client/TGS session key cifrada usando la clave secreta del usuario.
• Una vez que el cliente ha recibido los mensajes, descifra el mensaje A para obtener el
client/TGS session key. Esta session key se usa para las posteriores comunicaciones con
el TGS. (El cliente no puede descifrar el mensaje B pues para cifrar éste se ha usado la
clave del TGS). En este momento el cliente ya se puede autenticar contra el TGS.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
• Kerberos no protege contra ataques DDoS (Denegación del Servicio por ataque
distribuido). Un usuario malintencionado podría realizar múltiples solicitudes al servidor
desde varios puntos de conexión, generando inestabilidad en el servidor, tiempos de
respuesta intolerables y finalmente consiguiendo la denegación de la comunicación con el
servidor a nuevos usuarios, con el objetivo final de que la aplicación no pueda acabar
realizando los pasos de autenticación correctamente.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
5.2. OpenID
OpenID funciona proporcionando las credenciales del usuario a un sitio web que haya
implementado el protocolo. En este caso, la seguridad de la conexión recae sobre la confianza que
el usuario tenga en el sitio web. Esto impide que sea un mecanismo valido para transacciones
comerciales.
• El usuario se identifica en los diferentes sitios usando ese identificador y esa contraseña.
Por ejemplo, Juan ha creado una cuenta en un servidor OpenID. Posteriormente Juan entra en un
sitio web que soporta el protocolo OpenID tanto para el registro como para el inicio de sesión. En
este caso, Juan quiere registrarse en el sitio. Para ello proporciona su identificador XRI en el
formulario de registro. El sitio web consultará ese identificador al servidor OpenID que especifica.
El servicio devolverá al sitio los datos de Juan. Si Juan tiene cookies almacenadas en su
ordenador el registro será automático. En caso de que no hallan cookies almacenadas al respecto,
el sitio solicitará a Juan la contraseña para verificar que es quien dice ser.
En caso de que la seguridad del equipo del usuario o del servidor fuera comprometida, toda la
relación de sitios registrado por el usuario se vería también comprometida, quedando así su
intimidad desprotegida. Debido a ello OpenID todavía es un protocolo puesto en duda.
Algunos servicios que ofrecen autenticación mediante OpenID son Flickr, WordPress, Google,
Blogger o MySpace entre otros.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
Los certificados y claves secretas quedan almacenados, al menos en un primer momento, en los
equipos desde los que se haya solicitado con anterioridad la emisión de un Certificado Digital. En
determinadas ocasiones es más cómodo, o incluso necesario, disponer de un dispositivo extraíble
portable que sea el que proteja la información de autenticación.
Los token (o testimonios) de seguridad son pequeños dispositivos cuya finalidad es dar soporte al
proceso de autenticación de identidad. En general se utilizan para validar la entrada a sistemas y
servicios.
Hay gran variedad de tokens. Por ejemplo, en cuanto a conexión al equipo, los más habituales son
los que se conectan al puerto USB, aunque también los hay que usan una conexión Bluetooth o
simplemente no precisan de conexión al equipo. En cuanto a capacidad de memoria y proceso,
dependerá del sistema de soporte que permita el token. He aquí cuatro casos combinando las
anteriores alternativas:
• Un tercer caso sería un token con capacidades criptográficas que pudiera responder a un
reto criptográfico mandado por el sistema de identificación, usando el método reto-
respuesta. En este caso, se contempla la modalidad de reto-respuesta usando una clave
secreta compartida o bien usando un sistema de cifrado de clave: la copia de la clave
secreta que necesita el cliente está almacenada en el token.
• Un último caso sería el de una etiqueta RFID que contiene un valor que permite identificar
la etiqueta. Dado que un lector de RFID interactúa con las etiquetas a través del espectro
electromagnético y sin usar conexiones físicas, el hecho de que la identificación sea
segura (básicamente esté protegida contra escuchas por parte de atacantes) supone un
reto importante inherente al uso de estas etiquetas en servicios y entornos que precisen
cierta seguridad.
Como técnica alternativa de autenticación posemos hacer uso de dispositivos electrónicos que
reconozcan nuestra identidad digital basándose en rasgos físicos o en aspectos personales. A
continuación, enumeramos los factores biométricos más utilizados, comentando aspectos sobre su
calidad y uso:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Servicios, marcos y técnicas de autenticación. Certificados. Clave pública. Servicios de directorio
• Huellas dactilares: El uso de las huellas dactilares como medio de identificación tiene una
alta fiabilidad. Presenta una buena aceptación y popularidad.
• Iris: La identificación de un individuo a través del análisis del iris tiene una fiabilidad muy
alta. La desventaja que presenta respecto al anterior es su incomodidad de uso. También
resulta más complejo el análisis de la retina para identificar al individuo que el de huella
dactilar.
• Geometría de la mano: Este sistema está bastante extendido, pero presenta menor
fiabilidad que los anteriores. Además, este sistema es susceptible de padecer ataques,
puesto que no resultaría difícil recrear la forma de una mano usando un molde.
• Venas del dedo o la mano. El estudio vascular de los dedos o de la mano proporciona alta
fiabilidad. Además, no resulta excesivamente complejo su análisis.
• Voz: Este sistema presenta bastante fiabilidad, pero también es susceptible a los ataques.
Además, este sistema padece de poca estabilidad, con lo cual deberían ser varias las
muestras de voz analizadas para reducir la tasa de errores.
Por otro lado, disponemos de diversos protocolos y métodos de autenticación. Entre ellos se
incluyen:
• RPC seguro: Del acrónimo Remote Procedure Call. (Procedimiento de Llamada Remoto).
El RPC es un programa empleado en computación distribuida para que una máquina
pueda ejecutar código en otra máquina remota. RPC Secure, añade un mecanismo de
autenticación basado en el protocolo Diffie-Hellman.
• SASL: Del acrónimo Simple Authentication and Security Layer. (Autenticación sencilla y
capa de seguridad). Es un framework que proporciona servicios de autenticación y
seguridad para diferentes protocolos de red. Entre los protocolos que emplean esta
infraestructura se encuentran IMAP, LDAP, POP3, SMTP y XMPP.
• SSH: Del acrónimo Secure Shell. (Intérprete de órdenes seguro). Es tanto el nombre del
programa que lo implementa como un protocolo de inicio de sesión remoto seguro, que
permite la comunicación cifrada entre equipos en una red no segura.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Daniel Vicente Perpiñá Castillo
Referencias bibliográficas
Palazón Romero José María, Felguera Antoni, Castellà-Roca Jordi. (2011). Identidad digital
(http://hdl.handle.net/10609/55582). Single sign-on y federación de identidades. Universitat
Oberta de Catalunya.
Identidad digital:
https://www.exabyteinformatica.com/uoc/Dactiloscopia/Identidad_digital/Identidad_digital_(
Modulo_3).pdf
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Tema 40. Infraestructura de clave pública (PKI):
definición y elementos de una PKI. Prestación de
servicios de certificación públicos y privados.
Autoridades de certificación. El DNI electrónico
Los sistemas PKI resuelven el problema inicial de transmisión de una clave sobre un
entorno todavía no seguro, para poder establecer comunicaciones posteriormente
seguras. Los sistemas de claves asimétricos permiten resolver este problema y a su
vez solucionar otros como los anteriores. Una infraestructura de clave pública es una
plataforma que soporta la gestión de certificados digitales con la finalidad de que un
usuario disponga de diversos mecanismos para proteger la información mediante los
principios de confidencialidad, integridad, autenticación y no repudio.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
Para poder mantener una comunicación cifrada, lo habitual es que uno de los extremos de la
misma establezca una clave y notifique al otro. La transmisión de la clave debe producirse en un
medio seguro, pero a su vez, si se dispone ya de un canal de comunicación seguro, no tiene
sentido enviar información cifrada por otro.
• A elige una clave y la cifra con una clave que solo conoce A. El resultado lo transmite a B.
• B cifra el resultado recibido con una clave que solo B conoce. El nuevo mensaje
doblemente cifrado es transmitido a A.
• B retira su clave privada del mensaje, por lo que el resultado es la clave elegida
inicialmente por A.
Para solucionar este y otros problemas, se emplea la criptografía de clave pública o también
denominada criptografía asimétrica. En ella siempre se emplean una pareja de claves: una clave
pública, conocida por todo el mundo; y otra privada, conocida únicamente por el propietario de la
misma. Este nuevo concepto dista de la criptografía tradicional, en la que tanto emisor como
receptor emplean una misma clave secreta para cifrar y descifrar los mensajes.
1.1.1. Diffie-Hellman
En 1976, Whit Diffie y Martin Hellman, de la universidad de Stanford, publicaron un método para
establecer una clave común de una manera segura a través de un canal de comunicación no
seguro. El método se basa en la exponenciación y el hecho de que los exponentes se pueden
multiplicar en cualquier orden con el mismo resultado. Parece ser que la NSA ya trabajaba con
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructura de clave pública (PKI)
este concepto 10 años antes, al igual que el GCHQ, su homólogo inglés, que lo hacía desde finales
de los años 60.
El método diseñado por Diffie y Hellman era útil para el establecimiento de claves, pero no llegó a
cifrar datos. Básicamente, la idea proponía lo siguiente:
• Cada interlocutor debe disponer de dos claves, una para cifrar y otra para descifrar.
• Las dos claves deben tener la propiedad de poder invertir el efecto producido por su
pareja, pero a su vez debería ser imposible para un atacante descubrir una a partir de la
otra.
• Una de las dos claves debe ser pública para todo el mundo.
• El destinatario debe ser la única persona que conozca su clave privada y nunca ha de ser
revelada a nadie más.
El término generador sería el siguiente: dado el conjunto Ζ*p ' con p primo, diremos que α ∈ Ζ*p
es un generador de Ζ*p ' , si se cumple:
El enunciado del problema es el siguiente: dado un número primo p , un número α que sea un
generador de Ζ y los elementos α y α , encontrar α ab (mód p ) .
*
p'
a b
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
Puesto que x e y no viajan por la red, al final A y B acaban compartiendo el valor de K , sin
que nadie que capture los mensajes transmitidos pueda repetir el cálculo.
1.1.2. RSA
El algoritmo RSA debe su nombre a sus tres inventores: Ronald Rivest, Adi Shamir y Leonard
Adleman, y al estar bajo una patente, su uso comercial estuvo restringido hasta el año 2000.
Para generar un par de claves ( K P , K p ) , en primer lugar se eligen aleatoriamente dos números
primos grandes, p y q , y después se calcula el producto n = pq .
Ahora se escoge un número e primo relativo con ( p − 1)(q − 1) . (e, n) será la clave pública.
Nótese que e debe tener inversa módulo ( p − 1)( q − 1) , por lo que existirá un número d tal que
de ≡ (mód ( p − 1)(q − 1)) es decir, que d es la inversa de e módulo ( p − 1)(q − 1) . (d , n) será
la clave privada. Esta inversa puede calcularse fácilmente con el Algoritmo Extendido de Euclides,
por lo que desconociendo los factores de n , el cálculo resulta prácticamente imposible.
c = m e (mód n) (2)
m = c d (mód n) (3)
Ya que:
En la práctica, para generar el par de claves RSA, se eligen p y q con un número grande de bits,
por ejemplo 512 bits, por lo que n tendrá 1024 bits. Para realizar el cifrado, se divide el mensaje en
bloque de un tamaño inferior a n, por ejemplo 1016 bits, y se realiza la codificación de cada uno. El
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructura de clave pública (PKI)
mensaje cifrado tendrá un tamaño un tanto mayor, pues cada bloque de 1016 bits pasará a ser de
1024 bits. En el descifrado, se parte el mensaje en bloques de 1024 bits, se aplica el algoritmo y se
tomarán los 1016 primeros bits del resultado de cada bloque.
Ejemplo:
• Elección de primos:
p = 3 y q = 11
n = p * q = 3 * 11 = 33
phi(n) = (p - 1) (q – 1) = (3 - 1) * (11 - 1) = 2 * 10 = 20
• Cifrar y descifrar:
Dato = 2
Cifrar: dato e mód (n) = 27 mód (33) = 128 mód (33) = 29 = dato _ cifrado
Descifrar: dato _ cifrado d mód (n) = 293 mód (33) = 24389 mód (33) = 2 = dato
Existen algunos puntos débiles en el algoritmo del RSA, todos ellos evitables, por lo que las
vulnerabilidades podrían evitarse.
• Claves débiles que hacen que un mensaje cifrado sea idéntico al original. Pueden ser
fácilmente evitadas.
• Claves demasiado cortas. Actualmente se considera segura una clave n de al menos 1024
bits, aunque se recomienda de 2048 bits.
• Ataques de texto claro escogido. Explotan la posibilidad de que un usuario codifique y firme
un único mensaje con el mismo par de claves.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
• Ataques de módulo común. Si para crear pares de claves siempre se emplean los mismos
p y q, un atacante podría descodificar mensajes sin necesidad de la clave privada.
Las Infraestructuras de Clave Pública (ICPs o PKIs, Public Key Infrastructures) están compuestas
por el conjunto de protocolos, servicios y estándares que soportan aplicaciones basadas en
criptografía de clave pública.
1.2.1. Funcionalidad
Una infraestructura de clave pública es una plataforma que soporta la gestión de certificados
digitales con la finalidad de que un usuario disponga de diversos mecanismos para proteger la
información mediante:
• Garantía de no repudio.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructura de clave pública (PKI)
1.2.2. Componentes
Una infraestructura de Clave Pública permite implantar en modo extenso una base confiable para
la correspondencia electrónica entre usuarios que no pueden intercambiar manualmente sus
claves. Para ello, se precisa de una combinación de elementos a nivel de hardware y software,
políticas y procedimientos. La PKI se basa en identidades digitales conocidas como certificados
digitales que actúan como pasaportes electrónicos y vinculan la firma digital del usuario a su clave
pública.
• Política de Seguridad. Establece y define la dirección de máximo nivel, así como los
procesos y principios para el uso de la criptografía. Establecerá niveles de control para la
gestión de las claves y la información valiosa.
• Autoridad de Certificación (CA). Entidad o servicio que emite certificados y los gestiona
durante toda su vida. Si un certificado es avalado por una CA, toda CA debe ser avalada
por otra de rango superior, hasta llegar a la cabeza de la jerarquía.
• Listas de Revocación de Certificados (CRL). Lista de certificados del sistema que han
dejado de ser válidos por algún motivo, antes de cumplirse la fecha de expiración.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
Un sistema PKI lleva intrínsecas una serie de ventajas, las cuales demuestran la robustez
conceptual de los mismos. Pueden destacarse las siguientes.
• Los certificados son públicos, por lo tanto las claves no viajan a través de la red desde el
cliente hacia el servidor.
• Ofrece una mejor identificación de usuario con respecto a la autenticación por dirección IP
que puede ser dinámica o un nombre de dominio o mail al poder ser espiadas.
Por otro lado, existen siempre algunas dudas en cuando a este tipo de infraestructura:
• Una CA es gestionada por personas, por lo que nunca puede confirmarse en su totalidad la
perfección del servicio.
• Si el usuario almacena la clave privada en su PC y este puede ser utilizado por otras
personas que accedan al mismo, se está comprometiendo la seguridad de la misma. Como
alternativa existen dispositivos externos que almacenan las claves.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructura de clave pública (PKI)
Un certificado digital es básicamente una clave pública y un identificador, firmados digitalmente por
una CA, que permite demostrar que la misma pertenece a un usuario concreto.
Figura 2: Esquema de una firma digital basada en funciones resumen y algoritmos de cifrado
asimétricos. A: Generación de la firma; B: verificación
El X.509 es un estándar UIT-T para infraestructuras de clave pública publicado en 1988, el cual se
encuentra actualmente en su versión X.509 v3 de la IETF (Internet Engineering Task Force), tal y
como se especifica en la RFC 5280 desde Mayo de 2008.
Las autoridades certificadoras son las entidades encargadas de emitir los certificados, los cuales
tienen una estructura concreta. A continuación se detallan los campos más relevantes de los
mismos:
• Serial Number (Número de Serie): Es un número entero positivo y único, que puede
asignar la CA y que le permitirá identificar el certificado digital. Suelen emplearse números
de módulo largo, lo que asciende a 20 octetos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
• Validity: Vida útil del certificado y a su vez tiempo en el que se compromete la Autoridad
de Certificación a disponer de información sobre la validez del certificado.
• Subject (Suscriptor): Incluye los datos del suscriptor (o usuario final) del certificado, por lo
que va directamente asociado a la clave pública contenida en el mismo certificado. Los
campos fundamentales y de uso más extendido son: Common name, Serial number,
GivenName, SurName, Organization unit, Organization y Country.
• Subject Public Key Info: Contiene la clave pública del certificado y el algoritmo de cifrado
empleado para su generación.
Además existen una serie de extensiones, de carácter opcional, las cuales emplean los certificados
comerciales. Las más habituales son las siguientes:
• Key Usage: Especifica cuáles son los usos válidos para el certificado, como por ejemplo si
se puede emplear para firmar o para cifrar.
• CRL Distribution Points: En esta extensión se detalla la ruta del enlace donde se pueden
obtener las Listas de Revocación de Certificados (CRL) correspondientes a la subordinada
que emite el certificado final.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructura de clave pública (PKI)
Certificate:
Data:
Version: 1 (0x0)
Serial Number: 7829 (0x1e95)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc,
OU=Certification Services Division,
CN=Thawte Server CA/Email=server-certs@thawte.com
Validity
Not Before: Jul 9 16:04:02 1998 GMT
Not After : Jul 9 16:04:02 1999 GMT
Subject: C=US, ST=Maryland, L=Pasadena, O=Brent Baccala,
OU=FreeSoft, CN=www.freesoft.org/Email=baccala@freesoft.org
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:b4:31:98:0a:c4:bc:62:c1:88:aa:dc:b0:c8:bb:
33:35:19:d5:0c:64:b9:3d:41:b2:96:fc:f3:31:e1:
66:36:d0:8e:56:12:44:ba:75:eb:e8:1c:9c:5b:66:
70:33:52:14:c9:ec:4f:91:51:70:39:de:53:85:17:
16:94:6e:ee:f4:d5:6f:d5:ca:b3:47:5e:1b:0c:7b:
c5:cc:2b:6b:c1:90:c3:16:31:0d:bf:7a:c7:47:77:
8f:a0:21:c7:4c:d0:16:65:00:c1:0f:d7:b8:80:e3:
d2:75:6b:c1:ea:9e:5c:5c:ea:7d:c1:a1:10:bc:b8:
e8:35:1c:9e:27:52:7e:41:8f
Exponent: 65537 (0x10001)
Signature Algorithm: md5WithRSAEncryption
93:5f:8f:5f:c5:af:bf:0a:ab:a5:6d:fb:24:5f:b6:59:5d:9d:
92:2e:4a:1b:8b:ac:7d:99:17:5d:cd:19:f6:ad:ef:63:2f:92:
ab:2f:4b:cf:0a:13:90:ee:2c:0e:43:03:be:f6:ea:8e:9c:67:
d0:a2:40:03:f7:ef:6a:15:09:79:a9:46:ed:b7:16:1b:41:72:
0d:19:aa:ad:dd:9a:df:ab:97:50:65:f5:5e:85:a6:ef:19:d1:
5a:de:9d:ea:63:cd:cb:cc:6d:5d:01:85:b5:6d:c8:f3:d9:f7:
8f:0e:fc:ba:1f:34:e9:96:6e:6c:cf:f2:ef:9b:bf:de:b5:22:
68:9f
Existen dos posibilidades para almacenar los certificados digitales en un archivo, bien
individualmente o bien junto a su clave privada. Los formatos de archivo de certificado más
habituales son DER binario codificado en X.509 (.der / .cer / .crt), X.509 codificado en base64
(.cer), X.509 codificado en base64 con cabeceras (.pem) y sobre todo el PKCS#7 (.p7b / .p7c). SI
por otro lado, además del certificado se precisa almacenar la clave privada, el formato de archivo
más extendido es PKCS#12 (.p12 / .pfx), el cual está protegido mediante clave simétrica.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
En el Título 1 se introducen las Disposiciones generales, entre las que se indica que afecta a todos
los servicios de certificación establecidos en España, la validez de la firma electrónica reconocida
en todos los ámbitos y el régimen e prestación de servicios basado en el estado.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructura de clave pública (PKI)
Los prestadores de servicios únicamente podrán recabar datos personales directamente de los
firmantes, siendo estos los exclusivamente necesarios y nunca para otros fines, tal y como
establece la Ley Orgánica de Protección de Datos de Carácter Personal.
Todo prestador de servicios que expida certificados electrónicos deberá cumplir las siguientes
condiciones:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
de certificados extinguidos o suspendidos, con las personas en la que se deleguen funciones para
la prestación, así como cláusulas abusivas.
Por último, se limitará la responsabilidad de los prestadores de servicios de certificación por buena
fe, si el firmante no ha suministrado información veraz y completa de sus datos, falta de
comunicación, negligencia en la conservación de sus datos, no solicitar suspensión o revocación al
ser comprometido, usarse una vez ha expirado o superar los límites del certificado. Todo ello
también es aplicable al solicitante del certificado, en el caso de ser una empresa jurídica. Tampoco
será responsable el prestador ante casos de negligencia fehaciente del firmante e inexactitud de
los datos que consten en el certificado siempre que hayan sido acreditados por documento público.
El ministerio agrupa a los prestadores de servicios, tanto públicos como privados, según los
servicios que ofrece, por supuesto, no siendo excluyentes entre ellos. De esta forma, las
categorías empleadas son las siguientes:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructura de clave pública (PKI)
3. Autoridades de certificación
Una autoridad de certificación (CA), suele tener un ámbito relativamente local, como podría ser una
empresa, una universidad o un país entero. Para verificar un certificado digital de un certificador
ajeno, del cual se desconoce su fiabilidad, existe la posibilidad de que la clave pública del propio
certificador esté a su vez firmada por otra autoridad certificadora, la cual si ofrece fiabilidad, por lo
tanto, la confianza hacia la primera CA viene propagada desde nuestra CA de confianza. Esta
circunstancia puede ser aprovechada de forma jerárquica como en las PKI, o de la forma
distribuida, como hace PGP.
3.1. Definición
Una autoridad de certificados (Certificate Authoritym, CA) es una entidad o servicio que emite
certificados. El sistema de autoridades de certificación es la base de confianza de una PKI al
encargarse de gestionar los certificados de clave pública durante toda su vida.
El problema viene al plantearse la siguiente cuestión: si la autoridad certificadora avala los datos
de los certificados, ¿Quién avala a la autoridad certificadora? Para solucionar este problema,
existen las denominadas entidades autorizadas a emitir certificados, que a su vez son avaladas por
otras de mayor confianza. O bien mediantes un sistema distribuido de validación.
Las entidades certificadoras finales, es decir, las que generan certificados finales a usuarios,
tendrán la responsabilidad de comprobar de manera fehaciente que cada clave pública pertenece a
su propietario. Debido a la estructura jerárquica, aquellas entidades que certifiquen a otras
entidades, deberán garantizar que estas últimas emplean los procedimientos adecuados para
identificar inequívocamente a sus usuarios. Si esto no se cumple, existiría el riesgo de la emisión
de certificados digitales falsos por parte de esta última.
Cada certificado emitido por una CA debe estar firmado por una CA de grado superior en el
esquema jerárquico, creándose así una cadena de certificados en las que unos avalan a otros
hasta llegar a la parte superior. La jerarquía de firmas y la cadena con ella formada están
contempladas en el estándar X.509 v3, que indica la forma correcta de realizar estas cadenas de
certificaciones.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
Tal y como puede observarse en la Figura 4, si un usuario que dispone un certificado emitido por la
CA 3.1, quiere comprobar la identidad de uno emitido por la CA 3.3, empleará la clave pública de
CA 1, que es la primera rama común de la estructura, para verificar el certificado digital. Una vez
realizada esta comprobación, podrá confiar en CA 3.3, y en consecuencia en CA 2.2, como
certificador de la clave pública del usuario de CA 3.3.
La estructura jerárquica es un esquema sencillo y efectivo, pero en ella existe siempre un riesgo a
tener en cuenta: si una certificadora es comprometida, todos sus descendientes también se verán
comprometidos. Para mitigar este riesgo, el cual no puede desaparecer, las autoridades de
certificación están obligadas a actuar con gran transparencia y a mantener al día las listas de
revocación de certificados.
Frente a la estructura jerárquica empleada en los PKI, se puede construir un esquema distribuido
de certificación de claves o anillo de confianza, en el que todos los usuarios actúan como
autoridades de certificación. Cada usuario actuará según el grado de confianza, por lo que pueden
existir varios grados de confianza. Como puede verse, es un sistema mucho más complejo que el
jerárquico, e incluso podría llegar a ser menos confiable.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructura de clave pública (PKI)
• IZENPE, http://www.izenpe.com/s15-12010/es/
Además de las anteriores, a nivel de autoridades relevantes a nivel de emisión de certificados para
empresa, se listan las siguientes:
• Camerfirma, http://www.camerfirma.com
• EDICOM, http://acedicom.edicomgroup.com
Persona física, el cual se emite de forma gratuita a todos los ciudadanos en posesión de DNI o
NIE, permitiendo identificación, firma y cifrado de documentos electrónicos.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
Administración Pública, recibe certificados para los organismos públicos certificados de Empleado
público, certificados de Sede Electrónica y Sellos Electrónicos para la actuación automatizada de
la Administración Pública
La ACCV presta servicios tanto a ciudadanos, empresas, como administración pública. Los tipos
de certificados emitidos son los visibles en la tabla:
Los puntos de registro están ubicados principalmente en entidades públicas como Ayuntamientos,
Universidades o Colegios Profesionales a lo largo de toda la Comunidad Valenciana, con presencia
en todas las comarcas. Además se dispone de más puntos como Murcia, Madrid o Bruselas.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructura de clave pública (PKI)
4. El DNI electrónico
4.1. Definición
Tal y como declara el Art. 6 Declaración Universal de Derechos Humanos, "Todo ser humano tiene
derecho, en todas partes, al reconocimiento de su personalidad jurídica". Por tanto la identidad
personal es un derecho de todo ciudadano y los Estados tienen la obligación de establecer los
mecanismos adecuados para facilitársela. Según la definición de la Real Academia Española de la
Lengua, "La identidad es el conjunto de rasgos propios de un individuo o de una colectividad que
los caracterizan frente a los demás", y también "Conciencia que una persona tiene de ser ella
misma y distinta a las demás".
Tradicionalmente, los estados han otorgado identidad a sus ciudadanos mediante elementos
físicos, con denominaciones varias como carta de identidad, pasaporte o similares; pero en la
actualidad es necesario establecer mecanismos y procedimientos electrónicos que permitan
verificar la identidad de las personas.
A partir de esa necesidad, y teniendo en cuenta la implantación del DNI (Documento Nacional de
Identidad) tanto en la administración pública como en el sector privado, como método de
identificación único, se crea el denominado DNI electrónico. Éste, conserva la funcionalidad
tradicional, además de incorporar las nuevas tecnologías para permitir la identificación digital entre
otras tareas. Todo ello viene establecido en el artículo 2 del RD 1553/2005, de 23 de diciembre,
por el que se regula la expedición del documento nacional de identidad y sus certificados de firma
electrónica, "Dicho Documento tiene suficiente valor, por sí solo, para acreditar la identidad y los
datos personales de su titular que en él se consignen, así como la nacionalidad española del
mismo". Por supuesto, las funcionalidades incrementadas se rigen por los términos previstos en la
ya mencionada Ley 59/2003, de 19 de diciembre, de firma electrónica.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
4.2. Funcionalidad
Tradicionalmente, el DNI ha sido reconocido por permitir la identificación de las personas. Hoy en
día incorpora nuevas funcionalidades electrónicas, en el DNI electrónico. Desde el año 2006 todos
los Documentos Nacionales de Identidad que se expiden en España son documentos electrónicos,
coexistiendo actualmente dos versiones: DNIe y DNI 3.0.
El primer DNIe, expedido desde 2006 hasta finales de 2015 incorporaba, a diferencia de su
predecesor, un chip en el anverso con información digital y se presentaba por primera vez en una
tarjeta de policarbonato con las mismas medidas que una tarjeta de crédito convencional.
Los continuos cambios en la sociedad de la información, han provocado que fuera actualizado a su
versión DNI 3.0, en el cual se incrementa la seguridad y se mejora la usabilidad del mismo al
incorporar la comunicación de forma inalámbrica a través de la tecnología NFC. Por lo tanto, se
trata de un dispositivo con Dual Interface, al permitir la lectura mediante un lector de tarjetas
inteligentes o interfaz sin contactos (contactless) para dispositivos con tecnología NFC.
Dejando aparte las características propias de materiales de la tarjeta física y datos impresos,
contiene una antena NFC (Near Field Communication) para permitir la comunicación inalámbrica.
El chip del DNI electrónico está distribuido en dos zonas con diferentes niveles y condiciones de
acceso:
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Infraestructura de clave pública (PKI)
4.4. Seguridad
Para hacer uso del DNI electrónico, este provee de una serie de medidas de seguridad que
garantizan la integridad y evitan el robo de la información contenida en su interior.
• Autenticación de usuario: Código PIN con 3 reintentos antes de ser bloqueado. Posible
su desbloqueo mediante huella dactilar del usuario. Permite cambiar el PIN introduciendo
el PIN actual o mediante huella dactilar.
• Autenticación mutua: Permite que cada una de las partes (tarjeta y aplicación externa)
confíe en la otra mediante la presentación mutua de certificados y su verificación.
La tarjeta DNI 3.0 permite la posibilidad de establecer un canal seguro entre el terminal y la tarjeta
que securice los mensajes transmitidos. Para ello es necesaria la autenticación previa del terminal
y la tarjeta mediante el uso de certificados.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021
Javier Laguna Galindo
La tarjeta puede realizar operaciones 3 DES con clave de 24 bytes, la cual debe ser cargada en
memoria protegiéndolo con el algoritmo RSA.
Uno de los principales usos es la realización de firma electrónica, para la cual pueden emplearse
numerosas aplicaciones que accedan mediante los módulos del PKSC#11 y que proporcionen una
interfaz estándar de acceso a la tarjeta. En el caso de la interfaz sin contactos, deberá tener
instalada una APP específica.
Para el correcto y seguro funcionamiento de la tarjeta DNI 3.0 se ha de utilizar los módulos
criptográficos CardModule y PKCS#11, que se encuentran en la página oficial
http://www.dnielectronico.es. Se encuentran disponibles para los diversos sistemas operativos.
Referencias bibliográficas
(1) Ley 59/2003, de 19 de diciembre de 2003, de firma electrónica. Pags 45329-45353. Boletín
Oficial del estado.
(2) Margaret, Lynn. (2013). Public Key Cryptography: Applications and Attacks. Melbourne: Wiley-
IEEE Press.
(3) Stamp, M. (2005). Information Security Principles and Practice, 2nd Edition. San Jose: Wiley-
Interscience.
(5) Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R. y Polk, W. (2008). RFC 5280:
Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL)
Profile. IETF.
(6) García, E., López, M. A. y Ortega, J. J. (2005). Una introducción a la criptografía. Cuenca:
Universidad de Castilla-La Mancha.
Se autoriza el uso exclusivo de este documento a Laura Andrés Sauco, DNI 21009879T, a 8 de enero de 2021