Promoción 2022 Sexto Computación “A”
Sexto Computación “B”
Diego René Almengor Carrillo Karen Mishel Alvarado Nájera Mónica Julisa Barrera Rodriguez Emanuel Eduardo Beltran Gómez Cindi Fabiola Benito Sarceño Erwin Fernando Blanco Melendres Alexsandro Daniel Camel de la Cruz Kevin Daniel Cárcamo Rodas Yásmin Abigail Carrillo Vargas Diego Armando Castellanos De La Cruz Josue David Chitay Culajay Astrid Daniela Colindres Fuentes Pablo Andrés Contreras Cantoral Josué Arnoldo Cujá Jerónimo Williams Ismael Alfredo Culajay Guamuch ● José Javier Culajay Patzán ● Robinson Daniel Dávila Alba ● Edwin Sebastian de León yas ● Brandon Uwe Diaz Ac ● Eldan André Escobar Asturias ● José Daniel Garcia Cubur ● Wiliam de Jesus González Pisabaj ● William Alejandro Guzmán Juárez ● Francisco Estuardo Pérez López ● Dylan Luis José Solares Monzón ● Pablo Andrés Hernández Ramírez
● Alvaro Miguel Angel Ico Tiul ● Andrés Ixcajoc López ● Dwight Pablo Miguel Jongezoon Ordóñez ● Herbert José Leal Sinay ● Andy Giovanny Letran Tomás ● Keneth Alexander López Barrios ● Diego Fernando López Gómez ● Herbert Noé Mayca de los Santos ● Donován Alexander Monge Picón ● Jonatan Samuel Andres Monzon Nimatuj ● Cristofer Javier Morales de León ● Maria Fernanda Morales Lima ● Luis David Ortíz Fernández ● Carlos Fabio Andrés Paz Hernández ● Dina Rebeca Perez Bátres ● José Javier Petzey Coquix ● Daniel Estuardo Puluc Patzán ● Fernando José Raxón Pirir ● Devin Miguel Reyes Quiñonez ● William Leonardo Salvador Dealtán ● Pablo Andrés Sarceño Jacinto ● Diego Pablo Solares Zuleta ● Andrés Alexander Tobar Muñoz ● Angel Andres Velásquez de León ● Gabriel Orlando Xanté Mejía
● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Centenario Somasco en América Cien años de la comunidad somasca en América, aquel lejano 5 de octubre de 1921 en el cual tuvimos el arribo en el puerto de la libertad, en el vecino país del Salvador, el que significa el primer apostolado somasco. Posteriormente en 1927 comenzaron las obras en Guatemala. Pensar que tenemos ya en este año 2022 más de 100 años de nosotros también ser partícipes de una obra que sigue hasta el día de hoy creciendo y expandiéndose, un mensaje de perseverancia que nos muestra que no todo llega rápidamente, pero que en algún momento todo da sus frutos. Solamente Dios sabe qué es lo que hace y cómo lo hace, cuál es el rumbo de las cosas, de su corazón nacen las cosas que son buenas, la ayuda, la sabiduría, la inteligencia, solo vienen de él, sus planes para todos en los que en él confían, serán siempre de bendición. El es el que da las herramientas para que podamos salir adelante, siempre interfiere en todo lo que nos pasa en el día a día, en cada hora, en cada minuto, cada instante de nuestras vidas está planeado desde mucho antes de que nosotros conociéramos el primer instante de vida. Eso significa la comunidad, una comunidad que significó una luz, una muestra de que el amor divino, que la mano de Dios aún está con nosotros y que seguirá estando, de la mano de todos aquellos colaboradores y de todos aquellos corazones que están conectados con la espiritualidad, que son verdaderos devotos a la obra verdaderamente cristiana, que mucha falta hace en estos tiempos tan difíciles. Una comunidad que ha hecho muchas obras de bien para la sociedad, fundando instituciones educativas, seminarios, con el fin siempre de acercar más a las personas a Jesús, que es la verdadera visión y vocación que siempre se ha querido plasmar y transmitir hacia cada persona que está involucrada en esta obra masiva de devoción, caridad y trabajo. Lo que representó San Jerónimo a partir de su conversión, y que demostró toda su vida a partir de aquella experiencia propia que tuvo con la Virgen María. Su virtud es llevar el mensaje de salvación a partir de la ayuda hacia aquellos que más lo necesitan.
La pandemia que vivimos en estos últimos dos años, sin duda significó muchas cosas perdidas, familias que perdieron trabajo, que están pasando angustias económicas, incluso familias en dónde muchos miembros ya no están, suena como un mensaje pesimista, pero es la verdadera realidad en la cual nos encontramos viviendo, pero cuando hacemos algo, por ayudar a alguien más estamos contribuyendo al propósito de nuestras vidas. Cuando empezamos a ver más allá de lo que nuestra perspectiva común ve, cuando dejamos de centrarnos en lo que pasamos, o a aún con problemas, luchas externas e internas, podemos ver aquellas realidades en las que nosotros, podemos intervenir, y quizá no cambiemos la realidad de la persona, hay situaciones realmente difíciles pero, sí podemos dar una palabra incluso que venga del corazón, y dar ánimo nuevamente a una persona.
Porque la obra de caridad es algo más allá que ser llamado propiamente un santo, porque la caridad está en cada uno de aquellos corazones dispuestos a sacrificar algo, por servir, por ayudar a los demás. Porque la caridad requiere de intencionalidad también, el deseo y el sentido del deber, de dar sin esperar recibir nada a cambio, realmente eso es lo que completa una verdadera conversión, porque si recibimos la salvación, y la misericordia de Cristo, cómo no tener misericordia de aquellos que alguna vez fuimos nosotros. El Centenario Somasco en América, significa más que solo 100 años, significan años de trabajo, de sacrificio, de cambios, de una transformación que incluso todos buscamos a diario. Quizá lo más significativo más allá de toda la historia que engloba estos cien años de la Comunidad Somasca en América, tenemos un proyecto de vida que busca reunir a todas aquellas personas marginadas, necesitadas, dirigirse a los niños, como el mismo Jesús lo haría en su tiempo. Resulta más que grata su presencia en América y propiamente en Guatemala, y deseamos que así como tenemos un centenario se sigan cumpliendo más y más años de nuevos retos, pero sobre todo de practicar el amor al prójimo, el mensaje de salvación por medio de las obras.
Introducción A lo largo de este trabajo como alumnos del 6to grado en bachiller industrial y perito con especialidad en computación, daremos a conocer cada uno de los temas vistos e impartidos por nuestros docentes en el ciclo escolar 2021 que corresponde al quinto grado de nuestra especialidad ya antes mencionada. Explicaremos y daremos a conocer en cada tema que en este documento se presenta, cada uno de los aspectos, características, aplicaciones y utilidades de dichos temas, tratando de dejar claro cada uno de ellos. Abarcando de una manera clara y directa todo lo visto en ese ciclo escolar, principalmente orientado a la programación en Visual basic, programación orientada a objetos en Java, conexiones a bases de datos, Introducción a HTML entre muchos otros temas que serán de apoyo y guía para retroalimentar y fomentar en los estudiantes el correcto desarrollo de aplicaciones y proyectos que necesiten de estos tipos de software, lenguajes y conocimientos.
Justificación El motivo por el cual todos los estudiantes realizamos la recopilación de toda la información que se presenta en este documento, es principalmente para que cada uno de nosotros tenga acceso a un medio de estudio y retroalimentación de todos los temas comprendidos, no solamente este año, sino también para un ámbito laboral y profesional que como futuros graduandos no estamos lejos a alcanzar, Cada uno podrá estudiar y repasar para mejorar y poner en práctica cada una de nuestras habilidades adquiridas a lo largo de todo este ciclo escolar. Ya que será información que no solo nos servirá este año, sino que si nos esmeramos y ponemos empeño en cada una de las prácticas y competencias en cada tema, vamos a adquirir los conocimientos necesarios que nos servirán en un grado de educación superior universitaria y a lo largo de toda nuestra vida laboral.
Temas Sexto grado Programación estructurada Capítulo I 1.
PHP5 1.1
PHP Introducción
1.2
PHP Sintaxis
1.3
Variables PHP
1.4
PHP Echo / Imprimir
1.5
PHP Tipos de datos
1.6
Funciones PHP de cuerda
1.7
PHP Constantes
1.8
PHP Operadores
1.9
PHP If…Else…ElseIf
1.10
PHP Conmutador
1.11
PHP do…While
1.12
PHP For
1.13
PHP Funciones
1.14
PHP Arrays
1.15
PHP Ordenando Arrays
1.16
PHP Superglobales
1.17
PHP fecha y hora
1.18
PHP incluir
1.19
PHP Administración de archivos
1.20
PHP Open File / Read
1.21
PHP File Crear / escritura
1.22
PHP File Upload
1.23
PHP cookies
1.24
PHP Sesiones
1.25
PHP Manejo de errores
1.26
Excepción PHP
Capítulo II 2.
JavaScript I 2.1.
JS Introduction
2.2.
JS Where To
2.3.
JS Output
2.4.
JS Syntax
2.5.
JS Statements
2.6.
JS Comments
2.7.
JS Variables
2.8.
JS Data Types
2.9.
JS Objects
2.10.
JS Functions
2.11.
JS Scope
2.12.
JS Events
2.13.
JS Strings
2.14.
JS String Methods
2.15.
JS Numbers
2.16.
JS Numbers Methods
2.17.
JS Operators
2.18.
JS Math
2.19.
JS Dates
2.20.
JS Date Methods
2.21.
JS Arrays
2.22.
JS Array Methods
2.23.
JS Booleans
2.24.
JS RegExp
2.25.
JS Type Conversion
2.26.
JS Comparisons
Capítulo III 3.
JQuery 3.1.
jQuery Hide/Show
3.2.
jQuery Fade
3.3.
jQuery Slide
3.4.
jQuery Animate
3.5.
jQuery stop()
3.6.
jQuery Callback
3.7.
jQuery Chaining
3.8.
jQuery Get
3.9.
jQuery Set
3.10.
jQuery Add
3.11.
jQuery Remove
3.12.
jQuery CSS Classes
3.13.
jQuery css()
3.14.
jQuery Dimensions
Sexto Grado Estructura de datos Capítulo I 1.
MySQL (Gráfico/consola) 1.1.
Entorno de trabajo
1.2.
Instalación
1.3.
Crear base de datos
1.4.
Llave primaria
1.5.
Llave foránea
1.6.
Mostrar base de datos y tablas
1.7.
Tipos de datos básicos
1.8.
Valores null
1.9.
DML
1.10.
1.9.1.
Create
1.9.2.
Alter
1.9.3.
Drop
1.9.4.
Truncate table
DDL
1.10.1.
Select
1.10.2.
Insert
1.10.3.
Update
1.10.4.
Delete
Capítulo II 1.
Framework web y Scripting 1.1.
¿Qué es un framework Web?
1.2.
Patrón MVC y Model 2.
1.3.
Tipos de framework Web.
1.4.
Características.
1.5.
ejemplo
1.6.
Historia
1.7.
Aplicaciones
1.8.
Tecnologías
1.9.
Scripting
Capítulo III 1.
Servidor Web
2.
Conexión de red SSL, TLS, HTTPS
3.
Uno o más clientes
4.
Arquitectura dos capas 4.1.
5.
Cliente / Servidor
Arquitectura tres capas 5.1.
Capa de presentación 5.1.1.
Capa de diseño
5.1.2.
Capa de negocios
6.
Qué es la seguridad de sitios web
7.
Amenazas contra las seguridades
8.
Vulnerabilidad
9.
Medidas de seguridad para la web
10.
Herramientas de testeo para la web 10.1.
Inyección SQL
10.2.
Denegación de servicios
10.3.
Inyección de comandos
Sexto Grado Tecnología vocacional Capítulo I 1.
Estándares Web 1.1.
W3C
1.2.
HTML & CSS
1.3.
Gráficos
1.4.
Audio y Vídeo
1.5.
Internacionalización
1.6.
Redes móviles
1.7.
Privacidad
1.8.
Navegadores web 1.8.1.
Historia y evolución
1.8.2.
Versiones
1.8.3.
Ejemplos de navegadores Web
Capítulo II 2.
Integración CMS+CRM+ERP 2.1.
Conceptos
2.2.
Historia
2.3.
Implementación
2.4.
ERP versus software de gestión
2.5.
Ventajas y desventajas
2.6.
Seguridad en la Web
2.7.
Historia
2.8.
Vulnerabilidad
2.9.
Soluciones
2.10.
Tipos de ataques
Capítulo III 3.
Arquitectura y seguridad en las aplicaciones web 3.1.
Que es un software web
3.2.
Usos de un software web 3.2.1.
Por qué elegir una solución web
3.3.
Elección de un software web
3.4.
Tipos de software web
3.5.
Software web serial
3.6.
Ventajas y desventajas de un software serial
3.7.
Software con servicios rentados
3.8.
Software Web adaptación a dispositivos móviles 3.8.1.
3.9. 3.10. 3.11.
Cómo se implementa
Software web desarrollado a medida Tipos de licencia
Sexto Grado Redes de la información Capítulo I 1.
Introducción y clasificación de las redes 1.1.
Qué es una red
1.2.
Comunicación de datos
1.3.
Canal de comunicación
1.4.
Red de computadores
1.5.
Telemática
1.6.
Ventajas de las redes
1.7.
Modelo de sistema de comunicación
1.8.
Fuente
1.9.
Transmisor
1.10.
Clasificación de las redes según su tamaño y extensión: 1.10.1.
LAN
1.10.2.
PAN
1.10.3.
MAN
1.10.4.
WAN
1.10.5.
WLAN
1.10.6.
VLAN
1.10.7.
CAN
1.10.8.
SAN
1.10.9.
Redes de internet
1.10.10.
Redes inalámbricas
1.10.11.
Topologías
1.10.12.
Tipos de topología de red
1.10.13.
Topología en anillo
1.10.14.
Topología de anillo doble
1.10.15.
Topología de árbol
1.10.16.
Topología de bus
1.10.17.
Topología de estrella
1.10.18.
Topología de estrella extendida
1.10.19.
Topología de malla
1.10.20.
Topología híbrida
1.10.21.
Partes de una topología
Capítulo II 2.
Modelo Osi y protocolos TCP/IP 2.1.
Capas del modelo OSI
2.2.
Capa 1: La capa física
2.3.
Capa 2: La capa de enlace de datos
2.4.
Capa 3: La capa de red
2.5.
Capa 4: La capa de transporte
2.6.
Capa 5: La capa de sesión
2.7.
Capa 6: La capa de presentación
2.8.
Capa 7: La capa de aplicación
2.9.
Protocolos utilizados en cada capa
2.10.
Dispositivos de redes utilizados en cada capa
2.11.
Redes IP
2.12.
El protocolo IP versión 4
2.13.
El protocolo ICMP
2.14.
El protocolo UDP
2.15.
El protocolo TCP
Capítulo III 1.
Subneteo 1.1.
1.2.
1.3.
Subneteo Clase A 1.1.1.
Dirección IP clase A
1.1.2.
Máscara de red
1.1.3.
Asignación de subred
Subneteo Clase B 1.2.1.
Dirección IP clase B
1.2.2.
Máscara de red
1.2.3.
Asignación de subred
Subneteo Clase C 1.3.1.
Dirección IP clase B
1.3.2.
Máscara de red
1.3.3.
Asignación de subred
Sexto Grado Programación Estructurada III
Capítulo I 1.1 PHP Por: Diego René Almengor Carrillo
1.1.1
Introducción a PHP
Por: Diego René Almengor Carrillo
PHP es un potente lenguaje, y su intérprete, bien como módulo del servidor web o bien como binario CGI, puede acceder a ficheros, ejecutar comandos o abrir conexiones de red desde el servidor. Estas propiedades hacen que, por omisión, sea inseguro todo lo que se ejecute en un servidor web. PHP está diseñado específicamente para ser un lenguaje más seguro para escribir aplicaciones CGI que Perl o C. Partiendo de un correcto ajuste de opciones de configuración para tiempo de ejecución y en tiempo de compilación, y el uso de prácticas de programación apropiadas, pueden proporcionarle la combinación de libertad y de seguridad que necesita. Dado que hay muchas vías para ejecutar PHP, existen muchas opciones de configuración para controlar su comportamiento. Al haber una extensa selección de opciones se garantiza poder usar PHP para un gran número de propósitos, pero a la vez significa que existen combinaciones que conllevan una configuración menos segura. La flexibilidad de configuración de PHP rivaliza igualmente con la flexibilidad de su código. PHP puede ser usado para construir completas aplicaciones de servidor, con toda la potencia de un usuario de consola, o se puede usar sólo desde el lado del servidor implicando un menor riesgo dentro de un entorno controlado. El cómo construir ese entorno, y cómo de seguro es, depende del desarrollador PHP. Este capítulo comienza con algunos consejos generales de seguridad, explica las diferentes combinaciones de opciones de configuración y las situaciones en que pueden ser útiles, y describe diferentes consideraciones relacionadas con la programación de acuerdo a diferentes niveles de seguridad.
Imagen: Logotipo de php Fuente: http://i.imgur.com/tq5Bs.png
En un sitio dinámico, la información generalmente está contenida en una base de datos. Cada vez que mostramos la página, como por ejemplo una página de noticas, buscamos en la base de datos las últimas noticias que tenemos ingresadas para mostrar en el navegador del visitante. Ahora bien, ¿cómo se consigue que la página vaya mostrando noticias nuevas? Simplemente cargando las mismas en la base de datos, por ejemplo, a través de un formulario que rellena una persona y que una vez relleno cuando pulsa “Enviar” implica que lo que haya escrito se guarde en nuestra base de datos. De esta manera, cuando solicitamos la página web y el servidor consulte la base de datos, encontrará esta nueva información y mostrará nuestra página de forma distinta a como se veía anteriormente.
Imagen: Codigo implmentado de php Fuente: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=492:iquees-php-y-ipara-que-sirve-un-potente-lenguaje-de-programacion-para-crear-paginas-webcu00803b&catid=70&Itemid=193
1.1.2
Sintaxis PHP
Por: Diego René Almengor Carrillo
Cuando PHP analiza un fichero, busca las etiquetas de apertura y cierre, que son <?php y ?>, y que indican a PHP dónde empezar y finalizar la interpretación del código. Este mecanismo permite embeber a PHP en todo tipo de documentos, ya que
todo lo que esté fuera de las etiquetas de apertura y cierre de PHP será ignorado por el analizador. PHP también permite la etiqueta de apertura abreviada <? (la cual está desaconsejada debido a que sólo está disponible si se habilita con la directiva short_open_tag del fichero de configuración php.ini, o si PHP se configuró con la opción --enable-short-tags). Si un fichero contiene solamente código de PHP, es preferible omitir la etiqueta de cierre de PHP al final del mismo. Así se previene la adición de espacios en blanco o nuevas líneas accidentales después de la etiqueta de cierre, lo cual causaría efectos no deseados debido a que PHP comenzará la salida del búfer cuando no había intención por parte del programador de enviar ninguna salida en ese punto del script.
Imagen: Sintaxix básica de php Fuente: https://www.monografias.com/trabajos106/lenguaje-php-basico/img2.png
En lugar de usar muchos comandos para mostrar HTML (como en C o en Perl), las páginas de PHP contienen HTML con código incrustado que hace "algo" (en este caso, mostrar "¡Hola, soy un script de PHP!). El código de PHP está encerrado entre las etiquetas especiales de comienzo y final <?php y ?> que permiten entrar y salir del "modo PHP". Lo que distingue a PHP de algo del lado del cliente como Javascript es que el código es ejecutado en el servidor, generando HTML y enviándolo al cliente. El cliente recibirá el resultado de ejecutar el script, aunque no se sabrá el código subyacente que era. El servidor web puede ser configurado incluso para que procese todos los ficheros HTML con PHP, por lo que no hay manera de que los usuarios puedan saber qué se tiene debajo de la manga.
1.1.3
Tipos de PHP
Por: Monica Julisa Barrera Rodriguez Los principales tipos de datos (considerados tipos de datos escalares) en PHP son: boolean: almacenan valores verdadero o falso (true / false). integer: números enteros. float: números con decimales, usando el punto como separador decimal.
Cuatro tipos escalares: ● Boolean: Este es el tipo más simple. Un boolean expresa un valor que indica verdad. Puede ser true (verdadero) o false (falso).
Fuente: https://www.php.net/manual/es/language.types.boolean.php
● Integer: Un número entero (o integer) es un número del conjunto ℤ = {..., -2, -1, 0, 1, 2, ...}.
Fuente: https://www.php.net/manual/es/language.types.integer.php
● Float: Los números de punto flotante (también conocidos como "de coma flotante" en español, y "floats" en inglés) pueden ser especificados usando cualquiera de las siguientes sintaxis:
Fuente: https://www.php.net/manual/es/language.types.float.php
● String: Un string, o cadena, es una serie de caracteres donde cada carácter es lo mismo que un byte. Esto significa que PHP solo admite un conjunto de 256 caracteres, y de ahí que no ofrezca soporte nativo para Unicode.
Fuente: https://medium.com/@shankarbabu007/important-php-string-functions66cc480e687
Tipos especiales: ● Resource: Un valor tipo resource es una variable especial, que contiene una referencia a un recurso externo. Los recursos son creados y usados por funciones especiales.
Fuente: https://slideplayer.com/slide/5023941/
● NULL: El valor especial null representa una variable sin valor. Null
1.1.4
Funciones de PHP de Cuerda
Por: Monica Julisa Barrera Rodriguez En este capítulo vamos a ver algunas funciones que se usan comúnmente para manipular cadenas.
Obtener la longitud de una cuerda: El PHP strlen() función devuelve la longitud de una cadena.
Fuente: https://www.w3bai.com/es/php/php_string.html
Contar el número de palabras en una cadena: El PHP str_word_count() función cuenta el número de palabras de una cadena:
Fuente: https://www.w3bai.com/es/php/php_string.html
Invertir una cadena El PHP strrev() función invierte una cadena:
Fuente: https://www.w3bai.com/es/php/php_string.html
Reemplazar texto dentro de una cadena El PHP str_replace() función reemplaza algunos caracteres con algunos otros caracteres de una cadena.
Fuente: https://www.w3bai.com/es/php/php_string.html
1.1.5
PHP Constantes
Por: Emanuel Eduardo Beltran Gomez Una constante es un identificador (nombre) para un valor simple. Como el nombre sugiere, este valor no puede variar durante la ejecución del script (a excepción de las constantes mágicas, que en realidad no son constantes). Por defecto, una constante distingue mayúsculas y minúsculas. Por convención, los identificadores de constantes siempre se declaran en mayúsculas. l nombre de una constante sigue las mismas reglas que cualquier otra etiqueta de PHP. Un nombre de constante válido empieza por una letra o guion bajo, seguido por cualquier número de letras, números o guiones bajos. Usando una expresión regular, se representaría de la siguiente manera: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
1.1.6
PHP Operadores
Por: Emanuel Eduardo Beltran Gomez Los operadores de comparación permiten comparar dos valores, tal y comosu nombre indica. En general, esto nos servirá para tomar decisiones. Por ejemplo, quizás tenemos que decidir si autorizar una operación según exista saldo suficiente en su cuenta bancaria o no. Para ello en PHP disponemos de los operadores que se indican en la siguiente tabla.
fuente: https://www.php.net/manual/es/language.operators.logical.php
1.1.7
PHP if.. Else.. Elseif
Por: Cindi Fabiola Benito Sarceño Muy a menudo, cuando escribe código, desea realizar diferentes acciones para diferentes condiciones. Puede usar declaraciones condicionales en su código para hacer esto. En PHP tenemos las siguientes declaraciones condicionales: ●
If declaración - ejecuta algún código si una condición es verdadera
●
if...else declaración: ejecuta algún código si una condición es verdadera y otro código si esa condición es falsa
●
if...elseif...else declaración - ejecuta diferentes códigos para más de dos condiciones
●
switch instrucción: selecciona uno de los muchos bloques de código que se ejecutarán
Imagen: php if else elseif Fuente: https://cdn.pimylifeup.com/wp-content/uploads/2022/02/PHP-if-else-elseifconditional-statements-Thumbnail.jpg
1.1.8
PHP Conmutador
Por: Cindi Fabiola Benito Sarceño conmutador es un dispositivo de interconexión de redes de otros dispositivos o computadoras.
Conocido también como "switch", el conmutador es un aparato que interconecta dos o más segmentos de una misma red para el enlace de datos, funcionando como un puente. Se dice que en una "red en estrella" el conmutador es el centro. La funcionalidad de un conmutador está dada por la multiplicación de redes y datos a transmitir, con la subsiguiente necesidad de un orden y sistematización para su operación. Un conmutador funciona como un filtro en la red, mejorando el rendimiento y la seguridad de las conexiones al provocar una fusión de éstas.
Imagen: php conmutador Fuente: https://www.adaweb.es/wp-content/uploads/2018/03/04032019_contenido_PHP_adawebmin.png
1.1.9
Do… While PHP
Por: Pablo Ismael Berganza Mendoz Los bucles do-while son muy similares a los bucles while, excepto que la expresión verdadera es verificada al final de cada iteración en lugar que al principio. La diferencia principal con los bucles while es que está garantizado que corra la primera iteración de un bucle do-while (la expresión verdadera sólo es verificada al final de la iteración), mientras que no necesariamente va a correr con un bucle while regular (la expresión verdadera es verificada al principio de cada iteración, si se evalúa como false justo desde el comienzo, la ejecución del bucle terminaría inmediatamente). Hay una sola sintaxis para bucles do-while:
Imagen: Ejemplo de do while en PHP Fuente: https://www.php.net/manual/es/control-structures.do.while.php
El bucle de arriba se ejecutaría exactamente una sola vez, ya que después de la primera iteración, cuando la expresión verdadera es verificada, se evalúa como false ($si no es mayor que 0) y termina la ejecución del bucle. Los usuarios avanzados de C pueden estar familiarizados con un uso distinto del bucle do-while, para permitir parar la ejecución en medio de los bloques de código, mediante el encapsulado con do-while (0), y utilizando la sentencia break. El siguiente fragmento de código demuestra esto:
Imagen: Ejemplo de do while en PHP Fuente: https://www.php.net/manual/es/control-structures.do.while.php
1.1.10 For PHP Por: Pablo Ismael Berganza Mendoz
Los bucles for son los más complejos en PHP. Se comportan como sus homólogos en C. La sintaxis de un bucle for es: for (expr1; expr2; expr3) sentencia La primera expresión (expr1) es evaluada (ejecutada) una vez incondicionalmente al comienzo del bucle. En el comienzo de cada iteración, se evalúa expr2. Si se evalúa como true, el bucle continúa y se ejecutan la/s sentencia/s anidada/s. Si se evalúa como false, finaliza la ejecución del bucle. Al final de cada iteración, se evalúa (ejecuta) expr3. Cada una de las expresiones puede estar vacía o contener múltiples expresiones separadas por comas. En expr2, todas las expresiones separadas por una coma son evaluadas, pero el resultado se toma de la última parte. Que expr2 esté vacía significa que el bucle debería ser corrido indefinidamente (PHP implícitamente lo considera como true, como en C). Esto puede no ser tan inútil como se pudiera pensar, ya que muchas veces se debe terminar el bucle usando una sentencia condicional break en lugar de utilizar la expresión verdadera del for. Considere los siguientes ejemplos. Todos ellos muestran los números del 1 al 10:
for ($i = 1; $i <= 10; $i++) { echo $i;
}
for ($i = 1; ; $i++) { if ($i > 10) { break; } echo $i; }
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
1.1.11 PHP Funciones Por: Erwin Blanco Una función es un conjunto de instrucciones que a lo largo del programa van a ser ejecutadas multitud de veces. Es por ello, que este conjunto de instrucciones se agrupa en una función. Las funciones pueden ser llamadas y ejecutadas desde cualquier punto del programa. Además, una función puede recibir parámetros externos de los cuales dependa el resultado de dicha función. Es decir, según el parámetro o parámetros con los que se invoque a la función, ésta devolverá un resultado u otro. Las funciones deben estar definidas antes de realizar la llamada a la función (como es lógico). Sintaxis
Imagen: Ejemplo De la sintaxis Fuente: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=573:funcio nes-php-declaracion-y-llamadas-parametros-tipos-return-ejercicios-ejemplos-resueltoscu00827b&catid=70&Itemid=193#:~:text=FUNCIONES%20EN%20PHP&text=Una%20funci%C3%B3n%20es %20un%20conjunto,desde%20cualquier%20punto%20del%20programa
1.1.12 PHP Array Por: Erwin Blanco Un array en PHP es en realidad un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo se optimiza para varios usos diferentes; se puede emplear como un array, lista (vector), tabla asociativa (tabla hash - una implementación de un mapa), diccionario, colección, pila, cola, y posiblemente más. Ya que los valores de un array pueden ser otros arrays, también son posibles árboles y arrays multidimensionales. Una explicación sobre tales estructuras de datos está fuera del alcance de este manual, aunque se proporciona al menos un ejemplo de cada uno de ellos. Para más información, consulte la extensa literatura que existe sobre este amplio tema.
Imagen: Ejemplo De la sintaxis Fuente: https://www.php.net/manual/es/language.types.array.php
1.1.13 PHP Ordenador Array Por: Alexandro Camel Ahora veamos directamente las funciones disponibles para ordenar arrays. Es la función más básica para ordenar arrays en PHP. Ordena el array de valores menores a mayores. Lo vemos con un ejemplo.
Imagen: Ejemplo de sort() Fuente: https://desarrolloweb.com/articulos/ordenar-arrays-php.html
Esta función ordena el array por valores. La "r" delante quiere decir que ordena en orden reverso, de mayor a menor.
Imagen: Ejemplo de rsort() Fuente: https://desarrolloweb.com/articulos/ordenar-arrays-php.html
También podemos ordenar un array por el índice o llave, que quiere decir que en lugar de ordenar atendiendo a los valores, se ordenaría atendiendo al índice que tienen. Para ver este ejemplo utilizaremos arrays asociativos, que son los que tienen índices de texto en vez de números.
En el array siguiente vemos que tenemos índices como "h", "e", "a", en lugar de números. Lo que hará este tipo de ordenación es fijarse en esos índices para poner el array ordenado por ellos.
Imagen: Ejemplo de ksort() Fuente: https://desarrolloweb.com/articulos/ordenar-arrays-php.html
Esta función ordena los elementos de un array, pero manteniendo la correlación entre índices y valores a los que están asociados. Ordena por valores. Se utiliza generalmente en arrays asociativos.
Imagen: Ejemplo de asort() Fuente: https://desarrolloweb.com/articulos/ordenar-arrays-php.html
1.1.14 PHP Super Plegable Por: Alexandro Camel Son variables internas que están disponibles siempre en todos los ámbitos. Algunas variables predefinidas en PHP son "superglobales", lo que significa que están disponibles en todos los ámbitos a lo largo del script. No es necesario emplear global $variable; para acceder a ellas dentro de las funciones o métodos.
$GLOBALS
Es un array asociativo que contiene las referencias a todas la variables que están definidas en el ámbito global del script. Los nombres de las variables son las claves dearray.
Imagen: Ejemplo de $GLOBALS Fuente: https://www.php.net/manual/es/reserved.variables.globals.php
$_SERVER Es un array que contiene información, tales como cabeceras, rutas y ubicaciones de script. Las entradas de este array son creadas por el servidor web. No hay garantía que cada servidor web proporcione alguna de estas entradas, existen servidores que pueden omitir algunas o proporcionar otras no recogidas aquí. Un gran número de estas variables se encuentran recogidas en » especificación CGI 1.1, así que al menos debe esperaencontrar estas entradas.
Imagen: Ejemplo de $_SERVER Fuente: https://www.php.net/manual/es/reserved.variables.server.php
1.1.15 PHP Fecha y Hora Por: Kevin carcamo date(string $format, int $timestamp = time()): string
Devuelve una cadena formateada según el formato dado usando el parámetro de tipo integer timestamp dado o el momento actual si no se da una marca de tiempo. En otras palabras, timestamp es opcional y por defecto es el valor de time(). El formato de la fecha de salida tipo string. Vea las opciones de formato mas abajo. También hay varias constantes de fecha predefinida que pueden usarse en su lugar, asi por ejemplo Date_RRS contiene la cadena de formato ‘D, d M Y H: i : s’.
Los siguientes caracteres están reconocidos en el parámetro de cadena format Carácter de format
Descripción
Ejemplo devueltos
de
Día
---
---
d
Día del mes, 2 dígitos con ceros 01 a 31 iniciales
D
Una representación textual de Mon hasta Sun un día, tres letras
j
Día del mes sin ceros iniciales
valores
1 a 31
l ('L' Una representación textual Sunday hasta Saturday minúscula) completa del día de la semana N
Representación numérica ISO- 1 (para lunes) 8601 del día de la semana hasta 7 (para domingo) (añadido en PHP 5.1.0)
S
Sufijo ordinal inglés para el día st, nd, rd o th. del mes, 2 caracteres bien con j
w
Representación numérica día de la semana
z
El día del año (comenzando por 0 hasta 365 0)
Semana
---
W
Número de la semana del año Ejemplo: 42 (la 42ª semana ISO-8601, las semanas del año) comienzan en lunes
Mes
---
F
Una representación textual January hasta December completa de un mes, como January o March
m
Representación numérica de un 01 hasta 12 mes, con ceros iniciales
M
Una representación textual corta Jan hasta Dec de un mes, tres letras
n
Representación numérica de un 1 hasta 12 mes, sin ceros iniciales
t
Número de días del mes dado
28 hasta 31
Año
---
---
L
Si es un año bisiesto
1 si es bisiesto, 0 si no.
o
Año según el número de la Ejemplos: 1999 o 2003 semana ISO-8601. Esto tiene el mismo valor que Y, excepto que
Funciona
del 0 (para domingo) hasta 6 (para sábado)
---
---
Los siguientes caracteres están reconocidos en el parámetro de cadena format Carácter de format
Descripción
Ejemplo devueltos
de
valores
si el número de la semana ISO (W) pertenece al año anterior o siguiente, se usa ese año en su lugar. (añadido en PHP 5.1.0) U
Segundos desde la Época Unix (1 Vea también time() de Enero del 1970 00:00:00 GMT)
El parámetro opcional timestamp es una marca temporal de Unix de tipo integer que por defecto es la hora local si no proporciona ningún valor a Timestamp. Es forma predeterminada el valor de la función time().
1.1.16 PHP Incluir Por: Kevin Carcamo Los archivos son incluidos con base en la ruta de acceso dada o, si ninguna es dada, el include_path especificado. Si el archivo no se encuentra en el include_path, include finalmente verificara en el propio directorio del script que hace el llamado y en el directorio de trabajo actual, antes de fallar. El constructor include emitirá una advertencia si no puede encontrar un archivo, este es un comportamiento diferente al de require, el cual emitirá un error fatal. Si una ruta es definida ya sea absoluta (comenzando con una letra de unidad o en Windows o en sistemas Unix/Linux) o relativa al directorio actual (comenzando con. o) el include_path será ignorado por completo. Por ejemplo, si un nombre de archivo comienza con /. el intérprete buscará en el directorio padre para encontrar el archivo solicitado. vars.php <?php $color = 'verde'; $fruta = 'manzana'; ?> test.php <?php echo "Una $fruta $color"; // Una include 'vars.php'; echo "Una $fruta $color"; // Una manzana verde
?>
Si la inclusión ocurre al interior al interior de una función dentro del archivo que hace el llamado, entonces todo el código contenido en el archivo llamado se comportara como si hubiera sido definida dentro de esa función. Por lo tanto, seguirá el ámbito de las variables de esa función. Una excepción a esta regla son las constantes mágicas las cuales son evaluadas por el intérprete antes que ocurra la inclusión.
1.1.17 Administracion de Archivo PHP Por: Yasmin Carillo PHP tiene varias funciones para crear, leer, cargar y editar archivos.
PHP readfile() Función El readfile() función lee un archivo y lo escribe en el buffer de salida.
El código PHP para leer el archivo y escribir en el búfer de salida es la siguiente (the readfile() devuelve el número de bytes leídos en caso de éxito):
Ejemplo <?php echo readfile("webdictionary.txt"); ?> El readfile() función es útil si todo lo que quiere hacer es abrir un archivo y leer su contenido.
1.1.18 PHP Open File/Read Por: Yasmin Carrillo Abrir archivo PHP - fopen() Un mejor método para abrir archivos es con el fopen() función. Esta función le da más opciones que el readfile() función.
El primer parámetro de fopen () contiene el nombre del archivo que se puede abrir y el segundo parámetro especifica en qué modo el archivo se debe abrir. El ejemplo siguiente también genera un mensaje si la función fopen () no es capaz de abrir el archivo especificado:
Ejemplo
<?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); echo fread($myfile,filesize("webdictionary.txt")); fclose($myfile); ?>
PHP Leer archivo - fread () La función fread () lee de un archivo abierto.
El primer parámetro de fread () contiene el nombre del archivo a leer y el segundo parámetro especifica el número máximo de bytes a leer.
El siguiente código PHP lee el archivo "webdictionary.txt" al final:
fread($myfile,filesize("webdictionary.txt"));
PHP Cerrar archivo - fclose() El fclose() función se utiliza para cerrar un archivo abierto.
El fclose() requiere el nombre del archivo (o una variable que contiene el nombre del archivo) queremos cerrar:
<?php $myfile = fopen("webdictionary.txt", "r") ; // some code to be executed.... fclose($myfile) ; ?>
1.1.19 PHP Manejo de Errores Por: Diego Castellano El manejo de errores por defecto en PHP es muy simple. Un mensaje de error con el nombre de archivo, número de línea y un mensaje que describe el error se envía al navegador.
Registro de Errores Por defecto, PHP envía un registro de errores de sistema de registro del servidor o un archivo, dependiendo de cómo la configuración error_log en el archivo php.ini. Al utilizar el error_log() la función que puede enviar registros de errores en un archivo especificado o un destino remoto. El envío de mensajes de error a sí mismo por correo electrónico puede ser una buena manera de conseguir la notificación de errores específicos.
Imagen: Ejemplo de como implementar un código que permita enviar un error a un correo electrónico en específico. Fuente: https://www.w3bai.com/es/php/php_error.html
Función Die() Se utiliza para evitar el muestreo de mensajes de error como el siguiente:
Imagen: Ejemplo de un mensaje de error mostrado por defecto por php Fuente: https://www.w3bai.com/es/php/php_error.html
Para mostrar mensajes como:
Imagen: Ejemplo de un mensaje de error mostrado por la función die() Fuente: https://www.w3bai.com/es/php/php_error.html
Mostrando un mensaje más comprensible para el programador y/o usuario, haciendo fácil su corrección o detección de su causa.
Imagen: Ejemplo de como implementar una función die() Fuente: https://www.w3bai.com/es/php/php_error.html
1.1.20 Excepción PHP Por: Diego Castellano PHP 5 tiene un modelo de excepciones similar al de otros lenguajes de programación. Una excepción puede ser lanzada ("thrown"), y atrapada ("catched") dentro de PHP. El código puede estar dentro de un bloque try para facilitar la captura de excepciones potenciales. Cada bloque try debe tener al menos un bloque catch o finally correspondiente.
El objeto lanzado debe ser una instancia de la clase Exception o una subclase de Exception. Intentar lanzar un objeto que no lo sea resultará en un Error Fatal de PHP.
catch Se pueden usar múltiples bloques catch para atrapar diferentes clases de excepciones. La ejecución normal (cuando no es lanzada ninguna excepción dentro
del bloque try) continuará después del último bloque catch definido en la sencuencia. Las excepciones pueden ser lanzadas ("thrown") (o relanzadas) dentro de un bloque catch.
Cuando una excepción es lanzada, el código siguiente a la declaración no será ejecutado, y PHP intentará encontrar el primer bloque catch coincidente. Si una excepción no es capturada, se emitirá un Error Fatal de PHP con un mensaje "Uncaught Exception ..." ("Excepción No Capturada"), a menos que se haya definido un manejador con set_exception_handler().
Imagen: Ejemplo de como lanzar una excepción Fuente: https://www.php.net/manual/es/language.exceptions.php
finally En PHP 5.5 y posterior, se puede utilizar un bloque finally después o en lugar de los bloques catch. El código de dentro del bloque finally siempre se ejecutará después de los bloques try y catch, independientemente de que se haya lanzado una excepción o no, y antes de que la ejecución normal continúe.
Imagen: Ejemplo de como manejar un finally Fuente: https://www.php.net/manual/es/language.exceptions.php
1.1.21 PHP File Crear/ Escritura Por: Josue David Chitay Culajay Al igual que para leer un archivo, hay más de una forma de escribir en uno. La forma más básica es utilizar la función fwrite() (o fputs(), que es su alias): $file = "miarchivo. txt"; $texto = "Hola que tal"; $fp = fopen($file, "w"); fwrite($fp, $texto); fclose($fp);
Lectura de Ficheros Para leer un archivo de texto línea a línea en PHP vamos a utilizar la función fgets(). Por ejemplo, si queremos leer línea por línea el archivo 'archivo.txt' que se encuentra ubicado en la misma carpeta que el archivo 'leer.php', tenemos que escribir en el archivo PHP:
Imagen: Ejemplo de Lectura de Ficheros PHP Fuente: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=598:fwritephp-lectura-y-escritura-fichero-txt-modo-acceso-phpeol-salto-de-linea-ejercicio-ejemplocu00837b&catid=70&Itemid=193
Escritura de Ficheros Para escribir un archivo de texto en PHP podemos utilizar la función fwrite(). Por ejemplo, si queremos escribir línea por línea un archivo 'archivo.txt' que se encuentre ubicado en la misma carpeta que el archivo 'escribir.php', tenemos que escribir en el archivo PHP:
Imagen: Ejemplo de Escritura de Ficheros Fuente: https://www.google.com/search?q=imagen+ejemplo
1.1.22 PHP File Upload Por: Josue David Chitay Culajay Esta característica permite la subida de ficheros de texto y binarios. Con la autenticación de PHP y las funciones de manipulación de ficheros se tiene control completo sobre quién está autorizado a realizar una subida y qué hay que hacer con el fichero una vez subido. PHP es capaz de recibir subidas de ficheros de cualquier navegador compatible con el RFC-1867.
$_Files El array global $_FILES contendrá toda la información de los los ficheros subidos. Su contenido en el formulario del ejemplo es el siguiente. Este puede ser cualquier nombre
Imagen: Ejemplo de Array Global Fuente: https://www.php.net/manual/es/features.file-upload.post-method.php
Validación de la subida de ficheros Se necesita revisar la corrección de los archivos subidos como se hace con cualquier otro dato del formulario. Por ejemplo, podríamos necesitar revisar: Si los archivos fueron realmente subidos a través de una petición POST HTTP y que no fueron solo copiados desde alguna carpeta.
Imagen: Ejemplo de Validación de subida de ficheros Fuente: https://www.php.net/manual/es/features.file-upload.post-method.php
1.1.23 PHP Cookies Por: Astrid Colindres PHP tiene soporte para las «cookies» de HTTP de forma transparente. Las cookies son un mecanismo por el que se almacenan datos en el navegador remoto para monitorizar o identificar a los usuarios que vuelvan al sito web. Las cookies se pueden configurar con las funciones setcookie () o setrawcookie (). Las cookies son parte de la cabecera HTTP, por lo que setcookie () será invocada antes de enviar cualquier otra salida al navegador. Esta es la misma limitación que tiene la función header (). Se pueden utilizar las funciones del búfer de salida para retrasar la salida del script hasta que se haya decidido si establecer o no alguna cookie o enviar cualquier otra cabecera. Algunas cookies enviadas desde el cliente serán incluidas automáticamente en el array autoglobal $_COOKIE si variables_order contiene "C". Para asignar varios valores a una sola cookie, simplemente se debe agregar [] al nombre de la cookie.
Imagen: Funcionamiento de cookies en PHP (Diagrama) Fuente: https://cdn.educba.com/academy/wp-content/uploads/2019/09/Cookie-in-PHP.jpg
1.1.24 PHP Sesiones Por: Astrid Colindres En PHP, las sesiones se crean mediante la función session_start (). Si la sesión no existía, esta función crea la sesión y le asocia un identificador de sesión único. Si la sesión ya existía, esta función permite que la página tenga acceso a la información vinculada a la sesión. Es decir, todas las páginas que quieran guardar datos en $_SESSION o leer datos de $_SESSION deben comenzar con la función session_start (). La creación de sesiones requiere el envío de cabeceras HTTP, por lo que la función session_start () debe utilizarse antes de empezar a escribir el contenido de la página. En caso contrario PHP producirá un aviso y no se creará la sesión. El motivo es que el identificador de sesión se utiliza en las cabeceras de respuesta HTTP y las cabeceras se envían antes del texto de la página. En la lección sobre cabeceras se comenta con más detalle el problema del envío de cabeceras.
Imagen: Ejemplo de creación de sesión en PHP (Ejemplo codificado) Fuente: https://i.ytimg.com/vi/LXbW8IMs_gw/maxresdefault.jpg
Capítulo II 2.
JavaScript I 2.1.
JS Introduction
Por: Diego René Almengor Carrillo JavaScript es un lenguaje de programación multiplataforma orientado a objetos que se utiliza para hacer que las páginas web sean interactivas (p. ej., que tienen animaciones complejas, botones en los que se puede hacer clic, menús emergentes, etc.). También hay versiones de JavaScript del lado del servidor más avanzadas, como Node.js, que te permiten agregar más funcionalidad a un sitio web que simplemente descargar archivos (como la colaboración en tiempo real entre varias computadoras). Dentro de un entorno (por ejemplo, un navegador web), JavaScript se puede conectar a los objetos de su entorno para proporcionar control programático sobre ellos. JavaScript contiene una biblioteca estándar de objetos, como Array, Date y Math, y un conjunto básico de elementos del lenguaje como operadores, estructuras de control y declaraciones.
Imagen: Logotipo de JS Fuente: https://d8285fmxt3duy.cloudfront.net/public/articulos/img/java-script1.jpg
JavaScript de lado del cliente extiende el núcleo del lenguaje al proporcionar objetos para controlar un navegador y su Modelo de objetos de documento (DOM por Document Object Model). Por ejemplo, las extensiones de lado del cliente permiten que una aplicación coloque elementos en un formulario HTML y responda a eventos del usuario, como clics del mouse, formularios para ingreso de datos y navegación de páginas. ● JavaScript de lado del servidor amplía el núcleo del lenguaje al proporcionar objetos relevantes para ejecutar JavaScript en un servidor. Por ejemplo, las extensiones de lado del servidor permiten que una aplicación se comunique con una base de datos, brinde continuidad de información de una invocación a otra de la aplicación o realice manipulación de archivos en un servidor. Sintaxis de javascript La sintaxis de JavaScript define un conjunto de reglas que deben seguirse para escribir código correctamente, y darle así instrucciones al programa en el que estemos trabajando, ejecutando la tarea especificada de dicho código. ● No se tienen en cuenta los espacios en blanco y las nuevas líneas: el intérprete de JavaScript ignora cualquier espacio en blanco sobrante, por lo que el código se puede ordenar de forma adecuada para entenderlo mejor. (tabulando las líneas, añadiendo espacios, creando nuevas líneas, etc.). ●
● Diferencia las letras mayúsculas de las minúsculas, es decir case sensitive. Lo que significa que si definimos estas variables, de la siguiente manera, ambas se crearán sin ningún problema y con su valor asignado. ● No se define el tipo de las variables: al crear una variable, no es necesario indicar el tipo de dato que almacenará. De esta forma, una misma variable puede almacenar diferentes tipos de datos durante la ejecución del script. ● Se pueden incluir comentarios: los comentarios se utilizan para añadir información en el código fuente del programa. Los comentarios son partes del programa que el intérprete no lee. En JavaScript distinguimos dos formas de comentarios: por línea y por bloque (de varias líneas). En línea el comentario debe estar antepuesto por dos slash.
Imagen: Sintaxis JS Fuente:
http://recursostic.educacion.es/observatorio/web/images/upload/smie0000/javascript_1/eje mplo1.gif
2.2.
JS Where to
Por: Diego René Almengor Carrillo Los scripts en una página se ejecutarán inmediatamente mientras la página se carga en el navegador. Esto no es siempre lo que queremos. A veces queremos ejecutar un script cuando se carga una página, otras veces cuando un usuario activa un evento. Scripts en la sección de encabezado: los scripts que se ejecutarán cuando se llamen o cuando se active un evento, vayan a la sección de encabezado. Cuando coloca un script en la sección principal, se asegurará de que el script se cargue antes de que alguien lo use.
Imagen: Where To Fuente: http://www.cev.washington.edu/lc/CLWEBCLB/jst/js_whereto.html
Scripts en la sección del cuerpo: Los scripts que se ejecutarán cuando se cargue la página van en la sección del cuerpo. Cuando coloca un script en la sección del cuerpo, genera el contenido de la página.
Imagen: Where To Fuente: http://www.cev.washington.edu/lc/CLWEBCLB/jst/js_whereto.html
Guiones tanto en la sección del cuerpo como en la del encabezado: puede colocar una cantidad ilimitada de guiones en su documento, por lo que puede tener scripts tanto en la sección del cuerpo como en la del encabezado
Imagen: Where To Fuente: http://www.cev.washington.edu/lc/CLWEBCLB/jst/js_whereto.html
Cómo ejecutar un JavaScript externo A veces, es posible que desee ejecutar el mismo script en varias páginas, sin escribir el script en todas y cada una de las páginas. Para simplificar esto, puede escribir un script en un archivo externo y guardarlo con una extensión de archivo .js, como este:
Imagen: Where To Fuente: http://www.cev.washington.edu/lc/CLWEBCLB/jst/js_whereto.html
Guarde el archivo externo como xxx.js. Nota: El script externo no puede contener la etiqueta <script> Ahora puede llamar a este script, utilizando el atributo "src", desde cualquiera de sus páginas:
Imagen: Llamamos el archivo Fuente: http://www.cev.washington.edu/lc/CLWEBCLB/jst/js_whereto.html
2.3.
JS Variables
Por: Emanuel Eduardo Beltran Gomez Una analogía útil es pensar en las variables como etiquetas para nuestros valores. Piensa en un contenedor de arándanos con una etiqueta que dice 'arándanos'. En este ejemplo, la variable arándanos, señala hacia un valor, que son los mismos arándanos.
Imagen: Variable Fuente: https://www.freecodecamp.org/espanol/news/javascript-variables-paraprincipiantes/#:~:texto=Las%20variables%20son%20la%20manera,referirnos%20a%20este%20m%C3%A1 s%20adelante.
2.4.
JS Data Type
Por: Emanuel Eduardo Beltran Gomez Todos los lenguajes de programación tienen estructuras de datos integradas, pero estas a menudo difieren de un lenguaje a otro. Este artículo intenta enumerar las estructuras de datos integradas disponibles en JavaScript y las propiedades que tienen. Estas se pueden utilizar para construir otras estructuras de datos. Siempre que es posible, se hacen comparaciones con otros lenguajes.
Imagen: JS Data Type Fuente: https://developer.mozilla.org/es/docs/Web/JavaScript/Data_structures
2.5.
Objects/Functions
Por: Cindi Fabiola Benito Sarceño En JavaScript, las funciones se denominan objetos de función porque son objetos. Al igual que los objetos, las funciones tienen propiedades y métodos, se pueden almacenar en una variable o una matriz y se pueden pasar como argumentos a otras funciones.
Imagen: JS Functions Fuente: https://3.bp.blogspot.com/GO9xuOyhrGg/XLLrKmAlDPI/AAAAAAAAF3A/irhbzEPAlY4Fg1DbrcWGRcEDAPUbMOlgCLcBGAs/s1600/javascript-objects.PNG
2.6.
JS Scope
Por: Pablo Ismael Berganza Mendoz El scope puede definirse como el alcance que una variable tendrá en tu código. En otras palabras, el scope decide a qué variables tienes acceso en cada parte del código. Existen dos tipos de scope, el scope global y el scope local.
Qué es el Scope Local Cuando puedes acceder a una variable únicamente en cierta parte del código, se dice que esa variable está declarada en el scope local. Estas también son conocidas como variables locales. Un ejemplo de esto es cuando una variable está declarada
dentro de un bloque o una función. Si tratas de acceder a esta variable fuera de esta función o bloque, tendrás un error que dirá que la variable no está definida.
Imagen: Ejemplo de Scope Local JS Fuente: https://platzi.com/blog/como-funciona-el-scope-enjavascript/#:~:text=JavaScript%20desde%20cero.,¿Qué%20es%20el%20scope%20en%20JavaScript%3F,global%20y%20el%20scope%20local.
Qué es el Scope Global Se dice que una variable está en el scope global cuando está declarada fuera de una función o de un bloque. También son conocidas como variables globales. Puedes acceder a este tipo de variables desde cualquier parte de tu código, ya sea dentro o fuera de una función.
Imagen: Ejemplo de Scope Local JS Fuente: https://platzi.com/blog/como-funciona-el-scope-enjavascript/#:~:text=JavaScript%20desde%20cero.,¿Qué%20es%20el%20scope%20en%20JavaScript%3F,global%20y%20el%20scope%20local.
A pesar de que JavaScript nos permite declarar una variable como global, no es una buena práctica. Una de las razones es porque tenemos la posibilidad de declarar dos variables globales en distintas partes del código con el mismo nombre sin notarlo.
2.7.
JS Events
Por: Pablo Ismael Berganza Mendoz La interacción de JavaScript con HTML se maneja a través de eventos que ocurren cuando el usuario o el navegador manipula una página. Cuando se carga la página, se llama un evento. Cuando el usuario hace clic en un botón, ese clic también es un evento. Otros ejemplos incluyen eventos como presionar cualquier tecla, cerrar una ventana, cambiar el tamaño de una ventana, etc. Los desarrolladores pueden usar estos eventos para ejecutar respuestas codificadas en JavaScript, lo que hace que los botones cierren ventanas, se muestran mensajes a los usuarios, se validan datos y prácticamente cualquier otro tipo de respuesta imaginable.
onclick Tipo de evento
Este es el tipo de evento que se usa con más frecuencia y ocurre cuando un usuario hace clic con el botón izquierdo de su mouse. Puede poner su validación, advertencia, etc. contra este tipo de eventos.
Imagen: Ejemplo de JS Event Fuente: https://www.tutorialspoint.com/javascript/javascript_events.htm
onsubmit Tipo de evento onsubmit es un evento que ocurre cuando intentas enviar un formulario. Puede poner la validación de su formulario en este tipo de evento. El siguiente ejemplo muestra cómo usar onsubmit. Aquí estamos llamando a una función de validación () antes de enviar los datos de un formulario al servidor web. Si la función validar () devuelve verdadero, se enviará el formulario; de lo contrario, no enviará los datos.
Imagen: Ejemplo de JS Event Fuente: https://www.tutorialspoint.com/javascript/javascript_events.htm
onmouseover y onmouseout Estos dos tipos de eventos te ayudarán a crear buenos efectos con imágenes o incluso con texto. El evento onmouseover se activa cuando coloca el mouse sobre cualquier elemento y el evento onmouseout se activa cuando mueve el mouse fuera de ese elemento.
Imagen: Ejemplo de JS Event Fuente: https://www.tutorialspoint.com/javascript/javascript_events.htm
2.8.
JS String
Por: Erwin Blanco
Las cadenas son útiles para almacenar datos que se pueden representar en forma de texto. Algunas de las operaciones más utilizadas en cadenas son verificar su length, para construirlas y concatenarlas usando operadores de cadena + y +=, verificando la existencia o ubicación de subcadenas con indexOf() o extraer subcadenas con el método substring().
Imagen: Ejemplo De la sintaxis Fuente: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/String
2.9.
JS String Methods
Por: Erwin Blanco En una traducción rápida, las Media Queries de CSS (o CSS media queries) son, consultas sobre las características del medio donde se está visualizando una web. Nos sirven para definir estilos condicionales, que solo se aplicarán en caso de que esa consulta del médico sea satisfactoria.
Imagen: Ejemplo De la sintaxis Fuente: https://miro.medium.com/max/1400/1*PxrheGqU-rY86oV4qm3l_g.png
2.10.
JS Numbers
Por: Alexandro Camel En Javascript, los números son uno de los tipos de datos básicos (tipos primitivos) que para crearlos, simplemente basta con escribirlos. No obstante, en Javascript todo son objetos, como veremos más adelante, y también se pueden declarar como si fueran un objeto:
Imagen: Ejemplo de JS Numbers Fuente: https://lenguajejs.com/javascript/fundamentos/variables-numericas/
rsort() Sin embargo, aunque existan varias formas de declararlos, no se suele utilizar la notación new con objetos primitivos ya que es bastante más tedioso y complicado que utilizar la notación de literales:
Imagen: Ejemplo de JS Numbers Fuente: https://lenguajejs.com/javascript/fundamentos/variables-numericas/
Cualquier parámetro pasado al new Number() que no sea un número, dará como resultado un valor NaN (ver más adelante).
Constante Numérica Existe una serie de constantes definidas en relación a las variables numéricas. La mayoría de ellas establecen límites máximos y mínimos, veamos su significado:
Imagen: Ejemplo de JS Numbers Fuente: https://lenguajejs.com/javascript/fundamentos/variables-numericas/
La diferencia entre Number.MAX_VALUE y Number.MAX_SAFE_INTEGER es que, el primero es el valor máximo que es posible representar en Javascript. Por otro lado, el segundo es el valor máximo para realizar cálculos con seguridad en Javascript.
Comprobaciones Numéricas En Javascript tenemos varias funciones para conocer la naturaleza de una variable numérica (número finito, número entero, número seguro o si no es representable como un número). Las podemos ver a continuación en la siguiente tabla:
Imagen: Ejemplo de JS Numbers Fuente: https://lenguajejs.com/javascript/fundamentos/variables-numericas/
2.11.
JS Numbers Methods
Por: Alexandro Camel Los valores primitivos (como 3.14 o 2014), no pueden tener propiedades y métodos (porque no son objetos). Pero con JavaScript, los métodos y propiedades también están disponibles para valores primitivos, porque JavaScript trata los valores primitivos como objetos al ejecutar métodos y propiedades.
El método toString() El toString()método devuelve un número como una cadena. Todos los métodos numéricos se pueden usar en cualquier tipo de números (literales, variables o expresiones):
Imagen: Ejemplo del Método toString Fuente: https://www.w3schools.com/js/js_number_methods.asp
El método toExponential() toExponential()devuelve una cadena, con un número redondeado y escrito en notación exponencial. Un parámetro define el número de caracteres detrás del punto decimal:
Imagen: Ejemplo del Método toString Fuente: https://www.w3schools.com/js/js_number_methods.asp
El método toFixed() toFixed()devuelve una cadena, con el número escrito con un número específico de decimales:
Imagen: Ejemplo del Método toString
Fuente: https://www.w3schools.com/js/js_number_methods.asp
toFixed(2)es perfecto para trabajar con dinero.
El método toPrecision() toPrecision()devuelve una cadena, con un número escrito con una longitud especificada:
Imagen: Ejemplo del Método toString Fuente: https://www.w3schools.com/js/js_number_methods.asp
2.12.
● ● ● ● ● ● ● ● ● ●
JS Operator
Por: Kevin Carcamo JavaScript tiene los siguientes tipos de operadores. Esta sección describe los operadores y contiene información sobre la procedencia de los mismos. Operadores de asignación Operadores de comparación Operadores aritméticos Operadores bit a bit Operadores lógicos Operadores de cadena Operador condicional (ternario) Operador coma Operadores unarios Operadores relacionales JavaScript tiene ambos operadores binarios y unarios, y un operador ternario especial, el operador condicional. Un operador binario requiere dos operandos, uno antes del operando y otro después del operador
2.13.
JS Operator
Por: Kevin Carcamo Math es un objeto incorporado que tiene propiedades y métodos para constantes y funciones matemáticas. No es un objeto de función. Math funciona con el tipo Number. No funciona con BigInt. A diferencia de los demás objetos globales, el objeto Math no se puede editar. Todas las propiedades y métodos de Math son estáticos. Usted se puede referir a la constante pi como Math.PI y puede llamar a la función seno como Math.sin(x), donde x es el argumento del método. Las constantes se definen con la precisión completa de los números reales en JavaScript. ● Propiedades Math.E
Constante de Euler, la base de los logaritmos naturales, aproximadamente 2.718. Math.LN2 Logaritmo natural de 2, aproximadamente 0.693. Math.LN10 Logaritmo natural de 10, aproximadamente 2.303. Math.LOG2E Logaritmo de E con base 2, aproximadamente 1.443. Math.LOG10E Logaritmo de E con base 10, aproximadamente 0.434. Math.PI Ratio de la circunferencia de un círculo respecto a su diámetro, aproximadamente 3.14159. Math.SQRT1_2 Raíz cuadrada de 1/2; Equivalentemente, 1 sobre la raíz cuadrada de 2, aproximadamente 0.707. Math.SQRT2 Raíz cuadrada de 2, aproximadamente 1.414.
2.14.
JS Date
Por: Yasmin Carillo El objeto Date le permite trabajar con fechas (años, meses, días, horas, minutos, segundos y milisegundos) A fecha de JavaScript puede ser escrito como una cadena: Sat Jun 11 2022 12:03:57 GMT-0600 o como un número: 1654970637114 1478386666530 Fechas escritas como números, especifica el número de milisegundos desde el 1 de enero de 1970, 00:00:00. Viendo fechas Se utiliza una secuencia de comandos para mostrar fechas dentro de un <p> elemento con id="demo”: Ejemplo <p id="demo"></p> <script> document.getElementById("demo").innerHTML = Date(); </script>
2.15.
JS Date Methods
Por: Yasmin Carrillo Fecha métodos permiten obtener y establecer los valores de fecha (años, meses, días, horas, minutos, segundos, milisegundos) El getTime() Método getTime() devuelve el número de milisegundos desde 1 de enero de 1970: Ejemplo <script>
var d = new Date(); document.getElementById("demo").innerHTML = d.getTime(); </script> El getFullYear() Método getFullYear() devuelve el año de una fecha como un número de cuatro dígitos: Ejemplo <script> var d = new Date(); document.getElementById("demo").innerHTML = d.getFullYear(); </script>
El getDay() Método getDay() devuelve el día de la semana como un número (0-6): Ejemplo <script> var d = new Date(); document.getElementById("demo").innerHTML = d.getDay(); </script>
2.16.
JS Arrays
Por: Diego Castellano El objeto Array de JavaScript es un objeto global que es usado en la construcción de arrays, que son objetos tipo lista de alto nivel. Una matriz o array puede contener muchos valores bajo un solo nombre y puede acceder a los valores haciendo referencia a un número de índice. Los arrays son objetos similares a una lista cuyo prototipo proporciona métodos para efectuar operaciones de recorrido y de mutación. Tanto la longitud como el tipo de los elementos de un array son variables. Dado que la longitud de un array puede cambiar en cualquier momento, y los datos se pueden almacenar en ubicaciones no contiguas, no hay garantía de que los arrays de JavaScript sean densos; esto depende de cómo el programador elija usarlos. La posición de un elemento en el arreglo es conocida como índice. En JavaScript, el índice del arreglo empieza con 0, e incrementa uno a uno con cada elemento. El número de elementos en el arreglo determina su longitud.
Imagen: Ejemplo de como crear un array en Javascript Fuente: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array
2.17.
JS Arrays Methods
Por: Diego Castellano arr.push(...items) – agrega ítems al final. arr.pop() – extrae un ítem del final. arr.shift() – extrae un ítem del inicio. arr.unshift(...items) – agrega ítems al principio. arr.slice([principio], [final]) - Devuelve un nuevo array copiando en el mismo todos los elementos desde principio hasta final (sin incluir final). principio y final pueden ser negativos, en cuyo caso se asume la posición desde el final del array.
Imagen: Ejemplo de cómo se utiliza el método .slice() Fuente: https://es.javascript.info/array-methods
arr.concat(arg1, arg2...) - crea un nuevo array que incluye los valores de otros arrays y elementos adicionales.
Imagen: Ejemplos de cómo se utiliza el método .concat() Fuente: https://es.javascript.info/array-methods
arr.forEach permite ejecutar una función a cada elemento del array.
Imagen: Ejemplos de cómo se utiliza el método .forEach() Fuente: https://es.javascript.info/array-methods
arr.indexOf(item, from) – busca item comenzando desde el index from, y devuelve el index donde fue encontrado, de otro modo devuelve -1. arr.lastIndexOf(item, from) – igual que el anterior, pero busca de derecha a izquierda. arr.includes(item, from) – busca item comenzando devuelve true en caso de ser encontrado.
desde
el índice from,
Imagen: Ejemplos de cómo se utilizan los métodos .includes() e .indexOf. Fuente: https://es.javascript.info/array-methods
arr.find(fn) – Busca y devuelve un elemento de un array si es que existe dentro de este.
Imagen: Ejemplos sobre cómo funciona y se utiliza el método .find() Fuente: https://es.javascript.info/array-methods
2.18.
JS Booleans
Por: Josue David Chitay Culajay Los booleanos son un tipo de dato primitivo comúnmente usado en lenguajes de programación. Por definición, un booleano tiene 2 posibles valores: true (verdadero) o false (falso).
El objeto Boolean También existe un objeto nativo de JavaScript. El valor pasado como primer parámetro es convertido a un valor booleano si es necesario. Si el valor es omitido, 0, -0, 0n, -0n (BigInt), null, false, NaN, undefined, document.all, o una cadena vacía (" ", ' '. ` `), el objeto tiene valor inicial de falso. Cualquier otro valor, incluidos cualquier objeto o la cadena de texto "false", crean un objeto de valor inicial verdadero.
Imagen: Ejemplo de Objetos Boolean Fuente: https://www.freecodecamp.org/espanol/news/booleanos-en-javascript-comousarlos/#:~:text=Los%20booleanos%20son%20un%20tipo,)%20o%20false%20(falso).
2.19.
JS RegExp
Por: Josue David Chitay Culajay Esta función permite buscar determinadas secuencias de caracteres en los textos y, si se desea, reemplazarlas por otra secuencia de caracteres cualquiera. Las regex son cadenas de caracteres basadas en reglas sintácticas que permiten describir secuencias de caracteres.
Notación literal y constructor Hay dos formas de crear un objeto RegExp: una notación literal y un constructor. ● Los parámetros de la notación literal se encierran entre barras y no utilizan comillas. ● Los parámetros de la función constructora no se encierran entre barras, pero utilizan comillas.
Imagen: Ejemplo de la notación Fuente: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/RegExp
Banderas en el constructor A partir de ECMAScript 6, new RegExp(/ab+c/, 'i') ya no arroja un TypeError ("no puedes proporcionar banderas cuando construyes una expresión regular a partir de otra") cuando el primer argumento es una RegExp y el segundo
argumento flags está presente. En su lugar, se crea una nueva RegExp a partir de los argumentos.
Imagen: Ejemplo de Banderas en el Constructor Fuente: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/RegExp
2.20.
JS Type Conversion
Por: Astrid Colindres En programación, la conversión de tipos es el proceso de convertir datos de un tipo a otro. Por ejemplo: convertir Stringdatos a Number. Hay dos tipos de conversión de tipo en JavaScript. ● Conversión implícita: conversión de tipo automática En ciertas situaciones, JavaScript convierte automáticamente un tipo de datos a otro (al tipo correcto). Esto se conoce como conversión implícita. ● Conversión explícita - conversión de tipo manual También puede convertir un tipo de datos a otro según sus necesidades. La conversión de tipo que se realiza manualmente se conoce como conversión de tipo explícita. En JavaScript, las conversiones de tipos explícitos se realizan mediante métodos integrados.
Imagen: Conversiones en JS (Información) Fuente: hhttps://res.cloudinary.com/practicaldev/image/fetch/s--GTaVMqci-/c_imagga_scale,f_auto,fl_progressive,h_900,q_auto,w_1600/https://thepracticaldev.s3.amazonaws.c om/i/ntakoxl60hh5rz0wu5wd.png
2.21.
JS Comparisons
Por: Astrid Colindres Para comparar dos valores, utiliza un operador de comparación. La siguiente tabla muestra los operadores de comparación en JavaScript: Operador Sentido < menos que > más grande que <= >= == !=
Menos que o igual a Mayor qué o igual a igual a no igual a
Imagen: Operadores Comparativos (Información) Fuente: https://www.javascripttutorial.net/wp-content/uploads/2016/11/JavaScript-ComparisonOperators.png
Capítulo III 3.
JQuery
3.1.
Jquery Hide/Show
Por: Diego René Almengor Carrillo Con jQuery, puede ocultar y mostrar elementos HTML con los métodos hide() y :show()
Imagen: JQuery Hide/Show Fuente: https://www.w3schools.com/jquery/jquery_hide_show.asp
3.2.
Jquery Fade
Por: Diego René Almengor Carrillo Con jQuery puede hacer que un elemento aparezca y desaparezca de la visibilidad. El método JQuery fadeIn() se usa para desvanecer un elemento oculto
Imagen: JQuery FadeIn() Fuente: https://www.w3schools.com/jquery/jquery_hide_show.asp
El método jQuery fadeOut()se usa para desvanecer un elemento visible.
Imagen: JQuery FadeOut() Fuente: https://www.w3schools.com/jquery/jquery_hide_show.asp
El método jQuery fadeToggle()alterna entre los métodos fadeIn()y .fadeOut()
Imagen: JQuery FadeToggle() Fuente: https://www.w3schools.com/jquery/jquery_hide_show.asp
El método jQuery fadeTo()permite desvanecerse a una opacidad dada (valor entre 0 y 1).
Imagen: JQuery FadeTo() Fuente: https://www.w3schools.com/jquery/jquery_hide_show.asp
3.3.
JQuery Slide
La función Slide, permite crear un efecto deslizante sobre un elemento. Contiene tres métodos principales, slideDown(), slideUP() y slideToggle().
Imagen: Ejemplo de Slide Fuente: https://www.w3schools.com/jquery/jquery_slide.asp
3.4.
JQuery Animate
Permite crear animaciones modificando las propiedades css de los objetos del DOM de nuestra página.
Imagen: Propiedades de animate Fuente: https://www.anerbarrena.com/jquery-animate-3787/
Los elementos de la sintaxis son los siguientes:
● Elemento (obligatorio): Este valor será normalmente el id del elemento (‘#’) que queremos manipular. También puede ser un class (‘.’) o etiqueta. ● Propiedades CSS (obligatorio): Propiedades de estilos CSS que queremos animar, los valores son los del listado anterior. ● Duración (opcional): Velocidad de la duración del efecto en milisegundos. También pueden pasarse los valores ‘fast‘, ‘slow‘ y ‘normal‘. Por defecto 400 milisegundos. ● Easing (opcional): Velocidad de la animación en diferentes puntos de la misma. El valor por defecto es ‘swing‘ (movimiento rápido al principio y final y lento por el medio de la animación), en cambio el valor ‘linear‘ ofrece una animación constante sin cambios de velocidad. ● Callback (opcional): Función/acción que se ejecutará cuando el efecto se haya completado satisfactoriamente.
Imagen: Ejemplo de animate Fuente: https://www.anerbarrena.com/jquery-animate-3787/
3.5.
JQuery Stop
Es un método incorporado en jQuery que se usa para detener las animaciones que se están ejecutando actualmente para el elemento seleccionado.
Imagen: Parámetros de Stop Fuente: https://www.anerbarrena.com/jquery-animate-3787/
● stopAll: Es un parámetro opcional y el valor de este parámetro es booleano. Este parámetro se utiliza para especificar si también se deben detener o no las animaciones en cola. El valor predeterminado de este parámetro es falso.
● goToEnd: Es un parámetro opcional y el valor de este parámetro es booleano. Este parámetro se utiliza para especificar si completar o no todas las animaciones inmediatamente. El valor predeterminado de este parámetro es falso.
Imagen: Ejemplo de stop Fuente: https://www.anerbarrena.com/jquery-stop5003/#:~:text=Vamos%20a%20repasar%20la%20función,delay()
3.6.
JQuery CallBack
Por: Monica Julisa Barrera Rodriguez Los callbacks aseguran que una función no se va a ejecutar antes de que se complete una tarea, sino que se ejecutará justo después de que la tarea se haya completado.
Imagen: ejemplo de callback. Fuente: https://www.freecodecamp.org/espanol/news/funciones-callback-en-javascript-que-son-loscallback-en-js-y-como-usarlos/
La función imprimir( ) toma otra función como parámetro y la llama en su interior. Esto es válido en JavaScript y lo llamamos "callback". Así que una función que se pasa a otra función como parámetro es una función callback. Pero eso no es todo. El siguiente ejemplo tiene un parámetro de devolución de llamada que es una función que se ejecutará después de que se complete el efecto de ocultación:
Imagen: Ejemplo de callback Fuente: https://www.w3schools.com/jquery/jquery_callback.asp
3.7.
JQuery Chaining
Con jQuery, puede encadenar acciones/métodos. El encadenamiento nos permite ejecutar múltiples métodos jQuery (en el mismo elemento) dentro de una sola declaración. Hasta ahora hemos estado escribiendo declaraciones jQuery una a la vez (una tras otra). Sin embargo, existe una técnica llamada encadenamiento, que
nos permite ejecutar varios comandos de jQuery, uno tras otro, en los mismos elementos.
Imagen: Ejemplo de chaning Fuente: https://www.w3schools.com/jquery/jquery_chaining.asp
3.8.
JQuery Get
Por: Emanuel Eduardo Beltran Gomez Carga datos del servidor mediante una solicitud HTTP GET.
Imagen: Ejemplo de GET Fuente: https://api.jquery.com/jquery.get/
3.9.
JQuery Set
Por: Cindi Fabiola Benito Sarceño Usaremos los mismos tres métodos de la página anterior para configurar el contenido: text()- Establece o devuelve el contenido de texto de los elementos seleccionados ● html()- Establece o devuelve el contenido de los elementos seleccionados (incluido el marcado HTML) ● val()- Establece o devuelve el valor de los campos de formulario ●
El siguiente ejemplo demuestra cómo establecer contenido con los métodos jQuery text(), html()y :val()
Imagen: JQuery Set
Fuente: https://ayudawp.com/wp-content/uploads/2009/03/codigo-jquery.jpg
3.10.
JQuery Add
Por: Cindi Fabiola Benito Sarceño Dado un objeto jQuery que representa un conjunto de elementos DOM, el .add()método construye un nuevo objeto jQuery a partir de la unión de esos elementos y los pasados al método. El argumento para .add()puede ser prácticamente cualquier cosa que $()acepte, incluida una expresión de selector de jQuery, referencias a elementos DOM o un fragmento de código HTML.
Imagen: JQuery Add Fuente:http://www.w3bai.com/es/jquery/traversing_add.html
3.11.
JQuery Remove
Por: Pablo Ismael Berganza Mendoza El método .remove() saca elementos del DOM. Úselo cuando desee eliminar el elemento en sí, así como todo lo que contiene. Además de los propios elementos, se eliminan todos los eventos vinculados y los datos de jQuery asociados con los elementos. Para eliminar los elementos sin eliminar datos y eventos. Considere el siguiente HTML:
Imagen: Ejemplo de JQ Remove Fuente: https://api.jquery.com/remove/
Podemos apuntar a cualquier elemento para su eliminación:
Imagen: Ejemplo de JQ Remove Fuente: https://api.jquery.com/remove/
Esto dará como resultado una estructura DOM con el <div>elemento eliminado:
Imagen: Ejemplo de JQ Remove Fuente: https://api.jquery.com/remove/
Si tuviéramos cualquier cantidad de elementos anidados dentro <div class="hello">, también se eliminarían. También se borran otras construcciones de jQuery, como datos o controladores de eventos.
También podemos incluir un selector como parámetro opcional. Por ejemplo, podríamos reescribir el código de eliminación de DOM anterior de la siguiente manera:
Imagen: Ejemplo de JQ Remove Fuente: https://api.jquery.com/remove/
Esto daría como resultado la misma estructura DOM:
Imagen: Ejemplo de JQ Remove Fuente: https://api.jquery.com/remove/
3.12.
JQuery CSS Classes
Por: Pablo Ismael Berganza Mendoza Con jQuery, es fácil manipular el estilo de los elementos. JQuery tiene varios métodos para la manipulación de CSS. Veremos los siguientes métodos: ● addClass ()- Agrega una o más clases a los elementos seleccionados ● removeClass ()- Elimina una o más clases de los elementos seleccionados ● toggleClass ()- Alterna entre agregar/eliminar clases de los elementos seleccionados ● css ()- Establece o devuelve el atributo de estilo
jQuery addClass () El siguiente ejemplo muestra cómo agregar atributos de clase a diferentes elementos. Por supuesto, puede seleccionar varios elementos al agregar clases:
Imagen: Ejemplo de JQ CSS Class Fuente: https://www.w3schools.com/jquery/jquery_css_classes.asp
jQuery removeClass () El siguiente ejemplo muestra cómo eliminar un atributo de clase específico de diferentes elementos:
Imagen: Ejemplo de JQ CSS Class Fuente: https://www.w3schools.com/jquery/jquery_css_classes.asp
jQuery toggleClass ()
El siguiente ejemplo mostrará cómo usar el método jQuery toggleClass(). Este método alterna entre agregar/eliminar clases de los elementos seleccionados:
Imagen: Ejemplo de JQ CSS Class Fuente: https://www.w3schools.com/jquery/jquery_css_classes.asp
3.13.
JQuery css()
El método css() establece o devuelve una o más propiedades de estilo para los elementos seleccionados.
Imagen: Ejemplo de JQ CSS Class Fuente: https://www.w3schools.com/jquery/jquery_css_classes.asp
3.14.
JQuery Dimensions
Por: Erwin Blanco Con jQuery, es fácil trabajar con las dimensiones de los elementos y la ventana del navegador.
Imagen: Ejemplo De la sintaxis Fuente: https://www.w3schools.com/jquery/jquery_dimensions.asp
Sexto Grado Estructura de Datos III
Capítulo I 1.1 MySQL Por: Pablo Contreras
MySQL es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual: Licencia pública general/Licencia comercial por Oracle Corporation y está considerada como la base de datos de código abierto más popular del mundo, y una de las más populares en general junto a Oracle y Microsoft SQL Server, todo para entornos de desarrollo web.
Imagen: Logo de MySQL Fuente: https://d1.awsstatic.com/asset-repository/products/amazon-rds/1024pxMySQL.ff87215b43fd7292af172e2a5d9b844217262571.png
1.1.1 Entorno de Trabajo Un ejemplo de entorno de trabajo es MySQL Workbench, es el entorno integrado oficial de MySQL. Fue desarrollado por MySQL AB, y permite a los usuarios administrar gráficamente las bases de datos MySQL y diseñar visualmente las estructuras de las bases de datos. MySQL Workbench reemplaza el anterior paquete de software, MySQL GUI Tools, también está Adminer (antes conocido como phpMinAdmin) es un frontend gratuito de MySQL para gestionar el contenido de las bases de datos MySQL (desde la versión 2, también funciona en las bases de datos PostgreSQL, Microsoft SQL Server, SQLite y Oracle). El administrador se distribuye bajo la licencia Apache (o GPL v2) en forma de un único archivo PHP (de unos 300 KiB de tamaño), y es capaz de gestionar múltiples bases de datos, con muchas pieles CSS disponibles. Su autor es Jakub Vrána, quien comenzó a desarrollar esta herramienta como una alternativa ligera a phpMyAdmin, en julio de 2007. Por último, phpMyAdmin es una herramienta gratuita y de código abierto escrita en PHP destinada a manejar la administración de MySQL con el uso de un navegador web. Puede realizar diversas tareas como crear, modificar o eliminar bases de datos, tablas, campos o filas; ejecutar sentencias SQL o gestionar usuarios y permisos. El software, que está disponible en 78 idiomas, es mantenido por The phpMyAdmin Project.
1.1.2 Instalación Para poder instalar phpmyadmin, debes haber instalado con antelación apache, mysql-server y php. Además, deben estar funcionando correctamente. Antes de nada, debes http://phpmyadmin.net.
descargar
phpmyadmin
de
su
página
web,
Imagen: Paso 1 Fuente: https://cafedixital.com/wp-content/uploads/2014/11/10.png
Descomprimimos el archivo descargado «phpMyAdmin-4.2.11-alllanguages.zip» en la carpeta htdocs, que es la carpeta desde donde sirve las páginas web del servidor Apache.
Imagen: Paso 2 Fuente: https://cafedixital.com/wp-content/uploads/2014/11/11.png
Ahora, en nuestro navegador web, podríamos abrir la página http://localhost/phpmyadmin/setup/index.php para rellenar los diferentes valores para configurar la conexión con mysql, el tipo de login, etc. Sin embargo, nosotros vamos a hacerlo más sencillo. También podríamos entrar en la carpeta de phpmyadmin, y veríamos un archivo llamado «config.sample.inc.php». Lo renombraríamos a «config.inc.php». Así usaríamos la configuración que trae como ejemplo, que funcionaría en una instalación típica. Pero tampoco lo vamos a hacer de esta forma.
Imagen: Paso 3 Fuente: https://cafedixital.com/wp-content/uploads/2014/11/12.png
Imagen: Paso 4 Fuente: https://cafedixital.com/wp-content/uploads/2014/11/13.png
Si siguiéramos este método, para poder acceder, deberíamos modificar un parámetro en el archivo. Buscaríamos la línea "$cfg['Servers'][$i]['AllowNoPassword'] = false;" y la cambiaríamos el valor a «true». La línea resultante sería "$cfg['Servers'][$i]['AllowNoPassword'] = true;" Con esto podríamos acceder a phpmyadmin con el usuario root y sin contraseña en la dirección http://localhost/phpmyadmin/index.php, en una instalación típica en local. Una vez hubiésemos accedido, podríamos poner una contraseña, añadir usuarios, etc.
Imagen: Paso 5 Fuente: https://cafedixital.com/wp-content/uploads/2014/11/13.png
En las últimas versiones de phpmyadmin no hace falta nada de todo esto. No necesita crear un archivo de configuración para que funcione correctamente. Pero no podemos acceder de momento porque en una instalación típica, el usuario root de mysql no tiene contraseña, pero phpmyadmin no permite acceder sin contraseña. Así que vamos a añadir una contraseña desde el cmd. Para eso, primero usamos «cd» y nos colocamos en la carpeta bin de la instalación de mysql. ● cd "C:\Program Files (x86)\MySQL\MySQL Server 5.6\bin" El comando para añadir la contraseña sería el siguiente: ● mysqladmin -u root password abc123. Este comando le asigna la contraseña «abc123.» al usuario root.
Imagen: Paso 6 Fuente: https://cafedixital.com/wp-content/uploads/2014/11/17.png
Con esto podremos acceder a phpmyadmin con el usuario root y la contraseña «abc123.» en la dirección http://localhost/phpmyadmin/index.php, en una instalación típica en local. Una vez hayamos accedido, podremos poner una contraseña, añadir usuarios, etc.
Imagen: Paso 7 Fuente: https://cafedixital.com/wp-content/uploads/2014/11/15.png
Y ya está. Finalmente accedemos al panel de control de phpmyadmin, donde podremos gestionar nuestras bases de datos.
Imagen: Paso 8 Fuente: https://cafedixital.com/wp-content/uploads/2014/11/16.png
1.1.3 Crear Base de Datos Para crear una nueva base de datos, dentro del phpMyAdmin, daremos click a «Nueva» y escribiremos en la zona «Crear base de datos» el nombre de la nueva base de datos. Seguidamente elegimos el cotejamiento que almacenaremos; Para textos en español será el utf8_spanish_ci, que corresponde al español tradicional, y permite que utilicemos la ñ y la ch y ll. Normalmente también podemos usar el utf8_general_ci, y si tuviéramos que crear una base de datos para almacenar textos en coreano, japonés, árabe, chino, etc; debemos elegir el correspondiente juego de caracteres. Finalmente, pulsamos el botón ‘Crear’ y el nombre de la base recién creada aparecerá en la columna de la izquierda, debajo del menú de selección que muestra las bases de datos que hay en el servidor y el nombre de la base de datos activa en la ruta superior (breadcrumb o migas de pan) que siempre nos indica donde estamos situados.
Imagen: Ejemplo de Creación de Base de Datos Fuente: https://adrimelus.com/blog/wp-content/uploads/2022/01/image.png
1.1.4 Llave Primaria En el diseño de bases de datos relacionales, se llama clave primaria o llave primaria o clave principal a un campo o a una combinación de campos que identifica
de forma única a cada fila de una tabla. Una clave primaria comprende de esta manera una columna o conjunto de columnas. Una clave primaria es un campo (o varios) que identifica 1 solo registro (fila) en una tabla. Para un valor del campo clave existe solamente 1 registro. Los valores no se repiten ni pueden ser nulos. Veamos un ejemplo, si tenemos una tabla con datos de personas, el número de documento puede establecerse como clave primaria, es un valor que no se repite; puede haber personas con igual apellido y nombre, incluso el mismo domicilio (padre e hijo por ejemplo), pero su documento será siempre distinto.
Imagen: Ejemplo de llave primaria Fuente: https://pc-solucion.es/wp-content/uploads/2018/04/que-es-primary-key-o-clave-primaria.jpg
1.1.5 Llave Foránea En el contexto de bases de datos relacionales, una clave foránea o llave foránea o clave ajena es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla que se refiere a una columna o grupo de columnas en otra tabla. Estrictamente hablando, para que un campo sea una clave foránea, éste necesita ser definido como tal al momento de crear una tabla. Se pueden definir claves foráneas en cualquier tipo de tabla de MySQL, pero únicamente tienen sentido cuando se usan tablas del tipo InnoDB.
Imagen: Ejemplo de llave foranea Fuente: https://4.bp.blogspot.com/-GXTupPQ0uQQ/W_7PiAyvujI/AAAAAAAAsXo/8mAx91QkPIHKsZiB8W0aO5RZO8K4_AFwCLcBGAs/s1600/ejemplo.JPG
1.1.6 Mostrar base de datos y tabla Por: Josué Cujá Para poder ver las tablas de una base de datos en Mysql solo hay que hacer esta simple consulta. mysql> SHOW TABLES; Esto mostrará todas las tablas de la base de datos. Ahora que si quieres ver las tablas de otra base de datos, donde tengas los permisos, usa la siguiente instrucción. Sintaxis: mysql> SHOW TABLES FROM DATABASE;
Imagen: Mostrar base de datos y tablas Fuente: https://i.stack.imgur.com/gk35H.png
1.1.7 Mostrar base de datos y tab
Tipos de datos básicos Por: Josué Cujá
Los tipos de datos son: tipos numéricos, tipos de fecha y hora, tipos de cadenas (caracteres y bytes) y tipos espaciales. Los tipos de datos MySQL principales son: cadena, numérico y fecha y hora.
1. Tipos numéricos: TinyInt: Es un número entero con o sin signo. Bit ó Bool: Un número entero que puede ser 0 ó 1 Integer, Int: Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo el rango va desde 0 a 429.4967.295 Float: Número pequeño en coma flotante de precisión simple. Decimal, Dec, Numeric: Número en coma flotante desempaquetado. 2. Tipos fecha: Date: almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. DateTime: Combinación de fecha y hora.
TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. Time: Almacena una hora. Year: Almacena un año. El rango de valores permitidos va desde el año 1901 al año 2155. 3. Tipos cadena: Char: Almacena una cadena de longitud fija. VarChar: Almacena una cadena de longitud variable. TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres.
Imagen: Tipos de datos básicos Fuente: https://rahsuarez.files.wordpress.com/2010/07/mysqlnumerico.png
Valores null Por: Josué Cujá NULL es un marcador de posición de valor para campos de tabla opcionales. MySQL trata el valor NULL de forma diferente a otros tipos de datos. Los valores NULL cuando se usan en una condición se evalúan como el valor booleano falso. La segunda columna "Null" especifica si el campo permite valores nulos; vemos que en el campo "código", aparece "NO" y en las demás "YES", esto significa que el primer campo no acepta valores nulos (porque es clave primaria) y los otros si los permiten.
Imagen: Valores null Fuente: https://guru99.es/wp-content/uploads/2018/04/a17_2.png
DML Por: Josué Cujá Significa Data Manipulation Language o Lenguaje de Manipulación de Datos, en español. Este lenguaje permite realizar diferentes acciones a los datos que se encuentran en una base de datos. Permite recuperar, almacenar, modificar, eliminar, insertar y actualizar datos de una base de datos. 1. SELECT: Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. 2. INSERT: Utilizado para cargar datos en la base de datos en una única operación. 3. UPDATE: Utilizado para modificar los valores de los campos y registros especificados. 4. DELETE: Utilizado para eliminar registros de una tabla de una base de datos.
Imagen: Insertar mysql. Fuente: https://www.c-sharpcorner.com/UploadFile/65fc13/ddldml-and-dcl-in-mysql/
Imagen: Seleccionar mysql. Fuente: https://www.c-sharpcorner.com/UploadFile/65fc13/ddldml-and-dcl-in-mysql/
Imagen: Actualizar mysql. Fuente: https://www.c-sharpcorner.com/UploadFile/65fc13/ddldml-and-dcl-in-mysql/
Imagen: Eliminar mysql. Fuente: https://www.c-sharpcorner.com/UploadFile/65fc13/ddldml-and-dcl-in-mysql/
1.2 Create Por: Williams Culajay La declaración CREATE TABLE se utiliza para crear una nueva tabla en una base de datos. Los parámetros de columna especifican los nombres de las columnas de la tabla. El parámetro de tipo de datos especifica el tipo de datos que puede contener la columna (por ejemplo, varchar, entero, fecha, etc.). Sintaxis: CREATE TABLE Persons (
PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), )
Imagen: Create Table Fuente: https://i0.wp.com/www.allthingssql.com/wp-content/uploads/2021/04/image5.png?resize=800%2C251&ssl=1
1.3 Alter Por: Williams Culajay
El comando SQL ALTER TABLE se utiliza para modificar la estructura de una tabla mediante la modificación de la definición de sus columnas. El comando ALTER se utiliza para realizar las siguientes funciones. 1), añadiendo, gota, modificar columnas de la tabla 2) Agregar y quitar restricciones 3) Habilitar y deshabilitar las restricciones
Agregar Columna ALTER TABLE table_name ADD column_name datatype; Eliminar columna ALTER TABLE table_name DROP column_name; Modificar Columna ALTER TABLE table_name MODIFY column_name datatype;
Imagen: Alert Table
Fuente: https://www.wikitechy.com/tutorials/sql/img/sql-images/alter-table-alter-column.jpg
Drop Por: José Culajay. DROP permite eliminar una tabla de una base de datos MySQL. Esta instrucción elimina toda la estructura, así como el contenido de la tabla. Sintaxis del comando DROP TABLE MySQL. DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name] [RESTRICT | CASCADE]; Instrucción DROP para eliminar una tabla. DROP TABLE table1; Cómo DROP varias tablas. DROP TABLE IF EXISTS table1, table2, table3; Cómo DROP una tabla temporal. DROP TEMPORARY TABLE IF EXISTS table4;
Imagen: Como “Dropear” Tablas Fuente: https://phoenixnap.com/kb/wp-content/uploads/2021/04/how-to-drop-a-table-in-mysql.png
Truncate Table Por: José Culajay La sentencia "truncate table" vacía la tabla (elimina todos los registros) y vuelve a crear la tabla con la misma estructura. La diferencia con "drop table" es que esta sentencia borra la tabla, "truncate table" la vacía. Sintaxis Truncate Table. truncate table libros; insert into libros (titulo,autor,editorial) values('Antología poética', 'Borges', 'Emece'); select * from libros;
Imagen:Sintaxis Truncate Table Fuente: https://www.tutorialesprogramacionya.com/mysqlya/temarios/imagentema/foto045.jpg
DDL Por: José Culajay Lenguaje de definición de datos (DDL) Las sentencias DDL se utilizan para crear y modificar la estructura de las tablas así como otros objetos de la base de datos. CREATE - para crear objetos en la base de datos. ALTER - modifica la estructura de la base de datos.
Imagen:Sintaxis Truncate Table Fuente: https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D0jASWN Hg5aY&psig=AOvVaw2CwisrWdx7m0HNuVd4ZFo&ust=1654493473879000&source=images&cd=vfe&ved=0CAwQjRxqFwoTCMjmlNPKlfgCFQAA AAAdAAAAABAE
Select. Por: José Culajay. La sentencia SELECT se utiliza para seleccionar datos de una base de datos. Se guarda el resultado en una tabla llamada "result-set". Sintaxis de la Sentencia SELECT 1. SELECT column_name,column_name FROM table_name; Sintaxis de la Sentencia SELECT 2.
SELECT * FROM table_name; EL asterisco * significa que queremos todas las columnas de la tabla.
Imagen: Select Fuente: http://www.edu4java.com/_img/sql/selectSql4-2.png
Imagen: Select Fuente: http://www.edu4java.com/_img/sql/selectFromSql4.png
Insert. Por: José Culajay. Según la sentencia de MySQL INSERT, su finalidad es la de insertar datos en las tablas de una base de datos. Sintaxis de MySQL INSERT. INSERT INTO usuarios (nombre, apellidos) VALUES ('Juan','Garcia Pérez');
Imagen: Insert
Fuente: https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.tutorialesprogramacionya.com%2Fmysqly a%2Ftemarios%2Fdescripcion.php%3Fcod%3D72%26punto%3D77%26inicio%3D&psig=AOvVaw19KMyII1 b2BSezvbvyk_Fj&ust=1654493994097000&source=images&cd=vfe&ved=0CAwQjRxqFwoTCKCm69nMlfg CFQAAAAAdAAAAABAD
Update. Por: Mishel Alvarado La sentencia UPDATE actualiza los valores de las columnas especificadas en las filas de una tabla, vista o apodo, o las tablas, apodos o vistas subyacentes de la selección completa especificada. La actualización de una fila de una vista actualiza una fila de su tabla base, si no se ha definido ningún activador INSTEAD OF para la operación de actualización en esta vista. Si se ha definido un activador de este tipo, en su lugar se ejecutará el activador. La actualización de una fila utilizando un apodo actualiza una fila del objeto de fuente de datos al que hace referencia el apodo.
Las formas de esta sentencia son: ●
La forma UPDATE Con búsqueda se utiliza para actualizar una o varias filas (determinadas opcionalmente por la condición de búsqueda).
●
La forma de UPDATE Con posición se utiliza para actualizar exactamente una fila (tal como determina la posición actual de un cursor).
Imagen: Update SQL SERVE Fuente: https://www.sqlshack.com/es/eliminar-en-cascada-y-actualizar-cascada-en-la-clave-externade-sql-server/
Delate. Por: Mishel Alvarado La sentencia DELETE suprime filas de una tabla, apodo o vista, o las tablas, apodos o vistas subyacentes de la selección completa especificada. La supresión de una fila de un apodo suprime la fila del objeto de fuente de datos al que hace referencia el apodo. La supresión de una fila de una vista suprime la fila de la tabla en la que se basa la vista si no se ha definido ningún activador INSTEAD OF para la operación de supresión en esta vista. Si se ha definido un activador de este tipo, en su lugar se ejecutará el activador.
Existen dos formas de esta sentencia: ●
La forma DELETE con búsqueda se utiliza para suprimir una o varias filas (determinadas opcionalmente mediante una condición de búsqueda).
●
La forma DELETE con posición se utiliza para suprimir una fila exactamente (determinada por la posición actual del cursor).
Imagen: DELATE SQL SERVE Fuente: https://www.tutorialesprogramacionya.com/sqlserverya/temarios/descripcion.php?cod=14&punto=8 &inicio=
Capítulo II 1.1 Patrón MVC y model 2 Por: Robinson Dávila Para comprender cómo trabajan los frameworks Web existentes es imprescindible conocer el patrón MVC.
Imagen: Figura modelo MVC Fuente: http://www.lsi.us.es/~javierj/investigacion_ficheros/Framework.pdf (pág. 2)
1.1.1 Definición El patrón Modelo-Vista-Controlador es una guía para el diseño de arquitecturas de aplicaciones que ofrezcan una fuerte interactividad con usuarios. Este patrón organiza la aplicación en tres modelos separados, el primero es un modelo que representa los datos de la aplicación y sus reglas de negocio, el segundo es un conjunto de vistas que representa los formularios de entrada y salida de información, el tercero es un conjunto de controladores que procesa las peticiones de los usuarios y controla el flujo de ejecución del sistema.
1.1.2 Uso Comúnmente utilizado para implementar interfaces de usuario, datos y lógica de control. Enfatiza una separación entre la lógica de negocios y su visualización. Esta "separación de preocupaciones" proporciona una mejor división del trabajo y una mejora de mantenimiento.
1.1.3 Modelo El modelo define qué datos debe contener la aplicación. Si el estado de estos datos cambia, el modelo generalmente notificará a la vista (para que la pantalla pueda cambiar según sea necesario) y, a veces, el controlador (si se necesita una lógica diferente para controlar la vista actualizada).
1.1.4 Vista
La vista define cómo se deben mostrar los datos de la aplicación.
1.1.5 Controlador El controlador contiene una lógica que actualiza el modelo y / o vista en respuesta a las entradas de los usuarios de la aplicación.
1.2 ¿Qué es un framework Web? Por: Robinson Dávila El concepto framework se emplea en muchos ámbitos del desarrollo de sistemas software, no solo en el ámbito de aplicaciones Web. Podemos encontrar frameworks para el desarrollo de aplicaciones médicas, de visión por computador, para el desarrollo de juegos, y para cualquier ámbito que pueda ocurrírsele. En general, con el término framework, nos estamos refiriendo a una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. En otras palabras, un framework se puede considerar como una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta.
1.2.1 Objetivos Los objetivos principales que persigue un framework son: acelerar el proceso de desarrollo, reutilizar código ya existente y promover buenas prácticas de desarrollo como el uso de patrones. Un framework Web, por tanto, podemos definirlo como un conjunto de componentes (por ejemplo, clases en java y descriptores y archivos de configuración en XML) que componen un diseño reutilizable que facilita y agiliza el desarrollo de sistemas Web.
1.2.2 ¿Para qué sirve un Framework? Cuando nos referimos a framework, hablamos del recurso que sirve para facilitar y agilizar las complejas tareas llevadas a cabo en estas distintas profesiones. En otras palabras, permite crear y diseñar las aplicaciones, plataformas o softwares que necesitan códigos libres de errores y estructuras que cumplan con los objetivos definidos. Más aún, hace posible que los costos se reduzcan, no solo por disminuir considerablemente las pruebas y los errores en cada uno de los programas, sino también, por simplificar los procesos y evitar que se esté expuesto a tantas horas de trabajo.
1.2.3 ¿Qué framework conviene usar? Como ya hemos visto, el framework es un tipo de herramienta clave a la hora de estructurar o esquematizar el desarrollo para un proyecto web o informático. Sin embargo, siendo varios los tipos de frameworks con diferentes características, los programadores y desarrolladores deben estudiar en detalle cada uno de los factores a tener en cuenta a la hora de elegir el más indicado para la creación de sus aplicaciones, programas o softwares.
Imagen: Ilustración de un framework web Fuente: https://i0.wp.com/indexdesarrollo.com/wp-content/uploads/2017/10/frameworks-en-disenoweb.jpg?fit=900%2C505&ssl=1
1.2.4 Ejemplo de framework en diseño web Bootstrap: Este framework es el más importante a nivel de uso, ya que detrás está nada más y nada menos que Twitter. Recientemente ha aparecido la versión 4, aunque la 3 sigue estando muy extendida. Se puede utilizar tanto integrando el framework en la web como enlazando a través de CDN. La ventaja que tiene es que al estar tan extendido es prácticamente un estándar y además es muy sencillo de utilizar.
Imagen: Logotipo de Bootstrap Fuente: https://i0.wp.com/indexdesarrollo.com/wp-content/uploads/2017/10/frameworks-en-disenoweb-bootstrap.png?resize=300%2C252&ssl=1
2.3 Tipos de Framework web Por: Edwin Sebastián De León Yas Como desarrollador, debe prestar atención al marco que mejor se adapte a sus necesidades. Ya sea que trabaje en un sitio web, ciencia de datos, administración de bases de datos o aplicaciones móviles, existen marcos de software para cada tipo de programación de software.
Framework de aplicaciones web
Un Framework es una herramienta de desarrollo web que, por lo general, se define como una aplicación o conjunto de módulos que permiten el desarrollo ágil de aplicaciones mediante la aportación de librerías y/o funcionalidades ya creadas. Los Framework hacen que el desarrollador no esté continuamente “reinventado la rueda” y se centre en el problema que quiere resolver y no en la implementación de funcionalidades que normalmente son de uso común y que ya están resueltas por otros.
Framework de ciencia de datos En ciencia de datos, un Framework de programación es un software que ya se ha desarrollado e incluye funcionalidad reutilizable para que pueda crear sus proyectos de manera fácil y rápida. Es por eso que es bastante práctico usar un Framework.
Framework de desarrollo móvil Utilizar Framework para desarrollar apps móviles nos permite afrontar diferentes proyectos en un entorno de trabajo cambiante de una forma eficaz. Se trata de una herramienta de desarrollo, cuya finalidad es facilitar las faenas a los desarrolladores.
2.4 Historia de Framework web Por: Edwin Sebastián De León Yas Un Framework es una herramienta de desarrollo web que, por lo general, se define como una aplicación o conjunto de módulos que permiten el desarrollo ágil de aplicaciones mediante la aportación de librerías y/o funcionalidades ya creadas.
Historia de los Framework Web La programación web ha ido evolucionando progresivamente a medida que se incrementan las funcionalidades cada vez más complejas que el mercado demandaba a los sitios web. Las páginas webs estáticas, en las que sólo se requería de código HTML, evolucionaron hacia las páginas dinámicas, en las que ya se necesitaba una aplicación en el servidor que interactuara con las bases de datos y construyera la página web según las peticiones del internauta. Estos lenguajes de programación, como el PHP o el ASP, eran simples pero muy potentes a la vez, y a medida que aumentaban las demandas, también fueron evolucionando hasta ser lenguajes más robustos como lo son ahora, que incorporan herramientas de Programación Orientada a Objetos (OOP según sus siglas en inglés) alcanzando así a los lenguajes de programación más completos. Una vez llegados a este punto, miles de programadores en todo el mundo se lanzaron a hacer sus propias aplicaciones web para dar respuesta a la creciente demanda en complejidad de los sitios webs. Y así comenzaron a surgir los Framework.
Línea de tiempo representativa:
Imagen: Linea del tiempo Frameworks Fuente: https://mareosdeungeek.es/grafico-con-la-historia-de-los-frameworks-web/
2.5 Ejemplos de Framework Web Por: Eldan André Escobar Asturias
En los últimos años, los frameworks web han mejorado mucho, y se han convertido en herramientas indispensables para los desarrolladores que quieren crear aplicaciones web optimizando tiempos, costes, y prestaciones. A continuación, se nos presentarán algunos ejemplos de los frameworks web más conocidos.
2.5.1 Symfony 4 Es uno de los frameworks más utilizados y recomendados por las empresas digitales y el preferido de muchos desarrolladores web. Symfony está compuesto por un amplio número de componentes que se pueden reutilizar, además de contar con una comunidad activa que siempre expone nuevos códigos para el desarrollo de posibles mejoras en las actualizaciones.
2.5.2 Laravel Es uno de los frameworks más jóvenes. Utiliza algunos componentes de Symfony y se caracteriza por sus funcionalidades preparadas para el desarrollo de aplicaciones modernas de fácil uso. Permite agregar información de utilidad mediante su directorio Packalyst.
Imagen: Logotipo del framework web descrito. Fuente: https://www.google.com/search?q=laravel
2.5.3 CakePHP Este framework web, es uno de los más antiguos, fue desarrollado en 2005, y cuenta hoy en día con licencia del MIT y ha llamado la atención de grandes empresas como Hyundai o BMW para todos sus proyectos web. Ha sacado a la luz su versión 3.6 con la que quiere volver a lo más alto del top de los frameworks. Entre sus novedades cuenta con una gestión de las sesiones mejorada, librerías independientes y componentes modulares para reducir el peso y mejorar la personalización de los proyectos; entre otros tantos recursos de hoy día.
Imagen: Logotipo del framework web descrito. Fuente: https://www.google.com/search?q=cakephp
2.5.4 CodeIgniter Este framework se creó en 2006 y durante mucho tiempo ha sido considerado uno de los frameworks de referencia en el mundo PHP, pero últimamente ha perdido terreno con los competidores. A pesar de esto Codeigniter no es complicado de aprender así que continúa siendo una buena opción a la hora de elegir un framework PHP.
2.5.5 Drupal Drupal cumple con las necesidades de cualquier compañía, está implementado para sitios web con una gran cantidad de tráfico, cuenta con un amplio abanico de módulos, con los cuales puedes cubrir toda la casuística asociada a tu modelo de negocio. Las mayores organizaciones gubernamentales y algunas de las más importantes compañías del panorama internacional cuentan con sitios desarrollados bajo este versátil framework.
Imagen: Logotipo del framework web descrito. Fuente: https://www.google.com/search?q=drupal
2.6 Aplicaciones Framework Web Por: Eldan André Escobar Asturias Al hablar sobre el desarrollo y las aplicaciones web, es crucial mencionar los frameworks. Los estándares de las aplicaciones web están aumentando a medida que pasa el tiempo y la complejidad de la tecnología también. Frameworks trae bibliotecas con código preescrito y características adicionales, que permiten a los desarrolladores crear aplicaciones web ricas e interactivas.
2.6.1
Django – Python Framework
Es un framework que funciona alrededor de la calidad de las aplicaciones web. Django se usa generalmente para el rápido desarrollo de API y aplicaciones web. Sin embargo, funciona mucho mejor para aplicaciones web con una sólida administración de back-end, y si manejas mucho tráfico en tu sitio o aplicación, Django es la mejor opción. Django se convierte en una excelente opción para la gestión de inventario, el sistema CRM y los sitios de redes sociales. SimilarTech afirma que 98,402 sitios web están utilizando el framework Django. Estas son algunas de las empresas más populares que usan Django: ● Opera ● Pixaby ● Prezi ● Disqus ● Instagram
Imagen: Framework Django y Python. Fuente: https://files.realpython.com/media/Get-Started-With-Django_Watermarked.15a1e05597bc.jpg
2.6.2
Angular
Este framework de frontend fue desarrollado por Google, que actualmente posee una alta demanda. Se ejecuta en JavaScript, que es realmente útil para crear sitios web de una sola página. Angular usa HTML para construir interfaces de usuario y
rompe la funcionalidad en los módulos. Además, este framework es compatible con la última versión de Chrome, Firefox, Edge, Android y iOS.
2.6.3
Express
Este framework es el número uno de Node.js, el cual adopta un enfoque minimalista y rápido para el desarrollo web. Empresas como Accenture, IBM y Uber utilizan este tipo de framework debido a su flexibilidad, soporte de aplicaciones completas y API REST.
Imagen: Imagen de framework web. Fuente: https://www.google.com/search?q=express+js
2.6.4
Vue.js
Vue.js es el más reciente framework para el desarrollo web, y además se está convirtiendo muy popular entre los desarrolladores debido a sus increíbles características. Es un framework progresivo, esto significa que tu actual proyecto se puede adaptar a Vue sin ningún problema. De hecho, Vue tiene un generador de proyectos CLI con un asistente intuitivo que hace posible esta adaptación. Esto sucede debido a su funcionalidad básica simple que se puede mejorar con bibliotecas, complementos y API.
Imagen: Ejemplo de framework web. Fuente: https://www.google.com/search?q=vue.js
1.3 Tecnologías de Framework web Por: Brandon Diaz
Cuando hablamos sobre esto podemos encontrar lo que son numerosas tecnologías, y es complicado definir cuál es la mejor tecnología ya que deriva de la forma en la que la usaremos, ya que el desarrollo web tiene muchas formas para poder utilizarse, desde ser utilizado para generar páginas Webs convencionales hasta lo que son los CRM, paneles de administración y softwares más complejos. A continuación, se le presentarán las tecnologías de Desarrollo Web y sus variantes.
1.3.1 Tecnologías frontend o del lado del cliente Es el tipo de tecnología de Desarrollo Web que se enfoca en la creación de interfaces de usuarios, para lograr una comunicación entre lo que son el cliente y el servidor Entre este tipo de tecnologías podemos encontrar las siguientes:
a. Java Script: El cual se encuentra como el lenguaje de programación multiplataforma el cual brinda a los sitios web con mayor interactividad y mayor dinamismo. b. Html: El cual se destaca como el lenguaje de marcado que se usa para la creación de los sitios webs el cual utiliza etiquetas para crear un conjunto de código. c. Css: Es una de las tecnologías que es utilizada por la gran mayoría de los programadores gráficos. Ya que se utiliza para poder modificar la representación visual de las etiquetas que se generan en HTML.
1.3.2 Tecnologías Backend o del lado del servidor Tecnología que se ocupa cuando se necesita utilizar la implementación de comportamientos de un servidor la web Entre este tipo de tecnologías podemos encontrar las siguientes: a. PHP: Utilizado mayormente para lograr la comunicación entre un sitio Web con los datos que son resguardados en el servidor. Lo cual hace con ayuda de MySQL y HTML para lograr un dinamismo mayor para las bases de datos. b. Python: Tecnología que destaca por su sencillez y potencia, y hace que programar sea más corto, generando una gran ventaja sobre los demás lenguajes de programación.
1.3.3 Frameworks y librerías Son un conjunto de herramientas y librerías de código preescrito que hacen más fácil el desarrollo de los proyectos, además que los desarrolladores lo utilizan para no ejecutar desde cero. Estas dan un marco de trabajo para lograr programar un lenguaje y las librerías son las que se encargan de los problemas en el código que son más legibles. Entre estas podemos encontrar:
a. Angular: Es uno de los Frameworks que es perfecto para las aplicaciones web ya que utiliza lenguaje HTML para relajar UI y siendo compatible con las diferentes versiones de Chrome, Firefox, Edge, IOS y Android. b. React: Creado con código abierto de Java Script, este es muy utilizado para la construcción de las interfaces de usuario. Es una biblioteca, pero por parte de los programadores la consideran un Framework por la excelencia de sus componentes.
Imagen: Ejemplo de las distintas tecnologías Web Fuente: https://medium.com/200codeblog/desarrollo-web-moderno-2018-3c92d0d68b07
2.8 Aplicaciones Framework Web Por: Mishel Alvarado
Los lenguajes de scripting son una popular familia de lenguajes de programación que se pueden utilizar para satisfacer rápidamente las exigencias más comunes. Los lenguajes de scripting antiguos se utilizaban más bien para aplicaciones muy concretas o como lenguajes pegamento, es decir, para pegar sistemas ya existentes. Con la aparición de la World Wide Web, se establecieron una serie de lenguajes de scripting para la utilización en servidores web. Puesto que los lenguajes de scripting simplifican el procesamiento de texto, son perfectos para la creación dinámica de páginas HTML.
Imagen: Lenguajes De Scripting Fuente: https://prezi.com/qg7vynuqdvip/lenguajes-de-script/
Capítulo III 3.1 Servidor Web Por: José Daniel Garcia Cubur Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado del servidor que realiza conexiones bidireccionales o unidireccionales y síncronas o asíncronas con el cliente y generando o cediendo una respuesta en cualquier lenguaje o aplicación del lado del cliente. El código recibido por los clientes es renderizado por un navegador web para la transmisión de todos estos datos suele utilizarse un protocolo generalmente se usa el protocolo HTTP para estas comunicaciones perteneciente a la capa de aplicación del modelo OSI en el término también se emplea para referirse al ordenador donde se ejecutan esas tareas.
Imagen: Servidor Web Fuente: https://concepto.de/wp-content/uploads/2019/04/servidor-web-e1555874258468.jpg
Un servidor web opera mediante el protocolo HTTP de la capa de aplicación del modelo OSI al protocolo HTTP se le asigna habitualmente el puerto TCP 80 de las peticiones al servidor suele realizarse mediante HTTP utilizando el método de petición get en el que el recurso se solicita a través de la URL al servidor web. En el segundo tipo de petición HTTP más utilizado, en la que los datos enviados al servidor se incluyen en el cuerpo de la misma petición con las cabeceras HTTP asignadas correspondientes respecto al tipo de petición generalmente se asocia con los fundamentos web en los datos suelen ser cifrados para enviarlos de manera segura al servidor. Por motivos de convención se incluye en la petición de la cabecera que indica el formato o codificación de los datos a enviar esta es variable valor en el formato separada cada par de variables por valor. Estos formularios de cabecera se envían automáticamente, pero en otras tecnologías web tal como AJAX si se desea hacer correctamente una petición POST debe ser especificado o instancia el objeto si se
utilizase el método get los datos que deberían de ser añadidos a la URL lo que expondría a ser vistos de forma directa.
3.2 Conexión de Red (SSL, TLS y HTTPS) Si un sitio web está protegido hace uso de un certificado SSL/TLS y utiliza algoritmos de cifrado simétrico, asimétrico y de intercambio de claves, hace uso de protocolos HTTPS se puede decir que el protocolo HTTPS necesita de un certificado SSL/TLS en el navegador podremos ver su un web es segura en este sentido, es muy importante el utilizar protocolos SSL/TLS cuando haya intercambio de información personal o sensible, por ejemplo para introducir contraseñas para acceder a páginas donde se pueda informar delicada y que pueda ser robada.
Imagen: Conexión de red (SSL, TLS y HTTPS) Fuente: https://guatemala.latamdominios.com/wp-content/uploads/2020/12/Que-es-SSLTLS_Latam-Dominios.jpg
En definitiva, estos tres protocolos el SSL ya no porque está obsoleto ya que están diseñados para mejorar la seguridad de los navegantes son los más importantes en los sitios webs modernos y que se pretende adaptarse a las exigencias actuales ya que en temas SEO como que una web cuente con estos protocolos. Y si empezamos por orden cuando nos referimos a SSL hablamos de secure sockets layer siendo su función es mantener segura una conexión de internet si vamos a enviar información o datos de un equipo conectado a la red a otro sea transmisión va segura así evitando que nuestras comunicaciones sean inspeccionadas en caso de que alguien intercepte dicha comunicación de esta forma pondremos a salvo la privacidad y seguridad de nuestras comunicaciones. Gracias al protocolo SSL en el que se logra que la información viaje de un origen a un destino sin que nadie pueda espiar la conexión ni tampoco alterarla si al introducir datos bancarios, envía contraseñas e información confidencial es vital que haya a través de una conexión segura, que actúe como una prueba de identidad contra la otra parte de la comunicación.
3.3 Uno o más clientes Por: José Daniel Garcia Cubur
Un cliente es cualquier que sirve para utilizar la web como por ejemplo los navegadores de internet, siendo algunos de estos navegadores Tor, Safari, Opera, etc. Normalmente cuando se instala un navegador en nuestro ordenador viene con una configuración predeterminada, pero todos nos dan la opción de configurarlos a gusto propio. Desde los años 60 los clientes sirven para permitir la comunicación entre el hardware y los servidores unos de los protocolos más antiguos son el protocolo Telnet el cual hoy en día los clientes trabajan de manera similar, en la que el cliente envía una petición a un servidor o a varios servidores y recibe datos que interpretan y envía de forma legible a un usuario ya que el cliente deberá utilizar un protocolo específico para comunicarse con el servidor.
Imagen: Cliente Web Fuente: https://sites.google.com/site/redesordenadoresgrupos/_/rsrc/1472781200361/inicio/03-que-esun-cliente-web/Funcionamiento-servidorWeb-pagest%C3%A1ticas.png?height=162&width=400
Actualmente se utilizan con frecuencia los siguientes clientes: ● Sistemas operativos: acceso al servidor a través de la línea de comandos utilizando el protocolo Telnet ● Navegador web: La comunicación entre el servidor y el navegador se realiza a través del protocolo HTTP. El navegador finalmente evalúa los documentos HTML recibidos o las aplicaciones JavaScript. ● Clientes de correo electrónico: Incluso la recuperación de correos electrónicos desde un servidor se realiza con una función de cliente. Los protocolos comunes son POP3, SMTP o IMAP. ● MMPORG: En los juegos de rol online, el software instalado actúa como un cliente, que recupera y proporciona la información necesaria para el juego desde un servidor. ● Clientes ligeros: Se utilizan para aplicaciones que se ejecutan sólo en un servidor y requieren un hardware mínimo. Las soluciones en la nube serían un ejemplo de ello. ● Clientes DNS: Estos clientes trabajan automáticamente en segundo plano y obtienen la dirección IP apropiada a una URL desde el servidor DNS apropiado. ● Aplicaciones basadas en la web: como herramientas de análisis web como Google Analytics, trabajando con clientes.
● Clientes VPN: Estos clientes establecen una conexión segura entre un servidor y un PC a través de una VPN (Virtual Private Network).
Imagen: Tipos de clientes Fuente: https://kinsta.com/es/wp-content/uploads/sites/8/2018/05/qu%C3%A9-es-dns.png
Actualmente existe una relevancia entre dos tipos de cliente influyentes los cuales son los clientes ricos y los clientes ligero, en la cual consiste que el cliente rico utiliza el servidor lo menos posible y realiza la mayoría de sus tareas localmente estos clientes suelen ser sistemas completamente modulares como entornos de desarrollo, y por lo contrario los clientes ligeros trabajan con el mejor hardware posible e intentan realizar todas las tareas en el lado del servidor. Como la relevancia para el SEO cuando se programa una página web en su presentación debe ser probada con diferentes clientes es decir que navegadores web por que puede que en muchos casos hay diferencias dependiendo del CMS que afecta a la usabilidad y por lo tanto a menudo también el propio número de conversiones, como el ajuste de las webs a los respectivos clientes y la prueba de la visualización de contenidos en diferentes navegadores pertenecientes por lo tanto dentro del ámbito del SEO.
3.4. Arquitectura Dos Capas Por: Wiliam González La arquitectura tradicional de cliente/servidor también es conocida como arquitectura de dos capas. Requiere una interfaz de usuario que se instala y se ejecuta en una PC o estación de trabajo y envía solicitudes a un servidor para ejecutar operaciones complejas. Por ejemplo, una estación de trabajo utilizada como cliente puede ejecutar una aplicación de interfaz de usuario que interroga a un servidor central de bases de datos.
Imagen: Arquitectura en Dos Capas Fuente: https://sites.google.com/site/ahitzainformatica/arquitectura-de-las-aplicaciones-wed
El desarrollo de aplicaciones en un ambiente de dos capas funciona adecuadamente, pero no es necesariamente lo más eficiente. Las herramientas para el desarrollo con dos capas son robustas y ampliamente evaluadas. Las técnicas de ingeniería de software de prototipo se emplean fácilmente. Las soluciones de dos capas trabajan bien en ambientes no dinámicos estables, pero no se ejecutan bien en organizaciones rápidamente cambiantes.
Imagen: Arquitectura en Dos Capas Fuente: https://desarrollo-de-aplicaciones0.webnode.mx/news/a1-1-3-aplicaciones-de-2-3-y-n-capas/
3.4.1 Cliente/Servidor La arquitectura cliente servidor tiene dos partes claramente diferenciadas, por un lado la parte del servidor y por otro la parte de cliente o grupo de clientes donde lo habitual es que un servidor sea una máquina bastante potente con un hardware y software específico que actúa de depósito de datos y funcione como un sistema gestor de base de datos o aplicaciones. En esta arquitectura el cliente suele ser estaciones de trabajo que solicitan varios servicios al servidor, mientras que un servidor es una máquina que actúa como depósito de datos y funciona como un sistema gestor de base de datos, este se encarga de dar la respuesta demandada por el cliente. Esta arquitectura se aplica en diferentes modelos informáticos alrededor del mundo donde su propósito es mantener unas comunicaciones de información entre diferentes entidades de una red mediante el uso de protocolos establecidos y el apropiado almacenamiento de la misma.
3.5. Arquitectura Tres Capas Por: Wiliam González La arquitectura de tres capas es un diseño reciente que introduce una capa intermedia en el proceso. Cada capa es un proceso separado y bien definido corriendo en plataformas separadas. En la arquitectura tradicional de tres capas se instala una interfaz de usuario en la computadora del usuario final (el cliente). La arquitectura basada en Web transforma la interfaz de búsqueda existente (el explorador de Web), en la interfaz del usuario final. El primer nivel consiste en la capa de presentación que incluye no sólo el navegador, sino también el servidor web que es el responsable de presentar los datos en un formato adecuado. El segundo nivel está referido habitualmente a algún tipo de programa o script. Finalmente, el tercer nivel proporciona al segundo los datos necesarios para su ejecución. Una aplicación Web típica recogerá datos del usuario
(primer nivel), los enviará al servidor, que ejecutará un programa (segundo y tercer nivel) y cuyo resultado será formateado y presentado al usuario en el navegador (primer nivel otra vez).
Imagen: Arquitectura en Tres Capas Fuente: https://sites.google.com/site/ahitzainformatica/arquitectura-de-las-aplicaciones-wed
Las diferentes capas suelen ser: *
Capa 1: Cliente de aplicación: Navegador Web
*
Capa 2: Servidor de Aplicaciones: Apache, Servidor Tomcat con servlets
*
Capa 3: Servidor de Datos: base de datos, servidor SMTP…
Imagen: Arquitectura en Tres Capas Fuente: https://edgarbc.wordpress.com/arquitectura/
Las llamadas de la interfaz del usuario en la estación de trabajo, al servidor de capa intermedia, son más flexibles que en el diseño de dos capas, ya que la estación solo necesita transferir parámetros a la capa intermedia. Con la arquitectura de tres capas, la interfaz del cliente no es requerida para comprender o comunicarse con el receptor de los datos. Por lo tanto, esa estructura de los datos puede ser modificada sin cambiar la interfaz del usuario en la PC. El código de la capa intermedia puede ser reutilizado por múltiples aplicaciones si está diseñado en formato modular. La separación de roles en tres capas, hace más fácil reemplazar o modificar una capa sin afectar a los módulos restantes.
1.1.1Capas de Presentación Por: William Guzman
es el sexto nivel del Modelo OSI y este se encarga de representar información de manera que aunque distintos equipos puedan tener diferentes representación de información de manera que los distintos equipos puede tener diferentes representaciones de caracteres como Números, Sonidos e imágenes
La capa de presentación maneja la sintaxis ya que el remitente y el receptor pueden usar diferentes modos de comunicación, lo que puede generar inconsistencias. Esta capa permite que los sistemas se comuniquen y se entiendan fácilmente en la misma red.
Esta capa es la primera en trabajar más el contenido de la comunicación que cómo se establece la misma. En ella se tratan aspectos tales como la semántica y la sintaxis de los datos transmitidos
Esta capa también permite cifrar datos y comprimirlos y actúa como traductor esta capa se representa en tres funciones principales las que son:
● Formateo de datos ● Cifrado de datos ● Compresión de datos
Imagen: Ejemplo del tamaño solicitado (información) Fuente: https://www.google.com/search?q=imagen+ejemplo
1.2 Capas de diseño Por: William Guzman En esta capa es donde se encarga que el usuario pueda ejecutar acciones y comandos en sus aplicaciones propias como ejemplo un botón que envía un email o un programa que envíe archivos mediante FtP, Que también permite la comunicación entre el resto de las capas inferiores, Nos proporciona protocolos que nos permite que los sistemas puedan transmitan datos y proporcionar información significativa a los usuarios finales La contribución más grande de esta capa conceptos:
es que explicita los siguientes tres
Servicios: Cada capa desempeña algunos servicios para la capa que está arriba de ella, esto es que, el servicio indica qué hace la capa, no la forma en que la entidad superior tiene acceso a ella. Interfaz: La interfaz de una capa indica a los procesos que están sobre ella cómo acceder, especificando parámetros y resultados que se esperan, no dice nada sobre cómo funciona la capa internamente. Protocolos: Una capa es quien debe decidir qué protocolos utilizar; puede utilizar los que desee en tanto consiga que se haga el trabajo (proporcione los servicios ofrecidos). También puede cambiarlos sin afectar el software de las capas superiores.
Imagen: capa de Aplicación Fuente: https://i.ytimg.com/vi/UihxFfw2LSU/maxresdefault.jpg
1.3 Capa de negocio Por: William Guzman
Es donde residen los programas que se ejecutan y se reciben peticiones de usuarios y se le envía una respuesta tras el proceso, tiene el nombre de capa de negociación ya que aquí es donde se establece todas las reglas que deben cumplirse.
Esta capa suele formarse por componentes firmemente acoplados que se ajustan al modelo de componentes distribuidos de J2EE.
En esta capa también tiene funciones importantes como procesamiento de datos, implementación de funciones de negocios, coordinación de varios usuarios y administración de recursos externos,
En esta capa se pueden montar componentes de J2EE individuales para ofrecer servicios de negocios complejos, como, por ejemplo, un servicio de inventario o uno de cálculo de impuestos.
Imagen: Capa de negocio Fuente: https://upload.wikimedia.org/wikipedia/commons/e/ea/Tres_capas.PNG
3.6. Qué es la seguridad de sitios web Por: Francisco Pérez Los servidores web, por su estructura, abren una ventana entre tu red y el mundo. El cuidado que tengas con el mantenimiento, la actualización, y manejo de tu internet harán tan vulnerable robar información desde un sitio web, para esto ya se han tomado medidas gracias programadores y desarrolladores para protegerlas en casos de extrema situación. En pocas palabras, seguridad web son las medidas aplicadas para proteger una página web y garantizar que los datos no están expuestos ante los cibercriminales. En este sentido, la seguridad web es un proceso continuo y una parte esencial de administrar un sitio web
Imagen: Protocolo de transferencia de hipertexto seguro Fuente: https://madridnyc.es/seguridad-web/
La ciberseguridad es importante porque los sitios web desprotegidos están expuestos a sufrir situaciones como:
● Robo de información guardada en el servidor web. ● Redireccionamiento a páginas web maliciosas. ● Mostrar anuncios no deseados. ● Utilizar las computadoras de los visitantes para hacer minería de criptomonedas.
● Realizar descargas de software malicioso. ● Explotación de datos personales, desde direcciones de correo electrónico hasta información de pagos
Para la ciberdelincuencia ya no importa el tamaño de la organización o sitio web, lo que importa en ellos es la manera de generar beneficios propios gracias a los conocimientos actuales sobre la informática
3.7. Amenazas contra las seguridades Por: Francisco Pérez Los tipos de amenazas relacionadas con la web son vulnerabilidades y riesgos que se conocen desde hace años. A continuación os enseñamos algunos de ellos. ● Secuencias De Comandos: Estos se encargan de Permitir a un atacante inyectar scripts del lado del cliente en una página web para acceder directamente a información crucial
● Inyección de SQL: Es un tipo de riesgo de aplicación web en el que un atacante intenta utilizar el código de la aplicación para acceder o corromper el contenido de las bases de datos
Después de que un servidor ya no puede transmitir de manera eficiente las solicitudes entrantes, comienza a trabajar excepcionalmente lento y finalmente niega las solicitudes entrantes de su servicio fallan Entre las amenazas más potentes por parte de los piratas informáticos son algunas como la inyección de código una típica donde se busca al usuario abrir enlaces externos esta hace una explotación de errores informáticos provocada por el procesamiento de datos no válidos, un atacante utiliza la inyección de código para implementar código nuevo
Imagen: Word wide web organización de seguridad Fuente: https://www.pickaweb.es/ayuda/que-es-http/
Ya por último al llegar a estas se hace una filtración de datos más general, no solo las amenazas enumeradas son los ataques más comunes que puede encontrar en un sitio web, pero a veces puede ser lo suficientemente perjudicial para el negocio, imagen, y marca. Nadie quiere su sitio web.
3.8. Vulnerabilidad Por: Francisco Pérez La vulnerabilidad de seguridad es un componente del código o del software que identifica los defectos de la seguridad de las aplicaciones, sistemas y redes para que los cibercriminales puedan beneficiarse de ellos. Normalmente forman parte de otro software y se distribuyen como parte de un de esos datos, normalmente están alojados en páginas web afectadas o algunas que necesitan subsistir de piratería.
Imagen: sitio web de dudosa procedencia Fuente : https://www.tekcrispy.com/2018/04/02/drupal-vulnerabilidad-1-millon-web/
los hackers pueden enviar emails de phishing para engañar a las víctimas potenciales para que visiten esas páginas web desde correos electrónicos o vía mensajes de texto donde cualquier dispositivo inteligente donde robar información sea posible estará en riesgo Los tipos más comunes de vulnerabilidades informáticas: ● sistemas o aplicaciones: son el tipo más común, son reconocibles porque las empresas que desarrollaron la aplicación o el sistema conocen perfectamente los puntos débiles
● Vulnerabilidades de diseño: se deben a fallos en el diseño de protocolos de redes o deficiencias políticas de seguridad.
Las vulnerabilidades casi siempre son por errores de programación, pero el recordar que en el trabajo de las personas siempre saldrán nuevas técnicas para penetrar los sistemas Hay que recordar que la información es de suma importancia, un sitio cualquiera al que le des tu información siempre será riesgo y blanco seguro para atacar, por esto es bueno implementar un antivirus aunque cuidado a veces este no puede hacer nada cuando los softwares ya no reciben actualizaciones por el fabricante, se vuelven por completo un sitio de riesgo seguro
Vulnerabilidad informática: los fallos más comunes ● Las vulnerabilidades informáticas más comunes incluyen: ● Contraseñas débiles.
● Software que ya está infectado con virus. ● Bugs. ● Falta de cifrado de datos. ● Falta de autorización. ● Redireccionamiento de URL a sitios no confiables. ● Falta de autenticación para una función crítica. ● Carga sin restricciones de tipos de archivos peligrosos y descarga de códigos sin controles de integridad. ● Dependencia de entradas no confiables en una decisión de seguridad. ● Cross-site scripting y falsificación.
Imagen: spam o noticias falsas de páginas en un solo click Fuente: https://www.2-spyware.com/remove-dropbox-virus.html
Nunca está de más recordar el factor humano son las menos consideradas, pero en algunos casos pueden tener mayor impacto que todas las anteriores. Se asocian con falta de formación o conciencia
3.10.1 Inyección SQL Por: Dylan Solares Antes de empezar a hablar de la inyección, primero vamos a aclarar qué significa SQL. El SQL, desarrollado en la década de 1970, es un lenguaje de consulta estructurado “Structured Query Language” que se ha convertido en el lenguaje estándar para la gestión de bases de datos. Cuando un sitio web necesita acceder a la base de datos que tiene en su servidor para buscar o editar información, utiliza SQL para procesar esa “consulta” o solicitud. La inyección de SQL es un tipo de ciberataque encubierto en el cual un hacker inserta código propio en un sitio web con el fin de quebrantar las medidas de seguridad y acceder a datos protegidos. Una vez dentro, puede controlar la base de datos del sitio web y secuestrar la información de los usuarios. Le explicamos cómo funcionan los ataques de inyección de SQL, cómo combatirlos y cómo una herramienta antivirus potente lo puede proteger contra las consecuencias.
3.10.2 Denegación de servicios
Por: Dylan Solares La denegación de servicio (DoS) suele referirse a un ataque que trata de hacer que un recurso informático no esté disponible para los usuarios previstos, inundando una red o un servidor con solicitudes y datos. También puede referirse a que un recurso, como el correo electrónico o un sitio web, no funciona como es debido. A menudo, la denegación no se debe a un ataque planificado, sino que es accidental y se produce porque hay demasiadas peticiones legítimas. Sin embargo, los ataques DoS maliciosos contra dispositivos de red son frecuentes, y cada vez se ve más una nueva clase de ataque DoS dirigido específicamente a las aplicaciones.
Imagen: Un ataque de denegación de servicio Fuente: https://www.osi.es/es/actualidad/blog/2018/08/21/que-son-los-ataques-dos-y-ddos
3.10.3 Inyección de comandos Por: Dylan Solares Es llamado Command Injection (o inyección de comandos) es una vulnerabilidad que permite a un atacante inyectar y ejecutar comandos directamente en el sistema operativo en el que se ejecuta tu aplicación. Con tal explotarla, los atacantes pueden generar distintos riesgos para una empresa, entre ellos: ● Robar credenciales de los usuarios o del sistema donde corre la aplicación. ● Dejar temporalmente inaccesibles las conexiones de los desarrolladores al servidor (SSH, Escritorio Remoto). ● Colocar aplicaciones maliciosas en tu servidor. ● Modificar la aplicación (cambiar imágenes, textos, o incluso borrarla completamente). ● Desafortunadamente, en algunos casos, incluso logran ejecutar comandos en tu servidor para convertirse en usuario administrador y obtener el control total.
Imagen: inyección de comandos Fuente: https://www.welivesecurity.com/wp-content/uploads/es-la/2013/04/Respuetas-ping.png
Sexto Grado Tecnología vocacional III
Capítulo I 1.1 W3C Por: Luis David Ortiz Fernández Fundado por Tim Berners-Lee es un consorcio internacional que genera recomendaciones y estándares que a su vez son son especificaciones o recomendaciones realizadas por el W3C para asegurarse que los diseñadores web y los fabricantes de navegadores utilizan el mismo lenguaje tecnológico que aseguran el crecimiento de la World Wide Web a largo plazo estándares que aseguran el crecimiento de la World Wide Web a largo plazo.
Imagen: Tim Berners-Lee fundador de W3C Fuente:https://upload.wikimedia.org/wikipedia/commons/4/4e/Sir_Tim_BernersLee_%28cropped%29.jpg
1.2 HTML y CSS Por: Luis David Ortiz Fernández HTML (HyperText Markup Language en español Lenguaje de marcado de Hipertexto), hace referencia al lenguaje de marcado para la elaboración de páginas web. Es un lenguaje de marcado que nos permite indicar la estructura de nuestro documento mediante etiquetas. Css (cascading style sheets en español Hojas de estilo en cascada) es un lenguaje de diseño gráfico para definir y crear la presentación de un documento estructurado escrito en un lenguaje de marcado.
Imagen: iconos de HTML y CSS Fuente: https://i.ytimg.com/vi/ni3LEc3kvas/maxresdefault.jpg
1.3 Gráficos Por: Luis David Ortiz Fernández
Es el nombre dado a cualquier imagen generada por una computadora. Originariamente se llamaba así a los histogramas, pero, por extensión, empezó a llamarse así a todas las representaciones visuales que el ordenador podía generar que no fueran texto. Con el tiempo, el término se ha generalizado, aplicándose a cualquier tipo de imagen de ordenador.
Imagen: Gráficos de página web con CSS Fuente: https://www.ajaxshake.com/public/usersFiles/main/make-a-graph-35_user_1_b327b.jpg
1.4 Audio y Video Por: Carlos Fabio Andrés Paz Hernández La Web es más que texto e información, también es un medio para expresar creatividad artística, visualización de datos y optimización de la presentación de información para diferentes audiencias con diferentes necesidades y expectativas. Al igual que los gráficos, el uso de video y audio en los sitios web mejora la experiencia de los usuarios, y W3C tiene varias tecnologías diferentes y complementarias que funcionan junto con HTML, SVG y secuencias de comandos para proporcionar a los creadores de páginas web y aplicaciones web las herramientas que necesitan. para ofrecer la mejor representación posible de su contenido.
Imagen: Ilustración de un video en HTML Fuente: https://www.w3schools.com/html/html5_video.asp
1.5 Internalización
W3C
Por: Carlos Fabio Andrés
Paz Hernández
El Consorcio World Wide Web (W3C) es una comunidad internacional donde las organizaciones Miembro, personal a tiempo completo y el público en general trabajan conjuntamente para desarrollar estándares Web. Liderado por el inventor de la Web, Tim Berners-Lee y el director ejecutivo (CEO) Jeffrey Jaffe, la misión del W3C es guiar la Web hacia su máximo potencial.
La finalidad de los estándares es la creación de una Web universal, accesible, fácil de usar y en la que todo el mundo pueda confiar. Con estas tecnologías abiertas y de uso libre se pretende evitar la fragmentación de la Web y mejorar las infraestructuras para que se pueda evolucionar hacia una Web con la información mejor organizada.
Imagen: Logo de la W3C Fuente: w3c-logo_5e1209da0b91c.png (957×512) (pnglib.com)
1.6 Redes Móviles Por: Dina Pérez La World Wide Web (W3C), organización responsable de definir los estándares para la Web, publica en agosto de 2015 la última revisión del documento «Standards for Web Applications on Mobile» en donde se define una serie de tecnologías que permiten extender las capacidades de las aplicaciones web cuando se ejecutan sobre dispositivos móviles. La idea del documento que define los estándares es facilitar la explotación de las capacidades de los dispositivos móviles, que permita una mejor experiencia de usuario, así como la consideración del impacto de algunas de las características y cómo estas podrían ser perjudiciales en la calidad de la aplicación sino se alinea con los estándares. Al construir aplicaciones web, no siempre será necesario se apliquen todos los estándares. Sin embargo, cada uno deberá evaluarse y aplicarse según las necesidades específicas del proyecto que se esté desarrollando.
Imagen: Ejemplo de una página que utiliza los estándares web. Fuente: https://www.xn--diseowebencadiz-1qb.com/tu-pagina-web-esta-optimizada-para-moviles/
1.7 Privacidad Por: Dina Pérez Privacidad y seguridad. Estos dos conceptos están relacionados, pero son diferentes. La privacidad se refiere a permitir que las personas realicen sus negocios de manera privada y no espiarlos o recopilar más datos de los estrictamente necesarios. La seguridad se refiere a la construcción de tu sitio web de una manera segura para que los usuarios malintencionados no puedan robar la información contenida en él o de tus usuarios.
Los dos nuevos estándares se llaman Expresión de Preferencias de Seguimiento (DNT) y Especificación de Cumplimiento sobre Normas de Seguimiento. El primero define los diversos mecanismos mediante los cuales los usuarios pueden hacer saber a los diversos servicios y aplicaciones cuáles son sus preferencias respecto a los temas de privacidad, y a la inversa, cómo los sitios web informarán de si van a cumplir con ello o no. El segundo es una especificación que intenta definir con detalle el significado de lo que se ha venido dando en llamar Do Not Track ("No quiero que me hagan seguimiento") y sus normas de funcionamiento en la práctica. Y es que en todo esto hace falta la colaboración de ambas partes: por un lado, la del usuario final, por otro la de los sitios web que va a visitar.
Imagen: Ejemplo de privacidad web Fuente: https://mundokodi.com/dia-de-privacidad-de-datos-ipvanish/
1.8 Historia y evolución Por: José Javier Petzey Coquix El científico informático británico Tim Berners-Lee creó el primer servidor web y un navegador web gráfico en 1990 mientras trabajaba en el CERN, la organización europea para la investigación nuclear en Suiza. Llamó a esta nueva ventana en internet la “WorldWideWeb”. Fue una interfaz gráfica fácil de usar para las computadoras NeXT. Por primera vez, los documentos de texto estaban enlazados entre sí en una red pública la web tal como la conocemos. Un año después, Berners-Lee le pidió a Nicola Pellow, estudiante de matemáticas del CERN, que escribiera Line Mode Browser, un programa para terminales de computadora básicas. Para 1993, la web explotaba. Universidades, gobiernos y corporaciones privadas vieron la oportunidad de una internet abierta. Todos necesitaban nuevos programas de computadora para accederla. Ese año se creó Mosaic en el National Center for Supercomputing Applications (NCSA) en la Universidad de Illinois Urbana-Champaign por el científico informático Marc Andreessen. Fue el primer navegador web popular y el primer antepasado de Mozilla Firefox. NCSA Mosaic se ejecutaba en computadoras con Windows, era fácil de usar y le daba a cualquiera que tuviera una PC el acceso a páginas web, salones de chat y bibliotecas de imágenes. El año siguiente (1994), Andreessen fundó Netscape y lanzó el Netscape Navigator al público. Fue un gran éxito y el primer navegador para la gente. También fue el primer movimiento en un nuevo tipo de guerra para los usuarios de internet.
En 1995, Netscape Navigator no era la única forma de estar en línea. El gigante del software Microsoft licenció el código del viejo Mosaic y construyó su propia ventana a la web, Internet Explorer. El lanzamiento inició una guerra. Netscape y Microsoft trabajaron febrilmente para hacer nuevas versiones de sus programas, cada uno intentando superar al otro con productos más rápidos y mejores. Netscape creó y lanzó JavaScript, que dio a los sitios web capacidades de computación que nunca habían tenido. Microsoft contraatacó con Cascading Style Sheets (CSS), que se convirtió en un estándar para el diseño de páginas web. Las cosas se salieron de control el 1997 cuando Microsoft lanzó Internet Explorer 4.0. El equipo hizo una letra “e” gigante y la puso en el césped de los cuarteles generales de Netscape. El equipo de Netscape rápidamente noqueó a la “e” gigante y puso su propia mascota, el dinosaurio de Mozilla encima. Entonces Microsoft comenzó a distribuir Internet Explorer con su sistema operativo Windows. En cuatro años, ya tenía el 75% del mercado y para 1999 ya había conseguido el 99%. La compañía enfrentó juicios antimonopolio por la medida y Netscape decidió abrir su código base y creó Mozilla sin fines de lucro, que creó y lanzó Firefox en 2002. Dándose cuenta que tener un navegador monopólico no era lo mejor para los usuarios y la web abierta, Firefox fue creado para dar opción a los usuarios de la web. En 2010, Mozilla Firefox y otros habían reducido la participación de mercado de Internet Explorer al 50%. Otros competidores aparecieron a finales de los 90 y principios de los 2000s, incluyendo Opera, Safari y Google Chrome. Microsoft Edge reemplazó a Internet Explorer con el lanzamiento de Windows 10 en 2015. Hoy hay un puñado de formas de acceder a internet. Firefox, Google Chrome, Microsoft Edge, Safari y Opera son los principales competidores. Los dispositivos móviles aparecieron durante la última década como la forma preferida de acceder a internet. Hoy, la mayor parte de los usuarios de internet solamente usan navegadores móviles y aplicaciones para estar en línea. Las versiones móviles de los principales navegadores están disponibles para dispositivos con iOS y Android. Mientras estas apps son muy útiles para propósitos específicos, solamente proveen acceso limitado a la web. En el futuro, la web probablemente se aleje más todavía de sus raíces hipertextuales para transformarse en un vasto mar de experiencias interactivas. La realidad virtual estuvo en el horizonte durante décadas (al menos desde el estreno de El Hombre Del Jardín en 1992 y el Nintendo Virtual Boy en 1995), pero la web podría finalmente hacerla llegar a las masas. Firefox ahora es compatible con la WebVR y A-Frame, que permiten a los desarrolladores construir sitios web de realidad virtual con facilidad y rapidez. La mayor parte de los dispositivos móviles es compatible con la WebVR y pueden usarse simplemente como auriculares con micrófono hechos de cartón. Una web de realidad virtual 3D como la que imaginó el autor de ciencia ficción Neal Stephenson puede estar a la vuelta de la esquina. Si ese es el caso, el navegador web en sí mismo quizás desaparezca y se convierta en una verdadera ventana a otro mundo. Sea cual sea el futuro de la web, Mozilla y Firefox estarán ahí para los usuarios, asegurando que tengan herramientas poderosas para experimentar la web todo lo que tenga para ofrecer. La web es para todos y cada uno debería tener control de su experiencia en línea. Es por eso que damos herramientas de Firefox para proteger la privacidad del usuario y nunca venderemos datos del usuario a empresas de publicidad.
1.9 Versiones Por: José Javier Petzey Coquix Microsoft presentó Internet Explorer en agosto de 1995, basándose en una versión de Mosaic. Internet Explorer 1 no estaba incluido en Windows 95, pero ante el éxito de Netscape y la creciente popularidad de la web, Microsoft pisó el acelerador: Se publicaron versiones prácticamente cada año: IE 2 (noviembre de 1995), IE 3 (agosto de 1996), IE 4 (septiembre de 1997), IE 5 (marzo de 1999), IE 5.5 (julio de 2000) e IE 6 (agosto de 2001). IE se incluyó en Windows a partir de Windows 95 OSR1 (febrero de 1996), lo que dio lugar a demandas por abuso de posición dominante en Estados Unidos y Europa. Cada versión incluía nuevas características avanzadas, superando a Netscape en muchos aspectos. A partir del año 2000, Internet Explorer dominó absolutamente el mercado y Microsoft pisó el freno: Las versiones se espaciaron: Internet Explorer 6 SP1 (septiembre de 2002), Internet Explorer 6 SP2 (agosto de 2004). Las nuevas versiones no incluían prácticamente nuevas características. En 2003, Microsoft anunció que sólo se publicarían nuevas versiones de Internet Explorer cuando se publicaran nuevas versiones de Windows (como así ha sido). A partir de 2005, ante la aparición de Firefox, Microsoft volvió a pisar el acelerador, aunque su uso global ha ido bajando desde entonces: Se fueron publicando nuevas versiones a un ritmo cada vez más rápido: IE 7 (octubre de 2006), IE 8 (marzo de 2009), IE 9 (marzo de 2011) e IE 10 (septiembre de 2012). Las nuevas versiones han ido incluyendo características avanzadas y, sobre todo, respeto a las recomendaciones del W3C. Tanto IE 7 como IE 8 estuvieron disponibles para Windows XP, probablemente debido al fracaso de Windows Vista como sustituto de Windows XP. Durante el primer año de IE 7, para instalarlo era necesario validar Windows, pero desde entonces esa limitación no se ha vuelto a utilizar. Las versiones más modernas de IE que se podían instalar en cada versión de Windows son las siguientes: En Windows XP, la versión más moderna que se podía instalar era IE 8 (publicado en marzo de 2009). En Windows Vista, la versión más moderna que se podía instalar era IE 9 (publicado en marzo de 2011). En Windows 7, 8 y 8.1 la versión más moderna que se puede instalar es IE 11 (publicado en octubre de 2013). En Windows 10, el navegador Edge se actualiza automáticamente a la última versión de Edge.
1.10. Ejemplos de navegadores web Por: Daniel Estuardo Puluc Patzán
Google Chrome: Navegador desarrollado por la empresa Google, cuenta con más de 750 millones de usuarios, provee una interfaz sencilla y funcional, permite la navegación a través de pestañas, tiene actualizaciones periódicas y mejoras, es muy seguro y ofrece diferentes complementos que nos ayudan a mejorar la experiencia de navegación por la web.
Imagen: Google Chrome Fuente: https://cdn.andro4all.com/andro4all/2021/09/Google-Chrome-en-mviles-y-PC.jpg?width=1200
Microsoft Edge: Se incorporó al sistema operativo Windows, para ser el directo reemplazo de Internet Explorer, significó un paso más grande en cuanto a diseño y funcionalidad, proveyendo de un sistema más llamativo e intuitivo para manejar. Su interfaz es similar a la que podemos observar en Chrome, por ejemplo, posee funciones de búsqueda e integra complementos, además de poder integrar el asistente de voz Cortana, de propiedad de Microsoft.
Imagen: Microsoft Edge Fuente: https://br.atsit.in/es/wp-content/uploads/2021/07/microsoft-edge-92-lanzado-con-variascaracteristicas-nuevas-incluido-eladministrador-de-contrasenas-mejorado.jpg
Opera: De los navegadores que ha ganado mucha popularidad por las diversas características que lo rodean, siendo la más destacada la velocidad además de las distintas herramientas que podemos utilizar, sin necesidad de instalar extensiones, es gratuito y se puede utilizar desde una computadora hasta un dispositivo con Android o iOS, provee de muchas características interesantes, como los tableros, la barra lateral que nos brinda acceso a otras herramientas e incluso a diferentes sistemas de mensajería y entretenimiento.
Imagen: Navegador Opera
Fuente: https://cdn-production-operawebsite.operacdn.com/staticfiles/assets/images/sections/2021/hero-top/browsers-opera/herotop__opera-browser@2x.ec5b9273d66a.webp
Firefox: Fue desarrollado por la Corporación Mozilla, en el año 2002, es multiplataforma, siendo el segundo navegador web más utilizado, provee de un navegador muy seguro, menos propenso a los virus, es un navegador bastante veloz y tiene actualizaciones muy frecuentemente, provee navegación por pestañas, correcciones ortográficas, navegación privada, provee del motor de búsqueda que nosotros necesitemos.
Imagen: Mozilla Firefox Fuente: https://wwwhatsnew.com/wp-content/uploads/2021/05/Firefox.jpg
Capítulo II 2. Integración CMS+CRM+ERP Por: Daniel Estuardo Puluc Patzán
A nivel empresarial se requieren, en buena medida, los diversos sistemas de gestión para las diferentes áreas de la empresa, cada área empresarial, así como el usuario final, requiere de un módulo apartado para satisfacer las distintas necesidades que se presenten con el fin de ganar la satisfacción del cliente que solicite los servicios. Muchos de estos sistemas tienen que ser controlados en ocasiones por personas con pocos o bajos conocimientos en desarrollo a quienes, se les hará cuesta arriba el desarrollo de un sistema complejo, por lo que estas integraciones solventan el problema, el CMS, CRM y ERP, buscan tecnificar la empresa o compañía, cada uno teniendo distintas aplicaciones en la empresa.
2.1.1 CMS (Content Management System o Sistema de Gestión Dotado de diferentes funciones para que una persona sin muchos conocimientos de desarrollo, pueda gestionar por ella misma el contenido de un sitio web, como textos, imágenes, información y en general una personalización para mantener al día un sitio web con los distintos componentes necesarios. Permite distintas funcionalidades, como la principal que es la creación y manipulación de un sitio web, añadir distintos plugins y extensiones, esto con el fin de poder ampliar la gama de posibilidades que permite el sistema, se puede trabajar con distintos medios multimedia, como imágenes y vídeos, son fáciles de usar, teniendo una interfaz intuitiva. Un CMS se ejecuta desde el servidor web donde esté alojado, por lo que se accede a él a través de una conexión a internet, para poder trabajar, capaz de asignar permisos de publicación para distintos tipos de usuarios. Actualmente incorpora los estándares web necesarios para un funcionamiento óptimo de la web. Algunos ejemplos que encontramos sobre estos sistemas pueden ser: Wordpress, Joomla, PrestaShop y Magento.
Imagen: Sistemas CMS Fuente: https://www.departamentodeinternet.com/wp-content/uploads/2011/05/cms-2.jpg
2.1.2 CRM (Customer Relationship Management o Gestión de Relación con los Clientes) Es un software que permite la gestión y administración de relación con los clientes de una empresa, utiliza la automatización para hacer más fáciles las tareas como la organización de los contactos de una empresa. Permite a la empresa que haga uso del sistema la centralización de los datos de todos los clientes, como una gran base de datos, tiene un objetivo claro, mejorar la satisfacción del cliente. Está muy
relacionado a la venta y al marketing que trabaja la empresa. Se encarga de administrar la información o datos de las ventas, conocido también como el módulo de ventas que automatiza la acción entre un cliente y el punto de venta, así como de los clientes. Se puede comercializar de una manera más rápida y eficaz, el usuario o cliente tiene que sentirse satisfecho, y que se cumplan sus expectativas acerca de la empresa en cuestión. Estas relaciones se gestionan desde el marketing y las ventas, hasta el soporte y servicio al cliente. Este sistema también beneficia a la empresa, ya que, al tener los datos centralizados, permiten que los distintos departamentos que necesiten acceder a los distintos datos, puedan hacerlo más fácilmente desde cualquiera de sus áreas, para gestionar diversas actividades que están relacionadas con el consumidor final. Entre algunos de los ejemplos que podemos mencionar de sistemas CRM tenemos a: SalesForce, Microsoft Dynamics, Netsuite y Base.
Imagen: Constitución CRM Fuente: https://svagnini.files.wordpress.com/2014/11/crm-strategy.png?w=300&h=297
2.1.3 ERP (Entreprise Resource Planning o Sistemas de Planificación de Recursos Empresariales) Los sistemas más robustos en cuanto a funcionalidades nos referimos desde el punto de vista empresarial, dotan de una automatización de distintos procesos internos de la empresa, manejan la producción, la logística, distribución, inventario, envías, gestiones de tipo monetarias, como la contabilidad, las nóminas, entre otras funciones que encontramos en una empresa. La idea de un ERP, es trabajar en módulos de distintas funcionalidades, puede existir un módulo para cada área de la empresa y es a partir de esta sistematización, que encontramos la intervención y el control de muchas actividades. Estos sistemas están muy relacionados con las empresas de gran tamaño y complejidad. La automatización de los distintos procesos empresariales genera una mejor optimización del tiempo y recursos, todos los departamentos coexisten de manera separada y a su vez se sincronizan para llevar a cabo las diversas tareas. Hacen fluir la información a lo largo y ancho de la empresa, desde la gestión de los recursos humanos, hasta la entrega del producto final o servicio, independientemente de la empresa, es el más complejo de los tres sistemas, creado con el fin de proveer una solución al arduo trabajo que representa la gestión interna de una empresa.
Imagen: Módulos de ERP Fuente: https://www.ibiscomputer.com/images/2019/06/12/ventajas-erp.jpg
2.2 Historia Por: Fernando Jose Raxon Pirir Los cms, esta coyuntura tan adversa cambió cuando los primeros sistemas de administración de contenidos se vieron fortalecidos por los notables adelantos de la programación HTML, PHP e Internet, desarrollados fundamentalmente por el creciente número de organizaciones que publicaban una gran cantidad de contenido en Internet y necesitaban de continuas actualizaciones o personalizar sus websites, como era el caso de revistas en línea, páginas de agencias de noticias, periódicos y publicaciones corporativas, etcétera. Con el tiempo, resultó que desde comienzos de los 90’s el contenido web se multiplicó extremadamente rápido, y la gente comenzó a desear escribir su propio contenido y publicar sus propios textos y fotografías. Es ese preciso momento el que puede ser considerado como el nacimiento de los CMS, tal como los conocemos. Se hacía imprescindibles soluciones nuevas, y la industria los buscó. Así también el CRM nació siendo un CRM de BackOffice porque todos los ERPs tienen su propio módulo de CRM. Microsoft pasó de tener un CRM de BackOffice en sus ERPs, a desarrollar uno específico que está integrado en toda la plataforma, pero tiene una entidad propia, colocando al cliente en el centro de su estrategia empresarial. Los ERP comenzaron su historia llamándose Sistemas de Control y Planeación de Manufactura (MPC, Manufacturing Planning and Control) que existieron desde los primeros días de la revolución industrial, para automatizar varias tareas y mejorar la exactitud, confiabilidad y predictibilidad de la manufactura. Después tuvieron mayor importancia bajo la denominación de Punto de Reorden (ROP), estos sistemas se automatizaron con la introducción de los mainframes a finales de 1950 e inicios de 1960 Posteriormente llegaron los MRP que tuvieron su origen durante la Segunda Guerra Mundial cuando Estados Unidos utilizo programas especializados para organizar y controlar la logística de sus unidades.
2.3 Integración Por: Fernando Jose Raxon Pirir En general, los sistemas ERP y CRM tienden a permanecer aislados, ya que sus arquitecturas contrastantes dificultan la integración. Aquellos que intentan crear una conectividad perfecta entre los dos a menudo recurren a la integración personalizada punto a punto. Este método es frágil, costoso y difícil de mantener. Con las conexiones
punto a punto, un desarrollador necesita administrar la conectividad e implementar cambios. Además, los cambios afectan a todo el sistema, dejando espacio para errores. Estas integraciones punto a punto ofrecen una solución a corto plazo, pero se vuelven demasiado complicadas a medida que las empresas crecen. Otro método al que recurren las empresas es la entrada de datos de "silla giratoria". Este método requiere que un individuo recupere manualmente los datos de un sistema y los ingrese en otro. Tal procedimiento es propenso a errores y requiere una gran cantidad de tiempo y recursos humanos. Algunas empresas simplifican la tarea empleando cargadores de datos. Sin embargo, cuando se trabaja con sistemas CRM ofrecidos por un proveedor que no sea Salesforce.com, se requiere una solución diferente. Con dos sistemas diferentes incapaces de comunicarse entre sí, se vuelve casi imposible rastrear todas las interacciones con los clientes y obtener información a través de una interfaz. Los representantes de ventas pasan tiempo saltando entre aplicaciones para crear una vista de 360 grados de sus clientes, lo que ralentiza los procesos de ventas. Como la falta de integración crea un espacio de trabajo ineficiente, las empresas necesitan una solución robusta de integración de CRM y ERP para agilizar sus procesos comerciales. CRM y ERP son dos herramientas que buscan optimizar la gestión del negocio, pero a través de enfoques diferentes. Mientras el ERP apuesta por automatizar los procesos internos de las distintas áreas que componen la empresa, un CRM se centra en la gestión de los clientes y en el incremento de las ventas. Se trata de dos soluciones que se complementan a la perfección, utilizándolas de manera conjunta se mejora la eficiencia de los procesos comerciales y se simplifica la toma de decisiones.
2.4 ERP versus software de gestión Por: Devin Reyes Nosotros tenemos entendido que ERP es el software de gestión empresarial que lo reúne todo: la planificación, el proceso de fabricación, la gestión de inventarios, el envío, las ventas, la nómina, los acreedores, el nombre. Mientras que un software de gestión de contenido permite añadir, actualizar y eliminar los textos e imágenes de nuestra web de forma sencilla y segura. Pero entre los dos hay diferencias, ya que cada uno cumple una función muy diferente respecto uno del otro, y entre algunas de esas diferencias tenemos: -
Desde el ERP se van a gestionar todos los aspectos relativos al stock, almacenes, facturación, etc. Por el contrario, desde el CMS vamos a administrar los contenidos y la estructura del ecommerce, es donde se realizarán las compras, figurarán las formas de pago, etc.
-
Mientras que el ERP se encarga de temas internos, el CMS se encarga de temas más generales y comunes, siempre hablando dentro de la empresa.
-
Un ERP es un poco más complejo de usar, ya que maneja temas más privados e importantes dentro de la empresa.
-
El CMS no va más allá de temas de productos y lo referido al ecommerce.
-
El ERP debe ayudar a mejorar la empresa en temas de decisiones más informadas, reducir el número de errores y mejorar la transparencia en toda la organización.
-
El CMS nos debe de reducir el tiempo y nos debe de dar facilidad en lo referido al ecommerce.
Imagen: CMS contra ERP Fuente: Imagen propia
2.5 Ventajas y desventajas (CRM, CMS y ERP) Por: Devin Reyes Ventajas del ERP:
-
Con un ERP una empresa puede tener todos sus procesos o archivos en un mismo sistema, de forma que pueda acceder a ellos a la vez y desde el mismo lugar.
-
Con un buen ERP se pueden gestionar muchos procesos de forma automática. - Un ERP puede mostrar la información en tiempo real de la empresa, de forma que se puedan considerar las posibilidades de acción y cuál de las diferentes opciones es la más acertada.
Desventajas del ERP:
-
Es un programa eficiente y, como tal, es imprescindible realizar un desembolso considerable de dinero en un primer momento.
-
Todos en la empresa, de una forma u otra, terminarán teniendo algún tipo de contacto con el ERP. Esto obliga a que todos ellos se formen de la manera correcta para poder utilizarlo. Puede generar retrasos en la producción.
-
Tiempo de adaptación, el inconveniente más evidente y, a la vez, más prolongado. Ventajas del CMS:
-
El uso de un CMS puede acelerar drásticamente el proceso de desarrollo de un sitio web, ya que muchas de las funcionalidades están listas para usar.
-
Los CMS de código abierto son gratuitos para descargar e instalar.
-
El desarrollo con un CMS es definitivamente menos costoso que uno desde cero.
Desventajas del CMS:
-
Algunos CMS pueden devorar los recursos del servidor y provocar una caída del servicio.
-
Un CMS no actualizado puede hacer mucho daño a un sitio web y conducir a graves vulnerabilidades de seguridad.
-
Para algunas plataformas mantenidas por la comunidad, el soporte directo puede ser difícil de encontrar.
Ventajas del CRM:
-
El uso de un sistema CRM es de gran utilidad para persuadir a aquellos clientes que se sienten más predispuestos a adquirir los productos o servicios de la empresa.
-
En un CRM se almacena gran cantidad de información sobre los clientes, lo que resulta de gran utilidad para identificar sus necesidades y ofrecerle lo que mejor responda a las mismas.
-
El uso de un CRM permite el análisis de las acciones de marketing que mayores beneficios ha reportado y cuáles han sido menos rentables, lo cual ayuda mucho en las acciones del marketing dentro de la empresa.
Desventajas del CRM:
-
Hacer una transición de procesos que se hacían manualmente a procesos automatizados puede resultar algo complejo de comprender y de implementar.
-
Ralentización de procesos al tener que registrar las acciones comerciales y sus detalles en el programa, sobre todo los traspasos masivos de información cuando se arranque el software.
-
Coste de la adquisición del mismo y el coste de la formación a los empleados para que aprendan a usar el programa.
Imagen: CMS, CRM y ERP Fuente: https://www.lucasweb.it/sviluppo-software-crm-erp-cms
2.6 Seguridad en la Web Por: Devin Reyes Es un componente particular de las principales ideas de ciberseguridad y seguridad informática, la cual involucra temas como la seguridad de los navegadores, las conductas en línea y la seguridad de redes. La seguridad web consiste en cada acción o herramienta adoptada para evitar que las informaciones sean expuestas o propensas a ataques por parte de cibercriminales. Esas medidas también sirven para proteger a los usuarios, como los clientes de ecommerce y los lectores de blogs, e incluso al host. Entre los peligros más habituales que afectan a usuarios y páginas web destacan: -
Robo de datos: bancarios, personales.
-
Virus.
-
Pishing (robo de identidad).
-
Ataques DDoS: los ataques DDoS consisten en hacer un gran número de peticiones a una web en un corto espacio de tiempo para hacer que ésta se caiga.
-
Spam.
Imagen: Seguridad al navegar por la web Fuente: https://blog.conzultek.com/ciberseguridad/trafico-web-encriptado
2.7 Historia Por: William Salvador
2.7.1 Historia de CMS Por: William Salvador En 1995 un sitio de noticias CNET, saco su sistema de administración de documentos con VIgnette. Este sistema web, inspiro a que algunos años después en 1999 apareciera el primer CMS llamado Xpedio. Este software ya se podría decir que era un CMS de extremo a extremo. Al ver todo el potencial que tenían este tipo de plataformas en internet, empezaron a aparecer otros CMS como Drupal (2001) y WordPress (2003). Estos CMS empezaron convertirse en softwares de código abierto, con el fin de aumentar sus seguidores y que sus CMS puedan evolucionar más rápido, gracias a la ayuda de su comunidad. En el 2005 se lanzó Joomla un CMS que estaba destinado no solo a construir y gestionar sitios web, si no también aplicaciones web. Conforme fueron pasando los años poco a poco fueron saliendo más y más sistemas CMS los cuales tenían como objetivo poseer internet, pero uno de los pocos que lo lograron fueron WordPress quien se apodero del mercado mundial.
Imagen: QUÉ ES UN CMS Y QUÉ VENTAJAS TIENE Fuente: https://www.departamentodeinternet.com/que-es-un-cms-y-que-ventajas-tiene/
2.7.2 Historia de CRM Por: William Salvador Aproximadamente en los años 90, la relación de las empresas con sus clientes era más estrechas y el contacto personal permitía incrementar la efectividad de las ventas a la vez que se ofrecía servicios de calidad. Estas interacciones fueron acuñadas con el término Customer Relationship Management (CRM) por el Sr. Tom Siebel. Los programas CRM empezaron a ser posibles gracias a la creación de bases de datos, pero su implantación requería la inversión de mucho tiempo y dinero por parte de las empresas. En la década de los 2000 comenzaron a proliferar CRM a medida más pequeños y económicos dirigidos a las medianas empresas. Fue en esta época donde el término de CRM adquiere popularidad y al que está vinculado el nacimiento del concepto software CRM. No obstante, los programas CRM aún necesitaban consolidarse sobre unas bases prácticas. Con la masificación de Internet y la aparición de las nuevas tecnologías se empezó a digitalizar las bases de datos con el almacenamiento de perfiles detallados de cada uno de los clientes. Más adelante, apareció el término de ‘Nube’, un sistema en la red donde reside toda la información sobre los clientes y a la que se puede acceder desde cualquier ordenador.
2.7.2.1 Evolución de los sistemas CRM hasta el día de hoy Se impone el Cloud al CRM local, ¿qué implica esto? Que no se necesita instalar pesados software CRM en los equipos, sino que se puede acceder a la plataforma CRM en la nube. Se cree en su potencial como iniciativa de negocios. CRM usado como estratégico, como vimos en el artículo ‘Estrategia CRM: la mejor estrategia para tu negocio’; se sincroniza el Front End y el Back End. A lo largo de esta década en la que vivimos, se desarrollan CRMs más sencillos de utilizar a nivel usuario, accesibles a personas sin conocimientos informáticos. Las empresas objetivo son las pymes. ● 2011: Software de comunicación empresarial en la nube. Las empresas pagan por cada suscripción.
● 2013: Accesibilidad universal y sistema multiplataforma, esto es, acceso desde dispositivos móviles. Surge a su vez el concepto de CRM Social a través de las redes sociales: atracción de clientes gracias a Twitter, Facebook, YouTube… Las empresas monitorizan esa información. ● 2015: Nace Suma (ahora Efficy) cuyo claim precisamente es: ‘CRM para todo tipo de empresa’. De esta manera fue como sucesivamente fueron evolucionando cada vez más este tipo de sistemas hasta convertirse en lo que son hoy en dia.
Imagen: ¿Qué es un CRM? ¿Y Por Qué es Importante Implementar Este Sistema en tu Negocio? Fuente: https://esp.webfindyou.com/blog/que-es-un-crm-y-por-que-es-importante-implementar-estesistema-entu-negocio/
2.7.3 Historia de Los ERP Por: William Salvador El ERP o software de gestión nace como tal en 1960, entonces los desarrolladores informáticos del sector productivo desarrollaron programas básicos para monitorizar inventarios, balances, el origen era gestionar y controlar el inventario. Ahora bien, fue hasta la década de los 90 donde el termino ERP se comenzó a utilizar como tal. Se centraba en funciones empresariales como la producción, finanzas y contabilidad, recursos humanos, gestión de proyectos, etc. Estaba compuesto por sistemas modulares con características avanzadas. Con el comienzo del nuevo siglo los ERP se popularizaron. A partir del año 2000 Gartner Group proporcionó funcionalidades como la gestión de la cadena de suministro, la gestión de las relaciones con los clientes (CRM) y la inteligencia de negocio. Desde su nacimiento no ha dejado de evolucionar y mejorar sus recursos y sistema y ahora son un eje clave en las empresas. Se han particularizado los ERP en función de sectores y tipos de negocio para poder ofrecer a los clientes funcionalidades particulares. En 2006-17, El impulso de la nube ha cobrado gran fuerza, y ha llevado a que la herramienta ERP sea un sistema vinculado a la nube, por otro lado, las aplicaciones han mejorado tanto en funcionalidad como en precio, actualmente ya es posible que un amplio abanico se puedan permitir este sistema que además cada vez resulta más sencillo de implantar. Hoy en día la comercialización de soluciones ERP se ha consolidado, para que nos hagamos una idea de su evolución en los grandes fabricantes de ERP, sólo dar un dato revelador, SAP hoy cuenta con más de 200 Millones de usuarios en el Cloud.
Gracias a ello, la movilidad no es un problema, disponemos de nuestro puesto de trabajo desde cualquier ubicación y desde cualquier dispositivo. Por otro lado, las soluciones ERP de Código Abierto son una realidad, Adempiere, Apache OFBiz, Dolibarr, ERPNext, Metasfresh, Odoo, Openbravo, WebERP, son algunas de ellas. El propio Velneo cuenta con un FrameWork de código abierto llamado vERP y su versión para Latinoamérica vERP Latam, que facilita el despliegue en muy poco tiempo de aplicaciones ERP creadas con su lenguaje.
Imagen: Características de un Sistema ERP Fuente: https://www.tecnologia-informatica.com/erp-que-es/
2.8 Vulnerabilidades 2.8.1 Vulnerabilidades de los sistemas CMS Por: William Salvador
2.8.1 Vulnerabilidades de los sistemas CMS Por: William Salvador Como lo mencionamos con anterioridad existen multiples softwares del tipo CMS por ende es muy difícil determinar las vulnerabilidades a nivel generla ya que cada sistema cuenta con sus propias vulnerabilidades, en este caso tomaremos en cuenta 3 de los sistemas CMS más utilizados en el mercado online. WordPress, Joomla y Drupal son los CMS más populares (Content Management Systems) que se utilizan en todo el mundo para el desarrollo web. Éstos son las opciones preferidas en los sistemas de gestión de contenidos para los empresarios, bloggers, empresas, pequeñas empresas y propietarios de tiendas. Sin embargo, de la misma forma en que estos tres sistemas de gestión de contenidos atraen a propietarios de sitios web, también ponen en alerta a hackers y delincuentes, así pues, WordPress es uno de los CMS más hackeado. Detrás de todo CMS existe un sistema de base de datos que es básicamente el cielo para los piratas informáticos. Estos sistemas de base de datos tienen una gran cantidad de vulnerabilidades que los hackers pueden acceder y explorar, y es por eso que WordPress, Joomla y Drupal son algunas de sus víctimas favoritas. Mediante el manejo de estos CMS el desarrollo de sitios web y el mantenimiento se hace extremadamente fácil, pero parece ser que los desarrolladores de estos CMS valoran más el fácil manejo de las aplicaciones que la seguridad de las mismas, así pues, algunos de ellos tienen algunas carencias de seguridad importantes, haciendo que sean el paraíso de hackers dispuestos a malversar esos websites.
2.8.1.1 Tipos de ataques: 2.8.1.1.1 “Sitio web Comprometido” Un CMS puede ser víctima de un hacker convirtiéndolo en un sitio web hackeado, lo que permite a los hackers un mal uso de un dominio de confianza. La intención de estos hackers será instalar un enlace en la base de datos sin el conocimiento del propietario, así cuando alguien acede al tu sitio web es redireccionado a otro dominio. De acuerdo con una encuesta realizada por StopBadware y Commtouch, aquí se presenta un desglose de los sitios comprometidos basado en el CMS que utilizan:
● WordPress – 28% ● Joomla – 9% ● Drupal – 1% ● Otros CMS – 62%
2.8.1.1.2 SQL Injection En este tipo de ataque un código malicioso es insertado en el website, principalmente en campos de un formulario, y es usado como puerta de entrada para explorar las vulnerabilidades de la base de datos. Un ejemplo de esta vulneración se produce en los casos en los que un hacker introduce una sentencia SQL maliciosa, normalmente en un campo de un formulario, capaz de descifrar usuarios y contraseñas de acceso al CMS, eliminar o modificar la estructura de alguna tabla o incluso eliminar por completo la base de datos que mantiene el sistema CMS.
2.8.1.1.3 Vulnerabilidades de código Los sitios web definidos mediante WordPress, Drupal o Joomla son construidos utilizando los conocimientos de programación php. Muchas veces, si no se codifica correctamente, un hacker puede encontrar vulnerabilidades en el código. Algunos ejemplos de estas vulnerabilidades de código pueden ser: ● Envío de parámetros sin validar o sin codificar. ● Errores en control de acceso ● Mal uso de gestión de Sesiones ● Cross-site scripting (XSS) erróneos ● Desbordamiento de búfer ● Comandos equivocados o con un mal funcionamiento.
Imagen: La Generalitat sufre un fallo de seguridad online: 5.000 usuarios expuestos Fuente: https://as.com/meristation/2020/11/26/betech/1606402985_618977.html
2.8.2 Vulnerabilidades de los sistemas CRM Por: William Salvador Casi a diario se descubren nuevas vulnerabilidades digitales, teniendo en cuenta los miles de vectores de amenaza nuevos que surgen cada año, lo que provoca problemas considerables a las organizaciones de prácticamente todos los sectores. Y según el Ponemon Institute, el coste medio global de una filtración de datos en Estados Unidos es de 8,64 millones de dólares. Por lo tanto, responder a los ataques solo después de que se hayan producido no es una defensa eficaz. Volviendo a retomar el punto de los sistemas anteriores como tal no es fácil englobar las vulnerabilidades de los sistemas CRM entonces en este caso utilizaremos como ejemplo las vulnerabilidades del sistema Zoho. Zoho es un CRM que está en auge debido a su funcionalidad y fácil manejo de los módulos que tienen que ver con el relacionamiento con los clientes. Es por este crecimiento que empezó a convertirse en el blanco de los atacantes. El CVE-201912476 hace referencia a una vulnerabilidad de omisión de identificación en el restablecimiento de contraseña en Zoho MangeEngine ADSelfService Plus, que se encuentra en versiones inferiores a la 5.0.6. De esta manera, un atacante con acceso físico puede obtener un Shell con privilegios del sistema. Esta vulnerabilidad permite ganar privilegios y compromete de manera total la integridad, confidencialidad y disponibilidad del sistema y tiene una complejidad de acceso relativamente baja. Actualmente hay 29 versiones del producto que son vulnerables y todo esto se debe a un error de diseño en el aplicativo.
Imagen: ¿Qué es un análisis de vulnerabilidades? Fuente: https://saynet.com.mx/que-es-un-analisis-de-vulnerabilidades/
2.8.3 Vulnerabilidades de los sistemas ERP Por: William Salvador Hoy en día los sistemas ERP han tenido un mayor impacto y crecimiento en cuanto a su utilización por ende se encuentran también más expuestos a los ataques en sus vulnerabilidades, en este caso describiremos las principales vulnerabilidades que pueden llegar a tener estos sistemas. La mayoría de estos problemas de seguridad no son nada nuevo, pero han crecido exponencialmente.
2.8.3.1 Falta de actualizaciones de software Muchas estaciones de trabajo y servidores carecen de actualizaciones de software necesarias. Estas omisiones pueden incluir software ERP obsoleto, así como sistemas operativos subyacentes y aplicaciones de apoyo con un mantenimiento inadecuado. La falta de actualizaciones puede dar lugar a cualquier cosa, desde infecciones de malware hasta ataques de denegación de servicio, pasando por accesos remotos no autentificados. A pesar de la posibilidad de que los sistemas críticos sufran cortes del sistema y tiempos de inactividad, los equipos de TI deben actualizar el software e implementar parches de seguridad regularmente.
2.8.3.2 Autenticación débil del ERP Los inicios de sesión inadecuados pueden incluir contraseñas débiles, cuentas compartidas y una falta de autenticación multifactorial. Como mínimo, la autenticación del ERP debe ser tan fuerte como los controles de las cuentas del dominio interno. Cuando el sistema utiliza credenciales únicas, esta norma no suele cumplirse. Refuerce los inicios de sesión si es necesario para evitar problemas en el futuro.
2.8.3.3 Vulnerabilidades específicas de las aplicaciones web Algunas aplicaciones web permiten la inyección de SQL y la escalada de privilegios, y poseen fallos de lógica de negocio que permiten a los usuarios manipular partes del sistema que, de otro modo, deberían estar desautorizadas o bloqueadas. Sea consciente de qué aplicaciones poseen o permiten estos problemas potenciales.
2.8.3.4 Recursos compartidos de red abiertos Ciertos sistemas ERP –generalmente los más antiguos– requieren que todos los usuarios de la red tengan acceso a las carpetas del sistema ERP. Esta práctica es extremadamente insegura y puede dar lugar a ransomware y accesos no autorizados. Considere un cambio de software si el sistema ERP actual exige estos permisos.
2.8.3.5 Falta de señalización de problemas Los empleados deben notificar al departamento de TI o a otros responsables técnicos inmediatamente cuando se produzca un problema de seguridad del ERP. Eduque a los empleados sobre la importancia de señalar los problemas para que el departamento de TI y otros departamentos sean conscientes de cualquier problema potencial antes de que el problema sea aún mayor.
2.8.3.6 Falta de formación continua del personal técnico El personal técnico debe estar al día sobre los problemas de seguridad más comunes del ERP, ya que estos problemas crecen y cambian. También deben conocer las
últimas prácticas y formación en materia de seguridad. Pueden producirse riesgos innecesarios si el personal utiliza prácticas no actualizadas, por lo que la formación continua es esencial.
2.8.3.7 Errores de entrada de datos Algo tan simple como la falta de ortografía es sorprendentemente común y extremadamente difícil de eliminar. Por ejemplo, se crea un proveedor duplicado con una ortografía de nombres ligeramente diferente. Esto crea una apertura amplia (y no detectada) para que ocurran pagos duplicados, errores y fraudes.
Imagen: Advertencia: Cuatro vulnerabilidades en la plataforma ERP Sage X3 (CVE-2020-7387) Fuente: https://sensorstechforum.com/es/cve-2020-7387-sage-x3-erp-platform/
2.9 Soluciones 2.9.1 Soluciones de los sistemas CMS Por: William Salvador A continuación, te mostrare una pequeña lista con algunas recomendaciones que debes tomar en cuenta al momento de emplear o utilizar un sistema CMS: ● Mantén actualizado el CMS. Si no actualizas tu gestor de contenidos no estarás protegido ante riesgos que se hayan detectado recientemente. ● Usa una contraseña fuerte y segura. ● Descarga contenidos solo de webs oficiales ● Introduce Captchas en tus formularios para que sean más seguros. Esto te ayudará también a evitar que te envíen spam o se infiltren en tu aplicación. ● Haz revisiones periódicas para detectar vulnerabilidades y anomalías. ● Intenta escoger un CMS con una comunidad online fuerte, es decir, que tenga un equipo de desarrolladores a los que consultar dudas y problemas. ● Suscríbete a foros y boletines relacionados con la seguridad en los CMS. Mientras más informado estés, con más rapidez podrás actuar ante un riesgo. ● Contacta con Prestigia Seguridad si quieres más garantías de seguridad en los CMS que utilizas Poco a poco las diferentes versiones de los CMS van controlando estas vulnerabilidades para evitar que sus usuarios sean víctimas de una violación de seguridad informática.
Imagen: Seguridad web, talón de Aquiles de los mejores CMS Fuente: https://seguridad.prestigia.es/seguridad-en-los-cms/
2.9.2 Soluciones de los sistemas CRM Por: William Salvador Nuestro CRM también está expuesto a las vulnerabilidades de seguridad y los ciberataques. Por eso, es fundamental que el sistema esté equipado con la máxima seguridad posible, para poder hacer frente a estas amenazas.
2.9.2.1 Protege tu información. Lo primero que hay que hacer es proteger la infraestructura donde se almacenan todos los datos. El objetivo es crear varias capas de protección para dificultar el acceso a ciber-delincuentes. Se puede comenzar instalando un firewall que controle quiénes pueden acceder a la información. También es imprescindible la instalación de un antivirus, ya que sus análisis en tiempo real bloquean múltiples amenazas.
2.9.2.2 Elige un proveedor de CRM de confianza. La elección de un CRM adecuado es muy relevante para la seguridad. Por tanto, que el proveedor sea de fiar es un requisito básico. Antes de lanzarte con el primero que encuentres, compara las políticas de varios, consulta opiniones y noticias de TI para ver sus valoraciones. También puedes contactar con alguna empresa que tenga conocimiento para que te asesore (¡como nosotros!).
2.9.2.3 Utiliza contraseñas eficaces. Esto parece muy evidente, pero muchas compañías aún no aprenden y se ven afectadas por no tener contraseñas fuertes configuradas. Las claves no pueden ser nunca evidentes o comunes. Todos los empleados deben de utilizar contraseñas seguras y diferentes para cada cuenta. Si se necesitan alojar las claves en algún lugar, que sea en áreas virtuales protegidas, como en administradores de contraseñas, etc. Muchos negocios están empezando a emplear también métodos de doble factor. De esta manera, por ejemplo, si se filtra alguna clave, hay una medida de seguridad extra.
2.9.2.4 Educa a los empleados. En demasiadas ocasiones son los propios empleados los que, por error, filtran datos, documentos y claves. Por eso, es importante actualizar cada cierto tiempo los protocolos de seguridad internos, así como capacitar a las personas en el uso de los diferentes software y hardware. También con respecto a la navegación segura, las
transacciones vía digital, o sobre cómo evitar ser víctima de Phishing u otras estafas. Además, es muy útil tener protocolos de actuación ante dichos fraudes.
2.9.2.5 Monitoriza la actividad del CRM de forma regular. Normalmente, en los CRM se pueden configurar alertas que te notifican sobre accesos que no son autorizados, violaciones de seguridad, etc. Muchos tienen capacidades para hacer un seguimiento del estado de red de la empresa, pudiendo integrarse con los sistemas. Así se tiene un control en tiempo real de la actividad de la plataforma. Por lo general, se pueden generar paneles dentro del CRM para tener en una sola fotografía el estado de seguridad y las métricas de la infraestructura IT.
Imagen: Medidas de seguridad en un CRM Fuente: https://www.correcta.es/medidas-seguridad-crm/
2.9.3 Soluciones de los sistemas ERP Por: William Salvador A continuación, te detallamos algunos consejos para aplicar a tus sistemas erp esperamos te sean de utilidad:
2.9.3.1 Único servidor y acceso restringido La información del sistema deberá estar concentrada en un único servidor, con su respectiva restricción de acceso al mismo y tener sólo personal especializado para el uso del equipo. También es importante tener restringido el acceso al servidor mediante la red de la empresa, que sólo ciertos usuarios o personal del área de sistemas tengan acceso al mismo.
2.9.3.2 Cantidad de usuarios limitada Dejando a un lado el aspecto del hardware y enfocándonos más en el aspecto del sistema ERP, este deberá contar sólo con cierta cantidad de usuarios para el manejo del mismo. Cada usuario del sistema deberá contar con una contraseña para el acceso al mismo. Otra consideración para la seguridad del sistema es que éste permita conocer qué usuarios realizaron qué movimientos, cuando lo hicieron y desde qué terminal se realizó. Algunos sistemas registran esta información en la misma base de datos del sistema, otros utilizan los denominados archivos log en los cuales se graban los datos antes mencionados.
2.9.3.3 Módulos de configuraciones y parámetros
Hay sistemas que integran módulos de configuraciones y parámetros con la finalidad de terminar algunos aspectos del sistema como: cuál debe de ser su comportamiento, lo que debe permitir y lo que no, qué valores predeterminados tomar para ciertos cálculos u operaciones, qué formatos para impresión de facturas o tickets utilizar, cuántos decimales manejar en cuestiones de venta o de cálculos numéricos, qué aplicaciones manejará un cliente en específico y demás.
2.9.3.4 Validación de los datos Otro aspecto importante de cualquier sistema es la validación de los datos antes de ser guardados o afectados en una base de datos. Todo sistema, independientemente del giro que sea, debe realizar estas validaciones para evitar guardar datos basura e indicarle al usuario a introducir los datos correctos en los campos críticos y necesarios. Esto permite no introducir un número donde debe de ir una letra o viceversa, no dejar espacios en blanco en datos que son requeridos, etc.
2.9.3.5 Manejo correcto de las reglas de negocio de la empresa Un aspecto muy específico dentro de la seguridad de un sistema ERP es el manejo correcto de las reglas de negocio de la empresa. Todo ERP debe tenerlas bien validadas y deberán abarcar todo el amplio abanico de posibilidades y reglas, ya que de esto dependerá la correcta toma de decisiones de los directivos o altos ejecutivos de la organización. Es indispensable poner especial atención en no dejar huecos o caminos posibles que puedan ocasionar la posibilidad de que algún usuario pueda cometer un fraude o acto ilícito a la empresa en la empresa.
2.9.3.6 Protección de datos y back up Dentro de la seguridad de un sistema también podremos encontrar el punto referente a la protección de datos. Existen sistemas que utilizan la encriptación de datos como herramienta para proteger un enorme volumen de información con el menor número de complicaciones posibles y haciendo posible la recuperación de la misma en cualquier momento. Como medida de precaución adicional, es recomendable que todo sistema ERP tenga una herramienta que realice back ups o respaldos de la base de datos de operación del sistema. El objetivo es evitar la posibilidad de pérdida de información ya sea por causa de fallo en instalación eléctrica, daño del disco duro o del servidor, o por algún intento de violar la integridad tanto de la base de datos como de la información del mismo sistema.
Imagen: ESTOS SON LOS BENEFICIOS Y SEGURIDAD DE UN SISTEMA ERP EN LA NUBE Fuente: https://corposuite.com.mx/2021/02/10/beneficios-y-seguridad-de-un-sistema-erp-en-la-nube/
2.10 Tipos de ataques Por: Pablo Sarceño
Robo de identidad: El robo de identidad es un tipo de delito en el cual un atacante utiliza sistemas de fraude y engaño para obtener información personal sensible de una víctima con fines perjudiciales. Normalmente, los delincuentes están motivados por su propio beneficio económico.
Compromiso de cuentas e en personalización de usuarios: Cualquier cuenta a la que cualquier persona no autorizada accede es una cuenta comprometida. Las contraseñas débiles son una de las principales razones de los compromisos de cuentas; no obstante, en ocasiones los atacantes cibernéticos pueden usar herramientas sofisticadas para comprometer cuentas con contraseñas más fuertes. Los ataques de password spraying, fuerza bruta y pass-the-hash son algunas de las formas en que los atacantes pueden obtener acceso no autorizado a una cuenta.
Pishing: El phishing es un ataque que intenta robar su dinero o su identidad, haciendo que divulgue información personal (como números de tarjeta de crédito, información bancaria o contraseñas) en sitios web que fingen ser sitios legítimos. Los ciberdelincuentes suelen fingir ser empresas prestigiosas, amigos o conocidos en un mensaje falso, que contiene un vínculo a un sitio web de phishing.
Pharming: El pharming, una combinación de los términos "phishing" y "farming", es un tipo de cibercrimen muy semejante al phishing, en el que el tráfico de un sitio web es manipulado para permitir el robo de información confidencial.
Imagen: de tipos de ataques en cmr, cms y erp Fuente: https://newkeytechnology.com/wp-content/uploads/2020/12/ataquesciberneticoscomunes_nkt2.png=
Capítulo III 3. Arquitectura y seguridad de las aplicaciones web 3.1 Que es un software web Por: Pablo Sarceño En la ingeniería de software se denomina aplicación web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de internet o de una intranet mediante un navegador. En otras palabras, es un programa que se codifica en un lenguaje interpretable por los navegadores web en la que se confía la ejecución al navegador. Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, a la independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los correos web, wikis, blogs, tiendas en línea y la propia Wikipedia que son ejemplos bastante conocidos de aplicaciones web.
Imagen: sobre software web Fuente: https://blog.desdelinux.net/wp-content/uploads/2019/10/servidores-web-programaslibresabiertos-imagen-contenido-blog-desdelinux-830x459.jpg
3.2 Usos de un software Web Por: Diego Solares Lo primero que debes tener en cuenta es que gracias a que las aplicaciones web se ejecutan en un servidor web todo lo que haces en ellas se procesa y almacena en el interior de una base de datos por medio de un navegador. De esta forma, no es necesario que las instales en tu ordenador o dispositivo móvil. Están compuestas por tres partes: ● Una base de datos: en la base de datos se almacenan precisamente eso, todos los datos, permisos, usuarios, contenidos, información de interés. ● El código de la aplicación: la propia aplicación se aloja en un servidor en la nube de aplicaciones, en algunos casos puede almacenarse en un servidor local.
● El acceso a través del navegador: puedes acceder utilizando un ordenador o un dispositivo móvil por medio de un navegador. Se incluye el administrador o el gestor que es el usuario final. Podrá acceder a distintas secciones dependiendo de los permisos con los que cuente. Unos de los principales usos son los siguientes: ● Gestión interna: Se emplean para controlar el stock, los clientes, los usuarios; para gestionar el personal, las facturas o la contabilidad en general; o para que fichen los empleados. ● Servicios a los usuarios: Gestionan todo lo que tiene que ver con los servicios que se le prestan al usuario, como los permisos para acceder a diferentes contenidos, la gestión de incidencias o de espacios. ● Herramientas de trabajo: Herramientas para gestión documental, accesos diferenciados, Intranets, etc. ● Herramientas para el control de calidad: Herramientas que facilitan el control de calidad. ● Herramientas para la comunicación: Comunicaciones con los usuarios personalizadas, mailings o boletines digitales. ● Herramientas web: Gestión de ventas online, buscadores, tiendas virtuales, webs, etc.
Imagen: Software/aplicaciones web Fuente: http://aplicacionesweb20.wikidot.com
3.2.1 ¿Por qué elegir una solución web? Por: Diego Solares En la actualidad aún nos podemos encontrar con empresarios y directores de negocios que afirman convencidos que no es tan importante contar con una página web, ya que para ellos es suficiente llevar su negocio de manera física, sintiéndose más cómodos con los métodos tradicionales. Sin embargo, éste no es el enfoque correcto, ya que en la actualidad las personas cada vez más realizan sus compras a través de Internet. Por este motivo las empresas deben solicitar una solución web profesional para que ésta sea lo más eficiente posible y cuente con una usabilidad correcta, de forma que los clientes puedan navegar por ella de una forma sencilla y sin complicaciones.
Dicho esto, las empresas deben entender que si no tienen presencia en la web prácticamente no existen, porque los usuarios de hoy en día antes de adquirir un producto o servicio, lo primero que hacen es investigar en los principales buscadores como Google, buscando información sobre lo que necesitan, leen las opiniones de los usuarios y si todo es lo suficientemente positivo, es cuando se deciden a comprar, ya sea online o en establecimiento físico.
Motivos para solicitar una solución web ● Tendrás una carta de presentación siempre actualizada: La misma estará online siempre, además de que podrás captar la atención no solo de los potenciales clientes, sino de los proveedores, nuevos empleados o inversores, así que se abrirán las posibilidades de crecimiento para tu empresa. ● Darás seguridad a tus usuarios: Al tener el sitio web siempre actualizado, con información interesante donde aportes soluciones o respuestas a los usuarios, ayudarás a crear una imagen corporativa sólida. Cuanta más información proporciones, más confianza generarás entre tus visitantes. ● Serás más competitivo: Al tener una presencia web podrás ser más competitivo, también podrás observar cómo se comportan los demás negocios en el sector y mejorar sus técnicas, aplicar las tuyas y siempre estar un paso por delante de la competencia. ● Aumentarán tus clientes: A medida que tengas una web con más información, funciones y con una usabilidad acorde a las exigencias de tus usuarios, podemos estar seguros que tus clientes aumentarán.
Imagen: Solución web, necesidad para un buen uso Fuente: http://www.lacometanetwork.com/es/soluciones-web/
3.3 ¿Por qué elegir una solución web? Por: Diego Solares Esta elección no siempre es una tarea fácil. Esta decisión se verá muy influenciada en base a multitud de circunstancias en función del tipo de empresa, su tamaño, de si posee departamento de informática propio, la formación y capacitación de los usuarios, su resistencia al cambio, criterios puramente económicos, de afinidad con uno u otro proveedor, la especialización de éste, etc. 1.- Criterios económicos. Cuando no existe mucha cultura informática, éste es prácticamente el único criterio que se tiene en cuenta. 2.- Criterios de afinidad y/o cercanía. Se conoce al proveedor actual muchos años y en algunos casos se dan relaciones de amistad, lo que condiciona a una continuidad y evolución con su software.
3.- Reputación del software. En ocasiones nos guiamos por la marca o notoriedad del software, ya sea porque conocemos a alguien que ha sufrido una implantación o simplemente porque nos suena por su publicidad. 4.- Especialización/sectorización del software. La elección de un software no especializado conducirá inevitablemente a la tensión entre cliente y proveedor debido a la detección de innumerables carencias relacionadas con la sectorización. 5.- Especialización de la consultoría. Imprescindible la experiencia de los consultores en el sector y ámbito de actuación de la empresa.
Imagen: Especialización y experiencia para estos temas Fuente: https://www.mundoerp.com/blog/15-criterios-para-eleccion-proveedor-desoftware/
6.- Demostrada eficacia en empresas del sector. Un sondeo sobre las empresas de la competencia con la intención de realizar una preevaluación del software es necesario. 7.- Software cerrado. El proveedor nos vende un paquete totalmente cerrado, sin posibilidad de cambios, o en su defecto, adaptaciones particularizadas que nos llevarán fuera de su versión estándar. 8.- Software a medida. Es el caso contrario al anterior, el proveedor nos ofrece no solo un producto, sino todas las mejoras que se nos ocurran. 9.- Conectividad. El software debe poder ofrecer conectividad con otras herramientas, sobre todo de ofimática. Ello nos liberará de cierta dependencia del proveedor para algunos informes, mail Ings, etc. 10.- Soporte, atención postventa y servicios de mantenimiento. Éste ha de ser el resultado y continuación de una consultoría especializada. 11.- Adaptación a la normativa vigente. Puede parecer una obviedad, pero la realidad es que algunos softwares no están localizados de forma suficiente, bien porque vienen de otros países con otras leyes y otras problemáticas, o porque no son lo bastante ágiles para incorporar las nuevas normativas. 12.- Plataforma y evolución del software. Es conveniente dedicar un poco de tiempo a analizar las plataformas sobre las que está desarrollado el software: base de datos, lenguaje, etc. 13.- Migración de datos. En ocasiones es necesario trasladar parte de la información del sistema anterior al actual. 14.- Seguridad de la información. Siempre hay información sensible que ha de ser protegida, tanto para agentes externos, como hacia determinados usuarios.
15.- Modularización de la herramienta. Es decir, las necesidades de cada empresa no son las mismas, por lo tanto, debe permitir hacer la inversión en función de las necesidades de cada momento y de forma incremental.
3.4 Tipos de Software web Por: Andrés Tobar Existen diferentes tipos de software, que varían en función de sus especificaciones técnicas y funciones.
3.4.1 Tipos de software por funcionalidad Los tipos de software que existen se pueden clasificar en tres grandes grupos de acuerdo con las funciones que habilitan. De esta forma, hablamos de software de aplicación (dentro del cual encontramos, a su vez, el software de gestión), software de programación y software de sistema. ● Software de Aplicación ● Software de Gestión ● Software de Programación ● Software de Sistemas
3.4.2 Software por tipo de licencia Las licencias de software son un elemento clave, puesto que establecen los términos que permiten el uso correcto del mismo. Lo habitual es encontrar dos tipos de software por licencia: software libre y software de propietario.
3.4.3 Software por tipo de alojamiento En el momento de seleccionar qué tipo de software es el más adecuado para nuestra empresa o negocio podemos también valorar el tipo de tecnología sobre la que pueden apoyarse, como por ejemplo premise y en la nube. ● Software on Premise ● Software de Nube
3.5 Software Web Serial Por: Andrés Tobar Un puerto serie es una interfaz de comunicación bidireccional que permite enviar y recibir datos byte a byte. La API Web Serial proporciona una forma para que los sitios web lean y escriban en un dispositivo serial con JavaScript. Los dispositivos serie se conectan a través de un puerto serie en el sistema del usuario o a través de dispositivos extraíbles USB y Bluetooth que emulan un puerto serie. En otras palabras, la Web Serial API une la web y el mundo físico al permitir que los sitios web se comuniquen con dispositivos seriales, como microcontroladores e impresoras 3D. Esta API también es una gran compañera de WebUSB, ya que los sistemas operativos requieren que las aplicaciones se comuniquen con algunos puertos serie utilizando su API serie de nivel superior en lugar de la API USB de bajo nivel.
3.6 Ventajas y Desventajas del Software Serial
Por: Andrés Tobar
VENTAJAS 1
Libre Uso. Cualquier persona puede disponer del software libre bajo las condiciones de la licencia.
2
Bajo Costo. Es gratuito.
3
Existe Libertad de Conocimiento y trabajo cooperativo entre sus usuarios lo que permite una mayor innovación tecnológica.
4
Rápida corrección de errores facilitado por el trabajo comunitario a través de Internet y de su libre acceso al código fuente.
5
Total, independencia de un proveedor. El usuario puede administrar libremente su crecimiento y operación con total autonomía.
DESVENTAJAS 1
Dificultad en el intercambio de archivos (doc. de texto), dan errores o se pierden datos.
2
Mayor dificultad en la instalación y migración de datos para el usuario común.
3
Desconocimiento. El usuario común está muy familiarizado con los soportes de Microsoft, lo que hace elevar el costo de aprendizaje.
4
Ausencia de garantía. El software libre no se hace responsable por los daños.
5
Para su configuración se requieren conocimientos previos de funcionamiento del sistema operativo.
3.7 Arquitectura y seguridad de las aplicaciones WEB Por: Angel Velásquez
3.7.1 Software con servicios rentados Seguramente habrás leído o escuchado hablar sobre SaaS. En términos más específicos, podemos decir que el modelo Saas (Software como servicio) no es otras cosas que la puesta de aplicaciones en línea por parte de sus creadores o desarrolladores, para que sean utilizadas por cliente públicos o privados, manteniendo la privacidad por el usuario final. Cuando se combina el modelo Saas con el Paas (plataforma como servicio), se obtiene el modelo informático conocido como cloud computing o computación en la nube, término bastante conocido, entonces se puede concluir que la mayor ventaja de utilizar modelos como SaaS, es que permite a los clientes y a los mismos desarrolladores reducir costos y masificar sus servicios
Imagen: SaaS Fuente:http://www.icorp.com.mx/blog/wp-content/uploads/2018/02/softwarecomoservicio500x295.jpg https://culturacion.com/modelo-saas-software-servicio/
3.8 Software Web adaptación a dispositivos móviles Por: Angel Velásquez En términos de tráfico web procedente de estos dispositivos la tendencia también es creciente. En el año 2012 se duplico por cuarto año consecutivo respecto al año anterior y se espera que en 2013 se mantenga dicho crecimiento. El diseño web adaptativo o adaptable es una técnica de diseño y desarrollo web que consigue adaptar el sitio web al entorno del usuario, lo que hace posible tener un único diseño para móviles, tabletas y PC.
Imagen: imagen de cómo se conforma el diseño web Fuente:https://www.ceupe.com/images/easyblog_articles/116/b2ap3_large_webmovil.jpg
3.7.2.1 Como se implementa Los estudios dicen que España es el país con mayor cuota de penetración de lo smartphones, hasta el punto que el 87% de la población los utiliza.
3.9 Software Web desarrollado a medida Por: Angel Velásquez El desarrollo de software personalizada es el diseño de aplicaciones de software para un usuario o para una organización Dicho programa está diseñado para satisfacer sus necesidades precisamente como contraste al sistema más tradicional y más extendido que se encuentre disponible en el mercado. El software estándar consiste en una aplicación de software “empaquetada”, la cual está disponible para una gran audiencia con necesidades variables, aunque fundamentalmente similares. El desarrollo de software personalizado implica la puesta en servicio, desarrollo y lanzamiento de un producto de software adaptado a una sola entidad especifica.
Imagen: software a media Fuente: https://www.stratusmedia.io/img/software-aplicaciones-medida-cloud.png https://www.gruponw.com/noticias-de-colombia-y-el-mundo/nwarticle/268/5/Que-es-un-software-alamedida
3.10 Tipos de Licencia Web Por: Gabriel Orlando Xanté Mejía
3.10.1 Copyright La función de este tipo de licencia es de abarcar un conjunto de normas legales, las cuales ayudan y les dan amparo a los autores tanto en términos morales, que en este caso sería reconociendo la autoría, como también entran términos patrimoniales, que dentro de este aspecto sería el reconocer los derechos de explotación emanados de dicho material.
3.10.2 Copyleft Este tipo de licencia permite que cualquier individuo pueda utilizar, modificar, distribuir. Incluso estas acciones pueden ser realizadas para cualquier fin comercial que se tenga planificado. El requisito que es indispensable para esta licencia es de que los individuos Que utilicen el material bajo esta licencia puedan hacer mención del autor del material Aunque también se puede utilizar sin ningún tipo de mención.
3.10.3 Creative Commons Este tipo de licencia está basada en el Copyleft, sin embargo, esta va a permitir ciertas limitaciones, pero esto se va a deber según a la decisión del autor de la obra. Esta licencia creative commons se desglosa en otras 6 diferentes licencias, las características que los van a distinguir dependerán del autor, ya que el mismo decide si la información permite modificaciones o no.
3.10.4 GNU GPL Esta licencia está basada en el tipo de licencia Copyleft, esta licencia va a ser utilizada en el ámbito de diferentes programas informáticos. Cualquier programa que suela utilizar este tipo de licencia va a ser declarado como tipo de software libre. Esto significa que cualquier persona puede instalar el programa y adicional a esto también Tendrá la opción de modificar el código o también distribuirlo sin ningún tipo de por parte del autor.
3.11 Ciclos de vida del Software Por: Gabriel Orlando Xanté Mejía El ciclo de vida del software está encargado de contemplar las diferentes fases necesarias para validar el desarrollo del software y de esta manera va a garantizar Que el mismo cumpla con los requisitos para lo que es la aplicación y del mismo modo La verificación de los procedimientos que se llevan a cabo.
3.11.1 Fases del desarrollo del software 3.11.1.1 Planificación: Antes de la realización de cualquier proyecto es muy importante la planificación ya que esto ayudara a tener una visualización del resultado final que se quiera llegar a
obtener, dentro del desarrollo de cualquier software la planificación del mismo tiene que ser vital, para no comenzar un proyecto a “ciegas” sino que ya tener una idea de lo que se tenga que realizar. 3.11.1.2 Análisis: Esta etapa es fundamental para ver que funciones va a tener nuestro software y que Tipos de idea tenga el cliente, en caso de que el software lo estemos personalizando para alguien el particular, por eso es de que es importante el análisis. 3.11.1.3 Diseño: En esta fase se va a decidir la estructura en general que llevara nuestro software, cuando se habla de estructura pueden entrar desde los aspectos de diseños visuales, lenguaje de programación que se va a utilizar. Esta fase suele ser compleja ya que hay un sinfín de diseños que se pueden analizar. 3.11.1.4 Implementación: En esta fase se implementan todas las opciones que se han decidido en los pasos o fases anteriormente mencionadas. 3.11.1.5 Pruebas: Antes de que el software pueda ser lanzado al público hay que hacer distintas pruebas para poder garantizar que el software realizado es completamente funcional y de no ser así, se tienen que hacer las correcciones correspondientes, para que no tengamos ningún conflicto a la hora de que los usuarios estén interactuando con el mismo. 3.11.1.6 Instalación o despliegue En esta fase el software ya se encuentra listo para la ponerlo en funcionamiento. 3.11.1.7 Uso y mantenimiento En este caso el software ya solo estaría bajo observación para poder seguir manteniéndolo estable y en caso que sea necesario actualizar para dar nuevas funcionalidades o incluso para dar un nuevo diseño de interfaz.
3.11.2 Modelos de ciclos de vida El ciclo de vida del software puede ser trabajado en diferentes modelos, aquí hay algunos de los modelos: 3.11.2.1 Modelo en cascada En este modelo las fases presentadas anteriormente van a estar funcionando una detrás de la otra de manera lineal, sin que se pierda la secuencia, y solo se podrá avanzar con las fases cuando la anterior este completa. 3.11.2.2 Modelo repetitivo Este modelo se caracteriza por guiar las fases del proceso en repeticiones. Así proyectar el Proceso de una manera cíclica repitiendo casa paso o fase. 3.11.2.3 Modelo en espiral Este modelo entra en combinación con los presentados anteriormente, en este caso se tiene en cuenta el riesgo. Para fijar o tener en cuenta objetivos y limitaciones al comenzar cada repetición. 3.11.2.4 Modelo en V
El modelo V se caracteriza por optar a planificar en cada fase si así se desea para, no es necesario culminar una fase para seguir avanzando, como lo es el caso del modelo en Cascada. 3.11.2.5 Modelo Big Bang Este modelo es uno de los más simple ya que se requiere de poca planificación, mucha programación y muchos fondos ya que el fin de este modelo es crear un software bastante completo el más completo si fuese posible.
3.12 Seguridad de las aplicaciones web Por: Gabriel Orlando Xanté Mejía Esta es una rama de la seguridad informática, que va a estar encargada específicamente de la seguridad de sitios web, aplicaciones web, servicios web, en cualquier entorno se tiende a aplicar seguridad, porque se suele tener información de los usuarios, y el entorno web también se encarga de integrar estos procesos.
Redes de la información
Sexto Grado
Capítulo I 1.
Introducción y clasificación de las redes 1.1.
Qué es una red
Por: Pablo Hernández Una red es la acumulación o conjunto de equipos y software conectados los cuales comparten información entre sí, por medio de ondas eléctricas permitiendo el envió de datos e información, estableciendo una comunicación entre nodos.
Título: Representación de una red Fuente: https://www.cavsi.com/preguntasrespuestas/images/redes/que-esuna-red.jpg
1.2.
Comunicación de datos
La comunicación de datos es la transmisión o envío de datos de forma binaria entre varios puntos. Este proceso requiere de 4 elementos que son esenciales los cuales son: Emisor, Mensaje, Medio y Receptor.
Imagen: Ejemplo Comunicación de Datos Fuente: https://sites.google.com/site/sistemasnick/_/rsrc/1329861192408/clase-5--comunicacion-dedatos/red-de-datos.jpg?height=240&width=400
1.3.
Canal de comunicación
El canal de comunicación es la vía por donde viaja o se transmite la información, por medio del canal de comunicación transitan las informaciones generando un vínculo por el emisor con el receptor.
Imagen: Ejemplo de Canal de Comunicación Fuente: https://sites.google.com/site/ticsfinanzasnjpt/_/rsrc/1468854080935/datospersonales/canales-decomunicacion-y-dispositivos-de-redes-deinformacion/6.gif?height=271&width=320
1.4.
Red de Computadores
Una red de computadores es la interconexión de estos a través de un dispositivo de comunicación ya sea alámbrico o inalámbrico.
Imagen: Ejemplo de Red de Computadores Fuente: https://concepto.de/wp-content/uploads/2019/07/red-decomputadorase1564230658533.jpg
1.5.
Telemática
Por: Miguel Ico La telemática se fue desarrollando a la vez que Internet. Al mismo tiempo, se desarrolló la técnica superior de ingeniería telemática. La telemática había nacido en 1978 por Simon Nora y Alain Minc. Desde entonces, los procesadores se han ido haciendo cada vez más pequeños y más ubicuos, mientras que las redes de servicios de telecomunicación se han ido ampliando, demostrando su efectividad a la hora de transmitir grandes cantidades de datos sin importar dónde se encuentre el ordenador. Los sistemas telemáticos incluidos en los vehículos cuentan con un dispositivo de seguimiento que envía, recibe y almacena datos de telemetría. Se conecta con una tarjeta SIM mediante un sistema de diagnóstico, los datos telemáticos obtenidos pueden referirse a la ubicación, la velocidad, los tiempos muertos, la
aceleración o las frenadas bruscas, el consumo de combustible y los fallos en los vehículos.
Imagen: Ejemplo de telemática Fuente: https://movildata.com/wp-content/uploads/2020/04/vzc-telematics-post-graph-es.jpg
1.6.
Ventajas de las redes
Compartir programas y archivos. Cuando los programas y sus archivos de datos se almacenan en el servidor de archivos, ya de forma que puedan acceder a ellos muchos usuarios de la red. En este caso uno compra los programas, solo necesita adquirir licencias para el número de usuarios que van a utilizar la aplicación simultáneamente. Buena cuando ya una persona deja de usar el programa, la licencia se queda disponible para otro usuario ya que el otro usuario dejó de usarlo.
● Compartir los recursos de la red. Los recursos de la red se encuentran en las impresoras, los dispositivos de almacenamiento, y otros. En este caso es fácil justificar el coste de la adquisición de impresoras de calidad o dispositivos de almacenamiento masivo cuando un gran número de usuarios puede acceder simultáneamente a ellos. ● Compartir bases de datos. Cada red son plataformas ideales para aplicaciones de bases de datos y para compartir la información. Esto sucede cuando se implementan funciones de bloqueo de registros, varios usuarios pueden acceder simultáneamente a archivos de bases de datos. En este caso el bloqueo de registros asegura que los usuarios no podrán editar a la vez un mismo registro, o sobrescribir las modificaciones realizadas por otra persona. ● Disminución del coste de los equipos para los puestos de trabajo. Las redes ofrecen la posibilidad de conectar puestos de trabajo de bajo coste que accedan a los recursos compartidos en este caso como servidores de altas prestaciones o compartan impresoras sofisticadas entre otros periféricos. ● Gestión centralizada. Los servidores departamentales pueden concentrarse en un único lugar, en donde resulta mucho más fácil realizar las actualizaciones del hardware, como las copias de seguridad del software y el mantenimiento y protección del sistema. ● Seguridad. Cuando las seguridades de las redes implementan mecanismos sofisticados de seguridad. Son sólo las personas autorizadas pueden acceder a la red, bueno pudiéndose restringir tanto la ejecución de determinadas aplicaciones como el acceso en un horario específico o desde ciertos equipos. ● Interconectividad. Las redes modernas son vistas como plataformas a las que se puede conectar cualquier tipo de ordenador, independientemente del sistema operativo, y dar acceso al sistema a prácticamente cualquier usuario. El soporte del protocolo TCP/IP implica que el sistema operativo puede interactuar ya con
cualquier otro sistema operativo cliente o servidor, incluyendo sistemas UNIX, servidores y clientes Windows, etc. ● Mejoras en la organización de la empresa. Los usuarios que trabajan en un departamento concreto no necesitan estar ahora en una misma localización física. Sus oficinas pueden estar situadas en lugares donde sean más útiles para la empresa. La red los une al resto de compañeros de departamento. Esta forma de organización es de especial interés en proyectos especiales donde las personas de distintos departamentos necesitan trabajar en estrecha colaboración.
Imagen: Ventajas de las redes Fuente: https://informaticos.co/wp-content/uploads/2020/09/ventajas-de-las-redes-informaticas1024x526.jpg
1.7.
Modelo de sistema de comunicación
Un sistema de comunicación es aquel conjunto de elementos donde, mediante un emisor, mensaje y receptor, se produce un proceso comunicativo entre mínimo dos partes. Estas partes deben canalizar el mensaje por un canal y código determinado. Respecto al código, se puede decir que los idiomas, el alfabeto o los acrónimos deben ser entendidos tanto por el emisor, como por el receptor. Cuando informamos, la voluntad al enviar nuestro mensaje es ser objetivo con el hecho o suceso. Por otra parte, cuando intentamos transmitir conocimientos o datos, estos son fruto de una reflexión, la cual tiene como meta el aprendizaje.
1.8.
Fuente
Las fuentes de información son instrumentos para el conocimiento, búsqueda y acceso a la información. La difusión del uso de la comunicación a través del ordenador y de flujos de información a través de Internet, adquiere una importancia estratégica decisiva en las sociedades desarrolladas. La utilidad de las fuentes de información, viene determinada por su respuesta a la necesidad de información de los usuarios. Esta da más importancia cada vez más mayor para dar forma a la cultura futura y aumentará la ventaja estructural de las élites que han determinado su formato.
Imagen: Fuentes Fuente: https://www.ui1.es/sites/default/files/blog/images/periodismo_digital_retocada.jpg
1.9.
Transmisor
Por: Andrés Ixcajoc Los transmisores, también denominados transductores, sirven para convertir las magnitudes físicas clásicas en una señal eléctrica. Es decir, los transductores se utilizan principalmente en instrumentos de medición electrónicos. No obstante, los hay de diversos tipos, como los transmisores de temperatura o los transmisores de presión. La conversión tiene como resultado señales normalizadas, como las de 4-20 mA. Actualmente, muchos instrumentos están equipados para trabajar principalmente con magnitudes normalizadas especiales. Para poder comparar y procesar distintas magnitudes físicas, es necesario recurrir a los transmisores.
Imagen: Clasificación de Redes (información) Fuente: https://www.ui1.es/sites/default/files/blog/images/periodismo_digital_retocada.jpg
1.10.
Clasificación de redes según su tamaño y extensión
Las redes informáticas pueden clasificarse teniendo en cuenta diferentes aspectos: su estructura, funcionalidad, tecnologías utilizadas para sus conformaciones, amplitudes, entre otros factores que pueden contemplarse en las clasificaciones. Veamos entonces en principio, cómo podemos clasificarlas para tener un pantallazo general de cómo se comportan y qué podemos esperar de ellas:
Clasificación por topología: Antes que nada, recordemos que el concepto "topología", hace referencia a una rama de las matemáticas, que estudia las propiedades de los cuerpos geométricos. En redes informáticas, nos referimos a "topología" como la forma física o lógica en la que se encuentra diseñada la red.
Imagen: Clasificación por topología. Fuente: https://www.netinkst.com/notas/img/topo.png
Ejemplo: PTP, P2P, Bus, Anillo, Estrella, Malla, Arbol, Hibrida.
Clasificación por alcance: Este tipo de clasificación aglomera los tipos de redes informáticas en cuanto a su alcance geográfico refiere. Desde una red que se encuentre montada sobre solo un metro cuadrado a una que abarque el mundo entero, y por qué no también, fuera de nuestro planeta con satélites. Ejemplos: PAN, WPAN, LAN, WLAN, CAN, MAN, WAN.
Imagen: Clasificación por alcance. Fuente: https://www.netinkst.com/notas/img/lan-wan.png
Clasificación por tecnología Punto a punto: Aquellas en las que existen una multitud de conexiones entre parejas de equipos. Por lo general, requieren de dispositivos que establezcan rutas para la transmisión de datos. Difusión: Las redes por difusión o broadcast, son aquellas que transmiten los datos por medio de un solo canal compartido por todos los dispositivos. Los paquetes de información son enviados a todas las máquinas, pero solo la destinataria es capaz de procesarlos. Multipunto: Con una línea de comunicación compartida por todos los equipos, permite la bidireccionalidad en el flujo de la información.
Imagen: Clasificación por tecnología. Fuente: https://es.wikipedia.org/wiki/Red_punto_a_punto
1.10.1.
LAN
Local area network (LAN) o red de área local abarca aquellas redes conformadas en un espacio reducido como un cuarto, un edificio. Pueden o no utilizar medios de comunicación con el exterior. Las WLAN poseen las mismas características que las LAN, pero con la capacidad de interconectar los dispositivos por medios inalámbricos.
Imagen: Tipo de Red LAN. Fuente: https://xxxamin1314.medium.com/lan-vs-man-vs-wan-cu%C3%A1l-es-la-diferencia7a3545c1611a
1.10.2.
PAN
Personal Area Network (PAN) o red de área personal, refiere a la más pequeña de las redes en cuanto a su extensión geográfica. Se trata de una red conformada para interconectar dispositivos centrados en un puesto de trabajo de una persona. Las WPAN refieren al mismo tipo de red, pero con la particularidad de que los dispositivos se encuentran conectados de manera inalámbrica. Por lo general, se utiliza este término para las redes Bluetooth.
Imagen: Clasificación por tecnología. Fuente: https://conceptoabc.com/red-pan/
1.10.3.
MAN
Proviene de “Metropolitan Area Network”, este tipo de red es el paso intermedio entre una red LAN y una red WAN, ya que la extensión de este comprende el territorio de una gran ciudad. Son redes de alta velocidad capaces de dar cobertura a una geografía relativamente extensa, aunque nunca superando las dimensiones de una ciudad.
Imagen: Redes MAN Fuente: //www.profesionalreview.com/2018/12/09/redes-lan-manwan/#:~:text=El%20t%C3%A9rmino%20MAN%20proviene%20de,territorio%20de%20una%20gran%20ciu dad.
1.10.4.
WAN
Puede definirse como una red con una cobertura sin un límite predefinido. Cuando es necesario interconectar varios países será necesario establecer una comunicación directa entre distintos medios, lo que hace de esta red una extensión a nivel mundial. Para conseguir el mejor rendimiento posible, se utiliza el método de conmutación de paquetes, ya que de esta forma el enrutamiento de la información se puede adaptar por cualquier tipo de estándar por el que pase.
Imagen: Redes WAN Fuente: www.profesionalreview.com/2018/12/09/redes-lan-manwan/#:~:text=El%20t%C3%A9rmino%20MAN%20proviene%20de,territorio%20de%20una%20gran%20ciu dad.
1.10.5.
WLAN
Es una red de área local que usa ondas de radio electromagnéticas para enviar y recibir datos a un router a no muy altas distancias siendo redes de estructuras sencillas o un poco más complejas en las cuales se añaden repetidoras para ampliar el rango de red. Un ejemplo de esto puede ser la red wifi.
Imagen: Redes WLAN Fuente: https://internetpasoapaso.com/red-wlan/
1.10.6.
VLAN
Esta divide los grupos de usuarios de la red de una red física real en segmentos de redes lógicas. Se usan para segmentar adecuadamente la red y usar cada subred de una forma diferente, esta consta de uso de switches gestionables que soporta VLANs para segmentar adecuadamente la red.
Imagen: Redes VLAN Fuente: https://www.redeszone.net/tutoriales/redes-cable/vlan-tipos-configuracion/
1.10.7.
CAN
Por: Herbert José Leal Sinay También conocida como red de área de campus; está conecta redes de una área local, a través de una área geográfica limitada, un ejemplo de esto es el de un campus universitario; se entiende que la red de área de campus como una red más grande que la de área local y más pequeña que una de área amplia.
Imagen: ilustración de cómo es una red CAN. Fuente: https://miracomosehace.com/sirve-como-funciona-red-can/
1.10.8.
SAN
Por: Herbert José Leal Sinay La red de área de almacenamiento o SAN se caracteriza por ser una red de velocidades altas que se dedica a conectar y administrar depósitos de dispositivos compartidos de almacenamiento a diversos servidores o computadores, los cuales podrán acceder al almacenamiento como si fueran discos locales que están conectados directamente a una computadora.
Imagen: representación gráfica de una red de área de almacenamiento SAN. Fuente: https://www.incosa.com.uy/blog/sistemas-san-redes-de-area-de-almacenamiento/
1.10.9.
Redes de internet
Por: Herbert José Leal Sinay Se le llama así al conjunto de equipos informáticos los cuales llegarán a estar conectados ya sea por medio de cables, señales, ondas, o también cualquier otro medio por el cual se puedan transmitir datos vía internet.
Imagen: Ejemplificación de dispositivos informáticos conectados por una red de internet. Fuente: https://concepto.de/red-lan/
1.10.10.
Redes Inalámbricas
Por: Herbert José Leal Sinay En las redes inalámbricas se suele usar una señal de radio a cierta frecuencia para llegar a la transmisión de datos entre varios medios informáticos que tengan acceso a la red, también se pueden utilizar redes de radiofrecuencia infrarrojos y en algunos casos microondas, la mayor característica de estas redes es que no necesitan un cableado para la conexión entre dispositivos.
Imagen: Ilustración sobre una red inalámbrica de dispositivos electrónicos. Fuente: https://www.definicionabc.com/tecnologia/red-inalambrica.php
1.10.11.
Topologías
Por: Andy Letrán
El término topología se utiliza para identificar a un área de la matemática que estudia la continuidad y otros conceptos originados a partir de ella. Se trata de una especialización vinculada a las propiedades y características que poseen los cuerpos geométricos y que se mantienen sin alteraciones gracias a cambios continuos, con independencia de su tamaño o apariencia.
Cabe resaltar que las funciones continuas de la matemática son aquellas que, en los puntos cercanos del dominio, experimentan pequeñas variaciones en los valores. A nivel gráfico, estas funciones suelen estar en condiciones de dibujarse sin necesidad de levantar el lápiz del papel.
Otro concepto central de la topología es el espacio topológico, una estructura matemática que permite definir de manera formal a la continuidad, conectividad y convergencia, entre otros conceptos.
La topología, por lo tanto, es la especialización que hace foco en el estudio de las funciones continuas y los espacios topológicos. Esta disciplina trabaja con los objetos de distintas formas, siempre que no se interrumpa la mencionada continuidad. En palabras del lenguaje cotidiano, podría decirse que la topología tiene permitido doblar, estirar, torcer o encoger los elementos, pero sin quebrarlos ni segmentar aquello que esté unido ni pegar lo que esté separado.
A nivel topológico, un triángulo es lo mismo que una circunferencia: uno puede ser transformado en el otro de manera continua, sin necesidad de cortar o pegar. En cambio, una circunferencia nunca puede ser transformada en un segmento desde el punto de vista topológico, ya que dicha transformación requeriría romper la continuidad de la figura. Entre las ramas de la topología, es posible distinguir la general (también llamada conjuntista), la diferencial y la algebraica.
Imagen: Ejemplo de topología Fuente: https://definicion.de/wp-content/uploads/2010/03/Topologia.jpg
1.10.12.
Tipos de Topologias de red
Por: Andy Letrán La topología de red se define como un mapa físico o lógico de una red para intercambiar datos. En otras palabras, es la forma en que está diseñada la red, sea en el plano físico o lógico.
1.10.13.
Topología de anillo
Por: Andy Letrán Una red en anillo es una topología de anillo en la que cada estación tiene una única conexión de entrada y otra de salida de anillo. Cada estación tiene un receptor y un transmisor que hace la función de traductor, pasando la señal a la siguiente estación.
En este tipo de red la comunicación se da por el paso de un token o testigo, que se puede conceptualizar como un cartero que pasa recogiendo y entregando paquetes de información, de esta manera se evitan eventuales pérdidas de información debidas a colisiones.
En un anillo doble (Token Ring), dos anillos permiten que los datos se envíen en ambas direcciones (Token passing). Esta configuración crea redundancia (tolerancia a fallos). Ventajas de la topología de anillo: El sistema provee un acceso equitativo para todas las computadoras. ● El rendimiento no decae cuando muchos usuarios utilizan la red. ● Arquitectura muy sólida. ● Facilidad para la fluidez de datos. ● Sistema operativo caracterizado con un único canal Desventajas de la topología de anillo: ●
Longitudes de canales (si una estación desea enviar a otra, los datos tendrán que pasar por todas las estaciones intermedias antes de alcanzar la estación de destino).
●
El canal usualmente se degradará a medida que la red crece.
●
Difícil de diagnosticar y reparar los problemas.
●
Si se encuentra enviando un archivo podrá ser visto por las estaciones intermedias antes de alcanzar la estación de destino.
●
La transmisión de datos es más lenta que en las otras topologías (Estrella, Malla, Bus, etc), ya que la información debe pasar por todas las estaciones intermedias antes de llegar al destino. Características de la topología de anillo:
● El cable forma un bucle cerrado formando un anillo. ● Todos los ordenadores que forman parte de la red se conectan a ese anillo. ● Habitualmente las redes en anillo utilizan como método de acceso al medio el modelo ”paso de testigo”.
Imagen: Ejemplo de topología Fuente: https://definicion.de/wp-content/uploads/2010/03/Topologia.jpg
1.10.14.
Topología de anillo doble
Por: Andy Letrán Una topología en anillo doble como su nombre lo indica en vez de solo tener un anillo tiene dos anillos concéntricos para transmitir la información, donde cada host de la red está conectado a ambos anillos, aunque los dos anillos no están conectados directamente entre sí. Ventajas de la topología de anillo doble: ● Redundancia, porque si falla el primer anillo queda el segundo. ●
Otra ventaja podemos mencionar que incrementa la confiabilidad y la flexibilidad de la red.
● Alto número de estaciones de abajo por segmento. ● Puede estar previamente cableado en un lugar o en cualquier parte. Desventajas de la topología de anillo doble: ● Una desventaja muy común que tiene la topología de doble anillo es el costo ya que se duplica la infraestructura necesaria. ● Baja inmunidad al ruido. ● Ancho de banda limitado. ● Alto costo de los equipos. Características de la topología de anillo: ● Arquitectura sólida. Pocas veces entra en conflicto con usuarios. ● El sistema provee un acceso equitativo para todos los ordenadores. ● El cable forma un bucle cerrado formando un anillo. ● Todos los ordenadores que forman parte de esa red se conectan a ese anillo. ● Los nodos de la red se disponen en un anillo cerrado conectados a él mediante enlaces punto a punto.
Imagen: Ejemplo de topología de Anillo Doble Fuente: https://sites.google.com/site/topologiaderedes2/_/rsrc/1468864399967/home/topologia-dedoble-anillo/Diapositiva1.PNG?height=300&width=400
1.10.15.
Topología de árbol
Por: Andy Letrán La red en árbol es una topología de red en la que los nodos están colocados en forma de árbol. Desde una visión topológica, es parecida a una serie de redes en estrella interconectadas salvo en que no tiene un nodo central. En cambio, tiene un nodo de enlace troncal, generalmente ocupado por un hub o switch, desde el que se ramifican los demás nodos. Es una variación de la red en bus, el fallo de un nodo no implica una interrupción en las comunicaciones. Se comparte el mismo canal de comunicaciones. La topología en árbol puede verse como una combinación de varias topologías en estrella. Tanto la de árbol como la de estrella son similares a la de bus cuando el nodo de interconexión trabaja en modo difusión, pues la información se propaga hacia todas las estaciones, solo que en esta topología las ramificaciones se extienden a partir de un punto raíz (estrella), a tantas ramificaciones como sean posibles, según las características del árbol. Los problemas asociados a las topologías anteriores radican en que los datos son recibidos por todas las estaciones sin importar para quién vayan dirigidos. Es entonces necesario dotar a la red de un mecanismo que permita identificar al destinatario de los mensajes, para que estos puedan recogerlos a su arribo. Además, debido a la presencia de un medio de transmisión compartido entre muchas estaciones, pueden producirse interferencias entre las señales cuando dos o más estaciones se transmiten al mismo tiempo. Ventajas de la topología de árbol: ● Cableado punto a punto para segmentos individuales. ● Soportado por multitud de vendedores de software y de hardware. ● Facilidad de resolución de problemas. Desventajas de la topología de árbol: ● Se requiere mucho cable. ● La medida de cada segmento viene determinada por el tipo de cable utilizado. ● Si se cae el segmento principal todo el segmento también cae. ● Es más difícil su configuración. ● Si se llegara a desconectar un nodo, todos los que están conectados a él se desconectan también. Características de la topología de anillo: ● Facilita el crecimiento de la red: tiene la capacidad de conectar una gran cantidad de computadoras. ● Posee nodos que transmiten y reciben información.
● Todos los nodos que forman la red están directa o indirectamente conectados a un nodo central.
Imagen: Ejemplo de topología de Árbol Fuente: https://redesinalambricasycableadas.files.wordpress.com/2014/10/descarga-5.jpg?w=760
1.10.16.
Topología de bus
Por: Keneth López Una red en bus es aquella topología que se caracteriza por tener un único canal de comunicaciones (denominado bus, troncal o backbone) al cual se conectan los diferentes dispositivos. De esta forma todos los dispositivos comparten el mismo canal para comunicarse entre sí. Topología de red en la que todas las estaciones están conectadas a un único canal de comunicaciones por medio de unidades interfaz y derivadores. Las estaciones utilizan este canal para comunicarse con el resto. La topología de bus tiene todos sus nodos conectados directamente a un enlace y no tiene ninguna otra conexión entre nodos. Físicamente cada host está conectado a un cable común, por lo que se pueden comunicar directamente, aunque la ruptura del cable hace que los hosts queden desconectados. La topología de bus permite que todos los dispositivos de la red puedan ver todas las señales de todos los demás dispositivos, lo que puede ser ventajoso si desea que todos los dispositivos obtengan esta información. Ventajas de la topología de bus: ● Facilidad de implementación y crecimiento. ● Simplicidad en la arquitectura. ● Es una red que no ocupa mucho espacio. Desventajas de la topología de bus: ● Hay un límite de equipos dependiendo de la calidad de la señal. ● Puede producirse degradación de la señal. ● Complejidad de reconfiguración y aislamiento de fallos. ● Limitación de las longitudes físicas del canal. ● Un problema en el canal usualmente degrada toda la red. ● El desempeño disminuye a medida que la red crece.
Imagen: Ejemplo de una topología de Bus Fuente: https://i0.wp.com/s.culturacion.com/wp-content/uploads/2014/11/figura-4.png
1.10.17.
Topología de estrella
Por: Keneth López Una red en estrella es una red de computadoras donde las estaciones están conectadas directamente a un punto central y todas las comunicaciones se hacen necesariamente a través de ese punto (conmutador, repetidor o concentrador). Los dispositivos no están directamente conectados entre sí, además de que no se permite tanto tráfico de información. Dada su transmisión, una red en estrella activa tiene un nodo central “activo” que normalmente tiene los medios para prevenir problemas relacionados con el eco. Se utiliza sobre todo para redes locales (LAN). La mayoría de las redes de área local que tienen un conmutador (switch) o un concentrador (hub) siguen esta topología. Ventajas de la topología de estrella: ● Posee un sistema que permite agregar nuevos equipos fácilmente. ● Reconfiguración rápida. ● Fácil de prevenir daños y/o conflictos, ya que no afecta a los demás equipos si ocurre algún fallo. ● Centralización de la red. ● Fácil de encontrar fallos Desventajas de la topología de estrella: ● Si el hub(repetidor) o switch central falla, toda la red deja de transmitir. ● Es costosa, ya que requiere más cables que las topologías en bus o anillo. ● El cable viaja por separado del concentrador a cada computadora.
Imagen: Ejemplo de una topología de Estrella Fuente: https://upload.wikimedia.org/wikipedia/commons/5/53/Netzwerktopologie_Stern.png
1.10.18.
Topología de estrella extendida
Por: Keneth López La topología en estrella extendida es igual a la topología en estrella, con la diferencia de que cada nodo que se conecta con el nodo central también es el centro de otra estrella. Generalmente el nodo central está ocupado por un hub o un switch, y los nodos secundarios por hubs. Ventajas de la topología de estrella extendida: ● La ventaja de esto es que el cableado es más corto y limita la cantidad de dispositivos que se deben interconectar con cualquier nodo central.
Desventajas de la topología de estrella extendida: ●
Si el nodo central falla, toda la red deja de transmitir.
●
Es costosa, ya que requiere más cable que las topologías bus o anillo.
●
El cable viaja por separado del concentrador a cada computadora.
Imagen: Ejemplo de una topología de Estrella extendida Fuente: https://clasificaciondelasredesblog.files.wordpress.com/2017/05/25ef1-estrellaextendida.png
1.10.19.
Topología de malla
Por: Keneth López
Una red de malla es una red en la que los dispositivos –o nodos– están conectados entre sí, ramificando otros dispositivos o nodos. Estas redes se configuran para enrutar eficazmente los datos entre dispositivos y clientes. Ayudan a las organizaciones a proporcionar una conexión consistente en todo un espacio físico. Las topologías de red en malla crean múltiples rutas para que la información viaje entre los nodos conectados. Este enfoque aumenta la resistencia de la red en caso de que falle un nodo o una conexión.
Ventajas de la topología de malla: ● Los puntos únicos de fallo no perjudican a toda la red. ● Las redes malladas pueden transmitir señales a una mayor distancia. ● Tienen menos puntos muertos donde no llegan las señales Wi-Fi. ● Los nodos pueden enviarse mensajes entre sí directamente. No es necesaria la intervención de un punto de acceso central. Desventajas de la topología de malla: ● Escalabilidad. Ampliar el tamaño de la red puede ser más difícil en función del número de nodos necesarios. ● Complejidad. Cada nodo debe enviar mensajes y actuar como router. Cuanto más compleja sea una red de malla, más difícil puede ser gestionar o solucionar los problemas de todos los nodos.
Imagen: Ejemplo de una topología de malla Fuente: https://upload.wikimedia.org/wikipedia/commons/9/91/Netzwerktopologie_vermascht.png
1.10.20.
Topología de híbrida
Por: Diego López
Una red híbrida (también llamada topología de red híbrida) combina las mejores características de dos o más redes diferentes. Estas proporcionan un gran número de conexiones y caminos de transmisión de datos para los usuarios. Las redes más reales son las híbridas, de acuerdo con "Lecturas sobre telecomunicaciones y redes". Ventajas de las redes híbridas: Las redes híbridas ofrecen múltiples posibilidades para la transmisión de datos entre nodos de la red. El fallo de cualquier componente simple de hardware (tal como una impresora o un cable) no afecta al rendimiento de la red. Desventajas de las redes híbridas: Las redes híbridas son caras, difíciles de establecer, extender y resolver cuando se presentan problemas. Una red híbrida requiere más cableado entre sus nodos que otros tipos de redes.
Imagen: Ejemplo de una Topología Híbrida Fuente: https://dc722jrlp2zu8.cloudfront.net/media/uploads/2021/02/03/hibrida.png
1.10.21.
Partes de una topología
Está compuesta por dos partes, la topología física, que es la disposición real de los cables (los medios) y la topología lógica, que define la forma en que los hosts acceden a los medios. Las topologías físicas que se utilizan comúnmente son de bus, de anillo, en estrella, en estrella extendida, jerárquica y en malla.
Imagen: Ejemplo de las partes de la topología Fuente: https://1.bp.blogspot.com/lr8uH9hW4YQ/V_RTuEP4OTI/AAAAAAAAARQ/PL0n62bQnKURClN_BEkSo5uq78ST_oBQCLcB/s640/arbol.jpg
Capítulo II 2.
Modelo Osi y protocolos TCP/IP 2.1.
Capas del modelo OSI
¿Qué es el modelo OSI? El Modelo OSI (Open Systems Interconnection, Interconexión de Sistemas Abiertos) es un modelo de referencia para los protocolos de comunicación de las redes informáticas o redes de computadoras. Fue creado en la década de 1980 por la Organización Internacional de Normalización (ISO). Su función fue estandarizar o serializar las comunicaciones en Internet, dado que en sus inicios ésta era sumamente caótica.
¿Cómo funciona el modelo OSI? El funcionamiento del Modelo OSI depende directamente de sus siete capas, en las que descompone el complicado proceso de la comunicación digital. Al compartimentar, asigna a cada capa funciones muy específicas, dentro de una estructura jerárquica fija.
¿Para qué sirve el modelo OSI? El Modelo OSI es fundamentalmente una herramienta conceptual, de organización de las telecomunicaciones. Universaliza la manera en que la información es compartida entre redes informáticas o sistemas computarizados, independientemente de su origen geográfico, empresarial u otras condiciones que podrían dificultar la comunicación de los datos.
Imagen: Ejemplo de la Comunicación de Redes Fuente: http://ikasistemas.com/wpcontent/uploads/2012/04/Fotolia_33300379_XS_Implantac_redes.jpg
2.2.
Capa 1: La capa física
Se encarga de la topología de red y las conexiones globales entre la computadora y la red, refiriéndose tanto al medio físico como a la manera en
que la información se transmite. Cumple con las funciones de especificar la información sobre el medio físico (tipos de cable, microondas, etc.), definir la información sobre la tensión eléctrica de la transmisión, las características funcionales de la interfaz de red y garantizar la existencia de una conexión (aunque no la fiabilidad de la misma).
Imagen: Explicación sobre la capa física Fuente: https://sites.google.com/site/cursoenlineaccna1/_/rsrc/1472866850373/capa-fisica-delmodelo-osi/Unidad%205.jpg
2.3.
Capa 2: La capa de enlace de datos
Proporciona tránsito de datos confiable a través de un enlace físico. Al hacerlo, la capa se ocupa del direccionamiento físico, la topología de red, el acceso a la red, la notificación de errores, entrega ordenada de tramas y control de flujo. Existe como una capa de conexión entre los procesos de software de las capas por encima de ella y la capa física debajo de ella.
2.4.
Capa 3: La capa de red
Es la parte del proceso donde se establecen conexiones a través del envío de paquetes de datos de ida y vuelta entre diferentes redes. Esto incluye la configuración de las rutas por las que deben transitar los paquetes de datos, la comprobación de funcionamiento de un servidor en otra red y el direccionamiento y la recepción de paquetes IP desde otras redes.
2.5.
Capa 4: La capa de transporte
La capa de transporte es responsable de las comunicaciones lógicas entre las aplicaciones que se ejecutan en diferentes hosts. Es el enlace entre la capa de aplicación y las capas inferiores que son responsables de la transmisión de la red. Es responsabilidad de la capa de transporte mantener y rastrear estas conversaciones múltiples.
2.6.
Capa 5: La capa de sesión
Esta capa es la que se encarga de mantener y controlar el enlace establecido entre dos ordenadores que están transmitiendo datos. Asegurar que, dada una sesión establecida entre dos máquinas, la misma se pueda efectuar para las operaciones definidas de principio a fin.
2.7.
Capa 6: La capa de presentación
Esta capa se encarga de que la información que envía la capa de aplicación de un sistema pueda ser leída. La capa de presentación es responsable de la traducción, el cifrado y la compresión de los datos. Esta capa fue creada ya
que en la actualidad existen muchos tipos de formatos y si son compartidos debe ser posible leerlos en el mismo formato que fueron enviados.
Imagen: Capa 6🡪 Capa de Presentación Fuente: https://cfassets.www.cloudflare.com/slt3lc6tev37/60dPoRIz0Es5TjDDncEp2M/7ad742131addcbe5dc6baa16a93 bf189/6-presentation-layer.svg
2.8.
Capa 7: La capa de aplicación
Es la única capa que interactúa directamente con los datos del usuario. Ofrece a las aplicaciones (de usuario o no) la posibilidad de acceder a los servicios de las demás capas. Esta capa utiliza la capa de transporte para enviar y recibir datos.
Imagen: Capa7 🡪 Capa de Aplicación Fuente: https://www.textoscientificos.com/imagenes/redes/arquitectura-capas-sistema-gridaplicacion.gif
2.9.
Protocolos utilizados en cada capa
1. Capa 1🡪 Capa Física DSL - ISDN. 2. Capa 2 🡪 Capa de Enlace Ethernet es un estándar de redes de área local. 3. Capa 3 🡪 Capa de Red IP (Internet Protocol). 4. Capa 4 🡪 Capa de Transporte UDP (User Datagram Protocol). 5. Capa 5 🡪 Capa de Sesión
FTP (File Transfer Protocol - TCP (Transmission Control Protocol) SAP (Session Announcement Protocol). 6. Capa 6 🡪 Capa de Presentación AFP (Apple Filing Protocol) - TCP (Transmission Control Protocol). 7. Capa 7 🡪 Capa de Aplicación TCP (Transmission Control Protocol) - HTTP (HyperText Transfer Protocol).
Imagen: Protocolos ISO Fuente: https://www.ordenadores-y-portatiles.com/wp-content/uploads/2020/09/modelo-osi.png
2.10.
Dispositivos de redes utilizados en cada capa
Por: Samuel Monzón Un dispositivo de interconexión de redes es un término ampliamente utilizado para cualquier hardware que conecte diferentes recursos de red. Los dispositivos clave que comprenden una red son conmutadores, enrutadores, bridge (puentes), repetidores y puertas de enlace. Ejemplos:
Repetidores Se utilizan para extender la longitud de la red. Fueron creados para regenerar y amplificar señales débiles, extendiendo así la longitud de la red. La función básica de un repetidor es remodelar y re amplificar la señal de datos a su nivel original.
Imagen : Un repetidor WiFi. Fuente: https://www.steren.com.gt/repetidor-wi-fi-2-4-ghz-19-m-de-cobertura.html
Hubs Un Hub es básicamente un repetidor multipuerto, actúa como concentrador y conecta múltiples cables provenientes de diferentes conexiones. Los concentradores no pueden filtrar datos, por lo que los paquetes de datos se envían a todos los dispositivos conectados, el dominio de colisión de todos los hosts conectados a través de Hub sigue siendo uno. Los Hubs no tienen inteligencia para encontrar la mejor ruta para los paquetes, las consecuencias: ineficiencia y desperdicio.
Imagen : Hub Fuente:https://cdn.shopify.com/s/files/1/0101/2522/products/Sl_2048x.png?v=1625105085
Bridge Un bridge o un puente opera en la capa de enlace de datos. Es un repetidor con funcionalidad adicional de filtrado al leer las direcciones MAC de origen y destino. También se usa para interconectar dos LAN que funcionan en el mismo protocolo. Tiene un puerto de entrada y salida único, lo que lo convierte en un dispositivo de 2 puertos.
Imagen: Network Bridge Fuente: https://www.ordenadores-y-portatiles.com/wp-content/uploads/2020/05/Network-Bridge.jpg
Switch o conmutador El switch es un puente de múltiples puertos, es un dispositivo de capa de enlace de datos. El conmutador es muy eficiente, realiza una verificación de errores antes de reenviar paquetes. En otras palabras, el conmutador divide el dominio de colisión de los hosts, pero el dominio de difusión sigue siendo el mismo.
Imagen : Switch Fuente:https://static.kemikcdn.com/2018/07/39DF0C34E5EED964A07B7EB31615B58E20DB934C_feature. jpg
Router Los enrutadores enlazan dos o más redes diferentes, estas pueden constar de varios tipos de segmentos de red LAN. Un enrutador recibe paquetes y selecciona la ruta óptima para reenviar el paquete a través de la red. Los enrutadores crean una tabla de todas las direcciones de los dispositivos, llamada tabla de enrutamiento. Con ella, el enrutador envía una transmisión desde la fuente hacia el destino a través de la mejor ruta. Los enrutadores funcionan en el nivel de red del modelo OSI.
Imagen: Router Fuente: https://www.amazon.com/-/es/Router-WiFi-inteligente-TP-Link-AC1750/dp/B07KGH7R5X#
Gateway Las puertas de enlace son dispositivos de conexión multipropósito para crear uniones entre redes diferentes. Son capaces de convertir el formato de los paquetes de un entorno, a otro formato. Funcionan como agentes de mensajería que toman datos de un sistema, los interpretan y transfieren a otro sistema.
Imagen: Gateway Fuente: https://www.google.com/amp/s/www.lanner-america.com/es/blog-es/gateway-domesticainteligente-basada-en-intel-y-otras-tecnologias-domesticas-inteligentes/
2.11.
Redes IP
Por: Samuel Monzón
Una dirección IP es una dirección única que identifica a un dispositivo en Internet o en una red local. IP significa “protocolo de Internet”, que es el conjunto de reglas que rigen el formato de los datos enviados a través de Internet o la red local. Es una cadena de números separados por puntos. Las direcciones IP se expresan como un conjunto de cuatro números, que pueden variar.
Direcciones IP privadas Cada dispositivo que se conecta a tu red de Internet tiene una dirección IP privada. Tu router genera direcciones IP privadas que son identificadores únicos para cada dispositivo que los diferencian dentro de la red.
Direcciones IP públicas Es la dirección principal asociada a toda la red. Tu dirección IP pública es la dirección que todos los dispositivos fuera de tu red de Internet utilizarán para reconocer tu red.
Direcciones IP dinámicas Cambian de forma automática y con regularidad. De forma periódica, reasignan y devuelven las direcciones IP más antiguas al grupo para que las utilicen otros clientes. Proporciona beneficios de seguridad, ya que una dirección IP cambiante facilita a los delincuentes el pirateo de la interfaz de red.
Direcciones IP estáticas Son siempre las mismas, una vez que la red asigna una dirección IP, esta permanece igual. Garantiza que los sitios web y las direcciones de correo electrónico vinculados tengan una dirección IP constante, lo que es vital si desea que otros dispositivos puedan encontrarlos de manera predecible en la Web.
2.12.
Protocolos IP versión 4
Por: Samuel Monzón El Protocolo de Internet versión 4 (IPv4) es la primera y más conocida versión del protocolo de Internet. Depende del enfoque de entrega de mejor esfuerzo, el cual no garantiza la entrega de datos ni la calidad del servicio. También es un protocolo sin conexión, que transmite paquetes de datos sin asegurarse de que el dispositivo de destino esté preparado. La ventaja es que puede enviar paquetes por caminos alternativos en caso de congestión de la red o de fallos del router.
Esta versión de IP utiliza una dirección de 32 bits, el formato con el que la mayoría de la gente está familiarizada al hablar de una dirección IP. Una dirección IPv4 consta de cuatro números decimales, separados por tres puntos, que van del 0 al 255, como por ejemplo: 192.0.2.146
Hoy en día sólo hay unas pocas direcciones IPv4 disponibles. Incluso RIPE NCC, uno de los Registros Nacionales de Internet (RIR), ha anunciado que se ha quedado sin direcciones IPv4. Sin embargo, seguirá utilizándose en la web en el futuro cercano antes de que podamos desactivarlo por completo.
2.13.
El protocolo ICMP
Por: Cristofer Javier Morales de León El Protocolo de control de mensajes de Internet (ICMP) es un protocolo en la capa de red que utilizan los dispositivos de red para diagnosticar problemas de comunicación en la red. El ICMP se utiliza principalmente para determinar si los datos llegan o no a su destino a su debido tiempo. El protocolo ICMP se suele utilizar en dispositivos de red, como los enrutadores. El ICMP es crucial para informar de errores y realizar pruebas, pero también puede utilizarse en ataques de denegación de servicio distribuido (DDoS). El objetivo principal del ICMP es informar sobre errores. Cuando dos dispositivos se conectan a través de Internet, el ICMP genera errores para compartirlos con el dispositivo emisor en caso de que alguno de los datos no haya llegado a su destino previsto. Por ejemplo, si un paquete de datos es demasiado grande para un enrutador, este descartará el paquete y enviará un mensaje ICMP de vuelta a la fuente original de los datos. Su otro uso es llevar a cabo diagnósticos de red; las utilidades de terminal más utilizadas, traceroute y ping, funcionan ambas con ICMP. La utilidad traceroute se utiliza para mostrar la ruta de enrutamiento entre dos dispositivos de Internet. La ruta de enrutamiento es el camino físico real de los enrutadores conectados por el que debe pasar una solicitud antes de llegar a su destino. El trayecto entre un router y otro se conoce como "salto", y una traceroute también informa del tiempo necesario para cada salto en el camino. Esto puede ser útil para determinar las fuentes de retraso de la red.
Imagen: Ejemplo del uso del protocolo ICMP Fuente: https://encryptedtbn0.gstatic.com/images?q=tbn:ANd9GcSpyO6oLWY8EtdHmI2jIW0eF3C1BTEtsUVxuUOBjZ6IiwNfRj9rwsa QS4kXUZ_vRODj0g&usqp=CAU
Función ICMP es un protocolo sin conexión. Un dispositivo no necesita abrir una conexión con otro dispositivo antes de enviar un mensaje ICMP. El tráfico IP normal se envía utilizando TCP, lo que significa que dos dispositivos que intercambian datos primero llevarán a cabo un protocolo de enlace TCP para asegurarse de que ambos dispositivos estén listos para recibir datos. ICMP no abre una
conexión de esta manera. El protocolo ICMP no permite apuntar a un puerto específico en un dispositivo.
Imagen: Ejemplo del funcionamiento del protocolo ICMP Fuente: https://www.securityartwork.es/wp-content/uploads/2011/04/Diagrama2.jpg
2.14.
El protocolo UDP
El protocolo UDP (User Datagram Protocol) se encarga de proporcionar un servicio de comunicación punto a punto no orientado a conexión, sino a transacciones en la capa de transporte, permitiendo la transmisión sin conexión de datagramas en redes que estén basadas en IP. Además, UDP se caracteriza por no garantizar la entrega de los paquetes. Este protocolo fue diseñado por David P. Reed hacia el año 1980 con el fin de trabajar sobre IP con esquemas de datagramas. UPD se encuentra redactado en el documento RFC 768. Características Este protocolo funciona sin conexión, permitiendo así el envío de datagramas, incluso antes de que se haya establecido una conexión entre emisor y receptor. El envío de datagramas se realiza a la dirección IP establecida por la secuencia, especificando cuál será el puerto de destino. No es necesario que el ordenador asociado al destino, le dé una respuesta al puerto de origen. Sin embargo, en el caso de que algún paquete deba ser devuelto a quien lo emitió, se puede incluir en la cabecera UDP la información del puerto de origen. utiliza puertos para facilitar el proceso de transferencia de datagramas a los protocolos correctos, pero los puertos de UDP no cuentan con mecanismos de control, por lo que la cabecera es mucho más sencilla. Datagrama UDP Source Port o puerto fuente hace referencia al punto de origen del datagrama. Este campo es opcional, por lo que en caso de que no sea necesario ubicar el proceso origen, se debe rellenar con ceros. El receptor necesitará esta información para poder responder al paquete enviado. Por su lado Destination Port o puerto destino es el receptor del datagrama donde se indica el servicio solicitado, y será donde se identifique el proceso que va a recibir el mensaje. Así mismo, UDP Length se refiere a la longitud del datagrama UDP en bytes, lo que incluye los datos del mensaje. El tamaño máximo de datagrama puede ser de 64 kb.
Finalmente, el UDP Checksum hace referencia a la suma de comprobación o verificación y es utilizado para posibles errores durante el proceso de transmisión. Para esta suma se usan partes de la cabecera, datos del usuario y de la pseudo cabecera. Esta verificación no es obligatoria y al igual que el puerto fuente, en caso de no ser incluido, deberá ser rellenado con ceros.
Imagen: Datagrama UDP Fuente: https://keepcoding.io/wp-content/uploads/2022/03/Que-es-el-protocolo-UDP.jpg
2.15.
El protocolo TCP
TCP o Protocolo de Control de Transmisión, es un protocolo de internet encargado de informar del destino de los datos permitiendo la creación de conexiones seguras. Vint Cerf y Robert Kahn desarrollaron el protocolo TCP a mediados de los años 70. El protocolo TCP es una forma segura de intercambio de datos al requerir de la autorización entre cliente y servidor, o emisor y receptor, antes de producirse la transferencia. Una vez ambas partes hayan autorizado la transmisión, podrá iniciarse el envío y recepción de datos. El protocolo TCP, al igual que otros como el protocolo SSH, nació para sustituir protocolos anteriores; debido a su antigüedad, dichos protocolos resultaban inseguros para la conexión o el intercambio de datos en internet.
Imagen: Ejemplo del Protocolo TCP Fuente: https://www.profesionalreview.com/wp-content/uploads/2020/02/protocolo-TCP-IP-01.png
Función TCP tiene un funcionamiento muy sencillo que consta de tres fases. En la primera, se establece la conexión con la autorización de ambas partes. Entonces, se produce un procedimiento denominado ‘negociación en tres pasos’. Para, después, iniciar la transferencia de la información. Aquí, se establecen cada uno de los parámetros para un intercambio ordenado, correcto y, sobre todo, seguro. Por último, mediante una ‘negociación en cuatro pasos’ se finaliza la conexión entre cliente y servidor.
En el protocolo TCP los datos se entregan en el mismo orden en el que se enviaron. Para ello, divide la información en diferentes paquetes que se envían por la ruta más rápida hacia su destino. Así, con una separación en capas, se identifica la procedencia del tráfico es más fácil y evita la saturación de la red. Además, sirve de capa intermedia entre una aplicación y el protocolo IP, supliendo las carencias de seguridad del protocolo de red (consulta aquí cuál es tu dirección IP). TCP sirve también como mecanismo que permite diferenciar las aplicaciones, ya sean emisoras o receptoras, dentro de una misma máquina. Para ello, recurre al concepto de puerto. A pesar de tener ya más de cuatro décadas, sigue aplicándose en todas las comunicaciones que se producen en la red de redes: internet. Y, sin su desarrollo, el internet que conocemos actualmente sería muy diferente.
Imagen: Ejemplo funcionamiento del Protocolo TCP Fuente:https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Fin_de_conexi%C3%B3n_TCP.sv g/300px-Fin_de_conexi%C3%B3n_TCP.svg.png
Capítulo III 3.
Subneteo
¿Qué es el subneteo? Es un procedimiento que permite dividir a una red primaria IPv4 en una serie de subredes, de tal forma que cada una de ellas funcione a nivel de envío y recepción de paquetes, como una red individual, aunque todas pertenezcan a la misma red principal y, por lo tanto, al mismo dominio de difusión original.
¿Por qué realizar un Subneteo? Cuando trabajamos con una red pequeña no encontramos muchos problemas para configurar el rango de direcciones IPv4 para conseguir un rendimiento óptimo. Pero a medida que se van agregando Host a la red, el desempeño empieza a verse afectado. Esto puede ser corregido, en parte, segmentando la red con switches, reduciendo los Dominios de colisión (host que comparten el mismo medio) enviando las tramas sólo al segmento correcto. Pero aunque se reducen las colisiones con tomar estas medidas, si se continúa aumentando el número de host, aumentan también los envíos de broadcast (Envió de paquetes a todos los dispositivos de la red). Lo que afecta considerablemente el desempeño de la red. Esto se debe a que los Switches solo se segmentan a nivel de MAC Address y los envíos de broadcast son a nivel de red 255.255.255.255. Subneteando la red tendremos, en su conjunto, una sola IP address divida en varias subredes más pequeñas perfectamente diferenciadas, consiguiendo un mayor control y reduciendo el congestionamiento por los broadcasts.
Imagen: Uso del subneteo de redes. Fuente: https://3.bp.blogspot.com/-1Bdj9f_gW7I/W_IdWaH7kI/AAAAAAAAE7o/I1wMXvGLP10jfxXlrCcCoP2jo2RJT57nwCLcBGAs/w1200-h630-p-k-nonu/Imagen1.jpg
A continuación, se ofrecen una serie de conceptos relacionados a este proceso de Subneteo. Subred: Es la agrupación física o lógica de dispositivos de red que conforman a una sección de un sistema autónomo o como tal puede ser un sistema autónomo. Las Clases: Se puede identificar rápido a qué clase pertenece cada IP viendo los dígitos que tiene en el principio
Imagen: Rango de clases de direccionamiento Fuente: https://www.monografias.com/trabajos76/computacion-informatica-subneteo/image004.png
Máscara de red: Denominado también Prefijo de red extendida, es el número que acompaña a una dirección IP, indicando los bits totales ocupados para la parte de red, que deben ser comunes para todos los clientes de una red IP. Máscaras de red por clase. – Clase A: 255.0.0.0 – Clase B: 255.255.0.0 – Clase C: 255.255.255.0 Subneteo IP: La función del Subneteo o Subnetting es dividir una red IP física en subredes lógicas para que cada una de estas trabaje a nivel envío y recepción de paquetes como una red individual, aunque todas pertenezcan a la misma red física y al mismo dominio. Calcular la Cantidad de Subredes y Hosts por Subred La Cantidad de Subredes es igual a 2N, donde "N" es el número de bits "robados" a la porción de Host. Y la Cantidad de Hosts x Subred es igual a 2M-2, en donde "M" es el número de bits disponible en la porción de host y "-2" es debido a que toda subred debe tener una ip reservada para su ID de red y otra ip para su propia dirección de broadcast.
3.1.
Subneteo clase A
Por: Maria Fernanda Morales 13 En las direcciones IP, un bit o un grupo de bits determinan la clase a la que pertenece esa dirección IP, así mismo, cada clase de una dirección de red determina lo que es: 1. Una máscara por defecto 2. Un rango IP 3. Cantidad de redes 4. Cantidad de hosts por red A continuación, se mostrará los que corresponden a la clase A:
Imagen: Datos de Subneteo Clase A Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
En el Subneteo de clase A, se toma la dirección de red el primer octeto que corresponde a 8 bits y en la dirección de host los últimos tres octetos que corresponde a 24 bits.
Imagen: Dirección de red y de host de Subneteo Clase A Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
Los pasos para el Subneteo de clase A son: 1. Identificar la máscara de red actual de nuestra dirección IP. 2. Convertir los bits en números decimales, es el proceso de esta conversión de cada bit de un intervalo de una dirección IP, en caso de ser "1" tiene el valor de "2" que se encuentra elevado a la posición que ocupa ese bit en el octeto y luego se suman los resultados. A continuación, un ejemplo de este proceso:
Imagen: Ejemplo de convertir los bits en números decimales Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
1. Calcular la cantidad de subredes, este proceso se realiza por medio de la fórmula 2𝑁 ≥ 𝐶 . "N" es la cantidad de números de bits que se tomaron de la porción de host y el "-2" es porque la primera y última subred no son utilizables ya que estas contienen la dirección de la red y broadcast respectivamente. 2. Por medió de la fórmula de subredes podemos obtener la nueva máscara, incluyendo “n” en la máscara. 3. Calcular la cantidad de hosts, este proceso se realiza con la fórmula 2𝑀 − 2. "M" es el número de bits disponibles en la porción de host y "-2" es porque toda subred debe tener su propia dirección de red y su propia dirección de broadcast.
4. Por último, obtenemos la cantidad para el salto de red, esto lo haremos por la fórmula 256 – G. 5. Encontrar las iteraciones de red. Ejemplo de Subneteo Clase A: -
IP: 10.0.0.0 / 8 bits
-
6 subredes
1. Identificar la máscara de red actual
Imagen: Primer paso de Subneteo Clase A Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
2. Convertir los bits en números decimales
Imagen: Segundo paso de Subneteo Clase A Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
3. Encontrar la cantidad de subredes
Imagen: Tercer paso de Subneteo Clase A Fuente: https://www.youtube.com/watch?v=eBzTdjeW5q8&ab_channel=TwisterSystems
4. Encontrar la nueva máscara de red
Imagen: Cuarto paso de Subneteo Clase A Fuente: https://www.youtube.com/watch?v=eBzTdjeW5q8&ab_channel=TwisterSystems
5. Calcular la cantidad de Host
Imagen: Quinto paso de Subneteo Clase A Fuente: https://www.youtube.com/watch?v=eBzTdjeW5q8&ab_channel=TwisterSystems
6. Cantidad de salto de red
Imagen: Sexto paso de Subneteo Clase A Fuente: https://www.youtube.com/watch?v=eBzTdjeW5q8&ab_channel=TwisterSystems
7. Iteraciones de red
Imagen: Séptimo paso de Subneteo Clase A Fuente: https://www.youtube.com/watch?v=eBzTdjeW5q8&ab_channel=TwisterSystems
3.2.
Subneteo clase B
Por: Maria Fernanda Morales 13 Al igual que el Subneteo de clase A, se determina lo que es: 1. Una máscara por defecto 2. Un rango IP 3. Cantidad de redes 4. Cantidad de hosts por red A continuación, se mostrará los que corresponden a la clase B:
Imagen: Datos de Subneteo Clase B Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
En el Subneteo de clase B, se toma la dirección de red los primeros dos octetos que corresponden a 16 bits y en la dirección de host los últimos dos octetos que corresponde a 16 bits.
Imagen: Dirección de red y de host de Subneteo Clase B Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
Los pasos para el Subneteo de clase B son: 1. Identificar la máscara de red actual de nuestra dirección IP. 2. Convertir los bits en números decimales, es el proceso de esta conversión de cada bit de un intervalo de una dirección IP, en caso de ser "1" tiene el valor de "2" que se encuentra elevado a la posición que ocupa ese bit en el octeto y luego se suman los resultados. A continuación, un ejemplo de este proceso:
Imagen: Ejemplo de convertir los bits en números decimales Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
3. Calcular la cantidad de subredes, este proceso se realiza por medio de la fórmula 2𝑁 ≥ 𝐶 . "N" es la cantidad de números de bits que se tomaron de la porción de host y el "-2" es porque la primera y última subred no son utilizables ya que estas contienen la dirección de la red y broadcast respectivamente. 4. Por medió de la fórmula de subredes podemos obtener la nueva máscara, incluyendo “n” en la máscara. 5. Calcular la cantidad de hosts, este proceso se realiza con la fórmula 2𝑀 − 2. "M" es el número de bits disponibles en la porción de host y "-2" es porque toda subred debe tener su propia dirección de red y su propia dirección de broadcast.
6. Por último, obtenemos la cantidad para el salto de red, esto lo haremos por la fórmula 256 – G. 7. Encontrar las iteraciones de red. Ejemplo de Subneteo Clase B: -
IP: 172.16.0.0 / 16 bits
-
40 subredes
1. Identificar la máscara de red actual
Imagen: Primer paso de Subneteo Clase B Fuente: https://www.youtube.com/watch?v=S2ZvNgfaX8Y&ab_channel=TwisterSystems
2. Convertir los bits en números decimales
Imagen: Segundo paso de Subneteo Clase B Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
3. Encontrar la cantidad de subredes
Imagen: Tercer paso de Subneteo Clase B Fuente: https://www.youtube.com/watch?v=S2ZvNgfaX8Y&ab_channel=TwisterSystems
4. Encontrar la nueva máscara de red
Imagen: Cuarto paso de Subneteo Clase B Fuente: https://www.youtube.com/watch?v=S2ZvNgfaX8Y&ab_channel=TwisterSystems
5. Calcular la cantidad de Host
Imagen: Quinto paso de Subneteo Clase B Fuente: https://www.youtube.com/watch?v=S2ZvNgfaX8Y&ab_channel=TwisterSystems
6. Cantidad de salto de red
Imagen: Sexto paso de Subneteo Clase B Fuente: https://www.youtube.com/watch?v=S2ZvNgfaX8Y&ab_channel=TwisterSystems
7. Iteraciones de red
Imagen: Séptimo paso de Subneteo Clase B Fuente: https://www.youtube.com/watch?v=S2ZvNgfaX8Y&ab_channel=TwisterSystems
3.3.
Subneteo clase C
Por: Maria Fernanda Morales 13 Al igual que el Subneteo de clase A y el Subneteo de clase B, se determina lo que es: 1. Una máscara por defecto 2. Un rango IP 3. Cantidad de redes 4. Cantidad de hosts por red A continuación, se mostrará los que corresponden a la clase C:
Imagen: Datos de Subneteo Clase C
Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
En el Subneteo de clase C, se toma la dirección de red los primeros tres octetos que corresponden a 24 bits y en la dirección de host el último octeto que corresponde a 8 bits.
Imagen: Dirección de red y de host de Subneteo Clase B Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
Los pasos para el Subneteo de clase C son: 1. Identificar la máscara de red actual de nuestra dirección IP. 2. Convertir los bits en números decimales, es el proceso de esta conversión de cada bit de un intervalo de una dirección IP, en caso de ser "1" tiene el valor de "2" que se encuentra elevado a la posición que ocupa ese bit en el octeto y luego se suman los resultados. A continuación, un ejemplo de este proceso:
Imagen: Ejemplo de convertir los bits en números decimales Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
3. Calcular la cantidad de subredes, este proceso se realiza por medio de la fórmula 2𝑁 ≥ 𝐶 . "N" es la cantidad de números de bits que se tomaron de la porción de host y el "-2" es porque la primera y última subred no son utilizables ya que estas contienen la dirección de la red y broadcast respectivamente. 4. Por medió de la fórmula de subredes podemos obtener la nueva máscara, incluyendo “n” en la máscara. 5. Calcular la cantidad de hosts, este proceso se realiza con la fórmula 2𝑀 − 2. "M" es el número de bits disponibles en la porción de host y "-2" es porque toda subred debe tener su propia dirección de red y su propia dirección de broadcast.
6. Por último, obtenemos la cantidad para el salto de red, esto lo haremos por la fórmula 256 – G. 7. Encontrar las iteraciones de red. Ejemplo de Subneteo Clase C: -
IP: 192.168.0.0 / 24 bits
-
8 subredes
1. Identificar la máscara de red actual
Imagen: Primer paso de Subneteo Clase C Fuente: https://www.youtube.com/watch?v=YXLTByTPBkQ&ab_channel=TwisterSystems
2. Convertir los bits en números decimales
Imagen: Segundo paso de Subneteo Clase C Fuente: https://newbiesecurity.files.wordpress.com/2010/09/tutorial-de-subnetting1.pdf
3. Encontrar la cantidad de subredes
Imagen: Tercer paso de Subneteo Clase C Fuente: https://www.youtube.com/watch?v=YXLTByTPBkQ&ab_channel=TwisterSystems
4. Encontrar la nueva máscara de red
Imagen: Cuarto paso de Subneteo Clase C
Fuente: https://www.youtube.com/watch?v=YXLTByTPBkQ&ab_channel=TwisterSystems
5. Calcular la cantidad de Host
Imagen: Quinto paso de Subneteo Clase C Fuente: https://www.youtube.com/watch?v=YXLTByTPBkQ&ab_channel=TwisterSystems
6. Cantidad de salto de red
Imagen: Sexto paso de Subneteo Clase C Fuente: https://www.youtube.com/watch?v=YXLTByTPBkQ&ab_channel=TwisterSystems
7. Iteraciones de red
Imagen: Séptimo paso de Subneteo Clase C Fuente: https://www.youtube.com/watch?v=YXLTByTPBkQ&ab_channel=TwisterSystems