Documente Academic
Documente Profesional
Documente Cultură
Temario Técnico
Cuerpo de Gestión de
Sistemas e Informática de la
Administración del Estado
PROMOCIÓN INTERNA
FORMA DE ACCESO "T"
Anexo a la edición 1
Este anexo contiene los temas del programa técnico (Bloque I, Bloque II, Bloque III y
Bloque IV) de las oposiciones de promoción interna para el Cuerpo de Gestión de Sistemas
e Informática de la Administración del Estado para la forma de acceso T, es decir, personal
proveniente de las siguientes escalas:
C. Técnicos Auxiliares de Informática de la Administración del Estado.
E. Operadores Ordenador Informática de la Administración de la Seguridad Social.
E. Administrativa, a extinguir, de la Administración de la Seguridad Social.
Plazas Operadores Ordenador, a extinguir ISM.
E. Programadores del CEDEX.
, tal y como apareció en la convocatoria publicada en el Boletín Oficial del Estado del día
16 de abril de 2003 que no fueron incluidos en la edición 01 del temario.
Bloque II
II.II.1.- Modelización conceptual. Elementos: entidades, atributos, relaciones,
identificadores, roles. Reglas de modelización. Validación y construcción de modelos de
datos
II.II.2.- Técnicas de evaluación de alternativas y análisis de viabilidad. Personal,
procedimientos, datos, software y hardware. Criterios.
II.II.10.- Diseño orientado a objetos. Concepto. Elementos: objetos, clases, herencia,
métodos. Ventajas e inconvenientes. El lenguaje de modelización unificado (UML). El
modelo CORBA.
Bloque III
III.II.1.- Estructura y organización de un departamento de sistemas de información.
Alternativas. Roles y responsabilidades. Segregación de tareas.
III.II.4.- Los lenguajes de control de trabajos: Concepto, estructura, elementos y
funcionalidades. Las técnicas y herramientas de operación automática.
III.II.9.- Documática. Archivo electrónico de documentos. Organización funcional de los
sistemas documáticos. Optimización de consultas y recuperación de la información.
Bloque IV
IV.II. 3.- La seguridad en redes. Control de accesos. Técnicas criptográficas. Mecanismos
de firma digital. Intrusiones. Cortafuegos.
Marzo 2004
C/Luna 6
28691, Villanueva de la Cañada
Tel./fax. : 91 815 54 79
http://www.grupoabantos.com
info@grupoabantos.com
Índice
1.- LENGUAJES DE MARCA O ETIQUETA. CARACTERÍSTICAS Y FUNCIONALIDADES 2
1.1 Características 2
1.2 Funcionalidades 2
2.- SGML, HTML Y XML. 3
2.1 SGML 3
2.2 HTML 3
2.2.1 Funcionalidad 4
2.2.2 Tags o tipos de marcas 4
2.2.3 Estructura de un documento HTML 5
2.2.4 Enlaces ("links") y tipos de enlaces 6
2.2.5 Edición de HTML 7
2.2.5.1 Editores de HTML 7
2.2.5.2 Editores de texto preparados para escribir HTML 8
2.2.6 HTML 4.0 8
2.2.6.1 Caracteres 8
2.2.6.2 Accesibilidad 9
2.2.6.3 Object 9
2.2.6.4 Hojas de estilo 9
2.2.6.5 Tablas 10
2.2.6.6 Formularios 10
2.2.6.7 Script 11
2.2.6.8 Impresión 11
2.2.6.9 Modificación de los elementos respecto a HTML 3.2 11
2.3 XML 11
2.3.1 Objetivos 12
2.3.2 Ventajas 12
2.3.3 Estructura del XML 12
2.3.3.1 DTD 12
2.3.3.2 XSL 13
2.3.3.3 XLL 13
2.3.3.4 XUA 14
2.3.4 Parser/DOM 14
2.4 Comparativa entre HTML y XML 14
2.5 Derivaciones 16
2.5.1 WML 17
2.5.2 VoML 17
2.5.3 Web Services 17
1.1 Características
En los años 60, IBM intentó resolver sus problemas asociados al tratamiento de documentos
en diferentes plataformas a través de GML (Generalized markup Language).
El principal problema era que cada aplicación utilizaba sus propias marcas para describir
los diferentes elementos. Las marcas son códigos que indican a un programa cómo debe
tratar su contenido y así, si se desea que un texto aparezca con un formato determinado,
dicho texto debe ir delimitado por la correspondiente marca que indique cómo debe ser
mostrado en pantalla o impreso. Y lo mismo ocurre con todas las demás características de
cualquier texto.
Conociendo este sistema y conociendo a la perfección el sistema de marcas de cada
aplicación sería posible pasar información de un sistema a otro sin necesidad de perder el
formato indicado. La forma que IBM creó para solventar esto se basaba en tratar las
marcas como texto accesible desde cualquier sistema, texto plano, código ASCII. Y la
norma se denominó GML (General Modeling Language).
Más tarde GML pasó a manos de ISO y se convirtió en SGML (ISO 8879), Standard
Generalized Markup Language (Lenguaje de etiquetas generalizado normalizado). Esta
norma es la que se aplica desde entonces a todos los lenguajes de marcas, cuyos
ejemplos más conocidos son el HTML y XML e incluyendo otros como el RTF.
Los lenguajes de marcas no son equivalentes a los lenguajes de programación aunque se
definan igualmente como "lenguajes". Los lenguajes de marcas son sistemas complejos de
descripción de información, normalmente documentos, que si se ajustan a SGML, se
pueden controlar desde cualquier editor ASCII. Las marcas más utilizadas suelen describirse
por textos descriptivos encerrados entre signos de "menor" (<) y "mayor" (>), siendo lo más
usual que existan una marca de principio y otra de final.
1.2 Funcionalidades
Se puede decir que existen tres utilizaciones básicas de los lenguajes de marcas: los que
sirven principalmente para describir su contenido, los que sirven para definir su formato y
los que realizan las dos funciones indistintamente. Las aplicaciones de bases de datos son
buenas referencias del primer sistema, los programas de tratamiento de textos son
ejemplos típicos del segundo tipo, y aunque no lo parezca, el HTML es la muestra más
conocida del tercer modelo.
2.1 SGML
SGML es un lenguaje que permite definir otros lenguajes especificando la estructura de un
documento permitido. Esta especificación de un documento permitido en ese nuevo
lenguaje creado a partir de SGML es lo que se llama DTD (Data Type Definition) o
"definición del tipo de documento". En esta especificación se indica la sintaxis que los
distintos elementos de un documento podrían utilizar.
El SGML (Standard Generalized Markup Language) o lenguaje de etiquetado generalizado
normalizado es un lenguaje que surgió en 1985 con aplicaciones en diversos ramos. Los
lenguajes de etiquetado generalizado tienen las siguientes características principales:
Separa la estructura de su aspecto.
Las propiedades del texto se etiquetan según su función.
Facilita la generación de visualizaciones y la presentación de documentos.
El indexado se realiza sobre la estructura del documento, en texto completo.
Se facilita la independencia de los datos respecto de las aplicaciones.
SGML es muy versátil pero es de alta complejidad el nivel de programación que debe
hacerse para explotar sus funcionalidades.
El auge de Internet, sin duda, se debe a la Web. En 1989 se derivó del SGML el HTML. Éste
nuevo lenguaje evita la complejidad de SGML y facilita el enlace o la relación entre
documentos a través de “enlaces o hyperlinks”. El HTML es muy sencillo de utilizar para
elaborar documentos que deberán enlazarse y compartirse con otros sistemas. Es el primer
intento de los lenguajes de etiquetado de crear publicaciones digitales en Internet.
Aunque HTML es una excelente opción para la creación de documentos digitales, tiene un
número limitado de etiquetas y es poco flexible para su uso en grandes cantidades de
información. En 1996, aparece XML como el lenguaje que va a cubrir las deficiencias que
tiene HTML en la publicación de documentos.
2.2 HTML
HTML es un lenguaje de escritura de páginas Web. Las páginas Web pueden ser
visualizadas por el usuario mediante un tipo de aplicación llamada navegador. Podemos
decir por lo tanto que el HTML es un lenguaje usado por los navegadores para mostrar las
páginas Web al usuario, siendo hoy en día la interfaz más extendida en la red.
Este lenguaje nos permite combinar textos, sonidos e imágenes y combinarlos a nuestro
gusto. Además, y es aquí donde reside su ventaja con respecto a libros o revistas, el HTML
nos permite la introducción de referencias a otras páginas por medio de los enlaces
hipertexto.
El HTML se creó en un principio con objetivos divulgativos. No se pensó que la web llegara
a ser un área de ocio con carácter multimedia, de modo que, el HTML se creó sin dar
respuesta a todos los posibles usos que se le iba a dar y a todos los colectivos de gente
que lo utilizarían en un futuro. Sin embargo, pese a esta deficiente planificación, se han ido
incorporando modificaciones en los distintos estándares del HTML. El HTML 4.01 es el último
estándar que ha sido publicado.
Esta evolución tan anárquica del HTML ha supuesto toda una serie de inconvenientes y
deficiencias que han debido ser superados con la introducción de otras tecnologías
accesorias capaces de organizar, optimizar y automatizar el funcionamiento de las
2.2.1 Funcionalidad
HTML es un lenguaje para el marcado de textos e hipertextos. Este tipo de lenguajes ha
sido y sigue siendo de uso común en muchos entornos. HTML permite "marcar" un
documento para que el navegador que lo visualice sepa cómo tiene que mostrarlo. Para
ello, hace uso de las "marcas" o "tags" que formatearán el documento. Por ejemplo, para
que el navegador mostrara un texto en negrita, habría que indicarle al navegador que ese
texto ha de formatearse en negrita. Esto se conseguiría en HTML encerrando el texto en
cuestión entre las marcas correspondientes. Esto se expresa en HTML de la forma siguiente:
<b> Este texto se mostrará en negrita. </b>
Como se ve en el ejemplo anterior, una marca o "tag", no es más que una etiqueta
especial que el navegador interpreta y no muestra en el documento final, y que le indica
cómo debe formatearse el texto incluido entre el inicio del tag y el final del tag.
Como el HTML va incluido en el mismo documento, junto con el texto a formatear, hay que
seguir unas normas sintácticas para que el navegador sepa qué debe ser interpretado
como "tag" y qué debe ser texto formateado mediante los "tags". Toda marca de HTML ha
de ir encerrada entre los símbolos "< >" (menor que, mayor que). La mayoría de las marcas
deben tener una marca de apertura y otra de cierre. La marca de cierre es igual a la de
apertura con la excepción de que el "tag" ha de ir precedido por el símbolo "/". En nuestro
ejemplo anterior, el "tag" de apertura es "<b> " mientras que el "tag" de cierre es "</b>".
Entre el "tag" de apertura y el "tag" de cierre va incluido el texto que será formateado por
el navegador para mostrarlo en negrita en este caso. El texto se vería de la siguiente
forma:
Este texto se mostrará en negrita.
<HTML>
<HEAD>
Etiquetas y contenidos del encabezado
Datos que no aparecen en nuestra página pero que son importantes para catalogarla: Titulo,
palabras clave,...
<TITLE> Titulo del documento </TITLE>
</HEAD>
</HTML>
2.2.6.1 Caracteres
Se ha adoptado el juego de caracteres ISO/IEC:10646, que incluye todo tipo de carácter
en cualquier idioma. Esto significa que el W3C ha tenido en cuenta el desarrollo de la Web
2.2.6.2 Accesibilidad
HTML 4.01 tiene en cuenta las limitaciones ante las que se encuentran las personas
discapacitadas, y, para facilitar su acceso a documentos hipertextuales, prevé
instrumentos tales como:
x Distinción entre estructura base y contenido de un documento gracias a las
hojas de estilo;
x Tablas que permiten el acceso a las personas ciegas;
x Formularios que pueden ser seleccionados mediante teclas de selección
rápida;
x Mapas "clicables" que pueden mostrar texto como alternativa a las
imágenes;
x Soporte de las marcas title y lang para todos los elementos;
x Descripciones pormenorizadas de tablas, imágenes, marcos, etc.;
x Soporte de los elementos ABBR y ACRONYM;
x Posibilidad de usar, en las hojas de estilo, lenguajes de comunicación como
tty, Braille y otros.
2.2.6.3 Object
En el HTML 4.01 se pueden insertar elementos ejecutables multimedia. Para ello, la marca
OBJECT sustituye a las marcas IMG y APPLET. Esta marca polivalente permite incluir
imágenes, vídeo, sonidos y programas de ejecución en el documento mediante una
técnica jerárquica que especifica varias opciones según el ambiente en que opera el
navegador del usuario.
2.2.6.5 Tablas
El modelo definitivo de tablas del HTML 4.01 retoma la primera redacción del HTML+. El
modelo precedente fue redactado respondiendo a los requisitos de control en la
presentación de datos que exigían las nuevas necesidades de la red.
HTML 4.01 permite un notable control de las tablas (basadas en RFC1942), que están
orientadas exclusivamente a la presentación de datos y no, como sucede actualmente, a
la definición de formatos de página.
Entre otros, se ha introducido el nuevo elemento COLGROUP que permite crear grupos de
columnas especificando alineación y tamaño.
En particular, retomando lo establecido oficialmente en el documento W3C Proposed
Recommendation, las innovaciones más importantes relativas a las tablas son:
1. Mayor flexibilidad;
2. Simplificar las tablas importadas para adecuarse al modelo SGML CALS; la última
redacción hace que el atributo sea compatible con las últimas versiones de los
navegadores más populares;
3. Posibilidad de obtener tablas desplazables con cabeceras fijas, además de un
adecuado soporte para las tablas interrumpidas durante las páginas de impresión;
4. Posibilidad de alineación para caracteres indicados como "." y ":" (por ejemplo, será
posible alinear una columna de números por el punto decimal);
5. Introducción de un nuevo elemento que permite reagrupar una serie de columnas con
anchura y propiedades de alineación diferentes por uno o más elementos;
rules="basic" ha sido sustituido por rules="groups".
2.2.6.6 Formularios
Se han introducido nuevos atributos destinados a salvar algunas lagunas de la versión HTML
3.2:
1. El atributo accesskey se encarga de especificar un acceso directo mediante el
teclado a los campos del formulario;
2. Se puede prohibir la modificación de los campos del formulario con el atributo
complementario “readonly”;
3. El elemento LABEL añade una etiqueta con un particular formulario de control.
4. El elemento FIELDSET reagrupa campos relacionados entre sí y, junto con el
elemento LEGEND, puede utilizarse para denominar el grupo. Estos dos nuevos
elementos permiten una mejor interpretación e interacción;
5. Una nueva serie de atributos onchange-INPUT, junto con el soporte para los
lenguajes script, hace que los formularios de los proveedores puedan verificar los
datos introducidos por el usuario;
6. El elemento INPUT posee un nuevo atributo accept que permite a los autores
especificar una lista de medios o tipos de estructura para el input;
2.2.6.7 Script
HTML 4.01 prevé la posibilidad de asociar lenguaje de script a los formularios, de manera
que aumente el grado de interactividad con el usuario sin tener que servirse para ello de
complejas aplicaciones java.
2.2.6.8 Impresión
HTML 4.01 permite imprimir páginas Web sin obtener por ello una mera y simple
reproducción de la página. El programador 4.01 tiene la posibilidad de definir lo que se
imprimirá y cómo se imprimirá cuando el usuario pulse la tecla "Imprimir" del navegador.
2.3 XML
Sus iniciales provienen de eXtensible Markup Language (lenguaje de marcas extendido o
lenguaje de marcas ampliable).
Es un lenguaje usado para estructurar información en un documento o en general en
cualquier archivo que contenga texto, como por ejemplo archivos de configuración de un
programa o una tabla de datos.
XML no es más que un conjunto de reglas para definir etiquetas (tags) semánticas que
organizan un documento en diferentes partes.
XML es un metalenguaje que define la sintaxis utilizada para definir otros lenguajes de
etiquetas estructurados.
Ha surgido como uno de los formatos de información más aceptados hoy en día, inclusive
en ocasiones es denominado "el ASCII de Internet", debido a la flexibilidad y uniformidad
con que se puede intercambiar Información, todo partiendo de un solo documento
maestro con un formato universalmente aceptado.
Es un estándar abierto y libre del consorcio W3C (http://www.w3.org ). Fue propuesto en
1996 y la primera especificación apareció en 1998. Desde entonces su uso ha tenido un
crecimiento acelerado.
Un documento XML puede ser estructurado en forma jerárquica. Debido a que XML fue
desarrollado a partir de SGML (lenguaje generalizado de marcas) eliminando un gran
número de funcionalidades que lo hacían extremadamente complejo, XML aun mantiene
una similitud con SGML.
2.3.1 Objetivos
XML debe ser directamente utilizable sobre Internet.
XML debe soportar una amplia variedad de aplicaciones.
XML debe ser compatible con SGML.
Debe ser fácil la escritura de programas que procesen documentos XML.
El número de características opcionales en XML debe ser mínima, idealmente cero.
Los documentos XML deben ser legibles para los humanos y razonablemente claros.
El diseño de XML debe ser preparado rápidamente.
El diseño de XML debe ser formal y conciso.
Los documentos XML deben ser de fácil creación.
La concisión en las marcas XML es de mínima importancia.
2.3.2 Ventajas
Independencia del sistema operativo y de la aplicación que lo utilice.
Se puede obligar a los autores a seguir un patrón determinado.
Puede guiar los autores a través del proceso de escritura.
Simplifica la tarea de extraer información automáticamente.
Un único documento fuente puede dar origen a varios otros formatos.
Permite separar el contenido de la forma de presentación.
Una mayor uniformidad entre documentos con el mismo DTD.
Más explícito y simple que el SGML, facilitando su análisis.
2.3.3.1 DTD
El DTD (Document Type Definition o Definición del tipo de documento) es, en general, un
archivo/s que encierra una definición formal de un tipo de documento y, a la vez,
especifica la estructura lógica de cada documento. Define tanto los elementos de una
página como sus atributos.
El DTD del XML es opcional. En tareas sencillas no es necesario construir un DTD, esto se
denomina documento "bien formado"(well-formed). En otros casos es necesario un DTD y
esto se denomina documento "válido" (valid).
Un DTD es una definición exacta de la gramática de un documento, con la misión de que
se genere el código adecuado sin errores. El archivo HTML creado con el editor, al
cargarse en un navegador, es vuelto a analizar por su DTD interno para descubrir las
etiquetas correctas y las equivocadas, siempre de acuerdo a sus normas internas.
2.3.3.2 XSL
El XSL (eXtensible Stylesheet Language) define o implementa el lenguaje de estilo de los
documentos escritos para XML. Desde el verano de 1997 varias empresas informáticas
como Arbortext, Microsoft e Inso vienen trabajando en una propuesta de XSL (antes
llamado "xml-style") que presentaron a W3C.
El XSL permite modificar el aspecto de un documento. Se puede lograr múltiple columnas,
texto girado, orden de visualización de los datos de una tabla, múltiples tipos de letra con
amplia variedad en los tamaños. Este estándar está basado en el lenguaje de semántica y
especificación de estilo de documentos (DSSSL, Document Style Semantics and
Specification Language, ISO/IEC 10179) y, por otro lado, se considera más potente que las
hojas de estilo en cascada (CSS, Cascading Style Sheets), usado en un principio con el
lenguaje DHTML.
"Se espera que el CSS sea usado para visualizar simples estructuras de
documentos XML (actualmente se ha conseguido mayor integración en XML con
el protocolo CSS2 (Cascading Style Sheets, level 2) ofreciendo nuevas formas de
composición y una más rápida visualización) y que , por otra parte, XSL pueda ser
utilizado donde se requiera más potencia de diseño como en documentos XML
que encierran datos estructurados (tablas, organigramas, etc.)".
Para describir cómo se deben presentar los documentos XML podemos optar por las
mismas descripciones CSS (Cascading Style Sheets, hojas de estilo en cascada) que se
utilizan con HTML o las descripciones que se basan en XSL (Extensible Stylesheet Language,
lenguaje de hojas de estilo extensible).
CSS es una descripción del formato en el que se desea que aparezcan las entidades
definidas en un documento. Utilizar CSS con XML es similar al uso con HTML, con la
excepción de que las etiquetas son diferentes.
CSS es eficaz para describir formatos y presentaciones, pero no sirve para decidir qué tipos
de datos deben ser mostrados y cuáles no deben salir en la pantalla.
XSL no solo permite especificar cómo queremos presentar los datos de un documento XML,
sino que también sirve para filtrar los datos de acuerdo a ciertas condiciones.
Además de permitir la descripción de la presentación física, también posibilita la ejecución
de bucles, sentencias del tipo IF...THEN, selecciones por comparación, operaciones
lógicas, ordenaciones de datos, utilización de plantillas, y otras cuestiones similares.
2.3.3.3 XLL
El XLL (eXtensible Linking Language) define el modo de enlace entre diferentes enlaces. Se
considera que es un subconjunto de HyTime (Hipermedia/Timed-based structuring
Language o Lenguaje de estructuración hipermedia/basado en el tiempo, ISO 10744) y
sigue algunas especificaciones del TEI (Text Encoding Initiative o Iniciativa de codificación
de texto).
Desde marzo de 1998 el W3C trabaja en los enlaces y direccionamientos del XML.
Provisionalmente se le renombró como Xlink y después tomó como nombre definitivo XLL.
2.3.3.4 XUA
El XUA (XML User Agent) es la estandarización de navegadores XML. Todavía está en
proceso de creación de borradores de trabajo. Se aplicará a los navegadores para que
compartan todos las especificaciones XML.
2.3.4 Parser/DOM
Después de recoger la información de todos los documentos que definen la información
XML, se genera internamente una estructura que organiza a los elementos que describen
las etiquetas en forma de árbol jerárquico, lo que facilita el control de dichos elementos.
2.5 Derivaciones
A continuación se describen algunos lenguajes de marcado que son derivaciones de los
anteriormente vistos. Existen muchos más, pero aquí se han elegido los más importantes
hoy en día.
2.5.2 WML
WML es el lenguaje empleado en WAP que a su vez consiste en un protocolo que permite
el envío de datos por telefonía móvil. Da así acceso a Internet, siguiendo la arquitectura
de Cliente-Servidor.
La programación en WML hereda la mayor parte de sus construcciones sintácticas de XML.
Este es un rasgo en común con HTML. El salto entre ambos lenguajes es prácticamente
inmediato.
La DTD (Document Type Definition) que contiene todas las especificaciones sobre WML y
los anexos necesarios está disponible en las páginas de Open Mobile Alliance Ltd., la
sucesora del WAPForum (www.openmobilealliance.org/ )
2.5.3 VoML
VoiceXML es una especificación del VoiceXML Forum, un consorcio de más de 300
empresas creado en 1999 por AT&T IBM y Motorola con el objeto de estandarizar y
promover el uso de un único lenguaje diseñado para ofrecer los contenidos de Internet vía
voz . VoiceXML Forum ha dado el control sobre los futuros desarrollos del lenguaje al World
Wide Web Consortium (W3C), puesto que este lenguaje está basado en el estándar XML.
VoiceXML es un lenguaje de etiquetas que sigue las reglas sintácticas de XML con reglas
semánticas que permiten la creación de aplicaciones de voz. VoiceXML se puede utilizar
para crear páginas tanto estáticas como dinámicas ya que, al igual que HTML, se puede
embeber en programas escritos en lenguajes de programación como Java o C#.
Se trata de un lenguaje que permite la comunicación entre el hombre y la máquina de
forma hablada; es decir, es posible, por ejemplo, acceder a Internet usando simplemente
la voz. No es necesario mencionar el gran avance que esto supondría para las personas
invidentes; podrían acceder a gran parte de la información de Internet sin que su
discapacidad supusiese un impedimento para ello.
Actualmente no todo el mundo posee un ordenador, por lo que carecen de la posibilidad
de acceder a Internet. Pero lo que sí tiene casi todo el mundo es un teléfono, y con
VoiceXML es posible el acceso a Internet desde el teléfono simplemente usando la voz.
Para ello el usuario realizará una llamada al número que se ha asignado a la página,
cuando se reciba esta llamada, el navegador vocal buscará la URL en donde reside dicha
página. Según el W3C un navegador vocal es: "un dispositivo que interpreta un lenguaje
de marcas (vocales) y es capaz de generar salida por voz y/o interpretar entradas vocales
así como posiblemente otras modalidades de entradas/salidas".
Índice
1.- MODELIZACIÓN CONCEPTUAL. ELEMENTOS. 2
1.1 Principios del análisis 2
1.1.1 Dominio de la información 2
1.1.2 Modelado 3
1.1.3 Partición 3
1.1.4 Visiones lógicas y físicas 3
1.2 Modelado de datos 3
1.2.1 Análisis de datos 3
1.2.1.1 Abstracción 3
1.2.1.2 Etapas del análisis de datos 4
1.2.2 Modelos de datos 4
1.2.2.1 Clasificación de los modelos de datos 4
1.2.2.2 Objetos de datos, atributos y relaciones 5
1.2.2.3 Cardinalidad y modalidad 6
2.- REGLAS DE MODELIZACIÓN. VALIDACIÓN Y CONSTRUCCIÓN DE MODELOS DE DATOS. 6
2.1 El modelo Entidad/Relación (MER) 6
2.1.1 Definiciones previas 6
2.1.2 Pasos a seguir 8
2.2 Modelo Entidad/Relación extendido 8
2.2.1 Cardinalidades de un tipo de entidad. 8
2.2.2 Dependencia en existencia y en identificación 8
2.2.3 Especialización, generalización y herencia. 9
2.3 Validación de modelos de datos 11
2.4 Apéndice: Modelo Entidad/Relación extendido según Métrica v.3 14
1.1.3 Partición
Dado lo complejo de entender un problema globalmente, se divide en partes más
fácilmente entendibles. Es la partición de la función global. El cuarto principio operativo
del análisis sugiere que se pueden partir los dominios de la información, funcional y de
comportamiento. Se establece una representación jerárquica de la información o de la
función, exponiendo más detalles al movernos verticalmente en la jerarquía, o
descomponiendo el problema en el plano horizontal.
1.2.1.1 Abstracción
Al abordar el análisis de los datos, se ha de tener en cuenta el nivel de abstracción en el
que estemos situados. Existen tres niveles:
Nivel externo o visión de los usuarios particulares, en el que existirán tantos niveles
externos como usuarios distintos.
Ejemplo:
2. Modelos lógicos basados en registros: se usan para describir datos en los niveles conceptual
y físico, tanto para especificar la estructura lógica completa de la BD como para
proporcionar una descripción de alto nivel de la implementación. Son los siguientes:
Modelo relacional: se usa una colección de tablas para representar los datos y las
relaciones entre ellos.
Modelo de red: los datos se representan mediante colecciones de registros y las
relaciones mediante enlaces, que hacen de punteros. Los registros se organizan
como colección de grafos dirigidos.
Modelo jerárquico: es similar al modelo de red, salvo en que los registros se
organizan como colecciones de árboles.
3. Modelo de datos físico: se usa para describir datos en el nivel físico, existiendo muy pocos
modelos. Los más conocidos son el modelo unificador y el de memoria de elementos.
La generalización es el tipo de interrelación que existe entre un tipo de entidad y los tipos
de entidad más específicos que dependen de él. La generalización responde a la
necesidad de descomposición de tipos de entidad en varios subtipos. En el mundo real
es muy habitual la descomposición de un tipo de entidad, creándose de esta forma una
jerarquía de tipos de entidad, donde se pueden distinguir un supertipo del cual
dependen varios subtipos.La abstracción a este tipo de interrelación entre entidades se
denomina ES_UN_TIPO_DE (IS_A en inglés).
Esta relación tiene la característica de que toda ocurrencia del subtipo es una
ocurrencia del supertipo, pero no al contrario, de modo que las cardinalidades serán
siempre(1,1) en el caso del Supertipo y (0,1) en el casos de los Subtipos.
Dado que el modelo de datos es un medio para comunicar el significado de los datos, las
relaciones entre ellos y las reglas de negocio de un sistema de información, una organización
puede obtener numerosos beneficios de la aplicación de esta técnica, pues la definición de los
datos y la manera en que éstos operan son compartidos por todos los usuarios.
Este diagrama se centra en los datos, independientemente del procesamiento que los
transforma y sin entrar en consideraciones de eficiencia. Por ello, es independiente del entorno
físico y debe ser una fiel representación del sistema de información objeto del estudio,
proporcionando a los usuarios toda la información que necesiten y en la forma en que la
necesiten.
Descripción
El modelo entidad/relación extendido describe con un alto nivel de abstracción la distribución
de datos almacenados en un sistema. Existen dos elementos principales: las entidades y las
relaciones. Las extensiones al modelo básico añaden además los atributos de las entidades y la
jerarquía entre éstas. Estas extensiones tienen como finalidad aportar al modelo una mayor
capacidad expresiva.
Entidad
Es aquel objeto, real o abstracto, acerca del cual se desea almacenar información en la
base de datos. La estructura genérica de un conjunto de entidades con las mismas características
se denomina tipo de entidad.
Existen dos clases de entidades: regulares, que tienen existencia por sí mismas, y débiles
cuya existencia depende de otra entidad. Las entidades deben cumplir las siguientes tres reglas:
− Tienen que tener existencia propia.
Relación
Es una asociación o correspondencia existente entre una o varias entidades. La relación
puede ser regular, si asocia tipos de entidad regulares, o débil, si asocia un tipo de entidad débil
con un tipo de entidad regular. Dentro de las relaciones débiles se distinguen la dependencia en
existencia y la dependencia en identificación.
Además, se dice que una relación es exclusiva cuando la existencia de una relación entre
dos tipos de entidades implica la no existencia de las otras relaciones.
Dominio
Es un conjunto nominado de valores homogéneos. El dominio tiene existencia propia con
independencia de cualquier entidad, relación o atributo.
Atributo
Es una propiedad o característica de un tipo de entidad. Se trata de la unidad básica de
información que sirve para identificar o describir la entidad. Un atributo se define sobre un
dominio. Cada tipo de entidad ha de tener un conjunto mínimo de atributos que identifiquen
unívocamente cada ocurrencia del tipo de entidad. Este atributo o atributos se denomina
© Ministerio de Administraciones Públicas Metodología MÉTRICA Versión 3
Técnicas y Prácticas 63
identificador principal. Se pueden definir restricciones sobre los atributos, según las cuales un
atributo puede ser:
− Univaluado, atributo que sólo puede tomar un valor para todas y cada una de las
ocurrencias del tipo de entidad al que pertenece.
− Obligatorio, atributo que tiene que tomar al menos un valor para todas y cada una de las
ocurrencias del tipo de entidad al que pertenece.
Además de estos elementos, existen extensiones del modelo entidad/relación que
incorporan determinados conceptos o mecanismos de abstracción para facilitar la representación
de ciertas estructuras del mundo real:
− La generalización, permite abstraer un tipo de entidad de nivel superior (supertipo) a partir
de varios tipos de entidad (subtipos); en estos casos los atributos comunes y relaciones de
los subtipos se asignan al supertipo. Se pueden generalizar por ejemplo los tipos profesor y
estudiante obteniendo el supertipo persona.
− La especialización es la operación inversa a la generalización, en ella un supertipo se
descompone en uno o varios subtipos, los cuales heredan todos los atributos y relaciones
del supertipo, además de tener los suyos propios. Un ejemplo es el caso del tipo empleado,
del que se pueden obtener los subtipos secretaria, técnico e ingeniero.
− Categorías. Se denomina categoría al subtipo que aparece como resultado de la unión de
varios tipos de entidad. En este caso, hay varios supertipos y un sólo subtipo. Si por ejemplo
se tienen los tipos persona y compañía y es necesario establecer una relación con vehículo,
se puede crear propietario como un subtipo unión de los dos primeros.
− La agregación, consiste en construir un nuevo tipo de entidad como composición de otros y
su tipo de relación y así poder manejarlo en un nivel de abstracción mayor. Por ejemplo, se
tienen los tipos de entidad empresa y solicitante de empleo relacionados mediante el tipo de
relación entrevista; pero es necesario que cada entrevista se corresponda con una
determinada oferta de empleo. Como no se permite la relación entre tipos de relación, se
puede crear un tipo de entidad compuesto por empresa, entrevista y solicitante de empleo y
relacionarla con el tipo de entidad oferta de empleo. El proceso inverso se denomina
desagregación.
− La asociación, consiste en relacionar dos tipos de entidades que normalmente son de
dominios independientes, pero coyunturalmente se asocian.
La existencia de supertipos y subtipos, en uno o varios niveles, da lugar a una jerarquía,
que permitirá representar una restricción del mundo real.
Los atributos redundantes, los que se derivan de otros elementos mediante algún calculo,
deben ser eliminados del modelo entidad/relación o marcarse como redundantes.
Igualmente, las relaciones redundantes deben eliminarse del modelo, comprobando que al
eliminarlas sigue siendo posible el paso, tanto en un sentido como en el inverso, entre las dos
entidades que unían.
Notación
Entidad
La representación gráfica de un tipo de entidad regular es un rectángulo etiquetado con el
nombre del tipo de entidad. Un tipo de entidad débil se representa con dos rectángulos
concéntricos con su nombre en el interior.
ENTIDAD ENTIDAD
REGULAR DÉBIL
Relación
Se representa por un rombo unido a las entidades relacionadas por dos líneas rectas a los
lados. El tipo de correspondencia se representa gráficamente con una etiqueta 1:1, 1:N o M:N,
cerca de alguno de los vértices del rombo, o bien situando cada número o letra cerca de la entidad
correspondiente, para mayor claridad.
1 N
ENTIDAD 1 Relación ENTIDAD 2
La representación gráfica de las cardinalidades se realiza mediante una etiqueta del tipo
(0,1), (1,1), (0,n) o (1,n), que se coloca en el extremo de la entidad que corresponda. Si se
representan las cardinalidades, la representación del tipo de correspondencia es redundante.
(0,1) (1,n)
ENTIDAD 1 Relación ENTIDAD 2
Atributo
Un atributo se representa mediante una elipse, con su nombre dentro, conectada por una
línea al tipo de entidad o relación.
En lugar de una elipse puede utilizarse un círculo con el nombre dentro, o un círculo más
pequeño con el nombre del atributo a un lado. También pueden representarse en una lista
asociada a la entidad. El identificador aparece con el nombre marcado o subrayado, o bien con su
círculo en negro.
atributo1 atributo2
atributo1
atributo3
Exclusividad
En la representación de las relaciones exclusivas se incluye un arco sobre las líneas que
conectan el tipo de entidad a los dos o más tipos de relación.
1:N
Relación 2 ENTIDAD 3
1:N
SUPERTIPO
Atributo
Es_un discriminante
SUBTIPO 1 SUBTIPO 2
En el triángulo se representará: con una letra d el hecho de que los subtipos sean disjuntos,
con un círculo o una O si los subtipos pueden solaparse y con una U el caso de uniones por
categorías. La presencia de una jerarquía total se representa con una doble línea entre el
supertipo y el triángulo.
EMPLEADO EMPLEADO
No disjuntos O d
Disjuntos
Jerarquía
total
Categoría U
Es_un (unión)
Ejemplo.
Modelo entidad-relación extendido para un sistema de gestión de técnicos y su asignación a
proyectos dentro de una empresa u organización.
nombre
núm. nombre
dirección cod-depto
matrícula depto.
N 1
EMPLEADO Pertenece DEPARTAMENTO
fecha
asignación
Es_un
nivel fecha cese
M
TÉCNICO Trabaja en
ADMINISTRATIVO
N
cod-proyecto PROYECTO
cliente
nombre
proyecto fecha fin
fecha inicio
Por otro lado, se han incluido atributos que caracterizan la relación Trabaja en, como son
fecha de asignación y fecha de cese, ya que un técnico no siempre estará trabajando en un
proyecto, sino en determinado periodo. (Nota.- Esta notación es la más habitual, pero MÉTRICA
Versión 3 no exige su utilización).
Índice
1.- TÉCNICAS DE EVALUACIÓN DE ALTERNATIVAS Y ANÁLISIS DE VIABILIDAD. 2
2.- ALTERNATIVAS EN GESTIÓN DE RECURSOS HUMANOS. 3
2.1 Reclutamiento 3
2.1.1 Reclutamiento interno 3
2.1.2 Reclutamiento Externo 5
2.2 Outsourcing 6
3.- ALTERNATIVAS RESPECTO A LOS DATOS 8
3.1 Base de datos centralizada 8
3.2 Base de datos distribuida 8
3.3 Bases de datos federadas 9
4.- ALTERNATIVAS EN SOFTWARE 11
4.1 Producción de software a medida 11
4.1.1 Producción propia del software 11
4.1.2 Contratación externa de software a medida 11
4.2 Compra de paquetes y programas de software 11
4.2.1 Evaluación del software comercial 11
4.2.2 Licencias para productos de software 12
5.- ALTERNATIVAS EN HARDWARE. 13
5.1 Compra de equipos nuevos 13
5.2 Alquiler de equipos 13
5.2.1 Localización de los equipos 13
5.2.2 Posibilidades financieras: leasing. 15
5.3 Compra de equipos usados 15
6.- CRITERIOS. EVALUACIÓN DE ALTERNATIVAS. 16
7.- ANÁLISIS DE VIABILIDAD 16
7.1 Viabilidad operacional 17
7.2 Viabilidad Técnica 17
7.3 Viabilidad financiera y económica 18
2.1 Reclutamiento
El reclutamiento es el proceso de identificar e interesar a candidatos capacitados para
llenar una vacante. El proceso de reclutamiento se inicia con la búsqueda y termina
cuando se reciben las solicitudes de empleo.
x Es una poderosa fuente de motivación para los empleados, pues éstos vislumbran
la posibilidad de progreso dentro de la organización, gracias a las oportunidades
ofrecidas a quienes presentan condiciones para un futuro ascenso;
2.1.1.2 Desventajas
Entre las desventajas del reclutamiento interno se pueden enumerar las siguientes:
2.1.2.1 Ventajas
Las ventajas destacables del reclutamiento externo son:
2.1.2.2 Desventajas
Algunas de las más importantes desventajas del reclutamiento externo se describen a
continuación:
2.2 Outsourcing
El "outsourcing", también llamado "tercerización" es la contratación de un tercero para
ejecutar actividades previamente (o posiblemente) realizadas dentro de la orgnización. En
el campo de las tecnologías de la información y las comunicaciones (TIC), algunas de las
áreas que se han tercerizado con mayor frecuencia son la operación de infraestructura
tecnológica, las aplicaciones de sistemas y los procesos de negocio de la empresa.
El outsourcing requiere una contratación formal por un período de tiempo fijo y puede
involucrar la transferencia de activos y/o recursos humanos de la organización al
proveedor de servicios de outsourcing.
El proveedor de outsourcing de TIC asume la responsabilidad de gestionar el servicio de
tecnologías de la información de una empresa. Esto incluye:
1. Outsourcing de sistemas: administración y operación de servidores, soporte técnico,
PCs, redes y otros activos tecnológicos. Puede incluir también operaciones de
ayuda a usuarios (help desk) y de mantenimiento de equipos.
2. Outsourcing de aplicaciones: donde el proveedor asume contractualmente la
responsabilidad de administrar y mejorar los sistemas (paquetes de software o
desarrollos internos) de una empresa.
El outsourcing de procesos de negocio es la tercerización de procesos o áreas funcionales
de una empresa, como por ejemplo:
o Administración: facturación, servicios a accionistas, servicios generales, compras,
etc.
o Servicio al cliente: call centers, telemarketing, etc.
o Finanzas: tesorería, cobranzas, pagos, contabilidad, administración de activos,
etc.
o Recursos humanos: administración de beneficios, procesamiento de nómina,
compensación, entrenamiento, etc.
o Manufactura: administración de materiales, fabricación, empaquetado,
ensamblaje, etc.
o Logística: inventario y almacenaje, transporte y distribución, etc.
Para determinar si el outsourcing es una alternativa válida para la organización, deben
tenerse en cuenta tres aspectos:
1. La organización puede elegir enfocar sus recursos financieros y humanos en
desarrollar el negocio medular (el que lo diferencia de sus competidores) y dejar la
ejecución de actividades operativas, aún siendo importantes, en manos de terceros.
2. Es posible que tenga un sentido estratégico, financiero y de negocio realizar
internamente todas las actividades y procesos.
3. Puede resultar beneficioso realizar actividades no medulares a un menor coste y más
eficientemente que lo permitido por las capacidades internas actuales.
La finalidad de un contrato de outsourcing para la empresa contratante es la consecución
de todos o algunos de los siguientes objetivos:
o Reducir costes al aumentar la productividad y eficiencia de las operaciones,
funciones y procesos.
Sede
periférica
Sede
periférica
Sede
periférica
BD
Sede
periférica
Sede
central
Sede
Sede periférica
periférica
Sede
periférica
Sede
periférica
Sede
periférica
BD
Sede
periférica
Sede
central
Sede
Sede periférica
periférica
Sede
periférica
BD
Sede
periférica
Sede
central
Sede
Sede periférica
periférica
Un segundo caso, menos habitual es partir de una base de datos distribuida y generar un
resumen en la sede central. De este modo, no hace falta consolidar los datos para cada
petición, sino solamente para los casos en que se necesiten datos actuales.
Sede
periférica
Sede
periférica
Sede
periférica
BD
Sede
periférica
Sede
central
Sede
Sede periférica
periférica
5.2.1.2.1 Hosting
El servicio de hosting u hospedaje Web o alojamiento Web es un servicio por el que una
empresa cede espacio en sus servidores a sus clientes para que almacenen sus páginas
Web, correos, etc. La empresa de servicios deberá contar con los sistemas de seguridad
física (no-break) que permitan a esa computadora estar encendida aunque los suministros
de corriente eléctrica normal fallen, esto es, que cuente con SAIs (sistemas de
alimentación ininterrumpida). También debe contar con sistemas de seguridad lógica,
como los cortafuegos o firewalls.
5.2.1.2.2 Housing
Housing es un servicio que permite a las empresas la colocación de sus equipos,
independientemente del hardware y software utilizado, en las instalaciones del
proveedor de servicios. Estas instalaciones deberán estar especialmente acondicionadas
(seguridad, climatización...) y conectadas con enlaces de alta capacidad a Internet.
Este servicio cubre las necesidades de alojamiento, conectividad IP etc. En general, no se
contempla dentro de este servicio la administración, operación y mantenimiento de los
servidores.
El alojamiento de equipamiento informático en estas instalaciones, permitirá a la
organización considerarlo como extensiones virtuales de ésta, permitiendo el ahorro en
costos de red y escalable según requerimientos.
Hay que tener en cuenta en el momento de firmar el contrato el SLA o acuerdo de nivel
de servicio, por el que la empresa de servicios se compromete a cierto nivel. Los SLAs
significan compromisos contractuales de la calidad del servicio prestado al cliente, y se
garantizan mediante penalizaciones por incumplimiento (o premios por mejora de la
calidad). El incumplimiento de un nivel mínimo de calidad, puede suponer la cancelación
inmediata del contrato.
Los SLAs deben asegurar que todos los parámetros (indicadores, pesos, objetivos, umbrales,
etc) puedan ser modificados para mantener vigente su utilidad. Los criterios presentes en
los SLAs deben ser medibles y alcanzables y deben ser revisados periódicamente.
Asimismo, deben contener Planes de Contingencia.
Como elementos típicos de un acuerdo de nivel de servicio (SLA) se citan los siguientes:
o Cobertura del Servicio
o Tiempos de Respuesta
o Tiempos de Resolución
o Número de Incidencias en un periodo
o Disponibilidad del Servicio
o Integridad de los Datos
2. Diseño de sistemas.
3. Selección de alternativas.
Una vez que se ha tomado la decisión de implantar un nuevo sistema de información para
el negocio, se especifican los detalles del sistema. El segundo paso del estudio del
viabilidad es el diseño del sistema en esta fase son necesarias la imaginación y la
creatividad; de otra manera algunas de las debilidades básicas y de los problemas
relacionados del sistema existente serán duplicados inconscientemente por el grupo de
procesamiento de datos.
La viabilidad del proyecto se examina en tres áreas, que se describen a continuación.
Índice
1.1 Historia
En un sentido general se puede considerar la Orientación a Objetos (OO) como un marco
para la ingeniería del software basado en objetos y clases. Abarca desde los principios del
análisis de un problema hasta el final de su implementación y su dominio de aplicación
también es muy amplio. Según varios autores, el interés por la OO surgió en el contexto de
la crisis del software de los años 70 (la falta de reusabilidad de software). Al hablar de la
OO, se suelen identificar las siguientes ventajas:
Desarrollo rápido de sistemas.
Mejora en la calidad y legibilidad del código.
Facilidad de mantenimiento.
Aprovechamiento del poder de los LPOO.
Reusabilidad de software y diseños.
Producción de sistemas más resistentes al cambio.
La Programación Orientada a Objetos (POO) y los Lenguajes de Programación Orientada
a Objetos (LPOO) juegan un papel importante dentro de las tecnologías OO. Según la
literatura, el término objeto emergió paralelamente en varios campos de la Informática a
principios de los años 70, para hacer referencia a nociones superficialmente distintas
aunque relacionadas. La identificación de la importancia de la composición de sistemas
en niveles de abstracción, la ocultación de información y el desarrollo de mecanismos de
tipos de datos abstractos en los años 70 tuvieron una gran influencia en el desarrollo de la
POO, aunque existe cierta polémica sobre cómo exactamente estos avances dieron lugar
a lo que hoy en día se considera como POO. El LPOO Simula apareció en 1962 (y más
tarde Simula67 en 1967) y, aunque no fue muy utilizado, ha sido reconocido como el
primer LPOO, incorporando los conceptos de clase y objeto.
El concepto de POO propiamente dicho fue presentado por Alan Kay, uno de los
inventores de Smalltalk (el primer LPOO popular), algunos años más tarde:
Un objeto almacena datos y se le pueden hacer peticiones.
Un programa es un conjunto de objetos que intercambian mensajes.
Cada objeto tiene su propia memoria que está compuesta por otros objetos.
Cada objeto tiene un tipo de mensajes que puede recibir y procesar.
Todos los objetos de un cierto tipo pueden procesar los mismos mensajes.
Se trata de una caracterización muy general que no se puede aplicar a muchos de los
LPOO más utilizados hoy en día. Smalltalk tenía estas características y fue concebido con
el objetivo de ser un LPOO dinámico, que permitiera la adición de nuevas clases, objetos y
comportamiento sobre la marcha. En las actas del congreso HOPL II editadas en 1993 por
la ACM (Association of Computing Machinery), Kay definió la POO en términos de una
célula que permite el flujo de información en las dos direcciones, pero en la cual lo que
está dentro está oculto desde fuera. En 1985 apareció el LPOO Eiffel, diseñado para
mejorar la productividad y calidad de programas OO, pero no fue muy utilizado.
Para que la POO se estableciera como un paradigma era necesario que los
programadores lo adoptaran. Por eso fue muy efectiva la modificación de un LP ya
existente para incorporar los conceptos (y beneficios) de la POO, sin perder la posibilidad
de reutilizar código fuente, como ocurrió con C++ (que es una extensión de C que incluye
los conceptos de OO). Otros lenguajes de programación han sido expandidos también
para incorporar estos conceptos: Modula2 se convirtió en Modula3, Ada en Ada95, Lisp en
CLOS (Common Lisp Object System, vía Flavors), COBOL en Object COBOL, etc. Como
ejemplos de LPOO de nueva creación se pueden destacar Python, Java y C#.
Actualmente se pueden identificar unos 140 LPOO que se usan de alguna forma u otra.
LOOPS
Ada 9X
Pascal Ada
Eiffel
Object Pascal
Objective C
C
Java
C ++
1.2 Concepto
La orientación a objetos es un paradigma de programación que facilita la creación de
software de calidad por sus factores que potencian el mantenimiento, la extensión y la
reutilización del software generado bajo este paradigma.
La programación orientada a objetos trata de amoldarse al modo de pensar del hombre y
no al de la máquina. Esto es posible gracias a la forma racional con la que se manejan las
abstracciones que representan las entidades del dominio del problema, y a propiedades
como la jerarquía o el encapsulamiento.
El elemento básico de este paradigma no es la función (elemento básico de la
programación estructurada), sino un ente denominado objeto. Un objeto es la
representación de un concepto para un programa, y contiene toda la información
necesaria para abstraer dicho concepto: los datos que describen su estado y las
operaciones que pueden modificar dicho estado, y determinan las capacidades del
objeto.
1.3.1 Objeto
Un objeto es una unidad de software conformada por atributos y métodos específicos.
El objeto, es el concepto principal sobre el cual se fundamenta la tecnología orientada a
objetos. Un objeto puede ser visto como una entidad que posee atributos y efectúa
acciones.
En el mundo real podemos encontrar cientos de ejemplos que cumplen con esta
definición, algunos de ellos son: una bicicleta, un automóvil, una persona, una
computadora, etcétera.
Estos objetos son casos particulares de entidades llamadas clases en donde se definen las
características comunes de tales objetos. Veamos el caso particular del objeto automóvil,
podemos mencionar como atributos de éste: el modelo, el color, la marca, el número de
placas, entre otros. Algunas acciones que es capaz de realizar un automóvil son: ir marcha
atrás, girar, acelerar y cambiar de marcha. Este objeto automóvil es una instancia
particular de la entidad automóvil. En términos de la programación orientada a objetos, se
dice que todo objeto tiene un estado (atributos) y un comportamiento (acciones). La
programación orientada a objetos nos permite modelar estos objetos del mundo real en
objetos de software de forma eficaz. Un objeto de software mantiene sus atributos o
estado en variables e implementa las acciones o comportamientos por medio de métodos
o funciones.
Supongamos que queremos desarrollar una aplicación que simule un vehículo. Tendríamos
entonces un objeto vehículo constituido por variables en las cuales podríamos almacenar
número de serie, color, la velocidad actual, etcétera. Aunado a esto, tendríamos un
conjunto de funciones que implementaran las acciones para frenar, girar, cambiar de
marcha, etc.
1.3.2 Clase
Una clase es un molde o prototipo en donde se definen los atributos (variables) y las
acciones (métodos) comunes de una entidad.
1.3.3 Métodos
Los métodos especifican la forma en que se controlan los datos de un objeto. Los métodos
en un tipo de objeto sólo hacen referencia a la estructura de datos de ese tipo de objeto.
No deben tener acceso directo a las estructuras de datos de otros objetos. Para utilizar la
estructura de datos de otro objeto, deben enviar un mensaje a éste. El tipo de objeto
empaca juntos los tipos de datos y su comportamiento.
Un objeto entonces es una cosa cuyas propiedades están representadas por tipos de
datos y su comportamiento por métodos.
Un método asociado con el tipo de objeto factura podría ser aquél que calcule el total
de la factura. Otro podría transmitir la factura a un cliente. Otro podría verificar de manera
periódica si la factura ha sido pagada y, en caso contrario, añadir cierta tasa de interés.
1.4 Fundamentos
La POO se basa en una serie de cualidaes que tienen los objetos de software. Los
elementos más importantes que deben tener los objetos de software, para cumplir con el
paradigma de orientación a objetos son:
Abstracción.
Modularidad.
Encapsulamiento.
Jerarquía.
Polimorfismo.
A continuación se describe cada uno de ellos.
1.4.1 Abstracción
La abstracción es el proceso en el cual separamos las propiedades más importantes de un
objeto de las que no lo son. Es decir, por medio de la abstracción definimos las
características esenciales de un objeto del mundo real, los atributos y comportamientos
que lo definen como tal, para después modelarlo en un objeto de software.
En el proceso de abstracción no debemos preocuparnos por la implementación de cada
método o atributo, solamente debemos definirlo de forma general. Por ejemplo,
supongamos que deseamos escribir un programa para representar el sistema solar. Por
medio de la abstracción, podemos ver a este sistema como un conjunto de objetos.
Algunos de estos objetos son los planetas, que tienen un estado dado por sus
características físicas: tamaño, masa,... Estos objetos tendrán también comportamientos:
translación y rotación, como los más evidentes.
1.4.2 Modularidad
Dentro de la programación orientada a objetos, la modularidad juega un papel muy
importante. Una vez que hemos representado una situación del mundo real en un
programa, obtenemos como resultado un conjunto de objetos de software que
constituyen la aplicación. La modularidad, nos permite poder modificar las características
de la clase que definen a un objeto, de forma independiente de las demás clases en la
aplicación. En otras palabras, si nuestra aplicación puede dividirse en módulos separados,
normalmente clases, y estos módulos pueden compilarse y modificarse sin afectar a los
demás, entonces dicha aplicación ha sido implementada en un lenguaje de
programación que soporta la modularidad.
La tecnología orientada a objetos nos brinda esta propiedad para hacer uso de ella en el
software que desarrollemos.
1.4.3 Encapsulamiento
También referido como ocultamiento de la información, el encapsulamiento es la
propiedad de la orientación a objetos que nos permite asegurar que la información de un
objeto le es desconocida a los demás objetos en la aplicación. Es muy frecuente referirse a
los objetos de software como cajas negras, esto se debe principalmente a que no
necesitamos, dentro de la programación orientada a objetos, saber como esta
instrumentado un objeto para que este interactúe con los demás objetos. Generalmente
una clase se define en dos partes, una interfaz por medio de la cual los objetos que son
instanciados de la misma interactúan con los demás objetos en la aplicación, y la
implementación de los miembros de dicha clase (métodos y atributos).
Una aplicación orientada a objetos esta constituida, como mencionamos anteriormente,
por módulos. Estos módulos se implementan mediante clases, las cuales representan,
generalmente, abstracciones de objetos del mundo real. Es por medio del
encapsulamiento que podemos definir los atributos y los métodos de una clase para que
los objetos que se instancian de ésta trabajen como unidades independientes de los
demás objetos con los que interactúan.
Por otra parte, con el encapsulamiento ganamos modularidad, y además protegemos a
los objetos de ser manipulados de forma inadecuada por objetos externos.
1.4.4 Jerarquía
Una vez que se ha definido una clase, por ejemplo la clase bicicleta, con sus atributos y
métodos, tal vez necesitemos definir una nueva clase específica para las bicicletas de
carreras.
Es obvio que esta nueva clase compartirá elementos en común con la clase bicicleta, es
decir, la clase bicicleta de carreras será un subconjunto de la clase bicicleta.
La tecnología orientada a objetos permite definir jerarquías entre clases y jerarquías entre
objetos. Las dos jerarquías más importantes que existen son la jerarquía “es un” que precisa
la generalización y especificación entre clases y la jerarquía “es parte de” en la cual se
delimita la agregación de objetos.
Comúnmente, a la jerarquía “es un” se le conoce como herencia. La herencia simple es la
propiedad que nos permite definir una clase nueva en términos de una clase ya existente.
Regresando al ejemplo, si podemos decir que una bicicleta de carreras “es una” bicicleta,
entonces podemos definir a la clase bicicleta de carreras a partir de la clase bicicleta.
Existirán casos en los cuales se necesite definir una clase a partir de dos o más clases
preexistentes, en este caso estaremos hablando de herencia múltiple.
En cuanto a la jerarquía de agregación, también conocida como inclusión, podemos
decir que se trata del agrupamiento lógico de objetos relacionados entre si dentro de una
clase.
Supongamos que tenemos que definir a la clase automóvil, pero además hemos definido
ya la clase volante. Si podemos expresar la oración, un volante “es parte de” un automóvil,
entonces podemos instanciar un objeto de la clase volante, para definir a la clase
automóvil.
En este caso, se dice que automóvil es una agregación y volante es un agregado de
automóvil.
1.4.5 Polimorfismo
Muchas veces es necesario que un mismo comportamiento o acción se realice de
diferentes maneras. Por ejemplo, supongamos que deseamos implementar a la clase
mamíferos, supongamos también que uno de los métodos que deseamos implementar
para esta clase, es el que permita a tales mamíferos desplazarse de forma natural. Nos
encontraremos entonces con que para algunos mamíferos el desplazamiento se realizará
por medio de caminar, como es en el caso de las personas, para otros el desplazamiento
natural será nadar, como en el caso de las ballenas y delfines e inclusive para otros, el
desplazamiento se logrará por medio de volar, como sucede con los murciélagos. En otras
palabras, un mismo comportamiento, en este caso el desplazamiento, puede tomar
diferentes formas.
Dentro de la programación orientada a objetos puede modelarse esta situación del
mundo real en objetos de software, gracias al polimorfismo. El polimorfismo es la propiedad
por la cual una entidad puede tomar diferentes formas. Generalmente está entidad es
una clase, y la forma en que se consigue que tome diferentes formas es por medio de
nombrar a los métodos de dicha clase con un mismo nombre pero con diferentes
implementaciones.
2.1 Concepto
UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y
documentar los elementos que forman un sistema software orientado a objetos. Se ha
convertido en el estándar de facto de la industria, debido a que ha sido concebido por los
autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar
Jacobson y Jim Rumbaugh.
Estos autores fueron contratados por la empresa Rational Software Co. para crear una
notación unificada en la que basar la construcción de sus herramientas CASE. En el
proceso de creación de UML han participado, no obstante, otras empresas de gran peso
en la industria como Microsoft, Hewlett-Packard, Oracle o IBM, así como grupos de
analistas y desarrolladores.
Esta notación ha sido ampliamente aceptada debido al prestigio de sus creadores y
debido a que incorpora las principales ventajas de cada uno de los métodos particulares
en los que se basa: Booch, OMT y OOSE. UML puso fin a las llamadas guerras de métodos
que se habían mantenido a lo largo de los 90, en las que los principales métodos sacaban
nuevas versiones que incorporaban las técnicas de los demás. Con UML se fusionó la
notación de estas técnicas para formar una herramienta compartida entre todos los
ingenieros software que trabajan en el desarrollo orientado a objetos.
El objetivo principal cuando se empezó a gestar UML era posibilitar el intercambio de
modelos entre las distintas herramientas CASE orientadas a objetos del mercado. Para ello
era necesario definir una notación y semántica común.
El estándar UML no define un proceso de desarrollo específico, tan solo se trata de una
notación.
2.3 Historia
Durante 1996 importantes organizaciones comprendieron que el desarrollo del UML sería
una estrategia para su negocio. El OMG (Object Management Group) público una
propuesta con un catalogo del conjunto de compañías que iban a cooperar para el
desarrollo del UML. Rational establece el consorcio de socios UML con otras compañías.
Este consorcio se dedica a la definición y desarrollo del UM 1.0. Las compañías que lo
forman son: Digital Equipment Cop.; HP; i-Logix; IntelliCorp; IBM; ICON Computing; MCI
Systemhouse; Microsoft; Oracle; Rational Software; TI y Unisys. El UML 1.0 fue presentado por
OMG en enero de 1997.
In du strialization
Los socios del UML contribuyeron con su perspectiva tecnológica, con la Modelación de
negocios, con un lenguaje reservado (OCL), con semántica para una máquina de
estados, con tipos, interfaces, componentes, colaboraciones y con un metamodelo. Cada
socio proporciono su propia perspectiva del área donde trabajaba y el resultado
beneficio a todos ellos.
Origen
Tamaño
Abrir()
Cerrar()
Mover()
Dibujar()
2. INTERFAZ
Una interfaz es una colección de operaciones que especifican un servicio de una clase
o componente, esta describe el comportamiento visible externamente de ese
elemento, puede representar el comportamiento completo de una clase o
componente.
Una interfaz define un conjunto de especificaciones de operaciones, pero nunca un
conjunto de implementaciones de operaciones
3. COLABORACIÓN
Una colaboración define una interacción y es una sociedad de roles y otros elementos
que colaboran para proporcionar un comportamiento cooperativo mayor que la suma
de los comportamiento de sus elementos, tienen dimensión tanto estructural como de
comportamiento, estas representan la implementación de patrones que forman un
sistema
Una clase puede participar en varias colaboraciones,
Cadena de
responsabilidad
4. CASO DE USO
Un caso de uso es una descripción de un conjunto de secuencias de acciones que
produce un resultado observable de interés para un actor en particular, es estructurar
los aspectos de comportamiento de un modelo.
Es realizado por una colaboración.
Realizar Pedido
5. CLASE ACTIVA
Una clase activa es una clase cuyos objetos tienen uno o más procesos o hilos de
ejecución y por lo tanto pueden dar origen a actividades de control, presentan
elementos cuyo comportamiento es concurrente con otros.
GestorEventos
Suspender()
VaciarCola()
6. COMPONENTE
Un componente es una parte física y reemplazable de un sistema que conforma con
un conjunto de interfaces y proporciona la implementación de dicho conjunto.
Representa típicamente el empaquetamiento físico de diferentes elementos lógicos,
como clases, interfaces y colaboraciones.
Orderform.jav
7. NODO
Un Nodo es un elemento físico que existe en tiempo de ejecución y representa un
recurso computacional que por lo general dispone de algo de memoria y con
frecuencia, capa con capacidad de procesamiento.
servidor
Los siete elementos anteriores son los elementos estructurales básicos que se puede incluir en
un modelo UML.
También existen variaciones de estos siete elementos, tales como actores, señales, utilidades,
procesos e hilos, y aplicaciones, documentos, archivos, bibliotecas, páginas y tablas
Dibujar
Mensajes
2. MÁQUINA DE ESTADOS
Una máquina de estados es un comportamiento que especifica las secuencias de
estados por las que pasa un objeto o una interacción durante su vida en respuesta a
eventos, junto con sus reacciones a estos eventos.
El comportamiento de una clase individual o una colaboración de clases pueden
especificarse con una máquina de estado, e involucra a otros elementos, incluyendo
estados, transiciones, eventos, y actividades:
Esperando Estados
Son las partes organizativas de los modelos, son cajas en las que puede descomponerse
un modelo. Un paquete es un mecanismo de propósito general para organizar elementos
en los grupos. Los elementos estructurales, los elementos de comportamiento e incluso
otros elementos de agrupación pueden incluirse en un paquete., también es puramente
conceptual.
R e g la s d e l n e g o c io
D e v u e lv e u n a c o p ia d e l
o b jeto re ce p to r
N o ta
2.6.1.2 Relaciones
Hay cuatro tipos de relaciones:
1. DEPENDENCIA
Es una relación semántica entre dos elementos, en la cual un cambio a un elemento
independiente puede afectar a la semántica del otro elemento dependiente
Depéndencias
2. ASOCIACIÓN
Es una relación estructural que describe un conjunto de enlaces, los cuales son
conexiones entre objetos. La agregación es un tipo especial de asociación, en que
representa una relación estructural entre un todo y sus partes
0....1 *
patrón empleado
3. GENERALIZACIÓN
Es una relación de especialización / generalización en la cual los objetos del elemento
especializado (hijo) pueden sustituir a los objetos del elemento general (padre). De
esta forma, el hijo comparte la estructura y el comportamiento del padre.
Generalizaciones
4. REALIZACIÓN
Es una relación semántica entre clasificadores, en donde un clasificador especifica un
contrato que otro clasificador garantiza que cumplirá. Se pueden encontrar relaciones
de realización en dos sitios: entre interfaces y las clases y componentes que las realizan,
entre los casos de uso y las colaboraciones que los realizan.
R ealización
Estos cuatro elementos son los básicos relacionales. Existes variaciones son como el
refinamiento, la traza, la inclusión y la extensión.
Cliente Factura
Corresponde
Nombre: texto Concepto: texto
1 *
Dirección: texto Cantidad: número
Clases
Una clase se representa mediante una caja subdividida en tres partes: En la superior se
muestra el nombre de la clase, en la media los atributos y en la inferior las operaciones.
Una clase puede representarse de forma esquemática (plegada), con los detalles como
atributos y operaciones suprimidos, siendo entonces tan solo un rectángulo con el nombre
de la clase.
Objetos
Un objeto se representa de la misma forma que una clase. En el compartimiento superior
aparece el nombre del objeto junto con el nombre de la clase, ambos subrayados, según
la siguiente sintaxis:
nombre_del_objeto: nombre_de_la_clase
Asociaciones
Las asociaciones entre dos clases se representan mediante una línea que las une.
La línea puede tener una serie de elementos gráficos que expresan características
particulares de la asociación.
A continuación se verán los más importantes de entre dichos elementos gráficos.
Agregación
La agregación es un tipo de relación jerárquica entre un objeto que representa la
totalidad de ese objeto y las partes que lo componen. Permite el agrupamiento físico
de estructuras relacionadas lógicamente. Los objetos "son-parte-de" otro objeto
completo. Por ejemplo, motor, ruedas, carrocería son parte de coche.
Se representa con un rombo hueco en la clase cuya instancia es una agregación de
las instancias de la otra.
Coche
Asociación
Las relaciones de asociación representan un conjunto de enlaces entre objetos o
instancias de clases. Es el tipo de relación más general y denota básicamente una
dependencia semántica. Por ejemplo, una Persona trabaja para una Empresa.
Se representa como una línea continua entre las clases asociadas. Ambos extremos de
la línea pueden conectar con la misma clase, indicando que una instancia de una
clase, está asociada a otras instancias de la misma clase, lo que se conoce como
asociación reflexiva.
La relación puede tener un nombre y un estereotipo, que se colocan junto a la línea. El
nombre suele corresponderse con expresiones verbales presentes en las
especificaciones, y define la semántica de la asociación. Los estereotipos permiten
clasificar las relaciones en familias y se escribirán entre el símbolo: << ... >>.
Cada asociación puede presentar elementos adicionales que doten de mayor detalle
al tipo de relación:
{ Multiplicidad - Describe la cardinalidad de la relación, es decir, especifica cuántas
instancias de una clase están asociadas a una instancia de la otra clase. Los tipos
de multiplicidad son:
Rep. simbólica Significado
1..1 Uno a uno
Persona
Alumno Profesor
Es una relación de comunicación, que indica que un actor interviene en el caso de uso.
Normalmente, el actor aporta información para la realización de un caso de uso o recibe
información como resultado de la realización del mismo, por ello, esta relación puede ser
unidireccional o bidireccional, aunque generalmente se muestra como bidireccional, ya
que no es necesario especificar en detalle estas relaciones.
Las relaciones entre un actor y un caso de uso se representan mediante una línea continua
entre ellos.
Relación entre casos de uso.
La relación entre casos de uso es una relación unidireccional. Esta relación puede
presentar uno de los dos siguientes tipos: usa y extiende.
o La relación usa - Cuando un caso de uso utiliza a otro.
o La relación extiende - Cuando un caso de uso especializa a otro extendiendo su
funcionalidad.
consigo mismo. La existencia de un enlace entre dos objetos indica que puede existir
un intercambio de mensajes entre los objetos conectados.
Mensajes - Los diagramas de interacción indican el flujo de mensajes entre elementos
del modelo, el flujo de mensajes representa el envío de un mensaje desde un objeto a
otro si entre ellos existe un enlace. Cada mensaje lleva un número de secuencia.
Contratar
En paro En activo
Perder empleo
Jubilarse Jubilarse
Jubilado
El estado inicial se muestra como un círculo sólido y el estado final como un círculo sólido
rodeado de otro círculo. En realidad, los estados inicial y final son pseudo-estados, pues un
objeto no puede “estar” en esos estados, pero nos sirven para saber cuáles es la transición
inicial y final(es).
Adornos
La notación de la clase también revela los aspectos más importantes de una clase a
saber: su nombre, atributos y operaciones.
La especificación de una clase puede incluir otros detalles, tales como si es abstracta o
la visibilidad de sus atributos y operaciones. Muchos de estos detalles se pueden incluir
como adornos gráficos o textuales en la notación rectangular básica de la clase.
Transacción
+ Ejecutar()
+ Rollback()
# prioridad()
Divisiones comunes
La primer división entre clase y objeto, una clase es una abstracción; un objeto es una
manifestación concreta de esa abstracción;
Arquitectura
Ciente
Nombre J u a n :C lie n te
Dirección
teléfono :C lie n te
Elisa
Mecanismos de Extensibilidad.
x Estereotipos
x Valores etiquetados
x Restricciones
Estereotipo, extiende el vocabulario de UML, permitiendo crear nuevos tipos de
bloques de construcción que deriven de los existentes pero sean específicos a un
problema
ColaEventos
Añadir() {ordenado}
Quitar()
Vaciar()
3.1 Introducción
Las redes como Internet, o las redes corporativas son una mezcla de tecnologías, en las
que podemos encontrar estaciones de trabajo, mainframes, ordenadores con diferentes
sistemas operativos que van sobre una simple red de cable coaxial o una gran red ATM
con poderosas fibras ópticas y como si fuera poco trabajando con diferentes protocolos,
podemos decir entonces, que dichas redes son heterogéneas y pueden convertirse en un
problema a la hora de hacer que aplicaciones existentes, interactúen con nuevas
aplicaciones que trabajan en entornos tecnológicos de vanguardia o incluso ya existentes,
lo que hace imposible que sistemas antiguos, sean reemplazados sin tener en cuenta una
relación costo beneficio.
De cara al problema antes mencionado, la OMG (Object Management Group) fue
formada en 1989 y actualmente esta conformada por más de 700 compañías, con el
ánimo de adoptar y promover estándares para el desarrollo de aplicaciones en entornos
distribuidos heterogéneos, siendo una función de los miembros de la OMG aportar ideas y
contribuir con su tecnología a los RFPs (Request For Proposal) lanzados por la OMG, gracias
a las respuestas a estos RFPs, la OMG adopta estándares basados en tecnologías de
objetos existentes en el mercado.
Por otra parte, el auge de la descentralización de los sistemas, de los servicios que brindan
los mismos a terceros y en especial de las personas, los entornos distribuidos son en buena
forma una gran opción en el desarrollo de sistemas compactos y versátiles que de cara a
la tecnología dan solución a muchos problemas de diferente índole y en diferentes
segundo por que OMG no desarrolla, solo específica, sin embargo, existe la posibilidad de
que dichas interfaces sean candidatas a un estándar de OMG, si es que con el tiempo,
algunos servicios emergen de dicha aplicación de dominio específico.
Para finalizar está breve introducción a OMA, cabe mencionar que existe un concepto
llamado el "Object Framework" o marco de objetos, ver la figura 2, la figura representa un
conjunto de objetos que interactuan entre sí, formando una aplicación que soluciona un
problema en un dominio especifico, por ejemplo en las telecomunicaciones, la banca, la
manufactura o la medicina y que cada uno de los círculos en la figura, representan
componentes que se comunican entre sí a través de un ORB, los cuales soportan todas o
algunas de las interfaces descritas en el Modelo de Referencia (Interfaces de aplicación,
Interfaces de dominio especifico, Facilidades comunes y/o interfaces de servicios de
objeto) antes mencionado; estos componente se comunican entre sí (en forma "peer-to-
peer"), comportándose unas veces como cliente y otras como servidor.
Por otra parte, en la figura 2 apreciamos como el componente (Cliente) que soporta todas
las interfaces, hace requerimientos a un componente (Servidor) que soporta solamente
interfaces SO, también, como otro componente cliente que soporta interfaces FC y SO,
hace requerimientos a un componente servidor con interfaces SO. En la figura 2, vemos
que existe un requerimiento marcado como "Call-Back", este caso se presenta cuando un
componente que se comporta como un servidor, hace peticiones a un cliente, haciendo
que dicho cliente pueda comportarse como cliente y servidor al mismo tiempo, (Un
ejemplo demostrativo con estas características esta incluido en la guía del programador
de OrbixWeb de IONA).
3.3.1 El cliente
Es la entidad que invoca operaciones sobre un objeto de la implementación de objetos,
Los servicios que brinda dicho objeto son transparentes al llamante, bastaría simplemente
con invocar un método sobre un objeto; de tal forma que un objeto remoto para una
entidad cliente (local y llamante) se comporta como si fuese un objeto local (ver flechas
punteadas de la figura 3).
información necesaria que un cliente necesita para interoperar con el ORB y dicho target
object) en strings o vise versa y las que sirven para crear listas de argumentos de
requerimientos, hechos a través de una invocación dinámica, vista un poco más adelante.
como un Objeto CORBA, con una base de datos asociada y que tiene un conjunto de
operaciones que pueden ser utilizadas como si fuese un objeto cualquiera, entre los
servicios que ofrece dicho Objeto CORBA, es permitir navegar sobre la jerarquía de
interfaces almacenadas en la base e datos, de tal forma que se pudiese saber si se
quisiere, la descripción de todas las operaciones que un objeto soporta Una forma muy
interesante y de mucha utilidad es usar el IR para descubrir interfaces de objetos en tiempo
de ejecución, empleando invocación dinámica, que se verá a continuación.
sistema, por ejemplo, sistemas de bases de datos o cualquier otro tipo de aplicación. En
cualquier caso, la interacción entre componentes de los niveles, es independiente de la
ubicación de los objetos, del entorno donde residan y del lenguaje en que estén
implementados dichos objetos.
Es importante agregar, que en el cliente pueden residir objetos que interactúan con otros
objetos existentes en la red, como es el caso de objetos encargados de la parte gráfica en
una aplicación, también, el cliente puede acceder a objetos de la red mediante un
browser, como es el caso de applets de java que forman parte de una aplicación
distribuida. Para entender un poco la interacción de los objetos en una aplicación
distribuida, vamos a colocar el caso de una aplicación CORBA implementada en java,
que interactúa con un cliente a través de un browser; en un servidor HTTP existen
documentos html que se encargan de llevar la parte de la aplicación que el cliente
necesita para su interacción con objetos CORBA (a través del browser, ver figura arriba),
cuando lo que el cliente necesita es descargado en su maquina local (por intermedio del
protocolo http), la interacción con los objetos CORBA puede iniciar y se realiza entonces
vía CORBA IIOP; el cliente dada la aplicación en curso, podrá interactuar con objetos de
cualquier servidor CORBA, haciendo uso de un servicio de nombres o de búsqueda, para
la localización de los mismos, quienes a su vez, podrán servirse de aplicaciones residentes
en otro tipo de entornos (lo que permite la integración de aplicaciones existente no
distribuidas a un entorno distribuido).
Índice
3.2 Analista..................................................................................................................................... 17
3.2.1 Funciones .............................................................................................................................17
3.2.2 Competencias ....................................................................................................................17
3.3 Programador............................................................................................................................ 17
3.3.1 Funciones .............................................................................................................................17
3.3.2 Competencias ....................................................................................................................18
3.4 Operador.................................................................................................................................. 18
3.4.1 Funciones .............................................................................................................................18
1.- Organizaciones
La organización de un centro de sistemas de información está condicionada por el tipo de
organización en el que se encuentra inmersa. Los centros de proceso de datos de la
Administraciones Públicas se encuentran en el contexto de una organización burocrática
que condiciona totalmente su organización y sus formas de trabajo.
Durante los 90 se consolidó un modelo empresarial que fue anunciado por Peter Drucker,
caracterizado por un proceso denominado “flattening”. Se traduce en un aplanamiento
de las organizaciones debido por una parte a la necesidad de tener un tiempo de
respuesta más rápido para tomar decisiones y por otra parte en aprovechar la potencia
de los Sistemas de Información para elaborar información de dirección y para transmitir
instrucciones. Con ello es posible sustituir 2/3 de los niveles situados en las líneas
intermedias.
Últimamente se ha visto conveniente distribuir las decisiones por la organización dando
autonomía a las unidades de negocio (Business Units) que disponen de presupuesto
independiente y autonomía para perseguir sus objetivos dentro de Ios estándares
señalados por la organización.
1.3.2.1 Apuntado
En el modelo apuntado hay un número elevado de niveles en la pirámide jerárquica. Es el
caso de la Administración en el que desde el presidente del gobierno al jefe de grupo hay
14 niveles. En este tipo de modelo se producen grandes rigideces a la hora de la
circulación de la información.
1.3.2.2 Plano
En el modelo plano existen pocos niveles en la pirámide jerárquica lo que hace que las
organizaciones con este tipo de estructura sean mucho más flexibles y operativas que las
anteriores.
En la moderna teoría de la organización se propugna la disminución de niveles, lo cual es
muy difícil de conseguir en las organizaciones antiguas con estructuras apuntadas, ya que
en la mayoría de ellas las retribuciones van en función del nivel jerárquico.
1.3.3.1 Jerárquico
Las comunicaciones siguen siempre las líneas jerárquicas que marcan la estructura
piramidal de la organización. La mayoría de las comunicaciones, por no decir todas, se
producen de jefe a subordinados y de subordinados a jefes. Las comunicaciones
colaterales están muy restringidas.
1.3.3.2 Reticular
Son mucho más flexibles y eficientes ya que las comunicaciones entre las unidades de
empleados de la organización no tienen por qué seguir exclusivamente las líneas de
mando jerárquicas. Las comunicaciones son de todos con todos, sobre todo por niveles.
Esto hace que muchos problemas se resuelvan a nivel horizontal sin que tengan que
intervenir las líneas de mando convencionales. Estas sólo intervienen cuando las
comunicaciones reticulares de nivel horizontal no pueden resolver las cuestiones que se
planteen entre las diversas unidades jerárquicas.
1.3.3.3 Formal
En las organizaciones formales las comunicaciones suelen estar muy formalizadas y
documentadas de acuerdo a normas estrictas. Lo que no se comunique por las vías
formales establecidas no tiene validez.
Las reuniones también tienen una preparación muy formal y muy reglada con
convocatorias anticipadas, ordenes del día, entregas de documentación para la discusión
y el debate.
1.3.3.4 Informal
Hay organizaciones más informales, sobre todo las jóvenes y pequeñas, que suelen
prescindir casi totalmente de los formalismos. Esto tiene la ventaja de la agilidad y
flexibilidad de funcionamiento, pero también tiene graves inconvenientes cuando las
organizaciones empiezan a tener un tamaño considerable.
2.1.1.1 Análisis
El análisis es la fase, dentro del desarrollo de un sistema de información, en la que
partiendo de las especificaciones funcionales suministradas por el usuario se establecen
especificaciones técnicas a diferente nivel de detalle.
La experiencia demuestra que en una organización el conjunto de los datos base, la
materia prima de la que se va a extraer la información, y las interrelaciones entre dichos
datos base, es algo mucho más estable que las salidas de información y sus
correspondientes procesos de obtención.
2.1.1.2 Programación
Las tareas de programación se materializan a través del diseño y desarrollo de programas.
Un programa es un conjunto de instrucciones codificadas en un lenguaje especial
simbólico o absoluto, cuya ejecución en un sistema físico da lugar a la realización de una
tarea especifica. Para desarrollar un programa hay que llevar a cabo ciertas actividades
fundamentales:
x Definir con precisión y claridad la tarea que se quiere programar. Si una tarea está
bien definida es muy probable que su programación pueda llevarse adelante con
éxito sin excesivas dificultades. La definición de la tarea a ejecutar en el ámbito de
control de las unidades robotizadas que los manejan, realizar esta tarea no será
preciso. En la actualidad solamente las grandes instalaciones disponen de
unidades robotizadas.
Adoptar las medidas necesarias para responder de la identificación y custodia de
estos soportes evitando su extravío.
Realizar copias de seguridad que permitan recuperar cualquier fichero no sólo en
el caso de que exista un desastre. Debe tenerse en cuenta que determinados
archivos críticos, como puede ser un backup pueden ser totalmente inutilizables e
imposibilitar por ello la recuperación de una instalación en el caso de que un
grupo de bloques de información no pueda ser recuperado por un error de
escritura. La adopción de medidas para garantizar que existan las copias
suficientes de la información crítica para evitar estas contingencias es
responsabilidad de este área.
Operación del teleproceso.
En las organizaciones tradicionales la importancia relativa del teleproceso era reducida y
el esfuerzo de la operación de consola se centraba en la planificación y el control de los
trabajos batch y en el control de las Bases de Datos.
Con la distribución de informática por las organizaciones, primero basándose en la
utilización de terminales no inteligentes conectados a un mainframe y más adelante con
arquitecturas distribuidas, el peso del proceso transaccional y del teleproceso se ha
incrementado progresivamente.
Las tareas básicas que debe realizar el personal destinado en operaciones son:
Asignar y controlar los recursos de la red.
Controlar el estado de los componentes. Debe destacarse que dado el elevado
número de recursos es imprescindible la utilización de herramientas de Gestión de
Red.
Es el segundo nivel de Gestión de Problemas.
Es conveniente que un número elevado de las incidencias se resuelvan en el Help Desk en
el primer nivel de gestión de problemas. La especial naturaleza de los problemas derivados
del mal funcionamiento de la red hace preciso disponer de monitores por lo que, o se trata
de un help desk altamente especializado o las llamadas se derivan a un grupo de analista
de soporte a la red que se encuentran en el segundo nivel.
Control de los rearranques.
La necesidad de realizar rearranques deriva de una situación de interrupción del servicio.
Las consecuencias de la interrupción son evidentemente la falta de prestación de servicios
a los usuarios y un deterioro de los niveles de prestación. Esto puede suponer una
vulneración de los acuerdos establecidos de nivel de servicio, con las repercusiones
económicas que de ello se pudieran derivar.
3.1.1 Funciones
o Gestionar la política de tecnologías de la comunicación para que sea adecuada a
los objetivos y necesidades de la empresa.
o Formular y proponer el plan informático según los objetivos de la empresa, a corto,
medio y largo plazo.
o Instaurar las soluciones informáticas necesarias para cubrir las necesidades de la
empresa y de sus usuarios.
o Supervisar la implementación y desarrollo de los proyectos informáticos.
o Negociar con los proveedores lo relativo a servicios y productos informáticos.
o Cooperar en el diseño de planes de formación en materia de tecnologías de la
información y supervisar su implementación.
3.1.2 Competencias
o Conocimientos de planificación estratégica de sistemas de información
o Conocimientos de tecnologías informáticas, mercado de hardware y software.
o Flexibilidad de criterios
o Habilidades para la obtención y análisis de información
o Orientación al cliente (interno/externo)
o Interés por la Innovación
o Capacidad de síntesis
o Perspectiva estratégica
3.2 Analista
Realiza tareas de creación y análisis de sistemas informáticos.
3.2.1 Funciones
o Desarrollar la información obtenida mediante la informática
o Investigar, perfeccionar, idear o desarrollar conceptos y métodos informáticos,
trabajando en su aplicación o asesoramiento.
o Realizar investigaciones acerca de los principios y métodos informáticos.
o Desarrollar y mantener los soportes lógicos y programas, y la estructura y sistemas de
datos
o Mantener actualizados y en buen funcionamiento las bases de datos y los sistemas de
gestión de datos par garantizar la validez e integridad de la información registrada.
o Analizar las necesidades de los usuarios y determinar programas, configuraciones y
soportes lógicos.
o Idear, desarrollar y mantener, y perfeccionar los programas lógicos que rigen el
funcionamiento general de las computadoras.
o Crear y desarrollar lenguajes informáticos.
3.2.2 Competencias
o Conocimientos de programación
o Conocimientos de tecnologías informáticas, mercado de hardware y software
o Habilidades para la obtención y análisis de información y para enfocar la atención
o Interés por la Innovación
3.3 Programador
Se ocupa del desarrollo y mantenimiento de sistemas.
3.3.1 Funciones
o Elaborar, desarrollar, ensayar y mantener en buen estado los soportes lógicos y/o los
programas informáticos, para cubrir las necesidades de los usuarios.
o Determinar en colaboración con los Analistas informáticos los objetivos perseguidos
con los distintos programas, la naturaleza y fuentes de datos que habrá que introducir
y ordenar, y establecer los controles necesarios.
o Elaborar gráficos y diagramas para describir y determinar en que secuencias habrá
que proceder al registro y tratamiento de los datos.
o Desarrollar y proporcionar documentación detallada sobre los programas
informáticos, utilizando par ello diversos lenguajes de programación.
o Ensayar los programas elaborados para eliminar o corregir deficiencias o errores.
o Mantener actualizados los programas.
3.3.2 Competencias
Las mismas que las del analista:
o Conocimientos de programación
o Conocimientos de tecnologías informáticas, mercado de hardware y software
o Habilidades para la obtención y análisis de información y para enfocar la atención
o Interés por la Innovación
3.4 Operador
Es el personal dedicado a la operación del sistema.
3.4.1 Funciones
Operador de Ordenador es quien se encarga del manejo de los distintos dispositivos del
ordenador. Interpreta y desarrolla las órdenes recibidas para su explotación correcta,
controla la salida de los trabajos y transmite al Gestor de Sistemas las anomalías físicas o
lógicas observadas.
Operador de Terminal es quien realiza las funciones de toma o verificación de datos a
través de terminales inteligentes, debiendo controlar en modo conversacional los formatos
y códigos requeridos por los programas correspondientes.
3.5.1 Funciones
o Definición de necesidades de equipo y software de base de datos
o Mantenimiento y especificación de la estructura de la base de datos
o Preparación de definiciones normalizadas de datos
o Análisis de rendimiento de la base de datos
o Implementación de permisos de acceso
o Definición de procedimientos de seguridad
Índice
1.- INTRODUCCIÓN................................................................................................................................ 2
2.1 Funcionalidad......................................................................................................................... 7
2.1.1 Control de Ejecución de Trabajos........................................................................................................7
2.1.1.1 Interbloqueos....................................................................................................................................8
2.1.1.2 Sincronización de Procesos ...........................................................................................................9
2.1.1.3 Subsistema de Entrada de Trabajos (JES - Job Entry Subsystem)..........................................10
2.1.1.3.1 Mecanismos de Control del JES........................................................................................................12
2.1.2 Control de Incidencias en Trabajos ...................................................................................................13
2.1.2.1 Control de Entrada de Trabajo ...................................................................................................13
2.1.2.2 Asignación de Clases....................................................................................................................13
2.1.2.3 Prioridades de Selección y de Ejecución..................................................................................14
2.1.2.4 Comunicación con el Operador................................................................................................14
2.1.2.5 Ejecución Condicional .................................................................................................................15
2.1.2.6 Rearranque de Trabajos...............................................................................................................15
1.- Introducción
JCL (Job Control Language) es un lenguaje para la descripción, organización y ejecución
de trabajos en el sistema MVS, OS/390 y sistemas operativos (SO) tipo VSE, que se ejecutan
en los servidores de gran tamaño (mainframes) tipo S/390 de IBM. Los SOs asignan su
tiempo y recursos en función de la cantidad total de trabajos que han sido iniciados en el
ordenador. Los trabajos, por su turno, se dividen en entidades menores llamadas pasos o
unidades individuales que se ejecutan en background (también llamados batch o lote) sin
necesidad de ningún tipo de intervención por parte del operador. Adicionalmente, el SO
maneja solicitudes de trabajo por parte del usuario del tipo interactivas (foreground).
Generalmente, los trabajos interactivos tienen prioridades más altas que los del tipo batch.
Las sentencias (statements) JCL especifican, principalmente, el conjunto de datos de
entrada (archivos) que deben de ser usados, el conjunto de datos de salida adonde
residirá el resultado del trabajo, los recursos necesarios para llevar a cabo la tarea, y los
programas utilizados. El conjunto mismo de sentencias JCL relacionado con el trabajo es
almacenado en un fichero y puede ser iniciado de manera interactiva. Los sistemas MVS y
OS/390 disponen de un interfaz interactivo tipo menú, el ISPF, para inicio y gestión de
trabajos.
En MVS y OS/390, la parte del SO que maneja JCLs es llamada JES (Job Entry Subsystem –
Subsistema de Entrada de Trabajos), que existe en dos versiones: JES2 y JES3, con
capacidades adicionales para la gestión de los trabajos.
Donde:
*$End Job
*$Run program
$Start Job - Inicio de un
trabajo.
Sin embargo, los trabajos todavía eran encaminados de manera serial. Si la tarea consistía
en imprimir un fichero, todo el sistema se paraba y dedicaba sus recursos a ello, mientras
otros programas, algunas veces de más rápido procesamiento, se quedaban en la cola
esperando su turno. Al SO, entonces, se le capacitó para no realizar la impresión en la
impresora directamente, mas enviar todos los comandos de impresión a un fichero para
ulterior procesamiento, permitiendo al mainframe trabajar más rápido y optimizar el uso de
los recursos. Este sistema se pasó a llamar SPOOLING (Simultaneous Peripheral Output On
Line).
A partir de entonces, sucesivas mejoras fueran incorporadas a los sistemas operativos,
como las que se destacan a seguir:
Protección de memoria - El hardware debería detectar cualquier intento de acceder a
la zona donde está el monitor, abortar el trabajo y ceder el control al monitor.
Temporizador - Impide que un trabajo monopolice el sistema. Una vez expirado el
tiempo, se produce una interrupción y el control vuelve al monitor.
Instrucciones privilegiadas - Sólo las puede ejecutar el monitor (por ejemplo las
instrucciones de E/S). Si el hardware encuentra una instrucción privilegiada en un
programa de usuario, se producirá una interrupción y el control volverá al monitor.
Interrupciones - Permiten ceder y retomar el control.
Origen de las instrucciones Instrucciones JCL junto al trabajo Órdenes introducidas desde el
terminal
2.1 Funcionalidad
TRABAJO
Estado Concepto
En ejecución Cuando está utilizando la CPU.
2.1.1.1 Interbloqueos
Si un proceso se encuentra indefinidamente en estado de espera por algún recurso que
está asignado a otro proceso, que a su vez está esperando por algún recurso asignado al
primer proceso se produce una situación de interbloqueo o deadlock. Esta situación es
generalizable a más de dos procesos. Por ejemplo, en el caso de tres procesos, se puede
dar la siguiente situación de deadlock: el proceso A tiene asignado el recurso 1 y espera
por el recurso 2, el proceso B tiene asignado el recurso 2 y espera por el recurso 3, y el
proceso C tiene asignado el recurso 3 y espera por el recurso 1.
Algunos mecanismos teóricos para evitar los deadlocks son los siguientes:
Prohibir que un proceso espere por un recurso si ya tiene algún otro recurso asignado.
Esto implica que cuando se asigna a un proceso un recurso (de los que se tienen que
asignar en exclusiva a un proceso), es necesario asignarle todos los recursos del sistema
que implican exclusividad.
Exigir que los recursos se soliciten en un orden determinado. Las situaciones de
deadlock que se han descrito anteriormente no se pueden dar si todos los procesos
tienen que solicitar los recursos 1, 2 y 3 en ese orden.
Exigir que los procesos declaren previamente el número total de recursos que precisan.
De este modo, hasta que no obtienen todos los recursos que necesitan no comienza su
ejecución.
Estos mecanismos son muy restrictivos respecto al uso de los recursos y no se emplean en la
práctica.
La forma más simple de evitar los deadlocks es prohibir que un proceso espere
indefinidamente por un recurso. Para realizar esto, se establece un periodo de tiempo
máximo de espera (llamado “time out”).
Una vez transcurrido este tiempo, el proceso es cancelado por el sistema operativo,
liberando los recursos que tuviera asignados. Este mecanismo es aceptable en la mayoría
de los casos, solamente si los deadlocks se producen con mucha frecuencia o si existen
procesos críticos que no deben ser cancelados, tendría que emplearse alguna técnica
más sofisticada.
Algunos sistemas operativos vigilan cada cierto tiempo si existe algún deadlock, y cuando
lo detectan cancelan a alguno de los procesos implicados, aunque no se haya alcanzado
el tiempo máximo de espera. Esta técnica es compatible con la del time out, de hecho la
cancelación por time out se puede producir aunque no exista una situación de deadlock,
por ejemplo cuando un recurso deja de estar disponible por algún error físico o porque se
haya determinado un tiempo máximo de ejecución para un proceso.
El JES analiza las instrucciones del trabajo, sustituye las llamadas a procedimientos
por las instrucciones correspondientes, y convierte el texto obtenido a un formato
Fase de conversión
interno, y posteriormente lo almacena en un fichero de SPOOL (Simultaneous
Peripheral Operations OnLine).
En esta fase se gestionan todos los resultados imprimibles que haya producido un
trabajo durante su ejecución. Estos resultados son ficheros de salida que el usuario
ha especificado en el JCL que deben imprimirse, aunque no necesariamente en
una impresora, como veremos a continuación. También se pueden tratar como
resultados imprimibles los mensajes que haya emitido el sistema operativo con
Fase de salida
relación al trabajo durante su ejecución.
Cuando el trabajo termina, el JES analiza la clase de salida asignada a los
resultados imprimibles y las opciones especificadas para los dispositivos físicos (por
ejemplo, un formulario especial o un conjunto de caracteres determinado para la
impresora), agrupa dichos resultados para que estén juntos los que tengan las
mismas características, y los deja en la cola de salida.
Las impresoras del ordenador tienen asignada una o varias clases de salida. Para
que un resultado pueda imprimirse por una impresora determinada deben
coincidir la clase asignada a la impresora y la clase de salida del resultado. De
este modo se van seleccionando los resultados de la cola de salida.
Es necesario distinguir entre clase del trabajo y clase de salida. En el sistema
operativo MVS ambas clases se designan mediante letras, pero no tienen ninguna
relación. La clase del trabajo sirve para que los iniciadores lo seleccionen para
comenzar su ejecución. Sin embargo, la clase de salida se asigna
Fase de impresión independientemente a cada resultado, por tanto puede haber varias clases de
salida en el mismo trabajo (por ejemplo, un fichero de salida se imprime en una
impresora láser local y otro se imprime en una impresora remota) y estas clases de
salida sirven para indicar por qué impresora concreta o grupo de impresoras se
debe imprimir el resultado.
Por otra parte, existen productos software que permiten extraer resultados de la
cola de salida y escribirlos en ficheros en disco, en vez de enviarse a la impresora.
Estos productos actúan coordinados con el JES, de modo que se puede asignar
una clase de salida determinada para realizar este proceso de "impresora virtual".
Además, los comandos de JES permiten realizar este proceso manualmente, es
Cuando termina el proceso de salida e impresión, el JES libera todo el espacio del
Fase de borrado (purge) SPOOL que estaba asignado al trabajo, y emite un mensaje al operador indicando
esta circunstancia.
que a lo largo del día suelen variar estos parámetros conforme varía el número y la clase
de trabajos que se procesan.
2.2.1.2 Comentarios
//* ESTA ES UNA LÍNEA DE COMENTARIO
Un comentario contiene //* en las columnas de 1 a 3, podiendo las demás columnas ser
contener cualquier tipo de comentario.
NITE 2
Todo trabajo puede ser programado para ejecución nocturna o en fines de semana a
través de la sentencia //*MAIN CLASS=NITE o //*MAIN CLASS=WEEKEND
La siguiente tabla relaciona las limitaciones de recurso impostas pela Planificación de
Trabajos:
Índice
1.- DOCUMÁTICA.................................................................................................................................. 3
1.1 Concepto................................................................................................................................ 3
2.2 La indización........................................................................................................................... 4
2.2.1 Indización por asignación..............................................................................................................5
2.2.2 Indización por derivación o automática ....................................................................................5
2.2.2.1 Eliminación de palabras vacías.........................................................................................6
2.2.2.2 Lematización .........................................................................................................................6
2.2.2.3 Ponderación..........................................................................................................................6
2.2.3 Traducción a lenguaje documental............................................................................................6
2.2.3.1 El tesauro ................................................................................................................................7
4.4 Indexación............................................................................................................................ 12
4.8 Seguridad/Confidencialidad/Accesos.............................................................................. 14
1.1 Concepto
La Documentación Automática /Documática es la disciplina que se ocupa de la
investigación y aplicación de las Tecnologías de la Información en todos los ámbitos de las
Ciencias de la Documentación. El proceso electrónico de documentos se refiere al
tratamiento de información no estructurada (imágenes, texto, gráficos, etc) en forma
digital.
El material de trabajo incluye la información generada y requerida durante el proceso
documental en el marco de los sistemas de información, en un contexto que integra los
medios automáticos, el ser humano y las interacciones entre ambos. La información está
en formato digital (documentos digitales) o bien procede del escaneo de documentos
(documentos digitalizados).
La definición se extiende a todos aquellos dispositivos, sistemas y tareas dedicados a
conseguir la máxima eficacia en la generación, archivo, circulación y, en su caso,
eliminación de cualquier tipo de documento.
La Documentación Automática/Documática ofrece dos vertientes:
Una, la investigación y desarrollo de nuevas aplicaciones, en combinación con otras
ciencias como la Informática, las Ciencias Cognitivas o las Ciencias de la Organización y la
Gestión. El objetivo es obtener nuevas aplicaciones o herramientas informáticas para el
tratamiento y recuperación de la información, así como métodos para la implantación,
gestión y control de estas aplicaciones o herramientas dentro de diferentes tipos de
organizaciones.
Otra, la utilización práctica de las aplicaciones, esto es, aplicación de las herramientas al
entorno o contexto que se precise, de forma que se optimicen los procesos documentales
e informativos del mismo.
Ambas se encuentran relacionadas, ya que la investigación se beneficia y alimenta de las
experiencias obtenidas en la aplicación de las herramientas que desarrolla, y a su vez las
nuevas herramientas permiten mejorar y adecuar cada vez más los procesos
documentales que se desarrollan en las unidades de información, al mismo tiempo que
intervienen, en numerosas ocasiones, en los procesos de organización y gestión de las
mismas. La Documentación Automática/Documática se relaciona con la Ciencia de la
Documentación, con la Informática y con la Ciencia de la Información.
2.2 La indización
La indización es el proceso de extraer los términos que muestran el contenido de un
documento, adecuándolos a un lenguaje natural o documental para su posterior
recuperación. Consta de dos fases: la extracción de conceptos o palabras clave, y la
traducción y clasificación usando un lenguaje documental.
Se entiende por término aquella palabra o expresión que se utiliza para representar un
concepto o noción. Los términos de indización proporcionan una vista lógica del
documento y pueden obtenerse por varios métodos:
x por asignación: mediante indización intelectual con utilización de un lenguaje
documental externo, como por ejemplo un tesauro
x por derivación: mediante indización automática
x la lematización
2.2.2.2 Lematización
Se reducen las palabras a su forma de raíz más común, de esta manera se fusionan
palabras relacionadas.
2.2.2.3 Ponderación
A los términos se les puede asignar un valor numérico basado por ejemplo en su
distribución estadística, o sea, la frecuencia con la que los términos aparecen en
documentos, colecciones de documentos, o en subconjuntos de colecciones de
documentos, tales como documentos considerados relevantes en una búsqueda o
interrogación.
2.2.3.1 El tesauro
Desde el punto de vista de su estructura, el tesauro es un vocabulario controlado y
dinámico de términos que tienen entre sí relaciones semánticas y genéricas y que se
aplica a un campo particular del conocimiento. Desde el punto de vista funcional, un
tesauro es un instrumento de control de la terminología utilizado para trasladar en un
lenguaje más estricto (lenguaje documental) el lenguaje natural utilizado en los
documentos.
Así pues, el tesauro es un diccionario que muestra la equivalencia entre los términos del
lenguaje natural y los normalizados y preferentes del lenguaje documental. Dicha
ambivalencia se expresa en la recomendación ISO/DIS 5963, en la que dentro del tesauro
quedan incluidos los términos preferentes o descriptores, no preferentes o lead-in terms
(que son aquellos términos que no debemos asignar en la indización). Estas relaciones
explícitas facilitan las posibilidades de indización de los documentos y la formulación de las
preguntas por parte del usuario, dado que la acepción de los términos no admitidos remite
a los descriptores.
Se pueden aplicar distintos tesauros a la misma base de datos documental.
Descriptores
Se llama descriptores a los términos retenidos en un tesauro con objeto de llevar a cabo la
indización de documentos. Son términos o símbolos formalizados y homologados en un
tesauro y empleados para representar sin ambigüedad los conceptos retenidos en los
documentos y en las consultas documentales.
Relación entre descriptores
El tesauro o diccionario de descriptores es un conjunto predefinido de palabras clave que
muestran las siguientes relaciones:
1. Relaciones de equivalencia o preferencia
2. Relaciones Jerárquicas
3. Relaciones asociativas o de afinidad:
x Sinónimos y antónimos.
x Relación genética
x Conceptos coexistentes
x Causa y efecto
x Relaciones instrumentales
x Relaciones materiales
x Similitud
Presentación formal de palabras
Una vez se ha decidido retener un término dado en el tesauro, hay que verificar que éste
exprese lo más exactamente posible el sentido deseado:
Ortografía. Debe seguirse la norma más aceptada.
4.2 Captura
Todo sistema documental precisa herramientas que permitan incorporar documentos al
repositorio. Esta fase de captura debe integrar varios conceptos:
x Tecnologías del “document imaging” o del escaneado. La transformación de
documentación en papel a formato digital sigue siendo una necesidad para
muchísimas empresas. Las fuentes de información crecen y el sistema documental
de una empresa debe recogerlas todas y anticipar futuras demandas.
x Conversión es el término comúnmente utilizado para definir la transformación de un
documento de datos (procesador de textos, hoja de cálculo, etc.) en otro de
imagen no editable. Se garantiza así la disponibilidad sin disponer de la aplicación
que lo creó.
x Importación es el concepto contrario, y se refiere a la incorporación de los
documentos en su formato nativo al sistema documental, asegurando que éste
disponga de los visores necesarios o asociados a las aplicaciones de origen.
4.4 Indexación
(No confundir con indización o creación del índice en recuperación de la información)
El objetivo de un sistema documental no es archivar documentos, sino permitir un acceso
rápido y certero a aquellos que se necesitan o que pueden aportar valor y conocimiento
a quien los busca.
Esta premisa da la medida de la importancia de los conceptos de indexación,
categorización y búsqueda, que tienen una estrechísima interrelación entre sí, aunque su
implementación será radicalmente diversa en virtud de las necesidades y procesos de
cada empresa.
La indexación es la capacidad del sistema para generar directorios ordenados de los ítems
(documentos) disponibles en el repositorio. Se trata de tener la capacidad de ordenar los
documentos o sus referencias bajo criterios diferentes y de forma jerarquizada para facilitar
su utilización efectiva.
Hay tres modos de indexación primarios, que también pueden ser combinados entre sí, y
existen poderosas herramientas informáticas que permiten la automatización de los
procesos de indexación.
Por campos. Se asigna a cada documento una ficha o etiqueta que lo define según uno o
varios criterios. Las búsquedas se realizan filtrando uno o más de esos criterios para afinar
los resultados entregados. Se trata, en definitiva, de asignar palabras clave a cada
categoría, y en la construcción de esa arquitectura de palabras clave debe alcanzarse un
equilibrio entre robustez y flexibilidad.
Por texto completo. Realizar las búsquedas sobre el conjunto del contenido del
documento tiene como ventajas la práctica eliminación de los costes de indexación y de
los errores generados en ese proceso, así como la facilidad y universalidad del uso. Por el
contrario, exige una cierta habilidad en la búsqueda y ningún sistema puede garantizar al
ciento por ciento la correspondencia absoluta entre los resultados entregados y la
intención real del solicitante. La indexación por texto exige la aplicación de un OCR
(sistema de reconocimiento de caracteres) para los documentos escaneados.
Por estructuras de directorios. Es la correlación en digital de un archivo convencional en
papel, con la ventaja evidente de permitir una mejor estructura jerárquica y lógica. Cada
4.5 Búsqueda
Los requisitos que deben regir cualquier sistema de búsqueda son Rapidez, concordancia
y jerarquización. Lógicamente, la localización está directamente relacionada con la
estructura de indexación aplicada.
La rapidez depende en gran medida de la disponibilidad de hardware, de infraestructuras
de telecomunicaciones adecuadas, y también de la arquitectura interna del sistema.
La concordancia de los resultados obtenidos con la intención de la búsqueda
La jerarquización: las respuestas entregadas por el sistema a cualquier consulta han de
poder ordenarse por niveles de concordancia, para asegurar al usuario una rápida criba
de los documentos que realmente le interesan.
La homogeneidad respecto a las plataformas informáticas utilizadas por los usuarios.
En los procesos de búsqueda, y muy especialmente en los realizados por texto completo,
el sistema debe observar una serie de herramientas que ya empiezan a ser de uso común:
x Lógica Fuzzy (difusa). Bien por errores en el OCR, bien por problemas al teclear,
bien por cualquier otro motivo, una palabra aplicada en la búsqueda puede estar
presente con alguna variación en uno o más documentos. La lógica “fuzzy”
interpreta esas pequeñas variaciones y ofrece como buenos los resultados en los
que el nivel de variación es mínimo. Los sistemas más completos permiten incluso
regular ese nivel de variación o de tolerancia.
x Comodines. El más utilizado en todos los entornos informáticos es el asterisco. Su
inclusión en algún punto de la cadena de caracteres solicitados deja al sistema
libertad para sustituirlo por cualquier letra o dígito que aparezca. Por ejemplo,
delimitar una fecha como “19**” permitiría obtener todos los documentos entre
1900 y 1999.
x Operadores booleanos. Los principales son AND, OR y NOT, y permiten establecer
variables lógicas que delimiten la búsqueda. AND obliga a que se den los dos
términos comparados; OR hace que se publiquen los documentos que contienen
al menos uno de los dos términos; NOT establece la búsqueda sobre uno pero
suprimiendo todos los que contengan el segundo.
x Proximidad. Permite delimitar la cercanía entre dos términos dentro del documento,
para evitar que aparezcan documentos que contienen las palabras solicitadas
pero sin relación entre ellas.
4.7 Colaboración
Directamente entroncado con el control de versiones está el uso cada vez mayor de las
opciones de colaboración que la informática y las redes de telecomunicaciones permiten.
Los procesos de trabajo tienden hacia el teletrabajo y la interacción entre departamentos.
Todo sistema documental debe adaptarse a los procesos naturales de la actividad de una
empresa, y si esos procesos son colaborativos, la estructura documática debe estar
preparada para ello. En estos casos hay que permitir múltiples accesos concurrentes a un
mismo documento, disponer de opciones de anotaciones, vincular el sistema documático
con el de mensajería interna y garantizar la disponibilidad remota por Internet.
4.8 Seguridad/Confidencialidad/Accesos
La primera exigencia en cuanto a seguridad es la referente a las incursiones no deseadas
dentro del sistema documático, aunque esa protección no dependa directamente de
éste.
Cuando se habla de sistemas documentales, seguridad viene a ser sinónimo de
confidencialidad, o de la estructura creada para mantener esa confidencialidad y
definirla documento a documento si es preciso. Los sistemas de privilegios (o permisos de
acceso) deben responder fiel y detalladamente a la estructura organizativa y de toma de
decisiones de la empresa. Hacer que todos los documentos estén disponibles para cada
uno de sus posibles usuarios pero que ninguno sea visto por quien no debería, es un desafío
que obliga a un esfuerzo durante la implementación del sistema y a mantener la tensión
en el día a día de la introducción de contenidos al sistema, aunque también en este
campo se pueden automatizar muchos procesos.
Los sistemas documentales digitales permiten cotas de seguridad muy superiores a las de
los archivos tradicionales y sin necesidad de encerrar bajo una misma llave los
documentos que son secretos, los que son confidenciales para algunos y los que un día
fueron confidenciales pero que ahora podrían ser útiles para muchos. El embargo sobre
documentos debe tener una caducidad programable.
4.10 Almacenamiento
Es todo un subsector dentro del campo de las tecnologías de la información. Las
tecnologías de almacenamiento evolucionan continuamente y son cada vez más seguras,
rápidas y capaces. En cualquier caso, la automatización de los procesos de
almacenamietno es imprescindible, igual que el uso de soportes WORM (Write Once Read
Many, o guardar una vez y leerlo muchas) para el archivo definitivo.
5.1.3 Consultas
Las consultas en un sistema de Recuperación de Información SRI se realizan en una serie
de pasos:
¾ Definición de las necesidades de información del usuario.
¾ Selección y ordenación de las fuentes a utilizar.
x Excesivamente estricto con los operadores. Consideremos la consulta A and B and C and
D and E. Un documento indizado por todos menos uno de los anteriores términos no sería
recuperado como respuesta a tal consulta, aunque quizás el usuario estuviera interesado
en él. De forma similar, para una consulta de la forma A or B or C or D or E, un documento
indizado por alguno de esos términos sería considerado igualmente importante que uno
indizado por varios o todos ellos.
x El modelo booleano puro no puede ordenar los resultados por relevancia. Durante el
proceso de indización se decide si un documento es relevante respecto a un término de
indización dado, en función de si ese término está presente en el documento o no. Por
tanto da lo mismo que un documento contenga una o muchas veces las palabras de la
consulta. No permite capturar la incertidumbre presente en la toma de decisiones de
indización.
x Tampoco permite asignar pesos a los términos de la consulta de manera que el usuario
pueda indicar si la presencia o ausencia de un determinado término es más importante
que la de otro.
o Vectorial generalizado
o Redes neuronales
o Redes bayesianas
5.4.4 Metabuscadores
Los metabuscadores, en realidad, no son buscadores. Lo que hacen es realizar búsquedas
en auténticos buscadores, analizan los resultados de la página, y presentan sus propios
resultados. No suelen ser bienvenidos por los buscadores, ya que el buscador pone el
dinero para operar el servicio, pone los contenidos que utilizará el metabuscador, y no
percibe nada a cambio. Al eliminar la publicidad, no se obtienen ingresos. Solo gasto y
pérdida de visitantes que utilicen este servicio de búsqueda.
Índice
1.- SEGURIDAD EN REDES 3
1.1 Conceptos de Seguridad 3
1.2 Servicios de Seguridad 3
1.3 Amenazas 4
1.3.1 Relación entre Amenazas y Servicios de Seguridad 5
1.4 Mecanismos de seguridad 5
1.5 Comunicaciones seguras sobre redes inseguras 6
1.6 Seguridad en Internet 7
1.6.1 Seguridad en correo electrónico 10
1.6.2 Seguridad en comercio electrónico 14
2.- CONTROL DE ACCESOS 16
2.1 Mecanismos de identificación y autenticación 17
2.1.1 Contraseña 17
2.1.2 Constantes biométricas 17
2.1.3 Tarjetas inteligentes 17
2.1.4 Encaminamiento y direcciones de red 17
2.1.5 Dominios lógicos 18
2.2 Diccionario de seguridad 18
2.3 Kerberos 18
3.- TÉCNICAS CRIPTOGRÁFICAS 19
3.1 Algoritmos simétricos 20
3.1.1 DES 20
3.1.2 DES Múltiple 21
3.1.3 RC-2 y RC-4 21
3.1.4 IDEA 21
3.1.5 Rijndael 22
3.1.6 Otros algoritmos 22
3.2 Algoritmos asimétricos 22
3.2.1 RSA 23
3.2.2 El Gamal 23
3.2.3 Estándares de criptografía de clave pública PKCS 24
3.3 Sistemas híbridos 25
4.- CRIPTOANÁLISIS 26
5.- MECANISMOS DE FIRMA DIGITAL 26
5.1 Función resumen (hash) 27
5.1.1 MD (Message Digest) 27
5.1.2 SHA y SHA-1 28
5.1.3 SHS 28
5.2 Certificación de claves 29
1.3 Amenazas
Algunas de las amenazas sobre el sistema informático se describen a continuación:
– Captura de información en tránsito
La información permanece inalterada, pero se compromete su privacidad. Afecta al
estado de CONFIDENCIALIDAD de la información.
– Modificación de información en tránsito
La información es sustituida por otra antes de la entrega al destinatario. Afecta al
estado de INTEGRIDAD de la información.
– Simulación de identidad
La información es encaminada a una entidad (usuario, aplicación informática o
servidor) que se hace pasar por el destinatario deseado. Afecta al estado de
AUTENTICACIÓN de la entidad.Esta puede ser:
– Suplantación de identidad
Falsificación de identidad
– Denegación de acceso
Una entidad con derechos de acceso a la información no puede acceder a ésta.
Afecta al estado de DISPONIBILIDAD de la información.
1.5.1 Cifrado
El cifrado puede hacerse mediante el uso de criptosistemas simétricos o asimétricos y
puede aplicarse extremo a extremo o a cada enlace del sistema de comunicaciones. El
mecanismo de cifrado soporta el servicio de confidencialidad de los datos y puede
complementar a otros mecanismos para conseguir diversos servicios de seguridad.
1.5.5 Autenticación
El intercambio de autenticación tiene dos grados:
x autenticación simple: el emisor envía su identificador y una contraseña al receptor, el
cual los comprueba.
x autenticación fuerte: utiliza propiedades de los criptosistemas de clave pública. Un
usuario se autentifica mediante su identificador y su clave privada. Su interlocutor
debe verificar que aquel, efectivamente, posee la clave privada, para lo cual debe
obtener, de algún modo, la clave pública del primero. Para ello deberá obtener su
certificado. Un certificado es un documento firmado por una Autoridad de
Certificación (una tercera parte de confianza) y válido durante el periodo de tiempo
determinado, que asocia una clave pública a un usuario.
El mecanismo de intercambio de autenticación soporta el servicio de autenticación de
entidad par.
E (M) = C
Inversamente, la función de descifrado, D, se aplica a C para producir M:
D ( E(M) ) = M
Un algoritmo criptográfico es una función matemática utilizada para el cifrado y
descifrado de mensajes. Generalmente, hay dos funciones relacionadas: una para el
cifrado y otra para el descifrado.
Flujo normal
Fuente Destino
Interrupción
Intercepción
Modificación
Fabricación
x Reactuación: uno o varios mensajes legítimos son capturados y repetidos para producir
un efecto no deseado, como por ejemplo ingresar dinero repetidas veces en una
cuenta dada.
1.8.2.2.3 Implementación
1.8.2.2.4 Conclusión
A diferencia de S-HTTP, que es un protocolo substitutivo de HTTP, SSL extiende su soporte a
otros protocolos habituales en Internet. Esta es una de las principales ventajas que aporta
este último. Mientras que S-HTTP proporciona cifrado en el nivel de aplicación (en este
caso WWW), SSL lo hace en el nivel de conexión, proporcionando un canal seguro en el
nivel de red. Por lo demás, S-HTTP y SSL pueden convivir, utilizándose uno u otro en
diferentes instantes de una transacción comercial, o incluso utilizándose simultáneamente.
El sistema es tan robusto como lo sea el menos seguro de los algoritmos que utilice. Claves
públicas cortas o claves DES o RC4 de 40 bits deben utilizarse con precaución. Estos son los
problemas que plantean las leyes de EE.UU.
La principal desventaja de SSL no estriba en sus fundamentos teóricos o implementación,
sino, fundamentalmente, la menor protección que proporcionan las versiones exportables
de los productos basados en este protocolo.
También debe tenerse especial cuidado en decidir qué autoridades de certificación y qué
certificados son fiables.
1.8.3.1.1 Objetivos
Los objetivos que persigue el desarrollo del protocolo SET son los siguientes:
1. definir un estándar único para efectuar transacciones a través de Internet,
evitando la competencia entre diferentes estándares auspiciados por distintas
empresas y consorcios.
2. este estándar debe ser similar a y compatible con los sistemas de pago mediante
tarjeta existentes en la actualidad.
3. proveer la autenticación de todas las partes implicadas en una transacción.
4. mantener la confidencialidad de la información intercambiada, de forma que
cada parte no tenga acceso a más información que la estrictamente necesaria
para llevar a cabo su función en la transacción.
5. mantener la integridad de la información implicada en los pagos.
6. ser independiente de plataformas y navegadores.
1.8.3.1.3 Funcionamiento
Veamos como se desarrollaría un caso práctico de comercio electrónico:
1. el cliente, tenedor de una tarjeta (siguiendo con nuestro usuario imaginario, A)
accede al comercio y navega por él, seleccionando una serie de productos.
2. A rellena una orden de compra, calculándose el monto total de la operación
(incluyendo los gastos de envío).
3. A selecciona el método de pago (tarjetas Visa, MasterCard, American Express...).
4. A envía su orden de pago con el método de pago elegido al comercio.
5. el comercio solicita autorización por parte del banco de A para llevar a cabo la
transacción.
6. el comercio le envía a A la confirmación (en forma de factura pro-forma, por
ejemplo) de la compra.
7. el comercio envía los bienes comprados a A.
8. el comercio solicita a su banco el abono de los bienes comprados.
La confidencialidad e integridad de los mensajes entre las partes implicadas en el modelo
se logra utilizando mecanismos de clave secreta (DES) y de clave pública (RSA). Los
mensajes son cifrados con claves DES de 56 bits. La clave DES se genera aleatoriamente,
es cifrada utilizando el algoritmo RSA con la clave pública del destinatario (cuya longitud
es 1024 bits) y añadida al mensaje. Esto es lo que se conoce como “sobre digital” (digital
envelope).
Se utilizan también firmas digitales para garantizar la integridad de los mensajes, junto con
la autenticación del remitente del mensaje. Mediante una función resumen se calcula un
resumen de 160 bits, que a continuación es cifrado con la clave privada del remitente, y
enviada junto con el resto del mensaje. SET emplean dos pares distintos de claves
asimétricas: uno para el cifrado y descifrado de las claves simétricas y otro par para
funciones de firma digital.
La autenticación de las partes queda encomendada al uso de certificados. Estos
certificados son emitidos por las consiguientes autoridades, las cuales deben cumplir una
serie de requisitos de confianza por parte de los actores de la transacción. Para cada uno
de los actores debe emitirse un certificado.
La emisión y verificación de los certificados está fundamentada en una jerarquía de
confianza, con delegación de mayor a menor nivel en el que los certificadores a nivel
mundial van certificando a nuevas autoridades distribuidas por zonas geopolíticas, países,
etc. El seguimiento de este árbol de confianza hacia arriba permite asegurar la
autenticidad de un certificado. Los mecanismos de aceptación y verificación de
certificados deben ir empotrados en los programas.
El comprador obtiene sus certificados de la entidad financiera que emite la tarjeta con la
que opera. El comerciante los obtiene de la entidad financiera con la que ha firmado un
contrato de adhesión para aceptar las diferentes tarjetas de crédito o débito emitidas por
dicha entidad.
El banco o entidad financiera del comerciante debe poseer una certificación de nivel
superior para operar a su vez como autoridad certificadora y emitir certificados para los
1.8.3.1.4 Conclusiones
El protocolo SET es la respuesta de las grandes compañías mundiales de medios de pago
al desafío del comercio electrónico. Cuentan como aliados a los grandes del mundo de la
informática. Como no podía ser menos, resuelve de forma completa los problemas de
autenticación de las partes, confidencialidad e integridad de los datos y no repudiación.
2.1.1 Contraseña
La contraseña es un conjunto de caracteres que valida los accesos de un usuario a los
servicios del sistema de información. Es un mecanismo de salvaguarda cuya gestión debe
basarse en las siguientes ideas:
x Contraseñas individuales y seleccionadas por el usuario
x Confirmación de contraseñas
x Registro de contraseñas anteriores para evitar repetición
x Almacenamiento separado de contraseñas y datos
2.3 Kerberos
Kerberos es un sistema de autenticación diseñado en el MIT para su utilización sobre redes
inseguras, como, por ejemplo, Internet. El sistema de autenticación Kerberos fue diseñado
con dos propósitos, proveer autenticación y distribuir claves. El sistema Kerberos actúa
como autoridad de certificación que garantiza una relación correcta entre claves y
personas.
Esta autenticación se lleva a cabo usando acreditaciones (tickets). Estas acreditaciones
son sólo válidas durante un periodo de tiempo determinado y en lo que se conoce como
realm (conjunto de máquinas y usuarios, generalmente, coincide con una organización).
Cada usuario (o también un proceso) es conocido como principal. Este principal conecta
con el Centro de Distribución de Claves (Key Distribution Center, KDC) del realm para
solicitar la acreditación que usará para hablar con el Servidor de Concesión de
Acreditaciones (Ticket Granting Server, TGS) del realm. El KDC verifica la identidad del
principal y otorga la acreditación. Si esta acreditación es válida, el TGS otorga una nueva
acreditación al principal para comunicarse privadamente con un servidor S situado dentro
del realm (con una clave conocida por el principal y el servidor S).
Las principales debilidades de Kerberos son las siguientes:
x la autenticación del propio servidor Kerberos.
x Kerberos es un sistema diseñado para autentificar a usuarios finales ante diferentes
servidores, no para autentificar sistemas ante otros sistemas.
x la gran mayoría de los sistemas no disponen de un área segura para almacenar las
claves (ya que esta deben ser almacenadas en claro en el paso inicial de
obtención de una acreditación).
a c a
E(k,a) D(k’,a)
k k'
Modelo de criptosistema
El emisor emite un texto en claro, que es tratado por un cifrador con la ayuda de una
cierta clave, k, creando un texto cifrado (criptograma). Este criptograma llega al
descifrador a través de un canal de comunicaciones (como hemos dicho antes, para
nosotros este canal será habitualmente algún tipo de red). El descifrador convierte el
criptograma de nuevo en texto claro, apoyándose ahora en otra clave, k´(veremos más
adelante que esta clave puede o no ser la misma que la utilizada para cifrar), y este texto
claro ha de coincidir con el emitido inicialmente para que se cumplan los principios
básicos de la criptografía moderna. En este hecho radica toda la importancia de los
criptosistemas.
Es obvio, a la vista de lo expuesto anteriormente, que el elemento mas importante de todo
el criptosistema es el cifrador, que ha de utilizar el algoritmo de cifrado para convertir el
texto claro en un criptograma. Usualmente, para hacer esto, el cifrador depende de un
parámetro exterior,llamado clave de cifrado (o de descifrado, si hablamos del descifrador)
que es aplicado a una función matemática irreversible (al menos, computacionalmente):
no es posible invertir la función a no ser que se disponga de la clave de descifrado. De
esta forma, cualquier conocedor de la clave(y, por supuesto, de la función), será capaz
de descifrar el criptograma, y nadie que no conozca dicha clave puede ser capaz del
descifrado, aun en el caso de que se conozca la función utilizada.
El objetivo de la criptografía es el de proporcionar comunicaciones seguras (y secretas)
sobre canales inseguros. Ahora bien, la criptografía no es sinónimo de seguridad. No es
más que una herramienta que es utilizada de forma integrada por mecanismos de
complejidad variable para proporcionar no solamente servicios de seguridad, sino
también de confidencialidad.
Los primeros sistemas criptográficos utilizaban combinaciones más o menos complejas de
la técnica de rotación de los caracteres de un mensaje. La seguridad de este tipo de
3.1.1 DES
DES (Data Encryption Standard) es desde 1977 de uso obligatorio en el cifrado de
informaciones gubernamentales no clasificadas en EEUU (anunciado por el National
Bureau of Standards, USA). Este criptosistema fue desarrollado por IBM como una variación
de un criptosistema anterior, Lucifer, y posteriormente, tras algunas comprobaciones
llevadas a cabo por la NSA estadounidense, paso a transformarse en el que hoy
conocemos como DES.
DES es un sistema de clave privada tanto de cifrado como de descifrado. Posee una clave
de entrada con una longitud de 64 bits, produciendo una salida también de 64 bits, con
una clave de 56 bits (el octavo bit de cada byte es de paridad), llamada clave externa,
en la que reside toda la seguridad del criptosistema ya que el algoritmo es de dominio
publico. Cada trozo de 64 bits de los datos se desordena según un esquema fijo a partir de
una permutación inicial conocida como IP. A continuación, se divide cada uno de los
trozos en dos mitades de 32 bits, que se someten a un algoritmo durante 16 iteraciones.
3.1.4 IDEA
Xuejia Lai y James Massey, dos prestigiosos criptógrafos, desarrollaron en Suiza en 1992 el
algoritmo IDEA (International Data Encryption Algorithm), compatible con DES (para
aprovechar el gran número de equipos que utilizan este último).
Se trata de un algoritmo iterativo que trabaja sobre bloques de 64 bits utilizando claves de
128 bits. El proceso de cifrado consta de ocho fases idénticas en la que lo único que varía
es el sub-bloque de clave utilizado, terminando el cifrado con una transformación de la
3.2.1 RSA
Este sistema de clave publica fue diseñado en 1977 por los profesores del MIT
(Massachusetts Institute of Technology) Ronald R. Rivest, Adi Shamir y Leonard M. Adleman.
La seguridad de RSA radica en la dificultad de la factorización de números grandes: es
fácil saber si un numero es primo, pero es extremadamente difícil obtener la factorización
en números primos de un entero elevado, debido no a la dificultad de los algoritmos
existentes, sino al consumo de recursos físicos (memoria, necesidades hardware y tiempo
de ejecución) de tales algoritmos.
RSA se basa en la dificultad para factorizar grandes números. Las claves pública y privada
se calculan a partir de un número que se obtiene como producto de dos primos grandes.
El atacante se enfrentará, si quiere recuperar un texto claro a partir del criptograma y la
llave pública, a un problema de factorización.
Si un usuario A desea enviar información cifrada, ha de elegir aleatoriamente dos números
primos grandes (del orden de cien dígitos), p y q. Estos números se han de mantener en
secreto. La resolución de congruencias necesarias para descifrar el mensaje es
algorítmicamente inviable sin ninguna información adicional, debido al elevado tiempo de
ejecución del algoritmo.
3.2.2 El Gamal
El algoritmo ElGamal (también conocido como algoritmo Diffie-Hellman, variante ElGamal)
se basa en la dificultad de calcular algoritmos discretos en un campo finito.
Durante 1984 y 1985 ElGamal desarrolló un nuevo criptosistema de clave pública basado
en la intratabilidad computacional del problema del logaritmo discreto: obtener el valor
de x a partir de la expresión
y { ax (mod p)
es, como hemos comentado para RSA, computacionalmente intratable por norma
general.
4.- Criptoanálisis
El criptoanálisis es la ciencia opuesta a la criptografía ya que si ésta trata principalmente
de crear y analizar criptosistemas seguros, la primera intenta romper esos sistemas,
demostrando su vulnerabilidad; es decir, trata de descifrar los criptogramas. El termino
descifrar es conseguir el texto en claro a partir de un criptograma.
En el análisis para establecer las posibles debilidades de un sistema de cifrado, se han de
asumir las denominadas condiciones del peor caso: (1) el criptoanalista tiene acceso
completo al algoritmo de encriptación, (2) el criptoanalista tiene una cantidad
considerable de texto cifrado, y (3) el criptoanalista conoce el texto en claro de parte de
ese texto cifrado. También se asume generalmente el Principio de Kerckhoffs, que
establece que la seguridad del cifrado ha de residir exclusivamente en el secreto de la
clave, y no en el mecanismo de cifrado.
Aunque para validar la robustez de un criptosistema normalmente se suponen todas las
condiciones del peor caso, existen ataques más específicos, en los que no se cumplen
todas estas condiciones.Cuando el método de ataque consiste simplemente en probar
todas y cada una de las posibles claves del espacio de claves hasta encontrar la correcta,
nos encontramos ante un ataque de fuerza bruta o ataque exhaustivo. Si el atacante
conoce el algoritmo de cifrado y solo tiene acceso al criptograma, se plantea un ataque
solo al criptograma. Un caso más favorable para el criptoanalista se produce cuando el
ataque cumple todas las condiciones del peor caso; en este caso, el criptoanálisis se
denomina de texto en claro conocido. Si además el atacante puede cifrar una cantidad
indeterminada de texto en claro al ataque se le denomina de texto en claro escogido;
este es el caso habitual de los ataques contra el sistema de verificación de usuarios
utilizado por Unix, donde un intruso consigue la tabla de contraseñas (generalmente
/etc/passwd) y se limita a realizar cifrados de textos en claro de su elección y a comparar
los resultados con las claves cifradas(a este ataque también se le llama de diccionario,
debido a que el atacante suele utilizar un fichero‘diccionario’ con los textos en claro que
va a utilizar). El caso mas favorable para un analista se produce cuando puede obtener el
texto en claro correspondiente a criptogramas de su elección; en este caso el ataque se
denomina de texto cifrado escogido.
5.1.1 Requisitos
Para que una función de este tipo pueda usarse con propósitos criptográficos, se debe
cumplir una serie de requisitos:
1. la entrada puede tener cualquier longitud. Deben proveerse mecanismos para
evitar el desbordamiento (overflow).
2. la salida debe ser de longitud fija, independientemente de cual fuera la longitud
de la entrada.
3. para cualquier entrada, su resumen (o valor de hash) debe ser sencillo de calcular.
4. la función resumen debe ser de un “único sentido”, entendiendo por este
concepto que, dado f(x), debe ser computacionalmente difícil encontrar un valor y
(tal vez el mismo x) tal que f(y) = f(x).
5. es difícil encontrar dos entradas x e y, tales que H(x) = H(y) (colisiones).
5.1.5 SHS
SHS (Secure Hash Standard). Es similar a MD5 pero ligeramente más lento, aunque
presumiblemente más segura. Genera un resume de 160 bits a partir de un mensaje cuya
longitud máxima es de 2^64 bits.
6.- Intrusiones
7.- Cortafuegos
Un firewall o cortafuegos es un sistema o grupo de sistemas que hace cumplir una política
de control de acceso entre dos redes. Se utiliza para para separar - en cuanto a seguridad
se refiere - una máquina o subred del resto, protegiéndola así de servicios y protocolos que
desde el exterior puedan suponer una amenaza a la seguridad. Evidentemente la forma
de aislamiento más efectiva para cualquier política de seguridad consiste en el
Aunque, como hemos dicho antes, la arquitectura DMZ es la que mayores niveles de
seguridad puede proporcionar, no se trata de la panacea de los cortafuegos.
Evidentemente existen problemas relacionados con este modelo: por ejemplo, se puede
utilizar el firewall para que los servicios fiables pasen directamente sin acceder al bastión, lo
que puede dar lugar a un incumplimiento de la política de la organización. Un segundo
problema, quizás más grave, es que la mayor parte de la seguridad reside en los routers
utilizados; como hemos dicho antes las reglas de filtrado sobre estos elementos pueden ser
complicadas de configurar y comprobar, lo que puede dar lugar a errores que abran
importantes brechas de seguridad en nuestro sistema.